00001 #ifndef ABOUTDATA_H 00002 #define ABOUTDATA_H 00003 00004 #include <QString> 00005 #include <QSharedDataPointer> 00006 00007 template <class T> class QList; 00008 class QVariant; 00009 class AboutData; 00010 00011 class AboutPerson 00012 { 00013 friend class AboutData; 00014 public: 00015 explicit AboutPerson(const QString &name, const QString &task = QString(), const QByteArray &emailAddress = QByteArray(), const QByteArray &webAddress = QByteArray()); 00016 00017 AboutPerson(const AboutPerson& other); 00018 ~AboutPerson(); 00019 AboutPerson& operator=(const AboutPerson& other); 00020 QString name() const; 00021 QString task() const; 00022 QString emailAddress() const; 00023 QString webAddress() const; 00024 00025 private: 00026 00027 explicit AboutPerson(QString & name, QString & email); 00028 00029 class Private; 00030 Private *const d; 00031 }; 00032 00033 class AboutLicense; 00034 00035 class AboutData 00036 { 00037 public: 00038 enum NameFormat 00039 { 00040 ShortName, 00041 FullName 00042 }; 00043 00044 AboutData(const QByteArray &appName, const QByteArray &catalogName, const QString &programName, const QByteArray &version, const QString &shortDescription = QString(), const QString ©rightStatement = QString(), const QString &text = QString(), const QByteArray &homePageAddress = QByteArray(), const QByteArray &bugsEmailAddress = "allevo.bugs@gmx.at"); 00045 AboutData(const AboutData& other); 00046 AboutData& operator=(const AboutData& other); 00047 ~AboutData(); 00048 AboutData &addAuthor(const QString &name, const QString &task = QString(), const QByteArray &emailAddress = QByteArray(), const QByteArray &webAddress = QByteArray()); 00049 AboutData &addCredit(const QString &name, const QString &task = QString(), const QByteArray &emailAddress = QByteArray(), const QByteArray &webAddress = QByteArray()); 00050 AboutData &setTranslator(const QString& name, const QString& emailAddress); 00051 AboutData &setAppName(const QByteArray &appName); 00052 AboutData &setProgramName(const QString &programName); 00053 AboutData &setProgramIconName(const QString &iconName); 00054 AboutData &setProgramLogo(const QVariant& image); 00055 AboutData &setVersion(const QByteArray &version); 00056 AboutData &setShortDescription(const QString &shortDescription); 00057 AboutData &setCatalogName(const QByteArray &catalogName); 00058 AboutData &setCopyrightStatement(const QString ©rightStatement); 00059 AboutData &setOtherText(const QString &otherText); 00060 AboutData &setHomepage(const QByteArray &homepage); 00061 AboutData &setBugAddress(const QByteArray &bugAddress); 00062 AboutData &setOrganizationDomain(const QByteArray &domain); 00063 AboutData &setProductName(const QByteArray &name); 00064 QString appName() const; 00065 QString productName() const; 00066 QString programName() const; 00067 QString organizationDomain() const; 00068 const char* internalProgramName() const; 00069 void translateInternalProgramName() const; 00070 QString programIconName() const; 00071 QVariant programLogo() const; 00072 QString version() const; 00073 const char* internalVersion() const; 00074 QString shortDescription() const; 00075 QString catalogName() const; 00076 QString homepage() const; 00077 QString bugAddress() const; 00078 const char* internalBugAddress() const; 00079 QList<AboutPerson> authors() const; 00080 QList<AboutPerson> credits() const; 00081 QList<AboutPerson> translators() const; 00082 static QString aboutTranslationTeam(); 00083 QString otherText() const; 00084 QString license() const; 00085 QString licenseName(NameFormat formatName) const; 00086 QString copyrightStatement() const; 00087 QString customAuthorPlainText() const; 00088 QString customAuthorRichText() const; 00089 bool customAuthorTextEnabled() const; 00090 AboutData &setCustomAuthorText(const QString &plainText, const QString &richText); 00091 AboutData &unsetCustomAuthorText(); 00092 00093 private: 00094 class Private; 00095 Private *const d; 00096 }; 00097 00098 #endif 00099