summaryrefslogtreecommitdiffabout
path: root/kaddressbook
authorulf69 <ulf69>2004-08-05 22:50:37 (UTC)
committer ulf69 <ulf69>2004-08-05 22:50:37 (UTC)
commitc807547c32dd25e9d181d396590af9915b7a1166 (patch) (side-by-side diff)
tree0950df8ef9653ab30e2faebf67bdd254e0ec1b8a /kaddressbook
parentbb1dd236b41cbd5cc4aed3b320801aa07974122d (diff)
downloadkdepimpi-c807547c32dd25e9d181d396590af9915b7a1166.zip
kdepimpi-c807547c32dd25e9d181d396590af9915b7a1166.tar.gz
kdepimpi-c807547c32dd25e9d181d396590af9915b7a1166.tar.bz2
enabled the sending of emails to selected contacts, and mailing of vCards
Diffstat (limited to 'kaddressbook') (more/less context) (show whitespace changes)
-rw-r--r--kaddressbook/kabcore.cpp94
-rw-r--r--kaddressbook/kabprefs.cpp3
-rw-r--r--kaddressbook/kabprefs.h12
-rw-r--r--kaddressbook/kcmconfigs/kabconfigwidget.cpp109
-rw-r--r--kaddressbook/kcmconfigs/kabconfigwidget.h8
5 files changed, 193 insertions, 33 deletions
diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp
index a7ca0ce..2a54900 100644
--- a/kaddressbook/kabcore.cpp
+++ b/kaddressbook/kabcore.cpp
@@ -80,4 +80,10 @@
-//US#include <qpe/resource.h> // needed for Resource::loadPixmap
//#include <qlabel.h>
+
+
+#ifdef Q_WS_QWS
+#include <qtopia/services.h>
+#include <qtopia/qcopenvelope_qws.h>
+#endif
+
#endif // KAB_EMBEDDED
@@ -93,2 +99,5 @@
//US#include <qsplitter.h>
+#include <qmap.h>
+#include <qdir.h>
+#include <qfile.h>
#include <qvbox.h>
@@ -96,4 +105,7 @@
#include <qclipboard.h>
+#include <qtextstream.h>
#include <libkdepim/categoryselectdialog.h>
+#include <kabc/vcardconverter.h>
+
@@ -131,6 +143,3 @@ KABCore::KABCore( KXMLGUIClient *client, bool readWrite, QWidget *parent, const
{
-#ifdef KAB_EMBEDDED
- //US we define here our own global actioncollection.
- //mActionCollection = new KActionCollection(this);
-#endif //KAB_EMBEDDED
+
mExtensionBarSplitter = 0;
@@ -198,2 +207,5 @@ KABCore::KABCore( KXMLGUIClient *client, bool readWrite, QWidget *parent, const
+ connect( mDetails, SIGNAL( sendEmail( const QString& ) ),
+ SLOT( sendMail( const QString& ) ) );
+
#ifndef KAB_EMBEDDED
@@ -202,4 +214,2 @@ KABCore::KABCore( KXMLGUIClient *client, bool readWrite, QWidget *parent, const
- connect( mDetails, SIGNAL( sendEmail( const QString& ) ),
- SLOT( sendMail( const QString& ) ) );
connect( mDetails, SIGNAL( browse( const QString& ) ),
@@ -223,8 +233,2 @@ KABCore::~KABCore()
KABC::StdAddressBook::close();
-
-#ifdef KAB_EMBEDDED
- //US we define here our own global actioncollection.
- // delete mActionCollection;
-#endif //KAB_EMBEDDED
-
}
@@ -453,7 +457,3 @@ void KABCore::sendMail()
{
-#ifndef KAB_EMBEDDED
sendMail( mViewManager->selectedEmails().join( ", " ) );
-#else //KAB_EMBEDDED
- qDebug("KABCore::sendMail() ust be fixed");
-#endif //KAB_EMBEDDED
}
@@ -462,7 +462,25 @@ void KABCore::sendMail( const QString& email )
{
-#ifndef KAB_EMBEDDED
- kapp->invokeMailer( email, "" );
-#else //KAB_EMBEDDED
- qDebug("KABCore::sendMail(const QString& email) ust be fixed");
-#endif //KAB_EMBEDDED
+//US original kde implementation : kapp->invokeMailer( email, "" );
+
+/*US original qtopia implementation
+ PimContact c = abList->currentEntry();
+ QString name = c.fileAs();
+ QString email = c.defaultEmail();
+#ifndef QT_NO_COP
+ QCopEnvelope e(Service::channel("Email"), "writeMail(QString,QString)");
+ e << name << email;
+#else
+*/
+
+
+#ifndef QT_NO_COP
+ QCString channel = KABPrefs::instance()->mEmailChannel.latin1();
+ qDebug("Using QCopEnvelope e(\"" + channel + "\", \"writeMail(QMap(QString,QString))\")");
+
+ QCopEnvelope e(channel, "writeMail(QString,QString)");
+ //US we need no names in the To field. The emailadresses are enough
+ e << "" << email;
+#else
+ KMessageBox::sorry( this, i18n( "This version does not support sending emails." ) );
+#endif
}
@@ -471,3 +489,2 @@ void KABCore::mailVCard()
{
-#ifndef KAB_EMBEDDED
QStringList uids = mViewManager->selectedUids();
@@ -475,5 +492,2 @@ void KABCore::mailVCard()
mailVCard( uids );
-#else //KAB_EMBEDDED
- qDebug("KABCore::mailVCard() must be fixed");
-#endif //KAB_EMBEDDED
}
@@ -482,5 +496,7 @@ void KABCore::mailVCard( const QStringList& uids )
{
-#ifndef KAB_EMBEDDED
QStringList urls;
+ QString tmpdir = locateLocal("tmp", KGlobal::getAppName());
+
+/*US
// Create a temp dir, so that we can put the files in it with proper names
@@ -494,2 +510,7 @@ void KABCore::mailVCard( const QStringList& uids )
tempDir.unlink();
+*/
+ QString dirName = tmpdir + "/" + KApplication::randomString( 8 );
+
+
+
QDir().mkdir( dirName, true );
@@ -522,3 +543,3 @@ void KABCore::mailVCard( const QStringList& uids )
}
-
+/*US
kapp->invokeMailer( QString::null, QString::null, QString::null,
@@ -528,5 +549,16 @@ void KABCore::mailVCard( const QStringList& uids )
urls ); // attachments
-#else //KAB_EMBEDDED
- qDebug("KABCore::mailVCard( must be fixed");
-#endif //KAB_EMBEDDED
+*/
+#ifndef QT_NO_COP
+ QCString channel = KABPrefs::instance()->mEmailChannel.latin1();
+ qDebug("Using QCopEnvelope e(\"" + channel + "\", \"writeMail(QMap(QString,QString))\")");
+
+ QMap<QString, QString> parameterMap;
+ parameterMap.insert("ATTACHMENT<n>", urls.join(", "));
+
+ QCopEnvelope e(channel, "writeMail(QMap(QString,QString))");
+ e << parameterMap;
+#else
+ KMessageBox::sorry( this, i18n( "This version does not support sending emails." ) );
+#endif
+
diff --git a/kaddressbook/kabprefs.cpp b/kaddressbook/kabprefs.cpp
index 5b3b1ab..8bd4b15 100644
--- a/kaddressbook/kabprefs.cpp
+++ b/kaddressbook/kabprefs.cpp
@@ -52,2 +52,5 @@ KABPrefs::KABPrefs()
addItemBool("ToolBarUp",&mToolBarUp, false );
+ addItemInt( "EmailChannelType", &mEmailClient, OMPI );
+ addItemString( "EmailChannelOther", &mEmailChannel, "" );
+
#endif //KAB_EMBEDDED
diff --git a/kaddressbook/kabprefs.h b/kaddressbook/kabprefs.h
index 370fc5b..c81a9a9 100644
--- a/kaddressbook/kabprefs.h
+++ b/kaddressbook/kabprefs.h
@@ -39,2 +39,10 @@ class KABPrefs : public KPimPrefs
+ enum EMailClients {
+ OMPI = 0,
+ QTOPIA = 1,
+ OPIE = 2,
+ OTHER = 3
+ };
+
+
// General
@@ -51,2 +59,6 @@ class KABPrefs : public KPimPrefs
bool mAskForQuit;
+
+ int mEmailClient;
+ QString mEmailChannel;
+
/** Set preferences to default values */
diff --git a/kaddressbook/kcmconfigs/kabconfigwidget.cpp b/kaddressbook/kcmconfigs/kabconfigwidget.cpp
index 38c7946..1bac26f 100644
--- a/kaddressbook/kcmconfigs/kabconfigwidget.cpp
+++ b/kaddressbook/kcmconfigs/kabconfigwidget.cpp
@@ -29,2 +29,6 @@
#include <qtabwidget.h>
+#include <qcombobox.h>
+#include <qlineedit.h>
+#include <qlabel.h>
+#include <qfile.h>
@@ -95,3 +99,3 @@ KABConfigWidget::KABConfigWidget( QWidget *parent, const char *name )
KDialog::spacingHintSmall() );
-
+ //general groupbox
QGroupBox *groupBox = new QGroupBox( 0, Qt::Vertical, i18n( "General" ), generalPage );
@@ -111,2 +115,5 @@ KABConfigWidget::KABConfigWidget( QWidget *parent, const char *name )
+
+ //extensions groupbox
+
groupBox = new QGroupBox( 0, Qt::Vertical, i18n( "Extensions" ), generalPage );
@@ -147,4 +154,92 @@ KABConfigWidget::KABConfigWidget( QWidget *parent, const char *name )
connect( mAddresseeWidget, SIGNAL( modified() ), SLOT( modified() ) );
+
+ // mailclient page
+ QWidget *mailclientPage = new QWidget( this );
+ layout = new QVBoxLayout( mailclientPage, KDialog::marginHintSmall(),
+ KDialog::spacingHintSmall() );
+
+ groupBox = new QGroupBox( 0, Qt::Vertical, i18n( "Used Mail Client" ), mailclientPage );
+ boxLayout = new QVBoxLayout( groupBox->layout() );
+ boxLayout->setAlignment( Qt::AlignTop );
+// boxLayout->setMargin(KDialog::marginHintSmall() );
+// groupBox->layout()->setMargin(KDialog::marginHintSmall()) ;
+// groupBox->layout()->setSpacing(KDialog::spacingHintSmall());
+// boxLayout->setSpacing( KDialog::spacingHintSmall() );
+
+ mEmailClient = new QComboBox( groupBox );
+ mEmailClient->insertItem( i18n("OM/Pi"), KABPrefs::OMPI );
+ mEmailClient->insertItem( i18n("Qtopia mail"), KABPrefs::QTOPIA );
+ mEmailClient->insertItem( i18n("Opie mail"), KABPrefs::OPIE );
+ mEmailClient->insertItem( i18n("Other"), KABPrefs::OTHER );
+ boxLayout->addWidget( mEmailClient );
+
+ connect( mEmailClient, SIGNAL( activated( int ) ),
+ this, SLOT (emailclient_changed( int ) ) );
+
+ QLabel* lab = new QLabel( i18n("Channel:"), groupBox);
+ boxLayout->addWidget( lab );
+ mEmailChannel = new QLineEdit(groupBox);
+ mEmailChannel->setReadOnly(true);
+ boxLayout->addWidget( mEmailChannel );
+
+ layout->addWidget( groupBox );
+ tabWidget->addTab( mailclientPage, i18n( "Mail" ) );
+
+
+
}
+
+
+void KABConfigWidget::emailclient_changed( int newClient )
+{
+ if (newClient == KABPrefs::OTHER)
+ mEmailChannel->setReadOnly(false);
+ else
+ mEmailChannel->setReadOnly(true);
+
+ QString opiepath = QString::fromLatin1( getenv("OPIEDIR") );
+ QString qtopiapath = QString::fromLatin1( getenv("QPEDIR") );
+
+ if (opiepath.isEmpty())
+ opiepath = qtopiapath;
+
+ QString text = mEmailChannel->text();
+
+ if (newClient == KABPrefs::OPIE)
+ {
+ if ( QFile::exists( opiepath + "/bin/opiemail" ))
+ text = "QPE/Application/opiemail";
+ else
+ text = "FILENOTFOUND: " + opiepath + "/bin/opiemail";
+ }
+ else if (newClient == KABPrefs::QTOPIA)
+ {
+ if ( QFile::exists( qtopiapath + "/bin/qtmail" ))
+ text = "QPE/Application/qtmail";
+ else
+ text = "FILENOTFOUND: " + qtopiapath + "/bin/qtmail";
+
+ }
+ else if (newClient == KABPrefs::OMPI)
+ {
+ if ( QFile::exists( qtopiapath + "/bin/ompi" ))
+ text = "QPE/Application/ompi";
+ else if ( QFile::exists( opiepath + "/bin/ompi" ))
+ text = "QPE/Application/ompi";
+ else
+ text = "FILENOTFOUND: " + qtopiapath + "/bin/ompi";
+
+ }
+ else
+ {
+ //do nothing if we choosed other
+ }
+
+ mEmailChannel->setText( text );
+
+
+}
+
+
void KABConfigWidget::restoreSettings()
@@ -156,2 +251,6 @@ void KABConfigWidget::restoreSettings()
mViewsSingleClickBox->setChecked( KABPrefs::instance()->mHonorSingleClick );
+
+ mEmailChannel->setText( KABPrefs::instance()->mEmailChannel );
+ mEmailClient->setCurrentItem(KABPrefs::instance()->mEmailClient);
+
mAddresseeWidget->restoreSettings();
@@ -169,2 +268,6 @@ void KABConfigWidget::saveSettings()
KABPrefs::instance()->mHonorSingleClick = mViewsSingleClickBox->isChecked();
+
+ KABPrefs::instance()->mEmailClient = mEmailClient->currentItem();
+ KABPrefs::instance()->mEmailChannel = mEmailChannel->text();
+
mAddresseeWidget->saveSettings();
@@ -182,2 +285,6 @@ void KABConfigWidget::defaults()
+ mEmailClient->setCurrentItem(KABPrefs::OMPI);
+ emailclient_changed( KABPrefs::OMPI );
+
+
emit changed( true );
diff --git a/kaddressbook/kcmconfigs/kabconfigwidget.h b/kaddressbook/kcmconfigs/kabconfigwidget.h
index 0f36d9e..9d1363b 100644
--- a/kaddressbook/kcmconfigs/kabconfigwidget.h
+++ b/kaddressbook/kcmconfigs/kabconfigwidget.h
@@ -31,3 +31,4 @@ class QListViewItem;
class QPushButton;
-
+class QComboBox;
+class QLineEdit;
class KListView;
@@ -53,2 +54,4 @@ class KABConfigWidget : public QWidget
+
+
private slots:
@@ -57,2 +60,3 @@ class KABConfigWidget : public QWidget
void itemClicked( QListViewItem* );
+ void emailclient_changed( int newClient );
@@ -67,2 +71,4 @@ class KABConfigWidget : public QWidget
QPushButton *mConfigureButton;
+ QComboBox* mEmailClient;
+ QLineEdit* mEmailChannel;