-rw-r--r-- | korganizer/mainwindow.cpp | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp index 40f2cf4..be69be7 100644 --- a/korganizer/mainwindow.cpp +++ b/korganizer/mainwindow.cpp | |||
@@ -1,151 +1,152 @@ | |||
1 | #include <stdlib.h> | 1 | #include <stdlib.h> |
2 | 2 | ||
3 | #include <qaction.h> | 3 | #include <qaction.h> |
4 | #include <qpopupmenu.h> | 4 | #include <qpopupmenu.h> |
5 | #include <qpainter.h> | 5 | #include <qpainter.h> |
6 | #include <qwhatsthis.h> | 6 | #include <qwhatsthis.h> |
7 | #include <qmessagebox.h> | 7 | #include <qmessagebox.h> |
8 | #include <qlineedit.h> | 8 | #include <qlineedit.h> |
9 | #include <qfile.h> | 9 | #include <qfile.h> |
10 | #include <qdir.h> | 10 | #include <qdir.h> |
11 | #include <qapp.h> | 11 | #include <qapp.h> |
12 | #include <qfileinfo.h> | 12 | #include <qfileinfo.h> |
13 | #include <qlabel.h> | 13 | #include <qlabel.h> |
14 | #include <qwmatrix.h> | 14 | #include <qwmatrix.h> |
15 | #include <qtextbrowser.h> | 15 | #include <qtextbrowser.h> |
16 | #include <qtextstream.h> | 16 | #include <qtextstream.h> |
17 | #ifndef DESKTOP_VERSION | 17 | #ifndef DESKTOP_VERSION |
18 | #include <qpe/global.h> | 18 | #include <qpe/global.h> |
19 | #include <qpe/qpemenubar.h> | 19 | #include <qpe/qpemenubar.h> |
20 | #include <qpe/qpetoolbar.h> | 20 | #include <qpe/qpetoolbar.h> |
21 | #include <qpe/resource.h> | 21 | #include <qpe/resource.h> |
22 | #include <qpe/qpeapplication.h> | 22 | #include <qpe/qpeapplication.h> |
23 | #include <qtopia/alarmserver.h> | 23 | #include <qtopia/alarmserver.h> |
24 | #include <qtopia/qcopenvelope_qws.h> | 24 | #include <qtopia/qcopenvelope_qws.h> |
25 | #else | 25 | #else |
26 | #include <qmenubar.h> | 26 | #include <qmenubar.h> |
27 | #include <qtoolbar.h> | 27 | #include <qtoolbar.h> |
28 | #include <qapplication.h> | 28 | #include <qapplication.h> |
29 | //#include <resource.h> | 29 | //#include <resource.h> |
30 | 30 | ||
31 | #endif | 31 | #endif |
32 | #include <libkcal/calendarlocal.h> | 32 | #include <libkcal/calendarlocal.h> |
33 | #include <libkcal/todo.h> | 33 | #include <libkcal/todo.h> |
34 | #include <libkdepim/ksyncprofile.h> | 34 | #include <libkdepim/ksyncprofile.h> |
35 | #include <libkdepim/kincidenceformatter.h> | 35 | #include <libkdepim/kincidenceformatter.h> |
36 | 36 | ||
37 | #include "calendarview.h" | 37 | #include "calendarview.h" |
38 | #include "koviewmanager.h" | 38 | #include "koviewmanager.h" |
39 | #include "datenavigator.h" | 39 | #include "datenavigator.h" |
40 | #include "koagendaview.h" | 40 | #include "koagendaview.h" |
41 | #include "koagenda.h" | 41 | #include "koagenda.h" |
42 | #include "kodialogmanager.h" | 42 | #include "kodialogmanager.h" |
43 | #include "kdialogbase.h" | 43 | #include "kdialogbase.h" |
44 | #include "kstandarddirs.h" | 44 | #include "kstandarddirs.h" |
45 | #include "koprefs.h" | 45 | #include "koprefs.h" |
46 | #include "kfiledialog.h" | 46 | #include "kfiledialog.h" |
47 | #include "koglobals.h" | 47 | #include "koglobals.h" |
48 | #include "kglobal.h" | 48 | #include "kglobal.h" |
49 | #include "klocale.h" | 49 | #include "klocale.h" |
50 | #include "kconfig.h" | 50 | #include "kconfig.h" |
51 | #include "simplealarmclient.h" | 51 | #include "simplealarmclient.h" |
52 | |||
53 | using namespace KCal; | 52 | using namespace KCal; |
54 | #ifndef _WIN32_ | 53 | #ifndef _WIN32_ |
55 | #include <unistd.h> | 54 | #include <unistd.h> |
55 | #else | ||
56 | #include "koimportoldialog.h" | ||
56 | #endif | 57 | #endif |
57 | #include "mainwindow.h" | 58 | #include "mainwindow.h" |
58 | 59 | ||
59 | int globalFlagBlockStartup; | 60 | int globalFlagBlockStartup; |
60 | MainWindow::MainWindow( QWidget *parent, const char *name, QString msg) : | 61 | MainWindow::MainWindow( QWidget *parent, const char *name, QString msg) : |
61 | QMainWindow( parent, name ) | 62 | QMainWindow( parent, name ) |
62 | { | 63 | { |
63 | 64 | ||
64 | #ifdef DESKTOP_VERSION | 65 | #ifdef DESKTOP_VERSION |
65 | setFont( QFont("Arial"), 14 ); | 66 | setFont( QFont("Arial"), 14 ); |
66 | #endif | 67 | #endif |
67 | 68 | ||
68 | //QString confFile = KStandardDirs::appDir() + "config/korganizerrc"; | 69 | //QString confFile = KStandardDirs::appDir() + "config/korganizerrc"; |
69 | QString confFile = locateLocal("config","korganizerrc"); | 70 | QString confFile = locateLocal("config","korganizerrc"); |
70 | QFileInfo finf ( confFile ); | 71 | QFileInfo finf ( confFile ); |
71 | bool showWarning = !finf.exists(); | 72 | bool showWarning = !finf.exists(); |
72 | setIcon(SmallIcon( "ko24" ) ); | 73 | setIcon(SmallIcon( "ko24" ) ); |
73 | mBlockAtStartup = true; | 74 | mBlockAtStartup = true; |
74 | mFlagKeyPressed = false; | 75 | mFlagKeyPressed = false; |
75 | setCaption("KOrganizer/Pi"); | 76 | setCaption("KOrganizer/Pi"); |
76 | KOPrefs *p = KOPrefs::instance(); | 77 | KOPrefs *p = KOPrefs::instance(); |
77 | // if ( QApplication::desktop()->height() > 480 ) { | 78 | // if ( QApplication::desktop()->height() > 480 ) { |
78 | // if ( p->mHourSize == 4 ) | 79 | // if ( p->mHourSize == 4 ) |
79 | // p->mHourSize = 6; | 80 | // p->mHourSize = 6; |
80 | // } | 81 | // } |
81 | if ( p->mHourSize > 18 ) | 82 | if ( p->mHourSize > 18 ) |
82 | p->mHourSize = 18; | 83 | p->mHourSize = 18; |
83 | QMainWindow::ToolBarDock tbd; | 84 | QMainWindow::ToolBarDock tbd; |
84 | if ( p->mToolBarHor ) { | 85 | if ( p->mToolBarHor ) { |
85 | if ( p->mToolBarUp ) | 86 | if ( p->mToolBarUp ) |
86 | tbd = Bottom; | 87 | tbd = Bottom; |
87 | else | 88 | else |
88 | tbd = Top; | 89 | tbd = Top; |
89 | } | 90 | } |
90 | else { | 91 | else { |
91 | if ( p->mToolBarUp ) | 92 | if ( p->mToolBarUp ) |
92 | tbd = Right; | 93 | tbd = Right; |
93 | else | 94 | else |
94 | tbd = Left; | 95 | tbd = Left; |
95 | } | 96 | } |
96 | if ( KOPrefs::instance()->mUseAppColors ) | 97 | if ( KOPrefs::instance()->mUseAppColors ) |
97 | QApplication::setPalette( QPalette (KOPrefs::instance()->mAppColor1, KOPrefs::instance()->mAppColor2), true ); | 98 | QApplication::setPalette( QPalette (KOPrefs::instance()->mAppColor1, KOPrefs::instance()->mAppColor2), true ); |
98 | globalFlagBlockStartup = 1; | 99 | globalFlagBlockStartup = 1; |
99 | iconToolBar = new QPEToolBar( this ); | 100 | iconToolBar = new QPEToolBar( this ); |
100 | addToolBar (iconToolBar , tbd ); | 101 | addToolBar (iconToolBar , tbd ); |
101 | mBlockSaveFlag = false; | 102 | mBlockSaveFlag = false; |
102 | mCalendarModifiedFlag = false; | 103 | mCalendarModifiedFlag = false; |
103 | 104 | ||
104 | QLabel* splash = new QLabel(i18n("KO/Pi is starting ... "), this ); | 105 | QLabel* splash = new QLabel(i18n("KO/Pi is starting ... "), this ); |
105 | splash->setAlignment ( AlignCenter ); | 106 | splash->setAlignment ( AlignCenter ); |
106 | setCentralWidget( splash ); | 107 | setCentralWidget( splash ); |
107 | #ifndef DESKTOP_VERSION | 108 | #ifndef DESKTOP_VERSION |
108 | showMaximized(); | 109 | showMaximized(); |
109 | #endif | 110 | #endif |
110 | //qDebug("Mainwidget x %d y %d w %d h %d", x(), y(), width(), height ()); | 111 | //qDebug("Mainwidget x %d y %d w %d h %d", x(), y(), width(), height ()); |
111 | setDefaultPreferences(); | 112 | setDefaultPreferences(); |
112 | mCalendar = new CalendarLocal(); | 113 | mCalendar = new CalendarLocal(); |
113 | mView = new CalendarView( mCalendar, this,"mCalendar " ); | 114 | mView = new CalendarView( mCalendar, this,"mCalendar " ); |
114 | mView->hide(); | 115 | mView->hide(); |
115 | //mView->resize(splash->size() ); | 116 | //mView->resize(splash->size() ); |
116 | initActions(); | 117 | initActions(); |
117 | #ifndef DESKTOP_VERSION | 118 | #ifndef DESKTOP_VERSION |
118 | iconToolBar->show(); | 119 | iconToolBar->show(); |
119 | qApp->processEvents(); | 120 | qApp->processEvents(); |
120 | #endif | 121 | #endif |
121 | //qDebug("Splashwidget x %d y %d w %d h %d", splash-> x(), splash->y(), splash->width(),splash-> height ()); | 122 | //qDebug("Splashwidget x %d y %d w %d h %d", splash-> x(), splash->y(), splash->width(),splash-> height ()); |
122 | int vh = height() ; | 123 | int vh = height() ; |
123 | int vw = width(); | 124 | int vw = width(); |
124 | //qDebug("Toolbar hei %d ",iconToolBar->height() ); | 125 | //qDebug("Toolbar hei %d ",iconToolBar->height() ); |
125 | if ( iconToolBar->orientation () == Qt:: Horizontal ) { | 126 | if ( iconToolBar->orientation () == Qt:: Horizontal ) { |
126 | vh -= iconToolBar->height(); | 127 | vh -= iconToolBar->height(); |
127 | } else { | 128 | } else { |
128 | vw -= iconToolBar->height(); | 129 | vw -= iconToolBar->height(); |
129 | } | 130 | } |
130 | //mView->setMaximumSize( splash->size() ); | 131 | //mView->setMaximumSize( splash->size() ); |
131 | //mView->resize( splash->size() ); | 132 | //mView->resize( splash->size() ); |
132 | //qDebug("MainView x %d y %d w %d h %d", mView->x(),mView-> y(), mView->width(), mView->height ()); | 133 | //qDebug("MainView x %d y %d w %d h %d", mView->x(),mView-> y(), mView->width(), mView->height ()); |
133 | mView->readSettings(); | 134 | mView->readSettings(); |
134 | bool oldOpened = false; | 135 | bool oldOpened = false; |
135 | bool newFile = false; | 136 | bool newFile = false; |
136 | if( !QFile::exists( defaultFileName() ) ) { | 137 | if( !QFile::exists( defaultFileName() ) ) { |
137 | QFileInfo finfo ( defaultFileName() ); | 138 | QFileInfo finfo ( defaultFileName() ); |
138 | QString oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/Applications/korganizer/mycalendar.ics"); | 139 | QString oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/Applications/korganizer/mycalendar.ics"); |
139 | qDebug("oldfile %s ", oldFile.latin1()); | 140 | qDebug("oldfile %s ", oldFile.latin1()); |
140 | QString message = "You are starting KO/Pi for the\nfirst time after updating to a\nversion >= 1.9.1. The location of the\ndefault calendar file has changed.\nA mycalendar.ics file was detected\nat the old location.\nThis file will be loaded now\nand stored at the new location!\n(Config file location has changed, too!)\nPlease read menu Help-What's New!\n"; | 141 | QString message = "You are starting KO/Pi for the\nfirst time after updating to a\nversion >= 1.9.1. The location of the\ndefault calendar file has changed.\nA mycalendar.ics file was detected\nat the old location.\nThis file will be loaded now\nand stored at the new location!\n(Config file location has changed, too!)\nPlease read menu Help-What's New!\n"; |
141 | finfo.setFile( oldFile ); | 142 | finfo.setFile( oldFile ); |
142 | if (finfo.exists() ) { | 143 | if (finfo.exists() ) { |
143 | KMessageBox::information( this, message); | 144 | KMessageBox::information( this, message); |
144 | mView->openCalendar( oldFile ); | 145 | mView->openCalendar( oldFile ); |
145 | qApp->processEvents(); | 146 | qApp->processEvents(); |
146 | } else { | 147 | } else { |
147 | oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/korganizer/mycalendar.ics"); | 148 | oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/korganizer/mycalendar.ics"); |
148 | finfo.setFile( oldFile ); | 149 | finfo.setFile( oldFile ); |
149 | if (finfo.exists() ) { | 150 | if (finfo.exists() ) { |
150 | KMessageBox::information( this, message); | 151 | KMessageBox::information( this, message); |
151 | mView->openCalendar( oldFile ); | 152 | mView->openCalendar( oldFile ); |
@@ -491,192 +492,200 @@ void MainWindow::initActions() | |||
491 | configureToolBarMenu->insertItem(icon, i18n("Journal"), 90 ); | 492 | configureToolBarMenu->insertItem(icon, i18n("Journal"), 90 ); |
492 | QAction* viewjournal_action = new QAction( i18n("Journal"), icon, i18n("Journal"), 0, this ); | 493 | QAction* viewjournal_action = new QAction( i18n("Journal"), icon, i18n("Journal"), 0, this ); |
493 | viewjournal_action->addTo( viewMenu ); | 494 | viewjournal_action->addTo( viewMenu ); |
494 | connect( viewjournal_action, SIGNAL( activated() ), | 495 | connect( viewjournal_action, SIGNAL( activated() ), |
495 | mView->viewManager(), SLOT( showJournalView() ) ); | 496 | mView->viewManager(), SLOT( showJournalView() ) ); |
496 | 497 | ||
497 | icon = loadPixmap( pathString + "xdays" ); | 498 | icon = loadPixmap( pathString + "xdays" ); |
498 | configureToolBarMenu->insertItem(icon, i18n("Next days"), 100,4 ); | 499 | configureToolBarMenu->insertItem(icon, i18n("Next days"), 100,4 ); |
499 | QAction* xdays_action = new QAction( i18n("Next days"), icon, i18n("Next days"), 0, this ); | 500 | QAction* xdays_action = new QAction( i18n("Next days"), icon, i18n("Next days"), 0, this ); |
500 | xdays_action->addTo( viewMenu ); | 501 | xdays_action->addTo( viewMenu ); |
501 | connect( xdays_action, SIGNAL( activated() ), | 502 | connect( xdays_action, SIGNAL( activated() ), |
502 | mView->viewManager(), SLOT( showNextXView() ) ); | 503 | mView->viewManager(), SLOT( showNextXView() ) ); |
503 | 504 | ||
504 | icon = loadPixmap( pathString + "whatsnext" ); | 505 | icon = loadPixmap( pathString + "whatsnext" ); |
505 | configureToolBarMenu->insertItem(icon, i18n("What's Next"), 110, 4 ); | 506 | configureToolBarMenu->insertItem(icon, i18n("What's Next"), 110, 4 ); |
506 | QAction* whatsnext_action = new QAction( i18n("What's Next"), icon, i18n("What's Next"), 0, this ); | 507 | QAction* whatsnext_action = new QAction( i18n("What's Next"), icon, i18n("What's Next"), 0, this ); |
507 | whatsnext_action->addTo( viewMenu ); | 508 | whatsnext_action->addTo( viewMenu ); |
508 | connect( whatsnext_action, SIGNAL( activated() ), | 509 | connect( whatsnext_action, SIGNAL( activated() ), |
509 | mView->viewManager(), SLOT( showWhatsNextView() ) ); | 510 | mView->viewManager(), SLOT( showWhatsNextView() ) ); |
510 | 511 | ||
511 | #if 0 | 512 | #if 0 |
512 | action = new QAction( "view_timespan", "Time Span", 0, this ); | 513 | action = new QAction( "view_timespan", "Time Span", 0, this ); |
513 | action->addTo( viewMenu ); | 514 | action->addTo( viewMenu ); |
514 | connect( action, SIGNAL( activated() ), | 515 | connect( action, SIGNAL( activated() ), |
515 | mView->viewManager(), SLOT( showTimeSpanView() ) ); | 516 | mView->viewManager(), SLOT( showTimeSpanView() ) ); |
516 | #endif | 517 | #endif |
517 | 518 | ||
518 | mNewSubTodoAction = new QAction( "new_subtodo", i18n("New Sub-Todo..."), 0, | 519 | mNewSubTodoAction = new QAction( "new_subtodo", i18n("New Sub-Todo..."), 0, |
519 | this ); | 520 | this ); |
520 | mNewSubTodoAction->addTo( actionMenu ); | 521 | mNewSubTodoAction->addTo( actionMenu ); |
521 | connect( mNewSubTodoAction, SIGNAL( activated() ), | 522 | connect( mNewSubTodoAction, SIGNAL( activated() ), |
522 | mView, SLOT( newSubTodo() ) ); | 523 | mView, SLOT( newSubTodo() ) ); |
523 | 524 | ||
524 | actionMenu->insertSeparator(); | 525 | actionMenu->insertSeparator(); |
525 | 526 | ||
526 | mShowAction = new QAction( "show_incidence", i18n("Show..."), 0, this ); | 527 | mShowAction = new QAction( "show_incidence", i18n("Show..."), 0, this ); |
527 | mShowAction->addTo( actionMenu ); | 528 | mShowAction->addTo( actionMenu ); |
528 | connect( mShowAction, SIGNAL( activated() ), | 529 | connect( mShowAction, SIGNAL( activated() ), |
529 | mView, SLOT( showIncidence() ) ); | 530 | mView, SLOT( showIncidence() ) ); |
530 | 531 | ||
531 | mEditAction = new QAction( "edit_incidence", i18n("Edit..."), 0, this ); | 532 | mEditAction = new QAction( "edit_incidence", i18n("Edit..."), 0, this ); |
532 | mEditAction->addTo( actionMenu ); | 533 | mEditAction->addTo( actionMenu ); |
533 | connect( mEditAction, SIGNAL( activated() ), | 534 | connect( mEditAction, SIGNAL( activated() ), |
534 | mView, SLOT( editIncidence() ) ); | 535 | mView, SLOT( editIncidence() ) ); |
535 | 536 | ||
536 | mDeleteAction = new QAction( "delete_incidence", i18n("Delete..."), 0, this ); | 537 | mDeleteAction = new QAction( "delete_incidence", i18n("Delete..."), 0, this ); |
537 | mDeleteAction->addTo( actionMenu ); | 538 | mDeleteAction->addTo( actionMenu ); |
538 | connect( mDeleteAction, SIGNAL( activated() ), | 539 | connect( mDeleteAction, SIGNAL( activated() ), |
539 | mView, SLOT( deleteIncidence() ) ); | 540 | mView, SLOT( deleteIncidence() ) ); |
540 | 541 | ||
541 | actionMenu->insertSeparator(); | 542 | actionMenu->insertSeparator(); |
542 | 543 | ||
543 | action = new QAction( "purge_completed", i18n("Purge Completed"), 0, | 544 | action = new QAction( "purge_completed", i18n("Purge Completed"), 0, |
544 | this ); | 545 | this ); |
545 | action->addTo( actionMenu ); | 546 | action->addTo( actionMenu ); |
546 | connect( action, SIGNAL( activated() ), mView, SLOT( purgeCompleted() ) ); | 547 | connect( action, SIGNAL( activated() ), mView, SLOT( purgeCompleted() ) ); |
547 | 548 | ||
548 | icon = loadPixmap( pathString + "search" ); | 549 | icon = loadPixmap( pathString + "search" ); |
549 | QAction* search_action = new QAction( i18n("Search"), icon, i18n("Search..."), 0, this ); | 550 | QAction* search_action = new QAction( i18n("Search"), icon, i18n("Search..."), 0, this ); |
550 | configureToolBarMenu->insertItem(icon, i18n("Search"), 120 , 4); | 551 | configureToolBarMenu->insertItem(icon, i18n("Search"), 120 , 4); |
551 | search_action->addTo( actionMenu ); | 552 | search_action->addTo( actionMenu ); |
552 | connect( search_action, SIGNAL( activated() ), | 553 | connect( search_action, SIGNAL( activated() ), |
553 | mView->dialogManager(), SLOT( showSearchDialog() ) ); | 554 | mView->dialogManager(), SLOT( showSearchDialog() ) ); |
554 | 555 | ||
555 | icon = loadPixmap( pathString + "today" ); | 556 | icon = loadPixmap( pathString + "today" ); |
556 | configureToolBarMenu->insertItem(icon, i18n("Go to Today"), 130); | 557 | configureToolBarMenu->insertItem(icon, i18n("Go to Today"), 130); |
557 | QAction* today_action = new QAction( i18n("Go to Today"), icon, i18n("Go to Today"), 0, this ); | 558 | QAction* today_action = new QAction( i18n("Go to Today"), icon, i18n("Go to Today"), 0, this ); |
558 | today_action->addTo( actionMenu ); | 559 | today_action->addTo( actionMenu ); |
559 | connect( today_action, SIGNAL( activated() ), | 560 | connect( today_action, SIGNAL( activated() ), |
560 | mView, SLOT( goToday() ) ); | 561 | mView, SLOT( goToday() ) ); |
561 | 562 | ||
562 | if ( KOPrefs::instance()->mShowFullMenu ) { | 563 | if ( KOPrefs::instance()->mShowFullMenu ) { |
563 | actionMenu->insertSeparator(); | 564 | actionMenu->insertSeparator(); |
564 | actionMenu->insertItem( i18n("Configure Toolbar"),configureToolBarMenu ); | 565 | actionMenu->insertItem( i18n("Configure Toolbar"),configureToolBarMenu ); |
565 | 566 | ||
566 | } | 567 | } |
567 | // actionMenu->insertSeparator(); | 568 | // actionMenu->insertSeparator(); |
568 | action = new QAction( "import_qtopia", i18n("Import (*.ics/*.vcs) file"), 0, | 569 | action = new QAction( "import_qtopia", i18n("Import (*.ics/*.vcs) file"), 0, |
569 | this ); | 570 | this ); |
570 | action->addTo( importMenu ); | 571 | action->addTo( importMenu ); |
571 | connect( action, SIGNAL( activated() ), SLOT( importIcal() ) ); | 572 | connect( action, SIGNAL( activated() ), SLOT( importIcal() ) ); |
572 | action = new QAction( "import_quick", i18n("Import last file"), 0, | 573 | action = new QAction( "import_quick", i18n("Import last file"), 0, |
573 | this ); | 574 | this ); |
574 | action->addTo( importMenu ); | 575 | action->addTo( importMenu ); |
575 | connect( action, SIGNAL( activated() ), SLOT( quickImportIcal() ) ); | 576 | connect( action, SIGNAL( activated() ), SLOT( quickImportIcal() ) ); |
576 | importMenu->insertSeparator(); | 577 | importMenu->insertSeparator(); |
577 | action = new QAction( "import_bday", i18n("Import Birthdays (KA/Pi)"), 0, | 578 | action = new QAction( "import_bday", i18n("Import Birthdays (KA/Pi)"), 0, |
578 | this ); | 579 | this ); |
579 | action->addTo( importMenu ); | 580 | action->addTo( importMenu ); |
580 | connect( action, SIGNAL( activated() ), SLOT( importBday() ) ); | 581 | connect( action, SIGNAL( activated() ), SLOT( importBday() ) ); |
581 | #ifndef DESKTOP_VERSION | 582 | #ifndef DESKTOP_VERSION |
582 | importMenu->insertSeparator(); | 583 | importMenu->insertSeparator(); |
583 | action = new QAction( "import_qtopia", i18n("Import Opie/Qtopia Cal."), 0, | 584 | action = new QAction( "import_qtopia", i18n("Import Opie/Qtopia Cal."), 0, |
584 | this ); | 585 | this ); |
585 | action->addTo( importMenu ); | 586 | action->addTo( importMenu ); |
586 | connect( action, SIGNAL( activated() ), SLOT( importQtopia() ) ); | 587 | connect( action, SIGNAL( activated() ), SLOT( importQtopia() ) ); |
588 | #else | ||
589 | #ifdef _WIN32_ | ||
590 | importMenu->insertSeparator(); | ||
591 | action = new QAction( "import_ol", i18n("Import from OL"), 0, | ||
592 | this ); | ||
593 | action->addTo( importMenu ); | ||
594 | connect( action, SIGNAL( activated() ), SLOT( importOL() ) ); | ||
595 | #endif | ||
587 | #endif | 596 | #endif |
588 | 597 | ||
589 | importMenu->insertSeparator(); | 598 | importMenu->insertSeparator(); |
590 | action = new QAction( "load_cal", i18n("Load Calendar Backup"), 0, | 599 | action = new QAction( "load_cal", i18n("Load Calendar Backup"), 0, |
591 | this ); | 600 | this ); |
592 | action->addTo( importMenu ); | 601 | action->addTo( importMenu ); |
593 | connect( action, SIGNAL( activated() ), SLOT( loadCalendar() ) ); | 602 | connect( action, SIGNAL( activated() ), SLOT( loadCalendar() ) ); |
594 | 603 | ||
595 | action = new QAction( "save_cal", i18n("Save Calendar Backup"), 0, | 604 | action = new QAction( "save_cal", i18n("Save Calendar Backup"), 0, |
596 | this ); | 605 | this ); |
597 | action->addTo( importMenu ); | 606 | action->addTo( importMenu ); |
598 | connect( action, SIGNAL( activated() ), SLOT( saveCalendar() ) ); | 607 | connect( action, SIGNAL( activated() ), SLOT( saveCalendar() ) ); |
599 | 608 | ||
600 | importMenu->insertSeparator(); | 609 | importMenu->insertSeparator(); |
601 | action = new QAction( "import_qtopia", i18n("Export VCalendar"), 0, | 610 | action = new QAction( "import_qtopia", i18n("Export VCalendar"), 0, |
602 | this ); | 611 | this ); |
603 | action->addTo( importMenu ); connect( action, SIGNAL( activated() ), SLOT( exportVCalendar() ) ); | 612 | action->addTo( importMenu ); connect( action, SIGNAL( activated() ), SLOT( exportVCalendar() ) ); |
604 | importMenu->insertSeparator(); | 613 | importMenu->insertSeparator(); |
605 | action = new QAction( "manage cat", i18n("Manage new categories..."), 0, | 614 | action = new QAction( "manage cat", i18n("Manage new categories..."), 0, |
606 | this ); | 615 | this ); |
607 | action->addTo( importMenu ); | 616 | action->addTo( importMenu ); |
608 | connect( action, SIGNAL( activated() ), mView, SLOT( manageCategories() ) ); | 617 | connect( action, SIGNAL( activated() ), mView, SLOT( manageCategories() ) ); |
609 | #ifndef DESKTOP_VERSION | 618 | #ifndef DESKTOP_VERSION |
610 | importMenu->insertSeparator(); | 619 | importMenu->insertSeparator(); |
611 | action = new QAction( "beam all", i18n("Beam complete calendar..."), 0, | 620 | action = new QAction( "beam all", i18n("Beam complete calendar..."), 0, |
612 | this ); | 621 | this ); |
613 | action->addTo( importMenu ); | 622 | action->addTo( importMenu ); |
614 | connect( action, SIGNAL( activated() ), mView, SLOT( beamCalendar() ) ); | 623 | connect( action, SIGNAL( activated() ), mView, SLOT( beamCalendar() ) ); |
615 | 624 | ||
616 | action = new QAction( "beam all", i18n("Beam filtered calendar..."), 0, | 625 | action = new QAction( "beam all", i18n("Beam filtered calendar..."), 0, |
617 | this ); | 626 | this ); |
618 | action->addTo( importMenu ); | 627 | action->addTo( importMenu ); |
619 | connect( action, SIGNAL( activated() ), mView, SLOT( beamFilteredCalendar()) ); | 628 | connect( action, SIGNAL( activated() ), mView, SLOT( beamFilteredCalendar()) ); |
620 | #else | 629 | #else |
621 | importMenu->insertSeparator(); | 630 | importMenu->insertSeparator(); |
622 | icon = loadPixmap( pathString + "print" ); | 631 | icon = loadPixmap( pathString + "print" ); |
623 | action = new QAction( i18n("Print calendar..."),icon,i18n("Print calendar..."), 0, this ); | 632 | action = new QAction( i18n("Print calendar..."),icon,i18n("Print calendar..."), 0, this ); |
624 | action->addTo( importMenu ); | 633 | action->addTo( importMenu ); |
625 | connect( action, SIGNAL( activated() ), | 634 | connect( action, SIGNAL( activated() ), |
626 | this, SLOT( printCal() ) ); | 635 | this, SLOT( printCal() ) ); |
627 | 636 | ||
628 | icon = loadPixmap( pathString + "print" ); | 637 | icon = loadPixmap( pathString + "print" ); |
629 | action = new QAction( i18n("Print agenda selection..."),icon,i18n("Print agenda selection..."), 0, this ); | 638 | action = new QAction( i18n("Print agenda selection..."),icon,i18n("Print agenda selection..."), 0, this ); |
630 | action->addTo( importMenu ); | 639 | action->addTo( importMenu ); |
631 | connect( action, SIGNAL( activated() ), | 640 | connect( action, SIGNAL( activated() ), |
632 | this, SLOT( printSel() ) ); | 641 | this, SLOT( printSel() ) ); |
633 | #endif | 642 | #endif |
634 | importMenu->insertSeparator(); | 643 | importMenu->insertSeparator(); |
635 | action = new QAction( "beam all", i18n("Save"), 0, | 644 | action = new QAction( "beam all", i18n("Save"), 0, |
636 | this ); | 645 | this ); |
637 | action->addTo( importMenu ); | 646 | action->addTo( importMenu ); |
638 | connect( action, SIGNAL( activated() ), this, SLOT( save() ) ); | 647 | connect( action, SIGNAL( activated() ), this, SLOT( save() ) ); |
639 | action = new QAction( "beam all", i18n("Exit (+save)"), 0, | 648 | action = new QAction( "beam all", i18n("Exit (+save)"), 0, |
640 | this ); | 649 | this ); |
641 | action->addTo( importMenu ); | 650 | action->addTo( importMenu ); |
642 | connect( action, SIGNAL( activated() ), this, SLOT( close() ) ); | 651 | connect( action, SIGNAL( activated() ), this, SLOT( close() ) ); |
643 | 652 | ||
644 | //menuBar->insertItem( "Configure",configureMenu ); | 653 | //menuBar->insertItem( "Configure",configureMenu ); |
645 | //configureMenu->insertItem( "Toolbar",configureToolBarMenu ); | 654 | //configureMenu->insertItem( "Toolbar",configureToolBarMenu ); |
646 | icon = loadPixmap( "korganizer/korganizer" ); | 655 | icon = loadPixmap( "korganizer/korganizer" ); |
647 | action = new QAction( "Keys + Colors", i18n("Keys + Colors..."), 0, this ); | 656 | action = new QAction( "Keys + Colors", i18n("Keys + Colors..."), 0, this ); |
648 | action->addTo( helpMenu ); | 657 | action->addTo( helpMenu ); |
649 | connect( action, SIGNAL( activated() ), | 658 | connect( action, SIGNAL( activated() ), |
650 | SLOT( keyBindings() ) ); | 659 | SLOT( keyBindings() ) ); |
651 | action = new QAction( "featureHowto", i18n("Features + hints..."), 0,this ); | 660 | action = new QAction( "featureHowto", i18n("Features + hints..."), 0,this ); |
652 | action->addTo( helpMenu ); | 661 | action->addTo( helpMenu ); |
653 | connect( action, SIGNAL( activated() ), | 662 | connect( action, SIGNAL( activated() ), |
654 | SLOT( features() ) ); | 663 | SLOT( features() ) ); |
655 | action = new QAction( "Auto saving", i18n("Auto saving..."), 0, this ); | 664 | action = new QAction( "Auto saving", i18n("Auto saving..."), 0, this ); |
656 | action->addTo( helpMenu ); | 665 | action->addTo( helpMenu ); |
657 | connect( action, SIGNAL( activated() ), | 666 | connect( action, SIGNAL( activated() ), |
658 | SLOT( aboutAutoSaving() ) ); | 667 | SLOT( aboutAutoSaving() ) ); |
659 | action = new QAction( "Problemd", i18n("Known Problems..."), 0,this ); | 668 | action = new QAction( "Problemd", i18n("Known Problems..."), 0,this ); |
660 | action->addTo( helpMenu ); | 669 | action->addTo( helpMenu ); |
661 | connect( action, SIGNAL( activated() ), | 670 | connect( action, SIGNAL( activated() ), |
662 | SLOT( aboutKnownBugs() ) ); | 671 | SLOT( aboutKnownBugs() ) ); |
663 | action = new QAction( "Translate Howto", i18n("User translation..."), 0,this ); | 672 | action = new QAction( "Translate Howto", i18n("User translation..."), 0,this ); |
664 | action->addTo( helpMenu ); | 673 | action->addTo( helpMenu ); |
665 | connect( action, SIGNAL( activated() ), | 674 | connect( action, SIGNAL( activated() ), |
666 | SLOT( usertrans() ) ); | 675 | SLOT( usertrans() ) ); |
667 | action = new QAction( "Sync Howto", i18n("Sync HowTo..."), 0,this ); | 676 | action = new QAction( "Sync Howto", i18n("Sync HowTo..."), 0,this ); |
668 | action->addTo( helpMenu ); | 677 | action->addTo( helpMenu ); |
669 | connect( action, SIGNAL( activated() ), | 678 | connect( action, SIGNAL( activated() ), |
670 | SLOT( synchowto() ) ); | 679 | SLOT( synchowto() ) ); |
671 | action = new QAction( "Whats New", i18n("What's new?"), 0,this ); | 680 | action = new QAction( "Whats New", i18n("What's new?"), 0,this ); |
672 | action->addTo( helpMenu ); | 681 | action->addTo( helpMenu ); |
673 | connect( action, SIGNAL( activated() ), | 682 | connect( action, SIGNAL( activated() ), |
674 | SLOT( whatsNew() ) ); | 683 | SLOT( whatsNew() ) ); |
675 | action = new QAction( "Frequently asked questions", i18n("FAQ..."), 0,this ); | 684 | action = new QAction( "Frequently asked questions", i18n("FAQ..."), 0,this ); |
676 | action->addTo( helpMenu ); | 685 | action->addTo( helpMenu ); |
677 | connect( action, SIGNAL( activated() ), | 686 | connect( action, SIGNAL( activated() ), |
678 | SLOT( faq() ) ); | 687 | SLOT( faq() ) ); |
679 | 688 | ||
680 | 689 | ||
681 | action = new QAction( "about", i18n("About..."), 0, this ); | 690 | action = new QAction( "about", i18n("About..."), 0, this ); |
682 | action->addTo( helpMenu ); | 691 | action->addTo( helpMenu ); |
@@ -837,193 +846,195 @@ void MainWindow::fillSyncMenu() | |||
837 | if ( i == 2 ) | 846 | if ( i == 2 ) |
838 | syncMenu->insertSeparator(); | 847 | syncMenu->insertSeparator(); |
839 | } | 848 | } |
840 | QDir app_dir; | 849 | QDir app_dir; |
841 | if ( !app_dir.exists(QDir::homeDirPath()+"/Applications/dtm" ) ) { | 850 | if ( !app_dir.exists(QDir::homeDirPath()+"/Applications/dtm" ) ) { |
842 | syncMenu->setItemEnabled( false , 1000 ); | 851 | syncMenu->setItemEnabled( false , 1000 ); |
843 | } | 852 | } |
844 | } | 853 | } |
845 | 854 | ||
846 | int MainWindow::ringSync() | 855 | int MainWindow::ringSync() |
847 | { | 856 | { |
848 | int syncedProfiles = 0; | 857 | int syncedProfiles = 0; |
849 | int i; | 858 | int i; |
850 | QTime timer; | 859 | QTime timer; |
851 | KConfig *config = KOGlobals::config(); | 860 | KConfig *config = KOGlobals::config(); |
852 | QStringList syncProfileNames = KOPrefs::instance()->mSyncProfileNames; | 861 | QStringList syncProfileNames = KOPrefs::instance()->mSyncProfileNames; |
853 | KSyncProfile* temp = new KSyncProfile (); | 862 | KSyncProfile* temp = new KSyncProfile (); |
854 | KOPrefs::instance()->mAskForPreferences = false; | 863 | KOPrefs::instance()->mAskForPreferences = false; |
855 | for ( i = 0; i < syncProfileNames.count(); ++i ) { | 864 | for ( i = 0; i < syncProfileNames.count(); ++i ) { |
856 | mCurrentSyncProfile = i; | 865 | mCurrentSyncProfile = i; |
857 | temp->setName(syncProfileNames[mCurrentSyncProfile]); | 866 | temp->setName(syncProfileNames[mCurrentSyncProfile]); |
858 | temp->readConfig(config); | 867 | temp->readConfig(config); |
859 | if ( temp->getIncludeInRingSync() && ( i < 1 || i > 2 )) { | 868 | if ( temp->getIncludeInRingSync() && ( i < 1 || i > 2 )) { |
860 | setCaption(i18n("Profile ")+syncProfileNames[mCurrentSyncProfile]+ i18n(" is synced ... ")); | 869 | setCaption(i18n("Profile ")+syncProfileNames[mCurrentSyncProfile]+ i18n(" is synced ... ")); |
861 | ++syncedProfiles; | 870 | ++syncedProfiles; |
862 | // KOPrefs::instance()->mAskForPreferences = temp->getAskForPreferences(); | 871 | // KOPrefs::instance()->mAskForPreferences = temp->getAskForPreferences(); |
863 | KOPrefs::instance()->mWriteBackFile = temp->getWriteBackFile(); | 872 | KOPrefs::instance()->mWriteBackFile = temp->getWriteBackFile(); |
864 | KOPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting(); | 873 | KOPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting(); |
865 | KOPrefs::instance()->mShowSyncSummary = false; | 874 | KOPrefs::instance()->mShowSyncSummary = false; |
866 | mView->setSyncDevice(syncProfileNames[i] ); | 875 | mView->setSyncDevice(syncProfileNames[i] ); |
867 | mView->setSyncName( KOPrefs::instance()->mLocalMachineName ); | 876 | mView->setSyncName( KOPrefs::instance()->mLocalMachineName ); |
868 | if ( i == 0 ) { | 877 | if ( i == 0 ) { |
869 | syncSharp(); | 878 | syncSharp(); |
870 | } else { | 879 | } else { |
871 | if ( temp->getIsLocalFileSync() ) { | 880 | if ( temp->getIsLocalFileSync() ) { |
872 | if ( syncWithFile( temp->getRemoteFileName( ), true ) ) | 881 | if ( syncWithFile( temp->getRemoteFileName( ), true ) ) |
873 | KOPrefs::instance()->mLastSyncedLocalFile = temp->getRemoteFileName(); | 882 | KOPrefs::instance()->mLastSyncedLocalFile = temp->getRemoteFileName(); |
874 | } else { | 883 | } else { |
875 | syncRemote( temp, false ); | 884 | syncRemote( temp, false ); |
876 | 885 | ||
877 | } | 886 | } |
878 | } | 887 | } |
879 | timer.start(); | 888 | timer.start(); |
880 | setCaption(i18n("Multiple sync in progress ... please wait!") ); | 889 | setCaption(i18n("Multiple sync in progress ... please wait!") ); |
881 | while ( timer.elapsed () < 2000 ) { | 890 | while ( timer.elapsed () < 2000 ) { |
882 | qApp->processEvents(); | 891 | qApp->processEvents(); |
883 | #ifndef _WIN32_ | 892 | #ifndef _WIN32_ |
884 | sleep (1); | 893 | sleep (1); |
885 | #endif | 894 | #endif |
886 | } | 895 | } |
887 | 896 | ||
888 | } | 897 | } |
889 | 898 | ||
890 | } | 899 | } |
891 | delete temp; | 900 | delete temp; |
892 | return syncedProfiles; | 901 | return syncedProfiles; |
893 | } | 902 | } |
894 | 903 | ||
895 | void MainWindow::multiSync( bool askforPrefs ) | 904 | void MainWindow::multiSync( bool askforPrefs ) |
896 | { | 905 | { |
897 | if (mBlockSaveFlag) | 906 | if (mBlockSaveFlag) |
898 | return; | 907 | return; |
899 | mBlockSaveFlag = true; | 908 | mBlockSaveFlag = true; |
900 | QString question = i18n("Do you really want\nto multiple sync\nwith all checked profiles?\nSyncing takes some\ntime - all profiles\nare synced twice!"); | 909 | QString question = i18n("Do you really want\nto multiple sync\nwith all checked profiles?\nSyncing takes some\ntime - all profiles\nare synced twice!"); |
901 | if ( QMessageBox::information( this, i18n("KO/Pi Sync"), | 910 | if ( QMessageBox::information( this, i18n("KO/Pi Sync"), |
902 | question, | 911 | question, |
903 | i18n("Yes"), i18n("No"), | 912 | i18n("Yes"), i18n("No"), |
904 | 0, 0 ) != 0 ) { | 913 | 0, 0 ) != 0 ) { |
905 | mBlockSaveFlag = false; | 914 | mBlockSaveFlag = false; |
906 | setCaption(i18n("Aborted! Nothing synced!")); | 915 | setCaption(i18n("Aborted! Nothing synced!")); |
907 | return; | 916 | return; |
908 | } | 917 | } |
909 | mView->setSyncDevice(i18n("Multiple profiles") ); | 918 | mView->setSyncDevice(i18n("Multiple profiles") ); |
910 | KOPrefs::instance()->mSyncAlgoPrefs = KOPrefs::instance()->mRingSyncAlgoPrefs; | 919 | KOPrefs::instance()->mSyncAlgoPrefs = KOPrefs::instance()->mRingSyncAlgoPrefs; |
911 | if ( askforPrefs ) { | 920 | if ( askforPrefs ) { |
912 | mView->edit_sync_options(); | 921 | mView->edit_sync_options(); |
913 | KOPrefs::instance()->mRingSyncAlgoPrefs = KOPrefs::instance()->mSyncAlgoPrefs; | 922 | KOPrefs::instance()->mRingSyncAlgoPrefs = KOPrefs::instance()->mSyncAlgoPrefs; |
914 | } | 923 | } |
915 | setCaption(i18n("Multiple sync started.") ); | 924 | setCaption(i18n("Multiple sync started.") ); |
916 | qApp->processEvents(); | 925 | qApp->processEvents(); |
917 | int num = ringSync() ; | 926 | int num = ringSync() ; |
918 | if ( num > 1 ) | 927 | if ( num > 1 ) |
919 | ringSync(); | 928 | ringSync(); |
920 | mBlockSaveFlag = false; | 929 | mBlockSaveFlag = false; |
921 | if ( num ) | 930 | if ( num ) |
922 | save(); | 931 | save(); |
923 | if ( num ) | 932 | if ( num ) |
924 | setCaption(i18n("%1 profiles synced. Multiple sync completed!").arg(num) ); | 933 | setCaption(i18n("%1 profiles synced. Multiple sync completed!").arg(num) ); |
925 | else | 934 | else |
926 | setCaption(i18n("Nothing synced! No profiles defined for multisync!")); | 935 | setCaption(i18n("Nothing synced! No profiles defined for multisync!")); |
927 | return; | 936 | return; |
928 | } | 937 | } |
929 | void MainWindow::slotSyncMenu( int action ) | 938 | void MainWindow::slotSyncMenu( int action ) |
930 | { | 939 | { |
931 | //qDebug("syncaction %d ", action); | 940 | //qDebug("syncaction %d ", action); |
932 | if ( action == 0 ) { | 941 | if ( action == 0 ) { |
942 | |||
933 | confSync(); | 943 | confSync(); |
944 | |||
934 | return; | 945 | return; |
935 | } | 946 | } |
936 | if ( action == 1 ) { | 947 | if ( action == 1 ) { |
937 | multiSync( true ); | 948 | multiSync( true ); |
938 | return; | 949 | return; |
939 | } | 950 | } |
940 | 951 | ||
941 | if (mBlockSaveFlag) | 952 | if (mBlockSaveFlag) |
942 | return; | 953 | return; |
943 | mBlockSaveFlag = true; | 954 | mBlockSaveFlag = true; |
944 | mCurrentSyncProfile = action - 1000 ; | 955 | mCurrentSyncProfile = action - 1000 ; |
945 | mView->setSyncDevice(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile] ); | 956 | mView->setSyncDevice(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile] ); |
946 | mView->setSyncName( KOPrefs::instance()->mLocalMachineName ); | 957 | mView->setSyncName( KOPrefs::instance()->mLocalMachineName ); |
947 | KConfig *config = KOGlobals::config(); | 958 | KConfig *config = KOGlobals::config(); |
948 | KSyncProfile* temp = new KSyncProfile (); | 959 | KSyncProfile* temp = new KSyncProfile (); |
949 | temp->setName(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]); | 960 | temp->setName(KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]); |
950 | temp->readConfig(config); | 961 | temp->readConfig(config); |
951 | KOPrefs::instance()->mAskForPreferences = temp->getAskForPreferences(); | 962 | KOPrefs::instance()->mAskForPreferences = temp->getAskForPreferences(); |
952 | KOPrefs::instance()->mSyncAlgoPrefs = temp->getSyncPrefs(); | 963 | KOPrefs::instance()->mSyncAlgoPrefs = temp->getSyncPrefs(); |
953 | KOPrefs::instance()->mWriteBackFile = temp->getWriteBackFile(); | 964 | KOPrefs::instance()->mWriteBackFile = temp->getWriteBackFile(); |
954 | KOPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting(); | 965 | KOPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting(); |
955 | KOPrefs::instance()->mShowSyncSummary = temp->getShowSummaryAfterSync(); | 966 | KOPrefs::instance()->mShowSyncSummary = temp->getShowSummaryAfterSync(); |
956 | if ( action == 1000 ) { | 967 | if ( action == 1000 ) { |
957 | syncSharp(); | 968 | syncSharp(); |
958 | 969 | ||
959 | } else if ( action == 1001 ) { | 970 | } else if ( action == 1001 ) { |
960 | syncLocalFile(); | 971 | syncLocalFile(); |
961 | 972 | ||
962 | } else if ( action == 1002 ) { | 973 | } else if ( action == 1002 ) { |
963 | quickSyncLocalFile(); | 974 | quickSyncLocalFile(); |
964 | 975 | ||
965 | } else if ( action >= 1003 ) { | 976 | } else if ( action >= 1003 ) { |
966 | if ( temp->getIsLocalFileSync() ) { | 977 | if ( temp->getIsLocalFileSync() ) { |
967 | if ( syncWithFile( temp->getRemoteFileName( ), false ) ) | 978 | if ( syncWithFile( temp->getRemoteFileName( ), false ) ) |
968 | KOPrefs::instance()->mLastSyncedLocalFile = temp->getRemoteFileName(); | 979 | KOPrefs::instance()->mLastSyncedLocalFile = temp->getRemoteFileName(); |
969 | } else { | 980 | } else { |
970 | syncRemote( temp ); | 981 | syncRemote( temp ); |
971 | 982 | ||
972 | } | 983 | } |
973 | } | 984 | } |
974 | delete temp; | 985 | delete temp; |
975 | mBlockSaveFlag = false; | 986 | mBlockSaveFlag = false; |
976 | } | 987 | } |
977 | void MainWindow::setDefaultPreferences() | 988 | void MainWindow::setDefaultPreferences() |
978 | { | 989 | { |
979 | KOPrefs *p = KOPrefs::instance(); | 990 | KOPrefs *p = KOPrefs::instance(); |
980 | 991 | ||
981 | p->mCompactDialogs = true; | 992 | p->mCompactDialogs = true; |
982 | p->mConfirm = true; | 993 | p->mConfirm = true; |
983 | // p->mEnableQuickTodo = false; | 994 | // p->mEnableQuickTodo = false; |
984 | } | 995 | } |
985 | 996 | ||
986 | QString MainWindow::resourcePath() | 997 | QString MainWindow::resourcePath() |
987 | { | 998 | { |
988 | return KGlobal::iconLoader()->iconPath(); | 999 | return KGlobal::iconLoader()->iconPath(); |
989 | } | 1000 | } |
990 | 1001 | ||
991 | void MainWindow::displayText( QString text ,QString cap ) | 1002 | void MainWindow::displayText( QString text ,QString cap ) |
992 | { | 1003 | { |
993 | QDialog dia( this, "name", true ); ; | 1004 | QDialog dia( this, "name", true ); ; |
994 | dia.setCaption( cap ); | 1005 | dia.setCaption( cap ); |
995 | QVBoxLayout* lay = new QVBoxLayout( &dia ); | 1006 | QVBoxLayout* lay = new QVBoxLayout( &dia ); |
996 | lay->setSpacing( 3 ); | 1007 | lay->setSpacing( 3 ); |
997 | lay->setMargin( 3 ); | 1008 | lay->setMargin( 3 ); |
998 | QTextBrowser tb ( &dia ); | 1009 | QTextBrowser tb ( &dia ); |
999 | lay->addWidget( &tb ); | 1010 | lay->addWidget( &tb ); |
1000 | tb.setText( text ); | 1011 | tb.setText( text ); |
1001 | #ifdef DESKTOP_VERSION | 1012 | #ifdef DESKTOP_VERSION |
1002 | dia.resize( 640, 480); | 1013 | dia.resize( 640, 480); |
1003 | #else | 1014 | #else |
1004 | dia.showMaximized(); | 1015 | dia.showMaximized(); |
1005 | #endif | 1016 | #endif |
1006 | dia.exec(); | 1017 | dia.exec(); |
1007 | } | 1018 | } |
1008 | void MainWindow::displayFile( QString fn, QString cap ) | 1019 | void MainWindow::displayFile( QString fn, QString cap ) |
1009 | { | 1020 | { |
1010 | QString fileName = resourcePath() + fn; | 1021 | QString fileName = resourcePath() + fn; |
1011 | QString text; | 1022 | QString text; |
1012 | QFile file( fileName ); | 1023 | QFile file( fileName ); |
1013 | if (!file.open( IO_ReadOnly ) ) { | 1024 | if (!file.open( IO_ReadOnly ) ) { |
1014 | return ; | 1025 | return ; |
1015 | 1026 | ||
1016 | } | 1027 | } |
1017 | QTextStream ts( &file ); | 1028 | QTextStream ts( &file ); |
1018 | text = ts.read(); | 1029 | text = ts.read(); |
1019 | file.close(); | 1030 | file.close(); |
1020 | displayText( text, cap); | 1031 | displayText( text, cap); |
1021 | } | 1032 | } |
1022 | void MainWindow::features() | 1033 | void MainWindow::features() |
1023 | { | 1034 | { |
1024 | 1035 | ||
1025 | displayFile( "featuresKOPI.txt",i18n("KO/Pi Features and hints") ); | 1036 | displayFile( "featuresKOPI.txt",i18n("KO/Pi Features and hints") ); |
1026 | } | 1037 | } |
1027 | 1038 | ||
1028 | void MainWindow::usertrans() | 1039 | void MainWindow::usertrans() |
1029 | { | 1040 | { |
@@ -1126,192 +1137,201 @@ void MainWindow::aboutAutoSaving() | |||
1126 | delete msg; | 1137 | delete msg; |
1127 | 1138 | ||
1128 | 1139 | ||
1129 | } | 1140 | } |
1130 | void MainWindow::aboutKnownBugs() | 1141 | void MainWindow::aboutKnownBugs() |
1131 | { | 1142 | { |
1132 | QMessageBox* msg; | 1143 | QMessageBox* msg; |
1133 | msg = new QMessageBox( i18n("Known Problems in KOrganizer/Pi"), | 1144 | msg = new QMessageBox( i18n("Known Problems in KOrganizer/Pi"), |
1134 | i18n("1) Importing *.vcs or *.ics files from\nother applications may not work properly,\nif there are events with properties\nKO/Pi does not support.\n")+ | 1145 | i18n("1) Importing *.vcs or *.ics files from\nother applications may not work properly,\nif there are events with properties\nKO/Pi does not support.\n")+ |
1135 | i18n("2) Audio alarm daemon\nfor Zaurus is available!\nas an additional small application\n")+ | 1146 | i18n("2) Audio alarm daemon\nfor Zaurus is available!\nas an additional small application\n")+ |
1136 | i18n("\nPlease report unexpected behaviour to\nlutz@pi-sync.net\n") + | 1147 | i18n("\nPlease report unexpected behaviour to\nlutz@pi-sync.net\n") + |
1137 | i18n("\nor report them in the bugtracker on\n") + | 1148 | i18n("\nor report them in the bugtracker on\n") + |
1138 | i18n("\nhttp://sourceforge.net/projects/kdepimpi\n"), | 1149 | i18n("\nhttp://sourceforge.net/projects/kdepimpi\n"), |
1139 | QMessageBox::NoIcon, | 1150 | QMessageBox::NoIcon, |
1140 | QMessageBox::Ok, | 1151 | QMessageBox::Ok, |
1141 | QMessageBox::NoButton, | 1152 | QMessageBox::NoButton, |
1142 | QMessageBox::NoButton); | 1153 | QMessageBox::NoButton); |
1143 | msg->exec(); | 1154 | msg->exec(); |
1144 | delete msg; | 1155 | delete msg; |
1145 | 1156 | ||
1146 | } | 1157 | } |
1147 | 1158 | ||
1148 | QString MainWindow::defaultFileName() | 1159 | QString MainWindow::defaultFileName() |
1149 | { | 1160 | { |
1150 | return locateLocal( "data", "korganizer/mycalendar.ics" ); | 1161 | return locateLocal( "data", "korganizer/mycalendar.ics" ); |
1151 | } | 1162 | } |
1152 | 1163 | ||
1153 | void MainWindow::processIncidenceSelection( Incidence *incidence ) | 1164 | void MainWindow::processIncidenceSelection( Incidence *incidence ) |
1154 | { | 1165 | { |
1155 | if ( !incidence ) { | 1166 | if ( !incidence ) { |
1156 | enableIncidenceActions( false ); | 1167 | enableIncidenceActions( false ); |
1157 | 1168 | ||
1158 | mNewSubTodoAction->setEnabled( false ); | 1169 | mNewSubTodoAction->setEnabled( false ); |
1159 | setCaptionToDates(); | 1170 | setCaptionToDates(); |
1160 | return; | 1171 | return; |
1161 | 1172 | ||
1162 | } | 1173 | } |
1163 | 1174 | ||
1164 | //KGlobal::locale()->formatDateTime(nextA, true); | 1175 | //KGlobal::locale()->formatDateTime(nextA, true); |
1165 | QString startString = ""; | 1176 | QString startString = ""; |
1166 | if ( incidence->type() != "Todo" ) { | 1177 | if ( incidence->type() != "Todo" ) { |
1167 | if ( incidence->dtStart().date() < incidence->dtEnd().date() ) { | 1178 | if ( incidence->dtStart().date() < incidence->dtEnd().date() ) { |
1168 | if ( incidence->doesFloat() ) { | 1179 | if ( incidence->doesFloat() ) { |
1169 | startString += ": "+incidence->dtStartDateStr( true ); | 1180 | startString += ": "+incidence->dtStartDateStr( true ); |
1170 | startString += " --- "+((Event*)incidence)->dtEndDateStr( true ); | 1181 | startString += " --- "+((Event*)incidence)->dtEndDateStr( true ); |
1171 | 1182 | ||
1172 | } else { | 1183 | } else { |
1173 | startString = ": "+incidence->dtStartStr(true); | 1184 | startString = ": "+incidence->dtStartStr(true); |
1174 | startString += " --- "+((Event*)incidence)->dtEndStr(true); | 1185 | startString += " --- "+((Event*)incidence)->dtEndStr(true); |
1175 | 1186 | ||
1176 | } | 1187 | } |
1177 | 1188 | ||
1178 | } else { | 1189 | } else { |
1179 | if ( incidence->dtStart().time() != incidence->dtEnd().time() ) | 1190 | if ( incidence->dtStart().time() != incidence->dtEnd().time() ) |
1180 | startString = ": "+KGlobal::locale()->formatTime(incidence->dtStart().time())+ | 1191 | startString = ": "+KGlobal::locale()->formatTime(incidence->dtStart().time())+ |
1181 | "-"+KGlobal::locale()->formatTime(incidence->dtEnd().time()); | 1192 | "-"+KGlobal::locale()->formatTime(incidence->dtEnd().time()); |
1182 | startString +=" "+KGlobal::locale()->formatDate( incidence->dtStart().date(), true); | 1193 | startString +=" "+KGlobal::locale()->formatDate( incidence->dtStart().date(), true); |
1183 | } | 1194 | } |
1184 | 1195 | ||
1185 | } | 1196 | } |
1186 | else | 1197 | else |
1187 | startString = i18n(": (Prio ") +QString::number( (( KCal::Todo*)incidence)->priority() ) +") "+QString::number( (( KCal::Todo*)incidence)->percentComplete() ) +i18n("\% completed"); | 1198 | startString = i18n(": (Prio ") +QString::number( (( KCal::Todo*)incidence)->priority() ) +") "+QString::number( (( KCal::Todo*)incidence)->percentComplete() ) +i18n("\% completed"); |
1188 | if ( !incidence->location().isEmpty() ) | 1199 | if ( !incidence->location().isEmpty() ) |
1189 | startString += " (" +incidence->location()+")"; | 1200 | startString += " (" +incidence->location()+")"; |
1190 | setCaption( incidence->summary()+startString); | 1201 | setCaption( incidence->summary()+startString); |
1191 | 1202 | ||
1192 | enableIncidenceActions( true ); | 1203 | enableIncidenceActions( true ); |
1193 | 1204 | ||
1194 | if ( incidence->type() == "Event" ) { | 1205 | if ( incidence->type() == "Event" ) { |
1195 | mShowAction->setText( i18n("Show Event...") ); | 1206 | mShowAction->setText( i18n("Show Event...") ); |
1196 | mEditAction->setText( i18n("Edit Event...") ); | 1207 | mEditAction->setText( i18n("Edit Event...") ); |
1197 | mDeleteAction->setText( i18n("Delete Event...") ); | 1208 | mDeleteAction->setText( i18n("Delete Event...") ); |
1198 | 1209 | ||
1199 | mNewSubTodoAction->setEnabled( false ); | 1210 | mNewSubTodoAction->setEnabled( false ); |
1200 | } else if ( incidence->type() == "Todo" ) { | 1211 | } else if ( incidence->type() == "Todo" ) { |
1201 | mShowAction->setText( i18n("Show Todo...") ); | 1212 | mShowAction->setText( i18n("Show Todo...") ); |
1202 | mEditAction->setText( i18n("Edit Todo...") ); | 1213 | mEditAction->setText( i18n("Edit Todo...") ); |
1203 | mDeleteAction->setText( i18n("Delete Todo...") ); | 1214 | mDeleteAction->setText( i18n("Delete Todo...") ); |
1204 | 1215 | ||
1205 | mNewSubTodoAction->setEnabled( true ); | 1216 | mNewSubTodoAction->setEnabled( true ); |
1206 | } else { | 1217 | } else { |
1207 | mShowAction->setText( i18n("Show...") ); | 1218 | mShowAction->setText( i18n("Show...") ); |
1208 | mShowAction->setText( i18n("Edit...") ); | 1219 | mShowAction->setText( i18n("Edit...") ); |
1209 | mShowAction->setText( i18n("Delete...") ); | 1220 | mShowAction->setText( i18n("Delete...") ); |
1210 | 1221 | ||
1211 | mNewSubTodoAction->setEnabled( false ); | 1222 | mNewSubTodoAction->setEnabled( false ); |
1212 | } | 1223 | } |
1213 | } | 1224 | } |
1214 | 1225 | ||
1215 | void MainWindow::enableIncidenceActions( bool enabled ) | 1226 | void MainWindow::enableIncidenceActions( bool enabled ) |
1216 | { | 1227 | { |
1217 | mShowAction->setEnabled( enabled ); | 1228 | mShowAction->setEnabled( enabled ); |
1218 | mEditAction->setEnabled( enabled ); | 1229 | mEditAction->setEnabled( enabled ); |
1219 | mDeleteAction->setEnabled( enabled ); | 1230 | mDeleteAction->setEnabled( enabled ); |
1220 | } | 1231 | } |
1221 | 1232 | ||
1233 | void MainWindow::importOL() | ||
1234 | { | ||
1235 | #ifdef _WIN32_ | ||
1236 | KOImportOLdialog *id = new KOImportOLdialog("Import from OL - select folder!" , mView->calendar(),this ); | ||
1237 | id->exec(); | ||
1238 | delete id; | ||
1239 | mView->updateView(); | ||
1240 | #endif | ||
1241 | } | ||
1222 | void MainWindow::importBday() | 1242 | void MainWindow::importBday() |
1223 | { | 1243 | { |
1224 | int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), | 1244 | int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), |
1225 | i18n("When importing birthdays twice\nduplicated events will be ignored,\nif the event has not been\nchanged in KO/Pi!\n"), | 1245 | i18n("When importing birthdays twice\nduplicated events will be ignored,\nif the event has not been\nchanged in KO/Pi!\n"), |
1226 | i18n("Import!"), i18n("Cancel"), 0, | 1246 | i18n("Import!"), i18n("Cancel"), 0, |
1227 | 0, 1 ); | 1247 | 0, 1 ); |
1228 | if ( result == 0 ) { | 1248 | if ( result == 0 ) { |
1229 | mView->importBday(); | 1249 | mView->importBday(); |
1230 | 1250 | ||
1231 | } | 1251 | } |
1232 | 1252 | ||
1233 | 1253 | ||
1234 | } | 1254 | } |
1235 | void MainWindow::importQtopia() | 1255 | void MainWindow::importQtopia() |
1236 | { | 1256 | { |
1237 | #ifndef DESKTOP_VERSION | 1257 | #ifndef DESKTOP_VERSION |
1238 | int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), | 1258 | int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), |
1239 | 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"), | 1259 | 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"), |
1240 | i18n("Import!"), i18n("Cancel"), 0, | 1260 | i18n("Import!"), i18n("Cancel"), 0, |
1241 | 0, 1 ); | 1261 | 0, 1 ); |
1242 | if ( result == 0 ) { | 1262 | if ( result == 0 ) { |
1243 | QString datebook = Global::applicationFileName( "datebook", "datebook.xml"); | 1263 | QString datebook = Global::applicationFileName( "datebook", "datebook.xml"); |
1244 | QString todolist = Global::applicationFileName( "todolist", "todolist.xml"); | 1264 | QString todolist = Global::applicationFileName( "todolist", "todolist.xml"); |
1245 | QString categories = QString( getenv( "HOME" ) ) + "/Settings/Categories.xml"; | 1265 | QString categories = QString( getenv( "HOME" ) ) + "/Settings/Categories.xml"; |
1246 | mView->importQtopia( categories, datebook, todolist ); | 1266 | mView->importQtopia( categories, datebook, todolist ); |
1247 | } | 1267 | } |
1248 | #else | 1268 | #else |
1249 | int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), | 1269 | int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), |
1250 | i18n("Not supported \non desktop!\n"), | 1270 | i18n("Not supported \non desktop!\n"), |
1251 | i18n("Ok"), i18n("Cancel"), 0, | 1271 | i18n("Ok"), i18n("Cancel"), 0, |
1252 | 0, 1 ); | 1272 | 0, 1 ); |
1253 | 1273 | ||
1254 | #endif | 1274 | #endif |
1255 | } | 1275 | } |
1256 | 1276 | ||
1257 | void MainWindow::saveOnClose() | 1277 | void MainWindow::saveOnClose() |
1258 | { | 1278 | { |
1259 | KOPrefs *p = KOPrefs::instance(); | 1279 | KOPrefs *p = KOPrefs::instance(); |
1260 | p->mToolBarHor = ( iconToolBar->orientation () == Qt:: Horizontal ); | 1280 | p->mToolBarHor = ( iconToolBar->orientation () == Qt:: Horizontal ); |
1261 | p->mToolBarUp = iconToolBar->x() > width()/2 || | 1281 | p->mToolBarUp = iconToolBar->x() > width()/2 || |
1262 | iconToolBar->y() > height()/2; | 1282 | iconToolBar->y() > height()/2; |
1263 | mView->writeSettings(); | 1283 | mView->writeSettings(); |
1264 | if ( mCalendarModifiedFlag || mView->checkFileChanged( defaultFileName())) | 1284 | if ( mCalendarModifiedFlag || mView->checkFileChanged( defaultFileName())) |
1265 | save(); | 1285 | save(); |
1266 | } | 1286 | } |
1267 | void MainWindow::slotModifiedChanged( bool changed ) | 1287 | void MainWindow::slotModifiedChanged( bool changed ) |
1268 | { | 1288 | { |
1269 | if ( mBlockAtStartup ) | 1289 | if ( mBlockAtStartup ) |
1270 | return; | 1290 | return; |
1271 | int msec; | 1291 | int msec; |
1272 | // we store the changes after 1 minute, | 1292 | // we store the changes after 1 minute, |
1273 | // and for safety reasons after 10 minutes again | 1293 | // and for safety reasons after 10 minutes again |
1274 | if ( !mBlockSaveFlag ) | 1294 | if ( !mBlockSaveFlag ) |
1275 | msec = (1000 * 60*KOPrefs::instance()->mAutoSaveInterval) +1000; | 1295 | msec = (1000 * 60*KOPrefs::instance()->mAutoSaveInterval) +1000; |
1276 | else | 1296 | else |
1277 | msec = 1000 * 600; | 1297 | msec = 1000 * 600; |
1278 | mSaveTimer.start( msec, true ); // 1 minute | 1298 | mSaveTimer.start( msec, true ); // 1 minute |
1279 | qDebug("KO: Saving File in %d secs!", msec/1000); | 1299 | qDebug("KO: Saving File in %d secs!", msec/1000); |
1280 | mCalendarModifiedFlag = true; | 1300 | mCalendarModifiedFlag = true; |
1281 | } | 1301 | } |
1282 | #include <qfileinfo.h> | 1302 | #include <qfileinfo.h> |
1283 | void MainWindow::save() | 1303 | void MainWindow::save() |
1284 | { | 1304 | { |
1285 | if ( mBlockSaveFlag ) | 1305 | if ( mBlockSaveFlag ) |
1286 | return; | 1306 | return; |
1287 | bool store = mBlockSaveFlag; | 1307 | bool store = mBlockSaveFlag; |
1288 | mBlockSaveFlag = true; | 1308 | mBlockSaveFlag = true; |
1289 | if ( mView->checkFileVersion( defaultFileName()) ) { | 1309 | if ( mView->checkFileVersion( defaultFileName()) ) { |
1290 | 1310 | ||
1291 | QTime neededSaveTime = QDateTime::currentDateTime().time(); | 1311 | QTime neededSaveTime = QDateTime::currentDateTime().time(); |
1292 | setCaption(i18n("KO/Pi:Saving Data to File ..." )); | 1312 | setCaption(i18n("KO/Pi:Saving Data to File ..." )); |
1293 | qDebug("KO: Start saving data to file!"); | 1313 | qDebug("KO: Start saving data to file!"); |
1294 | mView->saveCalendar( defaultFileName() ); | 1314 | mView->saveCalendar( defaultFileName() ); |
1295 | 1315 | ||
1296 | int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() ); | 1316 | int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() ); |
1297 | mView->setLoadedFileVersion(QDateTime::currentDateTime()); | 1317 | mView->setLoadedFileVersion(QDateTime::currentDateTime()); |
1298 | qDebug("KO: Needed %d ms for saving.",msNeeded ); | 1318 | qDebug("KO: Needed %d ms for saving.",msNeeded ); |
1299 | QString savemes; | 1319 | QString savemes; |
1300 | savemes.sprintf(i18n("KO/Pi:File Saved. Needed %d sec, %d ms"),(msNeeded/1000)%100,msNeeded%1000 ); | 1320 | savemes.sprintf(i18n("KO/Pi:File Saved. Needed %d sec, %d ms"),(msNeeded/1000)%100,msNeeded%1000 ); |
1301 | setCaption(savemes); | 1321 | setCaption(savemes); |
1302 | } else | 1322 | } else |
1303 | setCaption(i18n("Saving cancelled!")); | 1323 | setCaption(i18n("Saving cancelled!")); |
1304 | mCalendarModifiedFlag = false; | 1324 | mCalendarModifiedFlag = false; |
1305 | mBlockSaveFlag = store; | 1325 | mBlockSaveFlag = store; |
1306 | } | 1326 | } |
1307 | 1327 | ||
1308 | void MainWindow::keyReleaseEvent ( QKeyEvent * e) | 1328 | void MainWindow::keyReleaseEvent ( QKeyEvent * e) |
1309 | { | 1329 | { |
1310 | if ( !e->isAutoRepeat() ) { | 1330 | if ( !e->isAutoRepeat() ) { |
1311 | mFlagKeyPressed = false; | 1331 | mFlagKeyPressed = false; |
1312 | } | 1332 | } |
1313 | } | 1333 | } |
1314 | void MainWindow::keyPressEvent ( QKeyEvent * e ) | 1334 | void MainWindow::keyPressEvent ( QKeyEvent * e ) |
1315 | { | 1335 | { |
1316 | qApp->processEvents(); | 1336 | qApp->processEvents(); |
1317 | if ( e->isAutoRepeat() && !mFlagKeyPressed ) { | 1337 | if ( e->isAutoRepeat() && !mFlagKeyPressed ) { |