// modified from KDE 3.4 for Windows port (Nicolas Hadacek) /* * This file is part of the KDE Libraries * Copyright (C) 2000 Espen Sand (espen@kde.org) * * 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. * */ #include "nokde_tdeaboutdata.h" //#include #include #include #include TQString TDEAboutPerson::name() const { return TQString::fromUtf8(mName); } TQString TDEAboutPerson::task() const { if (mTask && *mTask) return i18n(mTask); else return TQString(); } TQString TDEAboutPerson::emailAddress() const { return TQString::fromUtf8(mEmailAddress); } TQString TDEAboutPerson::webAddress() const { return TQString::fromUtf8(mWebAddress); } TDEAboutTranslator::TDEAboutTranslator(const TQString & name, const TQString & emailAddress) { mName=name; mEmail=emailAddress; } TQString TDEAboutTranslator::name() const { return mName; } TQString TDEAboutTranslator::emailAddress() const { return mEmail; } class TDEAboutDataPrivate { public: TDEAboutDataPrivate() : translatorName("_: NAME OF TRANSLATORS\nYour names") , translatorEmail("_: EMAIL OF TRANSLATORS\nYour emails") , productName(0) // , programLogo(0) {} ~TDEAboutDataPrivate() { // delete programLogo; } const char *translatorName; const char *translatorEmail; const char *productName; // TQImage* programLogo; }; TDEAboutData::TDEAboutData( const char *appName, const char *programName, const char *version, const char *shortDescription, int licenseType, const char *copyrightStatement, const char *text, const char *homePageAddress, const char *bugsEmailAddress ) : mProgramName( programName ), mVersion( version ), mShortDescription( shortDescription ), mLicenseKey( licenseType ), mCopyrightStatement( copyrightStatement ), mOtherText( text ), mHomepageAddress( homePageAddress ), mBugEmailAddress( bugsEmailAddress ), mLicenseText (0) { d = new TDEAboutDataPrivate; if( appName ) { const char *p = strrchr(appName, '/'); if( p ) mAppName = p+1; else mAppName = appName; } else mAppName = 0; } TDEAboutData::~TDEAboutData() { if (mLicenseKey == License_File) delete [] mLicenseText; delete d; } void TDEAboutData::addAuthor( const char *name, const char *task, const char *emailAddress, const char *webAddress ) { mAuthorList.append(TDEAboutPerson(name,task,emailAddress,webAddress)); } void TDEAboutData::addCredit( const char *name, const char *task, const char *emailAddress, const char *webAddress ) { mCreditList.append(TDEAboutPerson(name,task,emailAddress,webAddress)); } void TDEAboutData::setTranslator( const char *name, const char *emailAddress) { d->translatorName=name; d->translatorEmail=emailAddress; } void TDEAboutData::setLicenseText( const char *licenseText ) { mLicenseText = licenseText; mLicenseKey = License_Custom; } void TDEAboutData::setLicenseTextFile( const TQString &file ) { mLicenseText = tqstrdup(TQFile::encodeName(file)); mLicenseKey = License_File; } void TDEAboutData::setAppName( const char *appName ) { mAppName = appName; } void TDEAboutData::setProgramName( const char* programName ) { mProgramName = programName; } void TDEAboutData::setVersion( const char* version ) { mVersion = version; } void TDEAboutData::setShortDescription( const char *shortDescription ) { mShortDescription = shortDescription; } void TDEAboutData::setLicense( LicenseKey licenseKey) { mLicenseKey = licenseKey; } void TDEAboutData::setCopyrightStatement( const char *copyrightStatement ) { mCopyrightStatement = copyrightStatement; } void TDEAboutData::setOtherText( const char *otherText ) { mOtherText = otherText; } void TDEAboutData::setHomepage( const char *homepage ) { mHomepageAddress = homepage; } void TDEAboutData::setBugAddress( const char *bugAddress ) { mBugEmailAddress = bugAddress; } void TDEAboutData::setProductName( const char *productName ) { d->productName = productName; } const char * TDEAboutData::appName() const { return mAppName; } const char * TDEAboutData::productName() const { if (d->productName) return d->productName; else return appName(); } TQString TDEAboutData::programName() const { if (mProgramName && *mProgramName) return i18n(mProgramName); else return TQString(); } /* TQImage TDEAboutData::programLogo() const { return d->programLogo ? (*d->programLogo) : TQImage(); } void TDEAboutData::setProgramLogo(const TQImage& image) { if (!d->programLogo) d->programLogo = new TQImage( image ); else *d->programLogo = image; } */ TQString TDEAboutData::version() const { return TQString::fromLatin1(mVersion); } TQString TDEAboutData::shortDescription() const { if (mShortDescription && *mShortDescription) return i18n(mShortDescription); else return TQString(); } TQString TDEAboutData::homepage() const { return TQString::fromLatin1(mHomepageAddress); } TQString TDEAboutData::bugAddress() const { return TQString::fromLatin1(mBugEmailAddress); } const TQValueList TDEAboutData::authors() const { return mAuthorList; } const TQValueList TDEAboutData::credits() const { return mCreditList; } const TQValueList TDEAboutData::translators() const { TQValueList personList; if(d->translatorName == 0) return personList; TQStringList nameList; TQStringList emailList; TQString names = i18n(d->translatorName); if(names != TQString::fromUtf8(d->translatorName)) { #if [[[TQT_VERSION IS DEPRECATED]]] < 0x040000 nameList = TQStringList::split(',',names); #else nameList = names.split(',', TQString::SkipEmptyParts); #endif } if(d->translatorEmail) { TQString emails = i18n(d->translatorEmail); if(emails != TQString::fromUtf8(d->translatorEmail)) { #if [[[TQT_VERSION IS DEPRECATED]]] < 0x040000 emailList = TQStringList::split(',',emails,true); #else emailList = emails.split(','); #endif } } TQStringList::Iterator nit; TQStringList::Iterator eit=emailList.begin(); for(nit = nameList.begin(); nit != nameList.end(); ++nit) { TQString email; if(eit != emailList.end()) { email=*eit; ++eit; } TQString name=*nit; #if [[[TQT_VERSION IS DEPRECATED]]] < 0x040000 personList.append(TDEAboutTranslator(name.stripWhiteSpace(), email.stripWhiteSpace())); #else personList.append(TDEAboutTranslator(name.trimmed(), email.trimmed())); #endif } return personList; } TQString TDEAboutData::aboutTranslationTeam() { return i18n("replace this with information about your translation team", "

