summaryrefslogtreecommitdiffabout
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--korganizer/calendarview.cpp6
-rw-r--r--libkcal/syncdefines.h6
-rw-r--r--libkdepim/ksyncmanager.cpp10
-rw-r--r--libkdepim/ksyncmanager.h1
-rw-r--r--libkdepim/ksyncprefsdialog.cpp113
-rw-r--r--libkdepim/ksyncprefsdialog.h6
-rw-r--r--libkdepim/ksyncprofile.cpp4
-rw-r--r--libkdepim/ksyncprofile.h3
8 files changed, 108 insertions, 41 deletions
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp
index 7ddbe23..363dc32 100644
--- a/korganizer/calendarview.cpp
+++ b/korganizer/calendarview.cpp
@@ -1159,8 +1159,8 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int
remRem = er.count();
inR = er.first();
QDateTime dt;
- QDateTime cur = QDateTime::currentDateTime().addDays( -7 );
- QDateTime end = cur.addDays( (mSyncManager->mWriteBackInFuture +1 ) *7 );
+ QDateTime cur = QDateTime::currentDateTime().addDays( -(mSyncManager->mWriteBackInPast * 7) );
+ QDateTime end = QDateTime::currentDateTime().addDays( (mSyncManager->mWriteBackInFuture ) *7 );
while ( inR ) {
if ( inR->type() == "Todo" ) {
Todo * t = (Todo*)inR;
@@ -1203,7 +1203,7 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int
mes .sprintf( i18n("Synchronization summary:\n\n %d items added to local\n %d items added to remote\n %d items updated on local\n %d items updated on remote\n %d items deleted on local\n %d items deleted on remote\n"),addedEvent, addedEventR, changedLocal, changedRemote, deletedEventL, deletedEventR );
QString delmess;
if ( delFut ) {
- delmess.sprintf( i18n("%d items skipped on remote,\nbecause they are in the past or\nmore than %d weeks in the future.\nAfter skipping, remote has\n%d calendar/todo items."), delFut,mSyncManager->mWriteBackInFuture, remRem-delFut);
+ delmess.sprintf( i18n("%d items skipped on remote,\nbecause they are more\nthan %d weeks in the past or\nmore than %d weeks in the future.\nAfter skipping, remote has\n%d calendar/todo items."), delFut,mSyncManager->mWriteBackInPast,mSyncManager->mWriteBackInFuture, remRem-delFut);
mes += delmess;
}
mes = i18n("Local calendar changed!\n") +mes;
diff --git a/libkcal/syncdefines.h b/libkcal/syncdefines.h
index 704a670..f3204a2 100644
--- a/libkcal/syncdefines.h
+++ b/libkcal/syncdefines.h
@@ -2,6 +2,12 @@
#ifndef _KSYNC_DEFINES_H_
#define _KSYNC_DEFINES_H_
+ enum TargetApp {
+ KOPI = 0,
+ KAPI = 1,
+ PWMPI = 2 };
+
+
#define SYNC_PREF_LOCAL 0
#define SYNC_PREF_REMOTE 1
#define SYNC_PREF_NEWEST 2
diff --git a/libkdepim/ksyncmanager.cpp b/libkdepim/ksyncmanager.cpp
index 6f68d84..33b4a65 100644
--- a/libkdepim/ksyncmanager.cpp
+++ b/libkdepim/ksyncmanager.cpp
@@ -64,7 +64,7 @@ KSyncManager::KSyncManager(QWidget* parent, KSyncInterface* implementation, Targ
mServerSocket = 0;
bar = new QProgressBar ( 1, 0 );
bar->setCaption ("");
-
+ mWriteBackInPast = 2;
int w = 300;
if ( QApplication::desktop()->width() < 320 )
w = 220;
@@ -248,8 +248,10 @@ void KSyncManager::slotSyncMenu( int action )
mWriteBackExistingOnly = temp->getWriteBackExisting();
mIsKapiFile = temp->getIsKapiFile();
mWriteBackInFuture = 0;
- if ( temp->getWriteBackFuture() )
+ if ( temp->getWriteBackFuture() ) {
mWriteBackInFuture = temp->getWriteBackFutureWeeks( );
+ mWriteBackInPast = temp->getWriteBackPastWeeks( );
+ }
if ( action == 1000 ) {
mIsKapiFile = false;
@@ -578,8 +580,10 @@ int KSyncManager::ringSync()
mWriteBackExistingOnly = temp->getWriteBackExisting();
mIsKapiFile = temp->getIsKapiFile();
mWriteBackInFuture = 0;
- if ( temp->getWriteBackFuture() )
+ if ( temp->getWriteBackFuture() ) {
mWriteBackInFuture = temp->getWriteBackFutureWeeks( );
+ mWriteBackInPast = temp->getWriteBackPastWeeks( );
+ }
mShowSyncSummary = false;
mCurrentSyncDevice = syncProfileNames[i] ;
mCurrentSyncName = mLocalMachineName;
diff --git a/libkdepim/ksyncmanager.h b/libkdepim/ksyncmanager.h
index 6da0ee4..2d0a4ab 100644
--- a/libkdepim/ksyncmanager.h
+++ b/libkdepim/ksyncmanager.h
@@ -141,6 +141,7 @@ class KSyncManager : public QObject
int mSyncAlgoPrefs;
bool mWriteBackFile;
int mWriteBackInFuture;
+ int mWriteBackInPast;
QString mPhoneDevice;
QString mPhoneConnection;
QString mPhoneModel;
diff --git a/libkdepim/ksyncprefsdialog.cpp b/libkdepim/ksyncprefsdialog.cpp
index 03265d2..8a3f4cf 100644
--- a/libkdepim/ksyncprefsdialog.cpp
+++ b/libkdepim/ksyncprefsdialog.cpp
@@ -43,6 +43,8 @@
#include <qapplication.h>
#include <qlayout.h>
#include <qscrollview.h>
+#include <qvgroupbox.h>
+#include <qhgroupbox.h>
#include <kcolorbutton.h>
#include <kdebug.h>
@@ -141,7 +143,9 @@ void KSyncPrefsDialog::setupSyncAlgTab()
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 );
@@ -149,13 +153,18 @@ void KSyncPrefsDialog::setupSyncAlgTab()
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);
+ 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 );
@@ -165,25 +174,38 @@ void KSyncPrefsDialog::setupSyncAlgTab()
// 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;
+ //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;
+ // topLayout->addMultiCellWidget(mWriteBackFile, 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);
@@ -196,10 +218,18 @@ void KSyncPrefsDialog::setupSyncAlgTab()
mIsPhone = new QRadioButton ( i18n("Mobile device (cell phone)"), gr );
connect (mIsPhone, SIGNAL( toggled(bool)), this, SLOT (kindChanged(bool) ) );
+ QVGroupBox* gb1 = new QVGroupBox( i18n("Profile kind specific settings"), topFrame);
+ topLayout->addMultiCellWidget(gb1, iii,iii,0,1);
+ ++iii;
+ // ******************************************
+ // Profile kind specific settings
+ {
+ // *** phone *******************************
+ QVGroupBox* topFrame = gb1;
phoneWidget = new QVBox( topFrame);
- topLayout->addMultiCellWidget(phoneWidget, iii,iii,0,1);
- ++iii;
+ //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 );
@@ -221,10 +251,10 @@ void KSyncPrefsDialog::setupSyncAlgTab()
button = new QPushButton( i18n("Help..."), temphb );
connect ( button, SIGNAL( clicked()), this, SLOT ( helpModel() ) );
- // *** local
+ // *** local*******************************
localFileWidget = new QVBox( topFrame);
- topLayout->addMultiCellWidget(localFileWidget, iii,iii,0,1);
- ++iii;
+ //topLayout->addMultiCellWidget(localFileWidget, iii,iii,0,1);
+ //++iii;
temphb = new QHBox( localFileWidget );
lab = new QLabel( i18n("Local file Cal:"), temphb );
@@ -245,10 +275,10 @@ void KSyncPrefsDialog::setupSyncAlgTab()
mIsKapiFileL = new QCheckBox( i18n("Addressbook file (*.vcf) is used by KA/Pi"), localFileWidget );
- // *** remote
+ // *** remote*******************************
remoteFileWidget = new QVBox( topFrame);
- topLayout->addMultiCellWidget(remoteFileWidget, iii,iii,0,1);
- ++iii;
+ //topLayout->addMultiCellWidget(remoteFileWidget, iii,iii,0,1);
+ //++iii;
temphb = new QHBox( remoteFileWidget );
new QLabel( i18n("Calendar:"), temphb);
new QLabel( i18n("AddressBook:"), temphb);
@@ -280,10 +310,10 @@ void KSyncPrefsDialog::setupSyncAlgTab()
connect ( button, SIGNAL( clicked()), this, SLOT (fillFTP() ) );
lab = new QLabel( i18n("Hint: Use $PWD$ for placeholder of password!"), remoteFileWidget);
- // *** pi-sync
+ // *** pi-sync*******************************
piWidget = new QVBox( topFrame);
- topLayout->addMultiCellWidget(piWidget, iii,iii,0,1);
- ++iii;
+ //topLayout->addMultiCellWidget(piWidget, iii,iii,0,1);
+ //++iii;
temphb = new QHBox( piWidget );
new QLabel( i18n("Calendar:"), temphb);
new QLabel( i18n("AddressBook:"), temphb);
@@ -306,11 +336,26 @@ void KSyncPrefsDialog::setupSyncAlgTab()
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()
@@ -430,6 +475,7 @@ void KSyncPrefsDialog::profileChanged( int item )
mIncludeInRingPWM->setChecked( prof->getIncludeInRingSyncPWM() );
mWriteBackFuture->setChecked( prof->getWriteBackFuture());
mWriteBackFutureWeeks->setValue( prof->getWriteBackFutureWeeks() );
+ mWriteBackPastWeeks->setValue( prof->getWriteBackPastWeeks() );
switch ( prof->getSyncPrefs() ) {
case 0:
@@ -593,6 +639,7 @@ void KSyncPrefsDialog::saveProfile()
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() );
diff --git a/libkdepim/ksyncprefsdialog.h b/libkdepim/ksyncprefsdialog.h
index c601a58..997f524 100644
--- a/libkdepim/ksyncprefsdialog.h
+++ b/libkdepim/ksyncprefsdialog.h
@@ -78,13 +78,14 @@ class KSyncPrefsDialog : public KDialog
protected:
void usrWriteConfig();
-
void setupSyncAlgTab();
-
+ void readFilter();
private:
int currentSelection;
QPtrList<KSyncProfile> mSyncProfiles;
QStringList mSyncProfileNames;
+ QStringList mFilterKapi;
+ QStringList mFilterKopi;
QLineEdit * mMyMachineName;
QComboBox * mProfileBox;
QRadioButton* mIsLocal;
@@ -142,6 +143,7 @@ class KSyncPrefsDialog : public KDialog
QCheckBox* mWriteBackFile;
QCheckBox* mWriteBackFuture;
QSpinBox* mWriteBackFutureWeeks;
+ QSpinBox* mWriteBackPastWeeks;
QCheckBox* mWriteBackExisting;
QCheckBox* mAskForPreferences;
QCheckBox* mShowSummaryAfterSync;
diff --git a/libkdepim/ksyncprofile.cpp b/libkdepim/ksyncprofile.cpp
index 029b70b..9f404cb 100644
--- a/libkdepim/ksyncprofile.cpp
+++ b/libkdepim/ksyncprofile.cpp
@@ -70,6 +70,7 @@ KSyncProfile* KSyncProfile::clone()
myClone->setWriteBackFile( mWriteBackFile);
myClone->setWriteBackFuture( mWriteBackFuture );
myClone->setWriteBackFutureWeeks( mWriteBackFutureWeeks );
+ myClone->setWriteBackPastWeeks( mWriteBackPastWeeks );
myClone->setIncludeInRingSync( mIncludeInRingSync );
myClone->setIncludeInRingSyncAB( mIncludeInRingSyncAB );
myClone->setIncludeInRingSyncPWM( mIncludeInRingSyncPWM );
@@ -117,6 +118,7 @@ void KSyncProfile::setDefault()
mWriteBackExisting = false;
mWriteBackFuture = false;
mWriteBackFutureWeeks = 12;
+ mWriteBackPastWeeks = 2;
mWriteBackFile = true;
mIncludeInRingSync = false;
mIncludeInRingSyncAB = false;
@@ -181,6 +183,7 @@ void KSyncProfile::readConfig(KConfig *config )
mWriteContactToSIM = config->readBoolEntry( "WriteContactToSIM",mWriteContactToSIM );
mSyncPrefs = config->readNumEntry( "SyncPrefs", mSyncPrefs );
mWriteBackFutureWeeks = config->readNumEntry( "WriteBackFutureWeeks", mWriteBackFutureWeeks );
+ mWriteBackPastWeeks = config->readNumEntry( "WriteBackPastWeeks", mWriteBackPastWeeks );
mIsLocalFileSync= config->readBoolEntry( "IsLocalFileSync", mIsLocalFileSync );
mIsPhoneSync= config->readBoolEntry( "IsPhoneSync", mIsPhoneSync );
mIsPiSync= config->readBoolEntry( "IsPiSync", mIsPiSync );
@@ -244,6 +247,7 @@ void KSyncProfile::writeConfig( KConfig * config )
config->writeEntry( "WriteContactToSIM",mWriteContactToSIM );
config->writeEntry( "SyncPrefs", mSyncPrefs );
config->writeEntry( "WriteBackFutureWeeks", mWriteBackFutureWeeks);
+ config->writeEntry( "WriteBackPastWeeks", mWriteBackPastWeeks);
config->writeEntry( "IsLocalFileSync", mIsLocalFileSync );
config->writeEntry( "IsPhoneSync", mIsPhoneSync );
config->writeEntry( "IsPiSync", mIsPiSync );
diff --git a/libkdepim/ksyncprofile.h b/libkdepim/ksyncprofile.h
index 0a59111..e970b50 100644
--- a/libkdepim/ksyncprofile.h
+++ b/libkdepim/ksyncprofile.h
@@ -128,6 +128,8 @@ class KSyncProfile : public QObject {
int getSyncPrefs( ) { return mSyncPrefs;}
void setWriteBackFutureWeeks( int n ) { mWriteBackFutureWeeks= n;}
int getWriteBackFutureWeeks( ) { return mWriteBackFutureWeeks;}
+ void setWriteBackPastWeeks( int n ) { mWriteBackPastWeeks= n;}
+ int getWriteBackPastWeeks( ) { return mWriteBackPastWeeks;}
void setIsLocalFileSync( bool b ) { mIsLocalFileSync= b;}
bool getIsLocalFileSync( ) { return mIsLocalFileSync;}
void setIsPhoneSync( bool b ) { mIsPhoneSync= b;}
@@ -175,6 +177,7 @@ class KSyncProfile : public QObject {
bool mWriteBackExisting;
bool mWriteBackFuture;
int mWriteBackFutureWeeks;
+ int mWriteBackPastWeeks;
bool mAskForPreferences;
bool mShowSummaryAfterSync;
bool mIsLocalFileSync;