-rw-r--r-- | korganizer/calendarview.cpp | 73 | ||||
-rw-r--r-- | korganizer/calendarview.h | 4 | ||||
-rw-r--r-- | korganizer/mainwindow.cpp | 14 | ||||
-rw-r--r-- | korganizer/mainwindow.h | 4 | ||||
-rw-r--r-- | libkcal/calendar.h | 1 | ||||
-rw-r--r-- | libkcal/calendarlocal.cpp | 16 | ||||
-rw-r--r-- | libkcal/calendarlocal.h | 1 | ||||
-rw-r--r-- | libkdepim/ksyncmanager.cpp | 24 | ||||
-rw-r--r-- | libkdepim/ksyncmanager.h | 6 |
9 files changed, 118 insertions, 25 deletions
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp index 8965d3b..307027a 100644 --- a/korganizer/calendarview.cpp +++ b/korganizer/calendarview.cpp | |||
@@ -366,6 +366,7 @@ CalendarView::CalendarView( Calendar *calendar, | |||
366 | 366 | ||
367 | void CalendarView::init() | 367 | void CalendarView::init() |
368 | { | 368 | { |
369 | mMultiResourceSync = false; | ||
369 | flag_blockConflict = false; | 370 | flag_blockConflict = false; |
370 | flag_blockScrollBar = false; | 371 | flag_blockScrollBar = false; |
371 | flag_checkFileFirsttime = true; | 372 | flag_checkFileFirsttime = true; |
@@ -1552,6 +1553,7 @@ Event* CalendarView::getLastSyncEvent() | |||
1552 | lse->setDtEnd( mLastCalendarSync.addSecs( 7200 ) ); | 1553 | lse->setDtEnd( mLastCalendarSync.addSecs( 7200 ) ); |
1553 | lse->setCategories( i18n("SyncEvent") ); | 1554 | lse->setCategories( i18n("SyncEvent") ); |
1554 | lse->setReadOnly( true ); | 1555 | lse->setReadOnly( true ); |
1556 | lse->setCalID( 1 ); | ||
1555 | mCalendar->addEvent( lse ); | 1557 | mCalendar->addEvent( lse ); |
1556 | } | 1558 | } |
1557 | 1559 | ||
@@ -1902,16 +1904,21 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int | |||
1902 | } | 1904 | } |
1903 | bar.hide(); | 1905 | bar.hide(); |
1904 | mLastCalendarSync = QDateTime::currentDateTime().addSecs( 1 ); | 1906 | mLastCalendarSync = QDateTime::currentDateTime().addSecs( 1 ); |
1905 | eventLSync->setReadOnly( false ); | 1907 | if ( mMultiResourceSync ) { |
1906 | eventLSync->setDtStart( mLastCalendarSync ); | 1908 | remote->removeSyncInfo( "" ); //all |
1907 | eventRSync->setDtStart( mLastCalendarSync ); | 1909 | |
1908 | eventLSync->setDtEnd( mLastCalendarSync.addSecs( 3600 ) ); | 1910 | } else { |
1909 | eventRSync->setDtEnd( mLastCalendarSync.addSecs( 3600 ) ); | 1911 | eventLSync->setReadOnly( false ); |
1910 | eventRSync->setLocation( i18n("Remote from: ")+mCurrentSyncName ) ; | 1912 | eventLSync->setDtStart( mLastCalendarSync ); |
1911 | eventLSync->setLocation(i18n("Local from: ") + mCurrentSyncName ); | 1913 | eventRSync->setDtStart( mLastCalendarSync ); |
1912 | eventLSync->setReadOnly( true ); | 1914 | eventLSync->setDtEnd( mLastCalendarSync.addSecs( 3600 ) ); |
1915 | eventRSync->setDtEnd( mLastCalendarSync.addSecs( 3600 ) ); | ||
1916 | eventRSync->setLocation( i18n("Remote from: ")+mCurrentSyncName ) ; | ||
1917 | eventLSync->setLocation(i18n("Local from: ") + mCurrentSyncName ); | ||
1918 | eventLSync->setReadOnly( true ); | ||
1919 | } | ||
1913 | qDebug("KO: Normal sync: %d ",mGlobalSyncMode == SYNC_MODE_NORMAL ); | 1920 | qDebug("KO: Normal sync: %d ",mGlobalSyncMode == SYNC_MODE_NORMAL ); |
1914 | if ( mGlobalSyncMode == SYNC_MODE_NORMAL && !mSyncManager->syncWithDesktop()) // kde is abnormal... | 1921 | if ( mGlobalSyncMode == SYNC_MODE_NORMAL && !mSyncManager->syncWithDesktop() && !mMultiResourceSync ) // kde is abnormal... |
1915 | remote->addEvent( eventRSync ); | 1922 | remote->addEvent( eventRSync ); |
1916 | else | 1923 | else |
1917 | delete eventRSync; | 1924 | delete eventRSync; |
@@ -2435,6 +2442,32 @@ void CalendarView::mergeFile( QString fn ) | |||
2435 | updateUnmanagedViews(); | 2442 | updateUnmanagedViews(); |
2436 | updateView(); | 2443 | updateView(); |
2437 | } | 2444 | } |
2445 | void CalendarView::mergeFileResource( QString fn ,QString resource ) | ||
2446 | { | ||
2447 | |||
2448 | if ( resource == "ALL" ) { | ||
2449 | mergeFile( fn ); | ||
2450 | return; | ||
2451 | } | ||
2452 | |||
2453 | int exclusiveResource = KOPrefs::instance()->getFuzzyCalendarID( resource ); | ||
2454 | if ( !exclusiveResource ) { | ||
2455 | qDebug("KO: CalendarView::mergeFileResource: resource not found %s", resource.latin1() ); | ||
2456 | return; | ||
2457 | } | ||
2458 | clearAllViews(); | ||
2459 | mCalendar->setCalendarRemove( exclusiveResource ); | ||
2460 | int def = mCalendar->defaultCalendar(); | ||
2461 | mCalendar->setDefaultCalendar(exclusiveResource); | ||
2462 | if ( !mCalendar->addCalendarFile( fn, exclusiveResource )) { | ||
2463 | qDebug("KO: CalendarView::mergeFileResource: error adding file %s", fn.latin1() ); | ||
2464 | } | ||
2465 | mCalendar->setDefaultCalendar( def ); | ||
2466 | mCalendar->reInitAlarmSettings(); | ||
2467 | setSyncEventsReadOnly(); | ||
2468 | updateUnmanagedViews(); | ||
2469 | updateView(); | ||
2470 | } | ||
2438 | void CalendarView::showOpenError() | 2471 | void CalendarView::showOpenError() |
2439 | { | 2472 | { |
2440 | KMessageBox::error(this,i18n("Couldn't load calendar\n.")); | 2473 | KMessageBox::error(this,i18n("Couldn't load calendar\n.")); |
@@ -2522,6 +2555,7 @@ bool CalendarView::checkFileVersion(QString fn) | |||
2522 | mSyncManager->mWriteBackFile = false; | 2555 | mSyncManager->mWriteBackFile = false; |
2523 | mSyncManager->mWriteBackExistingOnly = false; | 2556 | mSyncManager->mWriteBackExistingOnly = false; |
2524 | mSyncManager->mShowSyncSummary = false; | 2557 | mSyncManager->mShowSyncSummary = false; |
2558 | mMultiResourceSync = false; | ||
2525 | syncCalendar( fn, 3 ); | 2559 | syncCalendar( fn, 3 ); |
2526 | Event * e = getLastSyncEvent(); | 2560 | Event * e = getLastSyncEvent(); |
2527 | if ( e ) | 2561 | if ( e ) |
@@ -2558,6 +2592,23 @@ bool CalendarView::saveCalendars() | |||
2558 | } | 2592 | } |
2559 | return true; | 2593 | return true; |
2560 | } | 2594 | } |
2595 | bool CalendarView::saveCalendarResource(QString filename, QString resource) | ||
2596 | { | ||
2597 | if ( resource == "ALL" ) | ||
2598 | return saveCalendar( filename ); | ||
2599 | int exclusiveResource = KOPrefs::instance()->getFuzzyCalendarID( resource ); | ||
2600 | if ( !exclusiveResource ) { | ||
2601 | qDebug("KO: CalendarView::saveCalendarResource: resource not found %s", resource.latin1() ); | ||
2602 | return false; | ||
2603 | } | ||
2604 | mCalendar->setDefaultCalendar( exclusiveResource ); | ||
2605 | mCalendar->setDefaultCalendarEnabledOnly(); | ||
2606 | mCalendar->setSyncEventsEnabled(); | ||
2607 | bool res = saveCalendar( filename ); | ||
2608 | restoreCalendarSettings(); | ||
2609 | return res; | ||
2610 | |||
2611 | } | ||
2561 | bool CalendarView::saveCalendar( QString filename ) | 2612 | bool CalendarView::saveCalendar( QString filename ) |
2562 | { | 2613 | { |
2563 | 2614 | ||
@@ -5032,7 +5083,11 @@ void CalendarView::keyPressEvent ( QKeyEvent *e) | |||
5032 | e->ignore(); | 5083 | e->ignore(); |
5033 | } | 5084 | } |
5034 | 5085 | ||
5086 | void CalendarView::multiResourceSyncStart( bool start ) | ||
5087 | { | ||
5088 | mMultiResourceSync = start; | ||
5035 | 5089 | ||
5090 | } | ||
5036 | bool CalendarView::sync(KSyncManager* manager, QString filename, int mode,QString resource) | 5091 | bool CalendarView::sync(KSyncManager* manager, QString filename, int mode,QString resource) |
5037 | { | 5092 | { |
5038 | 5093 | ||
diff --git a/korganizer/calendarview.h b/korganizer/calendarview.h index f85b6a3..60b1276 100644 --- a/korganizer/calendarview.h +++ b/korganizer/calendarview.h | |||
@@ -139,6 +139,7 @@ class CalendarView : public KOrg::CalendarViewBase, public KCal::Calendar::Obser | |||
139 | Incidence *currentSelection(); | 139 | Incidence *currentSelection(); |
140 | void checkSuspendAlarm(); | 140 | void checkSuspendAlarm(); |
141 | void mergeFile( QString fn ); | 141 | void mergeFile( QString fn ); |
142 | void mergeFileResource( QString fn ,QString res); | ||
142 | 143 | ||
143 | signals: | 144 | signals: |
144 | void save (); | 145 | void save (); |
@@ -201,6 +202,7 @@ class CalendarView : public KOrg::CalendarViewBase, public KCal::Calendar::Obser | |||
201 | 202 | ||
202 | 203 | ||
203 | public slots: | 204 | public slots: |
205 | void multiResourceSyncStart( bool ); | ||
204 | void displayCalendarInfo( int id ); | 206 | void displayCalendarInfo( int id ); |
205 | void nextConflict( bool all, bool allday ); | 207 | void nextConflict( bool all, bool allday ); |
206 | void conflictAll(); | 208 | void conflictAll(); |
@@ -246,6 +248,7 @@ class CalendarView : public KOrg::CalendarViewBase, public KCal::Calendar::Obser | |||
246 | successfully saved. | 248 | successfully saved. |
247 | */ | 249 | */ |
248 | bool saveCalendar(QString filename); | 250 | bool saveCalendar(QString filename); |
251 | bool saveCalendarResource(QString filename, QString resource); | ||
249 | 252 | ||
250 | /** | 253 | /** |
251 | Close calendar. Clear calendar data and reset views to display an empty | 254 | Close calendar. Clear calendar data and reset views to display an empty |
@@ -539,6 +542,7 @@ class CalendarView : public KOrg::CalendarViewBase, public KCal::Calendar::Obser | |||
539 | void setScrollBarStep(int val ); | 542 | void setScrollBarStep(int val ); |
540 | 543 | ||
541 | protected: | 544 | protected: |
545 | bool mMultiResourceSync; | ||
542 | Event *mConflictingEvent; | 546 | Event *mConflictingEvent; |
543 | void schedule(Scheduler::Method, Incidence *incidence = 0); | 547 | void schedule(Scheduler::Method, Incidence *incidence = 0); |
544 | 548 | ||
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp index 66bb19b..69ccde1 100644 --- a/korganizer/mainwindow.cpp +++ b/korganizer/mainwindow.cpp | |||
@@ -374,8 +374,10 @@ MainWindow::MainWindow( QWidget *parent, const char *name ) : | |||
374 | 374 | ||
375 | connect(mSyncManager , SIGNAL( save() ), this, SLOT( save() ) ); | 375 | connect(mSyncManager , SIGNAL( save() ), this, SLOT( save() ) ); |
376 | connect(mView , SIGNAL( saveStopTimer() ), this, SLOT( saveStopTimer() ) ); | 376 | connect(mView , SIGNAL( saveStopTimer() ), this, SLOT( saveStopTimer() ) ); |
377 | connect(mSyncManager , SIGNAL( request_file() ), this, SLOT( syncFileRequest() ) ); | 377 | connect(mSyncManager , SIGNAL( request_file(const QString &) ), this, SLOT( syncFileRequest(const QString &) ) ); |
378 | connect(mSyncManager , SIGNAL( getFile( bool )), this, SLOT(getFile( bool ) ) ); | 378 | connect(mSyncManager , SIGNAL( getFile( bool, const QString &)), this, SLOT(getFile( bool,const QString & ) ) ); |
379 | connect(mSyncManager , SIGNAL( multiResourceSyncStart( bool )), mView, SLOT( multiResourceSyncStart( bool ) ) ); | ||
380 | |||
379 | mSyncManager->setDefaultFileName( sentSyncFile()); | 381 | mSyncManager->setDefaultFileName( sentSyncFile()); |
380 | connect ( syncMenu, SIGNAL( activated ( int ) ), mSyncManager, SLOT (slotSyncMenu( int ) ) ); | 382 | connect ( syncMenu, SIGNAL( activated ( int ) ), mSyncManager, SLOT (slotSyncMenu( int ) ) ); |
381 | mSyncManager->fillSyncMenu(); | 383 | mSyncManager->fillSyncMenu(); |
@@ -2704,7 +2706,7 @@ QString MainWindow::sentSyncFile() | |||
2704 | #endif | 2706 | #endif |
2705 | } | 2707 | } |
2706 | 2708 | ||
2707 | void MainWindow::syncFileRequest() | 2709 | void MainWindow::syncFileRequest(const QString& resource) |
2708 | { | 2710 | { |
2709 | while ( mSyncManager->blockSave() ) { | 2711 | while ( mSyncManager->blockSave() ) { |
2710 | qApp->processEvents(); | 2712 | qApp->processEvents(); |
@@ -2716,18 +2718,18 @@ void MainWindow::syncFileRequest() | |||
2716 | } | 2718 | } |
2717 | 2719 | ||
2718 | setCaption(i18n("Saving Data to temp file ..." )); | 2720 | setCaption(i18n("Saving Data to temp file ..." )); |
2719 | mView->saveCalendar( sentSyncFile() ); | 2721 | mView->saveCalendarResource( sentSyncFile(), resource ); |
2720 | setCaption(i18n("Data saved to temp file!" )); | 2722 | setCaption(i18n("Data saved to temp file!" )); |
2721 | mSyncManager->setBlockSave( false ); | 2723 | mSyncManager->setBlockSave( false ); |
2722 | 2724 | ||
2723 | } | 2725 | } |
2724 | void MainWindow::getFile( bool success ) | 2726 | void MainWindow::getFile( bool success ,const QString& resource) |
2725 | { | 2727 | { |
2726 | if ( ! success ) { | 2728 | if ( ! success ) { |
2727 | setCaption( i18n("Error receiving file. Nothing changed!") ); | 2729 | setCaption( i18n("Error receiving file. Nothing changed!") ); |
2728 | return; | 2730 | return; |
2729 | } | 2731 | } |
2730 | mView->mergeFile( sentSyncFile() ); | 2732 | mView->mergeFileResource( sentSyncFile(), resource); |
2731 | if ( KOPrefs::instance()->mPassiveSyncWithDesktop ) { | 2733 | if ( KOPrefs::instance()->mPassiveSyncWithDesktop ) { |
2732 | mSyncManager->slotSyncMenu( 999 ); | 2734 | mSyncManager->slotSyncMenu( 999 ); |
2733 | } | 2735 | } |
diff --git a/korganizer/mainwindow.h b/korganizer/mainwindow.h index d8018b6..a533d8b 100644 --- a/korganizer/mainwindow.h +++ b/korganizer/mainwindow.h | |||
@@ -110,8 +110,8 @@ class MainWindow : public QMainWindow | |||
110 | void slotResetFocus(); | 110 | void slotResetFocus(); |
111 | void slotResetFocusLoop(); | 111 | void slotResetFocusLoop(); |
112 | void showConfigureAgenda(); | 112 | void showConfigureAgenda(); |
113 | void getFile( bool ); | 113 | void getFile( bool ,const QString &); |
114 | void syncFileRequest(); | 114 | void syncFileRequest(const QString &); |
115 | 115 | ||
116 | protected: | 116 | protected: |
117 | int mFocusLoop; | 117 | int mFocusLoop; |
diff --git a/libkcal/calendar.h b/libkcal/calendar.h index 4b8b3ff..0a94914 100644 --- a/libkcal/calendar.h +++ b/libkcal/calendar.h | |||
@@ -79,6 +79,7 @@ public: | |||
79 | virtual bool mergeCalendarFile( QString name ) = 0; | 79 | virtual bool mergeCalendarFile( QString name ) = 0; |
80 | virtual Incidence* incidenceForUid( const QString& uid, bool doNotCheckDuplicates ) = 0; | 80 | virtual Incidence* incidenceForUid( const QString& uid, bool doNotCheckDuplicates ) = 0; |
81 | virtual void setSyncEventsReadOnly() = 0; | 81 | virtual void setSyncEventsReadOnly() = 0; |
82 | virtual void setSyncEventsEnabled() = 0; | ||
82 | virtual void stopAllTodos() = 0; | 83 | virtual void stopAllTodos() = 0; |
83 | virtual void clearUndo( Incidence * newUndo ); | 84 | virtual void clearUndo( Incidence * newUndo ); |
84 | 85 | ||
diff --git a/libkcal/calendarlocal.cpp b/libkcal/calendarlocal.cpp index 0ddfeca..45e3128 100644 --- a/libkcal/calendarlocal.cpp +++ b/libkcal/calendarlocal.cpp | |||
@@ -173,13 +173,25 @@ bool CalendarLocal::addCalendarFile( QString name, int id ) | |||
173 | } | 173 | } |
174 | return false; | 174 | return false; |
175 | } | 175 | } |
176 | void CalendarLocal::setSyncEventsReadOnly() | 176 | void CalendarLocal::setSyncEventsEnabled() |
177 | { | 177 | { |
178 | Event * ev; | 178 | Event * ev; |
179 | ev = mEventList.first(); | 179 | ev = mEventList.first(); |
180 | while ( ev ) { | 180 | while ( ev ) { |
181 | if ( ev->uid().left(15) == QString("last-syncEvent-") ) | 181 | if ( ev->uid().left(15) == QString("last-syncEvent-") ) |
182 | ev->setReadOnly( true ); | 182 | ev->setCalEnabled( true ); |
183 | ev = mEventList.next(); | ||
184 | } | ||
185 | } | ||
186 | void CalendarLocal::setSyncEventsReadOnly() | ||
187 | { | ||
188 | Event * ev; | ||
189 | ev = mEventList.first(); | ||
190 | while ( ev ) { | ||
191 | if ( ev->uid().left(15) == QString("last-syncEvent-") ) { | ||
192 | ev->setReadOnly( true ); | ||
193 | ev->setCalID( 1 ); | ||
194 | } | ||
183 | ev = mEventList.next(); | 195 | ev = mEventList.next(); |
184 | } | 196 | } |
185 | } | 197 | } |
diff --git a/libkcal/calendarlocal.h b/libkcal/calendarlocal.h index ca0bd98..eb7bf34 100644 --- a/libkcal/calendarlocal.h +++ b/libkcal/calendarlocal.h | |||
@@ -49,6 +49,7 @@ class CalendarLocal : public Calendar | |||
49 | bool mergeCalendar( Calendar* cal ); | 49 | bool mergeCalendar( Calendar* cal ); |
50 | Incidence* incidenceForUid( const QString& uid, bool doNotCheckDuplicates ); | 50 | Incidence* incidenceForUid( const QString& uid, bool doNotCheckDuplicates ); |
51 | void setSyncEventsReadOnly(); | 51 | void setSyncEventsReadOnly(); |
52 | void setSyncEventsEnabled(); | ||
52 | void stopAllTodos(); | 53 | void stopAllTodos(); |
53 | /** | 54 | /** |
54 | Loads a calendar on disk in vCalendar or iCalendar format into the current | 55 | Loads a calendar on disk in vCalendar or iCalendar format into the current |
diff --git a/libkdepim/ksyncmanager.cpp b/libkdepim/ksyncmanager.cpp index a64eb34..719d80b 100644 --- a/libkdepim/ksyncmanager.cpp +++ b/libkdepim/ksyncmanager.cpp | |||
@@ -196,7 +196,8 @@ void KSyncManager::slotClearMenu( int action ) | |||
196 | void KSyncManager::slotSyncMenu( int action ) | 196 | void KSyncManager::slotSyncMenu( int action ) |
197 | { | 197 | { |
198 | qDebug("KSM::syncaction %d ", action); | 198 | qDebug("KSM::syncaction %d ", action); |
199 | mCurrentResourceLocal = ""; | 199 | mCurrentResourceLocal = ""; |
200 | emit multiResourceSyncStart( false ); | ||
200 | if ( action == 5000 ) | 201 | if ( action == 5000 ) |
201 | return; | 202 | return; |
202 | mSyncWithDesktop = false; | 203 | mSyncWithDesktop = false; |
@@ -441,6 +442,8 @@ void KSyncManager::enableQuick( bool ask ) | |||
441 | } | 442 | } |
442 | connect( mServerSocket, SIGNAL ( request_file() ),this, SIGNAL ( request_file() ) ); | 443 | connect( mServerSocket, SIGNAL ( request_file() ),this, SIGNAL ( request_file() ) ); |
443 | connect( mServerSocket, SIGNAL ( file_received( bool ) ), this, SIGNAL ( getFile( bool ) ) ); | 444 | connect( mServerSocket, SIGNAL ( file_received( bool ) ), this, SIGNAL ( getFile( bool ) ) ); |
445 | connect( mServerSocket, SIGNAL ( request_file(const QString &) ),this, SIGNAL ( request_file(const QString &) ) ); | ||
446 | connect( mServerSocket, SIGNAL ( file_received( bool ,const QString &) ), this, SIGNAL ( getFile( bool,const QString & ) ) ); | ||
444 | } | 447 | } |
445 | void KSyncManager::displayErrorPort() | 448 | void KSyncManager::displayErrorPort() |
446 | { | 449 | { |
@@ -569,7 +572,7 @@ void KSyncManager::multiSync( bool askforPrefs ) | |||
569 | 572 | ||
570 | int KSyncManager::ringSync() | 573 | int KSyncManager::ringSync() |
571 | { | 574 | { |
572 | 575 | emit multiResourceSyncStart( false ); | |
573 | int syncedProfiles = 0; | 576 | int syncedProfiles = 0; |
574 | unsigned int i; | 577 | unsigned int i; |
575 | QTime timer; | 578 | QTime timer; |
@@ -1140,7 +1143,10 @@ void KSyncManager::syncPi() | |||
1140 | if ( mSpecificResources.count() ) { | 1143 | if ( mSpecificResources.count() ) { |
1141 | int startLocal = 0; | 1144 | int startLocal = 0; |
1142 | int startRemote = mSpecificResources.count()/2; | 1145 | int startRemote = mSpecificResources.count()/2; |
1146 | emit multiResourceSyncStart( true ); | ||
1143 | while ( startLocal < mSpecificResources.count()/2 ) { | 1147 | while ( startLocal < mSpecificResources.count()/2 ) { |
1148 | if ( startLocal+1 >= mSpecificResources.count()/2 ) | ||
1149 | emit multiResourceSyncStart( false ); | ||
1144 | mPisyncFinished = false; | 1150 | mPisyncFinished = false; |
1145 | mCurrentResourceLocal = mSpecificResources[ startLocal ]; | 1151 | mCurrentResourceLocal = mSpecificResources[ startLocal ]; |
1146 | mCurrentResourceRemote = mSpecificResources[ startRemote ]; | 1152 | mCurrentResourceRemote = mSpecificResources[ startRemote ]; |
@@ -1219,7 +1225,7 @@ void KSyncManager::readFileFromSocket() | |||
1219 | mParent->topLevelWidget()->setCaption( i18n("Syncing failed.") ); | 1225 | mParent->topLevelWidget()->setCaption( i18n("Syncing failed.") ); |
1220 | syncOK = false; | 1226 | syncOK = false; |
1221 | } | 1227 | } |
1222 | KCommandSocket* commandSocket = new KCommandSocket( "",mPassWordPiSync, mActiveSyncPort.toUInt(), mActiveSyncIP, this, mParent->topLevelWidget() ); | 1228 | KCommandSocket* commandSocket = new KCommandSocket( mCurrentResourceRemote,mPassWordPiSync, mActiveSyncPort.toUInt(), mActiveSyncIP, this, mParent->topLevelWidget() ); |
1223 | connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int)), this, SLOT(deleteCommandSocket(KCommandSocket*, int )) ); | 1229 | connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int)), this, SLOT(deleteCommandSocket(KCommandSocket*, int )) ); |
1224 | if ( mWriteBackFile && syncOK ) { | 1230 | if ( mWriteBackFile && syncOK ) { |
1225 | mParent->topLevelWidget()->setCaption( i18n("Sending back file ...") ); | 1231 | mParent->topLevelWidget()->setCaption( i18n("Sending back file ...") ); |
@@ -1283,6 +1289,7 @@ void KServerSocket::readClient() | |||
1283 | error_connect("ERROR_ED\r\n\r\n"); | 1289 | error_connect("ERROR_ED\r\n\r\n"); |
1284 | return; | 1290 | return; |
1285 | } | 1291 | } |
1292 | mResource = ""; | ||
1286 | mErrorMessage = 0; | 1293 | mErrorMessage = 0; |
1287 | //qDebug("KServerSocket::readClient()"); | 1294 | //qDebug("KServerSocket::readClient()"); |
1288 | if ( mSocket->canReadLine() ) { | 1295 | if ( mSocket->canReadLine() ) { |
@@ -1299,6 +1306,7 @@ void KServerSocket::readClient() | |||
1299 | } | 1306 | } |
1300 | else | 1307 | else |
1301 | KSyncManager::mRequestedSyncEvent = QDateTime(); | 1308 | KSyncManager::mRequestedSyncEvent = QDateTime(); |
1309 | mResource =tokens[3]; | ||
1302 | send_file(); | 1310 | send_file(); |
1303 | } | 1311 | } |
1304 | else { | 1312 | else { |
@@ -1310,6 +1318,7 @@ void KServerSocket::readClient() | |||
1310 | if ( tokens[1] == mPassWord ) { | 1318 | if ( tokens[1] == mPassWord ) { |
1311 | //emit getFile( mSocket ); | 1319 | //emit getFile( mSocket ); |
1312 | blockRC = true; | 1320 | blockRC = true; |
1321 | mResource =tokens[2]; | ||
1313 | get_file(); | 1322 | get_file(); |
1314 | } | 1323 | } |
1315 | else { | 1324 | else { |
@@ -1406,6 +1415,7 @@ void KServerSocket::send_file() | |||
1406 | mSyncActionDialog->setFixedSize( 230, 120); | 1415 | mSyncActionDialog->setFixedSize( 230, 120); |
1407 | mSyncActionDialog->show(); | 1416 | mSyncActionDialog->show(); |
1408 | mSyncActionDialog->raise(); | 1417 | mSyncActionDialog->raise(); |
1418 | emit request_file(mResource); | ||
1409 | emit request_file(); | 1419 | emit request_file(); |
1410 | qApp->processEvents(); | 1420 | qApp->processEvents(); |
1411 | QString fileName = mFileName; | 1421 | QString fileName = mFileName; |
@@ -1467,7 +1477,8 @@ void KServerSocket::readBackFileFromSocket() | |||
1467 | mSyncActionDialog = 0; | 1477 | mSyncActionDialog = 0; |
1468 | qDebug("KSS:Error open read back file "); | 1478 | qDebug("KSS:Error open read back file "); |
1469 | piFileString = ""; | 1479 | piFileString = ""; |
1470 | emit file_received( false ); | 1480 | emit file_received( false, mResource); |
1481 | emit file_received( false); | ||
1471 | blockRC = false; | 1482 | blockRC = false; |
1472 | return ; | 1483 | return ; |
1473 | 1484 | ||
@@ -1483,7 +1494,8 @@ void KServerSocket::readBackFileFromSocket() | |||
1483 | QTimer::singleShot( 10, this , SLOT ( discardClient())); | 1494 | QTimer::singleShot( 10, this , SLOT ( discardClient())); |
1484 | file.close(); | 1495 | file.close(); |
1485 | piFileString = ""; | 1496 | piFileString = ""; |
1486 | emit file_received( true ); | 1497 | emit file_received( true, mResource ); |
1498 | emit file_received( true); | ||
1487 | delete mSyncActionDialog; | 1499 | delete mSyncActionDialog; |
1488 | mSyncActionDialog = 0; | 1500 | mSyncActionDialog = 0; |
1489 | blockRC = false; | 1501 | blockRC = false; |
@@ -1596,7 +1608,7 @@ void KCommandSocket::writeFileToSocket() | |||
1596 | ts2.setEncoding( QTextStream::Latin1 ); | 1608 | ts2.setEncoding( QTextStream::Latin1 ); |
1597 | QTextStream os2( mSocket ); | 1609 | QTextStream os2( mSocket ); |
1598 | os2.setEncoding( QTextStream::Latin1 ); | 1610 | os2.setEncoding( QTextStream::Latin1 ); |
1599 | os2 << "PUT " << mPassWord << "\r\n\r\n";; | 1611 | os2 << "PUT " << mPassWord << mRemoteResource << "\r\n\r\n";; |
1600 | int byteCount = 0; | 1612 | int byteCount = 0; |
1601 | int byteMax = file2.size()/53; | 1613 | int byteMax = file2.size()/53; |
1602 | while ( ! ts2.atEnd() ) { | 1614 | while ( ! ts2.atEnd() ) { |
diff --git a/libkdepim/ksyncmanager.h b/libkdepim/ksyncmanager.h index f4654ce..53c611d 100644 --- a/libkdepim/ksyncmanager.h +++ b/libkdepim/ksyncmanager.h | |||
@@ -53,6 +53,8 @@ class KServerSocket : public QServerSocket | |||
53 | signals: | 53 | signals: |
54 | void file_received( bool ); | 54 | void file_received( bool ); |
55 | void request_file(); | 55 | void request_file(); |
56 | void file_received( bool, const QString &); | ||
57 | void request_file(const QString &); | ||
56 | void saveFile(); | 58 | void saveFile(); |
57 | void endConnect(); | 59 | void endConnect(); |
58 | private slots: | 60 | private slots: |
@@ -62,6 +64,7 @@ class KServerSocket : public QServerSocket | |||
62 | void displayErrorMessage(); | 64 | void displayErrorMessage(); |
63 | void readBackFileFromSocket(); | 65 | void readBackFileFromSocket(); |
64 | private : | 66 | private : |
67 | QString mResource; | ||
65 | int mErrorMessage; | 68 | int mErrorMessage; |
66 | bool blockRC; | 69 | bool blockRC; |
67 | void send_file(); | 70 | void send_file(); |
@@ -174,6 +177,9 @@ class KSyncManager : public QObject | |||
174 | void save(); | 177 | void save(); |
175 | void request_file(); | 178 | void request_file(); |
176 | void getFile( bool ); | 179 | void getFile( bool ); |
180 | void getFile( bool, const QString &); | ||
181 | void request_file(const QString &); | ||
182 | void multiResourceSyncStart( bool ); | ||
177 | 183 | ||
178 | public slots: | 184 | public slots: |
179 | void slotSyncMenu( int ); | 185 | void slotSyncMenu( int ); |