diff options
Diffstat (limited to 'tdenewstuff/entry.h')
-rw-r--r-- | tdenewstuff/entry.h | 282 |
1 files changed, 282 insertions, 0 deletions
diff --git a/tdenewstuff/entry.h b/tdenewstuff/entry.h new file mode 100644 index 000000000..e04822e39 --- /dev/null +++ b/tdenewstuff/entry.h @@ -0,0 +1,282 @@ +/* + This file is part of KOrganizer. + Copyright (c) 2002 Cornelius Schumacher <schumacher@kde.org> + Copyright (c) 2014 Timothy Pearson <kb9vqf@pearsoncomputing.net> + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ +#ifndef KNEWSTUFF_ENTRY_H +#define KNEWSTUFF_ENTRY_H + +#include <tqdatetime.h> +#include <tqdom.h> +#include <tqmap.h> +#include <tqstring.h> +#include <tqstringlist.h> + +#include <kurl.h> + +namespace KNS { + +/** + * @short TDENewStuff data entry container. + * + * This class provides accessor methods to the data objects + * as used by TDENewStuff. + * It should probably not be used directly by the application. + * + * @author Cornelius Schumacher (schumacher@kde.org) + * \par Maintainer: + * Josef Spillner (spillner@kde.org) + */ +class KDE_EXPORT Entry +{ + public: + Entry(); + /** + * Constructor. + */ + Entry( const TQDomElement & ); + + /** + * Destructor. + */ + ~Entry(); + + /** + * Sets the (unique) name for this data object. + */ + void setName( const TQString & ); + + /** + * Sets the (internationalised) name for this data object. + */ + void setName( const TQString &, const TQString & ); + + /** + * Retrieve the name of the data object. + * + * @return object name + */ + TQString name() const; + + /** + * Retrieve the internationalised name of the data object. + * + * @return object name (potentially translated) + */ + TQString name( const TQString &lang ) const; + + /** + * Sets the application type, e.g. 'kdesktop/wallpaper'. + */ + void setType( const TQString & ); + + /** + * Retrieve the type of the data object. + * + * @return object type + */ + TQString type() const; + + /** + * Sets the full name of the object's author. + */ + void setAuthor( const TQString & ); + + /** + * Retrieve the author's name of the object. + * + * @return object author + */ + TQString author() const; + + /** + * Sets the email address of the object's author. + */ + void setAuthorEmail( const TQString & ); + + /** + * Retrieve the author's email address of the object. + * + * @return object author email address + */ + TQString authorEmail() const; + + /** + * Sets the license (abbreviation) applicable to the object. + */ + void setLicence( const TQString & ); + + /** + * Retrieve the license name of the object. + * + * @return object license + */ + TQString license() const; + + /** + * Sets a short description on what the object is all about. + */ + void setSummary( const TQString &, const TQString &lang = TQString::null ); + + /** + * Retrieve a short description about the object. + * + * @param lang preferred language, or TQString::null for KDE default + * @return object description + */ + TQString summary( const TQString &lang = TQString::null ) const; + + /** + * Sets the version number. + */ + void setVersion( const TQString & ); + + /** + * Retrieve the version string of the object. + * + * @return object version + */ + TQString version() const; + + /** + * Sets the release number, which is increased for feature-equal objects + * with the same version number, but slightly updated contents. + */ + void setRelease( int ); + + /** + * Retrieve the release number of the object + * + * @return object release + */ + int release() const; + + /** + * Sets the release date. + */ + void setReleaseDate( const TQDate & ); + + /** + * Retrieve the date of the object's publication. + * + * @return object release date + */ + TQDate releaseDate() const; + + /** + * Sets the object's file. + */ + void setPayload( const KURL &, const TQString &lang = TQString::null ); + + /** + * Retrieve the file name of the object. + * + * @param lang preferred language, or TQString::null for KDE default + * @return object filename + */ + KURL payload( const TQString &lang = TQString::null ) const; + + /** + * Sets the object's preview file, if available. This should be a + * picture file. + */ + void setPreview( const KURL &, const TQString &lang = TQString::null ); + + /** + * Retrieve the file name of an image containing a preview of the object. + * + * @param lang preferred language, or TQString::null for KDE default + * @return object preview filename + */ + KURL preview( const TQString &lang = TQString::null ) const; + + /** + * Sets the rating between 0 (worst) and 10 (best). + * + * @internal + */ + void setRating( int ); + + /** + * Retrieve the rating for the object, which has been determined by its + * users and thus might change over time. + * + * @return object rating + */ + int rating(); + + /** + * Sets the number of downloads. + * + * @internal + */ + void setDownloads( int ); + + /** + * Retrieve the download count for the object, which has been determined + * by its hosting sites and thus might change over time. + * + * @return object download count + */ + int downloads(); + + /** + * Return the full name for the meta information. It is constructed as + * name-version-release. + */ + TQString fullName(); + + /** + * Return the list of languages this object supports. + */ + TQStringList langs(); + + /** + * @internal + */ + void parseDomElement( const TQDomElement & ); + + /** + * @internal + */ + TQDomElement createDomElement( TQDomDocument &, TQDomElement &parent ); + + protected: + TQDomElement addElement( TQDomDocument &doc, TQDomElement &parent, + const TQString &tag, const TQString &value ); + + private: + TQString mName; + TQString mType; + TQString mAuthor; + TQString mLicence; + TQMap<TQString,TQString> mSummaryMap; + TQString mVersion; + int mRelease; + TQDate mReleaseDate; + TQMap<TQString,KURL> mPayloadMap; + TQMap<TQString,KURL> mPreviewMap; + int mRating; + int mDownloads; + + TQStringList mLangs; +}; + +} + +#endif |