kpilotConfigDialog.cc
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 static const char *kpilotconfigdialog_id =
00032 "$Id: kpilotConfigDialog.cc,v 1.19 2003/07/26 15:50:04 kainhofe Exp $";
00033
00034 #include "options.h"
00035
00036 #include <pi-version.h>
00037
00038 #include <qcombobox.h>
00039 #include <qcheckbox.h>
00040 #include <qradiobutton.h>
00041 #include <qpushbutton.h>
00042 #include <qbuttongroup.h>
00043 #include <qlineedit.h>
00044 #include <qtabwidget.h>
00045
00046 #include <kmessagebox.h>
00047 #include <kcharsets.h>
00048
00049 #include "kpilotConfig.h"
00050
00051 #include "kpilotConfigDialog_base.h"
00052 #include "kpilotConfigDialog.moc"
00053 #include "syncAction.h"
00054 #include "dbSelectionDialog.h"
00055
00056 KPilotConfigDialog::KPilotConfigDialog(QWidget * w, const char *n,
00057 bool m) : UIDialog(w, n, m)
00058 {
00059 FUNCTIONSETUP;
00060
00061 fConfigWidget = new KPilotConfigWidget(widget());
00062
00063 {
00064 QStringList l = KGlobal::charsets()->descriptiveEncodingNames();
00065 for ( QStringList::Iterator it = l.begin(); it != l.end(); ++it )
00066 {
00067 fConfigWidget->fPilotEncoding->insertItem(*it);
00068 }
00069 }
00070
00071 fConfigWidget->tabWidget->adjustSize();
00072 fConfigWidget->resize(fConfigWidget->tabWidget->size());
00073 setTabWidget(fConfigWidget->tabWidget);
00074
00075 #if defined(PILOT_LINK_VERSION) && defined(PILOT_LINK_MAJOR) && defined(PILOT_LINK_MINOR)
00076 #if (PILOT_LINK_VERSION * 100 + PILOT_LINK_MAJOR * 10 + PILOT_LINK_MINOR) < 100
00077 fConfigWidget->fPilotDevice->setMaxLength(13);
00078 #endif
00079 #endif
00080
00081 disableUnusedOptions();
00082 readConfig();
00083
00084
00085 addAboutPage(false);
00086
00087 connect(fConfigWidget->fBackupOnlyChooser, SIGNAL( clicked() ),
00088 SLOT( slotSelectNoBackupDBs() ) );
00089 connect(fConfigWidget->fSkipDBChooser, SIGNAL(clicked()),
00090 SLOT(slotSelectNoRestoreDBs()));
00091
00092 (void) kpilotconfigdialog_id;
00093 }
00094
00095 KPilotConfigDialog::~KPilotConfigDialog()
00096 {
00097 FUNCTIONSETUP;
00098 }
00099
00100 void KPilotConfigDialog::disableUnusedOptions()
00101 {
00102 FUNCTIONSETUP;
00103 }
00104
00105 void KPilotConfigDialog::readConfig()
00106 {
00107 FUNCTIONSETUP;
00108
00109 KPilotConfigSettings & c = KPilotConfig::getConfig();
00110 c.resetGroup();
00111
00112
00113 fConfigWidget->fPilotDevice->setText(c.getPilotDevice());
00114 fConfigWidget->fPilotSpeed->setCurrentItem(c.getPilotSpeed());
00115 getEncoding(c);
00116 fConfigWidget->fUserName->setText(c.getUser());
00117 fConfigWidget->fStartDaemonAtLogin->setChecked(c.getStartDaemonAtLogin());
00118 fConfigWidget->fDockDaemon->setChecked(c.getDockDaemon());
00119 fConfigWidget->fKillDaemonOnExit->setChecked(c.getKillDaemonOnExit());
00120 fConfigWidget->fQuitAfterSync->setChecked(c.getQuitAfterSync());
00121
00122
00123 int synctype=c.getSyncType();
00124 if (synctype < SyncAction::eSyncModeLastRadiobutton)
00125 fConfigWidget->fSyncMode->setButton(synctype);
00126 else
00127 {
00128 fConfigWidget->fSyncMode->setButton(SyncAction::eSyncModeLastRadiobutton);
00129 fConfigWidget->fSpecialSync->setCurrentItem(synctype-SyncAction::eSyncModeLastRadiobutton);
00130 }
00131
00132 fConfigWidget->fFullBackupCheck->setChecked(c.getFullSyncOnPCChange());
00133 fConfigWidget->fConflictResolution->setCurrentItem(c.getConflictResolution());
00134
00135
00136
00137
00138 fConfigWidget->fInternalEditors->setChecked(c.getInternalEditors());
00139 fConfigWidget->fUseSecret->setChecked(c.getShowSecrets());
00140 c.setAddressGroup();
00141 fConfigWidget->fAddressGroup->setButton(c.getAddressDisplayMode());
00142 fConfigWidget->fUseKeyField->setChecked(c.getUseKeyField());
00143 c.resetGroup();
00144
00145
00146 fConfigWidget->fBackupOnly->setText(c.getBackupOnly());
00147 fConfigWidget->fSkipDB->setText(c.getSkip());
00148 }
00149
00150 bool KPilotConfigDialog::validate()
00151 {
00152 int r = KMessageBox::Yes;
00153
00154 #if defined(PILOT_LINK_VERSION) && defined(PILOT_LINK_MAJOR) && defined(PILOT_LINK_MINOR)
00155 #if (PILOT_LINK_VERSION * 100 + PILOT_LINK_MAJOR * 10 + PILOT_LINK_MINOR) < 100
00156 QString d = fConfigWidget->fPilotDevice->text();
00157
00158 if (d.length() > 13)
00159 {
00160 r = KMessageBox::questionYesNo(
00161 this,
00162 i18n("<qt>The device name you entered (<i>%1</i>) "
00163 "is longer than 13 characters. This is "
00164 "probably unsupported and can cause problems. "
00165 "Are you sure you want to use this device name?</qt>")
00166 .arg(d),
00167 i18n("Device Name too Long")
00168 ) ;
00169 }
00170 #endif
00171 #endif
00172
00173 return KMessageBox::Yes == r;
00174 }
00175
00176 void KPilotConfigDialog::commitChanges()
00177 {
00178 FUNCTIONSETUP;
00179
00180 KPilotConfigSettings & c = KPilotConfig::getConfig();
00181 c.resetGroup();
00182
00183
00184 c.setPilotDevice(fConfigWidget->fPilotDevice->text());
00185 c.setPilotSpeed(fConfigWidget->fPilotSpeed->currentItem());
00186 setEncoding(c);
00187 c.setUser(fConfigWidget->fUserName->text());
00188 c.setStartDaemonAtLogin(fConfigWidget->fStartDaemonAtLogin->isChecked());
00189 c.setDockDaemon(fConfigWidget->fDockDaemon->isChecked());
00190 c.setKillDaemonOnExit(fConfigWidget->fKillDaemonOnExit->isChecked());
00191 c.setQuitAfterSync(fConfigWidget->fQuitAfterSync->isChecked());
00192
00193
00194 int syncmode=fConfigWidget->fSyncMode->id(fConfigWidget->fSyncMode->selected());
00195 if (syncmode==SyncAction::eSyncModeLastRadiobutton)
00196 syncmode+=fConfigWidget->fSpecialSync->currentItem();
00197 c.setSyncType(syncmode);
00198 c.setFullSyncOnPCChange(fConfigWidget->fFullBackupCheck->isChecked());
00199 c.setConflictResolution(fConfigWidget->fConflictResolution->currentItem());
00200
00201
00202
00203
00204
00205 c.setInternalEditors( fConfigWidget->fInternalEditors->isChecked());
00206 c.setShowSecrets(fConfigWidget->fUseSecret->isChecked());
00207 c.setAddressGroup();
00208 c.setAddressDisplayMode(fConfigWidget->fAddressGroup->id(
00209 fConfigWidget->fAddressGroup->selected()));
00210 c.setUseKeyField(fConfigWidget->fUseKeyField->isChecked());
00211 c.resetGroup();
00212
00213
00214 c.setBackupOnly(fConfigWidget->fBackupOnly->text());
00215 c.setSkip(fConfigWidget->fSkipDB->text());
00216
00217 KPilotConfig::updateConfigVersion();
00218 c.sync();
00219 }
00220
00221 void KPilotConfigDialog::changePortType(int i)
00222 {
00223 FUNCTIONSETUP;
00224
00225 switch (i)
00226 {
00227 case 0:
00228 fConfigWidget->fPilotSpeed->setEnabled(true);
00229 break;
00230 case 1:
00231 case 2:
00232 fConfigWidget->fPilotSpeed->setEnabled(false);
00233 break;
00234 default:
00235 kdWarning() << k_funcinfo
00236 << ": Unknown port type " << i << endl;
00237 }
00238 }
00239
00240 void KPilotConfigDialog::getEncoding(const KPilotConfigSettings &c)
00241 {
00242 FUNCTIONSETUP;
00243 QString e = c.getEncoding();
00244 if (e.isEmpty())
00245 fConfigWidget->fPilotEncoding->setCurrentItem(0);
00246 else
00247 fConfigWidget->fPilotEncoding->setCurrentText(e);
00248 }
00249
00250 void KPilotConfigDialog::setEncoding(KPilotConfigSettings &c)
00251 {
00252 FUNCTIONSETUP;
00253
00254 QString enc = fConfigWidget->fPilotEncoding->currentText();
00255 if (enc.isEmpty())
00256 {
00257 kdWarning() << k_funcinfo << "Empty encoding. Will ignore it"<<endl;
00258 }
00259 else
00260 {
00261 c.setEncoding(enc);
00262 }
00263 }
00264
00265 void KPilotConfigDialog::slotSelectNoBackupDBs()
00266 {
00267 FUNCTIONSETUP;
00268 KPilotConfigSettings & c = KPilotConfig::getConfig();
00269
00270 QStringList selectedDBs(QStringList::split(',', fConfigWidget->fBackupOnly->text() ));
00271 QStringList deviceDBs(c.readListEntry("DeviceDBs"));
00272 QStringList addedDBs(c.readListEntry("AddedDBsNoBackup"));
00273
00274 KPilotDBSelectionDialog*dlg=new KPilotDBSelectionDialog(selectedDBs, deviceDBs, addedDBs, this, "NoBackupDBs");
00275 if (dlg && (dlg->exec()==QDialog::Accepted) )
00276 {
00277 fConfigWidget->fBackupOnly->setText(
00278 dlg->getSelectedDBs().join(","));
00279 c.writeEntry("AddedDBsNoBackup", dlg->getAddedDBs());
00280 }
00281 KPILOT_DELETE(dlg);
00282 }
00283
00284 void KPilotConfigDialog::slotSelectNoRestoreDBs()
00285 {
00286 FUNCTIONSETUP;
00287 KPilotConfigSettings & c = KPilotConfig::getConfig();
00288
00289 QStringList selectedDBs(QStringList::split(',', fConfigWidget->fSkipDB->text() ));
00290 QStringList deviceDBs(c.readListEntry("DeviceDBs"));
00291 QStringList addedDBs(c.readListEntry("AddedDBsNoRestore"));
00292
00293 KPilotDBSelectionDialog*dlg=new KPilotDBSelectionDialog(selectedDBs, deviceDBs, addedDBs, this, "NoRestoreDBs");
00294 if (dlg && (dlg->exec()==QDialog::Accepted) )
00295 {
00296 fConfigWidget->fSkipDB->setText(
00297 dlg->getSelectedDBs().join(","));
00298 c.writeEntry("AddedDBsNoRestore", dlg->getAddedDBs());
00299 }
00300 KPILOT_DELETE(dlg);
00301 }
This file is part of the documentation for kpilot Library Version 3.2.2.