23 #include <kaboutdata.h>
24 #include <kstandarddirs.h>
26 #include <tqtextstream.h>
31 return TQString::fromUtf8(mName);
40 return TQString::null;
46 return TQString::fromUtf8(mEmailAddress);
53 return TQString::fromUtf8(mWebAddress);
58 const TQString & emailAddress)
74 class KAboutDataPrivate
78 : translatorName(
"_: NAME OF TRANSLATORS\nYour names")
79 , translatorEmail(
"_: EMAIL OF TRANSLATORS\nYour emails")
82 , customAuthorTextEnabled(false)
83 , mTranslatedProgramName( 0 )
88 delete[] mTranslatedProgramName;
90 const char *translatorName;
91 const char *translatorEmail;
92 const char *productName;
94 TQString customAuthorPlainText, customAuthorRichText;
95 bool customAuthorTextEnabled;
96 const char *mTranslatedProgramName;
99 const char *KAboutData::defaultBugTracker =
"http://bugs.trinitydesktop.org";
102 const char *programName,
104 const char *shortDescription,
106 const char *copyrightStatement,
108 const char *homePageAddress,
109 const char *bugsEmailAddress
111 mProgramName( programName ),
113 mShortDescription( shortDescription ),
114 mLicenseKey( licenseType ),
115 mCopyrightStatement( copyrightStatement ),
117 mHomepageAddress( homePageAddress ),
118 mBugEmailAddress( (bugsEmailAddress!=0)?bugsEmailAddress:defaultBugTracker ),
121 d =
new KAboutDataPrivate;
124 const char *p = strrchr(appName,
'/');
133 KAboutData::~KAboutData()
135 if (mLicenseKey == License_File)
136 delete [] mLicenseText;
142 const char *emailAddress,
const char *webAddress )
144 mAuthorList.append(
KAboutPerson(name,task,emailAddress,webAddress));
149 const char *emailAddress,
const char *webAddress )
151 mCreditList.append(
KAboutPerson(name,task,emailAddress,webAddress));
157 d->translatorName=name;
158 d->translatorEmail=emailAddress;
164 mLicenseText = licenseText;
165 mLicenseKey = License_Custom;
171 mLicenseText = qstrdup(TQFile::encodeName(file));
172 mLicenseKey = License_File;
185 translateInternalProgramName();
203 mLicenseKey = licenseKey;
246 return d->productName;
254 if (mProgramName && *mProgramName)
255 return i18n(mProgramName);
257 return TQString::null;
261 KAboutData::internalProgramName()
const
263 if (d->mTranslatedProgramName)
264 return d->mTranslatedProgramName;
273 KAboutData::translateInternalProgramName()
const
275 delete[] d->mTranslatedProgramName;
276 d->mTranslatedProgramName = 0;
278 d->mTranslatedProgramName = qstrdup(
programName().utf8());
284 return d->programLogo ? (*d->programLogo) : TQImage();
291 d->programLogo =
new TQImage( image );
293 *d->programLogo = image;
299 return TQString::fromLatin1(mVersion);
305 if (mShortDescription && *mShortDescription)
306 return i18n(mShortDescription);
308 return TQString::null;
314 return TQString::fromLatin1(mHomepageAddress);
320 return TQString::fromLatin1(mBugEmailAddress);
323 const TQValueList<KAboutPerson>
329 const TQValueList<KAboutPerson>
335 const TQValueList<KAboutTranslator>
338 TQValueList<KAboutTranslator> personList;
340 if(d->translatorName == 0)
343 TQStringList nameList;
344 TQStringList emailList;
346 TQString names = i18n(d->translatorName);
347 if(names != TQString::fromUtf8(d->translatorName))
349 nameList = TQStringList::split(
',',names);
353 if(d->translatorEmail)
355 TQString emails = i18n(d->translatorEmail);
357 if(emails != TQString::fromUtf8(d->translatorEmail))
359 emailList = TQStringList::split(
',',emails,
true);
364 TQStringList::Iterator nit;
365 TQStringList::Iterator eit=emailList.begin();
367 for(nit = nameList.begin(); nit != nameList.end(); ++nit)
370 if(eit != emailList.end())
378 personList.append(
KAboutTranslator(name.stripWhiteSpace(), email.stripWhiteSpace()));
387 return i18n(
"replace this with information about your translation team",
388 "<p>KDE is translated into many languages thanks to the work "
389 "of the translation teams all over the world.</p>"
390 "<p>For more information on KDE internationalization "
391 "visit <a href=\"http://l10n.kde.org\">http://l10n.kde.org</a></p>"
398 if (mOtherText && *mOtherText)
399 return i18n(mOtherText);
401 return TQString::null;
414 switch ( mLicenseKey )
417 f = TQFile::decodeName(mLicenseText);
421 f = locate(
"data",
"LICENSES/GPL_V2");
423 case License_LGPL_V2:
425 f = locate(
"data",
"LICENSES/LGPL_V2");
429 f = locate(
"data",
"LICENSES/BSD");
431 case License_Artistic:
432 l =
"Artistic License";
433 f = locate(
"data",
"LICENSES/ARTISTIC");
435 case License_QPL_V1_0:
437 f = locate(
"data",
"LICENSES/QPL_V1.0");
440 if (mLicenseText && *mLicenseText)
441 return( i18n(mLicenseText) );
444 result += i18n(
"No licensing terms for this program have been specified.\n"
445 "Please check the documentation or the source for any\n"
446 "licensing terms.\n");
451 result += i18n(
"This program is distributed under the terms of the %1.").arg( l );
456 if (file.open(IO_ReadOnly))
460 TQTextStream str(&file);
461 result += str.read();
471 if (mCopyrightStatement && *mCopyrightStatement)
472 return i18n(mCopyrightStatement);
474 return TQString::null;
480 return d->customAuthorPlainText;
486 return d->customAuthorRichText;
492 return d->customAuthorTextEnabled;
498 d->customAuthorPlainText = plainText;
499 d->customAuthorRichText = richText;
501 d->customAuthorTextEnabled =
true;
507 d->customAuthorPlainText = TQString::null;
508 d->customAuthorRichText = TQString::null;
510 d->customAuthorTextEnabled =
false;