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