-rw-r--r-- | korganizer/mainwindow.cpp | 113 | ||||
-rw-r--r-- | korganizer/mainwindow.h | 1 |
2 files changed, 57 insertions, 57 deletions
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp index 48320a5..b9d8742 100644 --- a/korganizer/mainwindow.cpp +++ b/korganizer/mainwindow.cpp | |||
@@ -988,101 +988,102 @@ void MainWindow::initActions() | |||
988 | action->addTo( actionMenu ); | 988 | action->addTo( actionMenu ); |
989 | connect( action, SIGNAL( activated() ), mView, SLOT( purgeCompleted() ) ); | 989 | connect( action, SIGNAL( activated() ), mView, SLOT( purgeCompleted() ) ); |
990 | 990 | ||
991 | icon = loadPixmap( pathString + "search" ); | 991 | icon = loadPixmap( pathString + "search" ); |
992 | QAction* search_action = new QAction( i18n("Search"), icon, i18n("Search..."), 0, this ); | 992 | QAction* search_action = new QAction( i18n("Search"), icon, i18n("Search..."), 0, this ); |
993 | configureToolBarMenu->insertItem(icon, i18n("Search"), 120 , 5); | 993 | configureToolBarMenu->insertItem(icon, i18n("Search"), 120 , 5); |
994 | search_action->addTo( actionMenu ); | 994 | search_action->addTo( actionMenu ); |
995 | connect( search_action, SIGNAL( activated() ), | 995 | connect( search_action, SIGNAL( activated() ), |
996 | mView->dialogManager(), SLOT( showSearchDialog() ) ); | 996 | mView->dialogManager(), SLOT( showSearchDialog() ) ); |
997 | 997 | ||
998 | 998 | ||
999 | 999 | ||
1000 | if ( KOPrefs::instance()->mShowFullMenu ) { | 1000 | if ( KOPrefs::instance()->mShowFullMenu ) { |
1001 | actionMenu->insertSeparator(); | 1001 | actionMenu->insertSeparator(); |
1002 | actionMenu->insertItem( i18n("Configure Toolbar"),configureToolBarMenu ); | 1002 | actionMenu->insertItem( i18n("Configure Toolbar"),configureToolBarMenu ); |
1003 | 1003 | ||
1004 | } | 1004 | } |
1005 | // actionMenu->insertSeparator(); | 1005 | // actionMenu->insertSeparator(); |
1006 | action = new QAction( "import_qtopia", i18n("Import (*.ics/*.vcs) file"), 0, | 1006 | action = new QAction( "import_qtopia", i18n("Import (*.ics/*.vcs) file"), 0, |
1007 | this ); | 1007 | this ); |
1008 | action->addTo( importMenu_X ); | 1008 | action->addTo( importMenu_X ); |
1009 | connect( action, SIGNAL( activated() ), SLOT( importIcal() ) ); | 1009 | connect( action, SIGNAL( activated() ), SLOT( importIcal() ) ); |
1010 | action = new QAction( "import_quick", i18n("Import last file"), 0, | 1010 | action = new QAction( "import_quick", i18n("Import last file"), 0, |
1011 | this ); | 1011 | this ); |
1012 | action->addTo( importMenu_X ); | 1012 | action->addTo( importMenu_X ); |
1013 | connect( action, SIGNAL( activated() ), SLOT( quickImportIcal() ) ); | 1013 | connect( action, SIGNAL( activated() ), SLOT( quickImportIcal() ) ); |
1014 | importMenu_X->insertSeparator(); | 1014 | importMenu_X->insertSeparator(); |
1015 | action = new QAction( "import_bday", i18n("Import Birthdays (KA/Pi)"), 0, | 1015 | action = new QAction( "import_bday", i18n("Import Birthdays (KA/Pi)"), 0, |
1016 | this ); | 1016 | this ); |
1017 | action->addTo( importMenu_X ); | 1017 | action->addTo( importMenu_X ); |
1018 | connect( action, SIGNAL( activated() ), SLOT( importBday() ) ); | 1018 | connect( action, SIGNAL( activated() ), SLOT( importBday() ) ); |
1019 | //#ifndef DESKTOP_VERSION | 1019 | //#ifndef DESKTOP_VERSION |
1020 | importMenu_X->insertSeparator(); | 1020 | importMenu_X->insertSeparator(); |
1021 | action = new QAction( "import_qtopia", i18n("Import Opie/Qtopia Cal."), 0, | 1021 | action = new QAction( "import_qtopia", i18n("Import Opie/Qtopia Cal."), 0, |
1022 | this ); | 1022 | this ); |
1023 | action->addTo( importMenu_X ); | 1023 | action->addTo( importMenu_X ); |
1024 | connect( action, SIGNAL( activated() ), SLOT( importQtopia() ) ); | 1024 | connect( action, SIGNAL( activated() ), SLOT( importQtopia() ) ); |
1025 | //#else | 1025 | //#else |
1026 | #ifdef _OL_IMPORT_ | 1026 | #ifdef _OL_IMPORT_ |
1027 | importMenu_X->insertSeparator(); | 1027 | importMenu_X->insertSeparator(); |
1028 | action = new QAction( "import_ol", i18n("Import from OL"), 0, | 1028 | action = new QAction( "import_ol", i18n("Import from OL"), 0, |
1029 | this ); | 1029 | this ); |
1030 | action->addTo( importMenu_X ); | 1030 | action->addTo( importMenu_X ); |
1031 | connect( action, SIGNAL( activated() ), SLOT( importOL() ) ); | 1031 | connect( action, SIGNAL( activated() ), SLOT( importOL() ) ); |
1032 | #endif | 1032 | #endif |
1033 | //#endif | 1033 | //#endif |
1034 | 1034 | ||
1035 | //importMenu->insertSeparator(); | 1035 | //importMenu->insertSeparator(); |
1036 | #if 0 | ||
1036 | action = new QAction( "load_cal", i18n("Load Calendar Backup"), 0, | 1037 | action = new QAction( "load_cal", i18n("Load Calendar Backup"), 0, |
1037 | this ); | 1038 | this ); |
1038 | action->addTo( importMenu ); | 1039 | action->addTo( importMenu ); |
1039 | connect( action, SIGNAL( activated() ), SLOT( loadCalendar() ) ); | 1040 | connect( action, SIGNAL( activated() ), SLOT( loadCalendar() ) ); |
1040 | 1041 | #endif | |
1041 | action = new QAction( "save_cal", i18n("Save Calendar Backup"), 0, | 1042 | action = new QAction( "save_cal", i18n("Save Calendar Backup"), 0, |
1042 | this ); | 1043 | this ); |
1043 | action->addTo( importMenu ); | 1044 | action->addTo( importMenu ); |
1044 | connect( action, SIGNAL( activated() ), SLOT( saveCalendar() ) ); | 1045 | connect( action, SIGNAL( activated() ), SLOT( saveCalendar() ) ); |
1045 | importMenu->insertSeparator(); | 1046 | importMenu->insertSeparator(); |
1046 | importMenu->insertItem( i18n("Import"), importMenu_X ); | 1047 | importMenu->insertItem( i18n("Import"), importMenu_X ); |
1047 | //importMenu->insertSeparator(); | 1048 | //importMenu->insertSeparator(); |
1048 | action = new QAction( "import_qtopia", i18n("Export VCalendar"), 0, | 1049 | action = new QAction( "import_qtopia", i18n("Export VCalendar"), 0, |
1049 | this ); | 1050 | this ); |
1050 | action->addTo( exportMenu_X ); | 1051 | action->addTo( exportMenu_X ); |
1051 | connect( action, SIGNAL( activated() ), SLOT( exportVCalendar() ) ); | 1052 | connect( action, SIGNAL( activated() ), SLOT( exportVCalendar() ) ); |
1052 | 1053 | ||
1053 | 1054 | ||
1054 | //LR | 1055 | //LR |
1055 | QPopupMenu *ex2phone = new QPopupMenu( this ); | 1056 | QPopupMenu *ex2phone = new QPopupMenu( this ); |
1056 | ex2phone->insertItem(i18n("Complete calendar..."), 1 ); | 1057 | ex2phone->insertItem(i18n("Complete calendar..."), 1 ); |
1057 | ex2phone->insertItem(i18n("Filtered calendar..."), 2 ); | 1058 | ex2phone->insertItem(i18n("Filtered calendar..."), 2 ); |
1058 | connect( ex2phone, SIGNAL( activated(int) ), this, SLOT( exportToPhone( int)) ); | 1059 | connect( ex2phone, SIGNAL( activated(int) ), this, SLOT( exportToPhone( int)) ); |
1059 | exportMenu_X->insertItem( i18n("Export to phone"), ex2phone ); | 1060 | exportMenu_X->insertItem( i18n("Export to phone"), ex2phone ); |
1060 | 1061 | ||
1061 | importMenu->insertItem( i18n("Export"), exportMenu_X ); | 1062 | importMenu->insertItem( i18n("Export"), exportMenu_X ); |
1062 | #ifndef DESKTOP_VERSION | 1063 | #ifndef DESKTOP_VERSION |
1063 | //importMenu->insertSeparator(); | 1064 | //importMenu->insertSeparator(); |
1064 | brAction = new QAction( "beam toggle", i18n("Beam receive enabled"), 0, | 1065 | brAction = new QAction( "beam toggle", i18n("Beam receive enabled"), 0, |
1065 | this ); | 1066 | this ); |
1066 | brAction->addTo( beamMenu_X ); | 1067 | brAction->addTo( beamMenu_X ); |
1067 | brAction->setToggleAction (true ) ; | 1068 | brAction->setToggleAction (true ) ; |
1068 | connect( brAction, SIGNAL( activated() ), this, SLOT( toggleBeamReceive() ) ); | 1069 | connect( brAction, SIGNAL( activated() ), this, SLOT( toggleBeamReceive() ) ); |
1069 | 1070 | ||
1070 | action = new QAction( "beam all", i18n("Beam complete calendar..."), 0, | 1071 | action = new QAction( "beam all", i18n("Beam complete calendar..."), 0, |
1071 | this ); | 1072 | this ); |
1072 | action->addTo( beamMenu_X ); | 1073 | action->addTo( beamMenu_X ); |
1073 | connect( action, SIGNAL( activated() ), mView, SLOT( beamCalendar() ) ); | 1074 | connect( action, SIGNAL( activated() ), mView, SLOT( beamCalendar() ) ); |
1074 | 1075 | ||
1075 | action = new QAction( "beam all", i18n("Beam filtered calendar..."), 0, | 1076 | action = new QAction( "beam all", i18n("Beam filtered calendar..."), 0, |
1076 | this ); | 1077 | this ); |
1077 | action->addTo( beamMenu_X ); | 1078 | action->addTo( beamMenu_X ); |
1078 | connect( action, SIGNAL( activated() ), mView, SLOT( beamFilteredCalendar()) ); | 1079 | connect( action, SIGNAL( activated() ), mView, SLOT( beamFilteredCalendar()) ); |
1079 | importMenu->insertItem( i18n("Beam"), beamMenu_X ); | 1080 | importMenu->insertItem( i18n("Beam"), beamMenu_X ); |
1080 | #else | 1081 | #else |
1081 | //importMenu->insertSeparator(); | 1082 | //importMenu->insertSeparator(); |
1082 | icon = loadPixmap( pathString + "print" ); | 1083 | icon = loadPixmap( pathString + "print" ); |
1083 | action = new QAction( i18n("Print calendar..."),icon,i18n("Print calendar..."), 0, this ); | 1084 | action = new QAction( i18n("Print calendar..."),icon,i18n("Print calendar..."), 0, this ); |
1084 | action->addTo( beamMenu_X ); | 1085 | action->addTo( beamMenu_X ); |
1085 | connect( action, SIGNAL( activated() ), | 1086 | connect( action, SIGNAL( activated() ), |
1086 | this, SLOT( printCal() ) ); | 1087 | this, SLOT( printCal() ) ); |
1087 | 1088 | ||
1088 | icon = loadPixmap( pathString + "print" ); | 1089 | icon = loadPixmap( pathString + "print" ); |
@@ -1800,142 +1801,151 @@ void MainWindow::saveOnClose() | |||
1800 | p->mToolBarUpF = myP.x() > width()/2 ; | 1801 | p->mToolBarUpF = myP.x() > width()/2 ; |
1801 | } | 1802 | } |
1802 | #else | 1803 | #else |
1803 | if ( p->mToolBarHor ) | 1804 | if ( p->mToolBarHor ) |
1804 | p->mToolBarUp = iconToolBar->y() > height()/2; | 1805 | p->mToolBarUp = iconToolBar->y() > height()/2; |
1805 | else | 1806 | else |
1806 | p->mToolBarUp = iconToolBar->x() > width()/2; | 1807 | p->mToolBarUp = iconToolBar->x() > width()/2; |
1807 | if ( p->mToolBarHorV ) | 1808 | if ( p->mToolBarHorV ) |
1808 | p->mToolBarUpV = viewToolBar->y() > height()/2; | 1809 | p->mToolBarUpV = viewToolBar->y() > height()/2; |
1809 | else | 1810 | else |
1810 | p->mToolBarUpV = viewToolBar->x() > width()/2 ; | 1811 | p->mToolBarUpV = viewToolBar->x() > width()/2 ; |
1811 | 1812 | ||
1812 | if ( p->mToolBarHorN ) | 1813 | if ( p->mToolBarHorN ) |
1813 | p->mToolBarUpN = navigatorToolBar->y() > height()/2; | 1814 | p->mToolBarUpN = navigatorToolBar->y() > height()/2; |
1814 | else | 1815 | else |
1815 | p->mToolBarUpN = navigatorToolBar->x() > width()/2 ; | 1816 | p->mToolBarUpN = navigatorToolBar->x() > width()/2 ; |
1816 | if ( filterToolBar ) { | 1817 | if ( filterToolBar ) { |
1817 | if ( p->mToolBarHorF ) | 1818 | if ( p->mToolBarHorF ) |
1818 | p->mToolBarUpF = filterToolBar->y() > height()/2; | 1819 | p->mToolBarUpF = filterToolBar->y() > height()/2; |
1819 | else | 1820 | else |
1820 | p->mToolBarUpF = filterToolBar->x() > width()/2 ; | 1821 | p->mToolBarUpF = filterToolBar->x() > width()/2 ; |
1821 | } | 1822 | } |
1822 | #endif | 1823 | #endif |
1823 | 1824 | ||
1824 | if ( mCalendarModifiedFlag || mView->checkFileChanged( defaultFileName())) | 1825 | if ( mCalendarModifiedFlag || mView->checkFileChanged( defaultFileName())) |
1825 | save(); | 1826 | save(); |
1826 | mView->writeSettings(); | 1827 | mView->writeSettings(); |
1827 | } | 1828 | } |
1828 | void MainWindow::slotModifiedChanged( bool changed ) | 1829 | void MainWindow::slotModifiedChanged( bool changed ) |
1829 | { | 1830 | { |
1830 | if ( mBlockAtStartup ) | 1831 | if ( mBlockAtStartup ) |
1831 | return; | 1832 | return; |
1832 | 1833 | ||
1833 | int msec; | 1834 | int msec; |
1834 | // we store the changes after 1 minute, | 1835 | // we store the changes after 1 minute, |
1835 | // and for safety reasons after 10 minutes again | 1836 | // and for safety reasons after 10 minutes again |
1836 | if ( !mSyncManager->blockSave() ) | 1837 | if ( !mSyncManager->blockSave() ) |
1837 | msec = (1000 * 60*KOPrefs::instance()->mAutoSaveInterval) +1000; | 1838 | msec = (1000 * 60*KOPrefs::instance()->mAutoSaveInterval) +1000; |
1838 | else | 1839 | else |
1839 | msec = 1000 * 600; | 1840 | msec = 1000 * 600; |
1840 | mSaveTimer.start( msec, true ); // 1 minute | 1841 | mSaveTimer.start( msec, true ); // 1 minute |
1841 | qDebug("KO: Saving File in %d secs!", msec/1000); | 1842 | qDebug("KO: Saving File in %d secs!", msec/1000); |
1842 | mCalendarModifiedFlag = true; | 1843 | mCalendarModifiedFlag = true; |
1843 | } | 1844 | } |
1844 | void MainWindow::saveStopTimer() | 1845 | void MainWindow::saveStopTimer() |
1845 | { | 1846 | { |
1846 | mSaveTimer.stop(); | 1847 | mSaveTimer.stop(); |
1847 | } | 1848 | } |
1849 | void MainWindow::backupAllFiles() | ||
1850 | { | ||
1851 | QDate reference ( 2000,1,1); | ||
1852 | int daysTo = reference.daysTo ( QDate::currentDate() ); | ||
1853 | setCaption(i18n("Creating backup ... please wait ..." )); | ||
1854 | qDebug("KO: Last backup was %d days ago ", daysTo - KOPrefs::instance()->mLastBackupDate); | ||
1855 | // we need the file path, the backup dir and the number of bups as param | ||
1856 | QString bupDir = KPimGlobalPrefs::instance()->mBackupDatadir; | ||
1857 | if ( KPimGlobalPrefs::instance()->mBackupUseDefaultDir) | ||
1858 | bupDir = KGlobalSettings::backupDataDir(); | ||
1859 | int retval = KApplication::createBackup( defaultFileName(), bupDir, KPimGlobalPrefs::instance()->mBackupNumbers ); | ||
1860 | if ( retval == 0 ) { | ||
1861 | setCaption(i18n("Backup cancelled" )); | ||
1862 | qDebug("KO: Backup cancelled. Will try again tomorrow "); | ||
1863 | // retval == 0 : backup skipped for today, try again tomorrow | ||
1864 | KOPrefs::instance()->mLastBackupDate = daysTo- KPimGlobalPrefs::instance()->mBackupDayCount+1; | ||
1865 | } else if ( retval == 1 ){ | ||
1866 | qDebug("KO: Backup created."); | ||
1867 | // backup ok | ||
1868 | QPtrList<KopiCalendarFile> calendars = KOPrefs::instance()->mCalendars; | ||
1869 | KopiCalendarFile * cal = calendars.first(); | ||
1870 | cal = calendars.next(); | ||
1871 | while ( cal ) { | ||
1872 | if ( !cal->mErrorOnLoad ) { | ||
1873 | int retval = KApplication::createBackup( cal->mFileName, bupDir, KPimGlobalPrefs::instance()->mBackupNumbers ); | ||
1874 | } | ||
1875 | cal = calendars.next(); | ||
1876 | } | ||
1877 | KOPrefs::instance()->mLastBackupDate = daysTo; | ||
1878 | setCaption(i18n("Backup succesfully finished" )); | ||
1879 | } else if ( retval == 2 ){ | ||
1880 | setCaption(i18n("Backup globally disabled" )); | ||
1881 | qDebug("KO: Backup globally cancelled."); | ||
1882 | // backup globally cancelled | ||
1883 | KPimGlobalPrefs::instance()->mBackupEnabled = false; | ||
1884 | } | ||
1885 | // retval == 3: do nothing, try again later | ||
1886 | } | ||
1848 | void MainWindow::save() | 1887 | void MainWindow::save() |
1849 | { | 1888 | { |
1850 | if ( !mCalendarModifiedFlag ) { | 1889 | if ( !mCalendarModifiedFlag ) { |
1851 | qDebug("KO: Calendar not modified. Nothing saved."); | 1890 | qDebug("KO: Calendar not modified. Nothing saved."); |
1852 | return; | 1891 | return; |
1853 | } | 1892 | } |
1854 | if ( mSyncManager->blockSave() ) | 1893 | if ( mSyncManager->blockSave() ) |
1855 | return; | 1894 | return; |
1856 | mSyncManager->setBlockSave(true); | 1895 | mSyncManager->setBlockSave(true); |
1857 | if ( mView->checkAllFileVersions() ) { | 1896 | if ( mView->checkAllFileVersions() ) { |
1858 | if ( KPimGlobalPrefs::instance()->mBackupEnabled ){ | 1897 | if ( KPimGlobalPrefs::instance()->mBackupEnabled ){ |
1859 | QDate reference ( 2000,1,1); | 1898 | QDate reference ( 2000,1,1); |
1860 | int daysTo = reference.daysTo ( QDate::currentDate() ); | 1899 | int daysTo = reference.daysTo ( QDate::currentDate() ); |
1861 | if ( daysTo - KPimGlobalPrefs::instance()->mBackupDayCount >= KOPrefs::instance()->mLastBackupDate ) { | 1900 | if ( daysTo - KPimGlobalPrefs::instance()->mBackupDayCount >= KOPrefs::instance()->mLastBackupDate ) { |
1862 | setCaption(i18n("Creating backup ... please wait ..." )); | 1901 | backupAllFiles(); |
1863 | qDebug("KO: Last backup was %d days ago ", daysTo - KOPrefs::instance()->mLastBackupDate); | ||
1864 | // we need the file path, the backup dir and the number of bups as param | ||
1865 | QString bupDir = KPimGlobalPrefs::instance()->mBackupDatadir; | ||
1866 | if ( KPimGlobalPrefs::instance()->mBackupUseDefaultDir) | ||
1867 | bupDir = KGlobalSettings::backupDataDir(); | ||
1868 | int retval = KApplication::createBackup( defaultFileName(), bupDir, KPimGlobalPrefs::instance()->mBackupNumbers ); | ||
1869 | if ( retval == 0 ) { | ||
1870 | qDebug("KO: Backup cancelled. Will try again tomorrow "); | ||
1871 | // retval == 0 : backup skipped for today, try again tomorrow | ||
1872 | KOPrefs::instance()->mLastBackupDate = daysTo- KPimGlobalPrefs::instance()->mBackupDayCount+1; | ||
1873 | } else if ( retval == 1 ){ | ||
1874 | qDebug("KO: Backup created."); | ||
1875 | // backup ok | ||
1876 | QPtrList<KopiCalendarFile> calendars = KOPrefs::instance()->mCalendars; | ||
1877 | KopiCalendarFile * cal = calendars.first(); | ||
1878 | cal = calendars.next(); | ||
1879 | while ( cal ) { | ||
1880 | if ( !cal->mErrorOnLoad ) { | ||
1881 | int retval = KApplication::createBackup( cal->mFileName, bupDir, KPimGlobalPrefs::instance()->mBackupNumbers ); | ||
1882 | } | ||
1883 | cal = calendars.next(); | ||
1884 | } | ||
1885 | KOPrefs::instance()->mLastBackupDate = daysTo; | ||
1886 | } else if ( retval == 2 ){ | ||
1887 | qDebug("KO: Backup globally cancelled."); | ||
1888 | // backup globally cancelled | ||
1889 | KPimGlobalPrefs::instance()->mBackupEnabled = false; | ||
1890 | } | ||
1891 | // retval == 3: do nothing, try again later | ||
1892 | } | 1902 | } |
1893 | ; // KPimGlobalPrefs::instance()->mLastBackupDate | 1903 | ; // KPimGlobalPrefs::instance()->mLastBackupDate |
1894 | } | 1904 | } |
1895 | QTime neededSaveTime = QDateTime::currentDateTime().time(); | 1905 | QTime neededSaveTime = QDateTime::currentDateTime().time(); |
1896 | setCaption(i18n("KO/Pi:Saving Data to File ..." )); | 1906 | setCaption(i18n("KO/Pi:Saving Data to File ..." )); |
1897 | qDebug("KO: Start saving data to file!"); | 1907 | qDebug("KO: Start saving data to file!"); |
1898 | mView->saveCalendars(); | 1908 | mView->saveCalendars(); |
1899 | mCalendarModifiedFlag = false; | 1909 | mCalendarModifiedFlag = false; |
1900 | int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() ); | 1910 | int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() ); |
1901 | qDebug("KO: Needed %d ms for saving.",msNeeded ); | 1911 | qDebug("KO: Needed %d ms for saving.",msNeeded ); |
1902 | QString savemes; | 1912 | QString savemes; |
1903 | savemes.sprintf(i18n("KO/Pi:File Saved. Needed %d sec, %d ms"),(msNeeded/1000)%100,msNeeded%1000 ); | 1913 | savemes.sprintf(i18n("KO/Pi:File Saved. Needed %d sec, %d ms"),(msNeeded/1000)%100,msNeeded%1000 ); |
1904 | setCaption(savemes); | 1914 | setCaption(savemes); |
1905 | } else | 1915 | } else |
1906 | setCaption(i18n("Saving cancelled!")); | 1916 | setCaption(i18n("Saving cancelled!")); |
1907 | mSyncManager->setBlockSave( false ); | 1917 | mSyncManager->setBlockSave( false ); |
1908 | } | 1918 | } |
1909 | 1919 | ||
1910 | void MainWindow::keyReleaseEvent ( QKeyEvent * e) | 1920 | void MainWindow::keyReleaseEvent ( QKeyEvent * e) |
1911 | { | 1921 | { |
1912 | if ( !e->isAutoRepeat() ) { | 1922 | if ( !e->isAutoRepeat() ) { |
1913 | mFlagKeyPressed = false; | 1923 | mFlagKeyPressed = false; |
1914 | } | 1924 | } |
1915 | } | 1925 | } |
1916 | void MainWindow::keyPressEvent ( QKeyEvent * e ) | 1926 | void MainWindow::keyPressEvent ( QKeyEvent * e ) |
1917 | { | 1927 | { |
1918 | qApp->processEvents(); | 1928 | qApp->processEvents(); |
1919 | if ( e->isAutoRepeat() && !mFlagKeyPressed ) { | 1929 | if ( e->isAutoRepeat() && !mFlagKeyPressed ) { |
1920 | e->ignore(); | 1930 | e->ignore(); |
1921 | // qDebug(" ignore %d",e->isAutoRepeat() ); | 1931 | // qDebug(" ignore %d",e->isAutoRepeat() ); |
1922 | return; | 1932 | return; |
1923 | } | 1933 | } |
1924 | if (! e->isAutoRepeat() ) | 1934 | if (! e->isAutoRepeat() ) |
1925 | mFlagKeyPressed = true; | 1935 | mFlagKeyPressed = true; |
1926 | KOPrefs *p = KOPrefs::instance(); | 1936 | KOPrefs *p = KOPrefs::instance(); |
1927 | bool showSelectedDates = false; | 1937 | bool showSelectedDates = false; |
1928 | int size; | 1938 | int size; |
1929 | int pro = 0; | 1939 | int pro = 0; |
1930 | //qDebug("MainWindow::keyPressEvent "); | 1940 | //qDebug("MainWindow::keyPressEvent "); |
1931 | switch ( e->key() ) { | 1941 | switch ( e->key() ) { |
1932 | case Qt::Key_Right: | 1942 | case Qt::Key_Right: |
1933 | if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton) | 1943 | if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton) |
1934 | mView->goNextMonth(); | 1944 | mView->goNextMonth(); |
1935 | else | 1945 | else |
1936 | mView->goNext(); | 1946 | mView->goNext(); |
1937 | showSelectedDates = true; | 1947 | showSelectedDates = true; |
1938 | break; | 1948 | break; |
1939 | case Qt::Key_Left: | 1949 | case Qt::Key_Left: |
1940 | if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) | 1950 | if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) |
1941 | mView->goPreviousMonth(); | 1951 | mView->goPreviousMonth(); |
@@ -2255,155 +2265,144 @@ void MainWindow::setCaption ( const QString & c ) | |||
2255 | QString cap = c; | 2265 | QString cap = c; |
2256 | cap.replace( QRegExp("\n"), " " ); | 2266 | cap.replace( QRegExp("\n"), " " ); |
2257 | cap = cap.stripWhiteSpace(); | 2267 | cap = cap.stripWhiteSpace(); |
2258 | if ( cap.isEmpty() ) | 2268 | if ( cap.isEmpty() ) |
2259 | cap = "KO/Pi"; | 2269 | cap = "KO/Pi"; |
2260 | QWidget::setCaption( cap ); | 2270 | QWidget::setCaption( cap ); |
2261 | } | 2271 | } |
2262 | void MainWindow::setCaptionToDates() | 2272 | void MainWindow::setCaptionToDates() |
2263 | { | 2273 | { |
2264 | QString selDates; | 2274 | QString selDates; |
2265 | QDate date = mView->startDate(); | 2275 | QDate date = mView->startDate(); |
2266 | if ( ! date.isValid() ) { | 2276 | if ( ! date.isValid() ) { |
2267 | setCaption(""); | 2277 | setCaption(""); |
2268 | return; | 2278 | return; |
2269 | } | 2279 | } |
2270 | selDates = KGlobal::locale()->formatDate( date, true); | 2280 | selDates = KGlobal::locale()->formatDate( date, true); |
2271 | if (mView->startDate() < mView->endDate() ) | 2281 | if (mView->startDate() < mView->endDate() ) |
2272 | selDates += " - " + KGlobal::locale()->formatDate(mView->endDate(), true); | 2282 | selDates += " - " + KGlobal::locale()->formatDate(mView->endDate(), true); |
2273 | else { | 2283 | else { |
2274 | QString addString; | 2284 | QString addString; |
2275 | if ( date == QDateTime::currentDateTime().date() ) | 2285 | if ( date == QDateTime::currentDateTime().date() ) |
2276 | addString = i18n("Today"); | 2286 | addString = i18n("Today"); |
2277 | else if ( date == QDateTime::currentDateTime().date().addDays(1) ) | 2287 | else if ( date == QDateTime::currentDateTime().date().addDays(1) ) |
2278 | addString = i18n("Tomorrow"); | 2288 | addString = i18n("Tomorrow"); |
2279 | if ( !addString.isEmpty() ) | 2289 | if ( !addString.isEmpty() ) |
2280 | selDates = addString+", "+selDates ; | 2290 | selDates = addString+", "+selDates ; |
2281 | } | 2291 | } |
2282 | setCaption( i18n("Dates: ") + selDates ); | 2292 | setCaption( i18n("Dates: ") + selDates ); |
2283 | 2293 | ||
2284 | } | 2294 | } |
2285 | void MainWindow::showConfigureAgenda( ) | 2295 | void MainWindow::showConfigureAgenda( ) |
2286 | { | 2296 | { |
2287 | int iii; | 2297 | int iii; |
2288 | for ( iii = 1;iii<= 10 ;++iii ){ | 2298 | for ( iii = 1;iii<= 10 ;++iii ){ |
2289 | configureAgendaMenu->setItemChecked( (iii+1)*2, false ); | 2299 | configureAgendaMenu->setItemChecked( (iii+1)*2, false ); |
2290 | } | 2300 | } |
2291 | configureAgendaMenu->setItemChecked( (KOPrefs::instance()->mHourSize/2)*2, true ); | 2301 | configureAgendaMenu->setItemChecked( (KOPrefs::instance()->mHourSize/2)*2, true ); |
2292 | } | 2302 | } |
2293 | void MainWindow::configureAgenda( int item ) | 2303 | void MainWindow::configureAgenda( int item ) |
2294 | { | 2304 | { |
2295 | if ( KOPrefs::instance()->mHourSize == item ) | 2305 | if ( KOPrefs::instance()->mHourSize == item ) |
2296 | return; | 2306 | return; |
2297 | KOPrefs::instance()->mHourSize=item; | 2307 | KOPrefs::instance()->mHourSize=item; |
2298 | mView->viewManager()->agendaView()->updateConfig(); | 2308 | mView->viewManager()->agendaView()->updateConfig(); |
2299 | } | 2309 | } |
2300 | 2310 | ||
2301 | void MainWindow::saveCalendar() | 2311 | void MainWindow::saveCalendar() |
2302 | { | 2312 | { |
2303 | QString fn = KOPrefs::instance()->mLastSaveFile; | 2313 | |
2304 | fn = KFileDialog::getSaveFileName( fn, i18n("Save backup filename"), this ); | 2314 | QString bupDir = KPimGlobalPrefs::instance()->mBackupDatadir; |
2305 | 2315 | if ( KPimGlobalPrefs::instance()->mBackupUseDefaultDir) | |
2306 | if ( fn == "" ) | 2316 | bupDir = KGlobalSettings::backupDataDir(); |
2307 | return; | 2317 | bupDir = KGlobal::formatMessage ( bupDir, 0 ); |
2308 | QFileInfo info; | 2318 | QString bupHint; |
2309 | info.setFile( fn ); | 2319 | if ( !KPimGlobalPrefs::instance()->mBackupEnabled ) |
2310 | QString mes; | 2320 | bupHint = i18n("(Hint: You can enable automatic backup in the global settings!)"); |
2311 | bool createbup = true; | 2321 | if ( KMessageBox::warningContinueCancel( this, i18n("This will <b>backup all calendar files</b> to the directory %1 %2").arg(bupDir).arg(bupHint),i18n("Information") ) != KMessageBox::Continue ) return; |
2312 | if ( info. exists() ) { | 2322 | backupAllFiles(); |
2313 | mes = i18n("Backup file\nalready exists!\nOld backup file from:\n%1\nOverwrite?\n").arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false )) ; | ||
2314 | int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mes, | ||
2315 | i18n("Overwrite!"), i18n("Cancel"), 0, | ||
2316 | 0, 1 ); | ||
2317 | if ( result != 0 ) { | ||
2318 | createbup = false; | ||
2319 | } | ||
2320 | } | ||
2321 | if ( createbup ) { | ||
2322 | mView->saveCalendar( fn ); | ||
2323 | mes = i18n("KO/Pi:Saved %1").arg(fn); | ||
2324 | KOPrefs::instance()->mLastSaveFile = fn; | ||
2325 | setCaption(mes); | ||
2326 | } | ||
2327 | } | 2323 | } |
2328 | void MainWindow::loadCalendar() | 2324 | void MainWindow::loadCalendar() |
2329 | { | 2325 | { |
2330 | 2326 | ||
2331 | QString fn = KOPrefs::instance()->mLastLoadFile; | 2327 | |
2328 | #if 0 | ||
2329 | QString fn = KOPrefs::instance()->mLastLoadFile; | ||
2332 | fn = KFileDialog::getOpenFileName( fn, i18n("Load backup filename"), this ); | 2330 | fn = KFileDialog::getOpenFileName( fn, i18n("Load backup filename"), this ); |
2333 | 2331 | ||
2334 | if ( fn == "" ) | 2332 | if ( fn == "" ) |
2335 | return; | 2333 | return; |
2336 | QFileInfo info; | 2334 | QFileInfo info; |
2337 | info.setFile( fn ); | 2335 | info.setFile( fn ); |
2338 | QString mess; | 2336 | QString mess; |
2339 | bool loadbup = true; | 2337 | bool loadbup = true; |
2340 | if ( info. exists() ) { | 2338 | if ( info. exists() ) { |
2341 | mess = i18n("Backup file from:\n%1\nLoading backup\nfile will delete\nyour current Data!\n").arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false )); | 2339 | mess = i18n("Backup file from:\n%1\nLoading backup\nfile will delete\nyour current Data!\n").arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false )); |
2342 | int result = QMessageBox::warning( this, "KO/Pi: Warning!", | 2340 | int result = QMessageBox::warning( this, "KO/Pi: Warning!", |
2343 | mess, | 2341 | mess, |
2344 | i18n("Load!"), i18n("Cancel"), 0, | 2342 | i18n("Load!"), i18n("Cancel"), 0, |
2345 | 0, 1 ); | 2343 | 0, 1 ); |
2346 | if ( result != 0 ) { | 2344 | if ( result != 0 ) { |
2347 | loadbup = false; | 2345 | loadbup = false; |
2348 | } | 2346 | } |
2349 | } else { | 2347 | } else { |
2350 | QMessageBox::warning( this, i18n("KO/Pi: Warning!"), | 2348 | QMessageBox::warning( this, i18n("KO/Pi: Warning!"), |
2351 | i18n("Backup file\ndoes not exist!\nNothing loaded!"), 0, 0, | 2349 | i18n("Backup file\ndoes not exist!\nNothing loaded!"), 0, 0, |
2352 | 0, 1 ); | 2350 | 0, 1 ); |
2353 | 2351 | ||
2354 | return; | 2352 | return; |
2355 | } | 2353 | } |
2356 | if ( loadbup ) { | 2354 | if ( loadbup ) { |
2357 | mView->openCalendar( fn ); | 2355 | mView->openCalendar( fn ); |
2358 | KOPrefs::instance()->mLastLoadFile = fn; | 2356 | KOPrefs::instance()->mLastLoadFile = fn; |
2359 | mess = i18n("KO/Pi:Loaded %1").arg(fn) ; | 2357 | mess = i18n("KO/Pi:Loaded %1").arg(fn) ; |
2360 | setCaption(mess); | 2358 | setCaption(mess); |
2361 | } | 2359 | } |
2360 | #endif | ||
2362 | 2361 | ||
2363 | } | 2362 | } |
2364 | void MainWindow::quickImportIcal() | 2363 | void MainWindow::quickImportIcal() |
2365 | { | 2364 | { |
2366 | importFile( KOPrefs::instance()->mLastImportFile, false ); | 2365 | importFile( KOPrefs::instance()->mLastImportFile, false ); |
2367 | } | 2366 | } |
2368 | void MainWindow::importFile( QString fn, bool quick ) | 2367 | void MainWindow::importFile( QString fn, bool quick ) |
2369 | { | 2368 | { |
2370 | QFileInfo info; | 2369 | QFileInfo info; |
2371 | info.setFile( fn ); | 2370 | info.setFile( fn ); |
2372 | QString mess; | 2371 | QString mess; |
2373 | bool loadbup = true; | 2372 | bool loadbup = true; |
2374 | if ( !info. exists() ) { | 2373 | if ( !info. exists() ) { |
2375 | mess = i18n("Import file \n...%1\ndoes not exist!\nNothing imported!\n").arg(fn.right( 30)); | 2374 | mess = i18n("Import file \n...%1\ndoes not exist!\nNothing imported!\n").arg(fn.right( 30)); |
2376 | int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), | 2375 | int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), |
2377 | mess ); | 2376 | mess ); |
2378 | return; | 2377 | return; |
2379 | } | 2378 | } |
2380 | int result = 0; | 2379 | int result = 0; |
2381 | if ( !quick ) { | 2380 | if ( !quick ) { |
2382 | mess = i18n( "Import file \n...%1\nfrom:\n%2\nDuplicated entries\nwill not be imported!\n").arg(fn.right( 25)).arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false )); | 2381 | mess = i18n( "Import file \n...%1\nfrom:\n%2\nDuplicated entries\nwill not be imported!\n").arg(fn.right( 25)).arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false )); |
2383 | result = QMessageBox::warning( this, "KO/Pi: Warning!", | 2382 | result = QMessageBox::warning( this, "KO/Pi: Warning!", |
2384 | mess, | 2383 | mess, |
2385 | "Import", "Cancel", 0, | 2384 | "Import", "Cancel", 0, |
2386 | 0, 1 ); | 2385 | 0, 1 ); |
2387 | } | 2386 | } |
2388 | if ( result == 0 ) { | 2387 | if ( result == 0 ) { |
2389 | if ( mView->openCalendar( fn, true )) { | 2388 | if ( mView->openCalendar( fn, true )) { |
2390 | KOPrefs::instance()->mLastImportFile = fn; | 2389 | KOPrefs::instance()->mLastImportFile = fn; |
2391 | setCaption(i18n("Imported file successfully")); | 2390 | setCaption(i18n("Imported file successfully")); |
2392 | } else { | 2391 | } else { |
2393 | setCaption(i18n("Error importing file")); | 2392 | setCaption(i18n("Error importing file")); |
2394 | } | 2393 | } |
2395 | } | 2394 | } |
2396 | } | 2395 | } |
2397 | 2396 | ||
2398 | void MainWindow::importIcal() | 2397 | void MainWindow::importIcal() |
2399 | { | 2398 | { |
2400 | 2399 | ||
2401 | QString fn =KOPrefs::instance()->mLastImportFile; | 2400 | QString fn =KOPrefs::instance()->mLastImportFile; |
2402 | 2401 | ||
2403 | fn =KFileDialog:: getOpenFileName( fn, i18n("Import filename(*.ics/*.vcs)"), this ); | 2402 | fn =KFileDialog:: getOpenFileName( fn, i18n("Import filename(*.ics/*.vcs)"), this ); |
2404 | if ( fn == "" ) | 2403 | if ( fn == "" ) |
2405 | return; | 2404 | return; |
2406 | importFile( fn, true ); | 2405 | importFile( fn, true ); |
2407 | 2406 | ||
2408 | } | 2407 | } |
2409 | 2408 | ||
diff --git a/korganizer/mainwindow.h b/korganizer/mainwindow.h index 9a8bc7f..c9817c3 100644 --- a/korganizer/mainwindow.h +++ b/korganizer/mainwindow.h | |||
@@ -36,96 +36,97 @@ class MainWindow : public QMainWindow | |||
36 | { | 36 | { |
37 | Q_OBJECT | 37 | Q_OBJECT |
38 | public: | 38 | public: |
39 | MainWindow( QWidget *parent = 0, const char *name = 0, QString command = ""); | 39 | MainWindow( QWidget *parent = 0, const char *name = 0, QString command = ""); |
40 | ~MainWindow(); | 40 | ~MainWindow(); |
41 | bool beamReceiveEnabled(); | 41 | bool beamReceiveEnabled(); |
42 | static QString defaultFileName(); | 42 | static QString defaultFileName(); |
43 | static QString syncFileName(); | 43 | static QString syncFileName(); |
44 | static QString resourcePath(); | 44 | static QString resourcePath(); |
45 | public slots: | 45 | public slots: |
46 | void setUsesBigPixmaps ( bool ); | 46 | void setUsesBigPixmaps ( bool ); |
47 | void setCaption ( const QString & ); | 47 | void setCaption ( const QString & ); |
48 | void updateWeekNum(const KCal::DateList &); | 48 | void updateWeekNum(const KCal::DateList &); |
49 | void updateWeek(QDate); | 49 | void updateWeek(QDate); |
50 | void updateFilterToolbar(); | 50 | void updateFilterToolbar(); |
51 | virtual void showMaximized (); | 51 | virtual void showMaximized (); |
52 | void configureAgenda( int ); | 52 | void configureAgenda( int ); |
53 | void recieve( const QCString& msg, const QByteArray& data ); | 53 | void recieve( const QCString& msg, const QByteArray& data ); |
54 | protected slots: | 54 | protected slots: |
55 | void setCaptionToDates(); | 55 | void setCaptionToDates(); |
56 | void weekAction(); | 56 | void weekAction(); |
57 | void about(); | 57 | void about(); |
58 | void licence(); | 58 | void licence(); |
59 | void faq(); | 59 | void faq(); |
60 | void usertrans(); | 60 | void usertrans(); |
61 | void features(); | 61 | void features(); |
62 | void synchowto(); | 62 | void synchowto(); |
63 | void storagehowto(); | 63 | void storagehowto(); |
64 | void timetrackinghowto(); | 64 | void timetrackinghowto(); |
65 | void kdesynchowto(); | 65 | void kdesynchowto(); |
66 | void multisynchowto(); | 66 | void multisynchowto(); |
67 | void whatsNew(); | 67 | void whatsNew(); |
68 | void keyBindings(); | 68 | void keyBindings(); |
69 | void aboutAutoSaving();; | 69 | void aboutAutoSaving();; |
70 | void aboutKnownBugs(); | 70 | void aboutKnownBugs(); |
71 | 71 | ||
72 | void processIncidenceSelection( Incidence * ); | 72 | void processIncidenceSelection( Incidence * ); |
73 | 73 | ||
74 | void importQtopia(); | 74 | void importQtopia(); |
75 | void importBday(); | 75 | void importBday(); |
76 | void importOL(); | 76 | void importOL(); |
77 | void importIcal(); | 77 | void importIcal(); |
78 | void importFile( QString, bool ); | 78 | void importFile( QString, bool ); |
79 | void quickImportIcal(); | 79 | void quickImportIcal(); |
80 | 80 | ||
81 | void slotModifiedChanged( bool ); | 81 | void slotModifiedChanged( bool ); |
82 | 82 | ||
83 | void save(); | 83 | void save(); |
84 | void backupAllFiles(); | ||
84 | void saveStopTimer(); | 85 | void saveStopTimer(); |
85 | void configureToolBar( int ); | 86 | void configureToolBar( int ); |
86 | void printSel(); | 87 | void printSel(); |
87 | void printCal(); | 88 | void printCal(); |
88 | void printListView(); | 89 | void printListView(); |
89 | void saveCalendar(); | 90 | void saveCalendar(); |
90 | void loadCalendar(); | 91 | void loadCalendar(); |
91 | void exportVCalendar(); | 92 | void exportVCalendar(); |
92 | void fillFilterMenu(); | 93 | void fillFilterMenu(); |
93 | void fillFilterMenuTB(); | 94 | void fillFilterMenuTB(); |
94 | void selectFilter( int ); | 95 | void selectFilter( int ); |
95 | void fillFilterMenuPopup(); | 96 | void fillFilterMenuPopup(); |
96 | void selectFilterPopup( int ); | 97 | void selectFilterPopup( int ); |
97 | void exportToPhone( int ); | 98 | void exportToPhone( int ); |
98 | void toggleBeamReceive(); | 99 | void toggleBeamReceive(); |
99 | void disableBR(bool); | 100 | void disableBR(bool); |
100 | signals: | 101 | signals: |
101 | void selectWeek ( int ); | 102 | void selectWeek ( int ); |
102 | private slots: | 103 | private slots: |
103 | void showConfigureAgenda(); | 104 | void showConfigureAgenda(); |
104 | void getFile( bool ); | 105 | void getFile( bool ); |
105 | void syncFileRequest(); | 106 | void syncFileRequest(); |
106 | 107 | ||
107 | protected: | 108 | protected: |
108 | void hideEvent ( QHideEvent * ); | 109 | void hideEvent ( QHideEvent * ); |
109 | QString sentSyncFile(); | 110 | QString sentSyncFile(); |
110 | void displayText( QString, QString); | 111 | void displayText( QString, QString); |
111 | void enableIncidenceActions( bool ); | 112 | void enableIncidenceActions( bool ); |
112 | 113 | ||
113 | private: | 114 | private: |
114 | bool mBRdisabled; | 115 | bool mBRdisabled; |
115 | #ifndef DESKTOP_VERSION | 116 | #ifndef DESKTOP_VERSION |
116 | QCopChannel* infrared; | 117 | QCopChannel* infrared; |
117 | #endif | 118 | #endif |
118 | QAction* brAction; | 119 | QAction* brAction; |
119 | KSyncManager* mSyncManager; | 120 | KSyncManager* mSyncManager; |
120 | bool mClosed; | 121 | bool mClosed; |
121 | void saveOnClose(); | 122 | void saveOnClose(); |
122 | bool mFlagKeyPressed; | 123 | bool mFlagKeyPressed; |
123 | bool mBlockAtStartup; | 124 | bool mBlockAtStartup; |
124 | QPEToolBar *iconToolBar; | 125 | QPEToolBar *iconToolBar; |
125 | QPEToolBar *viewToolBar; | 126 | QPEToolBar *viewToolBar; |
126 | QPEToolBar *navigatorToolBar; | 127 | QPEToolBar *navigatorToolBar; |
127 | QPEToolBar *filterToolBar; | 128 | QPEToolBar *filterToolBar; |
128 | QMenuBar *filterMenubar; | 129 | QMenuBar *filterMenubar; |
129 | QPopupMenu * filterPopupMenu; | 130 | QPopupMenu * filterPopupMenu; |
130 | void initActions(); | 131 | void initActions(); |
131 | void setDefaultPreferences(); | 132 | void setDefaultPreferences(); |