summaryrefslogtreecommitdiffabout
path: root/libkdepim
Side-by-side diff
Diffstat (limited to 'libkdepim') (more/less context) (show whitespace changes)
-rw-r--r--libkdepim/externalapphandler.cpp128
-rw-r--r--libkdepim/externalapphandler.h19
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
@@ -63,27 +63,33 @@ ExternalAppHandler::ExternalAppHandler()
ExternalAppHandler::~ExternalAppHandler()
{
}
void ExternalAppHandler::loadConfig()
{
+
mDefaultItems.clear();
+ mEmailAppAvailable = UNDEFINED;
+ mPhoneAppAvailable = UNDEFINED;
+ mFaxAppAvailable = UNDEFINED;
+ mSMSAppAvailable = UNDEFINED;
+ mPagerAppAvailable = UNDEFINED;
QString opiepath = QString::fromLatin1( getenv("OPIEDIR") );
QString qtopiapath = QString::fromLatin1( getenv("QPEDIR") );
if (opiepath.isEmpty())
opiepath = qtopiapath;
//mailclients
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);
if (( QFile::exists( qtopiapath + "/bin/ompi" )) ||
( QFile::exists( opiepath + "/bin/ompi" )))
@@ -162,12 +168,105 @@ DefaultAppItem* ExternalAppHandler::getDefaultItem(Types type, int clientid)
return dai;
}
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)
bool ExternalAppHandler::mailAttachments( const QString& urls )
{
@@ -213,12 +312,15 @@ bool ExternalAppHandler::mailAttachments( const QString& urls )
KMessageBox::sorry( 0, i18n( "This version does not support the sending of emails." ) );
#endif
return true;
}
+/**************************************************************************
+ *
+ **************************************************************************/
//calls the emailapplication and creates a mail with parameter emails as recipients
bool ExternalAppHandler::mailToContacts( const QString& emails )
{
#ifndef DESKTOP_VERSION
@@ -266,12 +368,15 @@ bool ExternalAppHandler::mailToContacts( const QString& emails )
#endif
return true;
}
+/**************************************************************************
+ *
+ **************************************************************************/
//calls the phoneapplication with the number
bool ExternalAppHandler::callByPhone( const QString& phonenumber )
{
#ifndef DESKTOP_VERSION
QString channel;
@@ -318,12 +423,16 @@ bool ExternalAppHandler::callByPhone( const QString& phonenumber )
#endif
return true;
}
+/**************************************************************************
+ *
+ **************************************************************************/
+
//calls the smsapplication with the number
bool ExternalAppHandler::callBySMS( const QString& phonenumber )
{
#ifndef DESKTOP_VERSION
QString channel;
QString message;
@@ -369,12 +478,16 @@ bool ExternalAppHandler::callBySMS( const QString& phonenumber )
#endif
return true;
}
+/**************************************************************************
+ *
+ **************************************************************************/
+
//calls the pagerapplication with the number
bool ExternalAppHandler::callByPager( const QString& pagernumber )
{
#ifndef DESKTOP_VERSION
QString channel;
QString message;
@@ -420,12 +533,16 @@ bool ExternalAppHandler::callByPager( const QString& pagernumber )
#endif
return true;
}
+/**************************************************************************
+ *
+ **************************************************************************/
+
//calls the faxapplication with the number
bool ExternalAppHandler::callByFax( const QString& faxnumber )
{
#ifndef DESKTOP_VERSION
QString channel;
QString message;
@@ -471,22 +588,27 @@ bool ExternalAppHandler::callByFax( const QString& faxnumber )
#endif
return true;
}
-
-
+/**************************************************************************
+ *
+ **************************************************************************/
QString& ExternalAppHandler::translateMessage(QString& message, const QString& param1) const
{
return message.replace( QRegExp("%1"), param1 );
}
+/**************************************************************************
+ *
+ **************************************************************************/
+
void ExternalAppHandler::passParameter(QCopEnvelope* e, const QString& parameters, const QString& param1) const
{
#ifndef DESKTOP_VERSION
QMap<QString, QString> valmap;
bool useValMap = false;
diff --git a/libkdepim/externalapphandler.h b/libkdepim/externalapphandler.h
index 3ecf1b1..efcdd89 100644
--- a/libkdepim/externalapphandler.h
+++ b/libkdepim/externalapphandler.h
@@ -72,12 +72,18 @@ class ExternalAppHandler
PHONE = 1,
SMS = 2,
FAX = 3,
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 );
//calls the emailapplication and creates a mail with parameter emails as recipients
bool mailToContacts( const QString& emails );
@@ -90,24 +96,37 @@ class ExternalAppHandler
//calls the pagerapplication with the number
bool callByPager( const QString& pagernumber );
//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();
QList<DefaultAppItem> getAvailableDefaultItems(Types);
DefaultAppItem* getDefaultItem(Types, int);
private:
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);
QString& translateMessage(QString& message, const QString& emails) const;
void passParameter(QCopEnvelope* e, const QString& parameters, const QString& param1) const;