-rw-r--r-- | korganizer/calendarview.cpp | 2 | ||||
-rw-r--r-- | korganizer/kofilterview.h | 1 | ||||
-rw-r--r-- | korganizer/komonthview.cpp | 8 | ||||
-rw-r--r-- | korganizer/komonthview.h | 3 | ||||
-rw-r--r-- | korganizer/mainwindow.cpp | 9 |
5 files changed, 16 insertions, 7 deletions
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp index 678143d..5c88abd 100644 --- a/korganizer/calendarview.cpp +++ b/korganizer/calendarview.cpp | |||
@@ -1907,385 +1907,385 @@ bool CalendarView::importQtopia( const QString &categories, | |||
1907 | 1907 | ||
1908 | void CalendarView::setSyncEventsReadOnly() | 1908 | void CalendarView::setSyncEventsReadOnly() |
1909 | { | 1909 | { |
1910 | mCalendar->setSyncEventsReadOnly(); | 1910 | mCalendar->setSyncEventsReadOnly(); |
1911 | } | 1911 | } |
1912 | 1912 | ||
1913 | bool CalendarView::loadCalendars() | 1913 | bool CalendarView::loadCalendars() |
1914 | { | 1914 | { |
1915 | QPtrList<KopiCalendarFile> calendars = KOPrefs::instance()->mCalendars; | 1915 | QPtrList<KopiCalendarFile> calendars = KOPrefs::instance()->mCalendars; |
1916 | KopiCalendarFile * cal = calendars.first(); | 1916 | KopiCalendarFile * cal = calendars.first(); |
1917 | mCalendar->setDefaultCalendar( 1 ); | 1917 | mCalendar->setDefaultCalendar( 1 ); |
1918 | openCalendar( MainWindow::defaultFileName(), false ); | 1918 | openCalendar( MainWindow::defaultFileName(), false ); |
1919 | cal = calendars.next(); | 1919 | cal = calendars.next(); |
1920 | while ( cal ) { | 1920 | while ( cal ) { |
1921 | addCalendar( cal ); | 1921 | addCalendar( cal ); |
1922 | cal = calendars.next(); | 1922 | cal = calendars.next(); |
1923 | } | 1923 | } |
1924 | restoreCalendarSettings(); | 1924 | restoreCalendarSettings(); |
1925 | return true; | 1925 | return true; |
1926 | } | 1926 | } |
1927 | bool CalendarView::restoreCalendarSettings() | 1927 | bool CalendarView::restoreCalendarSettings() |
1928 | { | 1928 | { |
1929 | QPtrList<KopiCalendarFile> calendars = KOPrefs::instance()->mCalendars; | 1929 | QPtrList<KopiCalendarFile> calendars = KOPrefs::instance()->mCalendars; |
1930 | KopiCalendarFile * cal = calendars.first(); | 1930 | KopiCalendarFile * cal = calendars.first(); |
1931 | while ( cal ) { | 1931 | while ( cal ) { |
1932 | mCalendar->setCalendarEnabled( cal->mCalNumber,cal->isEnabled ); | 1932 | mCalendar->setCalendarEnabled( cal->mCalNumber,cal->isEnabled ); |
1933 | mCalendar->setAlarmEnabled( cal->mCalNumber, cal->isAlarmEnabled ); | 1933 | mCalendar->setAlarmEnabled( cal->mCalNumber, cal->isAlarmEnabled ); |
1934 | mCalendar->setReadOnly( cal->mCalNumber, cal->isReadOnly ); | 1934 | mCalendar->setReadOnly( cal->mCalNumber, cal->isReadOnly ); |
1935 | if ( cal->isStandard ) | 1935 | if ( cal->isStandard ) |
1936 | mCalendar->setDefaultCalendar( cal->mCalNumber ); | 1936 | mCalendar->setDefaultCalendar( cal->mCalNumber ); |
1937 | cal = calendars.next(); | 1937 | cal = calendars.next(); |
1938 | } | 1938 | } |
1939 | setSyncEventsReadOnly(); | 1939 | setSyncEventsReadOnly(); |
1940 | mCalendar->reInitAlarmSettings(); | 1940 | mCalendar->reInitAlarmSettings(); |
1941 | updateUnmanagedViews(); | 1941 | updateUnmanagedViews(); |
1942 | updateView(); | 1942 | updateView(); |
1943 | return true; | 1943 | return true; |
1944 | } | 1944 | } |
1945 | void CalendarView::addCalendarId( int id ) | 1945 | void CalendarView::addCalendarId( int id ) |
1946 | { | 1946 | { |
1947 | KopiCalendarFile * cal = KOPrefs::instance()->getCalendar( id ); | 1947 | KopiCalendarFile * cal = KOPrefs::instance()->getCalendar( id ); |
1948 | if ( cal ) | 1948 | if ( cal ) |
1949 | addCalendar( cal ); | 1949 | addCalendar( cal ); |
1950 | } | 1950 | } |
1951 | bool CalendarView::addCalendar( KopiCalendarFile * cal ) | 1951 | bool CalendarView::addCalendar( KopiCalendarFile * cal ) |
1952 | { | 1952 | { |
1953 | cal->mErrorOnLoad = false; | 1953 | cal->mErrorOnLoad = false; |
1954 | if ( mCalendar->addCalendarFile( cal->mFileName, cal->mCalNumber )) { | 1954 | if ( mCalendar->addCalendarFile( cal->mFileName, cal->mCalNumber )) { |
1955 | cal->mLoadDt = QDateTime::currentDateTime(); | 1955 | cal->mLoadDt = QDateTime::currentDateTime(); |
1956 | return true; | 1956 | return true; |
1957 | } | 1957 | } |
1958 | qDebug("KO: Error adding calendar file %s ",cal->mFileName.latin1() ); | 1958 | qDebug("KO: Error adding calendar file %s ",cal->mFileName.latin1() ); |
1959 | cal->mErrorOnLoad = true; | 1959 | cal->mErrorOnLoad = true; |
1960 | return false; | 1960 | return false; |
1961 | } | 1961 | } |
1962 | bool CalendarView::openCalendar(QString filename, bool merge) | 1962 | bool CalendarView::openCalendar(QString filename, bool merge) |
1963 | { | 1963 | { |
1964 | 1964 | ||
1965 | if (filename.isEmpty()) { | 1965 | if (filename.isEmpty()) { |
1966 | return false; | 1966 | return false; |
1967 | } | 1967 | } |
1968 | 1968 | ||
1969 | if (!QFile::exists(filename)) { | 1969 | if (!QFile::exists(filename)) { |
1970 | KMessageBox::error(this,i18n("File does not exist:\n '%1'.").arg(filename)); | 1970 | KMessageBox::error(this,i18n("File does not exist:\n '%1'.").arg(filename)); |
1971 | return false; | 1971 | return false; |
1972 | } | 1972 | } |
1973 | 1973 | ||
1974 | globalFlagBlockAgenda = 1; | 1974 | globalFlagBlockAgenda = 1; |
1975 | clearAllViews(); | 1975 | clearAllViews(); |
1976 | if (!merge) { | 1976 | if (!merge) { |
1977 | mViewManager->setDocumentId( filename ); | 1977 | mViewManager->setDocumentId( filename ); |
1978 | mCalendar->close(); | 1978 | mCalendar->close(); |
1979 | } | 1979 | } |
1980 | mStorage->setFileName( filename ); | 1980 | mStorage->setFileName( filename ); |
1981 | 1981 | ||
1982 | if ( mStorage->load() ) { | 1982 | if ( mStorage->load() ) { |
1983 | if ( merge ) ;//setModified( true ); | 1983 | if ( merge ) ;//setModified( true ); |
1984 | else { | 1984 | else { |
1985 | //setModified( true ); | 1985 | //setModified( true ); |
1986 | mViewManager->setDocumentId( filename ); | 1986 | mViewManager->setDocumentId( filename ); |
1987 | mDialogManager->setDocumentId( filename ); | 1987 | mDialogManager->setDocumentId( filename ); |
1988 | mTodoList->setDocumentId( filename ); | 1988 | mTodoList->setDocumentId( filename ); |
1989 | } | 1989 | } |
1990 | globalFlagBlockAgenda = 2; | 1990 | globalFlagBlockAgenda = 2; |
1991 | // if ( getLastSyncEvent() ) | 1991 | // if ( getLastSyncEvent() ) |
1992 | // getLastSyncEvent()->setReadOnly( true ); | 1992 | // getLastSyncEvent()->setReadOnly( true ); |
1993 | mCalendar->reInitAlarmSettings(); | 1993 | mCalendar->reInitAlarmSettings(); |
1994 | setSyncEventsReadOnly(); | 1994 | setSyncEventsReadOnly(); |
1995 | updateUnmanagedViews(); | 1995 | updateUnmanagedViews(); |
1996 | updateView(); | 1996 | updateView(); |
1997 | if ( filename != MainWindow::defaultFileName() ) { | 1997 | if ( filename != MainWindow::defaultFileName() ) { |
1998 | saveCalendar( MainWindow::defaultFileName() ); | 1998 | saveCalendar( MainWindow::defaultFileName() ); |
1999 | } else { | 1999 | } else { |
2000 | QFileInfo finf ( MainWindow::defaultFileName()); | 2000 | QFileInfo finf ( MainWindow::defaultFileName()); |
2001 | if ( finf.exists() ) { | 2001 | if ( finf.exists() ) { |
2002 | setLoadedFileVersion( finf.lastModified () ); | 2002 | setLoadedFileVersion( finf.lastModified () ); |
2003 | } | 2003 | } |
2004 | } | 2004 | } |
2005 | return true; | 2005 | return true; |
2006 | } else { | 2006 | } else { |
2007 | // while failing to load, the calendar object could | 2007 | // while failing to load, the calendar object could |
2008 | // have become partially populated. Clear it out. | 2008 | // have become partially populated. Clear it out. |
2009 | if ( !merge ) { | 2009 | if ( !merge ) { |
2010 | mCalendar->close(); | 2010 | mCalendar->close(); |
2011 | mViewManager->setDocumentId( filename ); | 2011 | mViewManager->setDocumentId( filename ); |
2012 | mDialogManager->setDocumentId( filename ); | 2012 | mDialogManager->setDocumentId( filename ); |
2013 | mTodoList->setDocumentId( filename ); | 2013 | mTodoList->setDocumentId( filename ); |
2014 | } | 2014 | } |
2015 | 2015 | ||
2016 | //KMessageBox::error(this,i18n("Couldn't load calendar\n '%1'.").arg(filename)); | 2016 | //KMessageBox::error(this,i18n("Couldn't load calendar\n '%1'.").arg(filename)); |
2017 | 2017 | ||
2018 | QTimer::singleShot ( 1, this, SLOT ( showOpenError() ) ); | 2018 | QTimer::singleShot ( 1, this, SLOT ( showOpenError() ) ); |
2019 | globalFlagBlockAgenda = 2; | 2019 | globalFlagBlockAgenda = 2; |
2020 | mCalendar->reInitAlarmSettings(); | 2020 | mCalendar->reInitAlarmSettings(); |
2021 | setSyncEventsReadOnly(); | 2021 | setSyncEventsReadOnly(); |
2022 | updateUnmanagedViews(); | 2022 | updateUnmanagedViews(); |
2023 | updateView(); | 2023 | updateView(); |
2024 | } | 2024 | } |
2025 | return false; | 2025 | return false; |
2026 | } | 2026 | } |
2027 | void CalendarView::showOpenError() | 2027 | void CalendarView::showOpenError() |
2028 | { | 2028 | { |
2029 | KMessageBox::error(this,i18n("Couldn't load calendar\n.")); | 2029 | KMessageBox::error(this,i18n("Couldn't load calendar\n.")); |
2030 | } | 2030 | } |
2031 | void CalendarView::setLoadedFileVersion(QDateTime dt) | 2031 | void CalendarView::setLoadedFileVersion(QDateTime dt) |
2032 | { | 2032 | { |
2033 | loadedFileVersion = dt; | 2033 | loadedFileVersion = dt; |
2034 | } | 2034 | } |
2035 | bool CalendarView::checkFileChanged(QString fn) | 2035 | bool CalendarView::checkFileChanged(QString fn) |
2036 | { | 2036 | { |
2037 | QFileInfo finf ( fn ); | 2037 | QFileInfo finf ( fn ); |
2038 | if ( !finf.exists() ) | 2038 | if ( !finf.exists() ) |
2039 | return true; | 2039 | return true; |
2040 | QDateTime dt = finf.lastModified (); | 2040 | QDateTime dt = finf.lastModified (); |
2041 | if ( dt <= loadedFileVersion ) | 2041 | if ( dt <= loadedFileVersion ) |
2042 | return false; | 2042 | return false; |
2043 | return true; | 2043 | return true; |
2044 | 2044 | ||
2045 | } | 2045 | } |
2046 | void CalendarView::watchSavedFile() | 2046 | void CalendarView::watchSavedFile() |
2047 | { | 2047 | { |
2048 | QFileInfo finf ( MainWindow::defaultFileName()); | 2048 | QFileInfo finf ( MainWindow::defaultFileName()); |
2049 | if ( !finf.exists() ) | 2049 | if ( !finf.exists() ) |
2050 | return; | 2050 | return; |
2051 | QDateTime dt = finf.lastModified (); | 2051 | QDateTime dt = finf.lastModified (); |
2052 | if ( dt < loadedFileVersion ) { | 2052 | if ( dt < loadedFileVersion ) { |
2053 | //qDebug("watch %s %s ", dt.toString().latin1(), loadedFileVersion.toString().latin1()); | 2053 | //qDebug("watch %s %s ", dt.toString().latin1(), loadedFileVersion.toString().latin1()); |
2054 | QTimer::singleShot( 1000 , this, SLOT ( watchSavedFile() ) ); | 2054 | QTimer::singleShot( 1000 , this, SLOT ( watchSavedFile() ) ); |
2055 | return; | 2055 | return; |
2056 | } | 2056 | } |
2057 | loadedFileVersion = dt; | 2057 | loadedFileVersion = dt; |
2058 | } | 2058 | } |
2059 | bool CalendarView::checkAllFileVersions() | 2059 | bool CalendarView::checkAllFileVersions() |
2060 | { | 2060 | { |
2061 | QPtrList<KopiCalendarFile> calendars = KOPrefs::instance()->mCalendars; | 2061 | QPtrList<KopiCalendarFile> calendars = KOPrefs::instance()->mCalendars; |
2062 | KopiCalendarFile * cal = calendars.first(); | 2062 | KopiCalendarFile * cal = calendars.first(); |
2063 | mCalendar->setDefaultCalendar( 1 ); | 2063 | mCalendar->setDefaultCalendar( 1 ); |
2064 | mCalendar->setDefaultCalendarEnabledOnly(); | 2064 | mCalendar->setDefaultCalendarEnabledOnly(); |
2065 | if ( !cal->isReadOnly && !cal->mErrorOnLoad ) { | 2065 | if ( !cal->isReadOnly && !cal->mErrorOnLoad ) { |
2066 | if ( !checkFileVersion(MainWindow::defaultFileName())) { | 2066 | if ( !checkFileVersion(MainWindow::defaultFileName())) { |
2067 | restoreCalendarSettings(); | 2067 | restoreCalendarSettings(); |
2068 | return false; | 2068 | return false; |
2069 | } | 2069 | } |
2070 | } | 2070 | } |
2071 | cal = calendars.next(); | 2071 | cal = calendars.next(); |
2072 | QDateTime storeTemp = loadedFileVersion; | 2072 | QDateTime storeTemp = loadedFileVersion; |
2073 | while ( cal ) { | 2073 | while ( cal ) { |
2074 | if ( !cal->isReadOnly && !cal->mErrorOnLoad ) { | 2074 | if ( !cal->isReadOnly && !cal->mErrorOnLoad ) { |
2075 | mCalendar->setDefaultCalendar( cal->mCalNumber ); | 2075 | mCalendar->setDefaultCalendar( cal->mCalNumber ); |
2076 | mCalendar->setDefaultCalendarEnabledOnly(); | 2076 | mCalendar->setDefaultCalendarEnabledOnly(); |
2077 | loadedFileVersion = cal->mLoadDt.addSecs( 15 ); | 2077 | loadedFileVersion = cal->mLoadDt.addSecs( 15 ); |
2078 | if ( !checkFileVersion(cal->mFileName )) { | 2078 | if ( !checkFileVersion(cal->mFileName )) { |
2079 | loadedFileVersion = storeTemp; | 2079 | loadedFileVersion = storeTemp; |
2080 | restoreCalendarSettings(); | 2080 | restoreCalendarSettings(); |
2081 | return false; | 2081 | return false; |
2082 | } | 2082 | } |
2083 | } | 2083 | } |
2084 | cal = calendars.next(); | 2084 | cal = calendars.next(); |
2085 | } | 2085 | } |
2086 | loadedFileVersion = storeTemp; | 2086 | loadedFileVersion = storeTemp; |
2087 | return true; | 2087 | return true; |
2088 | } | 2088 | } |
2089 | bool CalendarView::checkFileVersion(QString fn) | 2089 | bool CalendarView::checkFileVersion(QString fn) |
2090 | { | 2090 | { |
2091 | QFileInfo finf ( fn ); | 2091 | QFileInfo finf ( fn ); |
2092 | if ( !finf.exists() ) | 2092 | if ( !finf.exists() ) |
2093 | return true; | 2093 | return true; |
2094 | QDateTime dt = finf.lastModified (); | 2094 | QDateTime dt = finf.lastModified (); |
2095 | qDebug("loaded file version %s %s", fn.latin1(), loadedFileVersion.toString().latin1()); | 2095 | qDebug("loaded file version %s %s", fn.latin1(), loadedFileVersion.toString().latin1()); |
2096 | qDebug("file on disk version %s %s", fn.latin1(),dt.toString().latin1()); | 2096 | qDebug("file on disk version %s %s", fn.latin1(),dt.toString().latin1()); |
2097 | if ( dt <= loadedFileVersion ) | 2097 | if ( dt <= loadedFileVersion ) |
2098 | return true; | 2098 | return true; |
2099 | int km = KMessageBox::warningYesNoCancel(this, i18n("\nThe file\n%1\n on disk has changed!\nFile size: %2 bytes.\nLast modified: %3\nDo you want to:\n\n - Save and overwrite file?\n - Sync with file, then save?\n - Cancel without saving? \n").arg(fn).arg( QString::number( finf.size())).arg( KGlobal::locale()->formatDateTime(finf.lastModified (), true, true)) , | 2099 | int km = KMessageBox::warningYesNoCancel(this, i18n("\nThe file\n%1\non disk has changed!\nFile size: %2 bytes.\nLast modified: %3\nDo you want to:\n\n - Save and overwrite file?\n - Sync with file, then save?\n - Cancel without saving? \n").arg(KGlobal::formatMessage(fn,0)).arg( QString::number( finf.size())).arg( KGlobal::locale()->formatDateTime(finf.lastModified (), true, true)) , |
2100 | i18n("KO/Pi Warning"),i18n("Overwrite"), | 2100 | i18n("KO/Pi Warning"),i18n("Overwrite"), |
2101 | i18n("Sync+save")); | 2101 | i18n("Sync+save")); |
2102 | 2102 | ||
2103 | if ( km == KMessageBox::Cancel ) | 2103 | if ( km == KMessageBox::Cancel ) |
2104 | return false; | 2104 | return false; |
2105 | if ( km == KMessageBox::Yes ) | 2105 | if ( km == KMessageBox::Yes ) |
2106 | return true; | 2106 | return true; |
2107 | 2107 | ||
2108 | setSyncDevice("deleteaftersync" ); | 2108 | setSyncDevice("deleteaftersync" ); |
2109 | mSyncManager->mAskForPreferences = true; | 2109 | mSyncManager->mAskForPreferences = true; |
2110 | mSyncManager->mSyncAlgoPrefs = 3; | 2110 | mSyncManager->mSyncAlgoPrefs = 3; |
2111 | mSyncManager->mWriteBackFile = false; | 2111 | mSyncManager->mWriteBackFile = false; |
2112 | mSyncManager->mWriteBackExistingOnly = false; | 2112 | mSyncManager->mWriteBackExistingOnly = false; |
2113 | mSyncManager->mShowSyncSummary = false; | 2113 | mSyncManager->mShowSyncSummary = false; |
2114 | syncCalendar( fn, 3 ); | 2114 | syncCalendar( fn, 3 ); |
2115 | Event * e = getLastSyncEvent(); | 2115 | Event * e = getLastSyncEvent(); |
2116 | if ( e ) | 2116 | if ( e ) |
2117 | mCalendar->deleteEvent( e ); | 2117 | mCalendar->deleteEvent( e ); |
2118 | return true; | 2118 | return true; |
2119 | } | 2119 | } |
2120 | bool CalendarView::saveCalendars() | 2120 | bool CalendarView::saveCalendars() |
2121 | { | 2121 | { |
2122 | QPtrList<KopiCalendarFile> calendars = KOPrefs::instance()->mCalendars; | 2122 | QPtrList<KopiCalendarFile> calendars = KOPrefs::instance()->mCalendars; |
2123 | KopiCalendarFile * cal = calendars.first(); | 2123 | KopiCalendarFile * cal = calendars.first(); |
2124 | mCalendar->setDefaultCalendar( 1 ); | 2124 | mCalendar->setDefaultCalendar( 1 ); |
2125 | mCalendar->setDefaultCalendarEnabledOnly(); | 2125 | mCalendar->setDefaultCalendarEnabledOnly(); |
2126 | saveCalendar( MainWindow::defaultFileName() ); | 2126 | saveCalendar( MainWindow::defaultFileName() ); |
2127 | cal = calendars.next(); | 2127 | cal = calendars.next(); |
2128 | while ( cal ) { | 2128 | while ( cal ) { |
2129 | if ( !cal->isReadOnly && !cal->mErrorOnLoad ) { | 2129 | if ( !cal->isReadOnly && !cal->mErrorOnLoad ) { |
2130 | mCalendar->setDefaultCalendar( cal->mCalNumber ); | 2130 | mCalendar->setDefaultCalendar( cal->mCalNumber ); |
2131 | mCalendar->setDefaultCalendarEnabledOnly(); | 2131 | mCalendar->setDefaultCalendarEnabledOnly(); |
2132 | if ( saveCalendar( cal->mFileName ) ) | 2132 | if ( saveCalendar( cal->mFileName ) ) |
2133 | cal->mLoadDt = QDateTime::currentDateTime(); | 2133 | cal->mLoadDt = QDateTime::currentDateTime(); |
2134 | } | 2134 | } |
2135 | cal = calendars.next(); | 2135 | cal = calendars.next(); |
2136 | } | 2136 | } |
2137 | restoreCalendarSettings(); | 2137 | restoreCalendarSettings(); |
2138 | return true; | 2138 | return true; |
2139 | } | 2139 | } |
2140 | bool CalendarView::saveCalendar( QString filename ) | 2140 | bool CalendarView::saveCalendar( QString filename ) |
2141 | { | 2141 | { |
2142 | 2142 | ||
2143 | // Store back all unsaved data into calendar object | 2143 | // Store back all unsaved data into calendar object |
2144 | // qDebug("file %s %d ", filename.latin1() , mViewManager->currentView() ); | 2144 | // qDebug("file %s %d ", filename.latin1() , mViewManager->currentView() ); |
2145 | if ( mViewManager->currentView() ) | 2145 | if ( mViewManager->currentView() ) |
2146 | mViewManager->currentView()->flushView(); | 2146 | mViewManager->currentView()->flushView(); |
2147 | 2147 | ||
2148 | 2148 | ||
2149 | QDateTime lfv = QDateTime::currentDateTime().addSecs( -2); | 2149 | QDateTime lfv = QDateTime::currentDateTime().addSecs( -2); |
2150 | mStorage->setSaveFormat( new ICalFormat() ); | 2150 | mStorage->setSaveFormat( new ICalFormat() ); |
2151 | mStorage->setFileName( filename ); | 2151 | mStorage->setFileName( filename ); |
2152 | bool success; | 2152 | bool success; |
2153 | success = mStorage->save(); | 2153 | success = mStorage->save(); |
2154 | if ( !success ) { | 2154 | if ( !success ) { |
2155 | return false; | 2155 | return false; |
2156 | } | 2156 | } |
2157 | if ( filename == MainWindow::defaultFileName() ) { | 2157 | if ( filename == MainWindow::defaultFileName() ) { |
2158 | setLoadedFileVersion( lfv ); | 2158 | setLoadedFileVersion( lfv ); |
2159 | watchSavedFile(); | 2159 | watchSavedFile(); |
2160 | } | 2160 | } |
2161 | return true; | 2161 | return true; |
2162 | } | 2162 | } |
2163 | 2163 | ||
2164 | void CalendarView::closeCalendar() | 2164 | void CalendarView::closeCalendar() |
2165 | { | 2165 | { |
2166 | 2166 | ||
2167 | // child windows no longer valid | 2167 | // child windows no longer valid |
2168 | clearAllViews(); | 2168 | clearAllViews(); |
2169 | emit closingDown(); | 2169 | emit closingDown(); |
2170 | 2170 | ||
2171 | mCalendar->close(); | 2171 | mCalendar->close(); |
2172 | setModified(false); | 2172 | setModified(false); |
2173 | updateView(); | 2173 | updateView(); |
2174 | } | 2174 | } |
2175 | 2175 | ||
2176 | void CalendarView::archiveCalendar() | 2176 | void CalendarView::archiveCalendar() |
2177 | { | 2177 | { |
2178 | mDialogManager->showArchiveDialog(); | 2178 | mDialogManager->showArchiveDialog(); |
2179 | } | 2179 | } |
2180 | 2180 | ||
2181 | 2181 | ||
2182 | void CalendarView::readSettings() | 2182 | void CalendarView::readSettings() |
2183 | { | 2183 | { |
2184 | 2184 | ||
2185 | 2185 | ||
2186 | // mViewManager->showAgendaView(); | 2186 | // mViewManager->showAgendaView(); |
2187 | QString str; | 2187 | QString str; |
2188 | //qDebug("CalendarView::readSettings() "); | 2188 | //qDebug("CalendarView::readSettings() "); |
2189 | // read settings from the KConfig, supplying reasonable | 2189 | // read settings from the KConfig, supplying reasonable |
2190 | // defaults where none are to be found | 2190 | // defaults where none are to be found |
2191 | KConfig *config = KOGlobals::config(); | 2191 | KConfig *config = KOGlobals::config(); |
2192 | #ifndef KORG_NOSPLITTER | 2192 | #ifndef KORG_NOSPLITTER |
2193 | config->setGroup("KOrganizer Geometry"); | 2193 | config->setGroup("KOrganizer Geometry"); |
2194 | 2194 | ||
2195 | QValueList<int> sizes = config->readIntListEntry("Separator1"); | 2195 | QValueList<int> sizes = config->readIntListEntry("Separator1"); |
2196 | if (sizes.count() != 2) { | 2196 | if (sizes.count() != 2) { |
2197 | sizes << mDateNavigator->minimumSizeHint().width(); | 2197 | sizes << mDateNavigator->minimumSizeHint().width(); |
2198 | sizes << 300; | 2198 | sizes << 300; |
2199 | } | 2199 | } |
2200 | mPanner->setSizes(sizes); | 2200 | mPanner->setSizes(sizes); |
2201 | 2201 | ||
2202 | sizes = config->readIntListEntry("Separator2"); | 2202 | sizes = config->readIntListEntry("Separator2"); |
2203 | if ( ( mResourceView && sizes.count() == 4 ) || | 2203 | if ( ( mResourceView && sizes.count() == 4 ) || |
2204 | ( !mResourceView && sizes.count() == 3 ) ) { | 2204 | ( !mResourceView && sizes.count() == 3 ) ) { |
2205 | mLeftSplitter->setSizes(sizes); | 2205 | mLeftSplitter->setSizes(sizes); |
2206 | } | 2206 | } |
2207 | #endif | 2207 | #endif |
2208 | globalFlagBlockAgenda = 1; | 2208 | globalFlagBlockAgenda = 1; |
2209 | mViewManager->showAgendaView(); | 2209 | mViewManager->showAgendaView(); |
2210 | //mViewManager->readSettings( config ); | 2210 | //mViewManager->readSettings( config ); |
2211 | mTodoList->restoreLayout(config,QString("Todo Layout")); | 2211 | mTodoList->restoreLayout(config,QString("Todo Layout")); |
2212 | readFilterSettings(config); | 2212 | readFilterSettings(config); |
2213 | 2213 | ||
2214 | #ifdef DESKTOP_VERSION | 2214 | #ifdef DESKTOP_VERSION |
2215 | config->setGroup("WidgetLayout"); | 2215 | config->setGroup("WidgetLayout"); |
2216 | QStringList list; | 2216 | QStringList list; |
2217 | list = config->readListEntry("MainLayout"); | 2217 | list = config->readListEntry("MainLayout"); |
2218 | int x,y,w,h; | 2218 | int x,y,w,h; |
2219 | if ( ! list.isEmpty() ) { | 2219 | if ( ! list.isEmpty() ) { |
2220 | x = list[0].toInt(); | 2220 | x = list[0].toInt(); |
2221 | y = list[1].toInt(); | 2221 | y = list[1].toInt(); |
2222 | w = list[2].toInt(); | 2222 | w = list[2].toInt(); |
2223 | h = list[3].toInt(); | 2223 | h = list[3].toInt(); |
2224 | KApplication::testCoords( &x,&y,&w,&h ); | 2224 | KApplication::testCoords( &x,&y,&w,&h ); |
2225 | topLevelWidget()->setGeometry(x,y,w,h); | 2225 | topLevelWidget()->setGeometry(x,y,w,h); |
2226 | 2226 | ||
2227 | } else { | 2227 | } else { |
2228 | topLevelWidget()->setGeometry( 40 ,40 , 640, 440); | 2228 | topLevelWidget()->setGeometry( 40 ,40 , 640, 440); |
2229 | } | 2229 | } |
2230 | list = config->readListEntry("EditEventLayout"); | 2230 | list = config->readListEntry("EditEventLayout"); |
2231 | if ( ! list.isEmpty() ) { | 2231 | if ( ! list.isEmpty() ) { |
2232 | x = list[0].toInt(); | 2232 | x = list[0].toInt(); |
2233 | y = list[1].toInt(); | 2233 | y = list[1].toInt(); |
2234 | w = list[2].toInt(); | 2234 | w = list[2].toInt(); |
2235 | h = list[3].toInt(); | 2235 | h = list[3].toInt(); |
2236 | KApplication::testCoords( &x,&y,&w,&h ); | 2236 | KApplication::testCoords( &x,&y,&w,&h ); |
2237 | mEventEditor->setGeometry(x,y,w,h); | 2237 | mEventEditor->setGeometry(x,y,w,h); |
2238 | 2238 | ||
2239 | } | 2239 | } |
2240 | list = config->readListEntry("EditTodoLayout"); | 2240 | list = config->readListEntry("EditTodoLayout"); |
2241 | if ( ! list.isEmpty() ) { | 2241 | if ( ! list.isEmpty() ) { |
2242 | x = list[0].toInt(); | 2242 | x = list[0].toInt(); |
2243 | y = list[1].toInt(); | 2243 | y = list[1].toInt(); |
2244 | w = list[2].toInt(); | 2244 | w = list[2].toInt(); |
2245 | h = list[3].toInt(); | 2245 | h = list[3].toInt(); |
2246 | KApplication::testCoords( &x,&y,&w,&h ); | 2246 | KApplication::testCoords( &x,&y,&w,&h ); |
2247 | mTodoEditor->setGeometry(x,y,w,h); | 2247 | mTodoEditor->setGeometry(x,y,w,h); |
2248 | 2248 | ||
2249 | } | 2249 | } |
2250 | list = config->readListEntry("ViewerLayout"); | 2250 | list = config->readListEntry("ViewerLayout"); |
2251 | if ( ! list.isEmpty() ) { | 2251 | if ( ! list.isEmpty() ) { |
2252 | x = list[0].toInt(); | 2252 | x = list[0].toInt(); |
2253 | y = list[1].toInt(); | 2253 | y = list[1].toInt(); |
2254 | w = list[2].toInt(); | 2254 | w = list[2].toInt(); |
2255 | h = list[3].toInt(); | 2255 | h = list[3].toInt(); |
2256 | KApplication::testCoords( &x,&y,&w,&h ); | 2256 | KApplication::testCoords( &x,&y,&w,&h ); |
2257 | getEventViewerDialog()->setGeometry(x,y,w,h); | 2257 | getEventViewerDialog()->setGeometry(x,y,w,h); |
2258 | } | 2258 | } |
2259 | #endif | 2259 | #endif |
2260 | config->setGroup( "Views" ); | 2260 | config->setGroup( "Views" ); |
2261 | int dateCount = config->readNumEntry( "ShownDatesCount", 7 ); | 2261 | int dateCount = config->readNumEntry( "ShownDatesCount", 7 ); |
2262 | 2262 | ||
2263 | QValueList<int> sizes = config->readIntListEntry("Left Splitter Frame"); | 2263 | QValueList<int> sizes = config->readIntListEntry("Left Splitter Frame"); |
2264 | 2264 | ||
2265 | int resetval = 0; | 2265 | int resetval = 0; |
2266 | int maxVal = 0; | 2266 | int maxVal = 0; |
2267 | if (sizes.count() != 3) { | 2267 | if (sizes.count() != 3) { |
2268 | if ( KOPrefs::instance()->mVerticalScreen ) { | 2268 | if ( KOPrefs::instance()->mVerticalScreen ) { |
2269 | resetval = mDateNavigator->sizeHint().width()+2; | 2269 | resetval = mDateNavigator->sizeHint().width()+2; |
2270 | } else { | 2270 | } else { |
2271 | resetval = mDateNavigator->sizeHint().height()+2; | 2271 | resetval = mDateNavigator->sizeHint().height()+2; |
2272 | } | 2272 | } |
2273 | } | 2273 | } |
2274 | if ( resetval ) { | 2274 | if ( resetval ) { |
2275 | sizes.clear(); | 2275 | sizes.clear(); |
2276 | if ( KOPrefs::instance()->mVerticalScreen ) { | 2276 | if ( KOPrefs::instance()->mVerticalScreen ) { |
2277 | maxVal = QApplication::desktop()->width() -10; | 2277 | maxVal = QApplication::desktop()->width() -10; |
2278 | } else { | 2278 | } else { |
2279 | maxVal = QApplication::desktop()->height()-10; | 2279 | maxVal = QApplication::desktop()->height()-10; |
2280 | } | 2280 | } |
2281 | sizes << resetval; | 2281 | sizes << resetval; |
2282 | if ( maxVal < resetval + resetval) | 2282 | if ( maxVal < resetval + resetval) |
2283 | resetval = maxVal - resetval; | 2283 | resetval = maxVal - resetval; |
2284 | sizes << resetval; | 2284 | sizes << resetval; |
2285 | sizes << 100; | 2285 | sizes << 100; |
2286 | } | 2286 | } |
2287 | mLeftFrame->setSizes(sizes); | 2287 | mLeftFrame->setSizes(sizes); |
2288 | sizes = config->readIntListEntry("Main Splitter Frame"); | 2288 | sizes = config->readIntListEntry("Main Splitter Frame"); |
2289 | resetval = 0; | 2289 | resetval = 0; |
2290 | maxVal = 0; | 2290 | maxVal = 0; |
2291 | if (sizes.count() != 2) { | 2291 | if (sizes.count() != 2) { |
diff --git a/korganizer/kofilterview.h b/korganizer/kofilterview.h index 874fc6a..4322299 100644 --- a/korganizer/kofilterview.h +++ b/korganizer/kofilterview.h | |||
@@ -1,219 +1,220 @@ | |||
1 | /* | 1 | /* |
2 | This file is part of KOrganizer. | 2 | This file is part of KOrganizer. |
3 | Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org> | 3 | Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org> |
4 | 4 | ||
5 | This program is free software; you can redistribute it and/or modify | 5 | This program is free software; you can redistribute it and/or modify |
6 | it under the terms of the GNU General Public License as published by | 6 | it under the terms of the GNU General Public License as published by |
7 | the Free Software Foundation; either version 2 of the License, or | 7 | the Free Software Foundation; either version 2 of the License, or |
8 | (at your option) any later version. | 8 | (at your option) any later version. |
9 | 9 | ||
10 | This program is distributed in the hope that it will be useful, | 10 | This program is distributed in the hope that it will be useful, |
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
13 | GNU General Public License for more details. | 13 | GNU General Public License for more details. |
14 | 14 | ||
15 | You should have received a copy of the GNU General Public License | 15 | You should have received a copy of the GNU General Public License |
16 | along with this program; if not, write to the Free Software | 16 | along with this program; if not, write to the Free Software |
17 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | 17 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
18 | 18 | ||
19 | As a special exception, permission is given to link this program | 19 | As a special exception, permission is given to link this program |
20 | with any edition of Qt, and distribute the resulting executable, | 20 | with any edition of Qt, and distribute the resulting executable, |
21 | without including the source code for Qt in the source distribution. | 21 | without including the source code for Qt in the source distribution. |
22 | */ | 22 | */ |
23 | #ifndef KOFILTERVIEW_H | 23 | #ifndef KOFILTERVIEW_H |
24 | #define KOFILTERVIEW_H | 24 | #define KOFILTERVIEW_H |
25 | 25 | ||
26 | #include <qstring.h> | 26 | #include <qstring.h> |
27 | #include <qcheckbox.h> | 27 | #include <qcheckbox.h> |
28 | #include <qapplication.h> | ||
28 | #include <qradiobutton.h> | 29 | #include <qradiobutton.h> |
29 | #include <qlayout.h> | 30 | #include <qlayout.h> |
30 | #include <qlabel.h> | 31 | #include <qlabel.h> |
31 | #include <qdialog.h> | 32 | #include <qdialog.h> |
32 | #include <qscrollview.h> | 33 | #include <qscrollview.h> |
33 | #include <qpushbutton.h> | 34 | #include <qpushbutton.h> |
34 | #include <kconfig.h> | 35 | #include <kconfig.h> |
35 | #include "kofilterview_base.h" | 36 | #include "kofilterview_base.h" |
36 | 37 | ||
37 | #include <libkcal/calfilter.h> | 38 | #include <libkcal/calfilter.h> |
38 | 39 | ||
39 | #include <kurlrequester.h> | 40 | #include <kurlrequester.h> |
40 | #include <klineedit.h> | 41 | #include <klineedit.h> |
41 | #include <kglobal.h> | 42 | #include <kglobal.h> |
42 | #include <kmessagebox.h> | 43 | #include <kmessagebox.h> |
43 | 44 | ||
44 | class QGridLayout; | 45 | class QGridLayout; |
45 | 46 | ||
46 | using namespace KCal; | 47 | using namespace KCal; |
47 | 48 | ||
48 | class KONewCalPrefs : public QDialog | 49 | class KONewCalPrefs : public QDialog |
49 | { | 50 | { |
50 | Q_OBJECT | 51 | Q_OBJECT |
51 | public: | 52 | public: |
52 | KONewCalPrefs( QWidget *parent=0, const char *name=0 ) : | 53 | KONewCalPrefs( QWidget *parent=0, const char *name=0 ) : |
53 | QDialog( parent, name, true ) | 54 | QDialog( parent, name, true ) |
54 | { | 55 | { |
55 | setCaption( i18n("Add new Calendar") ); | 56 | setCaption( i18n("Add new Calendar") ); |
56 | QVBoxLayout* lay = new QVBoxLayout( this ); | 57 | QVBoxLayout* lay = new QVBoxLayout( this ); |
57 | lay->setSpacing( 3 ); | 58 | lay->setSpacing( 3 ); |
58 | lay->setMargin( 3 ); | 59 | lay->setMargin( 3 ); |
59 | QLabel * lab = new QLabel( i18n("<b>Name of new calendar:</b>"), this ); | 60 | QLabel * lab = new QLabel( i18n("<b>Name of new calendar:</b>"), this ); |
60 | lay->addWidget( lab ); | 61 | lay->addWidget( lab ); |
61 | nameE = new KLineEdit( this ); | 62 | nameE = new KLineEdit( this ); |
62 | lay->addWidget( nameE ); | 63 | lay->addWidget( nameE ); |
63 | lab = new QLabel( i18n("<b>Local ical (*.ics) file:</b>"), this ); | 64 | lab = new QLabel( i18n("<b>Local ical (*.ics) file:</b>"), this ); |
64 | lay->addWidget( lab ); | 65 | lay->addWidget( lab ); |
65 | url = new KURLRequester ( this ); | 66 | url = new KURLRequester ( this ); |
66 | lay->addWidget( url ); | 67 | lay->addWidget( url ); |
67 | QPushButton * ok = new QPushButton( i18n("OK"), this ); | 68 | QPushButton * ok = new QPushButton( i18n("OK"), this ); |
68 | lay->addWidget( ok ); | 69 | lay->addWidget( ok ); |
69 | QPushButton * cancel = new QPushButton( i18n("Cancel"), this ); | 70 | QPushButton * cancel = new QPushButton( i18n("Cancel"), this ); |
70 | lay->addWidget( cancel ); | 71 | lay->addWidget( cancel ); |
71 | connect ( ok,SIGNAL(clicked() ),this , SLOT ( checkValid() ) ); | 72 | connect ( ok,SIGNAL(clicked() ),this , SLOT ( checkValid() ) ); |
72 | connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) ); | 73 | connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) ); |
73 | int minwid = 220; | 74 | int minwid = 220; |
74 | if ( QApplication::desktop()->width() >= 320 ) minwid = 300; | 75 | if ( QApplication::desktop()->width() >= 320 ) minwid = 300; |
75 | setMinimumWidth( minwid ); | 76 | setMinimumWidth( minwid ); |
76 | resize(sizeHint() ); | 77 | resize(sizeHint() ); |
77 | } | 78 | } |
78 | 79 | ||
79 | QString calName() { return nameE->text(); } | 80 | QString calName() { return nameE->text(); } |
80 | QString calFileName() { return url->url(); } | 81 | QString calFileName() { return url->url(); } |
81 | 82 | ||
82 | public slots: | 83 | public slots: |
83 | void checkValid() { | 84 | void checkValid() { |
84 | if ( nameE->text().isEmpty() ) { | 85 | if ( nameE->text().isEmpty() ) { |
85 | KMessageBox::information( this, i18n("Sorry, the calendar name is empty!") ); | 86 | KMessageBox::information( this, i18n("Sorry, the calendar name is empty!") ); |
86 | nameE->setText( "LPQJ_"+ QString::number( QTime::currentTime().msec () )); | 87 | nameE->setText( "LPQJ_"+ QString::number( QTime::currentTime().msec () )); |
87 | return; | 88 | return; |
88 | } | 89 | } |
89 | if ( url->url().isEmpty() ) { | 90 | if ( url->url().isEmpty() ) { |
90 | KMessageBox::information( this, i18n("Sorry, the file name is empty!") ); | 91 | KMessageBox::information( this, i18n("Sorry, the file name is empty!") ); |
91 | return; | 92 | return; |
92 | } | 93 | } |
93 | accept(); | 94 | accept(); |
94 | } | 95 | } |
95 | 96 | ||
96 | public: | 97 | public: |
97 | KLineEdit* nameE; | 98 | KLineEdit* nameE; |
98 | KURLRequester *url; | 99 | KURLRequester *url; |
99 | }; | 100 | }; |
100 | 101 | ||
101 | class KOCalButton : public QPushButton | 102 | class KOCalButton : public QPushButton |
102 | { | 103 | { |
103 | Q_OBJECT | 104 | Q_OBJECT |
104 | public: | 105 | public: |
105 | KOCalButton( QWidget *parent=0, const char *name=0 ) : | 106 | KOCalButton( QWidget *parent=0, const char *name=0 ) : |
106 | QPushButton( parent, name) | 107 | QPushButton( parent, name) |
107 | { | 108 | { |
108 | connect( this, SIGNAL( clicked() ), | 109 | connect( this, SIGNAL( clicked() ), |
109 | SLOT( bottonClicked() )); | 110 | SLOT( bottonClicked() )); |
110 | mNumber = -1; | 111 | mNumber = -1; |
111 | setFocusPolicy(NoFocus); | 112 | setFocusPolicy(NoFocus); |
112 | } | 113 | } |
113 | void setNum ( int num ) {mNumber = num; } | 114 | void setNum ( int num ) {mNumber = num; } |
114 | signals: | 115 | signals: |
115 | void selectNum ( int ); | 116 | void selectNum ( int ); |
116 | private: | 117 | private: |
117 | int mNumber; | 118 | int mNumber; |
118 | void keyPressEvent ( QKeyEvent * e ) | 119 | void keyPressEvent ( QKeyEvent * e ) |
119 | { | 120 | { |
120 | e->ignore(); | 121 | e->ignore(); |
121 | } | 122 | } |
122 | 123 | ||
123 | private slots : | 124 | private slots : |
124 | void bottonClicked() { if ( mNumber > 0 ) emit selectNum ( mNumber ); } | 125 | void bottonClicked() { if ( mNumber > 0 ) emit selectNum ( mNumber ); } |
125 | }; | 126 | }; |
126 | class KOCalCheckButton : public QCheckBox | 127 | class KOCalCheckButton : public QCheckBox |
127 | { | 128 | { |
128 | Q_OBJECT | 129 | Q_OBJECT |
129 | public: | 130 | public: |
130 | KOCalCheckButton( QWidget *parent=0, const char *name=0 ) : | 131 | KOCalCheckButton( QWidget *parent=0, const char *name=0 ) : |
131 | QCheckBox( parent, name) | 132 | QCheckBox( parent, name) |
132 | { | 133 | { |
133 | connect( this, SIGNAL( toggled ( bool ) ), | 134 | connect( this, SIGNAL( toggled ( bool ) ), |
134 | SLOT( bottonClicked( bool ) )); | 135 | SLOT( bottonClicked( bool ) )); |
135 | mNumber = -1; | 136 | mNumber = -1; |
136 | setFocusPolicy(NoFocus); | 137 | setFocusPolicy(NoFocus); |
137 | //setMaximumWidth( 10 ); | 138 | //setMaximumWidth( 10 ); |
138 | 139 | ||
139 | } | 140 | } |
140 | void setNum ( int num ) {mNumber = num; } | 141 | void setNum ( int num ) {mNumber = num; } |
141 | signals: | 142 | signals: |
142 | void selectNum ( int, bool ); | 143 | void selectNum ( int, bool ); |
143 | private: | 144 | private: |
144 | int mNumber; | 145 | int mNumber; |
145 | void keyPressEvent ( QKeyEvent * e ) | 146 | void keyPressEvent ( QKeyEvent * e ) |
146 | { | 147 | { |
147 | e->ignore(); | 148 | e->ignore(); |
148 | } | 149 | } |
149 | 150 | ||
150 | private slots : | 151 | private slots : |
151 | void bottonClicked( bool b) { if ( mNumber > 0 ) emit selectNum ( mNumber , b); } | 152 | void bottonClicked( bool b) { if ( mNumber > 0 ) emit selectNum ( mNumber , b); } |
152 | }; | 153 | }; |
153 | 154 | ||
154 | class KOCalRadioButton : public QRadioButton | 155 | class KOCalRadioButton : public QRadioButton |
155 | { | 156 | { |
156 | Q_OBJECT | 157 | Q_OBJECT |
157 | public: | 158 | public: |
158 | KOCalRadioButton( QWidget *parent=0, const char *name=0 ) : | 159 | KOCalRadioButton( QWidget *parent=0, const char *name=0 ) : |
159 | QRadioButton( parent, name) | 160 | QRadioButton( parent, name) |
160 | { | 161 | { |
161 | connect( this, SIGNAL( toggled ( bool ) ), | 162 | connect( this, SIGNAL( toggled ( bool ) ), |
162 | SLOT( bottonClicked( bool ) )); | 163 | SLOT( bottonClicked( bool ) )); |
163 | mNumber = -1; | 164 | mNumber = -1; |
164 | setFocusPolicy(NoFocus); | 165 | setFocusPolicy(NoFocus); |
165 | //setMaximumWidth( 10 ); | 166 | //setMaximumWidth( 10 ); |
166 | 167 | ||
167 | } | 168 | } |
168 | int num() { return mNumber;} | 169 | int num() { return mNumber;} |
169 | void setNum ( int num ) {mNumber = num; } | 170 | void setNum ( int num ) {mNumber = num; } |
170 | signals: | 171 | signals: |
171 | void selectNum ( int ); | 172 | void selectNum ( int ); |
172 | private: | 173 | private: |
173 | int mNumber; | 174 | int mNumber; |
174 | void keyPressEvent ( QKeyEvent * e ) | 175 | void keyPressEvent ( QKeyEvent * e ) |
175 | { | 176 | { |
176 | e->ignore(); | 177 | e->ignore(); |
177 | } | 178 | } |
178 | 179 | ||
179 | private slots : | 180 | private slots : |
180 | void bottonClicked( bool b) { if ( mNumber > 0 ) emit selectNum ( mNumber); } | 181 | void bottonClicked( bool b) { if ( mNumber > 0 ) emit selectNum ( mNumber); } |
181 | }; | 182 | }; |
182 | 183 | ||
183 | 184 | ||
184 | 185 | ||
185 | class KOFilterView : public KOFilterView_base | 186 | class KOFilterView : public KOFilterView_base |
186 | { | 187 | { |
187 | Q_OBJECT | 188 | Q_OBJECT |
188 | public: | 189 | public: |
189 | KOFilterView(QPtrList<CalFilter> *filterList,QWidget* parent=0,const char* name=0, WFlags fl=0); | 190 | KOFilterView(QPtrList<CalFilter> *filterList,QWidget* parent=0,const char* name=0, WFlags fl=0); |
190 | ~KOFilterView(); | 191 | ~KOFilterView(); |
191 | 192 | ||
192 | void updateFilters(); | 193 | void updateFilters(); |
193 | 194 | ||
194 | bool filtersEnabled(); | 195 | bool filtersEnabled(); |
195 | void setFiltersEnabled(bool); | 196 | void setFiltersEnabled(bool); |
196 | CalFilter *selectedFilter(); | 197 | CalFilter *selectedFilter(); |
197 | void setSelectedFilter(QString); | 198 | void setSelectedFilter(QString); |
198 | void setSelectedFilter( int ); | 199 | void setSelectedFilter( int ); |
199 | 200 | ||
200 | signals: | 201 | signals: |
201 | void filterChanged(); | 202 | void filterChanged(); |
202 | void editFilters(); | 203 | void editFilters(); |
203 | 204 | ||
204 | private: | 205 | private: |
205 | QPtrList<CalFilter> *mFilters; | 206 | QPtrList<CalFilter> *mFilters; |
206 | }; | 207 | }; |
207 | 208 | ||
208 | class KOCalEditView : public QScrollView | 209 | class KOCalEditView : public QScrollView |
209 | { | 210 | { |
210 | Q_OBJECT | 211 | Q_OBJECT |
211 | public: | 212 | public: |
212 | KOCalEditView( QWidget* parent=0,const char* name=0); | 213 | KOCalEditView( QWidget* parent=0,const char* name=0); |
213 | ~KOCalEditView(); | 214 | ~KOCalEditView(); |
214 | int addCalendar( QString calName, QString fileName, bool ask = true ); | 215 | int addCalendar( QString calName, QString fileName, bool ask = true ); |
215 | int getBirtdayID(); | 216 | int getBirtdayID(); |
216 | public slots: | 217 | public slots: |
217 | void addCal(); | 218 | void addCal(); |
218 | void enableAll(); | 219 | void enableAll(); |
219 | void enableAlarm(); | 220 | void enableAlarm(); |
diff --git a/korganizer/komonthview.cpp b/korganizer/komonthview.cpp index 264cf28..4fc447e 100644 --- a/korganizer/komonthview.cpp +++ b/korganizer/komonthview.cpp | |||
@@ -1603,409 +1603,411 @@ void KOMonthView::showDates(const QDate &start, const QDate &) | |||
1603 | 1603 | ||
1604 | if ( mShowWeekView || KOPrefs::instance()->mMonthViewSatSunTog ) { | 1604 | if ( mShowWeekView || KOPrefs::instance()->mMonthViewSatSunTog ) { |
1605 | mWeekStartsMonday = true; | 1605 | mWeekStartsMonday = true; |
1606 | } | 1606 | } |
1607 | int startWeekDay = mWeekStartsMonday ? 1 : 7; | 1607 | int startWeekDay = mWeekStartsMonday ? 1 : 7; |
1608 | 1608 | ||
1609 | while( KOGlobals::self()->calendarSystem()->dayOfWeek(mStartDate) != startWeekDay ) { | 1609 | while( KOGlobals::self()->calendarSystem()->dayOfWeek(mStartDate) != startWeekDay ) { |
1610 | mStartDate = mStartDate.addDays( -1 ); | 1610 | mStartDate = mStartDate.addDays( -1 ); |
1611 | } | 1611 | } |
1612 | bool primary = false; | 1612 | bool primary = false; |
1613 | uint i; | 1613 | uint i; |
1614 | for( i = 0; i < (*cells).size(); ++i ) { | 1614 | for( i = 0; i < (*cells).size(); ++i ) { |
1615 | QDate date = mStartDate.addDays( i ); | 1615 | QDate date = mStartDate.addDays( i ); |
1616 | (*cells)[i]->setDate( date ); | 1616 | (*cells)[i]->setDate( date ); |
1617 | 1617 | ||
1618 | #ifndef KORG_NOPLUGINS | 1618 | #ifndef KORG_NOPLUGINS |
1619 | // add holiday, if present | 1619 | // add holiday, if present |
1620 | QString hstring(KOCore::self()->holiday(date)); | 1620 | QString hstring(KOCore::self()->holiday(date)); |
1621 | (*cells)[i]->setHoliday( hstring ); | 1621 | (*cells)[i]->setHoliday( hstring ); |
1622 | #endif | 1622 | #endif |
1623 | 1623 | ||
1624 | } | 1624 | } |
1625 | QDate date = mStartDate.addDays( mWeekStartsMonday ? 3 : 4 ); | 1625 | QDate date = mStartDate.addDays( mWeekStartsMonday ? 3 : 4 ); |
1626 | for( i = 0; i < weekNum; ++i ) { | 1626 | for( i = 0; i < weekNum; ++i ) { |
1627 | int wno; | 1627 | int wno; |
1628 | // remember, according to ISO 8601, the first week of the year is the | 1628 | // remember, according to ISO 8601, the first week of the year is the |
1629 | // first week that contains a thursday. Thus we must subtract off 4, | 1629 | // first week that contains a thursday. Thus we must subtract off 4, |
1630 | // not just 1. | 1630 | // not just 1. |
1631 | int dayOfYear = date.dayOfYear(); | 1631 | int dayOfYear = date.dayOfYear(); |
1632 | if (dayOfYear % 7 != 0) | 1632 | if (dayOfYear % 7 != 0) |
1633 | wno = dayOfYear / 7 + 1; | 1633 | wno = dayOfYear / 7 + 1; |
1634 | else | 1634 | else |
1635 | wno =dayOfYear / 7; | 1635 | wno =dayOfYear / 7; |
1636 | (*weekLabels)[i]->setWeekNum( wno ); | 1636 | (*weekLabels)[i]->setWeekNum( wno ); |
1637 | date = date.addDays( 7 ); | 1637 | date = date.addDays( 7 ); |
1638 | } | 1638 | } |
1639 | updateView(); | 1639 | updateView(); |
1640 | } | 1640 | } |
1641 | 1641 | ||
1642 | void KOMonthView::showEvents(QPtrList<Event>) | 1642 | void KOMonthView::showEvents(QPtrList<Event>) |
1643 | { | 1643 | { |
1644 | qDebug("KOMonthView::selectEvents is not implemented yet. "); | 1644 | qDebug("KOMonthView::selectEvents is not implemented yet. "); |
1645 | } | 1645 | } |
1646 | 1646 | ||
1647 | void KOMonthView::changeEventDisplay(Event *, int) | 1647 | void KOMonthView::changeEventDisplay(Event *, int) |
1648 | { | 1648 | { |
1649 | // this should be re-written to be much more efficient, but this | 1649 | // this should be re-written to be much more efficient, but this |
1650 | // quick-and-dirty-hack gets the job done for right now. | 1650 | // quick-and-dirty-hack gets the job done for right now. |
1651 | //qDebug("KOMonthView::changeEventDisplay "); | 1651 | //qDebug("KOMonthView::changeEventDisplay "); |
1652 | updateView(); | 1652 | updateView(); |
1653 | } | 1653 | } |
1654 | 1654 | ||
1655 | void KOMonthView::updateView() | 1655 | void KOMonthView::updateView() |
1656 | { | 1656 | { |
1657 | 1657 | ||
1658 | if ( !updatePossible ) | 1658 | if ( !updatePossible ) |
1659 | return; | 1659 | return; |
1660 | //qDebug("UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU "); | 1660 | //qDebug("UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU "); |
1661 | //QTime ti; | 1661 | //QTime ti; |
1662 | //ti.start(); | 1662 | //ti.start(); |
1663 | clearSelection(); | 1663 | clearSelection(); |
1664 | QPtrVector<MonthViewCell> *cells; | 1664 | QPtrVector<MonthViewCell> *cells; |
1665 | if ( mShowWeekView ) { | 1665 | if ( mShowWeekView ) { |
1666 | cells = &mCellsW; | 1666 | cells = &mCellsW; |
1667 | } else { | 1667 | } else { |
1668 | cells = &mCells; | 1668 | cells = &mCells; |
1669 | } | 1669 | } |
1670 | #if 1 | 1670 | #if 1 |
1671 | int i; | 1671 | int i; |
1672 | int timeSpan = (*cells).size()-1; | 1672 | int timeSpan = (*cells).size()-1; |
1673 | if ( KOPrefs::instance()->mMonthViewWeek ) | 1673 | if ( KOPrefs::instance()->mMonthViewWeek ) |
1674 | timeSpan = 6; | 1674 | timeSpan = 6; |
1675 | for( i = 0; i < timeSpan + 1; ++i ) { | 1675 | for( i = 0; i < timeSpan + 1; ++i ) { |
1676 | (*cells)[i]->startUpdateCell(); | 1676 | (*cells)[i]->startUpdateCell(); |
1677 | } | 1677 | } |
1678 | 1678 | ||
1679 | QPtrList<Event> events = calendar()->events(); | 1679 | QPtrList<Event> events = calendar()->events(); |
1680 | Event *event; | 1680 | Event *event; |
1681 | QDateTime dt; | 1681 | QDateTime dt; |
1682 | bool ok; | 1682 | bool ok; |
1683 | QDate endDate = mStartDate.addDays( timeSpan ); | 1683 | QDate endDate = mStartDate.addDays( timeSpan ); |
1684 | for( event = events.first(); event; event = events.next() ) { // for event | 1684 | for( event = events.first(); event; event = events.next() ) { // for event |
1685 | if ( event->doesRecur() ) { | 1685 | if ( event->doesRecur() ) { |
1686 | bool last; | 1686 | bool last; |
1687 | QDateTime incidenceStart = event->recurrence()->getPreviousDateTime( QDateTime( mStartDate ) , &last ); | 1687 | QDateTime incidenceStart = event->recurrence()->getPreviousDateTime( QDateTime( mStartDate ) , &last ); |
1688 | QDateTime incidenceEnd; | 1688 | QDateTime incidenceEnd; |
1689 | int eventlen = event->dtStart().date().daysTo ( event->dtEnd().date() ); | 1689 | int eventlen = event->dtStart().date().daysTo ( event->dtEnd().date() ); |
1690 | bool invalid = false; | 1690 | bool invalid = false; |
1691 | while( true ) { | 1691 | while( true ) { |
1692 | if ( incidenceStart.isValid() ) { | 1692 | if ( incidenceStart.isValid() ) { |
1693 | incidenceEnd = incidenceStart.addDays( eventlen ); | 1693 | incidenceEnd = incidenceStart.addDays( eventlen ); |
1694 | int st = incidenceStart.date().daysTo( endDate ); | 1694 | int st = incidenceStart.date().daysTo( endDate ); |
1695 | if ( st >= 0 ) { // start before timeend | 1695 | if ( st >= 0 ) { // start before timeend |
1696 | int end = mStartDate.daysTo( incidenceEnd.date() ); | 1696 | int end = mStartDate.daysTo( incidenceEnd.date() ); |
1697 | if ( end >= 0 ) { // end after timestart --- got one! | 1697 | if ( end >= 0 ) { // end after timestart --- got one! |
1698 | //normalize | 1698 | //normalize |
1699 | st = timeSpan - st; | 1699 | st = timeSpan - st; |
1700 | if ( st < 0 ) st = 0; | 1700 | if ( st < 0 ) st = 0; |
1701 | if ( end > timeSpan ) end = timeSpan; | 1701 | if ( end > timeSpan ) end = timeSpan; |
1702 | int iii; | 1702 | int iii; |
1703 | //qDebug("found %s %d %d ",event->summary().latin1(), st, end ); | 1703 | //qDebug("found %s %d %d ",event->summary().latin1(), st, end ); |
1704 | for ( iii = st;iii<= end;++iii) | 1704 | for ( iii = st;iii<= end;++iii) |
1705 | (*cells)[iii]->insertEvent( event ); | 1705 | (*cells)[iii]->insertEvent( event ); |
1706 | } | 1706 | } |
1707 | } | 1707 | } |
1708 | } else { | 1708 | } else { |
1709 | if ( invalid ) | 1709 | if ( invalid ) |
1710 | break; | 1710 | break; |
1711 | invalid = true; | 1711 | invalid = true; |
1712 | //qDebug("invalid %s", event->summary().latin1()); | 1712 | //qDebug("invalid %s", event->summary().latin1()); |
1713 | incidenceStart = QDateTime( mStartDate ).addSecs( -2 );; | 1713 | incidenceStart = QDateTime( mStartDate ).addSecs( -2 );; |
1714 | } | 1714 | } |
1715 | if ( last ) | 1715 | if ( last ) |
1716 | break; | 1716 | break; |
1717 | bool ok; | 1717 | bool ok; |
1718 | incidenceStart = event->getNextOccurence( incidenceStart.addSecs( 1 ) ,&ok ); | 1718 | incidenceStart = event->getNextOccurence( incidenceStart.addSecs( 1 ) ,&ok ); |
1719 | if ( ! ok ) | 1719 | if ( ! ok ) |
1720 | break; | 1720 | break; |
1721 | if ( incidenceStart.date() > endDate ) | 1721 | if ( incidenceStart.date() > endDate ) |
1722 | break; | 1722 | break; |
1723 | } | 1723 | } |
1724 | } else { // no recur | 1724 | } else { // no recur |
1725 | if ( !KOPrefs::instance()->mShowSyncEvents && event->uid().left(2) == QString("la") ) | 1725 | if ( !KOPrefs::instance()->mShowSyncEvents && event->uid().left(2) == QString("la") ) |
1726 | if ( event->uid().left(15) == QString("last-syncEvent-") ) | 1726 | if ( event->uid().left(15) == QString("last-syncEvent-") ) |
1727 | continue; | 1727 | continue; |
1728 | int st = event->dtStart().date().daysTo( endDate ); | 1728 | int st = event->dtStart().date().daysTo( endDate ); |
1729 | if ( st >= 0 ) { // start before timeend | 1729 | if ( st >= 0 ) { // start before timeend |
1730 | int end = mStartDate.daysTo( event->dtEnd().date() ); | 1730 | int end = mStartDate.daysTo( event->dtEnd().date() ); |
1731 | if ( end >= 0 ) { // end after timestart --- got one! | 1731 | if ( end >= 0 ) { // end after timestart --- got one! |
1732 | //normalize | 1732 | //normalize |
1733 | st = timeSpan - st; | 1733 | st = timeSpan - st; |
1734 | if ( st < 0 ) st = 0; | 1734 | if ( st < 0 ) st = 0; |
1735 | if ( end > timeSpan ) end = timeSpan; | 1735 | if ( end > timeSpan ) end = timeSpan; |
1736 | int iii; | 1736 | int iii; |
1737 | for ( iii = st;iii<= end;++iii) | 1737 | for ( iii = st;iii<= end;++iii) |
1738 | (*cells)[iii]->insertEvent( event ); | 1738 | (*cells)[iii]->insertEvent( event ); |
1739 | } | 1739 | } |
1740 | } | 1740 | } |
1741 | } | 1741 | } |
1742 | } | 1742 | } |
1743 | // insert due todos | 1743 | // insert due todos |
1744 | QPtrList<Todo> todos = calendar()->todos( ); | 1744 | QPtrList<Todo> todos = calendar()->todos( ); |
1745 | Todo *todo; | 1745 | Todo *todo; |
1746 | for(todo = todos.first(); todo; todo = todos.next()) { | 1746 | for(todo = todos.first(); todo; todo = todos.next()) { |
1747 | //insertTodo( todo ); | 1747 | //insertTodo( todo ); |
1748 | if ( todo->hasDueDate() ) { | 1748 | if ( todo->hasDueDate() ) { |
1749 | int day = mStartDate.daysTo( todo->dtDue().date() ); | 1749 | int day = mStartDate.daysTo( todo->dtDue().date() ); |
1750 | if ( day >= 0 && day < timeSpan + 1) { | 1750 | if ( day >= 0 && day < timeSpan + 1) { |
1751 | (*cells)[day]->insertTodo( todo ); | 1751 | (*cells)[day]->insertTodo( todo ); |
1752 | } | 1752 | } |
1753 | } | 1753 | } |
1754 | } | 1754 | } |
1755 | 1755 | ||
1756 | for( i = 0; i < timeSpan+1; ++i ) { | 1756 | for( i = 0; i < timeSpan+1; ++i ) { |
1757 | (*cells)[i]->finishUpdateCell(); | 1757 | (*cells)[i]->finishUpdateCell(); |
1758 | } | 1758 | } |
1759 | processSelectionChange(); | 1759 | processSelectionChange(); |
1760 | //qApp->processEvents(); | 1760 | //qApp->processEvents(); |
1761 | for( i = 0; i < timeSpan+1; ++i ) { | 1761 | for( i = 0; i < timeSpan+1; ++i ) { |
1762 | //(*cells)[i]->repaintfinishUpdateCell(); | 1762 | //(*cells)[i]->repaintfinishUpdateCell(); |
1763 | QTimer::singleShot( 0, (*cells)[i], SLOT ( repaintfinishUpdateCell() ) ); | 1763 | QTimer::singleShot( 0, (*cells)[i], SLOT ( repaintfinishUpdateCell() ) ); |
1764 | } | 1764 | } |
1765 | setKeyBFocus(); | 1765 | setKeyBFocus(); |
1766 | #else | 1766 | #else |
1767 | // old code | 1767 | // old code |
1768 | //qDebug("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ "); | 1768 | //qDebug("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ "); |
1769 | int i; | 1769 | int i; |
1770 | for( i = 0; i < (*cells).count(); ++i ) { | 1770 | for( i = 0; i < (*cells).count(); ++i ) { |
1771 | (*cells)[i]->updateCell(); | 1771 | (*cells)[i]->updateCell(); |
1772 | } | 1772 | } |
1773 | 1773 | ||
1774 | //qDebug("KOMonthView::updateView() "); | 1774 | //qDebug("KOMonthView::updateView() "); |
1775 | processSelectionChange(); | 1775 | processSelectionChange(); |
1776 | // qDebug("---------------------------------------------------------------------+ "); | 1776 | // qDebug("---------------------------------------------------------------------+ "); |
1777 | (*cells)[0]->setFocus(); | 1777 | (*cells)[0]->setFocus(); |
1778 | #endif | 1778 | #endif |
1779 | 1779 | ||
1780 | //qDebug("update time %d ", ti.elapsed()); | 1780 | //qDebug("update time %d ", ti.elapsed()); |
1781 | } | 1781 | } |
1782 | 1782 | ||
1783 | void KOMonthView::setKeyBoardFocus() | 1783 | void KOMonthView::setKeyBoardFocus() |
1784 | { | 1784 | { |
1785 | //qDebug("KOMonthView::setKeyBoardFocus() "); | 1785 | //qDebug("KOMonthView::setKeyBoardFocus() "); |
1786 | bool shootAgain = false; | 1786 | bool shootAgain = false; |
1787 | if ( mShowWeekView ) { | 1787 | if ( mShowWeekView ) { |
1788 | shootAgain = !mWeekLabelsW[1]->hasFocus(); | 1788 | shootAgain = !mWeekLabelsW[1]->hasFocus(); |
1789 | mWeekLabelsW[1]->setFocus(); | 1789 | mWeekLabelsW[1]->setFocus(); |
1790 | } | 1790 | } |
1791 | else { | 1791 | else { |
1792 | shootAgain = !mWeekLabels[mNumWeeks]->hasFocus(); | 1792 | shootAgain = !mWeekLabels[mNumWeeks]->hasFocus(); |
1793 | mWeekLabels[mNumWeeks]->setFocus(); | 1793 | mWeekLabels[mNumWeeks]->setFocus(); |
1794 | } | 1794 | } |
1795 | if ( shootAgain ) { | 1795 | --mKBFcounter; |
1796 | QTimer::singleShot( 0, this, SLOT ( setKeyBFocus() ) ); | 1796 | if ( shootAgain && mKBFcounter > 0 ) { |
1797 | QTimer::singleShot( 50, this, SLOT ( setKeyBoardFocus() ) ); | ||
1797 | } | 1798 | } |
1798 | } | 1799 | } |
1799 | void KOMonthView::setKeyBFocus() | 1800 | void KOMonthView::setKeyBFocus() |
1800 | { | 1801 | { |
1801 | //qDebug("KOMonthView::setKeyBFocus() "); | 1802 | //qDebug("KOMonthView::setKeyBFocus() "); |
1803 | mKBFcounter = 10; | ||
1802 | QTimer::singleShot( 0, this, SLOT ( setKeyBoardFocus() ) ); | 1804 | QTimer::singleShot( 0, this, SLOT ( setKeyBoardFocus() ) ); |
1803 | } | 1805 | } |
1804 | void KOMonthView::resizeEvent(QResizeEvent * e) | 1806 | void KOMonthView::resizeEvent(QResizeEvent * e) |
1805 | { | 1807 | { |
1806 | //qDebug("KOMonthView::resizeEvent %d %d -- %d %d ", e->size().width(), e->size().height(), e->oldSize().width(), e->oldSize().height()); | 1808 | //qDebug("KOMonthView::resizeEvent %d %d -- %d %d ", e->size().width(), e->size().height(), e->oldSize().width(), e->oldSize().height()); |
1807 | if ( isVisible() ) { | 1809 | if ( isVisible() ) { |
1808 | //qDebug("KOMonthView::isVisible "); | 1810 | //qDebug("KOMonthView::isVisible "); |
1809 | slotComputeLayout(); | 1811 | slotComputeLayout(); |
1810 | } else | 1812 | } else |
1811 | mComputeLayoutTimer->start( 100 ); | 1813 | mComputeLayoutTimer->start( 100 ); |
1812 | } | 1814 | } |
1813 | 1815 | ||
1814 | void KOMonthView::slotComputeLayout() | 1816 | void KOMonthView::slotComputeLayout() |
1815 | { | 1817 | { |
1816 | mComputeLayoutTimer->stop(); | 1818 | mComputeLayoutTimer->stop(); |
1817 | //qDebug("KOMonthView::Post - resizeEvent %d %d ", width(), height() ); | 1819 | //qDebug("KOMonthView::Post - resizeEvent %d %d ", width(), height() ); |
1818 | computeLayout(); | 1820 | computeLayout(); |
1819 | clPending = true; | 1821 | clPending = true; |
1820 | setKeyBFocus(); | 1822 | setKeyBFocus(); |
1821 | } | 1823 | } |
1822 | void KOMonthView::computeLayoutWeek() | 1824 | void KOMonthView::computeLayoutWeek() |
1823 | { | 1825 | { |
1824 | static int lastWid = 0; | 1826 | static int lastWid = 0; |
1825 | static int lastHei = 0; | 1827 | static int lastHei = 0; |
1826 | int daysToShow; | 1828 | int daysToShow; |
1827 | bool combinedSatSun = false; | 1829 | bool combinedSatSun = false; |
1828 | if (mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ) { | 1830 | if (mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ) { |
1829 | daysToShow = 6; | 1831 | daysToShow = 6; |
1830 | combinedSatSun = true; | 1832 | combinedSatSun = true; |
1831 | } | 1833 | } |
1832 | int tWid = topLevelWidget()->size().width(); | 1834 | int tWid = topLevelWidget()->size().width(); |
1833 | int tHei = topLevelWidget()->size().height(); | 1835 | int tHei = topLevelWidget()->size().height(); |
1834 | 1836 | ||
1835 | int wid = width();//e | 1837 | int wid = width();//e |
1836 | int hei = height()-1-mNavigatorBar->height(); | 1838 | int hei = height()-1-mNavigatorBar->height(); |
1837 | 1839 | ||
1838 | if ( ((wid *3)/2) < tWid && (( hei *3) /2) < tHei ) | 1840 | if ( ((wid *3)/2) < tWid && (( hei *3) /2) < tHei ) |
1839 | return; | 1841 | return; |
1840 | 1842 | ||
1841 | if ( lastWid == width() && lastHei == height() ) { | 1843 | if ( lastWid == width() && lastHei == height() ) { |
1842 | //qDebug("KOListWeekView::No compute layout needed "); | 1844 | //qDebug("KOListWeekView::No compute layout needed "); |
1843 | return; | 1845 | return; |
1844 | } | 1846 | } |
1845 | lastWid = width(); | 1847 | lastWid = width(); |
1846 | lastHei = height(); | 1848 | lastHei = height(); |
1847 | 1849 | ||
1848 | 1850 | ||
1849 | if ( wid < hei ) | 1851 | if ( wid < hei ) |
1850 | daysToShow = 2; | 1852 | daysToShow = 2; |
1851 | else | 1853 | else |
1852 | daysToShow = 3; | 1854 | daysToShow = 3; |
1853 | mShowSatSunComp = true; | 1855 | mShowSatSunComp = true; |
1854 | combinedSatSun = true; | 1856 | combinedSatSun = true; |
1855 | 1857 | ||
1856 | //qDebug("KOMonthView::computeLayout() WWW ------------------------------------ "); | 1858 | //qDebug("KOMonthView::computeLayout() WWW ------------------------------------ "); |
1857 | QFontMetrics fm ( mWeekLabels[0]->font() ); | 1859 | QFontMetrics fm ( mWeekLabels[0]->font() ); |
1858 | int weeklabelwid = fm.width( "888" ); | 1860 | int weeklabelwid = fm.width( "888" ); |
1859 | wid -= weeklabelwid; | 1861 | wid -= weeklabelwid; |
1860 | 1862 | ||
1861 | int colWid = wid / daysToShow; | 1863 | int colWid = wid / daysToShow; |
1862 | int lastCol = wid - ( colWid*6 ); | 1864 | int lastCol = wid - ( colWid*6 ); |
1863 | int dayLabelHei = mDayLabelsW[0]->sizeHint().height(); | 1865 | int dayLabelHei = mDayLabelsW[0]->sizeHint().height(); |
1864 | int cellHei = (hei - (5- daysToShow )*dayLabelHei) /(5- daysToShow ); | 1866 | int cellHei = (hei - (5- daysToShow )*dayLabelHei) /(5- daysToShow ); |
1865 | int colModulo = wid % daysToShow; | 1867 | int colModulo = wid % daysToShow; |
1866 | int rowModulo = (hei- (5- daysToShow )*dayLabelHei) % daysToShow-1; | 1868 | int rowModulo = (hei- (5- daysToShow )*dayLabelHei) % daysToShow-1; |
1867 | //qDebug("rowmod %d ", rowModulo); | 1869 | //qDebug("rowmod %d ", rowModulo); |
1868 | int i; | 1870 | int i; |
1869 | int x,y,w,h; | 1871 | int x,y,w,h; |
1870 | x= 0; | 1872 | x= 0; |
1871 | y= 0; | 1873 | y= 0; |
1872 | w = colWid; | 1874 | w = colWid; |
1873 | h = dayLabelHei ; | 1875 | h = dayLabelHei ; |
1874 | for ( i = 0; i < 7; i++) { | 1876 | for ( i = 0; i < 7; i++) { |
1875 | if ( i && !( i % daysToShow) && i < 6) { | 1877 | if ( i && !( i % daysToShow) && i < 6) { |
1876 | y += hei/(5-daysToShow); | 1878 | y += hei/(5-daysToShow); |
1877 | x = 0; | 1879 | x = 0; |
1878 | w = colWid; | 1880 | w = colWid; |
1879 | } | 1881 | } |
1880 | if ( ((i) % daysToShow) >= daysToShow-colModulo ) { | 1882 | if ( ((i) % daysToShow) >= daysToShow-colModulo ) { |
1881 | ++w; | 1883 | ++w; |
1882 | } | 1884 | } |
1883 | if ( i >= 5 ) { | 1885 | if ( i >= 5 ) { |
1884 | int wi = width() - x - weeklabelwid; | 1886 | int wi = width() - x - weeklabelwid; |
1885 | if ( i == 5 ) { | 1887 | if ( i == 5 ) { |
1886 | mDayLabelsW[i]->setGeometry( x+weeklabelwid,y,wi/2+wi%2,h); | 1888 | mDayLabelsW[i]->setGeometry( x+weeklabelwid,y,wi/2+wi%2,h); |
1887 | } else { | 1889 | } else { |
1888 | mDayLabelsW[i]->setGeometry( x+weeklabelwid,y,wi,h); | 1890 | mDayLabelsW[i]->setGeometry( x+weeklabelwid,y,wi,h); |
1889 | } | 1891 | } |
1890 | x = x - w + wi - (wi/2 ); | 1892 | x = x - w + wi - (wi/2 ); |
1891 | } | 1893 | } |
1892 | else { | 1894 | else { |
1893 | int wi = w; | 1895 | int wi = w; |
1894 | if ( !(( i+1) % daysToShow)) { | 1896 | if ( !(( i+1) % daysToShow)) { |
1895 | wi = width() - x - weeklabelwid; | 1897 | wi = width() - x - weeklabelwid; |
1896 | } | 1898 | } |
1897 | mDayLabelsW[i]->setGeometry( x+weeklabelwid,y,wi,h); | 1899 | mDayLabelsW[i]->setGeometry( x+weeklabelwid,y,wi,h); |
1898 | } | 1900 | } |
1899 | x += w; | 1901 | x += w; |
1900 | } | 1902 | } |
1901 | x= 0; | 1903 | x= 0; |
1902 | y= dayLabelHei; | 1904 | y= dayLabelHei; |
1903 | w = colWid; | 1905 | w = colWid; |
1904 | h = cellHei; | 1906 | h = cellHei; |
1905 | int max = 0; | 1907 | int max = 0; |
1906 | for ( i = 0; i < mCellsW.count(); ++i) { | 1908 | for ( i = 0; i < mCellsW.count(); ++i) { |
1907 | if ( i > 6 ) { | 1909 | if ( i > 6 ) { |
1908 | mCellsW[i]->hide(); | 1910 | mCellsW[i]->hide(); |
1909 | continue; | 1911 | continue; |
1910 | } | 1912 | } |
1911 | 1913 | ||
1912 | w = colWid; | 1914 | w = colWid; |
1913 | if ( ((i) % daysToShow) >= daysToShow-colModulo ) { | 1915 | if ( ((i) % daysToShow) >= daysToShow-colModulo ) { |
1914 | ++w; | 1916 | ++w; |
1915 | } | 1917 | } |
1916 | if ( i == (daysToShow-1-rowModulo)*7) | 1918 | if ( i == (daysToShow-1-rowModulo)*7) |
1917 | ++h; | 1919 | ++h; |
1918 | 1920 | ||
1919 | if ( i >= 5 ) { | 1921 | if ( i >= 5 ) { |
1920 | if ( i ==5 ) { | 1922 | if ( i ==5 ) { |
1921 | max = h/2; | 1923 | max = h/2; |
1922 | mCellsW[i]->setGeometry ( x+weeklabelwid,y,w,max ); | 1924 | mCellsW[i]->setGeometry ( x+weeklabelwid,y,w,max ); |
1923 | x -= w ;y += h/2; | 1925 | x -= w ;y += h/2; |
1924 | } else { | 1926 | } else { |
1925 | if ( ((i-1) % daysToShow) >= daysToShow-colModulo ) { | 1927 | if ( ((i-1) % daysToShow) >= daysToShow-colModulo ) { |
1926 | ++w; | 1928 | ++w; |
1927 | } | 1929 | } |
1928 | max = h-h/2; | 1930 | max = h-h/2; |
1929 | mCellsW[i]->setGeometry ( x+weeklabelwid,y,w,max ); | 1931 | mCellsW[i]->setGeometry ( x+weeklabelwid,y,w,max ); |
1930 | y -= h/2; | 1932 | y -= h/2; |
1931 | } | 1933 | } |
1932 | } else { | 1934 | } else { |
1933 | max = h; | 1935 | max = h; |
1934 | mCellsW[i]->setGeometry ( x+weeklabelwid,y,w,h ); | 1936 | mCellsW[i]->setGeometry ( x+weeklabelwid,y,w,h ); |
1935 | } | 1937 | } |
1936 | 1938 | ||
1937 | 1939 | ||
1938 | x += w; | 1940 | x += w; |
1939 | if ( x + w/2 > wid ) { | 1941 | if ( x + w/2 > wid ) { |
1940 | x = 0; | 1942 | x = 0; |
1941 | y += h+dayLabelHei ; | 1943 | y += h+dayLabelHei ; |
1942 | } | 1944 | } |
1943 | //mCellsW[i]->dateLabel()->setMaximumHeight( max - mCellsW[i]->lineWidth()*2 ); | 1945 | //mCellsW[i]->dateLabel()->setMaximumHeight( max - mCellsW[i]->lineWidth()*2 ); |
1944 | } | 1946 | } |
1945 | y= dayLabelHei; | 1947 | y= dayLabelHei; |
1946 | h = cellHei ; | 1948 | h = cellHei ; |
1947 | mWeekLabelsW[0]->setGeometry( 0,y,weeklabelwid,hei-dayLabelHei); | 1949 | mWeekLabelsW[0]->setGeometry( 0,y,weeklabelwid,hei-dayLabelHei); |
1948 | mWeekLabelsW[1]->setGeometry( 0,0,weeklabelwid,dayLabelHei); | 1950 | mWeekLabelsW[1]->setGeometry( 0,0,weeklabelwid,dayLabelHei); |
1949 | // qDebug("RRRRRRRRRRRRR %d %d old %d %d", e->size().width(),e->size().height() , e->oldSize().width(),e->oldSize().height()); | 1951 | // qDebug("RRRRRRRRRRRRR %d %d old %d %d", e->size().width(),e->size().height() , e->oldSize().width(),e->oldSize().height()); |
1950 | //qDebug("parent %d %d ", topLevelWidget()->size().width(), topLevelWidget()->size().height()); | 1952 | //qDebug("parent %d %d ", topLevelWidget()->size().width(), topLevelWidget()->size().height()); |
1951 | mShortDayLabelsW = mDayLabelsW[0]->width()-2 < mWidthLongDayLabel ; | 1953 | mShortDayLabelsW = mDayLabelsW[0]->width()-2 < mWidthLongDayLabel ; |
1952 | updateDayLabels(); | 1954 | updateDayLabels(); |
1953 | //bool forceUpdate = !updatePossible; | 1955 | //bool forceUpdate = !updatePossible; |
1954 | updatePossible = true; | 1956 | updatePossible = true; |
1955 | //mWeekLabels[mNumWeeks]->setText( i18n("M")); | 1957 | //mWeekLabels[mNumWeeks]->setText( i18n("M")); |
1956 | //if ( forceUpdate ) | 1958 | //if ( forceUpdate ) |
1957 | // updateView(); | 1959 | // updateView(); |
1958 | } | 1960 | } |
1959 | void KOMonthView::computeLayout() | 1961 | void KOMonthView::computeLayout() |
1960 | { | 1962 | { |
1961 | 1963 | ||
1962 | 1964 | ||
1963 | static int lastWid = 0; | 1965 | static int lastWid = 0; |
1964 | static int lastHei = 0; | 1966 | static int lastHei = 0; |
1965 | 1967 | ||
1966 | if ( mShowWeekView ){ | 1968 | if ( mShowWeekView ){ |
1967 | computeLayoutWeek(); | 1969 | computeLayoutWeek(); |
1968 | return; | 1970 | return; |
1969 | } | 1971 | } |
1970 | int daysToShow = 7; | 1972 | int daysToShow = 7; |
1971 | bool combinedSatSun = false; | 1973 | bool combinedSatSun = false; |
1972 | if (mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ) { | 1974 | if (mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ) { |
1973 | daysToShow = 6; | 1975 | daysToShow = 6; |
1974 | combinedSatSun = true; | 1976 | combinedSatSun = true; |
1975 | } | 1977 | } |
1976 | int tWid = topLevelWidget()->size().width(); | 1978 | int tWid = topLevelWidget()->size().width(); |
1977 | int tHei = topLevelWidget()->size().height(); | 1979 | int tHei = topLevelWidget()->size().height(); |
1978 | 1980 | ||
1979 | int wid = width();//e | 1981 | int wid = width();//e |
1980 | int hei = height()-1-mNavigatorBar->height(); | 1982 | int hei = height()-1-mNavigatorBar->height(); |
1981 | 1983 | ||
1982 | if ( ((wid *3)/2) < tWid && (( hei *3) /2) < tHei ) { | 1984 | if ( ((wid *3)/2) < tWid && (( hei *3) /2) < tHei ) { |
1983 | return; | 1985 | return; |
1984 | } | 1986 | } |
1985 | if ( lastWid == width() && lastHei == height() ){ | 1987 | if ( lastWid == width() && lastHei == height() ){ |
1986 | //qDebug("KOMonthview::No compute layout needed "); | 1988 | //qDebug("KOMonthview::No compute layout needed "); |
1987 | return; | 1989 | return; |
1988 | } | 1990 | } |
1989 | 1991 | ||
1990 | lastWid = width(); | 1992 | lastWid = width(); |
1991 | lastHei = height(); | 1993 | lastHei = height(); |
1992 | //qDebug("KOMonthView::computeLayout() MMM ------------------- "); | 1994 | //qDebug("KOMonthView::computeLayout() MMM ------------------- "); |
1993 | QFontMetrics fm ( mWeekLabels[0]->font() ); | 1995 | QFontMetrics fm ( mWeekLabels[0]->font() ); |
1994 | int weeklabelwid = fm.width( "888" ); | 1996 | int weeklabelwid = fm.width( "888" ); |
1995 | wid -= weeklabelwid; | 1997 | wid -= weeklabelwid; |
1996 | 1998 | ||
1997 | int colWid = wid / daysToShow; | 1999 | int colWid = wid / daysToShow; |
1998 | int lastCol = wid - ( colWid*6 ); | 2000 | int lastCol = wid - ( colWid*6 ); |
1999 | int dayLabelHei = mDayLabels[0]->sizeHint().height(); | 2001 | int dayLabelHei = mDayLabels[0]->sizeHint().height(); |
2000 | int cellHei = (hei - dayLabelHei) /6; | 2002 | int cellHei = (hei - dayLabelHei) /6; |
2001 | int colModulo = wid % daysToShow; | 2003 | int colModulo = wid % daysToShow; |
2002 | int rowModulo = (hei- dayLabelHei) % 6; | 2004 | int rowModulo = (hei- dayLabelHei) % 6; |
2003 | //qDebug("rowmod %d ", rowModulo); | 2005 | //qDebug("rowmod %d ", rowModulo); |
2004 | int i; | 2006 | int i; |
2005 | int x,y,w,h; | 2007 | int x,y,w,h; |
2006 | x= 0; | 2008 | x= 0; |
2007 | y= 0; | 2009 | y= 0; |
2008 | w = colWid; | 2010 | w = colWid; |
2009 | h = dayLabelHei ; | 2011 | h = dayLabelHei ; |
2010 | for ( i = 0; i < 7; i++) { | 2012 | for ( i = 0; i < 7; i++) { |
2011 | if ( i == daysToShow-colModulo ) | 2013 | if ( i == daysToShow-colModulo ) |
diff --git a/korganizer/komonthview.h b/korganizer/komonthview.h index 0bd6b1c..a41eb54 100644 --- a/korganizer/komonthview.h +++ b/korganizer/komonthview.h | |||
@@ -89,257 +89,258 @@ class KNoScrollListBox: public QListBox | |||
89 | void highlightIncidence( Incidence * , MonthViewCell*, int ); | 89 | void highlightIncidence( Incidence * , MonthViewCell*, int ); |
90 | 90 | ||
91 | protected slots: | 91 | protected slots: |
92 | void oneDown(); | 92 | void oneDown(); |
93 | void keyPressEvent(QKeyEvent *); | 93 | void keyPressEvent(QKeyEvent *); |
94 | void keyReleaseEvent(QKeyEvent *); | 94 | void keyReleaseEvent(QKeyEvent *); |
95 | void mousePressEvent(QMouseEvent *); | 95 | void mousePressEvent(QMouseEvent *); |
96 | void focusInEvent ( QFocusEvent * ); | 96 | void focusInEvent ( QFocusEvent * ); |
97 | void focusOutEvent ( QFocusEvent * ); | 97 | void focusOutEvent ( QFocusEvent * ); |
98 | 98 | ||
99 | private: | 99 | private: |
100 | bool resetOnFocusIn; | 100 | bool resetOnFocusIn; |
101 | KNOWhatsThis * mWT; | 101 | KNOWhatsThis * mWT; |
102 | }; | 102 | }; |
103 | 103 | ||
104 | 104 | ||
105 | class MonthViewItem: public QListBoxItem | 105 | class MonthViewItem: public QListBoxItem |
106 | { | 106 | { |
107 | public: | 107 | public: |
108 | MonthViewItem( Incidence *,const QString & title ); | 108 | MonthViewItem( Incidence *,const QString & title ); |
109 | void recycle( Incidence *incidence, const QString & s); | 109 | void recycle( Incidence *incidence, const QString & s); |
110 | void setRecur(bool on) { mRecur = on; } | 110 | void setRecur(bool on) { mRecur = on; } |
111 | void setAlarm(bool on) { mAlarm = on; } | 111 | void setAlarm(bool on) { mAlarm = on; } |
112 | void setReply(bool on) { mReply = on; } | 112 | void setReply(bool on) { mReply = on; } |
113 | void setMoreInfo(bool on) { mInfo = on; } | 113 | void setMoreInfo(bool on) { mInfo = on; } |
114 | void setMultiDay(int type) { mMultiday = type; } | 114 | void setMultiDay(int type) { mMultiday = type; } |
115 | int multiDay() { return mMultiday; } | 115 | int multiDay() { return mMultiday; } |
116 | void setMultiDayPos(int type) { mdayPos = type; } | 116 | void setMultiDayPos(int type) { mdayPos = type; } |
117 | int gettMultiDayPos() { return mdayPos; } | 117 | int gettMultiDayPos() { return mdayPos; } |
118 | void setBlockRepaint(bool on) { mblockRepaint = on; } | 118 | void setBlockRepaint(bool on) { mblockRepaint = on; } |
119 | bool setHighlighted( Incidence * ); | 119 | bool setHighlighted( Incidence * ); |
120 | 120 | ||
121 | void setPalette(const QPalette &p) { mPalette = p; } | 121 | void setPalette(const QPalette &p) { mPalette = p; } |
122 | QPalette palette() const { return mPalette; } | 122 | QPalette palette() const { return mPalette; } |
123 | bool setHighlightedFalse(); | 123 | bool setHighlightedFalse(); |
124 | Incidence *incidence() const { return mIncidence; } | 124 | Incidence *incidence() const { return mIncidence; } |
125 | 125 | ||
126 | protected: | 126 | protected: |
127 | virtual void paint(QPainter *); | 127 | virtual void paint(QPainter *); |
128 | virtual int height(const QListBox *) const; | 128 | virtual int height(const QListBox *) const; |
129 | virtual int width(const QListBox *) const; | 129 | virtual int width(const QListBox *) const; |
130 | 130 | ||
131 | private: | 131 | private: |
132 | int mdayPos; | 132 | int mdayPos; |
133 | bool isWeekItem; | 133 | bool isWeekItem; |
134 | bool mblockRepaint; | 134 | bool mblockRepaint; |
135 | int mMultiday; | 135 | int mMultiday; |
136 | bool mRecur; | 136 | bool mRecur; |
137 | bool mAlarm; | 137 | bool mAlarm; |
138 | bool mReply; | 138 | bool mReply; |
139 | bool mInfo; | 139 | bool mInfo; |
140 | bool mDisplayHighlighted; | 140 | bool mDisplayHighlighted; |
141 | 141 | ||
142 | QPalette mPalette; | 142 | QPalette mPalette; |
143 | QDate mDate; | 143 | QDate mDate; |
144 | 144 | ||
145 | Incidence *mIncidence; | 145 | Incidence *mIncidence; |
146 | }; | 146 | }; |
147 | 147 | ||
148 | 148 | ||
149 | class KOMonthView; | 149 | class KOMonthView; |
150 | 150 | ||
151 | class MonthViewCell : public KNoScrollListBox | 151 | class MonthViewCell : public KNoScrollListBox |
152 | { | 152 | { |
153 | Q_OBJECT | 153 | Q_OBJECT |
154 | public: | 154 | public: |
155 | MonthViewCell(KOMonthView *,QWidget* ); | 155 | MonthViewCell(KOMonthView *,QWidget* ); |
156 | ~MonthViewCell() {mAvailItemList.setAutoDelete( true );} | 156 | ~MonthViewCell() {mAvailItemList.setAutoDelete( true );} |
157 | 157 | ||
158 | void setDate( const QDate & ); | 158 | void setDate( const QDate & ); |
159 | QDate date() const; | 159 | QDate date() const; |
160 | 160 | ||
161 | void setPrimary( bool ); | 161 | void setPrimary( bool ); |
162 | bool isPrimary() const; | 162 | bool isPrimary() const; |
163 | 163 | ||
164 | void setHoliday( bool ); | 164 | void setHoliday( bool ); |
165 | void setHoliday( const QString & ); | 165 | void setHoliday( const QString & ); |
166 | 166 | ||
167 | void updateCell(); | 167 | void updateCell(); |
168 | void startUpdateCell(); | 168 | void startUpdateCell(); |
169 | void finishUpdateCell(); | 169 | void finishUpdateCell(); |
170 | int insertEvent(Event *); | 170 | int insertEvent(Event *); |
171 | void insertTodo(Todo *); | 171 | void insertTodo(Todo *); |
172 | 172 | ||
173 | void updateConfig( bool bigFont = false ); | 173 | void updateConfig( bool bigFont = false ); |
174 | 174 | ||
175 | void enableScrollBars( bool ); | 175 | void enableScrollBars( bool ); |
176 | 176 | ||
177 | Incidence *selectedIncidence(); | 177 | Incidence *selectedIncidence(); |
178 | QDate selectedIncidenceDate(); | 178 | QDate selectedIncidenceDate(); |
179 | QPushButton * dateLabel() { return mLabel; } | 179 | QPushButton * dateLabel() { return mLabel; } |
180 | bool doHighLight( Incidence *); | 180 | bool doHighLight( Incidence *); |
181 | void deselect(); | 181 | void deselect(); |
182 | void select(); | 182 | void select(); |
183 | #ifdef DESKTOP_VERSION | 183 | #ifdef DESKTOP_VERSION |
184 | static QToolTipGroup *toolTipGroup(); | 184 | static QToolTipGroup *toolTipGroup(); |
185 | #endif | 185 | #endif |
186 | signals: | 186 | signals: |
187 | void defaultAction( Incidence * ); | 187 | void defaultAction( Incidence * ); |
188 | void newEventSignal( QDateTime ); | 188 | void newEventSignal( QDateTime ); |
189 | void showDaySignal( QDate ); | 189 | void showDaySignal( QDate ); |
190 | 190 | ||
191 | protected: | 191 | protected: |
192 | QStringList mToolTip; | 192 | QStringList mToolTip; |
193 | void resizeEvent( QResizeEvent * ); | 193 | void resizeEvent( QResizeEvent * ); |
194 | 194 | ||
195 | public slots: | 195 | public slots: |
196 | void showDay(); | 196 | void showDay(); |
197 | void deHighLight(); | 197 | void deHighLight(); |
198 | void repaintfinishUpdateCell(); | 198 | void repaintfinishUpdateCell(); |
199 | protected slots: | 199 | protected slots: |
200 | void defaultAction( QListBoxItem * ); | 200 | void defaultAction( QListBoxItem * ); |
201 | void contextMenu( QListBoxItem * ); | 201 | void contextMenu( QListBoxItem * ); |
202 | void selection( QListBoxItem * ); | 202 | void selection( QListBoxItem * ); |
203 | void cellClicked( QListBoxItem * ); | 203 | void cellClicked( QListBoxItem * ); |
204 | void newEvent(); | 204 | void newEvent(); |
205 | 205 | ||
206 | private: | 206 | private: |
207 | int mdayCount; | 207 | int mdayCount; |
208 | QPtrList <MonthViewItem> mAvailItemList; | 208 | QPtrList <MonthViewItem> mAvailItemList; |
209 | KOMonthView *mMonthView; | 209 | KOMonthView *mMonthView; |
210 | int currentPalette; | 210 | int currentPalette; |
211 | 211 | ||
212 | QDate mDate; | 212 | QDate mDate; |
213 | bool mPrimary; | 213 | bool mPrimary; |
214 | bool mHoliday; | 214 | bool mHoliday; |
215 | QString mHolidayString; | 215 | QString mHolidayString; |
216 | 216 | ||
217 | //QLabel *mLabel; | 217 | //QLabel *mLabel; |
218 | QPushButton *mLabel; | 218 | QPushButton *mLabel; |
219 | //QListBox *mItemList; | 219 | //QListBox *mItemList; |
220 | #ifdef DESKTOP_VERSION | 220 | #ifdef DESKTOP_VERSION |
221 | static QToolTipGroup *mToolTipGroup; | 221 | static QToolTipGroup *mToolTipGroup; |
222 | #endif | 222 | #endif |
223 | QSize mLabelSize; | 223 | QSize mLabelSize; |
224 | QSize mLabelBigSize; | 224 | QSize mLabelBigSize; |
225 | QPalette mHolidayPalette; | 225 | QPalette mHolidayPalette; |
226 | QPalette mStandardPalette; | 226 | QPalette mStandardPalette; |
227 | QPalette mPrimaryPalette; | 227 | QPalette mPrimaryPalette; |
228 | QPalette mNonPrimaryPalette; | 228 | QPalette mNonPrimaryPalette; |
229 | void setMyPalette(); | 229 | void setMyPalette(); |
230 | QPalette getPalette (); | 230 | QPalette getPalette (); |
231 | 231 | ||
232 | }; | 232 | }; |
233 | 233 | ||
234 | 234 | ||
235 | class KOMonthView: public KOEventView | 235 | class KOMonthView: public KOEventView |
236 | { | 236 | { |
237 | Q_OBJECT | 237 | Q_OBJECT |
238 | public: | 238 | public: |
239 | KOMonthView(Calendar *cal, QWidget *parent = 0, const char *name = 0 ); | 239 | KOMonthView(Calendar *cal, QWidget *parent = 0, const char *name = 0 ); |
240 | ~KOMonthView(); | 240 | ~KOMonthView(); |
241 | 241 | ||
242 | /** Returns maximum number of days supported by the komonthview */ | 242 | /** Returns maximum number of days supported by the komonthview */ |
243 | virtual int maxDatesHint(); | 243 | virtual int maxDatesHint(); |
244 | 244 | ||
245 | /** Returns number of currently shown dates. */ | 245 | /** Returns number of currently shown dates. */ |
246 | virtual int currentDateCount(); | 246 | virtual int currentDateCount(); |
247 | 247 | ||
248 | /** returns the currently selected events */ | 248 | /** returns the currently selected events */ |
249 | virtual QPtrList<Incidence> selectedIncidences(); | 249 | virtual QPtrList<Incidence> selectedIncidences(); |
250 | 250 | ||
251 | /** returns dates of the currently selected events */ | 251 | /** returns dates of the currently selected events */ |
252 | virtual DateList selectedDates(); | 252 | virtual DateList selectedDates(); |
253 | 253 | ||
254 | virtual void printPreview(CalPrinter *calPrinter, | 254 | virtual void printPreview(CalPrinter *calPrinter, |
255 | const QDate &, const QDate &); | 255 | const QDate &, const QDate &); |
256 | bool isMonthView() { return !mShowWeekView; } | 256 | bool isMonthView() { return !mShowWeekView; } |
257 | bool isUpdatePossible() { return updatePossible; } | 257 | bool isUpdatePossible() { return updatePossible; } |
258 | 258 | ||
259 | MonthViewCell * selectedCell(); | 259 | MonthViewCell * selectedCell(); |
260 | bool skipResize; | 260 | bool skipResize; |
261 | NavigatorBar* navigatorBar() { return mNavigatorBar ;} | 261 | NavigatorBar* navigatorBar() { return mNavigatorBar ;} |
262 | void clearList(); | 262 | void clearList(); |
263 | public slots: | 263 | public slots: |
264 | void incidenceHighlighted( Incidence *, MonthViewCell*, int ); | 264 | void incidenceHighlighted( Incidence *, MonthViewCell*, int ); |
265 | void nextCell(); | 265 | void nextCell(); |
266 | void prevCell(); | 266 | void prevCell(); |
267 | virtual void updateView(); | 267 | virtual void updateView(); |
268 | virtual void updateConfig(); | 268 | virtual void updateConfig(); |
269 | virtual void showDates(const QDate &start, const QDate &end); | 269 | virtual void showDates(const QDate &start, const QDate &end); |
270 | virtual void showEvents(QPtrList<Event> eventList); | 270 | virtual void showEvents(QPtrList<Event> eventList); |
271 | 271 | ||
272 | void changeEventDisplay(Event *, int); | 272 | void changeEventDisplay(Event *, int); |
273 | 273 | ||
274 | void clearSelection(); | 274 | void clearSelection(); |
275 | 275 | ||
276 | void showContextMenu( Incidence * ); | 276 | void showContextMenu( Incidence * ); |
277 | 277 | ||
278 | void setSelectedCell( MonthViewCell * ); | 278 | void setSelectedCell( MonthViewCell * ); |
279 | void setPopupCell( MonthViewCell * ); | 279 | void setPopupCell( MonthViewCell * ); |
280 | void switchView(); | 280 | void switchView(); |
281 | void setKeyBoardFocus(); | ||
282 | void setKeyBFocus(); | 281 | void setKeyBFocus(); |
283 | 282 | ||
284 | protected slots: | 283 | protected slots: |
284 | void setKeyBoardFocus(); | ||
285 | void slotNewTodo(); | 285 | void slotNewTodo(); |
286 | void slotNewEvent(); | 286 | void slotNewEvent(); |
287 | void slotEditJournal(); | 287 | void slotEditJournal(); |
288 | void slotComputeLayout(); | 288 | void slotComputeLayout(); |
289 | void selectInternalWeekNum ( int ); | 289 | void selectInternalWeekNum ( int ); |
290 | void processSelectionChange(); | 290 | void processSelectionChange(); |
291 | signals: | 291 | signals: |
292 | void nextMonth(); | 292 | void nextMonth(); |
293 | void prevMonth(); | 293 | void prevMonth(); |
294 | void selectWeekNum ( int ); | 294 | void selectWeekNum ( int ); |
295 | void selectMonth (); | 295 | void selectMonth (); |
296 | void showDaySignal( QDate ); | 296 | void showDaySignal( QDate ); |
297 | void newTodoSignal( QDateTime, bool ); | 297 | void newTodoSignal( QDateTime, bool ); |
298 | void showJournalSignal( int,QDate ); | 298 | void showJournalSignal( int,QDate ); |
299 | protected: | 299 | protected: |
300 | void resizeEvent(QResizeEvent *); | 300 | void resizeEvent(QResizeEvent *); |
301 | void viewChanged(); | 301 | void viewChanged(); |
302 | void updateDayLabels(); | 302 | void updateDayLabels(); |
303 | 303 | ||
304 | private: | 304 | private: |
305 | int mKBFcounter; | ||
305 | QTimer* mComputeLayoutTimer; | 306 | QTimer* mComputeLayoutTimer; |
306 | NavigatorBar* mNavigatorBar; | 307 | NavigatorBar* mNavigatorBar; |
307 | int currentWeek(); | 308 | int currentWeek(); |
308 | bool clPending; | 309 | bool clPending; |
309 | QWidgetStack * mWidStack; | 310 | QWidgetStack * mWidStack; |
310 | QWidget* mMonthView; | 311 | QWidget* mMonthView; |
311 | QWidget* mWeekView; | 312 | QWidget* mWeekView; |
312 | bool mShowWeekView; | 313 | bool mShowWeekView; |
313 | bool updatePossible; | 314 | bool updatePossible; |
314 | int mDaysPerWeek; | 315 | int mDaysPerWeek; |
315 | int mNumWeeks; | 316 | int mNumWeeks; |
316 | int mNumCells; | 317 | int mNumCells; |
317 | //bool mWeekStartsMonday; | 318 | //bool mWeekStartsMonday; |
318 | bool mShowSatSunComp; | 319 | bool mShowSatSunComp; |
319 | void computeLayout(); | 320 | void computeLayout(); |
320 | void computeLayoutWeek(); | 321 | void computeLayoutWeek(); |
321 | 322 | ||
322 | QPtrVector<MonthViewCell> mCells; | 323 | QPtrVector<MonthViewCell> mCells; |
323 | QPtrVector<QLabel> mDayLabels; | 324 | QPtrVector<QLabel> mDayLabels; |
324 | QPtrVector<KOWeekButton> mWeekLabels; | 325 | QPtrVector<KOWeekButton> mWeekLabels; |
325 | QPtrVector<MonthViewCell> mCellsW; | 326 | QPtrVector<MonthViewCell> mCellsW; |
326 | QPtrVector<QLabel> mDayLabelsW; | 327 | QPtrVector<QLabel> mDayLabelsW; |
327 | QPtrVector<KOWeekButton> mWeekLabelsW; | 328 | QPtrVector<KOWeekButton> mWeekLabelsW; |
328 | 329 | ||
329 | bool mShortDayLabelsM; | 330 | bool mShortDayLabelsM; |
330 | bool mShortDayLabelsW; | 331 | bool mShortDayLabelsW; |
331 | int mWidthLongDayLabel; | 332 | int mWidthLongDayLabel; |
332 | 333 | ||
333 | QDate mStartDate; | 334 | QDate mStartDate; |
334 | 335 | ||
335 | MonthViewCell *mSelectedCell; | 336 | MonthViewCell *mSelectedCell; |
336 | MonthViewCell *mPopupCell; | 337 | MonthViewCell *mPopupCell; |
337 | bool mFlagKeyPressed; | 338 | bool mFlagKeyPressed; |
338 | KOEventPopupMenu *mContextMenu; | 339 | KOEventPopupMenu *mContextMenu; |
339 | QPopupMenu *mNewItemMenu; | 340 | QPopupMenu *mNewItemMenu; |
340 | void keyPressEvent ( QKeyEvent * ) ; | 341 | void keyPressEvent ( QKeyEvent * ) ; |
341 | void keyReleaseEvent ( QKeyEvent * ) ; | 342 | void keyReleaseEvent ( QKeyEvent * ) ; |
342 | 343 | ||
343 | }; | 344 | }; |
344 | 345 | ||
345 | #endif | 346 | #endif |
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp index 862d437..f68f032 100644 --- a/korganizer/mainwindow.cpp +++ b/korganizer/mainwindow.cpp | |||
@@ -1723,412 +1723,417 @@ void MainWindow::processIncidenceSelection( Incidence *incidence ) | |||
1723 | void MainWindow::enableIncidenceActions( bool enabled ) | 1723 | void MainWindow::enableIncidenceActions( bool enabled ) |
1724 | { | 1724 | { |
1725 | 1725 | ||
1726 | #ifndef DESKTOP_VERSION | 1726 | #ifndef DESKTOP_VERSION |
1727 | mCurrentItemMenu->setEnabled( enabled ); | 1727 | mCurrentItemMenu->setEnabled( enabled ); |
1728 | #else | 1728 | #else |
1729 | mShowAction->setEnabled( enabled ); | 1729 | mShowAction->setEnabled( enabled ); |
1730 | mEditAction->setEnabled( enabled ); | 1730 | mEditAction->setEnabled( enabled ); |
1731 | mDeleteAction->setEnabled( enabled ); | 1731 | mDeleteAction->setEnabled( enabled ); |
1732 | 1732 | ||
1733 | mCloneAction->setEnabled( enabled ); | 1733 | mCloneAction->setEnabled( enabled ); |
1734 | mMoveAction->setEnabled( enabled ); | 1734 | mMoveAction->setEnabled( enabled ); |
1735 | mBeamAction->setEnabled( enabled ); | 1735 | mBeamAction->setEnabled( enabled ); |
1736 | mCancelAction->setEnabled( enabled ); | 1736 | mCancelAction->setEnabled( enabled ); |
1737 | #endif | 1737 | #endif |
1738 | } | 1738 | } |
1739 | 1739 | ||
1740 | void MainWindow::importOL() | 1740 | void MainWindow::importOL() |
1741 | { | 1741 | { |
1742 | #ifdef _OL_IMPORT_ | 1742 | #ifdef _OL_IMPORT_ |
1743 | mView->clearAllViews(); | 1743 | mView->clearAllViews(); |
1744 | KOImportOLdialog *id = new KOImportOLdialog("Import from OL - select folder!" , mView->calendar(),this ); | 1744 | KOImportOLdialog *id = new KOImportOLdialog("Import from OL - select folder!" , mView->calendar(),this ); |
1745 | id->exec(); | 1745 | id->exec(); |
1746 | delete id; | 1746 | delete id; |
1747 | mView->calendar()->checkAlarmForIncidence( 0, true ); | 1747 | mView->calendar()->checkAlarmForIncidence( 0, true ); |
1748 | mView->updateView(); | 1748 | mView->updateView(); |
1749 | #endif | 1749 | #endif |
1750 | } | 1750 | } |
1751 | void MainWindow::importBday() | 1751 | void MainWindow::importBday() |
1752 | { | 1752 | { |
1753 | int result = QMessageBox::warning( this, i18n("KO/Pi import information!"), | 1753 | int result = QMessageBox::warning( this, i18n("KO/Pi import information!"), |
1754 | i18n("When importing birthdays twice\nduplicated events will be ignored,\nif the event has not been\nchanged in KO/Pi!\n"), | 1754 | i18n("When importing birthdays twice\nduplicated events will be ignored,\nif the event has not been\nchanged in KO/Pi!\n"), |
1755 | i18n("Import!"), i18n("Cancel"), 0, | 1755 | i18n("Import!"), i18n("Cancel"), 0, |
1756 | 0, 1 ); | 1756 | 0, 1 ); |
1757 | if ( result == 0 ) { | 1757 | if ( result == 0 ) { |
1758 | mView->importBday(); | 1758 | mView->importBday(); |
1759 | 1759 | ||
1760 | } | 1760 | } |
1761 | 1761 | ||
1762 | 1762 | ||
1763 | } | 1763 | } |
1764 | void MainWindow::importQtopia() | 1764 | void MainWindow::importQtopia() |
1765 | { | 1765 | { |
1766 | //#ifndef DESKTOP_VERSION | 1766 | //#ifndef DESKTOP_VERSION |
1767 | QString mess = i18n("When importing a calendar twice\nduplicated events will be ignored!\nYou can create a backup file with\nFile - Save Calendar Backup\nto revert importing"); | 1767 | QString mess = i18n("When importing a calendar twice\nduplicated events will be ignored!\nYou can create a backup file with\nFile - Save Calendar Backup\nto revert importing"); |
1768 | #ifdef DESKTOP_VERSION | 1768 | #ifdef DESKTOP_VERSION |
1769 | mess += i18n("The content of the following files will be\nimported (located in your home directory (hd)):\n(hd)/Applications/datebook/datebook.xml\n(hd)/Applications/todolist/todolist.xml\nThe following category file will be used:\n(hd)/Settings/Categories.xml"); | 1769 | mess += i18n("The content of the following files will be\nimported (located in your home directory (hd)):\n(hd)/Applications/datebook/datebook.xml\n(hd)/Applications/todolist/todolist.xml\nThe following category file will be used:\n(hd)/Settings/Categories.xml"); |
1770 | #endif | 1770 | #endif |
1771 | int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mess, | 1771 | int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mess, |
1772 | i18n("Import!"), i18n("Cancel"), 0, | 1772 | i18n("Import!"), i18n("Cancel"), 0, |
1773 | 0, 1 ); | 1773 | 0, 1 ); |
1774 | if ( result == 0 ) { | 1774 | if ( result == 0 ) { |
1775 | #ifndef DESKTOP_VERSION | 1775 | #ifndef DESKTOP_VERSION |
1776 | QString datebook = Global::applicationFileName( "datebook", "datebook.xml"); | 1776 | QString datebook = Global::applicationFileName( "datebook", "datebook.xml"); |
1777 | QString todolist = Global::applicationFileName( "todolist", "todolist.xml"); | 1777 | QString todolist = Global::applicationFileName( "todolist", "todolist.xml"); |
1778 | QString categories = QString( getenv( "HOME" ) ) + "/Settings/Categories.xml"; | 1778 | QString categories = QString( getenv( "HOME" ) ) + "/Settings/Categories.xml"; |
1779 | #else | 1779 | #else |
1780 | QString datebook = QDir::homeDirPath()+ "/Applications/datebook/datebook.xml"; | 1780 | QString datebook = QDir::homeDirPath()+ "/Applications/datebook/datebook.xml"; |
1781 | QString todolist = QDir::homeDirPath()+ "/Applications/todolist/todolist.xml"; | 1781 | QString todolist = QDir::homeDirPath()+ "/Applications/todolist/todolist.xml"; |
1782 | QString categories = QDir::homeDirPath()+ "/Settings/Categories.xml"; | 1782 | QString categories = QDir::homeDirPath()+ "/Settings/Categories.xml"; |
1783 | #endif | 1783 | #endif |
1784 | mView->importQtopia( categories, datebook, todolist ); | 1784 | mView->importQtopia( categories, datebook, todolist ); |
1785 | } | 1785 | } |
1786 | mView->calendar()->reInitAlarmSettings(); | 1786 | mView->calendar()->reInitAlarmSettings(); |
1787 | #if 0 | 1787 | #if 0 |
1788 | int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), | 1788 | int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), |
1789 | i18n("Not supported \non desktop!\n"), | 1789 | i18n("Not supported \non desktop!\n"), |
1790 | i18n("Ok"), i18n("Cancel"), 0, | 1790 | i18n("Ok"), i18n("Cancel"), 0, |
1791 | 0, 1 ); | 1791 | 0, 1 ); |
1792 | 1792 | ||
1793 | #endif | 1793 | #endif |
1794 | } | 1794 | } |
1795 | 1795 | ||
1796 | void MainWindow::saveOnClose() | 1796 | void MainWindow::saveOnClose() |
1797 | { | 1797 | { |
1798 | KOPrefs *p = KOPrefs::instance(); | 1798 | KOPrefs *p = KOPrefs::instance(); |
1799 | p->mToolBarHor = ( iconToolBar->orientation () == Qt:: Horizontal ); | 1799 | p->mToolBarHor = ( iconToolBar->orientation () == Qt:: Horizontal ); |
1800 | p->mToolBarHorV = ( viewToolBar->orientation () == Qt:: Horizontal ); | 1800 | p->mToolBarHorV = ( viewToolBar->orientation () == Qt:: Horizontal ); |
1801 | p->mToolBarHorN = ( navigatorToolBar->orientation () == Qt:: Horizontal ); | 1801 | p->mToolBarHorN = ( navigatorToolBar->orientation () == Qt:: Horizontal ); |
1802 | if ( filterToolBar ) { | 1802 | if ( filterToolBar ) { |
1803 | p->mToolBarHorF = ( filterToolBar->orientation () == Qt:: Horizontal ); | 1803 | p->mToolBarHorF = ( filterToolBar->orientation () == Qt:: Horizontal ); |
1804 | } | 1804 | } |
1805 | #ifdef DESKTOP_VERSION | 1805 | #ifdef DESKTOP_VERSION |
1806 | 1806 | ||
1807 | QPoint myP; | 1807 | QPoint myP; |
1808 | myP = mapFromGlobal( iconToolBar->mapToGlobal( QPoint( 0,0) ) ); | 1808 | myP = mapFromGlobal( iconToolBar->mapToGlobal( QPoint( 0,0) ) ); |
1809 | if ( p->mToolBarHor ) | 1809 | if ( p->mToolBarHor ) |
1810 | p->mToolBarUp = myP.y() > height()/2; | 1810 | p->mToolBarUp = myP.y() > height()/2; |
1811 | else | 1811 | else |
1812 | p->mToolBarUp = myP.x() > width()/2; | 1812 | p->mToolBarUp = myP.x() > width()/2; |
1813 | myP = mapFromGlobal( viewToolBar->mapToGlobal( QPoint( 0,0) ) ); | 1813 | myP = mapFromGlobal( viewToolBar->mapToGlobal( QPoint( 0,0) ) ); |
1814 | if ( p->mToolBarHorV ) | 1814 | if ( p->mToolBarHorV ) |
1815 | p->mToolBarUpV = myP.y() > height()/2; | 1815 | p->mToolBarUpV = myP.y() > height()/2; |
1816 | else | 1816 | else |
1817 | p->mToolBarUpV = myP.x() > width()/2 ; | 1817 | p->mToolBarUpV = myP.x() > width()/2 ; |
1818 | myP = mapFromGlobal( navigatorToolBar->mapToGlobal( QPoint( 0,0) ) ); | 1818 | myP = mapFromGlobal( navigatorToolBar->mapToGlobal( QPoint( 0,0) ) ); |
1819 | if ( p->mToolBarHorN ) | 1819 | if ( p->mToolBarHorN ) |
1820 | p->mToolBarUpN = myP.y() > height()/2; | 1820 | p->mToolBarUpN = myP.y() > height()/2; |
1821 | else | 1821 | else |
1822 | p->mToolBarUpN = myP.x() > width()/2 ; | 1822 | p->mToolBarUpN = myP.x() > width()/2 ; |
1823 | if ( filterToolBar ) { | 1823 | if ( filterToolBar ) { |
1824 | myP = mapFromGlobal( filterToolBar->mapToGlobal( QPoint( 0,0) ) ); | 1824 | myP = mapFromGlobal( filterToolBar->mapToGlobal( QPoint( 0,0) ) ); |
1825 | if ( p->mToolBarHorF ) | 1825 | if ( p->mToolBarHorF ) |
1826 | p->mToolBarUpF = myP.y() > height()/2; | 1826 | p->mToolBarUpF = myP.y() > height()/2; |
1827 | else | 1827 | else |
1828 | p->mToolBarUpF = myP.x() > width()/2 ; | 1828 | p->mToolBarUpF = myP.x() > width()/2 ; |
1829 | } | 1829 | } |
1830 | #else | 1830 | #else |
1831 | if ( p->mToolBarHor ) | 1831 | if ( p->mToolBarHor ) |
1832 | p->mToolBarUp = iconToolBar->y() > height()/2; | 1832 | p->mToolBarUp = iconToolBar->y() > height()/2; |
1833 | else | 1833 | else |
1834 | p->mToolBarUp = iconToolBar->x() > width()/2; | 1834 | p->mToolBarUp = iconToolBar->x() > width()/2; |
1835 | if ( p->mToolBarHorV ) | 1835 | if ( p->mToolBarHorV ) |
1836 | p->mToolBarUpV = viewToolBar->y() > height()/2; | 1836 | p->mToolBarUpV = viewToolBar->y() > height()/2; |
1837 | else | 1837 | else |
1838 | p->mToolBarUpV = viewToolBar->x() > width()/2 ; | 1838 | p->mToolBarUpV = viewToolBar->x() > width()/2 ; |
1839 | 1839 | ||
1840 | if ( p->mToolBarHorN ) | 1840 | if ( p->mToolBarHorN ) |
1841 | p->mToolBarUpN = navigatorToolBar->y() > height()/2; | 1841 | p->mToolBarUpN = navigatorToolBar->y() > height()/2; |
1842 | else | 1842 | else |
1843 | p->mToolBarUpN = navigatorToolBar->x() > width()/2 ; | 1843 | p->mToolBarUpN = navigatorToolBar->x() > width()/2 ; |
1844 | if ( filterToolBar ) { | 1844 | if ( filterToolBar ) { |
1845 | if ( p->mToolBarHorF ) | 1845 | if ( p->mToolBarHorF ) |
1846 | p->mToolBarUpF = filterToolBar->y() > height()/2; | 1846 | p->mToolBarUpF = filterToolBar->y() > height()/2; |
1847 | else | 1847 | else |
1848 | p->mToolBarUpF = filterToolBar->x() > width()/2 ; | 1848 | p->mToolBarUpF = filterToolBar->x() > width()/2 ; |
1849 | } | 1849 | } |
1850 | #endif | 1850 | #endif |
1851 | save(); | 1851 | save(); |
1852 | mView->writeSettings(); | 1852 | mView->writeSettings(); |
1853 | mView->checkSuspendAlarm(); | 1853 | mView->checkSuspendAlarm(); |
1854 | } | 1854 | } |
1855 | void MainWindow::slotModifiedChanged( bool ) | 1855 | void MainWindow::slotModifiedChanged( bool ) |
1856 | { | 1856 | { |
1857 | if ( mBlockAtStartup ) | 1857 | if ( mBlockAtStartup ) |
1858 | return; | 1858 | return; |
1859 | 1859 | ||
1860 | int msec; | 1860 | int msec; |
1861 | // we store the changes after 1 minute, | 1861 | // we store the changes after 1 minute, |
1862 | // and for safety reasons after 10 minutes again | 1862 | // and for safety reasons after 10 minutes again |
1863 | if ( !mSyncManager->blockSave() ) | 1863 | if ( !mSyncManager->blockSave() ) |
1864 | msec = (1000 * 60*KOPrefs::instance()->mAutoSaveInterval) +1000; | 1864 | msec = (1000 * 60*KOPrefs::instance()->mAutoSaveInterval) +1000; |
1865 | else | 1865 | else |
1866 | msec = 1000 * 600; | 1866 | msec = 1000 * 600; |
1867 | mSaveTimer.start( msec, true ); // 1 minute | 1867 | mSaveTimer.start( msec, true ); // 1 minute |
1868 | qDebug("KO: Saving File in %d secs!", msec/1000); | 1868 | qDebug("KO: Saving File in %d secs!", msec/1000); |
1869 | mCalendarModifiedFlag = true; | 1869 | mCalendarModifiedFlag = true; |
1870 | } | 1870 | } |
1871 | void MainWindow::saveStopTimer() | 1871 | void MainWindow::saveStopTimer() |
1872 | { | 1872 | { |
1873 | mSaveTimer.stop(); | 1873 | mSaveTimer.stop(); |
1874 | } | 1874 | } |
1875 | void MainWindow::backupAllFiles() | 1875 | void MainWindow::backupAllFiles() |
1876 | { | 1876 | { |
1877 | QDate reference ( 2000,1,1); | 1877 | QDate reference ( 2000,1,1); |
1878 | int daysTo = reference.daysTo ( QDate::currentDate() ); | 1878 | int daysTo = reference.daysTo ( QDate::currentDate() ); |
1879 | setCaption(i18n("Creating backup ... please wait ..." )); | 1879 | setCaption(i18n("Creating backup ... please wait ..." )); |
1880 | qDebug("KO: Last backup was %d days ago ", daysTo - KOPrefs::instance()->mLastBackupDate); | 1880 | qDebug("KO: Last backup was %d days ago ", daysTo - KOPrefs::instance()->mLastBackupDate); |
1881 | // we need the file path, the backup dir and the number of bups as param | 1881 | // we need the file path, the backup dir and the number of bups as param |
1882 | QString bupDir = KPimGlobalPrefs::instance()->mBackupDatadir; | 1882 | QString bupDir = KPimGlobalPrefs::instance()->mBackupDatadir; |
1883 | if ( KPimGlobalPrefs::instance()->mBackupUseDefaultDir) | 1883 | if ( KPimGlobalPrefs::instance()->mBackupUseDefaultDir) |
1884 | bupDir = KGlobalSettings::backupDataDir(); | 1884 | bupDir = KGlobalSettings::backupDataDir(); |
1885 | int retval = KApplication::createBackup( defaultFileName(), bupDir, KPimGlobalPrefs::instance()->mBackupNumbers ); | 1885 | int retval = KApplication::createBackup( defaultFileName(), bupDir, KPimGlobalPrefs::instance()->mBackupNumbers ); |
1886 | if ( retval == 0 ) { | 1886 | if ( retval == 0 ) { |
1887 | setCaption(i18n("Backup cancelled" )); | 1887 | setCaption(i18n("Backup cancelled" )); |
1888 | qDebug("KO: Backup cancelled. Will try again tomorrow "); | 1888 | qDebug("KO: Backup cancelled. Will try again tomorrow "); |
1889 | // retval == 0 : backup skipped for today, try again tomorrow | 1889 | // retval == 0 : backup skipped for today, try again tomorrow |
1890 | KOPrefs::instance()->mLastBackupDate = daysTo- KPimGlobalPrefs::instance()->mBackupDayCount+1; | 1890 | KOPrefs::instance()->mLastBackupDate = daysTo- KPimGlobalPrefs::instance()->mBackupDayCount+1; |
1891 | } else if ( retval == 1 ){ | 1891 | } else if ( retval == 1 ){ |
1892 | qDebug("KO: Backup created."); | 1892 | qDebug("KO: Backup created."); |
1893 | // backup ok | 1893 | // backup ok |
1894 | QPtrList<KopiCalendarFile> calendars = KOPrefs::instance()->mCalendars; | 1894 | QPtrList<KopiCalendarFile> calendars = KOPrefs::instance()->mCalendars; |
1895 | KopiCalendarFile * cal = calendars.first(); | 1895 | KopiCalendarFile * cal = calendars.first(); |
1896 | cal = calendars.next(); | 1896 | cal = calendars.next(); |
1897 | while ( cal ) { | 1897 | while ( cal ) { |
1898 | if ( !cal->mErrorOnLoad ) { | 1898 | if ( !cal->mErrorOnLoad ) { |
1899 | KApplication::createBackup( cal->mFileName, bupDir, KPimGlobalPrefs::instance()->mBackupNumbers ); | 1899 | KApplication::createBackup( cal->mFileName, bupDir, KPimGlobalPrefs::instance()->mBackupNumbers ); |
1900 | } | 1900 | } |
1901 | cal = calendars.next(); | 1901 | cal = calendars.next(); |
1902 | } | 1902 | } |
1903 | KOPrefs::instance()->mLastBackupDate = daysTo; | 1903 | KOPrefs::instance()->mLastBackupDate = daysTo; |
1904 | setCaption(i18n("Backup succesfully finished" )); | 1904 | setCaption(i18n("Backup succesfully finished" )); |
1905 | } else if ( retval == 2 ){ | 1905 | } else if ( retval == 2 ){ |
1906 | setCaption(i18n("Backup globally disabled" )); | 1906 | setCaption(i18n("Backup globally disabled" )); |
1907 | qDebug("KO: Backup globally cancelled."); | 1907 | qDebug("KO: Backup globally cancelled."); |
1908 | // backup globally cancelled | 1908 | // backup globally cancelled |
1909 | KPimGlobalPrefs::instance()->mBackupEnabled = false; | 1909 | KPimGlobalPrefs::instance()->mBackupEnabled = false; |
1910 | } | 1910 | } |
1911 | // retval == 3: do nothing, try again later | 1911 | // retval == 3: do nothing, try again later |
1912 | } | 1912 | } |
1913 | void MainWindow::save() | 1913 | void MainWindow::save() |
1914 | { | 1914 | { |
1915 | |||
1915 | if ( mView->viewManager()->journalView() ) | 1916 | if ( mView->viewManager()->journalView() ) |
1916 | mView->viewManager()->journalView()->checkModified(); | 1917 | mView->viewManager()->journalView()->checkModified(); |
1917 | if ( !mCalendarModifiedFlag ) { | 1918 | if ( !mCalendarModifiedFlag ) { |
1918 | qDebug("KO: Calendar not modified. Nothing saved."); | 1919 | qDebug("KO: Calendar not modified. Nothing saved."); |
1919 | return; | 1920 | return; |
1920 | } | 1921 | } |
1921 | if ( mSyncManager->blockSave() ) | 1922 | if ( mSyncManager->blockSave() ) |
1922 | return; | 1923 | return; |
1923 | mSyncManager->setBlockSave(true); | 1924 | mSyncManager->setBlockSave(true); |
1924 | if ( mView->checkAllFileVersions() ) { | 1925 | if ( mView->checkAllFileVersions() ) { |
1925 | if ( KPimGlobalPrefs::instance()->mBackupEnabled ){ | 1926 | if ( KPimGlobalPrefs::instance()->mBackupEnabled ){ |
1926 | QDate reference ( 2000,1,1); | 1927 | QDate reference ( 2000,1,1); |
1927 | int daysTo = reference.daysTo ( QDate::currentDate() ); | 1928 | int daysTo = reference.daysTo ( QDate::currentDate() ); |
1928 | if ( daysTo - KPimGlobalPrefs::instance()->mBackupDayCount >= KOPrefs::instance()->mLastBackupDate ) { | 1929 | if ( daysTo - KPimGlobalPrefs::instance()->mBackupDayCount >= KOPrefs::instance()->mLastBackupDate ) { |
1929 | backupAllFiles(); | 1930 | backupAllFiles(); |
1930 | } | 1931 | } |
1931 | ; // KPimGlobalPrefs::instance()->mLastBackupDate | 1932 | ; // KPimGlobalPrefs::instance()->mLastBackupDate |
1932 | } | 1933 | } |
1933 | QTime neededSaveTime = QDateTime::currentDateTime().time(); | 1934 | QTime neededSaveTime = QDateTime::currentDateTime().time(); |
1934 | setCaption(i18n("KO/Pi:Saving Data to File ..." )); | 1935 | if ( !isMinimized () ) |
1936 | setCaption(i18n("KO/Pi:Saving Data to File ..." )); | ||
1935 | qDebug("KO: Start saving data to file!"); | 1937 | qDebug("KO: Start saving data to file!"); |
1936 | mView->saveCalendars(); | 1938 | mView->saveCalendars(); |
1937 | mCalendarModifiedFlag = false; | 1939 | mCalendarModifiedFlag = false; |
1938 | int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() ); | 1940 | int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() ); |
1939 | qDebug("KO: Needed %d ms for saving.",msNeeded ); | 1941 | qDebug("KO: Needed %d ms for saving.",msNeeded ); |
1940 | QString savemes; | 1942 | QString savemes; |
1941 | savemes.sprintf(i18n("KO/Pi:File Saved. Needed %d sec, %d ms"),(msNeeded/1000)%100,msNeeded%1000 ); | 1943 | savemes.sprintf(i18n("KO/Pi:File Saved. Needed %d sec, %d ms"),(msNeeded/1000)%100,msNeeded%1000 ); |
1942 | setCaption(savemes); | 1944 | if ( !isMinimized () ) |
1945 | setCaption(savemes); | ||
1946 | else | ||
1947 | qDebug(savemes); | ||
1943 | } else | 1948 | } else |
1944 | setCaption(i18n("Saving cancelled!")); | 1949 | setCaption(i18n("Saving cancelled!")); |
1945 | mSyncManager->setBlockSave( false ); | 1950 | mSyncManager->setBlockSave( false ); |
1946 | } | 1951 | } |
1947 | 1952 | ||
1948 | void MainWindow::keyReleaseEvent ( QKeyEvent * e) | 1953 | void MainWindow::keyReleaseEvent ( QKeyEvent * e) |
1949 | { | 1954 | { |
1950 | if ( !e->isAutoRepeat() ) { | 1955 | if ( !e->isAutoRepeat() ) { |
1951 | mFlagKeyPressed = false; | 1956 | mFlagKeyPressed = false; |
1952 | } | 1957 | } |
1953 | } | 1958 | } |
1954 | void MainWindow::keyPressEvent ( QKeyEvent * e ) | 1959 | void MainWindow::keyPressEvent ( QKeyEvent * e ) |
1955 | { | 1960 | { |
1956 | qApp->processEvents(); | 1961 | qApp->processEvents(); |
1957 | if ( e->isAutoRepeat() && !mFlagKeyPressed ) { | 1962 | if ( e->isAutoRepeat() && !mFlagKeyPressed ) { |
1958 | e->ignore(); | 1963 | e->ignore(); |
1959 | // qDebug(" ignore %d",e->isAutoRepeat() ); | 1964 | // qDebug(" ignore %d",e->isAutoRepeat() ); |
1960 | return; | 1965 | return; |
1961 | } | 1966 | } |
1962 | if (! e->isAutoRepeat() ) | 1967 | if (! e->isAutoRepeat() ) |
1963 | mFlagKeyPressed = true; | 1968 | mFlagKeyPressed = true; |
1964 | KOPrefs *p = KOPrefs::instance(); | 1969 | KOPrefs *p = KOPrefs::instance(); |
1965 | bool showSelectedDates = false; | 1970 | bool showSelectedDates = false; |
1966 | int size; | 1971 | int size; |
1967 | int pro = 0; | 1972 | int pro = 0; |
1968 | //qDebug("MainWindow::keyPressEvent "); | 1973 | //qDebug("MainWindow::keyPressEvent "); |
1969 | switch ( e->key() ) { | 1974 | switch ( e->key() ) { |
1970 | case Qt::Key_Right: | 1975 | case Qt::Key_Right: |
1971 | if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton) | 1976 | if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton) |
1972 | mView->goNextMonth(); | 1977 | mView->goNextMonth(); |
1973 | else | 1978 | else |
1974 | mView->goNext(); | 1979 | mView->goNext(); |
1975 | showSelectedDates = true; | 1980 | showSelectedDates = true; |
1976 | break; | 1981 | break; |
1977 | case Qt::Key_Left: | 1982 | case Qt::Key_Left: |
1978 | if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) | 1983 | if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) |
1979 | mView->goPreviousMonth(); | 1984 | mView->goPreviousMonth(); |
1980 | else | 1985 | else |
1981 | mView->goPrevious(); | 1986 | mView->goPrevious(); |
1982 | showSelectedDates = true; | 1987 | showSelectedDates = true; |
1983 | break; | 1988 | break; |
1984 | case Qt::Key_Down: | 1989 | case Qt::Key_Down: |
1985 | mView->viewManager()->agendaView()->scrollOneHourDown(); | 1990 | mView->viewManager()->agendaView()->scrollOneHourDown(); |
1986 | break; | 1991 | break; |
1987 | case Qt::Key_Up: | 1992 | case Qt::Key_Up: |
1988 | mView->viewManager()->agendaView()->scrollOneHourUp(); | 1993 | mView->viewManager()->agendaView()->scrollOneHourUp(); |
1989 | break; | 1994 | break; |
1990 | case Qt::Key_K: | 1995 | case Qt::Key_K: |
1991 | mView->viewManager()->showMonthViewWeek(); | 1996 | mView->viewManager()->showMonthViewWeek(); |
1992 | break; | 1997 | break; |
1993 | case Qt::Key_I: | 1998 | case Qt::Key_I: |
1994 | mView->showIncidence(); | 1999 | mView->showIncidence(); |
1995 | break; | 2000 | break; |
1996 | case Qt::Key_Delete: | 2001 | case Qt::Key_Delete: |
1997 | case Qt::Key_Backspace: | 2002 | case Qt::Key_Backspace: |
1998 | mView->deleteIncidence(); | 2003 | mView->deleteIncidence(); |
1999 | break; | 2004 | break; |
2000 | case Qt::Key_D: | 2005 | case Qt::Key_D: |
2001 | mView->viewManager()->showDayView(); | 2006 | mView->viewManager()->showDayView(); |
2002 | showSelectedDates = true; | 2007 | showSelectedDates = true; |
2003 | break; | 2008 | break; |
2004 | case Qt::Key_O: | 2009 | case Qt::Key_O: |
2005 | mView->toggleFilerEnabled( ); | 2010 | mView->toggleFilerEnabled( ); |
2006 | break; | 2011 | break; |
2007 | case Qt::Key_0: | 2012 | case Qt::Key_0: |
2008 | case Qt::Key_1: | 2013 | case Qt::Key_1: |
2009 | case Qt::Key_2: | 2014 | case Qt::Key_2: |
2010 | case Qt::Key_3: | 2015 | case Qt::Key_3: |
2011 | case Qt::Key_4: | 2016 | case Qt::Key_4: |
2012 | case Qt::Key_5: | 2017 | case Qt::Key_5: |
2013 | case Qt::Key_6: | 2018 | case Qt::Key_6: |
2014 | case Qt::Key_7: | 2019 | case Qt::Key_7: |
2015 | case Qt::Key_8: | 2020 | case Qt::Key_8: |
2016 | case Qt::Key_9: | 2021 | case Qt::Key_9: |
2017 | pro = e->key()-48; | 2022 | pro = e->key()-48; |
2018 | if ( pro == 0 ) | 2023 | if ( pro == 0 ) |
2019 | pro = 10; | 2024 | pro = 10; |
2020 | if ( e->state() == Qt::ControlButton) | 2025 | if ( e->state() == Qt::ControlButton) |
2021 | pro += 10; | 2026 | pro += 10; |
2022 | break; | 2027 | break; |
2023 | case Qt::Key_M: | 2028 | case Qt::Key_M: |
2024 | mView->viewManager()->showMonthView(); | 2029 | mView->viewManager()->showMonthView(); |
2025 | showSelectedDates = true; | 2030 | showSelectedDates = true; |
2026 | break; | 2031 | break; |
2027 | case Qt::Key_Insert: | 2032 | case Qt::Key_Insert: |
2028 | mView->newEvent(); | 2033 | mView->newEvent(); |
2029 | break; | 2034 | break; |
2030 | case Qt::Key_S : | 2035 | case Qt::Key_S : |
2031 | if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton) | 2036 | if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton) |
2032 | mView->newSubTodo(); | 2037 | mView->newSubTodo(); |
2033 | else | 2038 | else |
2034 | mView->dialogManager()->showSearchDialog(); | 2039 | mView->dialogManager()->showSearchDialog(); |
2035 | break; | 2040 | break; |
2036 | case Qt::Key_Y : | 2041 | case Qt::Key_Y : |
2037 | case Qt::Key_Z : | 2042 | case Qt::Key_Z : |
2038 | mView->viewManager()->showWorkWeekView(); | 2043 | mView->viewManager()->showWorkWeekView(); |
2039 | showSelectedDates = true; | 2044 | showSelectedDates = true; |
2040 | break; | 2045 | break; |
2041 | case Qt::Key_U : | 2046 | case Qt::Key_U : |
2042 | mView->viewManager()->showWeekView(); | 2047 | mView->viewManager()->showWeekView(); |
2043 | showSelectedDates = true; | 2048 | showSelectedDates = true; |
2044 | break; | 2049 | break; |
2045 | case Qt::Key_H : | 2050 | case Qt::Key_H : |
2046 | keyBindings(); | 2051 | keyBindings(); |
2047 | break; | 2052 | break; |
2048 | case Qt::Key_W: | 2053 | case Qt::Key_W: |
2049 | mView->viewManager()->showWhatsNextView(); | 2054 | mView->viewManager()->showWhatsNextView(); |
2050 | break; | 2055 | break; |
2051 | case Qt::Key_L: | 2056 | case Qt::Key_L: |
2052 | mView->viewManager()->showListView(); | 2057 | mView->viewManager()->showListView(); |
2053 | break; | 2058 | break; |
2054 | case Qt::Key_N: | 2059 | case Qt::Key_N: |
2055 | mView->viewManager()->showNextView(); | 2060 | mView->viewManager()->showNextView(); |
2056 | break; | 2061 | break; |
2057 | case Qt::Key_V: | 2062 | case Qt::Key_V: |
2058 | mView->viewManager()->showTodoView(); | 2063 | mView->viewManager()->showTodoView(); |
2059 | break; | 2064 | break; |
2060 | case Qt::Key_C: | 2065 | case Qt::Key_C: |
2061 | mView->viewManager()->agendaView()->setStartHour( QTime::currentTime ().hour() ); | 2066 | mView->viewManager()->agendaView()->setStartHour( QTime::currentTime ().hour() ); |
2062 | break; | 2067 | break; |
2063 | case Qt::Key_P: | 2068 | case Qt::Key_P: |
2064 | mView->showDatePicker( ); | 2069 | mView->showDatePicker( ); |
2065 | break; | 2070 | break; |
2066 | case Qt::Key_F: | 2071 | case Qt::Key_F: |
2067 | mView->editFilters(); | 2072 | mView->editFilters(); |
2068 | break; | 2073 | break; |
2069 | case Qt::Key_R: | 2074 | case Qt::Key_R: |
2070 | mView->toggleFilter(); | 2075 | mView->toggleFilter(); |
2071 | break; | 2076 | break; |
2072 | case Qt::Key_X: | 2077 | case Qt::Key_X: |
2073 | if ( e->state() == Qt::ControlButton ) | 2078 | if ( e->state() == Qt::ControlButton ) |
2074 | mView->toggleDateNavigatorWidget(); | 2079 | mView->toggleDateNavigatorWidget(); |
2075 | else { | 2080 | else { |
2076 | mView->viewManager()->showNextXView(); | 2081 | mView->viewManager()->showNextXView(); |
2077 | showSelectedDates = true; | 2082 | showSelectedDates = true; |
2078 | } | 2083 | } |
2079 | break; | 2084 | break; |
2080 | case Qt::Key_Space: | 2085 | case Qt::Key_Space: |
2081 | mView->toggleExpand(); | 2086 | mView->toggleExpand(); |
2082 | break; | 2087 | break; |
2083 | case Qt::Key_A: | 2088 | case Qt::Key_A: |
2084 | if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton ) | 2089 | if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton ) |
2085 | mView->showNextAlarms(); | 2090 | mView->showNextAlarms(); |
2086 | else | 2091 | else |
2087 | mView->toggleAllDaySize(); | 2092 | mView->toggleAllDaySize(); |
2088 | break; | 2093 | break; |
2089 | case Qt::Key_T: | 2094 | case Qt::Key_T: |
2090 | if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) | 2095 | if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) |
2091 | mView->newTodo(); | 2096 | mView->newTodo(); |
2092 | else { | 2097 | else { |
2093 | mView->goToday(); | 2098 | mView->goToday(); |
2094 | showSelectedDates = true; | 2099 | showSelectedDates = true; |
2095 | } | 2100 | } |
2096 | break; | 2101 | break; |
2097 | case Qt::Key_J: | 2102 | case Qt::Key_J: |
2098 | mView->viewManager()->showJournalView(); | 2103 | mView->viewManager()->showJournalView(); |
2099 | break; | 2104 | break; |
2100 | case Qt::Key_B: | 2105 | case Qt::Key_B: |
2101 | mView->editIncidenceDescription();; | 2106 | mView->editIncidenceDescription();; |
2102 | break; | 2107 | break; |
2103 | // case Qt::Key_Return: | 2108 | // case Qt::Key_Return: |
2104 | case Qt::Key_E: | 2109 | case Qt::Key_E: |
2105 | if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) | 2110 | if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) |
2106 | mView->newEvent(); | 2111 | mView->newEvent(); |
2107 | else | 2112 | else |
2108 | mView->editIncidence(); | 2113 | mView->editIncidence(); |
2109 | break; | 2114 | break; |
2110 | case Qt::Key_Plus: | 2115 | case Qt::Key_Plus: |
2111 | size = p->mHourSize +2; | 2116 | size = p->mHourSize +2; |
2112 | if ( size <= 22 ) | 2117 | if ( size <= 22 ) |
2113 | configureAgenda( size ); | 2118 | configureAgenda( size ); |
2114 | break; | 2119 | break; |
2115 | case Qt::Key_Minus: | 2120 | case Qt::Key_Minus: |
2116 | size = p->mHourSize - 2; | 2121 | size = p->mHourSize - 2; |
2117 | if ( size >= 4 ) | 2122 | if ( size >= 4 ) |
2118 | configureAgenda( size ); | 2123 | configureAgenda( size ); |
2119 | break; | 2124 | break; |
2120 | 2125 | ||
2121 | 2126 | ||
2122 | default: | 2127 | default: |
2123 | e->ignore(); | 2128 | e->ignore(); |
2124 | } | 2129 | } |
2125 | if ( pro > 0 ) { | 2130 | if ( pro > 0 ) { |
2126 | selectFilter( pro+1 ); | 2131 | selectFilter( pro+1 ); |
2127 | } | 2132 | } |
2128 | if ( showSelectedDates ) { | 2133 | if ( showSelectedDates ) { |
2129 | ;// setCaptionToDates(); | 2134 | ;// setCaptionToDates(); |
2130 | } | 2135 | } |
2131 | 2136 | ||
2132 | } | 2137 | } |
2133 | void MainWindow::fillFilterMenuTB() | 2138 | void MainWindow::fillFilterMenuTB() |
2134 | { | 2139 | { |