kaboutdata.cpp Source File (kdecore Library)

| # kdecore Library API Documentation
Overview | Class Hierarchy | Classes | Classes (annotated) | Members | Source Files

# kaboutdata.cpp

    00001 /*
    00002  * This file is part of the KDE Libraries
    00003  * Copyright (C) 2000 Espen Sand (espen@kde.org)
    00004  *
    00005  * This library is free software; you can redistribute it and/or
    00006  * modify it under the terms of the GNU Library General Public
    00007  * License as published by the Free Software Foundation; either
    00008  * version 2 of the License, or (at your option) any later version.
    00009  *
    00010  * This library is distributed in the hope that it will be useful,
    00011  * but WITHOUT ANY WARRANTY; without even the implied warranty of
    00012  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    00013  * Library General Public License for more details.
    00014  *
    00015  * You should have received a copy of the GNU Library General Public License
    00016  * along with this library; see the file COPYING.LIB.  If not, write to
    00017  * the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    00018  * Boston, MA 02111-1307, USA.
    00019  *
    00020  */
    00021
    00022
    00023 #include <kaboutdata.h>
    00024 #include <kstandarddirs.h>
    00025 #include <qfile.h>
    00026 #include <qtextstream.h>
    00027
    00028 QString
    00029 KAboutPerson::name() const
    00030 {
    00031    return QString::fromUtf8(mName);
    00032 }
    00033
    00034 QString
    00035 KAboutPerson::task() const
    00036 {
    00037    if (mTask && *mTask)
    00038       return i18n(mTask);
    00039    else
    00040       return QString::null;
    00041 }
    00042
    00043 QString
    00044 KAboutPerson::emailAddress() const
    00045 {
    00046    return QString::fromUtf8(mEmailAddress);
    00047 }
    00048
    00049
    00050 QString
    00051 KAboutPerson::webAddress() const
    00052 {
    00053    return QString::fromUtf8(mWebAddress);
    00054 }
    00055
    00056
    00057 KAboutTranslator::KAboutTranslator(const QString & name,
    00058                 const QString & emailAddress)
    00059 {
    00060     mName=name;
    00061     mEmail=emailAddress;
    00062 }
    00063
    00064 QString KAboutTranslator::name() const
    00065 {
    00066     return mName;
    00067 }
    00068
    00069 QString KAboutTranslator::emailAddress() const
    00070 {
    00071     return mEmail;
    00072 }
    00073
    00074 class KAboutDataPrivate
    00075 {
    00076 public:
    00077     KAboutDataPrivate()
    00078         : translatorName("_: NAME OF TRANSLATORS\nYour names")
    00079         , translatorEmail("_: EMAIL OF TRANSLATORS\nYour emails")
    00080         {};
    00081     const char *translatorName;
    00082     const char *translatorEmail;
    00083 };
    00084
    00085
    00086
    00087 KAboutData::KAboutData( const char *appName,
    00088                         const char *programName,
    00089                         const char *version,
    00090                         const char *shortDescription,
    00091                         int licenseType,
    00092                         const char *copyrightStatement,
    00093                         const char *text,
    00094                         const char *homePageAddress,
    00095                         const char *bugsEmailAddress
    00096                         ) :
    00097   mProgramName( programName ),
    00098   mVersion( version ),
    00099   mShortDescription( shortDescription ),
    00100   mLicenseKey( licenseType ),
    00101   mCopyrightStatement( copyrightStatement ),
    00102   mOtherText( text ),
    00103   mHomepageAddress( homePageAddress ),
    00104   mBugEmailAddress( bugsEmailAddress )
    00105 {
    00106    d = new KAboutDataPrivate;
    00107
    00108    if( appName ) {
    00109      const char *p = strrchr(appName, '/');
    00110      if( p )
    00111          mAppName = p+1;
    00112      else
    00113          mAppName = appName;
    00114    } else
    00115      mAppName = 0;
    00116 }
    00117
    00118 KAboutData::~KAboutData()
    00119 {
    00120     delete d;
    00121 }
    00122
    00123 void
    00124 KAboutData::addAuthor( const char *name, const char *task,
    00125                     const char *emailAddress, const char *webAddress )
    00126 {
    00127   mAuthorList.append(KAboutPerson(name,task,emailAddress,webAddress));
    00128 }
    00129
    00130 void
    00131 KAboutData::addCredit( const char *name, const char *task,
    00132                     const char *emailAddress, const char *webAddress )
    00133 {
    00134   mCreditList.append(KAboutPerson(name,task,emailAddress,webAddress));
    00135 }
    00136
    00137 void
    00138 KAboutData::setTranslator( const char *name, const char *emailAddress)
    00139 {
    00140   d->translatorName=name;
    00141   d->translatorEmail=emailAddress;
    00142 }
    00143
    00144 void
    00145 KAboutData::setLicenseText( const char *licenseText )
    00146 {
    00147   mLicenseText = licenseText;
    00148   mLicenseKey = License_Custom;
    00149 }
    00150
    00151 void
    00152 KAboutData::setLicenseTextFile( const QString &file )
    00153 {
    00154   mLicenseText = qstrdup(QFile::encodeName(file));
    00155   mLicenseKey = License_File;
    00156 }
    00157
    00158
    00159 const char *
    00160 KAboutData::appName() const
    00161 {
    00162    return mAppName;
    00163 }
    00164
    00165 QString
    00166 KAboutData::programName() const
    00167 {
    00168    if (mProgramName && *mProgramName)
    00169       return i18n(mProgramName);
    00170    else
    00171       return QString::null;
    00172 }
    00173
    00174 QString
    00175 KAboutData::version() const
    00176 {
    00177    return QString::fromLatin1(mVersion);
    00178 }
    00179
    00180 QString
    00181 KAboutData::shortDescription() const
    00182 {
    00183    if (mShortDescription && *mShortDescription)
    00184       return i18n(mShortDescription);
    00185    else
    00186       return QString::null;
    00187 }
    00188
    00189 QString
    00190 KAboutData::homepage() const
    00191 {
    00192    return QString::fromLatin1(mHomepageAddress);
    00193 }
    00194
    00195 QString
    00196 KAboutData::bugAddress() const
    00197 {
    00198    return QString::fromLatin1(mBugEmailAddress);
    00199 }
    00200
    00201 const QValueList<KAboutPerson>
    00202 KAboutData::authors() const
    00203 {
    00204    return mAuthorList;
    00205 }
    00206
    00207 const QValueList<KAboutPerson>
    00208 KAboutData::credits() const
    00209 {
    00210    return mCreditList;
    00211 }
    00212
    00213 const QValueList<KAboutTranslator>
    00214 KAboutData::translators() const
    00215 {
    00216     QValueList<KAboutTranslator> personList;
    00217
    00218     if(d->translatorName == 0)
    00219         return personList;
    00220
    00221     QStringList nameList;
    00222     QStringList emailList;
    00223
    00224     QString names = i18n(d->translatorName);
    00225     if(names != QString::fromUtf8(d->translatorName))
    00226     {
    00227         nameList = QStringList::split(',',names);
    00228     }
    00229
    00230
    00231     if(d->translatorEmail)
    00232     {
    00233         QString emails = i18n(d->translatorEmail);
    00234
    00235         if(emails != QString::fromUtf8(d->translatorEmail))
    00236         {
    00237             emailList = QStringList::split(',',emails,true);
    00238         }
    00239     }
    00240
    00241
    00242     QStringList::Iterator nit;
    00243     QStringList::Iterator eit=emailList.begin();
    00244
    00245     for(nit = nameList.begin(); nit != nameList.end(); ++nit)
    00246     {
    00247         QString email;
    00248         if(eit != emailList.end())
    00249         {
    00250             email=*eit;
    00251             ++eit;
    00252         }
    00253
    00254         QString name=*nit;
    00255
    00256         personList.append(KAboutTranslator( name, email));
    00257     }
    00258
    00259     return personList;
    00260 }
    00261
    00262 QString
    00263 KAboutData::aboutTranslationTeam()
    00264 {
    00265     return i18n("replace this with information about your translation team",
    00266             "<p>KDE is translated into many languages thanks to the work "
    00267             "of the translation teams all over the world.</p>"
    00268             "<p>For more information on KDE internationalization "
    00269             "visit http://i18n.kde.org</p>");
    00270 }
    00271
    00272 QString
    00273 KAboutData::otherText() const
    00274 {
    00275    if (mOtherText && *mOtherText)
    00276       return i18n(mOtherText);
    00277    else
    00278       return QString::null;
    00279 }
    00280
    00281
    00282 QString
    00283 KAboutData::license() const
    00284 {
    00285   QString l;
    00286   QString f;
    00287   switch ( mLicenseKey )
    00288   {
    00289     case License_File:
    00290        f = QFile::decodeName(mLicenseText);
    00291        break;
    00292     case License_GPL_V2:
    00293        l = "GPL v2";
    00294        f = locate("data", "LICENSES/GPL_V2");
    00295        break;
    00296     case License_LGPL_V2:
    00297        l = "LGPL v2";
    00298        f = locate("data", "LICENSES/LGPL_V2");
    00299        break;
    00300     case License_BSD:
    00301        l = "BSD License";
    00302        f = locate("data", "LICENSES/BSD");
    00303        break;
    00304     case License_Artistic:
    00305        l = "Artistic License";
    00306        f = locate("data", "LICENSES/ARTISTIC");
    00307        break;
    00308     case License_QPL_V1_0:
    00309        l = "QPL v1.0";
    00310        f = locate("data", "LICENSES/QPL_V1.0");
    00311        break;
    00312     case License_Custom:
    00313        if (mLicenseText && *mLicenseText)
    00314           return( i18n(mLicenseText) );
    00315        // fall through
    00316     default:
    00317        return i18n("No licensing terms for this program have been specified.\n"
    00318                    "Please check the documentation or the source for any\n"
    00319                    "licensing terms.\n");
    00320       }
    00321
    00322   QString result;
    00323   if (!l.isEmpty())
    00324      result = i18n("This program is distributed under the terms of the %1.").arg( l );
    00325
    00326   if (!f.isEmpty())
    00327   {
    00328      QFile file(f);
    00329      if (file.open(IO_ReadOnly))
    00330      {
    00331         result += '\n';
    00332         result += '\n';
    00333         QTextStream str(&file);
    00334         result += str.read();
    00335      }
    00336   }
    00337
    00338   return result;
    00339 }
    00340
    00341 QString
    00342 KAboutData::copyrightStatement() const
    00343 {
    00344   if (mCopyrightStatement && *mCopyrightStatement)
    00345      return i18n(mCopyrightStatement);
    00346   else
    00347      return QString::null;
    00348 }

This file is part of the documentation for kdelibs Version 3.1.5.
Documentation copyright © 1996-2002 the KDE developers.
Generated on Wed Jan 28 12:46:18 2004 by doxygen 1.3.4 written by Dimitri van Heesch, © 1997-2001