summaryrefslogtreecommitdiffabout
path: root/korganizer/calendarview.cpp
Unidiff
Diffstat (limited to 'korganizer/calendarview.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/calendarview.cpp19
1 files changed, 16 insertions, 3 deletions
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp
index 31e103d..8965d3b 100644
--- a/korganizer/calendarview.cpp
+++ b/korganizer/calendarview.cpp
@@ -1957,49 +1957,48 @@ bool CalendarView::syncCalendar(QString filename, int mode)
1957 // qDebug("loading ... "); 1957 // qDebug("loading ... ");
1958 if ( storage->load() ) { 1958 if ( storage->load() ) {
1959 getEventViewerDialog()->setSyncMode( true ); 1959 getEventViewerDialog()->setSyncMode( true );
1960 syncOK = synchronizeCalendar( mCalendar, calendar, mode ); 1960 syncOK = synchronizeCalendar( mCalendar, calendar, mode );
1961 getEventViewerDialog()->setSyncMode( false ); 1961 getEventViewerDialog()->setSyncMode( false );
1962 if ( syncOK ) { 1962 if ( syncOK ) {
1963 if ( mSyncManager->mWriteBackFile ) 1963 if ( mSyncManager->mWriteBackFile )
1964 { 1964 {
1965 storage->setSaveFormat( new ICalFormat() ); 1965 storage->setSaveFormat( new ICalFormat() );
1966 storage->save(); 1966 storage->save();
1967 } 1967 }
1968 } 1968 }
1969 setModified( true ); 1969 setModified( true );
1970 } 1970 }
1971 delete storage; 1971 delete storage;
1972 delete calendar; 1972 delete calendar;
1973 if ( syncOK ) 1973 if ( syncOK )
1974 updateView(); 1974 updateView();
1975 return syncOK; 1975 return syncOK;
1976} 1976}
1977 1977
1978void CalendarView::syncExternal( int mode ) 1978void CalendarView::syncExternal( int mode )
1979{ 1979{
1980 mGlobalSyncMode = SYNC_MODE_EXTERNAL; 1980 mGlobalSyncMode = SYNC_MODE_EXTERNAL;
1981
1982 qApp->processEvents(); 1981 qApp->processEvents();
1983 CalendarLocal* calendar = new CalendarLocal(); 1982 CalendarLocal* calendar = new CalendarLocal();
1984 calendar->setTimeZoneId(KPimGlobalPrefs::instance()->mTimeZoneId); 1983 calendar->setTimeZoneId(KPimGlobalPrefs::instance()->mTimeZoneId);
1985 bool syncOK = false; 1984 bool syncOK = false;
1986 bool loadSuccess = false; 1985 bool loadSuccess = false;
1987 PhoneFormat* phoneFormat = 0; 1986 PhoneFormat* phoneFormat = 0;
1988 emit tempDisableBR(true); 1987 emit tempDisableBR(true);
1989#ifndef DESKTOP_VERSION 1988#ifndef DESKTOP_VERSION
1990 SharpFormat* sharpFormat = 0; 1989 SharpFormat* sharpFormat = 0;
1991 if ( mode == 0 ) { // sharp 1990 if ( mode == 0 ) { // sharp
1992 sharpFormat = new SharpFormat () ; 1991 sharpFormat = new SharpFormat () ;
1993 loadSuccess = sharpFormat->load( calendar, mCalendar ); 1992 loadSuccess = sharpFormat->load( calendar, mCalendar );
1994 1993
1995 } else 1994 } else
1996#endif 1995#endif
1997 if ( mode == 1 ) { // phone 1996 if ( mode == 1 ) { // phone
1998 phoneFormat = new PhoneFormat (mCurrentSyncDevice, 1997 phoneFormat = new PhoneFormat (mCurrentSyncDevice,
1999 mSyncManager->mPhoneDevice, 1998 mSyncManager->mPhoneDevice,
2000 mSyncManager->mPhoneConnection, 1999 mSyncManager->mPhoneConnection,
2001 mSyncManager->mPhoneModel); 2000 mSyncManager->mPhoneModel);
2002 loadSuccess = phoneFormat->load( calendar,mCalendar); 2001 loadSuccess = phoneFormat->load( calendar,mCalendar);
2003 2002
2004 } else { 2003 } else {
2005 emit tempDisableBR(false); 2004 emit tempDisableBR(false);
@@ -5013,59 +5012,73 @@ void CalendarView::purgeCompleted()
5013 for (aTodo = todoCal.first(); aTodo; aTodo = todoCal.next()) { 5012 for (aTodo = todoCal.first(); aTodo; aTodo = todoCal.next()) {
5014 if ( !aTodo->relatedTo() ) 5013 if ( !aTodo->relatedTo() )
5015 rootTodos.append( aTodo ); 5014 rootTodos.append( aTodo );
5016 } 5015 }
5017 for (aTodo = rootTodos.first(); aTodo; aTodo = rootTodos.next()) { 5016 for (aTodo = rootTodos.first(); aTodo; aTodo = rootTodos.next()) {
5018 removeCompletedSubTodos( aTodo ); 5017 removeCompletedSubTodos( aTodo );
5019 } 5018 }
5020 5019
5021 updateView(); 5020 updateView();
5022 } 5021 }
5023} 5022}
5024 5023
5025void CalendarView::slotCalendarChanged() 5024void CalendarView::slotCalendarChanged()
5026{ 5025{
5027 ; 5026 ;
5028} 5027}
5029 5028
5030void CalendarView::keyPressEvent ( QKeyEvent *e) 5029void CalendarView::keyPressEvent ( QKeyEvent *e)
5031{ 5030{
5032 //qDebug("CalendarView::keyPressEvent "); 5031 //qDebug("CalendarView::keyPressEvent ");
5033 e->ignore(); 5032 e->ignore();
5034} 5033}
5035 5034
5036 5035
5037bool CalendarView::sync(KSyncManager* manager, QString filename, int mode) 5036bool CalendarView::sync(KSyncManager* manager, QString filename, int mode,QString resource)
5038{ 5037{
5039 5038
5040 if ( manager != mSyncManager) 5039 if ( manager != mSyncManager)
5041 qDebug("KO: Internal error-1. SyncManager mismatch "); 5040 qDebug("KO: Internal error-1. SyncManager mismatch ");
5042 if ( filename == QDir::homeDirPath ()+"/.kdecalendardump.ics" ) { 5041 if ( filename == QDir::homeDirPath ()+"/.kdecalendardump.ics" ) {
5043 qDebug("KO: SyncKDE request detected!"); 5042 qDebug("KO: SyncKDE request detected!");
5044 } 5043 }
5045 mCurrentSyncDevice = mSyncManager->getCurrentSyncDevice(); 5044 mCurrentSyncDevice = mSyncManager->getCurrentSyncDevice();
5046 mCurrentSyncName = mSyncManager->getCurrentSyncName(); 5045 mCurrentSyncName = mSyncManager->getCurrentSyncName();
5047 return syncCalendar( filename, mode ); 5046 if ( !resource.isEmpty() ) {
5047 int exclusiveSyncResource = KOPrefs::instance()->getFuzzyCalendarID( resource );
5048 qDebug( "KO: Sync request for resource: %s", resource.latin1() );
5049
5050 if ( !exclusiveSyncResource ) {
5051 qDebug( "KO: Requested sync resource not found: %s", resource.latin1() );
5052 return false;
5053 }
5054 mCalendar->setDefaultCalendar( exclusiveSyncResource );
5055 mCalendar->setDefaultCalendarEnabledOnly();
5056 }
5057 bool result = syncCalendar( filename, mode );
5058 if ( !resource.isEmpty() )
5059 restoreCalendarSettings();
5060 return result;
5048} 5061}
5049bool CalendarView::syncExternal(KSyncManager* manager, QString resource) 5062bool CalendarView::syncExternal(KSyncManager* manager, QString resource)
5050{ 5063{
5051 //mSyncManager = manager; 5064 //mSyncManager = manager;
5052 if ( manager != mSyncManager) 5065 if ( manager != mSyncManager)
5053 qDebug("KO: Internal error-2. SyncManager mismatch "); 5066 qDebug("KO: Internal error-2. SyncManager mismatch ");
5054 mCurrentSyncDevice = mSyncManager->getCurrentSyncDevice(); 5067 mCurrentSyncDevice = mSyncManager->getCurrentSyncDevice();
5055 mCurrentSyncName = mSyncManager->getCurrentSyncName(); 5068 mCurrentSyncName = mSyncManager->getCurrentSyncName();
5056 if ( resource == "sharp" ) 5069 if ( resource == "sharp" )
5057 syncExternal( 0 ); 5070 syncExternal( 0 );
5058 if ( resource == "phone" ) 5071 if ( resource == "phone" )
5059 syncExternal( 1 ); 5072 syncExternal( 1 );
5060 // pending setmodified 5073 // pending setmodified
5061 return true; 5074 return true;
5062} 5075}
5063void CalendarView::setSyncManager(KSyncManager* manager) 5076void CalendarView::setSyncManager(KSyncManager* manager)
5064{ 5077{
5065 mSyncManager = manager; 5078 mSyncManager = manager;
5066} 5079}
5067 5080
5068void CalendarView::removeSyncInfo( QString syncProfile) 5081void CalendarView::removeSyncInfo( QString syncProfile)
5069{ 5082{
5070 qDebug("KO: removeSyncInfo for profile %s ", syncProfile.latin1()); 5083 qDebug("KO: removeSyncInfo for profile %s ", syncProfile.latin1());
5071 mCalendar->removeSyncInfo( syncProfile ); 5084 mCalendar->removeSyncInfo( syncProfile );