summaryrefslogtreecommitdiffabout
path: root/korganizer
Unidiff
Diffstat (limited to 'korganizer') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/calendarview.cpp2
-rw-r--r--korganizer/kofilterview.h1
-rw-r--r--korganizer/komonthview.cpp8
-rw-r--r--korganizer/komonthview.h3
-rw-r--r--korganizer/mainwindow.cpp9
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
1908void CalendarView::setSyncEventsReadOnly() 1908void CalendarView::setSyncEventsReadOnly()
1909{ 1909{
1910 mCalendar->setSyncEventsReadOnly(); 1910 mCalendar->setSyncEventsReadOnly();
1911} 1911}
1912 1912
1913bool CalendarView::loadCalendars() 1913bool 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}
1927bool CalendarView::restoreCalendarSettings() 1927bool 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}
1945void CalendarView::addCalendarId( int id ) 1945void 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}
1951bool CalendarView::addCalendar( KopiCalendarFile * cal ) 1951bool 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}
1962bool CalendarView::openCalendar(QString filename, bool merge) 1962bool 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}
2027void CalendarView::showOpenError() 2027void 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}
2031void CalendarView::setLoadedFileVersion(QDateTime dt) 2031void CalendarView::setLoadedFileVersion(QDateTime dt)
2032{ 2032{
2033 loadedFileVersion = dt; 2033 loadedFileVersion = dt;
2034} 2034}
2035bool CalendarView::checkFileChanged(QString fn) 2035bool 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}
2046void CalendarView::watchSavedFile() 2046void 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}
2059bool CalendarView::checkAllFileVersions() 2059bool 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}
2089bool CalendarView::checkFileVersion(QString fn) 2089bool 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}
2120bool CalendarView::saveCalendars() 2120bool 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}
2140bool CalendarView::saveCalendar( QString filename ) 2140bool 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
2164void CalendarView::closeCalendar() 2164void 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
2176void CalendarView::archiveCalendar() 2176void CalendarView::archiveCalendar()
2177{ 2177{
2178 mDialogManager->showArchiveDialog(); 2178 mDialogManager->showArchiveDialog();
2179} 2179}
2180 2180
2181 2181
2182void CalendarView::readSettings() 2182void 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
44class QGridLayout; 45class QGridLayout;
45 46
46using namespace KCal; 47using namespace KCal;
47 48
48class KONewCalPrefs : public QDialog 49class 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
82public slots: 83public slots:
83void checkValid() { 84void 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
96public: 97public:
97 KLineEdit* nameE; 98 KLineEdit* nameE;
98 KURLRequester *url; 99 KURLRequester *url;
99}; 100};
100 101
101class KOCalButton : public QPushButton 102class 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 );
116private: 117private:
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
123private slots : 124private slots :
124 void bottonClicked() { if ( mNumber > 0 ) emit selectNum ( mNumber ); } 125 void bottonClicked() { if ( mNumber > 0 ) emit selectNum ( mNumber ); }
125}; 126};
126class KOCalCheckButton : public QCheckBox 127class 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 );
143private: 144private:
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
150private slots : 151private 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
154class KOCalRadioButton : public QRadioButton 155class 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 );
172private: 173private:
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
179private slots : 180private 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
185class KOFilterView : public KOFilterView_base 186class 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
208class KOCalEditView : public QScrollView 209class 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
1642void KOMonthView::showEvents(QPtrList<Event>) 1642void 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
1647void KOMonthView::changeEventDisplay(Event *, int) 1647void 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
1655void KOMonthView::updateView() 1655void 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
1783void KOMonthView::setKeyBoardFocus() 1783void 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}
1799void KOMonthView::setKeyBFocus() 1800void 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}
1804void KOMonthView::resizeEvent(QResizeEvent * e) 1806void 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
1814void KOMonthView::slotComputeLayout() 1816void 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}
1822void KOMonthView::computeLayoutWeek() 1824void 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}
1959void KOMonthView::computeLayout() 1961void 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
105class MonthViewItem: public QListBoxItem 105class 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
149class KOMonthView; 149class KOMonthView;
150 150
151class MonthViewCell : public KNoScrollListBox 151class 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
195public slots: 195public 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
235class KOMonthView: public KOEventView 235class 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 )
1723void MainWindow::enableIncidenceActions( bool enabled ) 1723void 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
1740void MainWindow::importOL() 1740void 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}
1751void MainWindow::importBday() 1751void 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}
1764void MainWindow::importQtopia() 1764void 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
1796void MainWindow::saveOnClose() 1796void 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}
1855void MainWindow::slotModifiedChanged( bool ) 1855void 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}
1871void MainWindow::saveStopTimer() 1871void MainWindow::saveStopTimer()
1872{ 1872{
1873 mSaveTimer.stop(); 1873 mSaveTimer.stop();
1874} 1874}
1875void MainWindow::backupAllFiles() 1875void 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}
1913void MainWindow::save() 1913void 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
1948void MainWindow::keyReleaseEvent ( QKeyEvent * e) 1953void MainWindow::keyReleaseEvent ( QKeyEvent * e)
1949{ 1954{
1950 if ( !e->isAutoRepeat() ) { 1955 if ( !e->isAutoRepeat() ) {
1951 mFlagKeyPressed = false; 1956 mFlagKeyPressed = false;
1952 } 1957 }
1953} 1958}
1954void MainWindow::keyPressEvent ( QKeyEvent * e ) 1959void 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}
2133void MainWindow::fillFilterMenuTB() 2138void MainWindow::fillFilterMenuTB()
2134{ 2139{