summaryrefslogtreecommitdiffabout
path: root/libkdepim/kcmconfigs
Unidiff
Diffstat (limited to 'libkdepim/kcmconfigs') (more/less context) (show whitespace changes)
-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
4 files changed, 486 insertions, 146 deletions
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
@@ -36,42 +36,44 @@ $Id$
36//#include <stdlib.h> 36//#include <stdlib.h>
37 37
38#include "kdepimconfigwidget.h" 38#include "kdepimconfigwidget.h"
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 );
56 mConfigWidget = new KDEPIMConfigWidget( this, "mConfigWidget" ); 58 mConfigWidget = new KDEPIMConfigWidget( this, "mConfigWidget" );
57 layout->addWidget( mConfigWidget ); 59 layout->addWidget( mConfigWidget );
58 layout->setSpacing( 0 ); 60 layout->setSpacing( 0 );
59 layout->setMargin( 0 ); 61 layout->setMargin( 0 );
60 62
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
@@ -31,24 +31,24 @@ $Id$
31#ifndef KCMKDEPIMCONFIG_H 31#ifndef KCMKDEPIMCONFIG_H
32#define KCMKDEPIMCONFIG_H 32#define KCMKDEPIMCONFIG_H
33 33
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;
52}; 52};
53 53
54#endif 54#endif
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
@@ -68,206 +68,490 @@ $Id$
68 68
69#include "addresseewidget.h" 69#include "addresseewidget.h"
70#include "extensionconfigdialog.h" 70#include "extensionconfigdialog.h"
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
78 78
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 );
268} 547}
269 548
270void KDEPIMConfigWidget::modified() 549void 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
@@ -29,58 +29,112 @@ $Id$
29*/ 29*/
30 30
31#ifndef KDEPIMCONFIGWIDGET_H 31#ifndef KDEPIMCONFIGWIDGET_H
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;
38class QListViewItem; 42class QListViewItem;
39class QPushButton; 43class QPushButton;
40class KListView; 44class 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{
48 Q_OBJECT 53 Q_OBJECT
49 54
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
65 private slots: 72 private slots:
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
75// KListView *mExtensionView; 86// KListView *mExtensionView;
76 87
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};
85 139
86#endif 140#endif