TDE is translated into many languages thanks to the work " "of many people all over the world.

"); } TQString TDEAboutData::otherText() const { if (mOtherText && *mOtherText) return i18n(mOtherText); else return TQString(); } TQString TDEAboutData::license() const { TQString result; if (!copyrightStatement().isEmpty()) result = copyrightStatement() + "\n\n"; TQString l; TQString f; switch ( mLicenseKey ) { case License_File: f = TQFile::decodeName(mLicenseText); break; case License_GPL_V2: l = "GPL v2"; f = locate("data", "LICENSES/GPL_V2"); break; case License_LGPL_V2: l = "LGPL v2"; f = locate("data", "LICENSES/LGPL_V2"); break; case License_BSD: l = "BSD License"; f = locate("data", "LICENSES/BSD"); break; case License_Artistic: l = "Artistic License"; f = locate("data", "LICENSES/ARTISTIC"); break; case License_TQPL_V1_0: l = "TQPL v1.0"; f = locate("data", "LICENSES/TQPL_V1.0"); break; case License_Custom: if (mLicenseText && *mLicenseText) return( i18n(mLicenseText) ); // fall through default: result += i18n("No licensing terms for this program have been specified.\n" "Please check the documentation or the source for any\n" "licensing terms.\n"); return result; } if (!l.isEmpty()) result += i18n("This program is distributed under the terms of the %1.").arg( l ); if (!f.isEmpty()) { TQFile file(f); #if [[[TQT_VERSION IS DEPRECATED]]] < 0x040000 if (file.open(IO_ReadOnly)) #else if (file.open(TQIODevice::ReadOnly)) #endif { result += '\n'; result += '\n'; TQTextStream str(&file); #if [[[TQT_VERSION IS DEPRECATED]]] < 0x040000 result += str.read(); #else result += str.readAll(); #endif } } return result; } TQString TDEAboutData::copyrightStatement() const { if (mCopyrightStatement && *mCopyrightStatement) return i18n(mCopyrightStatement); else return TQString(); }