summaryrefslogtreecommitdiffabout
path: root/korganizer/calendarview.cpp
Side-by-side diff
Diffstat (limited to 'korganizer/calendarview.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/calendarview.cpp44
1 files changed, 23 insertions, 21 deletions
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp
index 1800cf2..8385bcc 100644
--- a/korganizer/calendarview.cpp
+++ b/korganizer/calendarview.cpp
@@ -1728,41 +1728,43 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int
inL = local->incidenceForUid( uid , false , true, &hasCalId );
if ( hasCalId && !inL )
inL = local->incidenceForUid( uid , false , true, &hasCalId );
else
hasCalId = 0;
if ( inL ) { // maybe conflict - same uid in both calendars
- if ( hasCalId )
- qDebug("KO: Cal id %d conflict detected: %s ", hasCalId, inL->summary().latin1());
+
if ( (take = takeEvent( inL, inR, mode, fullDateRange )) > 0 ) {
//qDebug("take %d %s ", take, inL->summary().latin1());
if ( take == 3 )
return false;
if ( take == 1 ) {// take local **********************
if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL )
inL->setCsum( mCurrentSyncDevice, inR->getCsum(mCurrentSyncDevice) );
else
idS = inR->IDStr();
int calID = inR->calID();
remote->deleteIncidence( inR );
- inR = inL->clone();
- inR->setCalID_block( calID );
- inR->setTempSyncStat( SYNC_TEMPSTATE_INITIAL );
- if ( mGlobalSyncMode != SYNC_MODE_EXTERNAL )
- inR->setIDStr( idS );
- remote->addIncidence( inR );
- if ( mSyncManager->syncWithDesktop() )
- inR->setPilotId( 2 );
- ++changedRemote;
+ if ( !hasCalId ) {
+ inR = inL->clone();
+ inR->setCalID_block( calID );
+ inR->setTempSyncStat( SYNC_TEMPSTATE_INITIAL );
+ if ( mGlobalSyncMode != SYNC_MODE_EXTERNAL )
+ inR->setIDStr( idS );
+ remote->addIncidence( inR );
+ if ( mSyncManager->syncWithDesktop() )
+ inR->setPilotId( 2 );
+ ++changedRemote;
+ } else
+ ++deletedEventR;
} else {// take remote **********************
if ( !inL->isReadOnly() ) {
idS = inL->IDStr();
int pid = inL->pilotId();
int calID = inL->calID();
- if ( hasCalId )
- calID = hasCalId;
+ if ( hasCalId )
+ calID = 0;// add to default calendar
local->deleteIncidence( inL );
inL = inR->clone();
inL->setCalID_block( calID );
if ( mSyncManager->syncWithDesktop() )
inL->setPilotId( pid );
inL->setIDStr( idS );
@@ -1773,16 +1775,20 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int
local->addIncidence( inL );
++changedLocal;
}
}
} else {
// take == 0; events equal
- if ( hasCalId )
- qDebug("EV EQUALLLL **************************** ");
+ if ( hasCalId ) {
+ qDebug("KO: Changing Cal id %d to %d for : %s ", hasCalId, local->defaultCalendar(),inL->summary().latin1());
+ inL->setCalID( local->defaultCalendar() );
+ }
}
+
+
} else { // no conflict ********** add or delete remote
if ( !filterIN || filterIN->filterCalendarItem( inR ) ){
if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
QString des = eventLSync->description();
QString pref = "e";
if ( inR->typeID() == todoID )
@@ -2479,22 +2485,18 @@ void CalendarView::mergeFileResource( QString fn ,QString resource )
if ( !exclusiveResource ) {
qDebug("KO: CalendarView::mergeFileResource: resource not found %s", resource.latin1() );
return;
}
clearAllViews();
mCalendar->setCalendarRemove( exclusiveResource );
- int def = mCalendar->defaultCalendar();
mCalendar->setDefaultCalendar(exclusiveResource);
+ mCalendar->setAllCalendarEnabled( true );
if ( !mCalendar->addCalendarFile( fn, exclusiveResource )) {
qDebug("KO: CalendarView::mergeFileResource: error adding file %s", fn.latin1() );
}
- mCalendar->setDefaultCalendar( def );
- mCalendar->reInitAlarmSettings();
- setSyncEventsReadOnly();
- updateUnmanagedViews();
- updateView();
+ restoreCalendarSettings();
}
void CalendarView::showOpenError()
{
KMessageBox::error(this,i18n("Couldn't load calendar\n."));
}
void CalendarView::setLoadedFileVersion(QDateTime dt)