summaryrefslogtreecommitdiffabout
path: root/libkdepim/ksyncprefsdialog.cpp
Side-by-side diff
Diffstat (limited to 'libkdepim/ksyncprefsdialog.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--libkdepim/ksyncprefsdialog.cpp333
1 files changed, 190 insertions, 143 deletions
diff --git a/libkdepim/ksyncprefsdialog.cpp b/libkdepim/ksyncprefsdialog.cpp
index 03265d2..8a3f4cf 100644
--- a/libkdepim/ksyncprefsdialog.cpp
+++ b/libkdepim/ksyncprefsdialog.cpp
@@ -38,16 +38,18 @@
#include <qdatetime.h>
#include <qcheckbox.h>
#include <qradiobutton.h>
#include <qpushbutton.h>
#include <qstrlist.h>
#include <qapplication.h>
#include <qlayout.h>
#include <qscrollview.h>
+#include <qvgroupbox.h>
+#include <qhgroupbox.h>
#include <kcolorbutton.h>
#include <kdebug.h>
#include <klocale.h>
#include <kglobal.h>
#include <kfontdialog.h>
#include <kmessagebox.h>
#include <kcolordialog.h>
@@ -136,186 +138,229 @@ void KSyncPrefsDialog::setupSyncAlgTab()
connect ( mProfileBox, SIGNAL(activated ( int ) ), this, SLOT (profileChanged( int ) ) );
connect ( mProfileBox, SIGNAL( textChanged ( const QString & ) ), this, SLOT (textChanged( const QString & ) ) );
lab = new QLabel(mProfileBox, i18n("Profile:"), topFrame);
topLayout->addWidget(lab ,iii,0);
topLayout->addWidget(mProfileBox, iii,1);
++iii;
- QHBox *iims = new QHBox( topFrame );
+
+
+ QHGroupBox *iims = new QHGroupBox( i18n("Multiple Sync options"), topFrame);
new QLabel( i18n("Include in multiple "), iims );
mIncludeInRing = new QCheckBox( i18n("calendar "), iims );
mIncludeInRingAB = new QCheckBox( i18n("addressbook "), iims );
mIncludeInRingPWM = new QCheckBox( i18n("pwmanager"), iims );
new QLabel( i18n(" sync"), iims );
topLayout->addMultiCellWidget(iims, iii,iii,0,1);
++iii;
-
- mAskForPreferences = new QCheckBox( i18n("Ask for preferences before sync"), topFrame );
- topLayout->addMultiCellWidget(mAskForPreferences, iii,iii,0,1);
- ++iii;
- QButtonGroup* gr = new QButtonGroup ( 1, Qt::Horizontal, i18n("Sync preferences"), topFrame);
- topLayout->addMultiCellWidget(gr, iii,iii,0,1);
- ++iii;
- loc = new QRadioButton ( i18n("Take local entry on conflict"), gr );
- rem = new QRadioButton ( i18n("Take remote entry on conflict"), gr );
- newest = new QRadioButton ( i18n("Take newest entry on conflict"), gr );
- ask = new QRadioButton ( i18n("Ask for every entry on conflict"), gr );
- f_loc= new QRadioButton ( i18n("Force: Take local entry always"), gr );
- f_rem = new QRadioButton ( i18n("Force: Take remote entry always"), gr );
- // both = new QRadioButton ( i18n("Take both on conflict"), gr );
-
- mShowSummaryAfterSync = new QCheckBox( i18n("Show summary after sync"), topFrame );
- topLayout->addMultiCellWidget(mShowSummaryAfterSync, iii,iii,0,1);
- ++iii;
-
- mWriteBackFile = new QCheckBox( i18n("Write back synced data"), topFrame );
- topLayout->addMultiCellWidget(mWriteBackFile, iii,iii,0,1);
+ QVGroupBox* gb0 = new QVGroupBox( i18n("Sync algo options"), topFrame);
+ topLayout->addMultiCellWidget(gb0, iii,iii,0,1);
++iii;
+ QButtonGroup* gr;
+ {
+ QVGroupBox* topFrame = gb0;
+ mAskForPreferences = new QCheckBox( i18n("Ask for preferences before sync"), topFrame );
+ //topLayout->addMultiCellWidget(mAskForPreferences, iii,iii,0,1);
+ //++iii;
+ gr = new QButtonGroup ( 1, Qt::Horizontal, i18n("Sync preferences"), topFrame);
+ //topLayout->addMultiCellWidget(gr, iii,iii,0,1);
+ //++iii;
+ loc = new QRadioButton ( i18n("Take local entry on conflict"), gr );
+ rem = new QRadioButton ( i18n("Take remote entry on conflict"), gr );
+ newest = new QRadioButton ( i18n("Take newest entry on conflict"), gr );
+ ask = new QRadioButton ( i18n("Ask for every entry on conflict"), gr );
+ f_loc= new QRadioButton ( i18n("Force: Take local entry always"), gr );
+ f_rem = new QRadioButton ( i18n("Force: Take remote entry always"), gr );
+ // both = new QRadioButton ( i18n("Take both on conflict"), gr );
+
+ mShowSummaryAfterSync = new QCheckBox( i18n("Show summary after sync"), topFrame );
+ //topLayout->addMultiCellWidget(mShowSummaryAfterSync, iii,iii,0,1);
+ //++iii;
+
+ mWriteBackFile = new QCheckBox( i18n("Write back synced data"), topFrame );
+ // topLayout->addMultiCellWidget(mWriteBackFile, iii,iii,0,1);
+ // ++iii;
- mWriteBackExisting= new QCheckBox( i18n("-- Write back (on remote) existing entries only"), topFrame );
- topLayout->addMultiCellWidget(mWriteBackExisting, iii,iii,0,1);
- ++iii;
-
- mWriteBackFuture= new QCheckBox( i18n("-- Write back (calendar) entries in future only"), topFrame );
- topLayout->addMultiCellWidget(mWriteBackFuture, iii,iii,0,1);
- ++iii;
- topLayout->addMultiCellWidget(new QLabel( i18n("---- Max. weeks in future: ") , topFrame ), iii,iii,0,0);
- mWriteBackFutureWeeks= new QSpinBox(1,104, 1, topFrame);
- topLayout->addMultiCellWidget(mWriteBackFutureWeeks, iii,iii,1,1);
- ++iii;
-
+ QVGroupBox* gb2 = new QVGroupBox( i18n("Write back options"), topFrame);
+ //topLayout->addMultiCellWidget(gb2, iii,iii,0,1);
+ //++iii;
+ {
+ QVGroupBox*topFrame = gb2;
+ mWriteBackExisting= new QCheckBox( i18n("Write back (on remote) existing entries only"), topFrame );
+ //topLayout->addMultiCellWidget(mWriteBackExisting, iii,iii,0,1);
+ //++iii;
+ mWriteBackFuture= new QCheckBox( i18n("Write back (calendar) entries for time period only"), topFrame );
+ //topLayout->addMultiCellWidget(mWriteBackFuture, iii,iii,0,1);
+ //++iii;
+ QHGroupBox* gb3 = new QHGroupBox( i18n("Time period"), topFrame);
+ connect ( mWriteBackFuture, SIGNAL( toggled ( bool ) ), gb3, SLOT ( setEnabled ( bool ) ) );
+ new QLabel( i18n("From ") , gb3 );
+ mWriteBackPastWeeks= new QSpinBox(1,104, 1, gb3);
+ new QLabel( i18n(" weeks in the past to ") , gb3 );
+ mWriteBackFutureWeeks= new QSpinBox(1,104, 1, gb3);
+ new QLabel( i18n(" weeks in the future ") , gb3 );
+ //topLayout->addMultiCellWidget(mWriteBackFutureWeeks, iii,iii,1,1);
+ //++iii;
+ gb3->setEnabled( false );
+ }
+ connect ( mWriteBackFile, SIGNAL( toggled ( bool ) ), gb2, SLOT ( setEnabled ( bool ) ) );
+
+ }
proGr = new QButtonGroup ( 1, Qt::Horizontal, i18n("Profile kind"), topFrame);
gr = proGr;
topLayout->addMultiCellWidget(gr, iii,iii,0,1);
++iii;
mIsLocal = new QRadioButton ( i18n("Local file"), gr );
mIsPi = new QRadioButton ( i18n("Pi-Sync ( direct Kx/Pi to Kx/Pi sync )"), gr );
connect (mIsPi, SIGNAL( toggled(bool)), this, SLOT (kindChanged(bool) ) );
mIsNotLocal = new QRadioButton ( i18n("Remote file (w down/upload command)"), gr );
connect (mIsLocal, SIGNAL( toggled(bool)), this, SLOT (kindChanged(bool) ) );
mIsPhone = new QRadioButton ( i18n("Mobile device (cell phone)"), gr );
connect (mIsPhone, SIGNAL( toggled(bool)), this, SLOT (kindChanged(bool) ) );
-
- phoneWidget = new QVBox( topFrame);
- topLayout->addMultiCellWidget(phoneWidget, iii,iii,0,1);
- ++iii;
- mWriteContactToSIM = 0;//new QCheckBox( i18n("Sync contacts with phone SIM card (If not, sync with phone memory)"), phoneWidget );
- QHBox* temphb = new QHBox( phoneWidget );
- new QLabel( i18n("I/O device: "), temphb );
- mPhoneDevice = new QLineEdit( temphb);
- button = new QPushButton( i18n("Help..."), temphb );
- connect ( button, SIGNAL( clicked()), this, SLOT ( helpDevice() ) );
-
-
- temphb = new QHBox( phoneWidget );
- new QLabel( i18n("Connection: "), temphb );
- mPhoneConnection = new QLineEdit( temphb);
- button = new QPushButton( i18n("Help..."), temphb );
- connect ( button, SIGNAL( clicked()), this, SLOT ( helpConnection() ) );
-
-
- temphb = new QHBox( phoneWidget );
- new QLabel( i18n("Model(opt.): "), temphb );
- mPhoneModel = new QLineEdit( temphb);
- button = new QPushButton( i18n("Help..."), temphb );
- connect ( button, SIGNAL( clicked()), this, SLOT ( helpModel() ) );
-
- // *** local
- localFileWidget = new QVBox( topFrame);
- topLayout->addMultiCellWidget(localFileWidget, iii,iii,0,1);
+ QVGroupBox* gb1 = new QVGroupBox( i18n("Profile kind specific settings"), topFrame);
+ topLayout->addMultiCellWidget(gb1, iii,iii,0,1);
++iii;
- temphb = new QHBox( localFileWidget );
-
- lab = new QLabel( i18n("Local file Cal:"), temphb );
- lab = new QLabel( i18n("Local file ABook:"), temphb );
- lab = new QLabel( i18n("Local file PWMgr:"), temphb );
- temphb = new QHBox( localFileWidget );
- button = new QPushButton( i18n("Choose..."), temphb );
- connect ( button, SIGNAL( clicked()), this, SLOT ( chooseFile() ) );
- button = new QPushButton( i18n("Choose..."), temphb );
- connect ( button, SIGNAL( clicked()), this, SLOT ( chooseFileAB() ) );
- button = new QPushButton( i18n("Choose..."), temphb );
- connect ( button, SIGNAL( clicked()), this, SLOT ( chooseFilePWM() ) );
- temphb = new QHBox( localFileWidget );
-
- mRemoteFile = new QLineEdit( temphb);
- mRemoteFileAB = new QLineEdit( temphb);
- mRemoteFilePWM = new QLineEdit( temphb);
- mIsKapiFileL = new QCheckBox( i18n("Addressbook file (*.vcf) is used by KA/Pi"), localFileWidget );
-
-
- // *** remote
- remoteFileWidget = new QVBox( topFrame);
- topLayout->addMultiCellWidget(remoteFileWidget, iii,iii,0,1);
- ++iii;
- temphb = new QHBox( remoteFileWidget );
- new QLabel( i18n("Calendar:"), temphb);
- new QLabel( i18n("AddressBook:"), temphb);
- new QLabel( i18n("PWManager:"), temphb);
-
- lab = new QLabel( i18n("Pre sync (download) command:"), remoteFileWidget);
- temphb = new QHBox( remoteFileWidget );
- mRemotePrecommand = new QLineEdit(temphb);
- mRemotePrecommandAB = new QLineEdit(temphb);
- mRemotePrecommandPWM = new QLineEdit(temphb);
-
- lab = new QLabel( i18n("Local temp file:"), remoteFileWidget);
- temphb = new QHBox( remoteFileWidget );
- mLocalTempFile = new QLineEdit(temphb);
- mLocalTempFileAB = new QLineEdit(temphb);
- mLocalTempFilePWM = new QLineEdit(temphb);
-
- lab = new QLabel( i18n("Post sync (upload) command:"), remoteFileWidget);
- temphb = new QHBox( remoteFileWidget );
- mRemotePostcommand = new QLineEdit(temphb );
- mRemotePostcommandAB = new QLineEdit(temphb );
- mRemotePostcommandPWM = new QLineEdit(temphb );
- mIsKapiFileR = new QCheckBox( i18n("Addressbook file is used by KA/Pi"), remoteFileWidget );
- lab = new QLabel( i18n("Fill in default values for:"), remoteFileWidget);
- temphb = new QHBox( remoteFileWidget );
- button = new QPushButton( i18n("ssh/scp"), temphb );
- connect ( button, SIGNAL( clicked()), this, SLOT (fillSSH() ) );
- button = new QPushButton( i18n("ftp"), temphb );
- connect ( button, SIGNAL( clicked()), this, SLOT (fillFTP() ) );
- lab = new QLabel( i18n("Hint: Use $PWD$ for placeholder of password!"), remoteFileWidget);
-
- // *** pi-sync
- piWidget = new QVBox( topFrame);
- topLayout->addMultiCellWidget(piWidget, iii,iii,0,1);
- ++iii;
- temphb = new QHBox( piWidget );
- new QLabel( i18n("Calendar:"), temphb);
- new QLabel( i18n("AddressBook:"), temphb);
- new QLabel( i18n("PWManager:"), temphb);
-
- lab = new QLabel( i18n("Password for remote access: (could be the same for each)"), piWidget);
- temphb = new QHBox( piWidget );
- mRemotePw = new QLineEdit(temphb);
- mRemotePwAB = new QLineEdit(temphb);
- mRemotePwPWM = new QLineEdit(temphb);
-
- lab = new QLabel( i18n("Remote IP address: (could be the same for each)"), piWidget);
- temphb = new QHBox( piWidget );
- mRemoteIP = new QLineEdit(temphb);
- mRemoteIPAB = new QLineEdit(temphb);
- mRemoteIPPWM = new QLineEdit(temphb);
-
- lab = new QLabel( i18n("Remote port number: (should be different for each)"), piWidget);
- temphb = new QHBox( piWidget );
- mRemotePort = new QLineEdit(temphb);
- mRemotePortAB = new QLineEdit(temphb);
- mRemotePortPWM = new QLineEdit(temphb);
+ // ******************************************
+ // Profile kind specific settings
+ {
+ // *** phone *******************************
+ QVGroupBox* topFrame = gb1;
+ phoneWidget = new QVBox( topFrame);
+ //topLayout->addMultiCellWidget(phoneWidget, iii,iii,0,1);
+ //++iii;
+ mWriteContactToSIM = 0;//new QCheckBox( i18n("Sync contacts with phone SIM card (If not, sync with phone memory)"), phoneWidget );
+ QHBox* temphb = new QHBox( phoneWidget );
+ new QLabel( i18n("I/O device: "), temphb );
+ mPhoneDevice = new QLineEdit( temphb);
+ button = new QPushButton( i18n("Help..."), temphb );
+ connect ( button, SIGNAL( clicked()), this, SLOT ( helpDevice() ) );
+
+
+ temphb = new QHBox( phoneWidget );
+ new QLabel( i18n("Connection: "), temphb );
+ mPhoneConnection = new QLineEdit( temphb);
+ button = new QPushButton( i18n("Help..."), temphb );
+ connect ( button, SIGNAL( clicked()), this, SLOT ( helpConnection() ) );
+
+
+ temphb = new QHBox( phoneWidget );
+ new QLabel( i18n("Model(opt.): "), temphb );
+ mPhoneModel = new QLineEdit( temphb);
+ button = new QPushButton( i18n("Help..."), temphb );
+ connect ( button, SIGNAL( clicked()), this, SLOT ( helpModel() ) );
+
+ // *** local*******************************
+ localFileWidget = new QVBox( topFrame);
+ //topLayout->addMultiCellWidget(localFileWidget, iii,iii,0,1);
+ //++iii;
+ temphb = new QHBox( localFileWidget );
+
+ lab = new QLabel( i18n("Local file Cal:"), temphb );
+ lab = new QLabel( i18n("Local file ABook:"), temphb );
+ lab = new QLabel( i18n("Local file PWMgr:"), temphb );
+ temphb = new QHBox( localFileWidget );
+ button = new QPushButton( i18n("Choose..."), temphb );
+ connect ( button, SIGNAL( clicked()), this, SLOT ( chooseFile() ) );
+ button = new QPushButton( i18n("Choose..."), temphb );
+ connect ( button, SIGNAL( clicked()), this, SLOT ( chooseFileAB() ) );
+ button = new QPushButton( i18n("Choose..."), temphb );
+ connect ( button, SIGNAL( clicked()), this, SLOT ( chooseFilePWM() ) );
+ temphb = new QHBox( localFileWidget );
+
+ mRemoteFile = new QLineEdit( temphb);
+ mRemoteFileAB = new QLineEdit( temphb);
+ mRemoteFilePWM = new QLineEdit( temphb);
+ mIsKapiFileL = new QCheckBox( i18n("Addressbook file (*.vcf) is used by KA/Pi"), localFileWidget );
+
+
+ // *** remote*******************************
+ remoteFileWidget = new QVBox( topFrame);
+ //topLayout->addMultiCellWidget(remoteFileWidget, iii,iii,0,1);
+ //++iii;
+ temphb = new QHBox( remoteFileWidget );
+ new QLabel( i18n("Calendar:"), temphb);
+ new QLabel( i18n("AddressBook:"), temphb);
+ new QLabel( i18n("PWManager:"), temphb);
+
+ lab = new QLabel( i18n("Pre sync (download) command:"), remoteFileWidget);
+ temphb = new QHBox( remoteFileWidget );
+ mRemotePrecommand = new QLineEdit(temphb);
+ mRemotePrecommandAB = new QLineEdit(temphb);
+ mRemotePrecommandPWM = new QLineEdit(temphb);
+
+ lab = new QLabel( i18n("Local temp file:"), remoteFileWidget);
+ temphb = new QHBox( remoteFileWidget );
+ mLocalTempFile = new QLineEdit(temphb);
+ mLocalTempFileAB = new QLineEdit(temphb);
+ mLocalTempFilePWM = new QLineEdit(temphb);
+
+ lab = new QLabel( i18n("Post sync (upload) command:"), remoteFileWidget);
+ temphb = new QHBox( remoteFileWidget );
+ mRemotePostcommand = new QLineEdit(temphb );
+ mRemotePostcommandAB = new QLineEdit(temphb );
+ mRemotePostcommandPWM = new QLineEdit(temphb );
+ mIsKapiFileR = new QCheckBox( i18n("Addressbook file is used by KA/Pi"), remoteFileWidget );
+ lab = new QLabel( i18n("Fill in default values for:"), remoteFileWidget);
+ temphb = new QHBox( remoteFileWidget );
+ button = new QPushButton( i18n("ssh/scp"), temphb );
+ connect ( button, SIGNAL( clicked()), this, SLOT (fillSSH() ) );
+ button = new QPushButton( i18n("ftp"), temphb );
+ connect ( button, SIGNAL( clicked()), this, SLOT (fillFTP() ) );
+ lab = new QLabel( i18n("Hint: Use $PWD$ for placeholder of password!"), remoteFileWidget);
+
+ // *** pi-sync*******************************
+ piWidget = new QVBox( topFrame);
+ //topLayout->addMultiCellWidget(piWidget, iii,iii,0,1);
+ //++iii;
+ temphb = new QHBox( piWidget );
+ new QLabel( i18n("Calendar:"), temphb);
+ new QLabel( i18n("AddressBook:"), temphb);
+ new QLabel( i18n("PWManager:"), temphb);
+
+ lab = new QLabel( i18n("Password for remote access: (could be the same for each)"), piWidget);
+ temphb = new QHBox( piWidget );
+ mRemotePw = new QLineEdit(temphb);
+ mRemotePwAB = new QLineEdit(temphb);
+ mRemotePwPWM = new QLineEdit(temphb);
+
+ lab = new QLabel( i18n("Remote IP address: (could be the same for each)"), piWidget);
+ temphb = new QHBox( piWidget );
+ mRemoteIP = new QLineEdit(temphb);
+ mRemoteIPAB = new QLineEdit(temphb);
+ mRemoteIPPWM = new QLineEdit(temphb);
+
+ lab = new QLabel( i18n("Remote port number: (should be different for each)"), piWidget);
+ temphb = new QHBox( piWidget );
+ mRemotePort = new QLineEdit(temphb);
+ mRemotePortAB = new QLineEdit(temphb);
+ mRemotePortPWM = new QLineEdit(temphb);
+ }
+ // ******************************************
+ // Profile kind specific settings END
+
}
+void KSyncPrefsDialog::readFilter()
+{
+ mFilterKapi.clear();
+ mFilterKopi.clear();
+ mFilterKopi.append(i18n("No Filter") );
+ mFilterKapi.append(i18n("No Filter") );
+ KConfig cfgko(locateLocal("config","korganizerrc"));
+ KConfig cfgka(locateLocal("config","kaddressbookrc"));
+ cfgko.setGroup("General");
+ mFilterKopi = cfgko.readListEntry("CalendarFilters");
+ mFilterKopi.prepend(i18n("No Filter") );
+}
void KSyncPrefsDialog::slotOK()
{
if ( mMyMachineName->text() == "undefined" ) {
KMessageBox::error(this,i18n("Local device name undefined!\nPlease define device name!"),i18n("KO/Pi config error"));
return;
}
@@ -425,16 +470,17 @@ void KSyncPrefsDialog::profileChanged( int item )
mAskForPreferences->setChecked( prof->getAskForPreferences());
mWriteBackExisting->setChecked( prof->getWriteBackExisting() );
mWriteBackFile->setChecked( prof->getWriteBackFile());
mIncludeInRing->setChecked( prof->getIncludeInRingSync() );
mIncludeInRingAB->setChecked( prof->getIncludeInRingSyncAB() );
mIncludeInRingPWM->setChecked( prof->getIncludeInRingSyncPWM() );
mWriteBackFuture->setChecked( prof->getWriteBackFuture());
mWriteBackFutureWeeks->setValue( prof->getWriteBackFutureWeeks() );
+ mWriteBackPastWeeks->setValue( prof->getWriteBackPastWeeks() );
switch ( prof->getSyncPrefs() ) {
case 0:
loc->setChecked( true);
break;
case 1:
rem->setChecked( true );
break;
@@ -588,16 +634,17 @@ void KSyncPrefsDialog::saveProfile()
int syncprefs = rem->isChecked()*1+newest->isChecked()*2+ ask->isChecked()*3+ f_loc->isChecked()*4+ f_rem->isChecked()*5 ;//+ both->isChecked()*6 ;
prof->setSyncPrefs( syncprefs);
prof->setIsLocalFileSync( mIsLocal->isChecked() );
prof->setIsPhoneSync( mIsPhone->isChecked() );
prof->setIsPiSync( mIsPi->isChecked() );
prof->setIsKapiFile( mIsKapiFileL->isChecked() );
prof->setWriteBackFuture(mWriteBackFuture->isChecked());
prof->setWriteBackFutureWeeks(mWriteBackFutureWeeks->value());
+ prof->setWriteBackPastWeeks(mWriteBackPastWeeks->value());
if ( mWriteContactToSIM )
prof->setWriteContactToSIM(mWriteContactToSIM->isChecked());
prof->setPhoneDevice( mPhoneDevice->text() );
prof->setPhoneConnection( mPhoneConnection->text() );
prof->setPhoneModel( mPhoneModel->text() );
}