summaryrefslogtreecommitdiffabout
path: root/kaddressbook
authorulf69 <ulf69>2004-08-10 01:34:22 (UTC)
committer ulf69 <ulf69>2004-08-10 01:34:22 (UTC)
commitc9d570427f3d5bead7bee1301514a2d4b82836ea (patch) (unidiff)
tree8d25f388217c591b7dac1db6c26d0777e6459352 /kaddressbook
parent4f05a9fcbb9e54184aef93883886aaf865104463 (diff)
downloadkdepimpi-c9d570427f3d5bead7bee1301514a2d4b82836ea.zip
kdepimpi-c9d570427f3d5bead7bee1301514a2d4b82836ea.tar.gz
kdepimpi-c9d570427f3d5bead7bee1301514a2d4b82836ea.tar.bz2
enhancements to configure external apps like email and phones through a
generalized interface
Diffstat (limited to 'kaddressbook') (more/less context) (ignore whitespace changes)
-rw-r--r--kaddressbook/kabcore.cpp53
-rw-r--r--kaddressbook/kcmconfigs/kcmkabconfig.cpp20
-rw-r--r--kaddressbook/kcmconfigs/kcmkabconfig.h10
3 files changed, 28 insertions, 55 deletions
diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp
index 4303cab..fe4841a 100644
--- a/kaddressbook/kabcore.cpp
+++ b/kaddressbook/kabcore.cpp
@@ -76,32 +76,34 @@
76#include <kresources/kcmkresources.h> 76#include <kresources/kcmkresources.h>
77#include <ktoolbar.h> 77#include <ktoolbar.h>
78 78
79 79
80//#include <qlabel.h> 80//#include <qlabel.h>
81 81
82 82
83#ifndef DESKTOP_VERSION 83#ifndef DESKTOP_VERSION
84#include <qtopia/services.h> 84#include <qtopia/services.h>
85#include <qtopia/qcopenvelope_qws.h> 85#include <qtopia/qcopenvelope_qws.h>
86#include <qpe/ir.h> 86#include <qpe/ir.h>
87#endif 87#endif
88 88
89#endif // KAB_EMBEDDED 89#endif // KAB_EMBEDDED
90#include "kcmconfigs/kcmkabconfig.h" 90#include "kcmconfigs/kcmkabconfig.h"
91#include "kcmconfigs/kcmkdepimconfig.h" 91#include "kcmconfigs/kcmkdepimconfig.h"
92#include "kpimglobalprefs.h"
93#include "externalapphandler.h"
92 94
93 95
94#include <kresources/selectdialog.h> 96#include <kresources/selectdialog.h>
95#include <kmessagebox.h> 97#include <kmessagebox.h>
96 98
97#include <picture.h> 99#include <picture.h>
98#include <resource.h> 100#include <resource.h>
99 101
100//US#include <qsplitter.h> 102//US#include <qsplitter.h>
101#include <qmap.h> 103#include <qmap.h>
102#include <qdir.h> 104#include <qdir.h>
103#include <qfile.h> 105#include <qfile.h>
104#include <qvbox.h> 106#include <qvbox.h>
105#include <qlayout.h> 107#include <qlayout.h>
106#include <qclipboard.h> 108#include <qclipboard.h>
107#include <qtextstream.h> 109#include <qtextstream.h>
@@ -454,55 +456,33 @@ void KABCore::setContactSelected( const QString &uid )
454 //mActionBeam->setEnabled( selected ); 456 //mActionBeam->setEnabled( selected );
455 457
456 if (mActionBeamVCard) 458 if (mActionBeamVCard)
457 mActionBeamVCard->setEnabled( selected ); 459 mActionBeamVCard->setEnabled( selected );
458 460
459 mActionWhoAmI->setEnabled( selected ); 461 mActionWhoAmI->setEnabled( selected );
460 mActionCategories->setEnabled( selected ); 462 mActionCategories->setEnabled( selected );
461} 463}
462 464
463void KABCore::sendMail() 465void KABCore::sendMail()
464{ 466{
465 sendMail( mViewManager->selectedEmails().join( ", " ) ); 467 sendMail( mViewManager->selectedEmails().join( ", " ) );
466} 468}
467 469
468void KABCore::sendMail( const QString& email ) 470void KABCore::sendMail( const QString& email )
469{ 471{
470//US original kde implementation : kapp->invokeMailer( email, "" ); 472 bool result = ExternalAppHandler::instance()->mailToContacts(email);
471
472/*US original qtopia implementation
473 PimContact c = abList->currentEntry();
474 QString name = c.fileAs();
475 QString email = c.defaultEmail();
476#ifndef QT_NO_COP
477 QCopEnvelope e(Service::channel("Email"), "writeMail(QString,QString)");
478 e << name << email;
479#else
480*/
481
482
483#ifndef QT_NO_COP
484 QCString channel = KABPrefs::instance()->mEmailChannel.latin1();
485 qDebug("Using QCopEnvelope e(\"" + channel + "\", \"writeMail(QMap(QString,QString))\")");
486
487 QCopEnvelope e(channel, "writeMail(QString,QString)");
488 //US we need no names in the To field. The emailadresses are enough
489 e << "" << email;
490#else
491 KMessageBox::sorry( this, i18n( "This version does not support sending emails." ) );
492#endif
493} 473}
494 474
495 475
496 476
497void KABCore::mailVCard() 477void KABCore::mailVCard()
498{ 478{
499 QStringList uids = mViewManager->selectedUids(); 479 QStringList uids = mViewManager->selectedUids();
500 if ( !uids.isEmpty() ) 480 if ( !uids.isEmpty() )
501 mailVCard( uids ); 481 mailVCard( uids );
502} 482}
503 483
504void KABCore::mailVCard( const QStringList& uids ) 484void KABCore::mailVCard( const QStringList& uids )
505{ 485{
506 QStringList urls; 486 QStringList urls;
507 487
508 QString tmpdir = locateLocal("tmp", KGlobal::getAppName()); 488 QString tmpdir = locateLocal("tmp", KGlobal::getAppName());
@@ -537,52 +517,43 @@ void KABCore::mailVCard( const QStringList& uids )
537 QFile outFile(fileName); 517 QFile outFile(fileName);
538 if ( outFile.open(IO_WriteOnly) ) { // file opened successfully 518 if ( outFile.open(IO_WriteOnly) ) { // file opened successfully
539 KABC::VCardConverter converter; 519 KABC::VCardConverter converter;
540 QString vcard; 520 QString vcard;
541 521
542 converter.addresseeToVCard( a, vcard ); 522 converter.addresseeToVCard( a, vcard );
543 523
544 QTextStream t( &outFile ); // use a text stream 524 QTextStream t( &outFile ); // use a text stream
545 t.setEncoding( QTextStream::UnicodeUTF8 ); 525 t.setEncoding( QTextStream::UnicodeUTF8 );
546 t << vcard; 526 t << vcard;
547 527
548 outFile.close(); 528 outFile.close();
549 529
550 urls.append( fileName ); 530 urls.append( fileName );
551 } 531 }
552 } 532 }
533
534 bool result = ExternalAppHandler::instance()->mailAttachments(urls.join(", "));
535
536
553/*US 537/*US
554 kapp->invokeMailer( QString::null, QString::null, QString::null, 538 kapp->invokeMailer( QString::null, QString::null, QString::null,
555 QString::null, // subject 539 QString::null, // subject
556 QString::null, // body 540 QString::null, // body
557 QString::null, 541 QString::null,
558 urls ); // attachments 542 urls ); // attachments
559*/ 543*/
560#ifndef QT_NO_COP
561 QCString channel = KABPrefs::instance()->mEmailChannel.latin1();
562 qDebug("Using QCopEnvelope e(\"" + channel + "\", \"writeMail(QMap(QString,QString))\")");
563
564 QMap<QString, QString> parameterMap;
565 parameterMap.insert("ATTACHMENT<n>", urls.join(", "));
566
567 QCopEnvelope e(channel, "writeMail(QMap(QString,QString))");
568 e << parameterMap;
569#else
570 KMessageBox::sorry( this, i18n( "This version does not support sending emails." ) );
571#endif
572
573 544
574} 545}
575 546
576/** 547/**
577 Beams the "WhoAmI contact. 548 Beams the "WhoAmI contact.
578*/ 549*/
579void KABCore::beamMySelf() 550void KABCore::beamMySelf()
580{ 551{
581 KABC::Addressee a = KABC::StdAddressBook::self()->whoAmI(); 552 KABC::Addressee a = KABC::StdAddressBook::self()->whoAmI();
582 if (!a.isEmpty()) 553 if (!a.isEmpty())
583 { 554 {
584 QStringList uids; 555 QStringList uids;
585 uids << a.uid(); 556 uids << a.uid();
586 557
587 beamVCard(uids); 558 beamVCard(uids);
588 } else { 559 } else {
@@ -1184,37 +1155,39 @@ QString KABCore::getNameByPhone( const QString &phone )
1184 ownerName = (*iter).formattedName(); 1155 ownerName = (*iter).formattedName();
1185 found = true; 1156 found = true;
1186 } 1157 }
1187 } 1158 }
1188 } 1159 }
1189 1160
1190 return ownerName; 1161 return ownerName;
1191#else //KAB_EMBEDDED 1162#else //KAB_EMBEDDED
1192 qDebug("KABCore::getNameByPhone finsih method"); 1163 qDebug("KABCore::getNameByPhone finsih method");
1193 return ""; 1164 return "";
1194#endif //KAB_EMBEDDED 1165#endif //KAB_EMBEDDED
1195 1166
1196} 1167}
1197 1168
1198void KABCore::openConfigDialog() 1169void KABCore::openConfigDialog()
1199{ 1170{
1200 KABPrefs* prefs = KABPrefs::instance(); 1171 KABPrefs* kab_prefs = KABPrefs::instance();
1201 KCMultiDialog* ConfigureDialog = new KCMultiDialog( prefs, "PIM", this ,"kabconfigdialog", true ); 1172 KPimGlobalPrefs* kpim_prefs = KPimGlobalPrefs::instance();
1202 KCMKabConfig* kabcfg = new KCMKabConfig( ConfigureDialog->getNewVBoxPage(i18n( "Addressbook")) , "KCMKabConfig" ); 1173
1174 KCMultiDialog* ConfigureDialog = new KCMultiDialog( "PIM", this ,"kabconfigdialog", true );
1175 KCMKabConfig* kabcfg = new KCMKabConfig( kab_prefs, ConfigureDialog->getNewVBoxPage(i18n( "Addressbook")) , "KCMKabConfig" );
1203 ConfigureDialog->addModule(kabcfg ); 1176 ConfigureDialog->addModule(kabcfg );
1204 KCMKdePimConfig* kdelibcfg = new KCMKdePimConfig( ConfigureDialog->getNewVBoxPage(i18n( "Pim")) , "KCMKdeLibConfig" ); 1177 KCMKdePimConfig* kdelibcfg = new KCMKdePimConfig( kpim_prefs, ConfigureDialog->getNewVBoxPage(i18n( "Global")) , "KCMKdeLibConfig" );
1205 ConfigureDialog->addModule(kdelibcfg ); 1178 ConfigureDialog->addModule(kdelibcfg );
1206 1179
1207 1180
1208 1181
1209 connect( ConfigureDialog, SIGNAL( applyClicked() ), 1182 connect( ConfigureDialog, SIGNAL( applyClicked() ),
1210 this, SLOT( configurationChanged() ) ); 1183 this, SLOT( configurationChanged() ) );
1211 connect( ConfigureDialog, SIGNAL( okClicked() ), 1184 connect( ConfigureDialog, SIGNAL( okClicked() ),
1212 this, SLOT( configurationChanged() ) ); 1185 this, SLOT( configurationChanged() ) );
1213 saveSettings(); 1186 saveSettings();
1214 ConfigureDialog->showMaximized(); 1187 ConfigureDialog->showMaximized();
1215 if ( ConfigureDialog->exec() ) 1188 if ( ConfigureDialog->exec() )
1216 KMessageBox::information( this, i18n("If you configured \nExtensions,\nplease restart!\n") ); 1189 KMessageBox::information( this, i18n("If you configured \nExtensions,\nplease restart!\n") );
1217 delete ConfigureDialog; 1190 delete ConfigureDialog;
1218} 1191}
1219 1192
1220void KABCore::openLDAPDialog() 1193void KABCore::openLDAPDialog()
diff --git a/kaddressbook/kcmconfigs/kcmkabconfig.cpp b/kaddressbook/kcmconfigs/kcmkabconfig.cpp
index 26398f8..b460a81 100644
--- a/kaddressbook/kcmconfigs/kcmkabconfig.cpp
+++ b/kaddressbook/kcmconfigs/kcmkabconfig.cpp
@@ -26,63 +26,63 @@
26#ifndef KAB_EMBEDDED 26#ifndef KAB_EMBEDDED
27#include <kaboutdata.h> 27#include <kaboutdata.h>
28#endif //KAB_EMBEDDED 28#endif //KAB_EMBEDDED
29#include <kdebug.h> 29#include <kdebug.h>
30//#include <klocale.h> 30//#include <klocale.h>
31//#include <stdlib.h> 31//#include <stdlib.h>
32 32
33#include "kabconfigwidget.h" 33#include "kabconfigwidget.h"
34 34
35#include "kcmkabconfig.h" 35#include "kcmkabconfig.h"
36 36
37#include "kabprefs.h" 37#include "kabprefs.h"
38#include "kprefs.h" 38#include "kprefs.h"
39 39
40extern "C" 40extern "C"
41{ 41{
42 KCModule *create_kabconfig( QWidget *parent, const char * ) { 42 KCModule *create_kabconfig( KABPrefs* prefs, QWidget *parent, const char * ) {
43 return new KCMKabConfig( parent, "kcmkabconfig" ); 43 return new KCMKabConfig( prefs, parent, "kcmkabconfig" );
44 } 44 }
45} 45}
46 46
47KCMKabConfig::KCMKabConfig( QWidget *parent, const char *name ) 47KCMKabConfig::KCMKabConfig( KABPrefs* prefs, QWidget *parent, const char *name )
48 : KCModule( parent, name ) 48 : KCModule( prefs, parent, name )
49{ 49{
50 //abort(); 50 //abort();
51 QVBoxLayout *layout = new QVBoxLayout( this ); 51 QVBoxLayout *layout = new QVBoxLayout( this );
52 mConfigWidget = new KABConfigWidget( this, "mConfigWidget" ); 52 mConfigWidget = new KABConfigWidget( this, "mConfigWidget" );
53 layout->addWidget( mConfigWidget ); 53 layout->addWidget( mConfigWidget );
54 layout->setSpacing( 0 ); 54 layout->setSpacing( 0 );
55 layout->setMargin( 0 ); 55 layout->setMargin( 0 );
56 56
57 connect( mConfigWidget, SIGNAL( changed( bool ) ), SIGNAL( changed( bool ) ) ); 57 connect( mConfigWidget, SIGNAL( changed( bool ) ), SIGNAL( changed( bool ) ) );
58} 58}
59 59
60void KCMKabConfig::load(KPrefs* prefs) 60void KCMKabConfig::load()
61{ 61{
62 mConfigWidget->restoreSettings((KABPrefs*)prefs); 62 mConfigWidget->restoreSettings((KABPrefs*)getPreferences());
63} 63}
64 64
65void KCMKabConfig::save(KPrefs* prefs) 65void KCMKabConfig::save()
66{ 66{
67 mConfigWidget->saveSettings((KABPrefs*)prefs); 67 mConfigWidget->saveSettings((KABPrefs*)getPreferences());
68} 68}
69 69
70void KCMKabConfig::defaults(KPrefs* prefs) 70void KCMKabConfig::defaults()
71{ 71{
72 mConfigWidget->defaults((KABPrefs*)prefs); 72 mConfigWidget->defaults((KABPrefs*)getPreferences());
73} 73}
74 74
75#ifndef KAB_EMBEDDED 75#ifndef KAB_EMBEDDED
76const KAboutData* KCMKabConfig::aboutData() const 76const KAboutData* KCMKabConfig::aboutData() const
77{ 77{
78 KAboutData *about = new KAboutData( I18N_NOOP( "kcmkabconfig" ), 78 KAboutData *about = new KAboutData( I18N_NOOP( "kcmkabconfig" ),
79 I18N_NOOP( "KAddressBook Configure Dialog" ), 79 I18N_NOOP( "KAddressBook Configure Dialog" ),
80 0, 0, KAboutData::License_GPL, 80 0, 0, KAboutData::License_GPL,
81 I18N_NOOP( "(c), 2003 Tobias Koenig" ) ); 81 I18N_NOOP( "(c), 2003 Tobias Koenig" ) );
82 82
83 about->addAuthor( "Tobias Koenig", 0, "tokoe@kde.org" ); 83 about->addAuthor( "Tobias Koenig", 0, "tokoe@kde.org" );
84 84
85 return about; 85 return about;
86 86
87} 87}
88#endif //KAB_EMBEDDED 88#endif //KAB_EMBEDDED
diff --git a/kaddressbook/kcmconfigs/kcmkabconfig.h b/kaddressbook/kcmconfigs/kcmkabconfig.h
index b4858c1..1cb6ad3 100644
--- a/kaddressbook/kcmconfigs/kcmkabconfig.h
+++ b/kaddressbook/kcmconfigs/kcmkabconfig.h
@@ -14,34 +14,34 @@
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software 16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 18
19 As a special exception, permission is given to link this program 19 As a special exception, permission is given to link this program
20 with any edition of Qt, and distribute the resulting executable, 20 with any edition of Qt, and distribute the resulting executable,
21 without including the source code for Qt in the source distribution. 21 without including the source code for Qt in the source distribution.
22*/ 22*/
23 23
24#ifndef KCMKABCONFIG_H 24#ifndef KCMKABCONFIG_H
25#define KCMKABCONFIG_H 25#define KCMKABCONFIG_H
26 26
27#include <kcmodule.h> 27#include <kcmodule.h>
28 28
29class KABConfigWidget; 29class KABConfigWidget;
30class KPrefs; 30class KABPrefs;
31 31
32class KCMKabConfig : public KCModule 32class KCMKabConfig : public KCModule
33{ 33{
34 Q_OBJECT 34 Q_OBJECT
35 35
36 public: 36 public:
37 KCMKabConfig( QWidget *parent = 0, const char *name = 0 ); 37 KCMKabConfig( KABPrefs* prefs, QWidget *parent = 0, const char *name = 0 );
38 38
39 virtual void load(KPrefs* prefs); 39 virtual void load();
40 virtual void save(KPrefs* prefs); 40 virtual void save();
41 virtual void defaults(KPrefs* prefs); 41 virtual void defaults();
42 42
43 private: 43 private:
44 KABConfigWidget *mConfigWidget; 44 KABConfigWidget *mConfigWidget;
45}; 45};
46 46
47#endif 47#endif