summaryrefslogtreecommitdiffabout
path: root/korganizer
authorzautrix <zautrix>2005-11-28 03:27:16 (UTC)
committer zautrix <zautrix>2005-11-28 03:27:16 (UTC)
commitb7522a13b64225bb91bdab4a21b44282f8c3e3b4 (patch) (unidiff)
tree3aa005036dd83f3d0e5f57dd398dc260666daea1 /korganizer
parent084180efc1bccba341bf3f2f718fd10cdfdaf18e (diff)
downloadkdepimpi-b7522a13b64225bb91bdab4a21b44282f8c3e3b4.zip
kdepimpi-b7522a13b64225bb91bdab4a21b44282f8c3e3b4.tar.gz
kdepimpi-b7522a13b64225bb91bdab4a21b44282f8c3e3b4.tar.bz2
sync
Diffstat (limited to 'korganizer') (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
@@ -1726,65 +1726,71 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int
1726 if ( !skipIncidence ) { 1726 if ( !skipIncidence ) {
1727 int hasCalId = 0; 1727 int hasCalId = 0;
1728 inL = local->incidenceForUid( uid , false , true, &hasCalId ); 1728 inL = local->incidenceForUid( uid , false , true, &hasCalId );
1729 if ( hasCalId && !inL ) 1729 if ( hasCalId && !inL )
1730 inL = local->incidenceForUid( uid , false , true, &hasCalId ); 1730 inL = local->incidenceForUid( uid , false , true, &hasCalId );
1731 else 1731 else
1732 hasCalId = 0; 1732 hasCalId = 0;
1733 if ( inL ) { // maybe conflict - same uid in both calendars 1733 if ( inL ) { // maybe conflict - same uid in both calendars
1734 if ( hasCalId ) 1734
1735 qDebug("KO: Cal id %d conflict detected: %s ", hasCalId, inL->summary().latin1());
1736 if ( (take = takeEvent( inL, inR, mode, fullDateRange )) > 0 ) { 1735 if ( (take = takeEvent( inL, inR, mode, fullDateRange )) > 0 ) {
1737 //qDebug("take %d %s ", take, inL->summary().latin1()); 1736 //qDebug("take %d %s ", take, inL->summary().latin1());
1738 if ( take == 3 ) 1737 if ( take == 3 )
1739 return false; 1738 return false;
1740 if ( take == 1 ) {// take local ********************** 1739 if ( take == 1 ) {// take local **********************
1741 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) 1740 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL )
1742 inL->setCsum( mCurrentSyncDevice, inR->getCsum(mCurrentSyncDevice) ); 1741 inL->setCsum( mCurrentSyncDevice, inR->getCsum(mCurrentSyncDevice) );
1743 else 1742 else
1744 idS = inR->IDStr(); 1743 idS = inR->IDStr();
1745 int calID = inR->calID(); 1744 int calID = inR->calID();
1746 remote->deleteIncidence( inR ); 1745 remote->deleteIncidence( inR );
1747 inR = inL->clone(); 1746 if ( !hasCalId ) {
1748 inR->setCalID_block( calID ); 1747 inR = inL->clone();
1749 inR->setTempSyncStat( SYNC_TEMPSTATE_INITIAL ); 1748 inR->setCalID_block( calID );
1750 if ( mGlobalSyncMode != SYNC_MODE_EXTERNAL ) 1749 inR->setTempSyncStat( SYNC_TEMPSTATE_INITIAL );
1751 inR->setIDStr( idS ); 1750 if ( mGlobalSyncMode != SYNC_MODE_EXTERNAL )
1752 remote->addIncidence( inR ); 1751 inR->setIDStr( idS );
1753 if ( mSyncManager->syncWithDesktop() ) 1752 remote->addIncidence( inR );
1754 inR->setPilotId( 2 ); 1753 if ( mSyncManager->syncWithDesktop() )
1755 ++changedRemote; 1754 inR->setPilotId( 2 );
1755 ++changedRemote;
1756 } else
1757 ++deletedEventR;
1756 } else {// take remote ********************** 1758 } else {// take remote **********************
1757 if ( !inL->isReadOnly() ) { 1759 if ( !inL->isReadOnly() ) {
1758 idS = inL->IDStr(); 1760 idS = inL->IDStr();
1759 int pid = inL->pilotId(); 1761 int pid = inL->pilotId();
1760 int calID = inL->calID(); 1762 int calID = inL->calID();
1761 if ( hasCalId ) 1763 if ( hasCalId )
1762 calID = hasCalId; 1764 calID = 0;// add to default calendar
1763 local->deleteIncidence( inL ); 1765 local->deleteIncidence( inL );
1764 inL = inR->clone(); 1766 inL = inR->clone();
1765 inL->setCalID_block( calID ); 1767 inL->setCalID_block( calID );
1766 if ( mSyncManager->syncWithDesktop() ) 1768 if ( mSyncManager->syncWithDesktop() )
1767 inL->setPilotId( pid ); 1769 inL->setPilotId( pid );
1768 inL->setIDStr( idS ); 1770 inL->setIDStr( idS );
1769 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { 1771 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
1770 inL->setCsum( mCurrentSyncDevice, inR->getCsum(mCurrentSyncDevice) ); 1772 inL->setCsum( mCurrentSyncDevice, inR->getCsum(mCurrentSyncDevice) );
1771 inL->setID( mCurrentSyncDevice, inR->getID(mCurrentSyncDevice) ); 1773 inL->setID( mCurrentSyncDevice, inR->getID(mCurrentSyncDevice) );
1772 } 1774 }
1773 local->addIncidence( inL ); 1775 local->addIncidence( inL );
1774 ++changedLocal; 1776 ++changedLocal;
1775 } 1777 }
1776 } 1778 }
1777 } else { 1779 } else {
1778 // take == 0; events equal 1780 // take == 0; events equal
1779 if ( hasCalId ) 1781 if ( hasCalId ) {
1780 qDebug("EV EQUALLLL **************************** "); 1782 qDebug("KO: Changing Cal id %d to %d for : %s ", hasCalId, local->defaultCalendar(),inL->summary().latin1());
1783 inL->setCalID( local->defaultCalendar() );
1784 }
1781 1785
1782 } 1786 }
1787
1788
1783 } else { // no conflict ********** add or delete remote 1789 } else { // no conflict ********** add or delete remote
1784 if ( !filterIN || filterIN->filterCalendarItem( inR ) ){ 1790 if ( !filterIN || filterIN->filterCalendarItem( inR ) ){
1785 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { 1791 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
1786 QString des = eventLSync->description(); 1792 QString des = eventLSync->description();
1787 QString pref = "e"; 1793 QString pref = "e";
1788 if ( inR->typeID() == todoID ) 1794 if ( inR->typeID() == todoID )
1789 pref = "t"; 1795 pref = "t";
1790 if ( des.find(pref+ inR->getID(mCurrentSyncDevice) +"," ) >= 0 && mode != 5) { // delete it 1796 if ( des.find(pref+ inR->getID(mCurrentSyncDevice) +"," ) >= 0 && mode != 5) { // delete it
@@ -2477,26 +2483,22 @@ void CalendarView::mergeFileResource( QString fn ,QString resource )
2477 2483
2478 int exclusiveResource = KOPrefs::instance()->getFuzzyCalendarID( resource ); 2484 int exclusiveResource = KOPrefs::instance()->getFuzzyCalendarID( resource );
2479 if ( !exclusiveResource ) { 2485 if ( !exclusiveResource ) {
2480 qDebug("KO: CalendarView::mergeFileResource: resource not found %s", resource.latin1() ); 2486 qDebug("KO: CalendarView::mergeFileResource: resource not found %s", resource.latin1() );
2481 return; 2487 return;
2482 } 2488 }
2483 clearAllViews(); 2489 clearAllViews();
2484 mCalendar->setCalendarRemove( exclusiveResource ); 2490 mCalendar->setCalendarRemove( exclusiveResource );
2485 int def = mCalendar->defaultCalendar();
2486 mCalendar->setDefaultCalendar(exclusiveResource); 2491 mCalendar->setDefaultCalendar(exclusiveResource);
2492 mCalendar->setAllCalendarEnabled( true );
2487 if ( !mCalendar->addCalendarFile( fn, exclusiveResource )) { 2493 if ( !mCalendar->addCalendarFile( fn, exclusiveResource )) {
2488 qDebug("KO: CalendarView::mergeFileResource: error adding file %s", fn.latin1() ); 2494 qDebug("KO: CalendarView::mergeFileResource: error adding file %s", fn.latin1() );
2489 } 2495 }
2490 mCalendar->setDefaultCalendar( def ); 2496 restoreCalendarSettings();
2491 mCalendar->reInitAlarmSettings();
2492 setSyncEventsReadOnly();
2493 updateUnmanagedViews();
2494 updateView();
2495} 2497}
2496void CalendarView::showOpenError() 2498void CalendarView::showOpenError()
2497{ 2499{
2498 KMessageBox::error(this,i18n("Couldn't load calendar\n.")); 2500 KMessageBox::error(this,i18n("Couldn't load calendar\n."));
2499} 2501}
2500void CalendarView::setLoadedFileVersion(QDateTime dt) 2502void CalendarView::setLoadedFileVersion(QDateTime dt)
2501{ 2503{
2502 loadedFileVersion = dt; 2504 loadedFileVersion = dt;