-rw-r--r-- | korganizer/calendarview.cpp | 63 | ||||
-rw-r--r-- | korganizer/calendarview.h | 7 | ||||
-rw-r--r-- | korganizer/kofilterview.cpp | 2 | ||||
-rw-r--r-- | korganizer/mainwindow.cpp | 4 |
4 files changed, 71 insertions, 5 deletions
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp index b3686aa..07ec459 100644 --- a/korganizer/calendarview.cpp +++ b/korganizer/calendarview.cpp | |||
@@ -438,48 +438,52 @@ void CalendarView::init() | |||
438 | } else { | 438 | } else { |
439 | //mainBoxLayout = new QHBoxLayout(mainBox); | 439 | //mainBoxLayout = new QHBoxLayout(mainBox); |
440 | //leftFrameLayout = new QVBoxLayout(leftFrame ); | 440 | //leftFrameLayout = new QVBoxLayout(leftFrame ); |
441 | mMainFrame = new KDGanttMinimizeSplitter( Qt::Horizontal, this); | 441 | mMainFrame = new KDGanttMinimizeSplitter( Qt::Horizontal, this); |
442 | mMainFrame->setMinimizeDirection ( KDGanttMinimizeSplitter::Left); | 442 | mMainFrame->setMinimizeDirection ( KDGanttMinimizeSplitter::Left); |
443 | mLeftFrame = new KDGanttMinimizeSplitter( Qt::Vertical, mMainFrame); | 443 | mLeftFrame = new KDGanttMinimizeSplitter( Qt::Vertical, mMainFrame); |
444 | mLeftFrame->setMinimizeDirection ( KDGanttMinimizeSplitter::Up ); | 444 | mLeftFrame->setMinimizeDirection ( KDGanttMinimizeSplitter::Up ); |
445 | } | 445 | } |
446 | mMainFrame->setSizePolicy( QSizePolicy (QSizePolicy::Expanding,QSizePolicy::Expanding) ); | 446 | mMainFrame->setSizePolicy( QSizePolicy (QSizePolicy::Expanding,QSizePolicy::Expanding) ); |
447 | //QBoxLayout * leftFrameLayout; | 447 | //QBoxLayout * leftFrameLayout; |
448 | topLayout->addWidget( mMainFrame ); | 448 | topLayout->addWidget( mMainFrame ); |
449 | //mainBoxLayout->addWidget (mLeftFrame); | 449 | //mainBoxLayout->addWidget (mLeftFrame); |
450 | mDateNavigator = new DateNavigatorContainer( mLeftFrame, | 450 | mDateNavigator = new DateNavigatorContainer( mLeftFrame, |
451 | "CalendarView::DateNavigator" ); | 451 | "CalendarView::DateNavigator" ); |
452 | #if 0 | 452 | #if 0 |
453 | // FIXME | 453 | // FIXME |
454 | mDateNavigator = new KDateNavigator(mLeftFrame, mCalendar, TRUE, | 454 | mDateNavigator = new KDateNavigator(mLeftFrame, mCalendar, TRUE, |
455 | "CalendarView::DateNavigator", QDate::currentDate()); | 455 | "CalendarView::DateNavigator", QDate::currentDate()); |
456 | #endif | 456 | #endif |
457 | // mDateNavigator->blockSignals( true ); | 457 | // mDateNavigator->blockSignals( true ); |
458 | //leftFrameLayout->addWidget( mDateNavigator ); | 458 | //leftFrameLayout->addWidget( mDateNavigator ); |
459 | mTodoList = new KOTodoView(mCalendar, mLeftFrame, "todolistsmall"); | 459 | mTodoList = new KOTodoView(mCalendar, mLeftFrame, "todolistsmall"); |
460 | mFilterView = new KOFilterView(&mFilters,mLeftFrame,"CalendarView::FilterView"); | 460 | mFilterView = new KOFilterView(&mFilters,mLeftFrame,"CalendarView::FilterView"); |
461 | mCalEditView = new KOCalEditView(mLeftFrame,"CalendarView::CaleditView"); | 461 | mCalEditView = new KOCalEditView(mLeftFrame,"CalendarView::CaleditView"); |
462 | connect( mCalEditView, SIGNAL( calendarEnabled (int,bool) ),mCalendar, SLOT( setCalendarEnabled(int,bool)) ); | ||
463 | connect( mCalEditView, SIGNAL( alarmEnabled(int,bool) ),mCalendar, SLOT( setAlarmEnabled(int,bool)) ); | ||
464 | connect( mCalEditView, SIGNAL( calendarReadonly(int,bool) ),mCalendar, SLOT( setReadOnly(int,bool)) ); | ||
465 | connect( mCalEditView, SIGNAL( setCalendarDefault(int) ),mCalendar, SLOT( setDefaultCalendar(int)) ); | ||
462 | mTodoList->setNavigator( mNavigator ); | 466 | mTodoList->setNavigator( mNavigator ); |
463 | #if 0 | 467 | #if 0 |
464 | if ( QApplication::desktop()->width() < 480 ) { | 468 | if ( QApplication::desktop()->width() < 480 ) { |
465 | leftFrameLayout->addWidget(mFilterView); | 469 | leftFrameLayout->addWidget(mFilterView); |
466 | leftFrameLayout->addWidget(mTodoList, 2 ); | 470 | leftFrameLayout->addWidget(mTodoList, 2 ); |
467 | 471 | ||
468 | } else { | 472 | } else { |
469 | leftFrameLayout->addWidget(mTodoList,2 ); | 473 | leftFrameLayout->addWidget(mTodoList,2 ); |
470 | leftFrameLayout->addWidget(mFilterView ); | 474 | leftFrameLayout->addWidget(mFilterView ); |
471 | } | 475 | } |
472 | #endif | 476 | #endif |
473 | mFilterView->hide(); | 477 | mFilterView->hide(); |
474 | mCalEditView->hide(); | 478 | mCalEditView->hide(); |
475 | QWidget *rightBox = new QWidget( mMainFrame ); | 479 | QWidget *rightBox = new QWidget( mMainFrame ); |
476 | //mainBoxLayout->addWidget ( rightBox, 10 ); | 480 | //mainBoxLayout->addWidget ( rightBox, 10 ); |
477 | QBoxLayout *rightLayout = new QVBoxLayout( rightBox ); | 481 | QBoxLayout *rightLayout = new QVBoxLayout( rightBox ); |
478 | mRightFrame = new QWidgetStack( rightBox ); | 482 | mRightFrame = new QWidgetStack( rightBox ); |
479 | rightLayout->addWidget( mRightFrame, 10 ); | 483 | rightLayout->addWidget( mRightFrame, 10 ); |
480 | 484 | ||
481 | //mLeftFrame = (QWidget *)leftFrame; | 485 | //mLeftFrame = (QWidget *)leftFrame; |
482 | if ( KOPrefs::instance()->mVerticalScreen ) { | 486 | if ( KOPrefs::instance()->mVerticalScreen ) { |
483 | //mDateNavigator->setFixedHeight( mDateNavigator->sizeHint().height() ); | 487 | //mDateNavigator->setFixedHeight( mDateNavigator->sizeHint().height() ); |
484 | //mDateNavigator->setMinimumWidth( mDateNavigator->sizeHint().width() ); | 488 | //mDateNavigator->setMinimumWidth( mDateNavigator->sizeHint().width() ); |
485 | //mTodoList->setFixedHeight( mDateNavigator->sizeHint().height() ); | 489 | //mTodoList->setFixedHeight( mDateNavigator->sizeHint().height() ); |
@@ -1813,48 +1817,88 @@ bool CalendarView::importQtopia( const QString &categories, | |||
1813 | QString question = i18n("Sorry, the file loading\ncommand failed!\n\nNothing synced!\n") ; | 1817 | QString question = i18n("Sorry, the file loading\ncommand failed!\n\nNothing synced!\n") ; |
1814 | QMessageBox::information( 0, i18n("KO/Pi Sync - ERROR"), | 1818 | QMessageBox::information( 0, i18n("KO/Pi Sync - ERROR"), |
1815 | question, i18n("Ok")) ; | 1819 | question, i18n("Ok")) ; |
1816 | } | 1820 | } |
1817 | delete calendar; | 1821 | delete calendar; |
1818 | updateView(); | 1822 | updateView(); |
1819 | return syncOK; | 1823 | return syncOK; |
1820 | 1824 | ||
1821 | 1825 | ||
1822 | #endif | 1826 | #endif |
1823 | 1827 | ||
1824 | } | 1828 | } |
1825 | 1829 | ||
1826 | void CalendarView::setSyncEventsReadOnly() | 1830 | void CalendarView::setSyncEventsReadOnly() |
1827 | { | 1831 | { |
1828 | Event * ev; | 1832 | Event * ev; |
1829 | QPtrList<Event> eL = mCalendar->rawEvents(); | 1833 | QPtrList<Event> eL = mCalendar->rawEvents(); |
1830 | ev = eL.first(); | 1834 | ev = eL.first(); |
1831 | while ( ev ) { | 1835 | while ( ev ) { |
1832 | if ( ev->uid().left(15) == QString("last-syncEvent-") ) | 1836 | if ( ev->uid().left(15) == QString("last-syncEvent-") ) |
1833 | ev->setReadOnly( true ); | 1837 | ev->setReadOnly( true ); |
1834 | ev = eL.next(); | 1838 | ev = eL.next(); |
1835 | } | 1839 | } |
1836 | } | 1840 | } |
1841 | |||
1842 | bool CalendarView::loadCalendars() | ||
1843 | { | ||
1844 | QPtrList<KopiCalendarFile> calendars = KOPrefs::instance()->mCalendars; | ||
1845 | KopiCalendarFile * cal = calendars.first(); | ||
1846 | mCalendar->setDefaultCalendar( 1 ); | ||
1847 | openCalendar( MainWindow::defaultFileName(), false ); | ||
1848 | cal = calendars.next(); | ||
1849 | while ( cal ) { | ||
1850 | addCalendar( cal ); | ||
1851 | cal = calendars.next(); | ||
1852 | } | ||
1853 | restoreCalendarSettings(); | ||
1854 | mCalendar->reInitAlarmSettings(); | ||
1855 | setSyncEventsReadOnly(); | ||
1856 | updateUnmanagedViews(); | ||
1857 | updateView(); | ||
1858 | } | ||
1859 | bool CalendarView::restoreCalendarSettings() | ||
1860 | { | ||
1861 | QPtrList<KopiCalendarFile> calendars = KOPrefs::instance()->mCalendars; | ||
1862 | KopiCalendarFile * cal = calendars.first(); | ||
1863 | while ( cal ) { | ||
1864 | mCalendar->setCalendarEnabled( cal->mCalNumber,cal->isEnabled ); | ||
1865 | mCalendar->setAlarmEnabled( cal->mCalNumber, cal->isAlarmEnabled ); | ||
1866 | mCalendar->setReadOnly( cal->mCalNumber, cal->isReadOnly ); | ||
1867 | if ( cal->isStandard ) | ||
1868 | mCalendar->setDefaultCalendar( cal->mCalNumber ); | ||
1869 | cal = calendars.next(); | ||
1870 | } | ||
1871 | } | ||
1872 | bool CalendarView::addCalendar( KopiCalendarFile * cal ) | ||
1873 | { | ||
1874 | |||
1875 | if ( mCalendar->addCalendarFile( cal->mFileName, cal->mCalNumber )) | ||
1876 | return true; | ||
1877 | qDebug("KO: Error adding calendar file %1 ",cal->mFileName.latin1() ); | ||
1878 | KMessageBox::error(this,i18n("Error loading calendar file\n%1.").arg(cal->mFileName)); | ||
1879 | return false; | ||
1880 | } | ||
1837 | bool CalendarView::openCalendar(QString filename, bool merge) | 1881 | bool CalendarView::openCalendar(QString filename, bool merge) |
1838 | { | 1882 | { |
1839 | 1883 | ||
1840 | if (filename.isEmpty()) { | 1884 | if (filename.isEmpty()) { |
1841 | return false; | 1885 | return false; |
1842 | } | 1886 | } |
1843 | 1887 | ||
1844 | if (!QFile::exists(filename)) { | 1888 | if (!QFile::exists(filename)) { |
1845 | KMessageBox::error(this,i18n("File does not exist:\n '%1'.").arg(filename)); | 1889 | KMessageBox::error(this,i18n("File does not exist:\n '%1'.").arg(filename)); |
1846 | return false; | 1890 | return false; |
1847 | } | 1891 | } |
1848 | 1892 | ||
1849 | globalFlagBlockAgenda = 1; | 1893 | globalFlagBlockAgenda = 1; |
1850 | clearAllViews(); | 1894 | clearAllViews(); |
1851 | if (!merge) { | 1895 | if (!merge) { |
1852 | mViewManager->setDocumentId( filename ); | 1896 | mViewManager->setDocumentId( filename ); |
1853 | mCalendar->close(); | 1897 | mCalendar->close(); |
1854 | } | 1898 | } |
1855 | mStorage->setFileName( filename ); | 1899 | mStorage->setFileName( filename ); |
1856 | 1900 | ||
1857 | if ( mStorage->load() ) { | 1901 | if ( mStorage->load() ) { |
1858 | if ( merge ) ;//setModified( true ); | 1902 | if ( merge ) ;//setModified( true ); |
1859 | else { | 1903 | else { |
1860 | //setModified( true ); | 1904 | //setModified( true ); |
@@ -1943,49 +1987,66 @@ bool CalendarView::checkFileVersion(QString fn) | |||
1943 | if ( dt <= loadedFileVersion ) | 1987 | if ( dt <= loadedFileVersion ) |
1944 | return true; | 1988 | return true; |
1945 | int km = KMessageBox::warningYesNoCancel(this, i18n("\nThe file on disk has changed!\nFile size: %1 bytes.\nLast modified: %2\nDo you want to:\n\n - Save and overwrite file?\n - Sync with file, then save?\n - Cancel without saving? \n").arg( QString::number( finf.size())).arg( KGlobal::locale()->formatDateTime(finf.lastModified (), true, true)) , | 1989 | int km = KMessageBox::warningYesNoCancel(this, i18n("\nThe file on disk has changed!\nFile size: %1 bytes.\nLast modified: %2\nDo you want to:\n\n - Save and overwrite file?\n - Sync with file, then save?\n - Cancel without saving? \n").arg( QString::number( finf.size())).arg( KGlobal::locale()->formatDateTime(finf.lastModified (), true, true)) , |
1946 | i18n("KO/Pi Warning"),i18n("Overwrite"), | 1990 | i18n("KO/Pi Warning"),i18n("Overwrite"), |
1947 | i18n("Sync+save")); | 1991 | i18n("Sync+save")); |
1948 | 1992 | ||
1949 | if ( km == KMessageBox::Cancel ) | 1993 | if ( km == KMessageBox::Cancel ) |
1950 | return false; | 1994 | return false; |
1951 | if ( km == KMessageBox::Yes ) | 1995 | if ( km == KMessageBox::Yes ) |
1952 | return true; | 1996 | return true; |
1953 | 1997 | ||
1954 | setSyncDevice("deleteaftersync" ); | 1998 | setSyncDevice("deleteaftersync" ); |
1955 | mSyncManager->mAskForPreferences = true; | 1999 | mSyncManager->mAskForPreferences = true; |
1956 | mSyncManager->mSyncAlgoPrefs = 3; | 2000 | mSyncManager->mSyncAlgoPrefs = 3; |
1957 | mSyncManager->mWriteBackFile = false; | 2001 | mSyncManager->mWriteBackFile = false; |
1958 | mSyncManager->mWriteBackExistingOnly = false; | 2002 | mSyncManager->mWriteBackExistingOnly = false; |
1959 | mSyncManager->mShowSyncSummary = false; | 2003 | mSyncManager->mShowSyncSummary = false; |
1960 | syncCalendar( fn, 3 ); | 2004 | syncCalendar( fn, 3 ); |
1961 | Event * e = getLastSyncEvent(); | 2005 | Event * e = getLastSyncEvent(); |
1962 | if ( e ) | 2006 | if ( e ) |
1963 | deleteEvent ( e ); | 2007 | deleteEvent ( e ); |
1964 | updateView(); | 2008 | updateView(); |
1965 | return true; | 2009 | return true; |
1966 | } | 2010 | } |
1967 | 2011 | bool CalendarView::saveCalendars() | |
2012 | { | ||
2013 | QPtrList<KopiCalendarFile> calendars = KOPrefs::instance()->mCalendars; | ||
2014 | KopiCalendarFile * cal = calendars.first(); | ||
2015 | mCalendar->setDefaultCalendar( 1 ); | ||
2016 | mCalendar->setDefaultCalendarEnabledOnly(); | ||
2017 | saveCalendar( MainWindow::defaultFileName() ); | ||
2018 | cal = calendars.next(); | ||
2019 | while ( cal ) { | ||
2020 | if ( !cal->isReadOnly ) { | ||
2021 | mCalendar->setDefaultCalendar( cal->mCalNumber ); | ||
2022 | mCalendar->setDefaultCalendarEnabledOnly(); | ||
2023 | saveCalendar( cal->mFileName ); | ||
2024 | } | ||
2025 | cal = calendars.next(); | ||
2026 | } | ||
2027 | restoreCalendarSettings(); | ||
2028 | } | ||
1968 | bool CalendarView::saveCalendar( QString filename ) | 2029 | bool CalendarView::saveCalendar( QString filename ) |
1969 | { | 2030 | { |
1970 | 2031 | ||
1971 | // Store back all unsaved data into calendar object | 2032 | // Store back all unsaved data into calendar object |
1972 | // qDebug("file %s %d ", filename.latin1() , mViewManager->currentView() ); | 2033 | // qDebug("file %s %d ", filename.latin1() , mViewManager->currentView() ); |
1973 | if ( mViewManager->currentView() ) | 2034 | if ( mViewManager->currentView() ) |
1974 | mViewManager->currentView()->flushView(); | 2035 | mViewManager->currentView()->flushView(); |
1975 | 2036 | ||
1976 | 2037 | ||
1977 | QDateTime lfv = QDateTime::currentDateTime().addSecs( -2); | 2038 | QDateTime lfv = QDateTime::currentDateTime().addSecs( -2); |
1978 | mStorage->setSaveFormat( new ICalFormat() ); | 2039 | mStorage->setSaveFormat( new ICalFormat() ); |
1979 | mStorage->setFileName( filename ); | 2040 | mStorage->setFileName( filename ); |
1980 | bool success; | 2041 | bool success; |
1981 | success = mStorage->save(); | 2042 | success = mStorage->save(); |
1982 | if ( !success ) { | 2043 | if ( !success ) { |
1983 | return false; | 2044 | return false; |
1984 | } | 2045 | } |
1985 | if ( filename == MainWindow::defaultFileName() ) { | 2046 | if ( filename == MainWindow::defaultFileName() ) { |
1986 | setLoadedFileVersion( lfv ); | 2047 | setLoadedFileVersion( lfv ); |
1987 | watchSavedFile(); | 2048 | watchSavedFile(); |
1988 | } | 2049 | } |
1989 | return true; | 2050 | return true; |
1990 | } | 2051 | } |
1991 | 2052 | ||
diff --git a/korganizer/calendarview.h b/korganizer/calendarview.h index cdce072..0144ba4 100644 --- a/korganizer/calendarview.h +++ b/korganizer/calendarview.h | |||
@@ -23,52 +23,53 @@ | |||
23 | */ | 23 | */ |
24 | #ifndef CALENDARVIEW_H | 24 | #ifndef CALENDARVIEW_H |
25 | #define CALENDARVIEW_H | 25 | #define CALENDARVIEW_H |
26 | 26 | ||
27 | #include <qframe.h> | 27 | #include <qframe.h> |
28 | #include <qlayout.h> | 28 | #include <qlayout.h> |
29 | #include <qwidget.h> | 29 | #include <qwidget.h> |
30 | #include <qptrlist.h> | 30 | #include <qptrlist.h> |
31 | #include <qvbox.h> | 31 | #include <qvbox.h> |
32 | #include <qmap.h> | 32 | #include <qmap.h> |
33 | #ifndef DESKTOP_VERSION | 33 | #ifndef DESKTOP_VERSION |
34 | #include <qtopia/ir.h> | 34 | #include <qtopia/ir.h> |
35 | #else | 35 | #else |
36 | #define Ir char | 36 | #define Ir char |
37 | #endif | 37 | #endif |
38 | #include <libkcal/calendar.h> | 38 | #include <libkcal/calendar.h> |
39 | #include <libkcal/scheduler.h> | 39 | #include <libkcal/scheduler.h> |
40 | #include <libkcal/calendarresources.h> | 40 | #include <libkcal/calendarresources.h> |
41 | #include <libkcal/resourcecalendar.h> | 41 | #include <libkcal/resourcecalendar.h> |
42 | #include <KDGanttMinimizeSplitter.h> | 42 | #include <KDGanttMinimizeSplitter.h> |
43 | 43 | ||
44 | #include <korganizer/calendarviewbase.h> | 44 | #include <korganizer/calendarviewbase.h> |
45 | 45 | ||
46 | #include <ksyncmanager.h> | 46 | #include <ksyncmanager.h> |
47 | //#include <koprefs.h> | ||
47 | 48 | ||
48 | class QWidgetStack; | 49 | class QWidgetStack; |
49 | class QSplitter; | 50 | class QSplitter; |
50 | 51 | class KopiCalendarFile; | |
51 | class CalPrinter; | 52 | class CalPrinter; |
52 | class KOFilterView; | 53 | class KOFilterView; |
53 | class KOCalEditView; | 54 | class KOCalEditView; |
54 | class KOViewManager; | 55 | class KOViewManager; |
55 | class KODialogManager; | 56 | class KODialogManager; |
56 | class KOTodoView; | 57 | class KOTodoView; |
57 | class KDateNavigator; | 58 | class KDateNavigator; |
58 | class DateNavigatorContainer; | 59 | class DateNavigatorContainer; |
59 | class DateNavigator; | 60 | class DateNavigator; |
60 | class KOIncidenceEditor; | 61 | class KOIncidenceEditor; |
61 | class KDatePicker; | 62 | class KDatePicker; |
62 | class ResourceView; | 63 | class ResourceView; |
63 | class KOEventEditor; | 64 | class KOEventEditor; |
64 | class KOTodoEditor ; | 65 | class KOTodoEditor ; |
65 | class KOEventViewerDialog; | 66 | class KOEventViewerDialog; |
66 | class KOBeamPrefs; | 67 | class KOBeamPrefs; |
67 | class KSyncProfile; | 68 | class KSyncProfile; |
68 | class AlarmDialog; | 69 | class AlarmDialog; |
69 | class KCal::Attendee; | 70 | class KCal::Attendee; |
70 | 71 | ||
71 | namespace KCal { class FileStorage; } | 72 | namespace KCal { class FileStorage; } |
72 | 73 | ||
73 | using namespace KCal; | 74 | using namespace KCal; |
74 | 75 | ||
@@ -201,48 +202,52 @@ class CalendarView : public KOrg::CalendarViewBase, public KCal::Calendar::Obser | |||
201 | void showNextAlarms(); | 202 | void showNextAlarms(); |
202 | void showOpenError(); | 203 | void showOpenError(); |
203 | void watchSavedFile(); | 204 | void watchSavedFile(); |
204 | void recheckTimerAlarm(); | 205 | void recheckTimerAlarm(); |
205 | void checkNextTimerAlarm(); | 206 | void checkNextTimerAlarm(); |
206 | void addAlarm(const QDateTime &qdt, const QString ¬i ); | 207 | void addAlarm(const QDateTime &qdt, const QString ¬i ); |
207 | void addSuspendAlarm(const QDateTime &qdt, const QString ¬i ); | 208 | void addSuspendAlarm(const QDateTime &qdt, const QString ¬i ); |
208 | void removeAlarm(const QDateTime &qdt, const QString ¬i ); | 209 | void removeAlarm(const QDateTime &qdt, const QString ¬i ); |
209 | 210 | ||
210 | /** options dialog made a changed to the configuration. we catch this | 211 | /** options dialog made a changed to the configuration. we catch this |
211 | * and notify all widgets which need to update their configuration. */ | 212 | * and notify all widgets which need to update their configuration. */ |
212 | void updateConfig(); | 213 | void updateConfig(); |
213 | 214 | ||
214 | void insertBirthdays(const QString& uid, const QStringList& birthdayList, | 215 | void insertBirthdays(const QString& uid, const QStringList& birthdayList, |
215 | const QStringList& anniversaryList, const QStringList& realNameList, | 216 | const QStringList& anniversaryList, const QStringList& realNameList, |
216 | const QStringList& emailList, const QStringList& assembledNameList, | 217 | const QStringList& emailList, const QStringList& assembledNameList, |
217 | const QStringList& uidList); | 218 | const QStringList& uidList); |
218 | 219 | ||
219 | /** | 220 | /** |
220 | Load calendar from file \a filename. If \a merge is true, load | 221 | Load calendar from file \a filename. If \a merge is true, load |
221 | calendar into existing one, if it is false, clear calendar, before | 222 | calendar into existing one, if it is false, clear calendar, before |
222 | loading. Return true, if calendar could be successfully loaded. | 223 | loading. Return true, if calendar could be successfully loaded. |
223 | */ | 224 | */ |
224 | bool openCalendar(QString filename, bool merge=false); | 225 | bool openCalendar(QString filename, bool merge=false); |
226 | bool loadCalendars(); | ||
227 | bool saveCalendars(); | ||
228 | bool restoreCalendarSettings(); | ||
229 | bool addCalendar( KopiCalendarFile * ); | ||
225 | bool syncCalendar(QString filename,int mode = 0 ); | 230 | bool syncCalendar(QString filename,int mode = 0 ); |
226 | 231 | ||
227 | /** | 232 | /** |
228 | Save calendar data to file. Return true if calendar could be | 233 | Save calendar data to file. Return true if calendar could be |
229 | successfully saved. | 234 | successfully saved. |
230 | */ | 235 | */ |
231 | bool saveCalendar(QString filename); | 236 | bool saveCalendar(QString filename); |
232 | 237 | ||
233 | /** | 238 | /** |
234 | Close calendar. Clear calendar data and reset views to display an empty | 239 | Close calendar. Clear calendar data and reset views to display an empty |
235 | calendar. | 240 | calendar. |
236 | */ | 241 | */ |
237 | void closeCalendar(); | 242 | void closeCalendar(); |
238 | 243 | ||
239 | /** Archive old events of calendar */ | 244 | /** Archive old events of calendar */ |
240 | void archiveCalendar(); | 245 | void archiveCalendar(); |
241 | 246 | ||
242 | void showIncidence(); | 247 | void showIncidence(); |
243 | void editIncidence(); | 248 | void editIncidence(); |
244 | void editIncidenceDescription(); | 249 | void editIncidenceDescription(); |
245 | void deleteIncidence(); | 250 | void deleteIncidence(); |
246 | void cloneIncidence(); | 251 | void cloneIncidence(); |
247 | void moveIncidence(); | 252 | void moveIncidence(); |
248 | void beamIncidence(); | 253 | void beamIncidence(); |
diff --git a/korganizer/kofilterview.cpp b/korganizer/kofilterview.cpp index 2dd4567..29a4393 100644 --- a/korganizer/kofilterview.cpp +++ b/korganizer/kofilterview.cpp | |||
@@ -45,49 +45,49 @@ | |||
45 | class KONewCalPrefs : public QDialog | 45 | class KONewCalPrefs : public QDialog |
46 | { | 46 | { |
47 | public: | 47 | public: |
48 | KONewCalPrefs( QWidget *parent=0, const char *name=0 ) : | 48 | KONewCalPrefs( QWidget *parent=0, const char *name=0 ) : |
49 | QDialog( parent, name, true ) | 49 | QDialog( parent, name, true ) |
50 | { | 50 | { |
51 | setCaption( i18n("Add new Calendar") ); | 51 | setCaption( i18n("Add new Calendar") ); |
52 | QVBoxLayout* lay = new QVBoxLayout( this ); | 52 | QVBoxLayout* lay = new QVBoxLayout( this ); |
53 | lay->setSpacing( 3 ); | 53 | lay->setSpacing( 3 ); |
54 | lay->setMargin( 3 ); | 54 | lay->setMargin( 3 ); |
55 | QLabel * lab = new QLabel( i18n("<b>Name of new calendar:</b>"), this ); | 55 | QLabel * lab = new QLabel( i18n("<b>Name of new calendar:</b>"), this ); |
56 | lay->addWidget( lab ); | 56 | lay->addWidget( lab ); |
57 | nameE = new KLineEdit( this ); | 57 | nameE = new KLineEdit( this ); |
58 | lay->addWidget( nameE ); | 58 | lay->addWidget( nameE ); |
59 | lab = new QLabel( i18n("Local ical (*.ics) file:"), this ); | 59 | lab = new QLabel( i18n("Local ical (*.ics) file:"), this ); |
60 | lay->addWidget( lab ); | 60 | lay->addWidget( lab ); |
61 | url = new KURLRequester ( this ); | 61 | url = new KURLRequester ( this ); |
62 | lay->addWidget( url ); | 62 | lay->addWidget( url ); |
63 | QPushButton * ok = new QPushButton( i18n("OK"), this ); | 63 | QPushButton * ok = new QPushButton( i18n("OK"), this ); |
64 | lay->addWidget( ok ); | 64 | lay->addWidget( ok ); |
65 | QPushButton * cancel = new QPushButton( i18n("Cancel"), this ); | 65 | QPushButton * cancel = new QPushButton( i18n("Cancel"), this ); |
66 | lay->addWidget( cancel ); | 66 | lay->addWidget( cancel ); |
67 | connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) ); | 67 | connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) ); |
68 | connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) ); | 68 | connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) ); |
69 | resize( 200, 200 ); | 69 | //resize( 200, 200 ); |
70 | } | 70 | } |
71 | 71 | ||
72 | QString calName() { return nameE->text(); } | 72 | QString calName() { return nameE->text(); } |
73 | QString calFileName() { return url->url(); } | 73 | QString calFileName() { return url->url(); } |
74 | private: | 74 | private: |
75 | KLineEdit* nameE; | 75 | KLineEdit* nameE; |
76 | KURLRequester *url; | 76 | KURLRequester *url; |
77 | }; | 77 | }; |
78 | 78 | ||
79 | 79 | ||
80 | KOFilterView::KOFilterView(QPtrList<CalFilter> *filterList,QWidget* parent, | 80 | KOFilterView::KOFilterView(QPtrList<CalFilter> *filterList,QWidget* parent, |
81 | const char* name,WFlags fl ) | 81 | const char* name,WFlags fl ) |
82 | : KOFilterView_base(parent,name,fl) | 82 | : KOFilterView_base(parent,name,fl) |
83 | { | 83 | { |
84 | mFilters = filterList; | 84 | mFilters = filterList; |
85 | 85 | ||
86 | connect(mSelectionCombo,SIGNAL(activated(int)),SIGNAL(filterChanged())); | 86 | connect(mSelectionCombo,SIGNAL(activated(int)),SIGNAL(filterChanged())); |
87 | connect(mEnabledCheck,SIGNAL(clicked()),SIGNAL(filterChanged())); | 87 | connect(mEnabledCheck,SIGNAL(clicked()),SIGNAL(filterChanged())); |
88 | connect(mEditButton,SIGNAL(clicked()),SIGNAL(editFilters())); | 88 | connect(mEditButton,SIGNAL(clicked()),SIGNAL(editFilters())); |
89 | } | 89 | } |
90 | 90 | ||
91 | KOFilterView::~KOFilterView() | 91 | KOFilterView::~KOFilterView() |
92 | { | 92 | { |
93 | // no need to delete child widgets, Qt does it all for us | 93 | // no need to delete child widgets, Qt does it all for us |
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp index 95e1607..f05ada5 100644 --- a/korganizer/mainwindow.cpp +++ b/korganizer/mainwindow.cpp | |||
@@ -287,49 +287,49 @@ MainWindow::MainWindow( QWidget *parent, const char *name, QString msg) : | |||
287 | bool newFile = false; | 287 | bool newFile = false; |
288 | if( !QFile::exists( defaultFileName() ) ) { | 288 | if( !QFile::exists( defaultFileName() ) ) { |
289 | QFileInfo finfo ( defaultFileName() ); | 289 | QFileInfo finfo ( defaultFileName() ); |
290 | QString oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/Applications/korganizer/mycalendar.ics"); | 290 | QString oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/Applications/korganizer/mycalendar.ics"); |
291 | QString message = "You are starting KO/Pi for the\nfirst time after updating to a\nversion >= 1.9.1. The location of the\ndefault calendar file has changed.\nA mycalendar.ics file was detected\nat the old location.\nThis file will be loaded now\nand stored at the new location!\n(Config file location has changed, too!)\nPlease read menu Help-What's New!\n"; | 291 | QString message = "You are starting KO/Pi for the\nfirst time after updating to a\nversion >= 1.9.1. The location of the\ndefault calendar file has changed.\nA mycalendar.ics file was detected\nat the old location.\nThis file will be loaded now\nand stored at the new location!\n(Config file location has changed, too!)\nPlease read menu Help-What's New!\n"; |
292 | finfo.setFile( oldFile ); | 292 | finfo.setFile( oldFile ); |
293 | if (finfo.exists() ) { | 293 | if (finfo.exists() ) { |
294 | KMessageBox::information( this, message); | 294 | KMessageBox::information( this, message); |
295 | mView->openCalendar( oldFile ); | 295 | mView->openCalendar( oldFile ); |
296 | qApp->processEvents(); | 296 | qApp->processEvents(); |
297 | } else { | 297 | } else { |
298 | oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/korganizer/mycalendar.ics"); | 298 | oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/korganizer/mycalendar.ics"); |
299 | finfo.setFile( oldFile ); | 299 | finfo.setFile( oldFile ); |
300 | if (finfo.exists() ) { | 300 | if (finfo.exists() ) { |
301 | KMessageBox::information( this, message); | 301 | KMessageBox::information( this, message); |
302 | mView->openCalendar( oldFile ); | 302 | mView->openCalendar( oldFile ); |
303 | qApp->processEvents(); | 303 | qApp->processEvents(); |
304 | } | 304 | } |
305 | } | 305 | } |
306 | mView->saveCalendar( defaultFileName() ); | 306 | mView->saveCalendar( defaultFileName() ); |
307 | newFile = true; | 307 | newFile = true; |
308 | } | 308 | } |
309 | 309 | ||
310 | QTime neededSaveTime = QDateTime::currentDateTime().time(); | 310 | QTime neededSaveTime = QDateTime::currentDateTime().time(); |
311 | mView->openCalendar( defaultFileName() ); | 311 | mView->loadCalendars(); |
312 | int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() ); | 312 | int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() ); |
313 | qDebug("KO: Calendar loading time: %d ms",msNeeded ); | 313 | qDebug("KO: Calendar loading time: %d ms",msNeeded ); |
314 | 314 | ||
315 | if ( KPimGlobalPrefs::instance()->mPreferredLanguage != KOPrefs::instance()->mOldLoadedLanguage ) { | 315 | if ( KPimGlobalPrefs::instance()->mPreferredLanguage != KOPrefs::instance()->mOldLoadedLanguage ) { |
316 | KOPrefs::instance()->setAllDefaults(); | 316 | KOPrefs::instance()->setAllDefaults(); |
317 | int count = mView->addCategories(); | 317 | int count = mView->addCategories(); |
318 | } | 318 | } |
319 | processIncidenceSelection( 0 ); | 319 | processIncidenceSelection( 0 ); |
320 | connect( mView, SIGNAL( incidenceSelected( Incidence * ) ), | 320 | connect( mView, SIGNAL( incidenceSelected( Incidence * ) ), |
321 | SLOT( processIncidenceSelection( Incidence * ) ) ); | 321 | SLOT( processIncidenceSelection( Incidence * ) ) ); |
322 | connect( mView, SIGNAL( modifiedChanged( bool ) ), | 322 | connect( mView, SIGNAL( modifiedChanged( bool ) ), |
323 | SLOT( slotModifiedChanged( bool ) ) ); | 323 | SLOT( slotModifiedChanged( bool ) ) ); |
324 | 324 | ||
325 | 325 | ||
326 | connect( mView, SIGNAL( tempDisableBR(bool) ), | 326 | connect( mView, SIGNAL( tempDisableBR(bool) ), |
327 | SLOT( disableBR(bool) ) ); | 327 | SLOT( disableBR(bool) ) ); |
328 | connect( &mSaveTimer, SIGNAL( timeout() ), SLOT( save() ) ); | 328 | connect( &mSaveTimer, SIGNAL( timeout() ), SLOT( save() ) ); |
329 | mView->setModified( false ); | 329 | mView->setModified( false ); |
330 | mBlockAtStartup = false; | 330 | mBlockAtStartup = false; |
331 | mView->setModified( false ); | 331 | mView->setModified( false ); |
332 | setCentralWidget( mView ); | 332 | setCentralWidget( mView ); |
333 | globalFlagBlockStartup = 0; | 333 | globalFlagBlockStartup = 0; |
334 | mView->show(); | 334 | mView->show(); |
335 | delete splash; | 335 | delete splash; |
@@ -1836,49 +1836,49 @@ void MainWindow::save() | |||
1836 | if ( KPimGlobalPrefs::instance()->mBackupUseDefaultDir) | 1836 | if ( KPimGlobalPrefs::instance()->mBackupUseDefaultDir) |
1837 | bupDir = KGlobalSettings::backupDataDir(); | 1837 | bupDir = KGlobalSettings::backupDataDir(); |
1838 | int retval = KApplication::createBackup( defaultFileName(), bupDir, KPimGlobalPrefs::instance()->mBackupNumbers ); | 1838 | int retval = KApplication::createBackup( defaultFileName(), bupDir, KPimGlobalPrefs::instance()->mBackupNumbers ); |
1839 | if ( retval == 0 ) { | 1839 | if ( retval == 0 ) { |
1840 | qDebug("KO: Backup cancelled. Will try again tomorrow "); | 1840 | qDebug("KO: Backup cancelled. Will try again tomorrow "); |
1841 | // retval == 0 : backup skipped for today, try again tomorrow | 1841 | // retval == 0 : backup skipped for today, try again tomorrow |
1842 | KOPrefs::instance()->mLastBackupDate = daysTo- KPimGlobalPrefs::instance()->mBackupDayCount+1; | 1842 | KOPrefs::instance()->mLastBackupDate = daysTo- KPimGlobalPrefs::instance()->mBackupDayCount+1; |
1843 | } else if ( retval == 1 ){ | 1843 | } else if ( retval == 1 ){ |
1844 | qDebug("KO: Backup created."); | 1844 | qDebug("KO: Backup created."); |
1845 | // backup ok | 1845 | // backup ok |
1846 | KOPrefs::instance()->mLastBackupDate = daysTo; | 1846 | KOPrefs::instance()->mLastBackupDate = daysTo; |
1847 | 1847 | ||
1848 | } else if ( retval == 2 ){ | 1848 | } else if ( retval == 2 ){ |
1849 | qDebug("KO: Backup globally cancelled."); | 1849 | qDebug("KO: Backup globally cancelled."); |
1850 | // backup globally cancelled | 1850 | // backup globally cancelled |
1851 | KPimGlobalPrefs::instance()->mBackupEnabled = false; | 1851 | KPimGlobalPrefs::instance()->mBackupEnabled = false; |
1852 | } | 1852 | } |
1853 | // retval == 3: do nothing, try again later | 1853 | // retval == 3: do nothing, try again later |
1854 | } | 1854 | } |
1855 | ; // KPimGlobalPrefs::instance()->mLastBackupDate | 1855 | ; // KPimGlobalPrefs::instance()->mLastBackupDate |
1856 | } | 1856 | } |
1857 | QTime neededSaveTime = QDateTime::currentDateTime().time(); | 1857 | QTime neededSaveTime = QDateTime::currentDateTime().time(); |
1858 | setCaption(i18n("KO/Pi:Saving Data to File ..." )); | 1858 | setCaption(i18n("KO/Pi:Saving Data to File ..." )); |
1859 | qDebug("KO: Start saving data to file!"); | 1859 | qDebug("KO: Start saving data to file!"); |
1860 | mView->saveCalendar( defaultFileName() ); | 1860 | mView->saveCalendars(); |
1861 | mCalendarModifiedFlag = false; | 1861 | mCalendarModifiedFlag = false; |
1862 | int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() ); | 1862 | int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() ); |
1863 | qDebug("KO: Needed %d ms for saving.",msNeeded ); | 1863 | qDebug("KO: Needed %d ms for saving.",msNeeded ); |
1864 | QString savemes; | 1864 | QString savemes; |
1865 | savemes.sprintf(i18n("KO/Pi:File Saved. Needed %d sec, %d ms"),(msNeeded/1000)%100,msNeeded%1000 ); | 1865 | savemes.sprintf(i18n("KO/Pi:File Saved. Needed %d sec, %d ms"),(msNeeded/1000)%100,msNeeded%1000 ); |
1866 | setCaption(savemes); | 1866 | setCaption(savemes); |
1867 | } else | 1867 | } else |
1868 | setCaption(i18n("Saving cancelled!")); | 1868 | setCaption(i18n("Saving cancelled!")); |
1869 | mSyncManager->setBlockSave( false ); | 1869 | mSyncManager->setBlockSave( false ); |
1870 | } | 1870 | } |
1871 | 1871 | ||
1872 | void MainWindow::keyReleaseEvent ( QKeyEvent * e) | 1872 | void MainWindow::keyReleaseEvent ( QKeyEvent * e) |
1873 | { | 1873 | { |
1874 | if ( !e->isAutoRepeat() ) { | 1874 | if ( !e->isAutoRepeat() ) { |
1875 | mFlagKeyPressed = false; | 1875 | mFlagKeyPressed = false; |
1876 | } | 1876 | } |
1877 | } | 1877 | } |
1878 | void MainWindow::keyPressEvent ( QKeyEvent * e ) | 1878 | void MainWindow::keyPressEvent ( QKeyEvent * e ) |
1879 | { | 1879 | { |
1880 | qApp->processEvents(); | 1880 | qApp->processEvents(); |
1881 | if ( e->isAutoRepeat() && !mFlagKeyPressed ) { | 1881 | if ( e->isAutoRepeat() && !mFlagKeyPressed ) { |
1882 | e->ignore(); | 1882 | e->ignore(); |
1883 | // qDebug(" ignore %d",e->isAutoRepeat() ); | 1883 | // qDebug(" ignore %d",e->isAutoRepeat() ); |
1884 | return; | 1884 | return; |