-rw-r--r-- | libkdepim/externalapphandler.cpp | 128 | ||||
-rw-r--r-- | libkdepim/externalapphandler.h | 19 |
2 files changed, 144 insertions, 3 deletions
diff --git a/libkdepim/externalapphandler.cpp b/libkdepim/externalapphandler.cpp index 0128cf7..5a56d68 100644 --- a/libkdepim/externalapphandler.cpp +++ b/libkdepim/externalapphandler.cpp @@ -66,8 +66,14 @@ ExternalAppHandler::~ExternalAppHandler() void ExternalAppHandler::loadConfig() { + mDefaultItems.clear(); + mEmailAppAvailable = UNDEFINED; + mPhoneAppAvailable = UNDEFINED; + mFaxAppAvailable = UNDEFINED; + mSMSAppAvailable = UNDEFINED; + mPagerAppAvailable = UNDEFINED; QString opiepath = QString::fromLatin1( getenv("OPIEDIR") ); @@ -80,7 +86,7 @@ void ExternalAppHandler::loadConfig() QString mailmsg1 = "writeMail(QString,QString)"; QString mailmsg2 = "writeMail(QMap(QString,QString))"; - QString undefined = "undefined"; + QString undefined = ""; addDefaultAppItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::NONE_EMC, "No email client installed", undefined, undefined, undefined, undefined, undefined); addDefaultAppItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::OTHER_EMC, "Userdefined email client", undefined, undefined, undefined, undefined, undefined); @@ -165,6 +171,99 @@ DefaultAppItem* ExternalAppHandler::getDefaultItem(Types type, int clientid) return 0; } +bool ExternalAppHandler::isEmailAppAvailable() +{ +#ifndef DESKTOP_VERSION + if (mEmailAppAvailable == UNDEFINED) + { + int client = KPimGlobalPrefs::instance()->mEmailClient; + if (client == KPimGlobalPrefs::NONE_EMC) + mEmailAppAvailable = UNAVAILABLE; + else + mEmailAppAvailable = AVAILABLE; + } + return (mEmailAppAvailable == AVAILABLE); + +#else //DESKTOP_VERSION + return false; +#endif //DESKTOP_VERSION +} + +bool ExternalAppHandler::isSMSAppAvailable() +{ +#ifndef DESKTOP_VERSION + if (mSMSAppAvailable == UNDEFINED) + { + int client = KPimGlobalPrefs::instance()->mSMSClient; + if (client == KPimGlobalPrefs::NONE_SMC) + mSMSAppAvailable = UNAVAILABLE; + else + mSMSAppAvailable = AVAILABLE; + } + + return (mSMSAppAvailable == AVAILABLE); +#else //DESKTOP_VERSION + return false; +#endif //DESKTOP_VERSION +} + +bool ExternalAppHandler::isPhoneAppAvailable() +{ +#ifndef DESKTOP_VERSION + if (mPhoneAppAvailable == UNDEFINED) + { + int client = KPimGlobalPrefs::instance()->mPhoneClient; + if (client == KPimGlobalPrefs::NONE_PHC) + mPhoneAppAvailable = UNAVAILABLE; + else + mPhoneAppAvailable = AVAILABLE; + } + + return (mPhoneAppAvailable == AVAILABLE); +#else //DESKTOP_VERSION + return false; +#endif //DESKTOP_VERSION +} + +bool ExternalAppHandler::isFaxAppAvailable() +{ +#ifndef DESKTOP_VERSION + if (mFaxAppAvailable == UNDEFINED) + { + int client = KPimGlobalPrefs::instance()->mFaxClient; + if (client == KPimGlobalPrefs::NONE_FAC) + mFaxAppAvailable = UNAVAILABLE; + else + mFaxAppAvailable = AVAILABLE; + } + + return (mFaxAppAvailable == AVAILABLE); +#else //DESKTOP_VERSION + return false; +#endif //DESKTOP_VERSION +} + +bool ExternalAppHandler::isPagerAppAvailable() +{ +#ifndef DESKTOP_VERSION + if (mPagerAppAvailable == UNDEFINED) + { + int client = KPimGlobalPrefs::instance()->mPagerClient; + if (client == KPimGlobalPrefs::NONE_PAC) + mPagerAppAvailable = UNAVAILABLE; + else + mPagerAppAvailable = AVAILABLE; + } + + return (mPagerAppAvailable == AVAILABLE); +#else //DESKTOP_VERSION + return false; +#endif //DESKTOP_VERSION +} + +/************************************************************************** + * + **************************************************************************/ //calls the emailapplication with a number of attachments that need to be send (Seperated by Comma) @@ -216,6 +315,9 @@ bool ExternalAppHandler::mailAttachments( const QString& urls ) return true; } +/************************************************************************** + * + **************************************************************************/ //calls the emailapplication and creates a mail with parameter emails as recipients @@ -269,6 +371,9 @@ bool ExternalAppHandler::mailToContacts( const QString& emails ) return true; } +/************************************************************************** + * + **************************************************************************/ //calls the phoneapplication with the number bool ExternalAppHandler::callByPhone( const QString& phonenumber ) @@ -321,6 +426,10 @@ bool ExternalAppHandler::callByPhone( const QString& phonenumber ) return true; } +/************************************************************************** + * + **************************************************************************/ + //calls the smsapplication with the number bool ExternalAppHandler::callBySMS( const QString& phonenumber ) { @@ -372,6 +481,10 @@ bool ExternalAppHandler::callBySMS( const QString& phonenumber ) return true; } +/************************************************************************** + * + **************************************************************************/ + //calls the pagerapplication with the number bool ExternalAppHandler::callByPager( const QString& pagernumber ) { @@ -423,6 +536,10 @@ bool ExternalAppHandler::callByPager( const QString& pagernumber ) return true; } +/************************************************************************** + * + **************************************************************************/ + //calls the faxapplication with the number bool ExternalAppHandler::callByFax( const QString& faxnumber ) { @@ -474,8 +591,9 @@ bool ExternalAppHandler::callByFax( const QString& faxnumber ) return true; } - - +/************************************************************************** + * + **************************************************************************/ @@ -484,6 +602,10 @@ QString& ExternalAppHandler::translateMessage(QString& message, const QString& p return message.replace( QRegExp("%1"), param1 ); } +/************************************************************************** + * + **************************************************************************/ + void ExternalAppHandler::passParameter(QCopEnvelope* e, const QString& parameters, const QString& param1) const { #ifndef DESKTOP_VERSION diff --git a/libkdepim/externalapphandler.h b/libkdepim/externalapphandler.h index 3ecf1b1..efcdd89 100644 --- a/libkdepim/externalapphandler.h +++ b/libkdepim/externalapphandler.h @@ -75,6 +75,12 @@ class ExternalAppHandler PAGER = 4 }; + enum Availability { + UNDEFINED = -1, + UNAVAILABLE = 0, + AVAILABLE = 1 + }; + //calls the emailapplication with a number of attachments that need to be send bool mailAttachments( const QString& urls ); @@ -93,6 +99,13 @@ class ExternalAppHandler //calls the faxapplication with the number bool callByFax( const QString& faxnumber ); + bool isEmailAppAvailable(); + bool isSMSAppAvailable(); + bool isPhoneAppAvailable(); + bool isFaxAppAvailable(); + bool isPagerAppAvailable(); + + //loadConfig clears the cache and checks again if the applications are available or not void loadConfig(); @@ -105,6 +118,12 @@ class ExternalAppHandler ExternalAppHandler(); QList<DefaultAppItem> mDefaultItems; + Availability mEmailAppAvailable; + Availability mPhoneAppAvailable; + Availability mFaxAppAvailable; + Availability mSMSAppAvailable; + Availability mPagerAppAvailable; + void addDefaultAppItem(Types type, int id, const QString& label, const QString& channel, const QString& message, const QString& parameters, const QString& message2, const QString& parameters2); |