summaryrefslogtreecommitdiffabout
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libkdepim/externalapphandler.h18
-rw-r--r--libkdepim/kcmconfigs/kdepimconfigwidget.cpp15
2 files changed, 21 insertions, 12 deletions
diff --git a/libkdepim/externalapphandler.h b/libkdepim/externalapphandler.h
index efcdd89..3cf9e06 100644
--- a/libkdepim/externalapphandler.h
+++ b/libkdepim/externalapphandler.h
@@ -36,104 +36,110 @@ $Id$
class QCopEnvelope;
class ExternalAppHandler;
class DefaultAppItem
{
public:
DefaultAppItem(int type, int id, const QString& label, const QString& channel, const QString& message, const QString& parameters, const QString& message2, const QString& parameters2)
: _type(type), _id(id), _label(label), _channel(channel), _message(message), _parameters(parameters), _message2(message2), _parameters2(parameters2)
{ }
DefaultAppItem()
{ }
public:
int _type;
int _id;
QString _label;
QString _channel;
QString _message;
QString _parameters; // a list of parameters in stringrepresentation. Delimiter is ;
QString _message2;
QString _parameters2; // a list of parameters in stringrepresentation. Delimiter is ;
};
class ExternalAppHandler
{
public:
virtual ~ExternalAppHandler();
static ExternalAppHandler *instance();
enum Types {
EMAIL = 0,
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 with a number of attachments that need to be send.
+ //either parameter can be left empty.
+ bool mailToMultipleContacts( const QString& recipients, const QString& attachmenturls );
- //calls the emailapplication and creates a mail with parameter emails as recipients
- bool mailToContacts( const QString& emails );
+ //calls the emailapplication and creates a mail with parameter emailadress as recipients
+ bool mailToOneContact( const QString& name, const QString& emailadress );
+
+ //calls the emailapplication and creates a mail with parameter as recipients
+ // parameters format is
+ // NAME <EMAIL>:SUBJECT
+ bool mailToOneContact( const QString& adressline );
//calls the phoneapplication with the number
bool callByPhone( const QString& phonenumber );
//calls the smsapplication with the number
bool callBySMS( const QString& phonenumber );
//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;
+ QString& translateMessage(QString& message, const QString& param1, const QString& param2) const;
+ void passParameters(QCopEnvelope* e, const QString& parameters, const QString& param1, const QString& param2) const;
static ExternalAppHandler *sInstance;
};
#endif
diff --git a/libkdepim/kcmconfigs/kdepimconfigwidget.cpp b/libkdepim/kcmconfigs/kdepimconfigwidget.cpp
index c8b94db..4f4cc6a 100644
--- a/libkdepim/kcmconfigs/kdepimconfigwidget.cpp
+++ b/libkdepim/kcmconfigs/kdepimconfigwidget.cpp
@@ -96,110 +96,113 @@ KDEPIMConfigWidget::KDEPIMConfigWidget( QWidget *parent, const char *name )
// mailclient page
QWidget *externalAppsPage = new QWidget( this );
QVBoxLayout* layout = new QVBoxLayout( externalAppsPage, KDialog::marginHintSmall(),
KDialog::spacingHintSmall() );
mExternalApps = new QComboBox( externalAppsPage );
QMap<ExternalAppHandler::Types, QString>::Iterator it;
for( it = mExternalAppsMap.begin(); it != mExternalAppsMap.end(); ++it )
mExternalApps->insertItem( it.data(), it.key() );
layout->addWidget( mExternalApps );
connect( mExternalApps, SIGNAL( activated( int ) ),
this, SLOT (externalapp_changed( int ) ) );
mExternalAppGroupBox = new QGroupBox( 0, Qt::Vertical, i18n( "Used Mail Client" ), externalAppsPage );
QGridLayout *boxLayout = new QGridLayout( mExternalAppGroupBox->layout(), 4, 2, -1, "gridlayout" );
mClient = new QComboBox( mExternalAppGroupBox );
boxLayout->addMultiCellWidget( mClient, 0, 0, 0, 1 );
connect( mClient, SIGNAL( activated( int ) ),
this, SLOT (client_changed( int ) ) );
QLabel* lab = new QLabel( i18n("Channel:"), mExternalAppGroupBox);
boxLayout->addWidget( lab, 1, 0 );
mChannel = new QLineEdit(mExternalAppGroupBox);
mChannel->setReadOnly(true);
boxLayout->addMultiCellWidget( mChannel, 2 , 2, 0, 1 );
lab = new QLabel( i18n("Message:"), mExternalAppGroupBox);
boxLayout->addWidget( lab, 3, 0 );
mMessage = new QLineEdit(mExternalAppGroupBox);
mMessage->setReadOnly(true);
boxLayout->addWidget( mMessage , 4, 0);
lab = new QLabel( i18n("Parameters:"), mExternalAppGroupBox);
boxLayout->addWidget( lab, 3, 1 );
mParameters = new QLineEdit(mExternalAppGroupBox);
mParameters->setReadOnly(true);
boxLayout->addWidget( mParameters, 4, 1 );
+ lab = new QLabel( i18n("HINT: Delimiter=; Name=%1,Email=%2"), mExternalAppGroupBox);
+ boxLayout->addMultiCellWidget( lab, 5, 5, 0, 1 );
+
lab = new QLabel( i18n("extra Message:"), mExternalAppGroupBox);
- boxLayout->addWidget( lab, 5, 0 );
+ boxLayout->addWidget( lab, 6, 0 );
mMessage2 = new QLineEdit(mExternalAppGroupBox);
mMessage2->setReadOnly(true);
- boxLayout->addWidget( mMessage2 , 6, 0);
+ boxLayout->addWidget( mMessage2 , 7, 0);
lab = new QLabel( i18n("extra Parameters:"), mExternalAppGroupBox);
- boxLayout->addWidget( lab, 5, 1 );
+ boxLayout->addWidget( lab, 6, 1 );
mParameters2 = new QLineEdit(mExternalAppGroupBox);
mParameters2->setReadOnly(true);
- boxLayout->addWidget( mParameters2, 6, 1 );
+ boxLayout->addWidget( mParameters2, 7, 1 );
- lab = new QLabel( i18n("HINT: Delimiter=; Data=%1 "), mExternalAppGroupBox);
- boxLayout->addMultiCellWidget( lab, 7, 7, 0, 1 );
+ lab = new QLabel( i18n("HINT: Emails=%1,Attachments=%2"), mExternalAppGroupBox);
+ boxLayout->addMultiCellWidget( lab, 8, 8, 0, 1 );
connect( mChannel, SIGNAL( textChanged ( const QString & )), this, SLOT( textChanged ( const QString & )) );
connect( mMessage, SIGNAL( textChanged ( const QString & )), this, SLOT( textChanged ( const QString & )) );
connect( mParameters, SIGNAL( textChanged ( const QString & )), this, SLOT( textChanged ( const QString & )) );
connect( mMessage2, SIGNAL( textChanged ( const QString & )), this, SLOT( textChanged ( const QString & )) );
connect( mParameters2, SIGNAL( textChanged ( const QString & )), this, SLOT( textChanged ( const QString & )) );
layout->addWidget( mExternalAppGroupBox );
tabWidget->addTab( externalAppsPage, i18n( "External Apps." ) );
}
void KDEPIMConfigWidget::externalapp_changed( int newApp )
{
// first store the current data
saveEditFieldSettings();
// set mCurrentApp
mCurrentApp = (ExternalAppHandler::Types)newApp;
// set mCurrentClient
switch(mCurrentApp)
{
case(ExternalAppHandler::EMAIL):
mCurrentClient = mEmailClient;
break;
case(ExternalAppHandler::PHONE):
mCurrentClient = mPhoneClient;
break;
case(ExternalAppHandler::SMS):
mCurrentClient = mSMSClient;
break;
case(ExternalAppHandler::FAX):
mCurrentClient = mFaxClient;
break;
case(ExternalAppHandler::PAGER):
mCurrentClient = mPagerClient;
break;
default:
return;
}
// and at last update the widgets
updateClientWidgets();
}