summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2004-10-06 20:51:01 (UTC)
committer zautrix <zautrix>2004-10-06 20:51:01 (UTC)
commit0afcfa29ace7bc5e42a11fae44301e1e8230a376 (patch) (unidiff)
treeb54f85b19ace24219be1b845469444089cacc94f
parented4675de07d947f55d2672c721599e3a0af1e24b (diff)
downloadkdepimpi-0afcfa29ace7bc5e42a11fae44301e1e8230a376.zip
kdepimpi-0afcfa29ace7bc5e42a11fae44301e1e8230a376.tar.gz
kdepimpi-0afcfa29ace7bc5e42a11fae44301e1e8230a376.tar.bz2
some prefs cleanups
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--kaddressbook/kabcore.cpp14
-rw-r--r--korganizer/calendarview.cpp14
-rw-r--r--korganizer/calendarview.h2
-rw-r--r--korganizer/mainwindow.cpp1
-rw-r--r--libkdepim/kpimprefs.h18
-rw-r--r--libkdepim/ksyncmanager.cpp100
-rw-r--r--libkdepim/ksyncmanager.h20
-rw-r--r--pwmanager/pwmanager/pwmdoc.cpp6
8 files changed, 79 insertions, 96 deletions
diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp
index b014cba..9041e45 100644
--- a/kaddressbook/kabcore.cpp
+++ b/kaddressbook/kabcore.cpp
@@ -2596,42 +2596,42 @@ bool KABCore::synchronizeAddressbooks( KABC::AddressBook* local, KABC::AddressBo
2596 if ( uid.left(19) == QString("last-syncAddressee-") ) 2596 if ( uid.left(19) == QString("last-syncAddressee-") )
2597 skipIncidence = true; 2597 skipIncidence = true;
2598 if ( !skipIncidence ) { 2598 if ( !skipIncidence ) {
2599 inL = local->findByUid( uid ); 2599 inL = local->findByUid( uid );
2600 inR = remote->findByUid( uid ); 2600 inR = remote->findByUid( uid );
2601 if ( inR.isEmpty() ) { 2601 if ( inR.isEmpty() ) {
2602 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { 2602 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
2603 if ( !inL.getID(mCurrentSyncDevice).isEmpty() && mode != 4 ) { 2603 if ( !inL.getID(mCurrentSyncDevice).isEmpty() && mode != 4 ) {
2604 // pending checkExternSyncAddressee(addresseeLSyncSharp, inL); 2604 // pending checkExternSyncAddressee(addresseeLSyncSharp, inL);
2605 local->removeAddressee( inL ); 2605 local->removeAddressee( inL );
2606 ++deletedAddresseeL; 2606 ++deletedAddresseeL;
2607 } else { 2607 } else {
2608 if ( ! KABPrefs::instance()->mWriteBackExistingOnly ) { 2608 if ( ! syncManager->mWriteBackExistingOnly ) {
2609 inL.removeID(mCurrentSyncDevice ); 2609 inL.removeID(mCurrentSyncDevice );
2610 ++addedAddresseeR; 2610 ++addedAddresseeR;
2611 inL.setRevision( modifiedCalendar ); 2611 inL.setRevision( modifiedCalendar );
2612 local->insertAddressee( inL, false ); 2612 local->insertAddressee( inL, false );
2613 inR = inL; 2613 inR = inL;
2614 inR.setTempSyncStat( SYNC_TEMPSTATE_ADDED_EXTERNAL ); 2614 inR.setTempSyncStat( SYNC_TEMPSTATE_ADDED_EXTERNAL );
2615 inR.setResource( 0 ); 2615 inR.setResource( 0 );
2616 remote->insertAddressee( inR, false ); 2616 remote->insertAddressee( inR, false );
2617 } 2617 }
2618 } 2618 }
2619 } else { 2619 } else {
2620 if ( inL.revision() < mLastAddressbookSync && mode != 4 ) { 2620 if ( inL.revision() < mLastAddressbookSync && mode != 4 ) {
2621 // pending checkExternSyncAddressee(addresseeLSyncSharp, inL); 2621 // pending checkExternSyncAddressee(addresseeLSyncSharp, inL);
2622 local->removeAddressee( inL ); 2622 local->removeAddressee( inL );
2623 ++deletedAddresseeL; 2623 ++deletedAddresseeL;
2624 } else { 2624 } else {
2625 if ( ! KABPrefs::instance()->mWriteBackExistingOnly ) { 2625 if ( ! syncManager->mWriteBackExistingOnly ) {
2626 ++addedAddresseeR; 2626 ++addedAddresseeR;
2627 inL.setRevision( modifiedCalendar ); 2627 inL.setRevision( modifiedCalendar );
2628 local->insertAddressee( inL, false ); 2628 local->insertAddressee( inL, false );
2629 inR = inL; 2629 inR = inL;
2630 inR.setResource( 0 ); 2630 inR.setResource( 0 );
2631 remote->insertAddressee( inR, false ); 2631 remote->insertAddressee( inR, false );
2632 } 2632 }
2633 } 2633 }
2634 } 2634 }
2635 } 2635 }
2636 } 2636 }
2637 ++incCounter; 2637 ++incCounter;
@@ -2649,35 +2649,35 @@ bool KABCore::synchronizeAddressbooks( KABC::AddressBook* local, KABC::AddressBo
2649 addresseeRSync.setGivenName( i18n("!DO NOT EDIT!") ) ; 2649 addresseeRSync.setGivenName( i18n("!DO NOT EDIT!") ) ;
2650 addresseeLSync.setGivenName(i18n("!DO NOT EDIT!") ); 2650 addresseeLSync.setGivenName(i18n("!DO NOT EDIT!") );
2651 addresseeRSync.setOrganization( "!"+mLastAddressbookSync.toString() ) ; 2651 addresseeRSync.setOrganization( "!"+mLastAddressbookSync.toString() ) ;
2652 addresseeLSync.setOrganization("!"+ mLastAddressbookSync.toString() ); 2652 addresseeLSync.setOrganization("!"+ mLastAddressbookSync.toString() );
2653 addresseeRSync.setNote( "" ) ; 2653 addresseeRSync.setNote( "" ) ;
2654 addresseeLSync.setNote( "" ); 2654 addresseeLSync.setNote( "" );
2655 2655
2656 if ( mGlobalSyncMode == SYNC_MODE_NORMAL) 2656 if ( mGlobalSyncMode == SYNC_MODE_NORMAL)
2657 remote->insertAddressee( addresseeRSync, false ); 2657 remote->insertAddressee( addresseeRSync, false );
2658 local->insertAddressee( addresseeLSync, false ); 2658 local->insertAddressee( addresseeLSync, false );
2659 QString mes; 2659 QString mes;
2660 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"),addedAddressee, addedAddresseeR, changedLocal, changedRemote, deletedAddresseeL, deletedAddresseeR ); 2660 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"),addedAddressee, addedAddresseeR, changedLocal, changedRemote, deletedAddresseeL, deletedAddresseeR );
2661 if ( KABPrefs::instance()->mShowSyncSummary ) { 2661 if ( syncManager->mShowSyncSummary ) {
2662 KMessageBox::information(this, mes, i18n("KA/Pi Synchronization") ); 2662 KMessageBox::information(this, mes, i18n("KA/Pi Synchronization") );
2663 } 2663 }
2664 qDebug( mes ); 2664 qDebug( mes );
2665 return syncOK; 2665 return syncOK;
2666} 2666}
2667 2667
2668 2668
2669//this is a overwritten callbackmethods from the syncinterface 2669//this is a overwritten callbackmethods from the syncinterface
2670bool KABCore::sync(KSyncManager* manager, QString filename, int mode) 2670bool KABCore::sync(KSyncManager* manager, QString filename, int mode)
2671{ 2671{
2672 2672
2673 //pending prepare addresseeview for output 2673 //pending prepare addresseeview for output
2674 //pending detect, if remote file has REV field. if not switch to external sync 2674 //pending detect, if remote file has REV field. if not switch to external sync
2675 mGlobalSyncMode = SYNC_MODE_NORMAL; 2675 mGlobalSyncMode = SYNC_MODE_NORMAL;
2676 QString mCurrentSyncDevice = manager->getCurrentSyncDevice(); 2676 QString mCurrentSyncDevice = manager->getCurrentSyncDevice();
2677 2677
2678 AddressBook abLocal(filename,"syncContact"); 2678 AddressBook abLocal(filename,"syncContact");
2679 bool syncOK = false; 2679 bool syncOK = false;
2680 if ( abLocal.load() ) { 2680 if ( abLocal.load() ) {
2681 qDebug("AB loaded %s,sync mode %d",filename.latin1(), mode ); 2681 qDebug("AB loaded %s,sync mode %d",filename.latin1(), mode );
2682 bool external = false; 2682 bool external = false;
2683 bool isXML = false; 2683 bool isXML = false;
@@ -2710,25 +2710,25 @@ bool KABCore::sync(KSyncManager* manager, QString filename, int mode)
2710 (*it).setID( mCurrentSyncDevice, (*it).uid() ); 2710 (*it).setID( mCurrentSyncDevice, (*it).uid() );
2711 (*it).computeCsum( mCurrentSyncDevice ); 2711 (*it).computeCsum( mCurrentSyncDevice );
2712 } 2712 }
2713 } 2713 }
2714 } 2714 }
2715 //AddressBook::Iterator it; 2715 //AddressBook::Iterator it;
2716 //QStringList vcards; 2716 //QStringList vcards;
2717 //for ( it = abLocal.begin(); it != abLocal.end(); ++it ) { 2717 //for ( it = abLocal.begin(); it != abLocal.end(); ++it ) {
2718 // qDebug("Name %s ", (*it).familyName().latin1()); 2718 // qDebug("Name %s ", (*it).familyName().latin1());
2719 //} 2719 //}
2720 syncOK = synchronizeAddressbooks( mAddressBook, &abLocal, mode ); 2720 syncOK = synchronizeAddressbooks( mAddressBook, &abLocal, mode );
2721 if ( syncOK ) { 2721 if ( syncOK ) {
2722 if ( KABPrefs::instance()->mWriteBackFile ) 2722 if ( syncManager->mWriteBackFile )
2723 { 2723 {
2724 if ( external ) 2724 if ( external )
2725 abLocal.removeSyncAddressees( !isXML); 2725 abLocal.removeSyncAddressees( !isXML);
2726 qDebug("Saving remote AB "); 2726 qDebug("Saving remote AB ");
2727 abLocal.saveAB(); 2727 abLocal.saveAB();
2728 if ( isXML ) { 2728 if ( isXML ) {
2729 // afterwrite processing 2729 // afterwrite processing
2730 abLocal.postExternSync( mAddressBook,mCurrentSyncDevice ); 2730 abLocal.postExternSync( mAddressBook,mCurrentSyncDevice );
2731 } 2731 }
2732 } 2732 }
2733 } 2733 }
2734 setModified(); 2734 setModified();
@@ -2760,27 +2760,27 @@ bool KABCore::sync(KSyncManager* manager, QString filename, int mode)
2760//this is a overwritten callbackmethods from the syncinterface 2760//this is a overwritten callbackmethods from the syncinterface
2761bool KABCore::syncExternal(KSyncManager* manager, QString resource) 2761bool KABCore::syncExternal(KSyncManager* manager, QString resource)
2762{ 2762{
2763 QString mCurrentSyncDevice = manager->getCurrentSyncDevice(); 2763 QString mCurrentSyncDevice = manager->getCurrentSyncDevice();
2764 2764
2765 AddressBook abLocal( resource,"syncContact"); 2765 AddressBook abLocal( resource,"syncContact");
2766 bool syncOK = false; 2766 bool syncOK = false;
2767 if ( abLocal.load() ) { 2767 if ( abLocal.load() ) {
2768 qDebug("AB sharp loaded ,sync device %s",mCurrentSyncDevice.latin1()); 2768 qDebug("AB sharp loaded ,sync device %s",mCurrentSyncDevice.latin1());
2769 mGlobalSyncMode = SYNC_MODE_EXTERNAL; 2769 mGlobalSyncMode = SYNC_MODE_EXTERNAL;
2770 abLocal.preExternSync( mAddressBook ,mCurrentSyncDevice ); 2770 abLocal.preExternSync( mAddressBook ,mCurrentSyncDevice );
2771 qDebug("KABCore::syncExternal: why do we acces here KABPrefs and not somehow KSyncProfile? "); 2771 qDebug("KABCore::syncExternal: why do we acces here KABPrefs and not somehow KSyncProfile? ");
2772 syncOK = synchronizeAddressbooks( mAddressBook, &abLocal, KABPrefs::instance()->mSyncAlgoPrefs ); 2772 syncOK = synchronizeAddressbooks( mAddressBook, &abLocal, syncManager->mSyncAlgoPrefs );
2773 if ( syncOK ) { 2773 if ( syncOK ) {
2774 if ( KABPrefs::instance()->mWriteBackFile ) { 2774 if ( syncManager->mWriteBackFile ) {
2775 abLocal.saveAB(); 2775 abLocal.saveAB();
2776 abLocal.postExternSync( mAddressBook,mCurrentSyncDevice ); 2776 abLocal.postExternSync( mAddressBook,mCurrentSyncDevice );
2777 } 2777 }
2778 } 2778 }
2779 setModified(); 2779 setModified();
2780 } 2780 }
2781 if ( syncOK ) 2781 if ( syncOK )
2782 mViewManager->refreshView(); 2782 mViewManager->refreshView();
2783 return syncOK; 2783 return syncOK;
2784 2784
2785} 2785}
2786 2786
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp
index 38b55f7..1de2759 100644
--- a/korganizer/calendarview.cpp
+++ b/korganizer/calendarview.cpp
@@ -868,39 +868,25 @@ Event* CalendarView::getLastSyncEvent()
868 sum = "E: "; 868 sum = "E: ";
869 lse->setSummary(sum+mCurrentSyncDevice + i18n(" - sync event")); 869 lse->setSummary(sum+mCurrentSyncDevice + i18n(" - sync event"));
870 lse->setDtStart( mLastCalendarSync ); 870 lse->setDtStart( mLastCalendarSync );
871 lse->setDtEnd( mLastCalendarSync.addSecs( 7200 ) ); 871 lse->setDtEnd( mLastCalendarSync.addSecs( 7200 ) );
872 lse->setCategories( i18n("SyncEvent") ); 872 lse->setCategories( i18n("SyncEvent") );
873 lse->setReadOnly( true ); 873 lse->setReadOnly( true );
874 mCalendar->addEvent( lse ); 874 mCalendar->addEvent( lse );
875 } 875 }
876 876
877 return lse; 877 return lse;
878 878
879} 879}
880// probaly useless
881void CalendarView::setupExternSyncProfiles()
882{
883 Event* lse;
884 mExternLastSyncEvent.clear();
885 int i;
886 for ( i = 0; i < KOPrefs::instance()->mExternSyncProfiles.count(); ++i ) {
887 lse = mCalendar->event( "last-syncEvent-"+ KOPrefs::instance()->mExternSyncProfiles[i] );
888 if ( lse )
889 mExternLastSyncEvent.append( lse );
890 else
891 qDebug("Last Sync event not found for %s ", KOPrefs::instance()->mExternSyncProfiles[i].latin1());
892 }
893 880
894}
895// we check, if the to delete event has a id for a profile 881// we check, if the to delete event has a id for a profile
896// if yes, we set this id in the profile to delete 882// if yes, we set this id in the profile to delete
897void CalendarView::checkExternSyncEvent( QPtrList<Event> lastSync , Incidence* toDelete ) 883void CalendarView::checkExternSyncEvent( QPtrList<Event> lastSync , Incidence* toDelete )
898{ 884{
899 if ( lastSync.count() == 0 ) { 885 if ( lastSync.count() == 0 ) {
900 //qDebug(" lastSync.count() == 0"); 886 //qDebug(" lastSync.count() == 0");
901 return; 887 return;
902 } 888 }
903 if ( toDelete->type() == "Journal" ) 889 if ( toDelete->type() == "Journal" )
904 return; 890 return;
905 891
906 Event* eve = lastSync.first(); 892 Event* eve = lastSync.first();
diff --git a/korganizer/calendarview.h b/korganizer/calendarview.h
index a713c91..0f7e696 100644
--- a/korganizer/calendarview.h
+++ b/korganizer/calendarview.h
@@ -104,25 +104,24 @@ class CalendarView : public KOrg::CalendarViewBase, public KCal::Calendar::Obser
104 104
105 QWidgetStack *viewStack(); 105 QWidgetStack *viewStack();
106 QWidget *leftFrame(); 106 QWidget *leftFrame();
107 NavigatorBar *navigatorBar(); 107 NavigatorBar *navigatorBar();
108 108
109 DateNavigator *dateNavigator(); 109 DateNavigator *dateNavigator();
110 KDateNavigator *dateNavigatorWidget(); 110 KDateNavigator *dateNavigatorWidget();
111 111
112 void addView(KOrg::BaseView *); 112 void addView(KOrg::BaseView *);
113 void showView(KOrg::BaseView *); 113 void showView(KOrg::BaseView *);
114 KOEventViewerDialog* getEventViewerDialog(); 114 KOEventViewerDialog* getEventViewerDialog();
115 Incidence *currentSelection(); 115 Incidence *currentSelection();
116 void setupExternSyncProfiles();
117 116
118 signals: 117 signals:
119 /** This todo has been modified */ 118 /** This todo has been modified */
120 void todoModified(Todo *, int); 119 void todoModified(Todo *, int);
121 120
122 /** when change is made to options dialog, the topwidget will catch this 121 /** when change is made to options dialog, the topwidget will catch this
123 * and emit this signal which notifies all widgets which have registered 122 * and emit this signal which notifies all widgets which have registered
124 * for notification to update their settings. */ 123 * for notification to update their settings. */
125 void configChanged(); 124 void configChanged();
126 /** emitted when the topwidget is closing down, so that any attached 125 /** emitted when the topwidget is closing down, so that any attached
127 child windows can also close. */ 126 child windows can also close. */
128 void closingDown(); 127 void closingDown();
@@ -535,25 +534,24 @@ class CalendarView : public KOrg::CalendarViewBase, public KCal::Calendar::Obser
535 KODialogManager *mDialogManager; 534 KODialogManager *mDialogManager;
536 535
537 // Calendar filters 536 // Calendar filters
538 QPtrList<CalFilter> mFilters; 537 QPtrList<CalFilter> mFilters;
539 538
540 // various housekeeping variables. 539 // various housekeeping variables.
541 bool mModified; // flag indicating if calendar is modified 540 bool mModified; // flag indicating if calendar is modified
542 bool mReadOnly; // flag indicating if calendar is read-only 541 bool mReadOnly; // flag indicating if calendar is read-only
543 QDate mSaveSingleDate; 542 QDate mSaveSingleDate;
544 543
545 Incidence *mSelectedIncidence; 544 Incidence *mSelectedIncidence;
546 Incidence *mMoveIncidence; 545 Incidence *mMoveIncidence;
547 QPtrList<Event> mExternLastSyncEvent;
548 KOTodoView *mTodoList; 546 KOTodoView *mTodoList;
549 KOEventEditor * mEventEditor; 547 KOEventEditor * mEventEditor;
550 KOTodoEditor * mTodoEditor; 548 KOTodoEditor * mTodoEditor;
551 KOEventViewerDialog * mEventViewerDialog; 549 KOEventViewerDialog * mEventViewerDialog;
552 void keyPressEvent ( QKeyEvent *e) ; 550 void keyPressEvent ( QKeyEvent *e) ;
553 //QMap<Incidence*,KOIncidenceEditor*> mDialogList; 551 //QMap<Incidence*,KOIncidenceEditor*> mDialogList;
554}; 552};
555 553
556 554
557class CalendarViewVisitor : public Incidence::Visitor 555class CalendarViewVisitor : public Incidence::Visitor
558{ 556{
559 public: 557 public:
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp
index ec69b11..9104347 100644
--- a/korganizer/mainwindow.cpp
+++ b/korganizer/mainwindow.cpp
@@ -981,25 +981,24 @@ void MainWindow::fillSyncMenu()
981 KOPrefs::instance()->mSyncProfileNames = prof; 981 KOPrefs::instance()->mSyncProfileNames = prof;
982 int i; 982 int i;
983 for ( i = 0; i < prof.count(); ++i ) { 983 for ( i = 0; i < prof.count(); ++i ) {
984 984
985 syncMenu->insertItem( prof[i], 1000+i ); 985 syncMenu->insertItem( prof[i], 1000+i );
986 if ( i == 2 ) 986 if ( i == 2 )
987 syncMenu->insertSeparator(); 987 syncMenu->insertSeparator();
988 } 988 }
989 QDir app_dir; 989 QDir app_dir;
990 if ( !app_dir.exists(QDir::homeDirPath()+"/Applications/dtm" ) ) { 990 if ( !app_dir.exists(QDir::homeDirPath()+"/Applications/dtm" ) ) {
991 syncMenu->setItemEnabled( false , 1000 ); 991 syncMenu->setItemEnabled( false , 1000 );
992 } 992 }
993 mView->setupExternSyncProfiles();
994} 993}
995 994
996int MainWindow::ringSync() 995int MainWindow::ringSync()
997{ 996{
998 int syncedProfiles = 0; 997 int syncedProfiles = 0;
999 int i; 998 int i;
1000 QTime timer; 999 QTime timer;
1001 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); 1000 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) );
1002 QStringList syncProfileNames = KOPrefs::instance()->mSyncProfileNames; 1001 QStringList syncProfileNames = KOPrefs::instance()->mSyncProfileNames;
1003 KSyncProfile* temp = new KSyncProfile (); 1002 KSyncProfile* temp = new KSyncProfile ();
1004 KOPrefs::instance()->mAskForPreferences = false; 1003 KOPrefs::instance()->mAskForPreferences = false;
1005 for ( i = 0; i < syncProfileNames.count(); ++i ) { 1004 for ( i = 0; i < syncProfileNames.count(); ++i ) {
diff --git a/libkdepim/kpimprefs.h b/libkdepim/kpimprefs.h
index 01c57a3..6f92919 100644
--- a/libkdepim/kpimprefs.h
+++ b/libkdepim/kpimprefs.h
@@ -47,39 +47,23 @@ class KPimPrefs : public KPrefs
47 void usrSetDefaults(); 47 void usrSetDefaults();
48 48
49 /** Read preferences from config file */ 49 /** Read preferences from config file */
50 void usrReadConfig(); 50 void usrReadConfig();
51 51
52 /** Write preferences to config file */ 52 /** Write preferences to config file */
53 void usrWriteConfig(); 53 void usrWriteConfig();
54 54
55 55
56 public: 56 public:
57 QStringList mCustomCategories; 57 QStringList mCustomCategories;
58 58
59 // sync stuff 59
60 QString mLocalMachineName;
61 QStringList mExternSyncProfiles;
62 QStringList mSyncProfileNames;
63 bool mAskForPreferences;
64 bool mShowSyncSummary;
65 bool mShowSyncEvents;
66 bool mShowTodoInAgenda;
67 bool mWriteBackExistingOnly;
68 int mSyncAlgoPrefs;
69 int mRingSyncAlgoPrefs;
70 bool mWriteBackFile;
71 int mWriteBackInFuture;
72 QString mPhoneDevice;
73 QString mPhoneConnection;
74 QString mPhoneModel;
75 QString mLastSyncedLocalFile; // save!
76 60
77 61
78 protected: 62 protected:
79 virtual void setCategoryDefaults(); 63 virtual void setCategoryDefaults();
80 64
81 65
82 66
83}; 67};
84 68
85#endif 69#endif
diff --git a/libkdepim/ksyncmanager.cpp b/libkdepim/ksyncmanager.cpp
index 07e6761..c0cc840 100644
--- a/libkdepim/ksyncmanager.cpp
+++ b/libkdepim/ksyncmanager.cpp
@@ -43,25 +43,25 @@
43#include <qmessagebox.h> 43#include <qmessagebox.h>
44#include <qapplication.h> 44#include <qapplication.h>
45#include <qlineedit.h> 45#include <qlineedit.h>
46#include <qdialog.h> 46#include <qdialog.h>
47#include <qlayout.h> 47#include <qlayout.h>
48 48
49#include <klocale.h> 49#include <klocale.h>
50#include <kglobal.h> 50#include <kglobal.h>
51#include <kconfig.h> 51#include <kconfig.h>
52#include <kfiledialog.h> 52#include <kfiledialog.h>
53 53
54KSyncManager::KSyncManager(QWidget* parent, KSyncInterface* implementation, TargetApp ta, KPimPrefs* prefs, QPopupMenu* syncmenu) 54KSyncManager::KSyncManager(QWidget* parent, KSyncInterface* implementation, TargetApp ta, KPimPrefs* prefs, QPopupMenu* syncmenu)
55 : QObject(), mParent(parent), mImplementation(implementation), mTargetApp(ta), mPrefs(prefs), mSyncMenu(syncmenu) 55 : QObject(), mParent(parent), mImplementation(implementation), mTargetApp(ta), mSyncMenu(syncmenu)
56{ 56{
57 bar = new QProgressBar ( 1, 0 ); 57 bar = new QProgressBar ( 1, 0 );
58 bar->setCaption (""); 58 bar->setCaption ("");
59 59
60 int w = 300; 60 int w = 300;
61 if ( QApplication::desktop()->width() < 320 ) 61 if ( QApplication::desktop()->width() < 320 )
62 w = 220; 62 w = 220;
63 int h = bar->sizeHint().height() ; 63 int h = bar->sizeHint().height() ;
64 int dw = QApplication::desktop()->width(); 64 int dw = QApplication::desktop()->width();
65 int dh = QApplication::desktop()->height(); 65 int dh = QApplication::desktop()->height();
66 bar->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); 66 bar->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h );
67 67
@@ -77,61 +77,59 @@ void KSyncManager::fillSyncMenu()
77{ 77{
78 if ( mSyncMenu->count() ) 78 if ( mSyncMenu->count() )
79 mSyncMenu->clear(); 79 mSyncMenu->clear();
80 80
81 mSyncMenu->insertItem( i18n("Configure..."), 0 ); 81 mSyncMenu->insertItem( i18n("Configure..."), 0 );
82 mSyncMenu->insertSeparator(); 82 mSyncMenu->insertSeparator();
83 mSyncMenu->insertItem( i18n("Multiple sync"), 1 ); 83 mSyncMenu->insertItem( i18n("Multiple sync"), 1 );
84 mSyncMenu->insertSeparator(); 84 mSyncMenu->insertSeparator();
85 85
86 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); 86 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) );
87 config.setGroup("General"); 87 config.setGroup("General");
88 QStringList prof = config.readListEntry("SyncProfileNames"); 88 QStringList prof = config.readListEntry("SyncProfileNames");
89 mPrefs->mLocalMachineName = config.readEntry("LocalMachineName","undefined"); 89 mLocalMachineName = config.readEntry("LocalMachineName","undefined");
90 if ( prof.count() < 3 ) { 90 if ( prof.count() < 3 ) {
91 prof.clear(); 91 prof.clear();
92 prof << i18n("Sharp_DTM"); 92 prof << i18n("Sharp_DTM");
93 prof << i18n("Local_file"); 93 prof << i18n("Local_file");
94 prof << i18n("Last_file"); 94 prof << i18n("Last_file");
95 KSyncProfile* temp = new KSyncProfile (); 95 KSyncProfile* temp = new KSyncProfile ();
96 temp->setName( prof[0] ); 96 temp->setName( prof[0] );
97 temp->writeConfig(&config); 97 temp->writeConfig(&config);
98 temp->setName( prof[1] ); 98 temp->setName( prof[1] );
99 temp->writeConfig(&config); 99 temp->writeConfig(&config);
100 temp->setName( prof[2] ); 100 temp->setName( prof[2] );
101 temp->writeConfig(&config); 101 temp->writeConfig(&config);
102 config.setGroup("General"); 102 config.setGroup("General");
103 config.writeEntry("SyncProfileNames",prof); 103 config.writeEntry("SyncProfileNames",prof);
104 config.writeEntry("ExternSyncProfiles","Sharp_DTM"); 104 config.writeEntry("ExternSyncProfiles","Sharp_DTM");
105 config.sync(); 105 config.sync();
106 delete temp; 106 delete temp;
107 } 107 }
108 mPrefs->mExternSyncProfiles = config.readListEntry("ExternSyncProfiles"); 108 mExternSyncProfiles = config.readListEntry("ExternSyncProfiles");
109 mPrefs->mSyncProfileNames = prof; 109 mSyncProfileNames = prof;
110 unsigned int i; 110 unsigned int i;
111 for ( i = 0; i < prof.count(); ++i ) { 111 for ( i = 0; i < prof.count(); ++i ) {
112 mSyncMenu->insertItem( prof[i], 1000+i ); 112 mSyncMenu->insertItem( prof[i], 1000+i );
113 if ( i == 2 ) 113 if ( i == 2 )
114 mSyncMenu->insertSeparator(); 114 mSyncMenu->insertSeparator();
115 } 115 }
116 QDir app_dir; 116 QDir app_dir;
117 //US do not display SharpDTM if app is pwmpi, or no sharpfiles available 117 //US do not display SharpDTM if app is pwmpi, or no sharpfiles available
118 if ( mTargetApp == PWMPI) { 118 if ( mTargetApp == PWMPI) {
119 mSyncMenu->removeItem( 1000 ); 119 mSyncMenu->removeItem( 1000 );
120 } 120 }
121 else if (!app_dir.exists(QDir::homeDirPath()+"/Applications/dtm" ) ) { 121 else if (!app_dir.exists(QDir::homeDirPath()+"/Applications/dtm" ) ) {
122 mSyncMenu->setItemEnabled( 1000, false ); 122 mSyncMenu->setItemEnabled( 1000, false );
123 } 123 }
124 //probaly useless
125 //mView->setupExternSyncProfiles();
126} 124}
127 125
128void KSyncManager::slotSyncMenu( int action ) 126void KSyncManager::slotSyncMenu( int action )
129{ 127{
130 //qDebug("syncaction %d ", action); 128 //qDebug("syncaction %d ", action);
131 if ( action == 0 ) { 129 if ( action == 0 ) {
132 130
133 // seems to be a Qt2 event handling bug 131 // seems to be a Qt2 event handling bug
134 // syncmenu.clear causes a segfault at first time 132 // syncmenu.clear causes a segfault at first time
135 // when we call it after the main event loop, it is ok 133 // when we call it after the main event loop, it is ok
136 // same behaviour when calling OM/Pi via QCOP for the first time 134 // same behaviour when calling OM/Pi via QCOP for the first time
137 QTimer::singleShot ( 1, this, SLOT ( confSync() ) ); 135 QTimer::singleShot ( 1, this, SLOT ( confSync() ) );
@@ -141,87 +139,87 @@ void KSyncManager::slotSyncMenu( int action )
141 } 139 }
142 if ( action == 1 ) { 140 if ( action == 1 ) {
143 multiSync( true ); 141 multiSync( true );
144 return; 142 return;
145 } 143 }
146 144
147 if (blockSave()) 145 if (blockSave())
148 return; 146 return;
149 147
150 setBlockSave(true); 148 setBlockSave(true);
151 149
152 mCurrentSyncProfile = action - 1000 ; 150 mCurrentSyncProfile = action - 1000 ;
153 mCurrentSyncDevice = mPrefs->mSyncProfileNames[mCurrentSyncProfile] ; 151 mCurrentSyncDevice = mSyncProfileNames[mCurrentSyncProfile] ;
154 mCurrentSyncName = mPrefs->mLocalMachineName ; 152 mCurrentSyncName = mLocalMachineName ;
155 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); 153 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) );
156 KSyncProfile* temp = new KSyncProfile (); 154 KSyncProfile* temp = new KSyncProfile ();
157 temp->setName(mPrefs->mSyncProfileNames[mCurrentSyncProfile]); 155 temp->setName(mSyncProfileNames[mCurrentSyncProfile]);
158 temp->readConfig(&config); 156 temp->readConfig(&config);
159 mPrefs->mAskForPreferences = temp->getAskForPreferences(); 157 mAskForPreferences = temp->getAskForPreferences();
160 mPrefs->mSyncAlgoPrefs = temp->getSyncPrefs(); 158 mSyncAlgoPrefs = temp->getSyncPrefs();
161 mPrefs->mWriteBackFile = temp->getWriteBackFile(); 159 mWriteBackFile = temp->getWriteBackFile();
162 mPrefs->mWriteBackExistingOnly = temp->getWriteBackExisting(); 160 mWriteBackExistingOnly = temp->getWriteBackExisting();
163 mPrefs->mWriteBackInFuture = 0; 161 mWriteBackInFuture = 0;
164 if ( temp->getWriteBackFuture() ) 162 if ( temp->getWriteBackFuture() )
165 mPrefs->mWriteBackInFuture = temp->getWriteBackFutureWeeks( ); 163 mWriteBackInFuture = temp->getWriteBackFutureWeeks( );
166 mPrefs->mShowSyncSummary = temp->getShowSummaryAfterSync(); 164 mShowSyncSummary = temp->getShowSummaryAfterSync();
167 if ( action == 1000 ) { 165 if ( action == 1000 ) {
168 syncSharp(); 166 syncSharp();
169 167
170 } else if ( action == 1001 ) { 168 } else if ( action == 1001 ) {
171 syncLocalFile(); 169 syncLocalFile();
172 170
173 } else if ( action == 1002 ) { 171 } else if ( action == 1002 ) {
174 quickSyncLocalFile(); 172 quickSyncLocalFile();
175 173
176 } else if ( action >= 1003 ) { 174 } else if ( action >= 1003 ) {
177 if ( temp->getIsLocalFileSync() ) { 175 if ( temp->getIsLocalFileSync() ) {
178 switch(mTargetApp) 176 switch(mTargetApp)
179 { 177 {
180 case (KAPI): 178 case (KAPI):
181 if ( syncWithFile( temp->getRemoteFileNameAB( ), false ) ) 179 if ( syncWithFile( temp->getRemoteFileNameAB( ), false ) )
182 mPrefs->mLastSyncedLocalFile = temp->getRemoteFileNameAB(); 180 mLastSyncedLocalFile = temp->getRemoteFileNameAB();
183 break; 181 break;
184 case (KOPI): 182 case (KOPI):
185 if ( syncWithFile( temp->getRemoteFileName( ), false ) ) 183 if ( syncWithFile( temp->getRemoteFileName( ), false ) )
186 mPrefs->mLastSyncedLocalFile = temp->getRemoteFileName(); 184 mLastSyncedLocalFile = temp->getRemoteFileName();
187 break; 185 break;
188 case (PWMPI): 186 case (PWMPI):
189 if ( syncWithFile( temp->getRemoteFileNamePWM( ), false ) ) 187 if ( syncWithFile( temp->getRemoteFileNamePWM( ), false ) )
190 mPrefs->mLastSyncedLocalFile = temp->getRemoteFileNamePWM(); 188 mLastSyncedLocalFile = temp->getRemoteFileNamePWM();
191 break; 189 break;
192 default: 190 default:
193 qDebug("KSyncManager::slotSyncMenu: invalid apptype selected"); 191 qDebug("KSyncManager::slotSyncMenu: invalid apptype selected");
194 break; 192 break;
195 193
196 } 194 }
197 } else { 195 } else {
198 if ( temp->getIsPhoneSync() ) { 196 if ( temp->getIsPhoneSync() ) {
199 mPrefs->mPhoneDevice = temp->getPhoneDevice( ) ; 197 mPhoneDevice = temp->getPhoneDevice( ) ;
200 mPrefs->mPhoneConnection = temp->getPhoneConnection( ); 198 mPhoneConnection = temp->getPhoneConnection( );
201 mPrefs->mPhoneModel = temp->getPhoneModel( ); 199 mPhoneModel = temp->getPhoneModel( );
202 syncPhone(); 200 syncPhone();
203 } else 201 } else
204 syncRemote( temp ); 202 syncRemote( temp );
205 203
206 } 204 }
207 } 205 }
208 delete temp; 206 delete temp;
209 setBlockSave(false); 207 setBlockSave(false);
210} 208}
211 209
212void KSyncManager::syncLocalFile() 210void KSyncManager::syncLocalFile()
213{ 211{
214 212
215 QString fn =mPrefs->mLastSyncedLocalFile; 213 QString fn =mLastSyncedLocalFile;
216 QString ext; 214 QString ext;
217 215
218 switch(mTargetApp) 216 switch(mTargetApp)
219 { 217 {
220 case (KAPI): 218 case (KAPI):
221 ext = "(*.vcf)"; 219 ext = "(*.vcf)";
222 break; 220 break;
223 case (KOPI): 221 case (KOPI):
224 ext = "(*.ics/*.vcs)"; 222 ext = "(*.ics/*.vcs)";
225 break; 223 break;
226 case (PWMPI): 224 case (PWMPI):
227 ext = "(*.pwm)"; 225 ext = "(*.pwm)";
@@ -254,89 +252,89 @@ bool KSyncManager::syncWithFile( QString fn , bool quick )
254 return ret; 252 return ret;
255 } 253 }
256 int result = 0; 254 int result = 0;
257 if ( !quick ) { 255 if ( !quick ) {
258 mess = i18n("Sync with file \n...%1\nfrom:\n%2\n").arg(fn.right( 25)).arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false )); 256 mess = i18n("Sync with file \n...%1\nfrom:\n%2\n").arg(fn.right( 25)).arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false ));
259 result = QMessageBox::warning( mParent, i18n("Warning!"), 257 result = QMessageBox::warning( mParent, i18n("Warning!"),
260 mess, 258 mess,
261 i18n("Sync"), i18n("Cancel"), 0, 259 i18n("Sync"), i18n("Cancel"), 0,
262 0, 1 ); 260 0, 1 );
263 if ( result ) 261 if ( result )
264 return false; 262 return false;
265 } 263 }
266 if ( mPrefs->mAskForPreferences ) 264 if ( mAskForPreferences )
267 edit_sync_options(); 265 edit_sync_options();
268 if ( result == 0 ) { 266 if ( result == 0 ) {
269 //qDebug("Now sycing ... "); 267 //qDebug("Now sycing ... ");
270 if ( ret = mImplementation->sync( this, fn, mPrefs->mSyncAlgoPrefs ) ) 268 if ( ret = mImplementation->sync( this, fn, mSyncAlgoPrefs ) )
271 mParent->setCaption( i18n("Synchronization successful") ); 269 mParent->setCaption( i18n("Synchronization successful") );
272 else 270 else
273 mParent->setCaption( i18n("Sync cancelled or failed. Nothing synced.") ); 271 mParent->setCaption( i18n("Sync cancelled or failed. Nothing synced.") );
274 if ( ! quick ) 272 if ( ! quick )
275 mPrefs->mLastSyncedLocalFile = fn; 273 mLastSyncedLocalFile = fn;
276 mImplementation->sync_setModified(); 274 mImplementation->sync_setModified();
277 } 275 }
278 return ret; 276 return ret;
279} 277}
280void KSyncManager::quickSyncLocalFile() 278void KSyncManager::quickSyncLocalFile()
281{ 279{
282 280
283 if ( syncWithFile( mPrefs->mLastSyncedLocalFile, false ) ) { 281 if ( syncWithFile( mLastSyncedLocalFile, false ) ) {
284 qDebug("quick syncLocalFile() successful "); 282 qDebug("quick syncLocalFile() successful ");
285 283
286 } 284 }
287} 285}
288void KSyncManager::multiSync( bool askforPrefs ) 286void KSyncManager::multiSync( bool askforPrefs )
289{ 287{
290 if (blockSave()) 288 if (blockSave())
291 return; 289 return;
292 setBlockSave(true); 290 setBlockSave(true);
293 QString question = i18n("Do you really want\nto multiple sync\nwith all checked profiles?\nSyncing takes some\ntime - all profiles\nare synced twice!"); 291 QString question = i18n("Do you really want\nto multiple sync\nwith all checked profiles?\nSyncing takes some\ntime - all profiles\nare synced twice!");
294 if ( QMessageBox::information( mParent, i18n("Sync"), 292 if ( QMessageBox::information( mParent, i18n("Sync"),
295 question, 293 question,
296 i18n("Yes"), i18n("No"), 294 i18n("Yes"), i18n("No"),
297 0, 0 ) != 0 ) { 295 0, 0 ) != 0 ) {
298 setBlockSave(false); 296 setBlockSave(false);
299 mParent->setCaption(i18n("Aborted! Nothing synced!")); 297 mParent->setCaption(i18n("Aborted! Nothing synced!"));
300 return; 298 return;
301 } 299 }
302 mCurrentSyncDevice = i18n("Multiple profiles") ; 300 mCurrentSyncDevice = i18n("Multiple profiles") ;
303 mPrefs->mSyncAlgoPrefs = mPrefs->mRingSyncAlgoPrefs; 301 mSyncAlgoPrefs = mRingSyncAlgoPrefs;
304 if ( askforPrefs ) { 302 if ( askforPrefs ) {
305 edit_sync_options(); 303 edit_sync_options();
306 mPrefs->mRingSyncAlgoPrefs = mPrefs->mSyncAlgoPrefs; 304 mRingSyncAlgoPrefs = mSyncAlgoPrefs;
307 } 305 }
308 mParent->setCaption(i18n("Multiple sync started.") ); 306 mParent->setCaption(i18n("Multiple sync started.") );
309 qApp->processEvents(); 307 qApp->processEvents();
310 int num = ringSync() ; 308 int num = ringSync() ;
311 if ( num > 1 ) 309 if ( num > 1 )
312 ringSync(); 310 ringSync();
313 setBlockSave(false); 311 setBlockSave(false);
314 if ( num ) 312 if ( num )
315 mImplementation->sync_save(); 313 mImplementation->sync_save();
316 if ( num ) 314 if ( num )
317 mParent->setCaption(i18n("%1 profiles synced. Multiple sync completed!").arg(num) ); 315 mParent->setCaption(i18n("%1 profiles synced. Multiple sync completed!").arg(num) );
318 else 316 else
319 mParent->setCaption(i18n("Nothing synced! No profiles defined for multisync!")); 317 mParent->setCaption(i18n("Nothing synced! No profiles defined for multisync!"));
320 return; 318 return;
321} 319}
322int KSyncManager::ringSync() 320int KSyncManager::ringSync()
323{ 321{
324 int syncedProfiles = 0; 322 int syncedProfiles = 0;
325 unsigned int i; 323 unsigned int i;
326 QTime timer; 324 QTime timer;
327 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); 325 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) );
328 QStringList syncProfileNames = mPrefs->mSyncProfileNames; 326 QStringList syncProfileNames = mSyncProfileNames;
329 KSyncProfile* temp = new KSyncProfile (); 327 KSyncProfile* temp = new KSyncProfile ();
330 mPrefs->mAskForPreferences = false; 328 mAskForPreferences = false;
331 for ( i = 0; i < syncProfileNames.count(); ++i ) { 329 for ( i = 0; i < syncProfileNames.count(); ++i ) {
332 mCurrentSyncProfile = i; 330 mCurrentSyncProfile = i;
333 temp->setName(syncProfileNames[mCurrentSyncProfile]); 331 temp->setName(syncProfileNames[mCurrentSyncProfile]);
334 temp->readConfig(&config); 332 temp->readConfig(&config);
335 333
336 QString includeInRingSync; 334 QString includeInRingSync;
337 switch(mTargetApp) 335 switch(mTargetApp)
338 { 336 {
339 case (KAPI): 337 case (KAPI):
340 includeInRingSync = temp->getIncludeInRingSyncAB(); 338 includeInRingSync = temp->getIncludeInRingSyncAB();
341 break; 339 break;
342 case (KOPI): 340 case (KOPI):
@@ -346,60 +344,60 @@ int KSyncManager::ringSync()
346 includeInRingSync = temp->getIncludeInRingSyncPWM(); 344 includeInRingSync = temp->getIncludeInRingSyncPWM();
347 break; 345 break;
348 default: 346 default:
349 qDebug("KSyncManager::ringSync: invalid apptype selected"); 347 qDebug("KSyncManager::ringSync: invalid apptype selected");
350 break; 348 break;
351 349
352 } 350 }
353 351
354 352
355 if ( includeInRingSync && ( i < 1 || i > 2 )) { 353 if ( includeInRingSync && ( i < 1 || i > 2 )) {
356 mParent->setCaption(i18n("Profile ")+syncProfileNames[mCurrentSyncProfile]+ i18n(" is synced ... ")); 354 mParent->setCaption(i18n("Profile ")+syncProfileNames[mCurrentSyncProfile]+ i18n(" is synced ... "));
357 ++syncedProfiles; 355 ++syncedProfiles;
358 // mPrefs->mAskForPreferences = temp->getAskForPreferences(); 356 // mAskForPreferences = temp->getAskForPreferences();
359 mPrefs->mWriteBackFile = temp->getWriteBackFile(); 357 mWriteBackFile = temp->getWriteBackFile();
360 mPrefs->mWriteBackExistingOnly = temp->getWriteBackExisting(); 358 mWriteBackExistingOnly = temp->getWriteBackExisting();
361 mPrefs->mWriteBackInFuture = 0; 359 mWriteBackInFuture = 0;
362 if ( temp->getWriteBackFuture() ) 360 if ( temp->getWriteBackFuture() )
363 mPrefs->mWriteBackInFuture = temp->getWriteBackFutureWeeks( ); 361 mWriteBackInFuture = temp->getWriteBackFutureWeeks( );
364 mPrefs->mShowSyncSummary = false; 362 mShowSyncSummary = false;
365 mCurrentSyncDevice = syncProfileNames[i] ; 363 mCurrentSyncDevice = syncProfileNames[i] ;
366 mCurrentSyncName = mPrefs->mLocalMachineName; 364 mCurrentSyncName = mLocalMachineName;
367 if ( i == 0 ) { 365 if ( i == 0 ) {
368 syncSharp(); 366 syncSharp();
369 } else { 367 } else {
370 if ( temp->getIsLocalFileSync() ) { 368 if ( temp->getIsLocalFileSync() ) {
371 switch(mTargetApp) 369 switch(mTargetApp)
372 { 370 {
373 case (KAPI): 371 case (KAPI):
374 if ( syncWithFile( temp->getRemoteFileNameAB( ), false ) ) 372 if ( syncWithFile( temp->getRemoteFileNameAB( ), false ) )
375 mPrefs->mLastSyncedLocalFile = temp->getRemoteFileNameAB(); 373 mLastSyncedLocalFile = temp->getRemoteFileNameAB();
376 break; 374 break;
377 case (KOPI): 375 case (KOPI):
378 if ( syncWithFile( temp->getRemoteFileName( ), false ) ) 376 if ( syncWithFile( temp->getRemoteFileName( ), false ) )
379 mPrefs->mLastSyncedLocalFile = temp->getRemoteFileName(); 377 mLastSyncedLocalFile = temp->getRemoteFileName();
380 break; 378 break;
381 case (PWMPI): 379 case (PWMPI):
382 if ( syncWithFile( temp->getRemoteFileNamePWM( ), false ) ) 380 if ( syncWithFile( temp->getRemoteFileNamePWM( ), false ) )
383 mPrefs->mLastSyncedLocalFile = temp->getRemoteFileNamePWM(); 381 mLastSyncedLocalFile = temp->getRemoteFileNamePWM();
384 break; 382 break;
385 default: 383 default:
386 qDebug("KSyncManager::slotSyncMenu: invalid apptype selected"); 384 qDebug("KSyncManager::slotSyncMenu: invalid apptype selected");
387 break; 385 break;
388 } 386 }
389 } else { 387 } else {
390 if ( temp->getIsPhoneSync() ) { 388 if ( temp->getIsPhoneSync() ) {
391 mPrefs->mPhoneDevice = temp->getPhoneDevice( ) ; 389 mPhoneDevice = temp->getPhoneDevice( ) ;
392 mPrefs->mPhoneConnection = temp->getPhoneConnection( ); 390 mPhoneConnection = temp->getPhoneConnection( );
393 mPrefs->mPhoneModel = temp->getPhoneModel( ); 391 mPhoneModel = temp->getPhoneModel( );
394 syncPhone(); 392 syncPhone();
395 } else 393 } else
396 syncRemote( temp, false ); 394 syncRemote( temp, false );
397 395
398 } 396 }
399 } 397 }
400 timer.start(); 398 timer.start();
401 mParent->setCaption(i18n("Multiple sync in progress ... please wait!") ); 399 mParent->setCaption(i18n("Multiple sync in progress ... please wait!") );
402 while ( timer.elapsed () < 2000 ) { 400 while ( timer.elapsed () < 2000 ) {
403 qApp->processEvents(); 401 qApp->processEvents();
404#ifndef _WIN32_ 402#ifndef _WIN32_
405 sleep (1); 403 sleep (1);
@@ -482,67 +480,67 @@ void KSyncManager::syncRemote( KSyncProfile* prof, bool ask)
482 return; 480 return;
483 } 481 }
484 mParent->setCaption ( i18n( "Copying succeed." ) ); 482 mParent->setCaption ( i18n( "Copying succeed." ) );
485 //qDebug(" file **%s** ",prof->getLocalTempFile().latin1() ); 483 //qDebug(" file **%s** ",prof->getLocalTempFile().latin1() );
486 484
487 485
488 486
489 if ( syncWithFile( localTempFile, true ) ) { 487 if ( syncWithFile( localTempFile, true ) ) {
490// Event* e = mView->getLastSyncEvent(); 488// Event* e = mView->getLastSyncEvent();
491// e->setReadOnly( false ); 489// e->setReadOnly( false );
492// e->setLocation( KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]); 490// e->setLocation( KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]);
493// e->setReadOnly( true ); 491// e->setReadOnly( true );
494 if ( mPrefs->mWriteBackFile ) { 492 if ( mWriteBackFile ) {
495 int fi; 493 int fi;
496 if ( (fi = postCommand.find("$PWD$")) > 0 ) { 494 if ( (fi = postCommand.find("$PWD$")) > 0 ) {
497 QString pwd = getPassword(); 495 QString pwd = getPassword();
498 postCommand = postCommand.left( fi )+ pwd + postCommand.mid( fi+5 ); 496 postCommand = postCommand.left( fi )+ pwd + postCommand.mid( fi+5 );
499 497
500 } 498 }
501 mParent->setCaption ( i18n( "Writing back file ..." ) ); 499 mParent->setCaption ( i18n( "Writing back file ..." ) );
502 result = system ( postCommand ); 500 result = system ( postCommand );
503 qDebug("Writing back file result: %d ", result); 501 qDebug("Writing back file result: %d ", result);
504 if ( result != 0 ) { 502 if ( result != 0 ) {
505 mParent->setCaption ( i18n( "Writing back file result: " )+QString::number( result ) ); 503 mParent->setCaption ( i18n( "Writing back file result: " )+QString::number( result ) );
506 return; 504 return;
507 } else { 505 } else {
508 mParent->setCaption ( i18n( "Syncronization sucessfully completed" ) ); 506 mParent->setCaption ( i18n( "Syncronization sucessfully completed" ) );
509 } 507 }
510 } 508 }
511 } 509 }
512 return; 510 return;
513} 511}
514 512
515void KSyncManager::edit_sync_options() 513void KSyncManager::edit_sync_options()
516{ 514{
517 //mDialogManager->showSyncOptions(); 515 //mDialogManager->showSyncOptions();
518 //mPrefs->mSyncAlgoPrefs 516 //mSyncAlgoPrefs
519 QDialog dia( mParent, "dia", true ); 517 QDialog dia( mParent, "dia", true );
520 dia.setCaption( i18n("Device: " ) +mCurrentSyncDevice ); 518 dia.setCaption( i18n("Device: " ) +mCurrentSyncDevice );
521 QButtonGroup gr ( 1, Qt::Horizontal, i18n("Sync preferences"), &dia); 519 QButtonGroup gr ( 1, Qt::Horizontal, i18n("Sync preferences"), &dia);
522 QVBoxLayout lay ( &dia ); 520 QVBoxLayout lay ( &dia );
523 lay.setSpacing( 2 ); 521 lay.setSpacing( 2 );
524 lay.setMargin( 3 ); 522 lay.setMargin( 3 );
525 lay.addWidget(&gr); 523 lay.addWidget(&gr);
526 QRadioButton loc ( i18n("Take local entry on conflict"), &gr ); 524 QRadioButton loc ( i18n("Take local entry on conflict"), &gr );
527 QRadioButton rem ( i18n("Take remote entry on conflict"), &gr ); 525 QRadioButton rem ( i18n("Take remote entry on conflict"), &gr );
528 QRadioButton newest( i18n("Take newest entry on conflict"), &gr ); 526 QRadioButton newest( i18n("Take newest entry on conflict"), &gr );
529 QRadioButton ask( i18n("Ask for every entry on conflict"), &gr ); 527 QRadioButton ask( i18n("Ask for every entry on conflict"), &gr );
530 QRadioButton f_loc( i18n("Force: Take local entry always"), &gr ); 528 QRadioButton f_loc( i18n("Force: Take local entry always"), &gr );
531 QRadioButton f_rem( i18n("Force: Take remote entry always"), &gr ); 529 QRadioButton f_rem( i18n("Force: Take remote entry always"), &gr );
532 //QRadioButton both( i18n("Take both on conflict"), &gr ); 530 //QRadioButton both( i18n("Take both on conflict"), &gr );
533 QPushButton pb ( "OK", &dia); 531 QPushButton pb ( "OK", &dia);
534 lay.addWidget( &pb ); 532 lay.addWidget( &pb );
535 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) ); 533 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) );
536 switch ( mPrefs->mSyncAlgoPrefs ) { 534 switch ( mSyncAlgoPrefs ) {
537 case 0: 535 case 0:
538 loc.setChecked( true); 536 loc.setChecked( true);
539 break; 537 break;
540 case 1: 538 case 1:
541 rem.setChecked( true ); 539 rem.setChecked( true );
542 break; 540 break;
543 case 2: 541 case 2:
544 newest.setChecked( true); 542 newest.setChecked( true);
545 break; 543 break;
546 case 3: 544 case 3:
547 ask.setChecked( true); 545 ask.setChecked( true);
548 break; 546 break;
@@ -550,25 +548,25 @@ void KSyncManager::edit_sync_options()
550 f_loc.setChecked( true); 548 f_loc.setChecked( true);
551 break; 549 break;
552 case 5: 550 case 5:
553 f_rem.setChecked( true); 551 f_rem.setChecked( true);
554 break; 552 break;
555 case 6: 553 case 6:
556 // both.setChecked( true); 554 // both.setChecked( true);
557 break; 555 break;
558 default: 556 default:
559 break; 557 break;
560 } 558 }
561 if ( dia.exec() ) { 559 if ( dia.exec() ) {
562 mPrefs->mSyncAlgoPrefs = rem.isChecked()*1+newest.isChecked()*2+ ask.isChecked()*3+ f_loc.isChecked()*4+ f_rem.isChecked()*5;//+ both.isChecked()*6 ; 560 mSyncAlgoPrefs = rem.isChecked()*1+newest.isChecked()*2+ ask.isChecked()*3+ f_loc.isChecked()*4+ f_rem.isChecked()*5;//+ both.isChecked()*6 ;
563 } 561 }
564 562
565 563
566} 564}
567QString KSyncManager::getPassword( ) 565QString KSyncManager::getPassword( )
568{ 566{
569 QString retfile = ""; 567 QString retfile = "";
570 QDialog dia ( mParent, "input-dialog", true ); 568 QDialog dia ( mParent, "input-dialog", true );
571 QLineEdit lab ( &dia ); 569 QLineEdit lab ( &dia );
572 lab.setEchoMode( QLineEdit::Password ); 570 lab.setEchoMode( QLineEdit::Password );
573 QVBoxLayout lay( &dia ); 571 QVBoxLayout lay( &dia );
574 lay.setMargin(7); 572 lay.setMargin(7);
@@ -594,41 +592,41 @@ void KSyncManager::confSync()
594{ 592{
595 static KSyncPrefsDialog* sp = 0; 593 static KSyncPrefsDialog* sp = 0;
596 if ( ! sp ) { 594 if ( ! sp ) {
597 sp = new KSyncPrefsDialog( mParent, "syncprefs", true ); 595 sp = new KSyncPrefsDialog( mParent, "syncprefs", true );
598 } 596 }
599 sp->usrReadConfig(); 597 sp->usrReadConfig();
600#ifndef DESKTOP_VERSION 598#ifndef DESKTOP_VERSION
601 sp->showMaximized(); 599 sp->showMaximized();
602#else 600#else
603 sp->show(); 601 sp->show();
604#endif 602#endif
605 sp->exec(); 603 sp->exec();
606 mPrefs->mSyncProfileNames = sp->getSyncProfileNames(); 604 mSyncProfileNames = sp->getSyncProfileNames();
607 mPrefs->mLocalMachineName = sp->getLocalMachineName (); 605 mLocalMachineName = sp->getLocalMachineName ();
608 fillSyncMenu(); 606 fillSyncMenu();
609} 607}
610 608
611void KSyncManager::syncSharp() 609void KSyncManager::syncSharp()
612{ 610{
613 if ( ! syncExternalApplication("sharp") ) 611 if ( ! syncExternalApplication("sharp") )
614 qDebug("ERROR sync sharp ");; 612 qDebug("ERROR sync sharp ");;
615} 613}
616 614
617bool KSyncManager::syncExternalApplication(QString resource) 615bool KSyncManager::syncExternalApplication(QString resource)
618{ 616{
619 if ( mImplementation->sync_isModified() ) 617 if ( mImplementation->sync_isModified() )
620 mImplementation->sync_save(); 618 mImplementation->sync_save();
621 619
622 if ( mPrefs->mAskForPreferences ) 620 if ( mAskForPreferences )
623 edit_sync_options(); 621 edit_sync_options();
624 622
625 qDebug("sync %s", resource.latin1()); 623 qDebug("sync %s", resource.latin1());
626 624
627 bool syncOK = mImplementation->syncExternal(this, resource); 625 bool syncOK = mImplementation->syncExternal(this, resource);
628 626
629 return syncOK; 627 return syncOK;
630 628
631} 629}
632 630
633void KSyncManager::syncPhone() 631void KSyncManager::syncPhone()
634{ 632{
diff --git a/libkdepim/ksyncmanager.h b/libkdepim/ksyncmanager.h
index 9761107..6b10016 100644
--- a/libkdepim/ksyncmanager.h
+++ b/libkdepim/ksyncmanager.h
@@ -50,24 +50,43 @@ class KSyncManager : public QObject
50 bool blockSave() { return mBlockSaveFlag; } 50 bool blockSave() { return mBlockSaveFlag; }
51 void setBlockSave(bool sa) { mBlockSaveFlag = sa; } 51 void setBlockSave(bool sa) { mBlockSaveFlag = sa; }
52 52
53 void fillSyncMenu(); 53 void fillSyncMenu();
54 54
55 QString getCurrentSyncDevice() { return mCurrentSyncDevice; } 55 QString getCurrentSyncDevice() { return mCurrentSyncDevice; }
56 QString getCurrentSyncName() { return mCurrentSyncName; } 56 QString getCurrentSyncName() { return mCurrentSyncName; }
57 57
58 void showProgressBar(int percentage, QString caption = QString::null, int total=100); 58 void showProgressBar(int percentage, QString caption = QString::null, int total=100);
59 void hideProgressBar(); 59 void hideProgressBar();
60 bool isProgressBarCanceled(); 60 bool isProgressBarCanceled();
61 61
62 // sync stuff
63 QString mLocalMachineName;
64 QStringList mExternSyncProfiles;
65 QStringList mSyncProfileNames;
66 bool mAskForPreferences;
67 bool mShowSyncSummary;
68 bool mShowSyncEvents;
69 bool mShowTodoInAgenda;
70 bool mWriteBackExistingOnly;
71 int mSyncAlgoPrefs;
72 int mRingSyncAlgoPrefs;
73 bool mWriteBackFile;
74 int mWriteBackInFuture;
75 QString mPhoneDevice;
76 QString mPhoneConnection;
77 QString mPhoneModel;
78 QString mLastSyncedLocalFile; // save!
79
80
62 81
63 public slots: 82 public slots:
64 void slotSyncMenu( int ); 83 void slotSyncMenu( int );
65 84
66 private: 85 private:
67 // LR ******************************* 86 // LR *******************************
68 // sync stuff! 87 // sync stuff!
69 QString mCurrentSyncDevice; 88 QString mCurrentSyncDevice;
70 QString mCurrentSyncName; 89 QString mCurrentSyncName;
71 void quickSyncLocalFile(); 90 void quickSyncLocalFile();
72 bool syncWithFile( QString fn , bool quick ); 91 bool syncWithFile( QString fn , bool quick );
73 void syncLocalFile(); 92 void syncLocalFile();
@@ -83,25 +102,24 @@ class KSyncManager : public QObject
83 102
84 private slots: 103 private slots:
85 void confSync(); 104 void confSync();
86 // ********************* 105 // *********************
87 106
88 private: 107 private:
89 bool mBlockSaveFlag; 108 bool mBlockSaveFlag;
90 109
91 110
92 QWidget* mParent; 111 QWidget* mParent;
93 KSyncInterface* mImplementation; 112 KSyncInterface* mImplementation;
94 TargetApp mTargetApp; 113 TargetApp mTargetApp;
95 KPimPrefs* mPrefs;
96 QPopupMenu* mSyncMenu; 114 QPopupMenu* mSyncMenu;
97 115
98 QProgressBar* bar; 116 QProgressBar* bar;
99 117
100 118
101 119
102 120
103 121
104}; 122};
105 123
106 124
107class KSyncInterface 125class KSyncInterface
diff --git a/pwmanager/pwmanager/pwmdoc.cpp b/pwmanager/pwmanager/pwmdoc.cpp
index 6c1a9c0..76a45f4 100644
--- a/pwmanager/pwmanager/pwmdoc.cpp
+++ b/pwmanager/pwmanager/pwmdoc.cpp
@@ -2951,25 +2951,25 @@ PwMerror PwMDoc::syncronize(KSyncManager* manager, PwMDoc* syncLocal , PwMDoc* s
2951 manager->showProgressBar(incCounter); 2951 manager->showProgressBar(incCounter);
2952 uid = el[ incCounter ]; 2952 uid = el[ incCounter ];
2953 2953
2954 inLocal = syncLocal->findEntryByID( uid, &catLocal, &indexLocal ); 2954 inLocal = syncLocal->findEntryByID( uid, &catLocal, &indexLocal );
2955 inRemote = syncRemote->findEntryByID( uid, &catRemote, &indexRemote ); 2955 inRemote = syncRemote->findEntryByID( uid, &catRemote, &indexRemote );
2956 if ( inRemote == 0 ) { 2956 if ( inRemote == 0 ) {
2957 if ( inLocal->meta.update < mLastSync && mode != 4 ) { 2957 if ( inLocal->meta.update < mLastSync && mode != 4 ) {
2958 // pending checkExternSyncAddressee(addresseeLSyncSharp, inL); 2958 // pending checkExternSyncAddressee(addresseeLSyncSharp, inL);
2959 syncLocal->delEntry(catLocal, indexLocal, true); 2959 syncLocal->delEntry(catLocal, indexLocal, true);
2960 //USsyncLocal->removeAddressee( inLocal ); 2960 //USsyncLocal->removeAddressee( inLocal );
2961 ++deletedPasswordsLocal; 2961 ++deletedPasswordsLocal;
2962 } else { 2962 } else {
2963 if ( ! PWMPrefs::instance()->mWriteBackExistingOnly ) { 2963 if ( ! manager->mWriteBackExistingOnly ) {
2964 ++addedPasswordsRemote; 2964 ++addedPasswordsRemote;
2965 inLocal->meta.update = modifiedSync; 2965 inLocal->meta.update = modifiedSync;
2966 //USsyncLocal->insertAddressee( inLocal, false ); 2966 //USsyncLocal->insertAddressee( inLocal, false );
2967 (*inRemote) = (*inLocal); 2967 (*inRemote) = (*inLocal);
2968 //USsyncRemote->insertAddressee( inRemote, false ); 2968 //USsyncRemote->insertAddressee( inRemote, false );
2969 syncRemote->addEntry("newcategory", inRemote, true, false); 2969 syncRemote->addEntry("newcategory", inRemote, true, false);
2970 2970
2971 } 2971 }
2972 } 2972 }
2973 2973
2974 } 2974 }
2975 ++incCounter; 2975 ++incCounter;
@@ -2986,25 +2986,25 @@ PwMerror PwMDoc::syncronize(KSyncManager* manager, PwMDoc* syncLocal , PwMDoc* s
2986 2986
2987 2987
2988 syncItemLocal->lastSyncDate = mLastSync; 2988 syncItemLocal->lastSyncDate = mLastSync;
2989 syncItemRemote->lastSyncDate = mLastSync; 2989 syncItemRemote->lastSyncDate = mLastSync;
2990 2990
2991 // addresseeRSync.setRole( i18n("!Remote from: ")+mCurrentSyncName ) ; 2991 // addresseeRSync.setRole( i18n("!Remote from: ")+mCurrentSyncName ) ;
2992 // addresseeLSync.setRole(i18n("!Local from: ") + mCurrentSyncName ); 2992 // addresseeLSync.setRole(i18n("!Local from: ") + mCurrentSyncName );
2993 2993
2994 syncRemote->addSyncDataEntry( syncItemRemote, false ); 2994 syncRemote->addSyncDataEntry( syncItemRemote, false );
2995 syncLocal->addSyncDataEntry( syncItemLocal, false ); 2995 syncLocal->addSyncDataEntry( syncItemLocal, false );
2996 QString mes; 2996 QString mes;
2997 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"),addedPasswordsLocal, addedPasswordsRemote, changedLocal, changedRemote, deletedPasswordsLocal, deletedPasswordsRemote ); 2997 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"),addedPasswordsLocal, addedPasswordsRemote, changedLocal, changedRemote, deletedPasswordsLocal, deletedPasswordsRemote );
2998 if ( PWMPrefs::instance()->mShowSyncSummary ) { 2998 if ( manager->mShowSyncSummary ) {
2999 KMessageBox::information(0, mes, i18n("PWM/Pi Synchronization") ); 2999 KMessageBox::information(0, mes, i18n("PWM/Pi Synchronization") );
3000 } 3000 }
3001 qDebug( mes ); 3001 qDebug( mes );
3002 return e_success; 3002 return e_success;
3003} 3003}
3004 3004
3005 3005
3006int PwMDoc::takePwMDataItem( PwMDataItem* local, PwMDataItem* remote, QDateTime lastSync, int mode , bool full ) 3006int PwMDoc::takePwMDataItem( PwMDataItem* local, PwMDataItem* remote, QDateTime lastSync, int mode , bool full )
3007{ 3007{
3008 // 0 equal 3008 // 0 equal
3009 // 1 take local 3009 // 1 take local
3010 // 2 take remote 3010 // 2 take remote
@@ -3130,25 +3130,25 @@ bool PwMDoc::sync(KSyncManager* manager, QString filename, int mode)
3130 3130
3131 //3) unlock remote file first if necessary (ask for password) 3131 //3) unlock remote file first if necessary (ask for password)
3132 if (pSyncTarget->isDeepLocked()) { 3132 if (pSyncTarget->isDeepLocked()) {
3133 PwMerror ret = pSyncTarget->deepLock(false); 3133 PwMerror ret = pSyncTarget->deepLock(false);
3134 if (ret != e_success) 3134 if (ret != e_success)
3135 return false; 3135 return false;
3136 } 3136 }
3137 3137
3138 3138
3139 err = syncronize(manager, this, pSyncTarget, mode ); 3139 err = syncronize(manager, this, pSyncTarget, mode );
3140 3140
3141 if (err == e_success) { 3141 if (err == e_success) {
3142 if ( PWMPrefs::instance()->mWriteBackFile ){ 3142 if ( manager->mWriteBackFile ){
3143 qDebug("Saving remote PWManager file"); 3143 qDebug("Saving remote PWManager file");
3144 err = pSyncTarget->saveDoc(conf()->confGlobCompression()); 3144 err = pSyncTarget->saveDoc(conf()->confGlobCompression());
3145 if (err != e_success) { 3145 if (err != e_success) {
3146 qDebug("PwmDoc::sync: Sync failed. Error %i while storing file %s",err, filename.latin1()); 3146 qDebug("PwmDoc::sync: Sync failed. Error %i while storing file %s",err, filename.latin1());
3147 return false; 3147 return false;
3148 } 3148 }
3149 } 3149 }
3150 3150
3151 flagDirty(); 3151 flagDirty();
3152 return true; 3152 return true;
3153 } 3153 }
3154 else { 3154 else {