summaryrefslogtreecommitdiffabout
path: root/libkdepim
Unidiff
Diffstat (limited to 'libkdepim') (more/less context) (show whitespace changes)
-rw-r--r--libkdepim/addresseeview.cpp1
-rw-r--r--libkdepim/kcmconfigs/kcmkdepimconfig.cpp24
-rw-r--r--libkdepim/kcmconfigs/kcmkdepimconfig.h10
-rw-r--r--libkdepim/kcmconfigs/kdepimconfigwidget.cpp530
-rw-r--r--libkdepim/kcmconfigs/kdepimconfigwidget.h68
-rw-r--r--libkdepim/kpimprefs.cpp11
-rw-r--r--libkdepim/kpimprefs.h19
-rw-r--r--libkdepim/libkdepim.pro4
-rw-r--r--libkdepim/libkdepimE.pro4
9 files changed, 510 insertions, 161 deletions
diff --git a/libkdepim/addresseeview.cpp b/libkdepim/addresseeview.cpp
index 547441c..83aba48 100644
--- a/libkdepim/addresseeview.cpp
+++ b/libkdepim/addresseeview.cpp
@@ -307,6 +307,7 @@ mText = "<table width=\"100%\">\n";
307 307
308 // at last display it... 308 // at last display it...
309 setText( mText ); 309 setText( mText );
310
310} 311}
311 312
312KABC::Addressee AddresseeView::addressee() const 313KABC::Addressee AddresseeView::addressee() const
diff --git a/libkdepim/kcmconfigs/kcmkdepimconfig.cpp b/libkdepim/kcmconfigs/kcmkdepimconfig.cpp
index 830d5d2..f26efe0 100644
--- a/libkdepim/kcmconfigs/kcmkdepimconfig.cpp
+++ b/libkdepim/kcmconfigs/kcmkdepimconfig.cpp
@@ -39,17 +39,19 @@ $Id$
39 39
40#include "kcmkdepimconfig.h" 40#include "kcmkdepimconfig.h"
41#include "kprefs.h" 41#include "kprefs.h"
42#include "kpimprefs.h" 42#include "kpimglobalprefs.h"
43
43#ifndef _WIN32_ 44#ifndef _WIN32_
44extern "C" 45extern "C"
45{ 46{
46 KCModule *create_kabconfig( QWidget *parent, const char * ) { 47 KCModule *create_kabconfig( KPimGlobalPrefs* prefs, QWidget *parent, const char * ) {
47 return new KCMKdePimConfig( parent, "kcmkdepimconfig" ); 48 return new KCMKdePimConfig( prefs, parent, "kcmkdepimconfig" );
48 } 49 }
49} 50}
50#endif 51#endif
51KCMKdePimConfig::KCMKdePimConfig( QWidget *parent, const char *name ) 52
52 : KCModule( parent, name ) 53KCMKdePimConfig::KCMKdePimConfig( KPimGlobalPrefs* prefs, QWidget *parent, const char *name )
54 : KCModule( prefs, parent, name )
53{ 55{
54 //abort(); 56 //abort();
55 QVBoxLayout *layout = new QVBoxLayout( this ); 57 QVBoxLayout *layout = new QVBoxLayout( this );
@@ -61,17 +63,17 @@ KCMKdePimConfig::KCMKdePimConfig( QWidget *parent, const char *name )
61 connect( mConfigWidget, SIGNAL( changed( bool ) ), SIGNAL( changed( bool ) ) ); 63 connect( mConfigWidget, SIGNAL( changed( bool ) ), SIGNAL( changed( bool ) ) );
62} 64}
63 65
64void KCMKdePimConfig::load(KPrefs* prefs) 66void KCMKdePimConfig::load()
65{ 67{
66 mConfigWidget->restoreSettings((KPimPrefs*)prefs); 68 mConfigWidget->restoreSettings((KPimGlobalPrefs*)getPreferences());
67} 69}
68 70
69void KCMKdePimConfig::save(KPrefs* prefs) 71void KCMKdePimConfig::save()
70{ 72{
71 mConfigWidget->saveSettings((KPimPrefs*)prefs); 73 mConfigWidget->saveSettings((KPimGlobalPrefs*)getPreferences());
72} 74}
73 75
74void KCMKdePimConfig::defaults(KPrefs* prefs) 76void KCMKdePimConfig::defaults()
75{ 77{
76 mConfigWidget->defaults((KPimPrefs*)prefs); 78 mConfigWidget->defaults((KPimGlobalPrefs*)getPreferences());
77} 79}
diff --git a/libkdepim/kcmconfigs/kcmkdepimconfig.h b/libkdepim/kcmconfigs/kcmkdepimconfig.h
index 8cb74f4..fa96eda 100644
--- a/libkdepim/kcmconfigs/kcmkdepimconfig.h
+++ b/libkdepim/kcmconfigs/kcmkdepimconfig.h
@@ -34,18 +34,18 @@ $Id$
34#include <kcmodule.h> 34#include <kcmodule.h>
35 35
36class KDEPIMConfigWidget; 36class KDEPIMConfigWidget;
37class KPrefs; 37class KPimGlobalPrefs;
38 38
39class KCMKdePimConfig : public KCModule 39class KCMKdePimConfig : public KCModule
40{ 40{
41 Q_OBJECT 41 Q_OBJECT
42 42
43 public: 43 public:
44 KCMKdePimConfig( QWidget *parent = 0, const char *name = 0 ); 44 KCMKdePimConfig( KPimGlobalPrefs* prefs, QWidget *parent = 0, const char *name = 0 );
45 45
46 virtual void load(KPrefs* prefs); 46 virtual void load();
47 virtual void save(KPrefs* prefs); 47 virtual void save();
48 virtual void defaults(KPrefs* prefs); 48 virtual void defaults();
49 49
50 private: 50 private:
51 KDEPIMConfigWidget *mConfigWidget; 51 KDEPIMConfigWidget *mConfigWidget;
diff --git a/libkdepim/kcmconfigs/kdepimconfigwidget.cpp b/libkdepim/kcmconfigs/kdepimconfigwidget.cpp
index 477267c..9964eeb 100644
--- a/libkdepim/kcmconfigs/kdepimconfigwidget.cpp
+++ b/libkdepim/kcmconfigs/kdepimconfigwidget.cpp
@@ -71,7 +71,7 @@ $Id$
71#include "extensionwidget.h" 71#include "extensionwidget.h"
72*/ 72*/
73 73
74#include "kpimprefs.h" 74#include "kpimglobalprefs.h"
75 75
76#include "kdepimconfigwidget.h" 76#include "kdepimconfigwidget.h"
77 77
@@ -79,189 +79,468 @@ $Id$
79KDEPIMConfigWidget::KDEPIMConfigWidget( QWidget *parent, const char *name ) 79KDEPIMConfigWidget::KDEPIMConfigWidget( QWidget *parent, const char *name )
80 : QWidget( parent, name ) 80 : QWidget( parent, name )
81{ 81{
82 mExternalAppsMap.insert(ExternalAppHandler::EMAIL, i18n("Email"));
83 mExternalAppsMap.insert(ExternalAppHandler::PHONE, i18n("Phone"));
84 mExternalAppsMap.insert(ExternalAppHandler::SMS, i18n("SMS"));
85 mExternalAppsMap.insert(ExternalAppHandler::FAX, i18n("Fax"));
86 mExternalAppsMap.insert(ExternalAppHandler::PAGER, i18n("Pager"));
87
88
82 QVBoxLayout *topLayout = new QVBoxLayout( this, 0, 89 QVBoxLayout *topLayout = new QVBoxLayout( this, 0,
83 KDialog::spacingHint() ); 90 KDialog::spacingHint() );
84 91
85 QTabWidget *tabWidget = new QTabWidget( this ); 92 QTabWidget *tabWidget = new QTabWidget( this );
86 topLayout->addWidget( tabWidget ); 93 topLayout->addWidget( tabWidget );
87/*US 94
88 // General page 95
89 QWidget *generalPage = new QWidget( this );
90 QVBoxLayout *layout = new QVBoxLayout( generalPage, KDialog::marginHintSmall(),
91 KDialog::spacingHintSmall() );
92 //general groupbox
93 QGroupBox *groupBox = new QGroupBox( 0, Qt::Vertical, i18n( "General" ), generalPage );
94 QVBoxLayout *boxLayout = new QVBoxLayout( groupBox->layout() );
95 boxLayout->setAlignment( Qt::AlignTop );
96 boxLayout->setMargin(KDialog::marginHintSmall() );
97 groupBox->layout()->setMargin(KDialog::marginHintSmall()) ;
98 groupBox->layout()->setSpacing(KDialog::spacingHintSmall());
99 boxLayout->setSpacing( KDialog::spacingHintSmall() );
100 mViewsSingleClickBox = new QCheckBox( i18n( "Honor KDE single click" ), groupBox, "msingle" );
101 boxLayout->addWidget( mViewsSingleClickBox );
102
103 mNameParsing = new QCheckBox( i18n( "Automatic name parsing for new addressees" ), groupBox, "mparse" );
104 boxLayout->addWidget( mNameParsing );
105
106 layout->addWidget( groupBox );
107
108
109 //extensions groupbox
110
111 QGroupBox *groupBox = new QGroupBox( 0, Qt::Vertical, i18n( "Extensions" ), generalPage );
112 QVBoxLayout *boxLayout = new QVBoxLayout( groupBox->layout() );
113 boxLayout->setAlignment( Qt::AlignTop );
114 boxLayout->setMargin(KDialog::marginHintSmall());
115 boxLayout->setSpacing(KDialog::spacingHintSmall());
116 groupBox->layout()->setMargin(1) ;
117 groupBox->layout()->setSpacing(0);
118 mExtensionView = new KListView( groupBox );
119 mExtensionView->setAllColumnsShowFocus( true );
120 mExtensionView->addColumn( i18n( "Name" ) );
121 mExtensionView->addColumn( i18n( "Description" ) );
122 mExtensionView->setMaximumHeight(80);
123
124 boxLayout->addWidget( mExtensionView );
125
126 mConfigureButton = new QPushButton( i18n( "Configure..." ), groupBox );
127 mConfigureButton->setEnabled( false );
128 boxLayout->addWidget( mConfigureButton );
129
130 layout->addWidget( groupBox );
131
132 connect( mNameParsing, SIGNAL( toggled( bool ) ), this, SLOT( modified() ) );
133 connect( mViewsSingleClickBox, SIGNAL( toggled( bool ) ), this, SLOT( modified() ) );
134 connect( mExtensionView, SIGNAL( selectionChanged( QListViewItem* ) ),
135 SLOT( selectionChanged( QListViewItem* ) ) );
136 connect( mExtensionView, SIGNAL( clicked( QListViewItem* ) ),
137 SLOT( itemClicked( QListViewItem* ) ) );
138 connect( mConfigureButton, SIGNAL( clicked() ),
139 SLOT( configureExtension() ) );
140
141 tabWidget->addTab( generalPage, i18n( "General" ) );
142
143 // Addressee page
144 mAddresseeWidget = new AddresseeWidget( this );
145 tabWidget->addTab( mAddresseeWidget, i18n( "Contact" ) );
146 connect( mAddresseeWidget, SIGNAL( modified() ), SLOT( modified() ) );
147*/
148 96
149 // mailclient page 97 // mailclient page
150 QWidget *mailclientPage = new QWidget( this ); 98 QWidget *externalAppsPage = new QWidget( this );
151 QVBoxLayout* layout = new QVBoxLayout( mailclientPage, KDialog::marginHintSmall(), 99 QVBoxLayout* layout = new QVBoxLayout( externalAppsPage, KDialog::marginHintSmall(),
152 KDialog::spacingHintSmall() ); 100 KDialog::spacingHintSmall() );
153 101
154 QGroupBox *groupBox = new QGroupBox( 0, Qt::Vertical, i18n( "Used Mail Client" ), mailclientPage ); 102 mExternalApps = new QComboBox( externalAppsPage );
155 QVBoxLayout* boxLayout = new QVBoxLayout( groupBox->layout() ); 103
156 boxLayout->setAlignment( Qt::AlignTop ); 104 QMap<ExternalAppHandler::Types, QString>::Iterator it;
157// boxLayout->setMargin(KDialog::marginHintSmall() ); 105 for( it = mExternalAppsMap.begin(); it != mExternalAppsMap.end(); ++it )
158// groupBox->layout()->setMargin(KDialog::marginHintSmall()) ; 106 mExternalApps->insertItem( it.data(), it.key() );
159// groupBox->layout()->setSpacing(KDialog::spacingHintSmall()); 107
160// boxLayout->setSpacing( KDialog::spacingHintSmall() ); 108 layout->addWidget( mExternalApps );
109
110 connect( mExternalApps, SIGNAL( activated( int ) ),
111 this, SLOT (externalapp_changed( int ) ) );
112
113
114
115
116 mExternalAppGroupBox = new QGroupBox( 0, Qt::Vertical, i18n( "Used Mail Client" ), externalAppsPage );
117 QGridLayout *boxLayout = new QGridLayout( mExternalAppGroupBox->layout(), 4, 2, -1, "gridlayout" );
118
161 119
162 mEmailClient = new QComboBox( groupBox ); 120 mClient = new QComboBox( mExternalAppGroupBox );
163 mEmailClient->insertItem( i18n("OM/Pi"), KPimPrefs::OMPI ); 121 boxLayout->addMultiCellWidget( mClient, 0, 0, 0, 1 );
164 mEmailClient->insertItem( i18n("Qtopia mail"), KPimPrefs::QTOPIA );
165 mEmailClient->insertItem( i18n("Opie mail"), KPimPrefs::OPIE );
166 mEmailClient->insertItem( i18n("Other"), KPimPrefs::OTHER );
167 boxLayout->addWidget( mEmailClient );
168 122
169 connect( mEmailClient, SIGNAL( activated( int ) ), 123 connect( mClient, SIGNAL( activated( int ) ),
170 this, SLOT (emailclient_changed( int ) ) ); 124 this, SLOT (client_changed( int ) ) );
171 125
172 QLabel* lab = new QLabel( i18n("Channel:"), groupBox); 126 QLabel* lab = new QLabel( i18n("Channel:"), mExternalAppGroupBox);
173 boxLayout->addWidget( lab ); 127 boxLayout->addWidget( lab, 1, 0 );
174 mEmailChannel = new QLineEdit(groupBox); 128 mChannel = new QLineEdit(mExternalAppGroupBox);
175 mEmailChannel->setReadOnly(true); 129 mChannel->setReadOnly(true);
176 boxLayout->addWidget( mEmailChannel ); 130 boxLayout->addMultiCellWidget( mChannel, 2 , 2, 0, 1 );
177 131
178 layout->addWidget( groupBox ); 132 lab = new QLabel( i18n("Message:"), mExternalAppGroupBox);
179 tabWidget->addTab( mailclientPage, i18n( "Mail" ) ); 133 boxLayout->addWidget( lab, 3, 0 );
134 mMessage = new QLineEdit(mExternalAppGroupBox);
135 mMessage->setReadOnly(true);
136 boxLayout->addWidget( mMessage , 4, 0);
180 137
138 lab = new QLabel( i18n("Parameters:"), mExternalAppGroupBox);
139 boxLayout->addWidget( lab, 3, 1 );
140 mParameters = new QLineEdit(mExternalAppGroupBox);
141 mParameters->setReadOnly(true);
142 boxLayout->addWidget( mParameters, 4, 1 );
181 143
144 lab = new QLabel( i18n("extra Message:"), mExternalAppGroupBox);
145 boxLayout->addWidget( lab, 5, 0 );
146 mMessage2 = new QLineEdit(mExternalAppGroupBox);
147 mMessage2->setReadOnly(true);
148 boxLayout->addWidget( mMessage2 , 6, 0);
149
150 lab = new QLabel( i18n("extra Parameters:"), mExternalAppGroupBox);
151 boxLayout->addWidget( lab, 5, 1 );
152 mParameters2 = new QLineEdit(mExternalAppGroupBox);
153 mParameters2->setReadOnly(true);
154 boxLayout->addWidget( mParameters2, 6, 1 );
155
156 lab = new QLabel( i18n("HINT: Delimiter=; Data=%1 "), mExternalAppGroupBox);
157 boxLayout->addMultiCellWidget( lab, 7, 7, 0, 1 );
158
159
160 connect( mChannel, SIGNAL( textChanged ( const QString & )), this, SLOT( textChanged ( const QString & )) );
161 connect( mMessage, SIGNAL( textChanged ( const QString & )), this, SLOT( textChanged ( const QString & )) );
162 connect( mParameters, SIGNAL( textChanged ( const QString & )), this, SLOT( textChanged ( const QString & )) );
163 connect( mMessage2, SIGNAL( textChanged ( const QString & )), this, SLOT( textChanged ( const QString & )) );
164 connect( mParameters2, SIGNAL( textChanged ( const QString & )), this, SLOT( textChanged ( const QString & )) );
165
166
167
168 layout->addWidget( mExternalAppGroupBox );
169 tabWidget->addTab( externalAppsPage, i18n( "External Apps." ) );
182 170
183} 171}
184 172
173void KDEPIMConfigWidget::externalapp_changed( int newApp )
174{
175 // first store the current data
176 saveEditFieldSettings();
185 177
178 // set mCurrentApp
179 mCurrentApp = (ExternalAppHandler::Types)newApp;
186 180
187void KDEPIMConfigWidget::emailclient_changed( int newClient ) 181 // set mCurrentClient
182 switch(mCurrentApp)
188{ 183{
189 if (newClient == KPimPrefs::OTHER) 184 case(ExternalAppHandler::EMAIL):
190 mEmailChannel->setReadOnly(false); 185 mCurrentClient = mEmailClient;
191 else 186 break;
192 mEmailChannel->setReadOnly(true); 187 case(ExternalAppHandler::PHONE):
188 mCurrentClient = mPhoneClient;
189 break;
190 case(ExternalAppHandler::SMS):
191 mCurrentClient = mSMSClient;
192 break;
193 case(ExternalAppHandler::FAX):
194 mCurrentClient = mFaxClient;
195 break;
196 case(ExternalAppHandler::PAGER):
197 mCurrentClient = mPagerClient;
198 break;
199 default:
200 return;
201 }
193 202
194 QString opiepath = QString::fromLatin1( getenv("OPIEDIR") ); 203 // and at last update the widgets
195 QString qtopiapath = QString::fromLatin1( getenv("QPEDIR") ); 204 updateClientWidgets();
205}
196 206
197 if (opiepath.isEmpty())
198 opiepath = qtopiapath;
199 207
200 QString text = mEmailChannel->text();
201 208
202 if (newClient == KPimPrefs::OPIE) 209void KDEPIMConfigWidget::client_changed( int newClient )
203 { 210 {
204 if ( QFile::exists( opiepath + "/bin/opiemail" )) 211 if (newClient == mCurrentClient)
205 text = "QPE/Application/opiemail"; 212 return;
206 else 213
207 text = "FILENOTFOUND: " + opiepath + "/bin/opiemail"; 214 // first store the current data
215 saveEditFieldSettings();
216
217
218 //then reset the clientvariable
219 mCurrentClient = newClient;
220
221 // and at last update the widgets
222 updateClientWidgets();
223
224 modified();
208 } 225 }
209 else if (newClient == KPimPrefs::QTOPIA) 226
227void KDEPIMConfigWidget::saveEditFieldSettings()
210 { 228 {
211 if ( QFile::exists( qtopiapath + "/bin/qtmail" )) 229
212 text = "QPE/Application/qtmail"; 230 switch(mCurrentApp)
213 else 231 {
214 text = "FILENOTFOUND: " + qtopiapath + "/bin/qtmail"; 232 case(ExternalAppHandler::EMAIL):
233 mEmailClient = mClient->currentItem();
234 break;
235 case(ExternalAppHandler::PHONE):
236 mPhoneClient= mClient->currentItem();
237 break;
238 case(ExternalAppHandler::SMS):
239 mSMSClient = mClient->currentItem();
240 break;
241 case(ExternalAppHandler::FAX):
242 mFaxClient = mClient->currentItem();
243 break;
244 case(ExternalAppHandler::PAGER):
245 mPagerClient = mClient->currentItem();
246 break;
247 default:
248 return;
249 }
250
251 //store the current data back to the apropriate membervariables if we had set it to "other"
252 if ((mCurrentApp == ExternalAppHandler::EMAIL) && (mCurrentClient == KPimGlobalPrefs::OTHER_EMC))
253 {
254 mEmailOtherChannel = mChannel->text();
255 mEmailOtherMessage = mMessage->text();
256 mEmailOtherMessageParameters = mParameters->text();
257 mEmailOtherMessage2 = mMessage2->text();
258 mEmailOtherMessageParameters2 = mParameters2->text();
259 }
260 else if ((mCurrentApp == ExternalAppHandler::PHONE) && (mCurrentClient == KPimGlobalPrefs::OTHER_PHC))
261 {
262 mPhoneOtherChannel = mChannel->text();
263 mPhoneOtherMessage = mMessage->text();
264 mPhoneOtherMessageParameters = mParameters->text();
265 }
266 else if ((mCurrentApp == ExternalAppHandler::SMS) && (mCurrentClient == KPimGlobalPrefs::OTHER_SMC))
267 {
268 mSMSOtherChannel = mChannel->text();
269 mSMSOtherMessage = mMessage->text();
270 mSMSOtherMessageParameters = mParameters->text();
271 }
272 else if ((mCurrentApp == ExternalAppHandler::FAX) && (mCurrentClient == KPimGlobalPrefs::OTHER_FAC))
273 {
274 mFaxOtherChannel = mChannel->text();
275 mFaxOtherMessage = mMessage->text();
276 mFaxOtherMessageParameters = mParameters->text();
277 }
278 else if ((mCurrentApp == ExternalAppHandler::PAGER) && (mCurrentClient == KPimGlobalPrefs::OTHER_PAC))
279 {
280 mPagerOtherChannel = mChannel->text();
281 mPagerOtherMessage = mMessage->text();
282 mPagerOtherMessageParameters = mParameters->text();
283 }
215 284
216 } 285 }
217 else if (newClient == KPimPrefs::OMPI) 286
287void KDEPIMConfigWidget::updateClientWidgets()
218 { 288 {
219 if ( QFile::exists( qtopiapath + "/bin/ompi" )) 289 bool blocked = signalsBlocked();
220 text = "QPE/Application/ompi"; 290 blockSignals( true );
221 else if ( QFile::exists( opiepath + "/bin/ompi" )) 291
222 text = "QPE/Application/ompi"; 292 // at this point we assume, that mCurrentApp and mCurrentClient are set to the values that we want to display
293 QMap<ExternalAppHandler::Types, QString>::Iterator it = mExternalAppsMap.find ( mCurrentApp );
294 if (it == mExternalAppsMap.end())
295 return;
296
297 // update group box
298 mExternalAppGroupBox->setTitle(i18n( "Used %1 Client" ).arg(it.data()));
299
300 //update the entries in the client combobox
301 mClient->clear();
302
303 QList<DefaultAppItem> items = ExternalAppHandler::instance()->getAvailableDefaultItems(mCurrentApp);
304 DefaultAppItem* dai;
305 for ( dai=items.first(); dai != 0; dai=items.next() )
306 {
307 mClient->insertItem( i18n(dai->_label), dai->_id );
308
309 if (dai->_id == mCurrentClient)
310 {
311 //restore the edit fields with the data of the local membervariables if we had set it to "other".
312 //Otherwise take the default data from externalapphandler.
313 mChannel->setText(dai->_channel);
314 mMessage->setText(dai->_message);
315 mParameters->setText(dai->_parameters);
316 mMessage2->setText(dai->_message2);
317 mParameters2->setText(dai->_parameters2);
318
319
320 if ((mCurrentApp == ExternalAppHandler::EMAIL) && (mCurrentClient == KPimGlobalPrefs::OTHER_EMC))
321 {
322 mChannel->setText(mEmailOtherChannel);
323 mMessage->setText(mEmailOtherMessage);
324 mParameters->setText(mEmailOtherMessageParameters);
325 mMessage2->setText(mEmailOtherMessage2);
326 mParameters2->setText(mEmailOtherMessageParameters2);
327 }
328 else if ((mCurrentApp == ExternalAppHandler::PHONE) && (mCurrentClient == KPimGlobalPrefs::OTHER_PHC))
329 {
330 mChannel->setText(mPhoneOtherChannel);
331 mMessage->setText(mPhoneOtherMessage);
332 mParameters->setText(mPhoneOtherMessageParameters);
333 }
334 else if ((mCurrentApp == ExternalAppHandler::SMS) && (mCurrentClient == KPimGlobalPrefs::OTHER_SMC))
335 {
336 mChannel->setText(mSMSOtherChannel);
337 mMessage->setText(mSMSOtherMessage);
338 mParameters->setText(mSMSOtherMessageParameters);
339 }
340 else if ((mCurrentApp == ExternalAppHandler::FAX) && (mCurrentClient == KPimGlobalPrefs::OTHER_FAC))
341 {
342 mChannel->setText(mFaxOtherChannel);
343 mMessage->setText(mFaxOtherMessage);
344 mParameters->setText(mFaxOtherMessageParameters);
345 }
346 else if ((mCurrentApp == ExternalAppHandler::PAGER) && (mCurrentClient == KPimGlobalPrefs::OTHER_PAC))
347 {
348 mChannel->setText(mPagerOtherChannel);
349 mMessage->setText(mPagerOtherMessage);
350 mParameters->setText(mPagerOtherMessageParameters);
351 }
352 }
353
354 }
355
356 bool readonly;
357 bool enabled;
358 if ( ((mCurrentApp == ExternalAppHandler::EMAIL) && (mCurrentClient == KPimGlobalPrefs::OTHER_EMC))
359 ||((mCurrentApp == ExternalAppHandler::PHONE) && (mCurrentClient == KPimGlobalPrefs::OTHER_PHC))
360 ||((mCurrentApp == ExternalAppHandler::SMS) && (mCurrentClient == KPimGlobalPrefs::OTHER_SMC))
361 ||((mCurrentApp == ExternalAppHandler::FAX) && (mCurrentClient == KPimGlobalPrefs::OTHER_FAC))
362 ||((mCurrentApp == ExternalAppHandler::PAGER) && (mCurrentClient == KPimGlobalPrefs::OTHER_PAC)))
363 {
364 readonly = false;
365 }
223 else 366 else
224 text = "FILENOTFOUND: " + qtopiapath + "/bin/ompi"; 367 {
368 readonly = true;
369 }
225 370
371 if ( ((mCurrentApp == ExternalAppHandler::EMAIL) && (mCurrentClient == KPimGlobalPrefs::NONE_EMC))
372 ||((mCurrentApp == ExternalAppHandler::PHONE) && (mCurrentClient == KPimGlobalPrefs::NONE_PHC))
373 ||((mCurrentApp == ExternalAppHandler::SMS) && (mCurrentClient == KPimGlobalPrefs::NONE_SMC))
374 ||((mCurrentApp == ExternalAppHandler::FAX) && (mCurrentClient == KPimGlobalPrefs::NONE_FAC))
375 ||((mCurrentApp == ExternalAppHandler::PAGER) && (mCurrentClient == KPimGlobalPrefs::NONE_PAC)))
376 {
377 enabled = false;
226 } 378 }
227 else 379 else
228 { 380 {
229 //do nothing if we choosed other 381 enabled = true;
230 } 382 }
231 383
232 mEmailChannel->setText( text );
233 384
385 mChannel->setReadOnly(readonly);
386 mMessage->setReadOnly(readonly);
387 mParameters->setReadOnly(readonly);
388 mMessage2->setReadOnly(readonly);
389 mParameters2->setReadOnly(readonly);
390
391 mChannel->setEnabled(enabled);
392 mMessage->setEnabled(enabled);
393 mParameters->setEnabled(enabled);
394 mMessage2->setEnabled(enabled);
395 mParameters2->setEnabled(enabled);
396
397
398
399 mClient->setCurrentItem(mCurrentClient);
400
401
402 // enable/disable the extra message/parameter field
403 if (mCurrentApp == ExternalAppHandler::EMAIL)
404 {
405 }
406 else
407 {
408 mMessage2->setText( "" );
409 mParameters2->setText( "" );
410 }
234 411
412 if (enabled == true) {
413 mMessage2->setEnabled(mCurrentApp == ExternalAppHandler::EMAIL);
414 mParameters2->setEnabled(mCurrentApp == ExternalAppHandler::EMAIL);
235} 415}
236 416
237 417
238void KDEPIMConfigWidget::restoreSettings(KPimPrefs* prefs) 418 blockSignals( blocked );
419
420}
421
422
423
424
425void KDEPIMConfigWidget::restoreSettings(KPimGlobalPrefs* prefs)
239{ 426{
240 bool blocked = signalsBlocked(); 427 bool blocked = signalsBlocked();
241 blockSignals( true ); 428 blockSignals( true );
242 429
243 mEmailChannel->setText( prefs->mEmailChannel ); 430 mEmailClient = prefs->mEmailClient;
244 mEmailClient->setCurrentItem(prefs->mEmailClient); 431 mEmailOtherChannel = prefs->mEmailOtherChannel;
432 mEmailOtherMessage = prefs->mEmailOtherMessage;
433 mEmailOtherMessageParameters = prefs->mEmailOtherMessageParameters;
434 mEmailOtherMessage2 = prefs->mEmailOtherMessage2;
435 mEmailOtherMessageParameters2 = prefs->mEmailOtherMessageParameters2;
436
437 mPhoneClient = prefs->mPhoneClient;
438 mPhoneOtherChannel = prefs->mPhoneOtherChannel;
439 mPhoneOtherMessage = prefs->mPhoneOtherMessage;
440 mPhoneOtherMessageParameters = prefs->mPhoneOtherMessageParameters;
441
442 mFaxClient = prefs->mFaxClient;
443 mFaxOtherChannel = prefs->mFaxOtherChannel;
444 mFaxOtherMessage = prefs->mFaxOtherMessage;
445 mFaxOtherMessageParameters = prefs->mFaxOtherMessageParameters;
446
447 mSMSClient = prefs->mSMSClient;
448 mSMSOtherChannel = prefs->mSMSOtherChannel;
449 mSMSOtherMessage = prefs->mSMSOtherMessage;
450 mSMSOtherMessageParameters = prefs->mSMSOtherMessageParameters;
451
452 mPagerClient = prefs->mPagerClient;
453 mPagerOtherChannel = prefs->mPagerOtherChannel;
454 mPagerOtherMessage = prefs->mPagerOtherMessage;
455 mPagerOtherMessageParameters = prefs->mPagerOtherMessageParameters;
456
457 mCurrentApp = ExternalAppHandler::EMAIL;
458 mCurrentClient = mEmailClient;
459
460 updateClientWidgets();
245 461
246 blockSignals( blocked ); 462 blockSignals( blocked );
247 463
248 emit changed( false ); 464 emit changed( false );
465
249} 466}
250 467
251void KDEPIMConfigWidget::saveSettings(KPimPrefs* prefs) 468void KDEPIMConfigWidget::saveSettings(KPimGlobalPrefs* prefs)
252{ 469{
253 prefs->mEmailClient = mEmailClient->currentItem(); 470 saveEditFieldSettings();
254 prefs->mEmailChannel = mEmailChannel->text(); 471
472 prefs->mEmailClient = mEmailClient;
473 prefs->mEmailOtherChannel = mEmailOtherChannel;
474 prefs->mEmailOtherMessage = mEmailOtherMessage;
475 prefs->mEmailOtherMessageParameters = mEmailOtherMessageParameters;
476 prefs->mEmailOtherMessage2 = mEmailOtherMessage2;
477 prefs->mEmailOtherMessageParameters2 = mEmailOtherMessageParameters2;
478
479 prefs->mPhoneClient = mPhoneClient;
480 prefs->mPhoneOtherChannel = mPhoneOtherChannel;
481 prefs->mPhoneOtherMessage = mPhoneOtherMessage;
482 prefs->mPhoneOtherMessageParameters = mPhoneOtherMessageParameters;
483
484 prefs->mFaxClient = mFaxClient;
485 prefs->mFaxOtherChannel = mFaxOtherChannel;
486 prefs->mFaxOtherMessage = mFaxOtherMessage;
487 prefs->mFaxOtherMessageParameters = mFaxOtherMessageParameters;
488
489 prefs->mSMSClient = mSMSClient;
490 prefs->mSMSOtherChannel = mSMSOtherChannel;
491 prefs->mSMSOtherMessage = mSMSOtherMessage;
492 prefs->mSMSOtherMessageParameters = mSMSOtherMessageParameters;
493
494 prefs->mPagerClient = mPagerClient;
495 prefs->mPagerOtherChannel = mPagerOtherChannel;
496 prefs->mPagerOtherMessage = mPagerOtherMessage;
497 prefs->mPagerOtherMessageParameters = mPagerOtherMessageParameters;
255 498
256 prefs->writeConfig(); 499 prefs->writeConfig();
257 500
258 emit changed( false ); 501 emit changed( false );
259} 502}
260 503
261void KDEPIMConfigWidget::defaults(KPimPrefs* prefs) 504void KDEPIMConfigWidget::defaults(KPimGlobalPrefs* prefs)
262{ 505{
263 mEmailClient->setCurrentItem(KPimPrefs::OMPI); 506
264 emailclient_changed( KPimPrefs::OMPI ); 507 DefaultAppItem* dai = ExternalAppHandler::instance()->getDefaultItem(ExternalAppHandler::EMAIL, KPimGlobalPrefs::NONE_EMC);
508
509 mEmailClient = dai->_id;
510 mEmailOtherChannel = dai->_channel;
511 mEmailOtherMessage = dai->_message;
512 mEmailOtherMessageParameters = dai->_parameters;
513 mEmailOtherMessage2 = dai->_message2;
514 mEmailOtherMessageParameters2 = dai->_parameters2;
515
516
517 dai = ExternalAppHandler::instance()->getDefaultItem(ExternalAppHandler::PHONE, KPimGlobalPrefs::NONE_PHC);
518
519 mPhoneClient = dai->_id;
520 mPhoneOtherChannel = dai->_channel;
521 mPhoneOtherMessage = dai->_message;
522 mPhoneOtherMessageParameters = dai->_parameters;
523
524 dai = ExternalAppHandler::instance()->getDefaultItem(ExternalAppHandler::FAX, KPimGlobalPrefs::NONE_FAC);
525
526 mFaxClient = dai->_id;
527 mFaxOtherChannel = dai->_channel;
528 mFaxOtherMessage = dai->_message;
529 mFaxOtherMessageParameters = dai->_parameters;
530
531 dai = ExternalAppHandler::instance()->getDefaultItem(ExternalAppHandler::SMS, KPimGlobalPrefs::NONE_SMC);
532
533 mSMSClient = dai->_id;
534 mSMSOtherChannel = dai->_channel;
535 mSMSOtherMessage = dai->_message;
536 mSMSOtherMessageParameters = dai->_parameters;
537
538 dai = ExternalAppHandler::instance()->getDefaultItem(ExternalAppHandler::PAGER, KPimGlobalPrefs::NONE_PAC);
539
540 mPagerClient = dai->_id;
541 mPagerOtherChannel = dai->_channel;
542 mPagerOtherMessage = dai->_message;
543 mPagerOtherMessageParameters = dai->_parameters;
265 544
266 545
267 emit changed( true ); 546 emit changed( true );
@@ -271,3 +550,8 @@ void KDEPIMConfigWidget::modified()
271{ 550{
272 emit changed( true ); 551 emit changed( true );
273} 552}
553
554void KDEPIMConfigWidget::textChanged( const QString& text )
555{
556 emit changed( true );
557}
diff --git a/libkdepim/kcmconfigs/kdepimconfigwidget.h b/libkdepim/kcmconfigs/kdepimconfigwidget.h
index 109a847..6e02544 100644
--- a/libkdepim/kcmconfigs/kdepimconfigwidget.h
+++ b/libkdepim/kcmconfigs/kdepimconfigwidget.h
@@ -32,6 +32,10 @@ $Id$
32#define KDEPIMCONFIGWIDGET_H 32#define KDEPIMCONFIGWIDGET_H
33 33
34#include <qwidget.h> 34#include <qwidget.h>
35#include <qmap.h>
36
37#include "externalapphandler.h"
38
35 39
36/* 40/*
37class QCheckBox; 41class QCheckBox;
@@ -41,7 +45,8 @@ class KListView;
41*/ 45*/
42class QComboBox; 46class QComboBox;
43class QLineEdit; 47class QLineEdit;
44class KPimPrefs; 48class KPimGlobalPrefs;
49class QGroupBox;
45 50
46class KDEPIMConfigWidget : public QWidget 51class KDEPIMConfigWidget : public QWidget
47{ 52{
@@ -50,15 +55,17 @@ class KDEPIMConfigWidget : public QWidget
50 public: 55 public:
51 KDEPIMConfigWidget( QWidget *parent, const char *name = 0 ); 56 KDEPIMConfigWidget( QWidget *parent, const char *name = 0 );
52 57
53 void restoreSettings(KPimPrefs* prefs); 58 void restoreSettings(KPimGlobalPrefs* prefs);
54 void saveSettings(KPimPrefs* prefs); 59 void saveSettings(KPimGlobalPrefs* prefs);
55 void defaults(KPimPrefs* prefs); 60 void defaults(KPimGlobalPrefs* prefs);
56 61
57 signals: 62 signals:
58 void changed( bool ); 63 void changed( bool );
59 64
65
60 public slots: 66 public slots:
61 void modified(); 67 void modified();
68 void textChanged( const QString& text );
62 69
63 70
64 71
@@ -66,9 +73,13 @@ class KDEPIMConfigWidget : public QWidget
66// void configureExtension(); 73// void configureExtension();
67// void selectionChanged( QListViewItem* ); 74// void selectionChanged( QListViewItem* );
68// void itemClicked( QListViewItem* ); 75// void itemClicked( QListViewItem* );
69 void emailclient_changed( int newClient ); 76 void client_changed( int newClient );
77 void externalapp_changed( int newApp );
70 78
71 private: 79 private:
80 void saveEditFieldSettings();
81 void updateClientWidgets();
82
72// void restoreExtensionSettings(); 83// void restoreExtensionSettings();
73// void saveExtensionSettings(); 84// void saveExtensionSettings();
74 85
@@ -77,8 +88,51 @@ class KDEPIMConfigWidget : public QWidget
77// QCheckBox *mNameParsing; 88// QCheckBox *mNameParsing;
78// QCheckBox *mViewsSingleClickBox; 89// QCheckBox *mViewsSingleClickBox;
79// QPushButton *mConfigureButton; 90// QPushButton *mConfigureButton;
80 QComboBox* mEmailClient; 91 QComboBox* mExternalApps;
81 QLineEdit* mEmailChannel; 92 QGroupBox* mExternalAppGroupBox;
93
94
95 QComboBox* mClient;
96 QLineEdit* mChannel;
97 QLineEdit* mMessage;
98 QLineEdit* mParameters;
99 QLineEdit* mMessage2;
100 QLineEdit* mParameters2;
101
102 ExternalAppHandler::Types mCurrentApp;
103 int mCurrentClient;
104
105
106 int mEmailClient;
107 QString mEmailOtherChannel;
108 QString mEmailOtherMessage;
109 QString mEmailOtherMessageParameters;
110 QString mEmailOtherMessage2;
111 QString mEmailOtherMessageParameters2;
112
113 int mPhoneClient;
114 QString mPhoneOtherChannel;
115 QString mPhoneOtherMessage;
116 QString mPhoneOtherMessageParameters;
117
118 int mFaxClient;
119 QString mFaxOtherChannel;
120 QString mFaxOtherMessage;
121 QString mFaxOtherMessageParameters;
122
123 int mSMSClient;
124 QString mSMSOtherChannel;
125 QString mSMSOtherMessage;
126 QString mSMSOtherMessageParameters;
127
128 int mPagerClient;
129 QString mPagerOtherChannel;
130 QString mPagerOtherMessage;
131 QString mPagerOtherMessageParameters;
132
133
134
135 QMap<ExternalAppHandler::Types, QString> mExternalAppsMap;
82 136
83// AddresseeWidget *mAddresseeWidget; 137// AddresseeWidget *mAddresseeWidget;
84}; 138};
diff --git a/libkdepim/kpimprefs.cpp b/libkdepim/kpimprefs.cpp
index 15531c7..140a286 100644
--- a/libkdepim/kpimprefs.cpp
+++ b/libkdepim/kpimprefs.cpp
@@ -21,6 +21,13 @@
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/*
25Enhanced Version of the file for platform independent KDE tools.
26Copyright (c) 2004 Ulf Schenk
27
28$Id$
29*/
30
24#include <kglobal.h> 31#include <kglobal.h>
25#include <kconfig.h> 32#include <kconfig.h>
26#include <klocale.h> 33#include <klocale.h>
@@ -31,10 +38,6 @@
31KPimPrefs::KPimPrefs( const QString &name ) : 38KPimPrefs::KPimPrefs( const QString &name ) :
32 KPrefs( name ) 39 KPrefs( name )
33{ 40{
34 KPrefs::setCurrentGroup( "ExternalApplications" );
35 addItemInt( "EmailChannelType", &mEmailClient, OMPI );
36 addItemString( "EmailChannelOther", &mEmailChannel, "" );
37
38} 41}
39 42
40KPimPrefs::~KPimPrefs() 43KPimPrefs::~KPimPrefs()
diff --git a/libkdepim/kpimprefs.h b/libkdepim/kpimprefs.h
index 5186315..9bd9466 100644
--- a/libkdepim/kpimprefs.h
+++ b/libkdepim/kpimprefs.h
@@ -20,6 +20,14 @@
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
24/*
25Enhanced Version of the file for platform independent KDE tools.
26Copyright (c) 2004 Ulf Schenk
27
28$Id$
29*/
30
23#ifndef KPIMPREFS_H 31#ifndef KPIMPREFS_H
24#define KPIMPREFS_H 32#define KPIMPREFS_H
25 33
@@ -44,21 +52,10 @@ class KPimPrefs : public KPrefs
44 /** Write preferences to config file */ 52 /** Write preferences to config file */
45 void usrWriteConfig(); 53 void usrWriteConfig();
46 54
47 enum EMailClients {
48 OMPI = 0,
49 QTOPIA = 1,
50 OPIE = 2,
51 OTHER = 3
52 };
53
54 55
55 public: 56 public:
56 QStringList mCustomCategories; 57 QStringList mCustomCategories;
57 58
58 int mEmailClient;
59 QString mEmailChannel;
60
61
62 59
63 protected: 60 protected:
64 virtual void setCategoryDefaults() = 0; 61 virtual void setCategoryDefaults() = 0;
diff --git a/libkdepim/libkdepim.pro b/libkdepim/libkdepim.pro
index 902f049..e05e681 100644
--- a/libkdepim/libkdepim.pro
+++ b/libkdepim/libkdepim.pro
@@ -23,11 +23,13 @@ HEADERS = \
23 categoryeditdialog_base.h \ 23 categoryeditdialog_base.h \
24 categoryselectdialog.h \ 24 categoryselectdialog.h \
25 categoryselectdialog_base.h \ 25 categoryselectdialog_base.h \
26 externalapphandler.h \
26 kdateedit.h \ 27 kdateedit.h \
27 kdatepicker.h \ 28 kdatepicker.h \
28 kinputdialog.h \ 29 kinputdialog.h \
29 kincidenceformatter.h \ 30 kincidenceformatter.h \
30 kpimprefs.h \ 31 kpimprefs.h \
32 kpimglobalprefs.h \
31 kprefsdialog.h \ 33 kprefsdialog.h \
32 addresseeview.h \ 34 addresseeview.h \
33 ksyncprofile.h \ 35 ksyncprofile.h \
@@ -40,11 +42,13 @@ SOURCES = \
40 categoryeditdialog_base.cpp \ 42 categoryeditdialog_base.cpp \
41 categoryselectdialog.cpp \ 43 categoryselectdialog.cpp \
42 categoryselectdialog_base.cpp \ 44 categoryselectdialog_base.cpp \
45 externalapphandler.cpp \
43 kdateedit.cpp \ 46 kdateedit.cpp \
44 kdatepicker.cpp \ 47 kdatepicker.cpp \
45 kinputdialog.cpp \ 48 kinputdialog.cpp \
46 kincidenceformatter.cpp \ 49 kincidenceformatter.cpp \
47 kpimprefs.cpp \ 50 kpimprefs.cpp \
51 kpimglobalprefs.cpp \
48 kprefsdialog.cpp \ 52 kprefsdialog.cpp \
49 addresseeview.cpp \ 53 addresseeview.cpp \
50 ksyncprofile.cpp \ 54 ksyncprofile.cpp \
diff --git a/libkdepim/libkdepimE.pro b/libkdepim/libkdepimE.pro
index fc8abe1..b322bce 100644
--- a/libkdepim/libkdepimE.pro
+++ b/libkdepim/libkdepimE.pro
@@ -17,11 +17,13 @@ HEADERS = \
17 categoryeditdialog_base.h \ 17 categoryeditdialog_base.h \
18 categoryselectdialog.h \ 18 categoryselectdialog.h \
19 categoryselectdialog_base.h \ 19 categoryselectdialog_base.h \
20 externalapphandler.h \
20 kdateedit.h \ 21 kdateedit.h \
21 kdatepicker.h \ 22 kdatepicker.h \
22 kinputdialog.h \ 23 kinputdialog.h \
23 kincidenceformatter.h \ 24 kincidenceformatter.h \
24 kpimprefs.h \ 25 kpimprefs.h \
26 kpimglobalprefs.h \
25 kprefsdialog.h \ 27 kprefsdialog.h \
26 addresseeview.h \ 28 addresseeview.h \
27 ksyncprofile.h \ 29 ksyncprofile.h \
@@ -36,11 +38,13 @@ SOURCES = \
36 categoryeditdialog_base.cpp \ 38 categoryeditdialog_base.cpp \
37 categoryselectdialog.cpp \ 39 categoryselectdialog.cpp \
38 categoryselectdialog_base.cpp \ 40 categoryselectdialog_base.cpp \
41 externalapphandler.cpp \
39 kdateedit.cpp \ 42 kdateedit.cpp \
40 kinputdialog.cpp \ 43 kinputdialog.cpp \
41 kdatepicker.cpp \ 44 kdatepicker.cpp \
42 kincidenceformatter.cpp \ 45 kincidenceformatter.cpp \
43 kpimprefs.cpp \ 46 kpimprefs.cpp \
47 kpimglobalprefs.cpp \
44 kprefsdialog.cpp \ 48 kprefsdialog.cpp \
45 addresseeview.cpp \ 49 addresseeview.cpp \
46 ksyncprofile.cpp \ 50 ksyncprofile.cpp \