summaryrefslogtreecommitdiffabout
path: root/korganizer
Unidiff
Diffstat (limited to 'korganizer') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/mainwindow.cpp75
-rw-r--r--korganizer/mainwindow.h4
2 files changed, 62 insertions, 17 deletions
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp
index c597138..66bb19b 100644
--- a/korganizer/mainwindow.cpp
+++ b/korganizer/mainwindow.cpp
@@ -77,192 +77,193 @@ class KOex2phonePrefs : public QDialog
77{ 77{
78 public: 78 public:
79 KOex2phonePrefs( QWidget *parent=0, const char *name=0 ) : 79 KOex2phonePrefs( QWidget *parent=0, const char *name=0 ) :
80 QDialog( parent, name, true ) 80 QDialog( parent, name, true )
81 { 81 {
82 setCaption( i18n("Export to phone options") ); 82 setCaption( i18n("Export to phone options") );
83 QVBoxLayout* lay = new QVBoxLayout( this ); 83 QVBoxLayout* lay = new QVBoxLayout( this );
84 lay->setSpacing( 3 ); 84 lay->setSpacing( 3 );
85 lay->setMargin( 3 ); 85 lay->setMargin( 3 );
86 QLabel *lab; 86 QLabel *lab;
87 lay->addWidget(lab = new QLabel( i18n("Please read Help-Sync Howto\nto know what settings to use."), this ) ); 87 lay->addWidget(lab = new QLabel( i18n("Please read Help-Sync Howto\nto know what settings to use."), this ) );
88 lab->setAlignment (AlignHCenter ); 88 lab->setAlignment (AlignHCenter );
89 QHBox* temphb; 89 QHBox* temphb;
90 temphb = new QHBox( this ); 90 temphb = new QHBox( this );
91 new QLabel( i18n("I/O device: "), temphb ); 91 new QLabel( i18n("I/O device: "), temphb );
92 mPhoneDevice = new QLineEdit( temphb); 92 mPhoneDevice = new QLineEdit( temphb);
93 lay->addWidget( temphb ); 93 lay->addWidget( temphb );
94 temphb = new QHBox( this ); 94 temphb = new QHBox( this );
95 new QLabel( i18n("Connection: "), temphb ); 95 new QLabel( i18n("Connection: "), temphb );
96 mPhoneConnection = new QLineEdit( temphb); 96 mPhoneConnection = new QLineEdit( temphb);
97 lay->addWidget( temphb ); 97 lay->addWidget( temphb );
98 temphb = new QHBox( this ); 98 temphb = new QHBox( this );
99 new QLabel( i18n("Model(opt.): "), temphb ); 99 new QLabel( i18n("Model(opt.): "), temphb );
100 mPhoneModel = new QLineEdit( temphb); 100 mPhoneModel = new QLineEdit( temphb);
101 lay->addWidget( temphb ); 101 lay->addWidget( temphb );
102 mWriteBackFuture= new QCheckBox( i18n("Write back events in future only"), this ); 102 mWriteBackFuture= new QCheckBox( i18n("Write back events in future only"), this );
103 mWriteBackFuture->setChecked( true ); 103 mWriteBackFuture->setChecked( true );
104 lay->addWidget( mWriteBackFuture ); 104 lay->addWidget( mWriteBackFuture );
105 temphb = new QHBox( this ); 105 temphb = new QHBox( this );
106 new QLabel( i18n("Max. weeks in future: ") , temphb ); 106 new QLabel( i18n("Max. weeks in future: ") , temphb );
107 mWriteBackFutureWeeks= new QSpinBox(1,104, 1, temphb); 107 mWriteBackFutureWeeks= new QSpinBox(1,104, 1, temphb);
108 mWriteBackFutureWeeks->setValue( 8 ); 108 mWriteBackFutureWeeks->setValue( 8 );
109 lay->addWidget( temphb ); 109 lay->addWidget( temphb );
110 lay->addWidget(lab = new QLabel( i18n("NOTE: This will remove all old\ntodo/calendar data on phone!"), this ) ); 110 lay->addWidget(lab = new QLabel( i18n("NOTE: This will remove all old\ntodo/calendar data on phone!"), this ) );
111 lab->setAlignment (AlignHCenter ); 111 lab->setAlignment (AlignHCenter );
112 QPushButton * ok = new QPushButton( i18n("Export to mobile phone!"), this ); 112 QPushButton * ok = new QPushButton( i18n("Export to mobile phone!"), this );
113 lay->addWidget( ok ); 113 lay->addWidget( ok );
114 QPushButton * cancel = new QPushButton( i18n("Cancel"), this ); 114 QPushButton * cancel = new QPushButton( i18n("Cancel"), this );
115 lay->addWidget( cancel ); 115 lay->addWidget( cancel );
116 connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) ); 116 connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) );
117 connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) ); 117 connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) );
118 resize( 220, 240 ); 118 resize( 220, 240 );
119 qApp->processEvents(); 119 qApp->processEvents();
120 int dw = QApplication::desktop()->width(); 120 int dw = QApplication::desktop()->width();
121 int dh = QApplication::desktop()->height(); 121 int dh = QApplication::desktop()->height();
122 move( (dw-width())/2, (dh - height() )/2 ); 122 move( (dw-width())/2, (dh - height() )/2 );
123 } 123 }
124 124
125public: 125public:
126 QLineEdit* mPhoneConnection, *mPhoneDevice, *mPhoneModel; 126 QLineEdit* mPhoneConnection, *mPhoneDevice, *mPhoneModel;
127 QCheckBox* mWriteBackFuture; 127 QCheckBox* mWriteBackFuture;
128 QSpinBox* mWriteBackFutureWeeks; 128 QSpinBox* mWriteBackFutureWeeks;
129}; 129};
130 130
131QPixmap* sgListViewCompletedPix[6]; 131QPixmap* sgListViewCompletedPix[6];
132QPixmap* sgListViewJournalPix; 132QPixmap* sgListViewJournalPix;
133 133
134 134
135int globalFlagBlockStartup; 135int globalFlagBlockStartup;
136MainWindow::MainWindow( QWidget *parent, const char *name ) : 136MainWindow::MainWindow( QWidget *parent, const char *name ) :
137 QMainWindow( parent, name ) 137 QMainWindow( parent, name )
138{ 138{
139 sgListViewCompletedPix[5] = &listviewPix; 139 sgListViewCompletedPix[5] = &listviewPix;
140 sgListViewCompletedPix[0] = &listviewPix0; 140 sgListViewCompletedPix[0] = &listviewPix0;
141 sgListViewCompletedPix[1] = &listviewPix20; 141 sgListViewCompletedPix[1] = &listviewPix20;
142 sgListViewCompletedPix[2] = &listviewPix40; 142 sgListViewCompletedPix[2] = &listviewPix40;
143 sgListViewCompletedPix[3] = &listviewPix60; 143 sgListViewCompletedPix[3] = &listviewPix60;
144 sgListViewCompletedPix[4] = &listviewPix80; 144 sgListViewCompletedPix[4] = &listviewPix80;
145 //int size = 12; 145 //int size = 12;
146 { 146 {
147 sgListViewCompletedPix[5]->resize( 11, 11 ); 147 sgListViewCompletedPix[5]->resize( 11, 11 );
148 sgListViewCompletedPix[5]->fill( Qt::white ); 148 sgListViewCompletedPix[5]->fill( Qt::white );
149 QPainter p ( sgListViewCompletedPix[5] ); 149 QPainter p ( sgListViewCompletedPix[5] );
150 p.drawRect( 0,0,11,11); 150 p.drawRect( 0,0,11,11);
151 p.drawLine ( 2, 5, 4 , 7 ) ; 151 p.drawLine ( 2, 5, 4 , 7 ) ;
152 p.drawLine ( 4 , 7 , 8, 3) ; 152 p.drawLine ( 4 , 7 , 8, 3) ;
153 int iii = 0; 153 int iii = 0;
154 for ( iii = 0; iii < 5; ++iii ) { 154 for ( iii = 0; iii < 5; ++iii ) {
155 sgListViewCompletedPix[iii]->resize( 11, 11 ); 155 sgListViewCompletedPix[iii]->resize( 11, 11 );
156 sgListViewCompletedPix[iii]->fill( Qt::white ); 156 sgListViewCompletedPix[iii]->fill( Qt::white );
157 QPainter p ( sgListViewCompletedPix[iii] ); 157 QPainter p ( sgListViewCompletedPix[iii] );
158 p.drawRect( 0,0,11,11); 158 p.drawRect( 0,0,11,11);
159 if ( iii ) 159 if ( iii )
160 p.fillRect( 1,1,iii*2,9,Qt::gray ); 160 p.fillRect( 1,1,iii*2,9,Qt::gray );
161 } 161 }
162 sgListViewJournalPix = &journalPix; 162 sgListViewJournalPix = &journalPix;
163 sgListViewJournalPix->resize( 11, 11 ); 163 sgListViewJournalPix->resize( 11, 11 );
164 sgListViewJournalPix->fill( Qt::white ); 164 sgListViewJournalPix->fill( Qt::white );
165 { 165 {
166 QPainter p ( sgListViewJournalPix ); 166 QPainter p ( sgListViewJournalPix );
167 p.drawRect( 0,0,11,11); 167 p.drawRect( 0,0,11,11);
168 p.drawLine( 2,3,5,3); 168 p.drawLine( 2,3,5,3);
169 p.drawLine( 2,5,8,5); 169 p.drawLine( 2,5,8,5);
170 p.drawLine( 2,7,6,7); 170 p.drawLine( 2,7,6,7);
171 } 171 }
172 } 172 }
173 mAutoSaveDisabled = false;
173 mClosed = false; 174 mClosed = false;
174 //QString confFile = KStandardDirs::appDir() + "config/korganizerrc"; 175 //QString confFile = KStandardDirs::appDir() + "config/korganizerrc";
175 QString confFile = locateLocal("config","korganizerrc"); 176 QString confFile = locateLocal("config","korganizerrc");
176 QFileInfo finf ( confFile ); 177 QFileInfo finf ( confFile );
177 bool showWarning = !finf.exists(); 178 bool showWarning = !finf.exists();
178 setIcon(SmallIcon( "ko24" ) ); 179 setIcon(SmallIcon( "ko24" ) );
179 mBlockAtStartup = true; 180 mBlockAtStartup = true;
180 mFlagKeyPressed = false; 181 mFlagKeyPressed = false;
181 setCaption("KO/Pi"); 182 setCaption("KO/Pi");
182 KOPrefs *p = KOPrefs::instance(); 183 KOPrefs *p = KOPrefs::instance();
183 //KPimGlobalPrefs::instance()->setGlobalConfig(); 184 //KPimGlobalPrefs::instance()->setGlobalConfig();
184 p->mCurrentDisplayedView = 0; 185 p->mCurrentDisplayedView = 0;
185 if ( p->mHourSize > 22 ) 186 if ( p->mHourSize > 22 )
186 p->mHourSize = 22; 187 p->mHourSize = 22;
187 QMainWindow::ToolBarDock tbd; 188 QMainWindow::ToolBarDock tbd;
188 if ( p->mToolBarHor ) { 189 if ( p->mToolBarHor ) {
189 if ( p->mToolBarUp ) 190 if ( p->mToolBarUp )
190 tbd = Bottom; 191 tbd = Bottom;
191 else 192 else
192 tbd = Top; 193 tbd = Top;
193 } 194 }
194 else { 195 else {
195 if ( p->mToolBarUp ) 196 if ( p->mToolBarUp )
196 tbd = Right; 197 tbd = Right;
197 else 198 else
198 tbd = Left; 199 tbd = Left;
199 } 200 }
200 if ( KOPrefs::instance()->mUseAppColors ) 201 if ( KOPrefs::instance()->mUseAppColors )
201 QApplication::setPalette( QPalette (KOPrefs::instance()->mAppColor1, KOPrefs::instance()->mAppColor2), true ); 202 QApplication::setPalette( QPalette (KOPrefs::instance()->mAppColor1, KOPrefs::instance()->mAppColor2), true );
202 globalFlagBlockStartup = 1; 203 globalFlagBlockStartup = 1;
203 iconToolBar = new QPEToolBar( this ); 204 iconToolBar = new QPEToolBar( this );
204 addToolBar (iconToolBar , tbd ); 205 addToolBar (iconToolBar , tbd );
205 206
206#ifdef DESKTOP_VERSION 207#ifdef DESKTOP_VERSION
207 if ( KOPrefs::instance()->mShowIconFilter ) 208 if ( KOPrefs::instance()->mShowIconFilter )
208#else 209#else
209 if ( KOPrefs::instance()->mShowIconFilter || ( !p->mShowIconOnetoolbar &&!p->mShowIconFilterview ) ) 210 if ( KOPrefs::instance()->mShowIconFilter || ( !p->mShowIconOnetoolbar &&!p->mShowIconFilterview ) )
210#endif 211#endif
211 212
212{ 213{
213 if ( p->mToolBarHorF ) { 214 if ( p->mToolBarHorF ) {
214 if ( p->mToolBarUpF ) 215 if ( p->mToolBarUpF )
215 tbd = Bottom; 216 tbd = Bottom;
216 else 217 else
217 tbd = Top; 218 tbd = Top;
218 } 219 }
219 else { 220 else {
220 if ( p->mToolBarUpF ) 221 if ( p->mToolBarUpF )
221 tbd = Right; 222 tbd = Right;
222 else 223 else
223 tbd = Left; 224 tbd = Left;
224 } 225 }
225 filterToolBar = new QPEToolBar ( this ); 226 filterToolBar = new QPEToolBar ( this );
226 filterMenubar = new KMenuBar( 0 ); 227 filterMenubar = new KMenuBar( 0 );
227 QFontMetrics fm ( filterMenubar->font() ); 228 QFontMetrics fm ( filterMenubar->font() );
228#ifndef DESKTOP_VERSION 229#ifndef DESKTOP_VERSION
229 filterToolBar->setFocusPolicy( NoFocus ); 230 filterToolBar->setFocusPolicy( NoFocus );
230 filterMenubar->setFocusPolicy( NoFocus ); 231 filterMenubar->setFocusPolicy( NoFocus );
231#endif 232#endif
232 filterPopupMenu = new QPopupMenu( this ); 233 filterPopupMenu = new QPopupMenu( this );
233 filterMenubar->insertItem( i18n("No Filter"), filterPopupMenu,0 ); 234 filterMenubar->insertItem( i18n("No Filter"), filterPopupMenu,0 );
234 QString addTest = "A"; 235 QString addTest = "A";
235 filterMenubar->setMinimumWidth( fm.width( i18n("No Filter")+addTest ) ); 236 filterMenubar->setMinimumWidth( fm.width( i18n("No Filter")+addTest ) );
236#ifdef DESKTOP_VERSION 237#ifdef DESKTOP_VERSION
237 addTest = "AAAAAABBBCCCx"; 238 addTest = "AAAAAABBBCCCx";
238#else 239#else
239 addTest = "AAAAAx"; 240 addTest = "AAAAAx";
240#endif 241#endif
241 filterMenubar->setMaximumWidth( fm.width( i18n("No Filter")+addTest ) ); 242 filterMenubar->setMaximumWidth( fm.width( i18n("No Filter")+addTest ) );
242 addToolBar (filterToolBar , tbd ); 243 addToolBar (filterToolBar , tbd );
243 connect ( filterPopupMenu , SIGNAL( activated ( int ) ), this, SLOT (selectFilterPopup( int ) ) ); 244 connect ( filterPopupMenu , SIGNAL( activated ( int ) ), this, SLOT (selectFilterPopup( int ) ) );
244 connect ( filterPopupMenu , SIGNAL( aboutToShow() ), this, SLOT (fillFilterMenuPopup() ) ); 245 connect ( filterPopupMenu , SIGNAL( aboutToShow() ), this, SLOT (fillFilterMenuPopup() ) );
245 if ( !KOPrefs::instance()->mShowIconFilter && !p->mShowIconOnetoolbar ) 246 if ( !KOPrefs::instance()->mShowIconFilter && !p->mShowIconOnetoolbar )
246 filterToolBar->hide(); 247 filterToolBar->hide();
247 } else { 248 } else {
248 filterToolBar = 0; 249 filterToolBar = 0;
249 filterMenubar = 0; 250 filterMenubar = 0;
250 filterPopupMenu = 0; 251 filterPopupMenu = 0;
251 } 252 }
252 if ( p->mShowIconOnetoolbar ) { 253 if ( p->mShowIconOnetoolbar ) {
253 viewToolBar = iconToolBar ; 254 viewToolBar = iconToolBar ;
254 navigatorToolBar = iconToolBar ; 255 navigatorToolBar = iconToolBar ;
255 } else { 256 } else {
256#ifndef DESKTOP_VERSION 257#ifndef DESKTOP_VERSION
257 setToolBarsMovable( false ); 258 setToolBarsMovable( false );
258#endif 259#endif
259 if ( p->mToolBarHorV ) { 260 if ( p->mToolBarHorV ) {
260 if ( p->mToolBarUpV ) 261 if ( p->mToolBarUpV )
261 tbd = Bottom; 262 tbd = Bottom;
262 else 263 else
263 tbd = Top; 264 tbd = Top;
264 } 265 }
265 else { 266 else {
266 if ( p->mToolBarUpV ) 267 if ( p->mToolBarUpV )
267 tbd = Right; 268 tbd = Right;
268 else 269 else
@@ -444,219 +445,237 @@ void MainWindow::loadDataAfterStart()
444 recieve( mCStringMess, mByteData ); 445 recieve( mCStringMess, mByteData );
445#endif 446#endif
446 QTimer::singleShot( 1000, mView, SLOT ( checkFiles() )); 447 QTimer::singleShot( 1000, mView, SLOT ( checkFiles() ));
447} 448}
448 449
449void MainWindow::slotResetFocus() 450void MainWindow::slotResetFocus()
450{ 451{
451 //qDebug(" CalendarView::slotResetFocus() %x %x %x %x", qApp->focusWidget(), menuBar1, mView,iconToolBar); 452 //qDebug(" CalendarView::slotResetFocus() %x %x %x %x", qApp->focusWidget(), menuBar1, mView,iconToolBar);
452 mFocusLoop = 3; 453 mFocusLoop = 3;
453 QTimer::singleShot( 0, this, SLOT(slotResetFocusLoop() )); 454 QTimer::singleShot( 0, this, SLOT(slotResetFocusLoop() ));
454} 455}
455void MainWindow::slotResetFocusLoop() 456void MainWindow::slotResetFocusLoop()
456{ 457{
457 --mFocusLoop; 458 --mFocusLoop;
458 QWidget* fw = mView->viewManager()->currentView(); 459 QWidget* fw = mView->viewManager()->currentView();
459 if ( fw ) { 460 if ( fw ) {
460 //qDebug("loop "); 461 //qDebug("loop ");
461 fw->setFocus(); 462 fw->setFocus();
462 if ( qApp->focusWidget() != fw && mFocusLoop > 0 ) 463 if ( qApp->focusWidget() != fw && mFocusLoop > 0 )
463 QTimer::singleShot( 0, this, SLOT(slotResetFocusLoop() )); 464 QTimer::singleShot( 0, this, SLOT(slotResetFocusLoop() ));
464 } 465 }
465 466
466} 467}
467void MainWindow::disableBR(bool b) 468void MainWindow::disableBR(bool b)
468{ 469{
469#ifndef DESKTOP_VERSION 470#ifndef DESKTOP_VERSION
470 if ( b ) { 471 if ( b ) {
471 if ( infrared ) { 472 if ( infrared ) {
472 toggleBeamReceive(); 473 toggleBeamReceive();
473 mBRdisabled = true; 474 mBRdisabled = true;
474 } 475 }
475 mBRdisabled = true; 476 mBRdisabled = true;
476 } else { 477 } else {
477 if ( mBRdisabled ) { 478 if ( mBRdisabled ) {
478 mBRdisabled = false; 479 mBRdisabled = false;
479 //makes no sense,because other cal ap is probably running 480 //makes no sense,because other cal ap is probably running
480 // toggleBeamReceive(); 481 // toggleBeamReceive();
481 } 482 }
482 } 483 }
483#endif 484#endif
484 485
485} 486}
486bool MainWindow::beamReceiveEnabled() 487bool MainWindow::beamReceiveEnabled()
487{ 488{
488#ifndef DESKTOP_VERSION 489#ifndef DESKTOP_VERSION
489 return ( infrared != 0 ); 490 return ( infrared != 0 );
490#endif 491#endif
491 return false; 492 return false;
492} 493}
493 494
494void MainWindow::toggleBeamReceive() 495void MainWindow::toggleBeamReceive()
495{ 496{
496 if ( mBRdisabled ) 497 if ( mBRdisabled )
497 return; 498 return;
498#ifndef DESKTOP_VERSION 499#ifndef DESKTOP_VERSION
499 if ( infrared ) { 500 if ( infrared ) {
500 qDebug("KO: Disable BeamReceive "); 501 qDebug("KO: Disable BeamReceive ");
501 delete infrared; 502 delete infrared;
502 infrared = 0; 503 infrared = 0;
503 brAction->setOn(false); 504 brAction->setOn(false);
504 return; 505 return;
505 } 506 }
506 qDebug("KO: Enable BeamReceive "); 507 qDebug("KO: Enable BeamReceive ");
507 brAction->setOn(true); 508 brAction->setOn(true);
508 infrared = new QCopChannel("QPE/Application/datebook",this, "channel" ) ; 509 infrared = new QCopChannel("QPE/Application/datebook",this, "channel" ) ;
509 QObject::connect( infrared, SIGNAL (received ( const QCString &, const QByteArray & )),this, SLOT(recieve( const QCString&, const QByteArray& ))); 510 QObject::connect( infrared, SIGNAL (received ( const QCString &, const QByteArray & )),this, SLOT(recieve( const QCString&, const QByteArray& )));
510#endif 511#endif
511} 512}
512void MainWindow::showMaximized () 513void MainWindow::showMaximized ()
513{ 514{
514#ifndef DESKTOP_VERSION 515#ifndef DESKTOP_VERSION
515 if ( ! globalFlagBlockStartup ) 516 if ( ! globalFlagBlockStartup )
516 if ( mClosed ) 517 if ( mClosed )
517 mView->goToday(); 518 mView->goToday();
518#endif 519#endif
519 QWidget::showMaximized () ; 520 QWidget::showMaximized () ;
520 mClosed = false; 521 mClosed = false;
521} 522}
522 523
523bool MainWindow::askForQuitOnSaveError() 524bool MainWindow::askForQuitOnSaveError()
524{ 525{
525 bool retval = false; 526 bool retval = false;
526 switch( QMessageBox::information( this, "KO/Pi", 527 switch( QMessageBox::information( this, "KO/Pi",
527 i18n("Error saving data") + "!\n" + 528 i18n("Error saving data") + "!\n" +
528 i18n("You can save all data\nto another file via\nFile->Export->Export All Data") + "!\n" + 529 i18n("You can save all data\nto another file via\nFile->Export->Export All Data") + "!\n" +
529 i18n("Do you really want\nto close KO/Pi?"), 530 i18n("Do you really want\nto close KO/Pi?"),
530 i18n(" Yes, close "), i18n("No"), 531 i18n(" Yes, close "), i18n("No"),
531 0, 1 ) ) { 532 0, 1 ) ) {
532 case 0: 533 case 0:
533 retval = true; 534 retval = true;
534 break; 535 break;
535 default: 536 default:
536 break; 537 break;
537 } 538 }
538 return retval; 539 return retval;
539} 540}
540 541bool MainWindow::checkAutosave()
542{
543 bool savedata = true;
544 if ( mAutoSaveDisabled && mCalendarModifiedFlag ) {
545 switch( QMessageBox::information( this, "KO/Pi",
546 i18n("Calendar is modified\nbut Autosave is disabled!\nDo you want\nto save the data?"),
547 i18n("Yes, Save!"), i18n("No"),
548 0, 0 ) ) {
549 case 1:
550 case 2:
551 savedata = false;
552 break;
553 default:
554 break;
555 }
556 }
557 return savedata;
558}
541void MainWindow::closeEvent( QCloseEvent* ce ) 559void MainWindow::closeEvent( QCloseEvent* ce )
542{ 560{
543
544
545
546 if ( ! KOPrefs::instance()->mAskForQuit ) { 561 if ( ! KOPrefs::instance()->mAskForQuit ) {
547 saveOnClose(); 562 if ( checkAutosave() ) {
548 if ( mCalendarModifiedFlag && !askForQuitOnSaveError() ) { 563 saveOnClose();
549 ce->ignore(); 564 if ( mCalendarModifiedFlag && !askForQuitOnSaveError() ) {
550 return; 565 ce->ignore();
566 return;
567 }
551 } 568 }
552 mClosed = true; 569 mClosed = true;
553 ce->accept(); 570 ce->accept();
554 return; 571 return;
555 572
556 } 573 }
557 574
558 switch( QMessageBox::information( this, "KO/Pi", 575 switch( QMessageBox::information( this, "KO/Pi",
559 i18n("Do you really want\nto close KO/Pi?"), 576 i18n("Do you really want\nto close KO/Pi?"),
560 i18n("Close"), i18n("No"), 577 i18n("Close"), i18n("No"),
561 0, 0 ) ) { 578 0, 0 ) ) {
562 case 0: 579 case 0:
563 saveOnClose(); 580 if ( checkAutosave() ) {
564 if ( mCalendarModifiedFlag && !askForQuitOnSaveError() ) { 581 saveOnClose();
565 ce->ignore(); 582 if ( mCalendarModifiedFlag && !askForQuitOnSaveError() ) {
566 return; 583 ce->ignore();
584 return;
585 }
567 } 586 }
568 mClosed = true; 587 mClosed = true;
569 ce->accept(); 588 ce->accept();
570 break; 589 break;
571 case 1: 590 case 1:
572 ce->ignore(); 591 ce->ignore();
573 break; 592 break;
574 case 2: 593 case 2:
575 594
576 default: 595 default:
577 break; 596 break;
578 } 597 }
579 598
580 599
581} 600}
582void MainWindow::receiveStart( const QCString& cmsg, const QByteArray& data ) 601void MainWindow::receiveStart( const QCString& cmsg, const QByteArray& data )
583{ 602{
584 qDebug("KO: QCOP start message received: %s ", cmsg.data() ); 603 qDebug("KO: QCOP start message received: %s ", cmsg.data() );
585 mCStringMess = cmsg; 604 mCStringMess = cmsg;
586 mByteData = data; 605 mByteData = data;
587} 606}
588void MainWindow::recieve( const QCString& cmsg, const QByteArray& data ) 607void MainWindow::recieve( const QCString& cmsg, const QByteArray& data )
589{ 608{
590 QDataStream stream( data, IO_ReadOnly ); 609 QDataStream stream( data, IO_ReadOnly );
591 // QMessageBox::about( this, "About KOrganizer/Pi", "*" +msg +"*" ); 610 // QMessageBox::about( this, "About KOrganizer/Pi", "*" +msg +"*" );
592 //QString datamess; 611 //QString datamess;
593 //qDebug("message "); 612 //qDebug("message ");
594 qDebug("KO: QCOP message received: %s ", cmsg.data() ); 613 qDebug("KO: QCOP message received: %s ", cmsg.data() );
595 614
596 if ( cmsg == "setDocument(QString)" ) { 615 if ( cmsg == "setDocument(QString)" ) {
597 QDataStream stream( data, IO_ReadOnly ); 616 QDataStream stream( data, IO_ReadOnly );
598 QString fileName; 617 QString fileName;
599 stream >> fileName; 618 stream >> fileName;
600 //qDebug("filename %s ", fileName.latin1()); 619 //qDebug("filename %s ", fileName.latin1());
601 showMaximized(); 620 showMaximized();
602 raise(); 621 raise();
603 KOPrefs::instance()->mLastSyncedLocalFile = fileName ; 622 KOPrefs::instance()->mLastSyncedLocalFile = fileName ;
604 mSyncManager->slotSyncMenu( 1002 ); 623 mSyncManager->slotSyncMenu( 1002 );
605 return; 624 return;
606 } 625 }
607 626
608 if ( cmsg == "-writeFile" ) { 627 if ( cmsg == "-writeFile" ) {
609 // I made from the "-writeFile" an "-writeAlarm" 628 // I made from the "-writeFile" an "-writeAlarm"
610 mView->viewManager()->showWhatsNextView(); 629 mView->viewManager()->showWhatsNextView();
611 mCalendar->checkAlarmForIncidence( 0, true); 630 mCalendar->checkAlarmForIncidence( 0, true);
612 showMaximized(); 631 showMaximized();
613 raise(); 632 raise();
614 return; 633 return;
615 634
616 } 635 }
617 if ( cmsg == "-writeFileSilent" ) { 636 if ( cmsg == "-writeFileSilent" ) {
618 // I made from the "-writeFile" an "-writeAlarm" 637 // I made from the "-writeFile" an "-writeAlarm"
619 // mView->viewManager()->showWhatsNextView(); 638 // mView->viewManager()->showWhatsNextView();
620 mCalendar->checkAlarmForIncidence( 0, true); 639 mCalendar->checkAlarmForIncidence( 0, true);
621 //showMaximized(); 640 //showMaximized();
622 //raise(); 641 //raise();
623 //hide(); 642 //hide();
624 return; 643 return;
625 } 644 }
626 if ( cmsg == "-newCountdown" ) { 645 if ( cmsg == "-newCountdown" ) {
627 qDebug("newCountdown "); 646 qDebug("newCountdown ");
628 647
629 } 648 }
630 QString msg ; 649 QString msg ;
631 QString allmsg = cmsg; 650 QString allmsg = cmsg;
632 while ( allmsg.length() > 0 ) { 651 while ( allmsg.length() > 0 ) {
633 int nextC = allmsg.find( "-", 1 ); 652 int nextC = allmsg.find( "-", 1 );
634 if ( nextC == -1 ) { 653 if ( nextC == -1 ) {
635 msg = allmsg; 654 msg = allmsg;
636 allmsg = ""; 655 allmsg = "";
637 } else{ 656 } else{
638 msg = allmsg.left( nextC ); 657 msg = allmsg.left( nextC );
639 allmsg = allmsg.mid( nextC, allmsg.length()-nextC ); 658 allmsg = allmsg.mid( nextC, allmsg.length()-nextC );
640 } 659 }
641 //qDebug("msg: %s all: %s ", msg.latin1(), allmsg.latin1() ); 660 //qDebug("msg: %s all: %s ", msg.latin1(), allmsg.latin1() );
642 if ( msg == "-newEvent" ) { 661 if ( msg == "-newEvent" ) {
643 QTimer::singleShot( 0, mView, SLOT ( newEvent())); 662 QTimer::singleShot( 0, mView, SLOT ( newEvent()));
644 } 663 }
645 if ( msg == "-newTodo" ) { 664 if ( msg == "-newTodo" ) {
646 QTimer::singleShot( 0, mView, SLOT ( newTodo())); 665 QTimer::singleShot( 0, mView, SLOT ( newTodo()));
647 } 666 }
648 if ( msg == "-showWN" ) { 667 if ( msg == "-showWN" ) {
649 mView->viewManager()->showWhatsNextView(); 668 mView->viewManager()->showWhatsNextView();
650 } 669 }
651 if ( msg == "-showList" ) { 670 if ( msg == "-showList" ) {
652 mView->viewManager()->showListView(); 671 mView->viewManager()->showListView();
653 } 672 }
654 else if ( msg == "-showDay" ) { 673 else if ( msg == "-showDay" ) {
655 mView->viewManager()->showDayView(); 674 mView->viewManager()->showDayView();
656 } 675 }
657 else if ( msg == "-showWWeek" ) { 676 else if ( msg == "-showWWeek" ) {
658 mView->viewManager()->showWorkWeekView(); 677 mView->viewManager()->showWorkWeekView();
659 } 678 }
660 else if ( msg == "-ringSync" ) { 679 else if ( msg == "-ringSync" ) {
661 QTimer::singleShot( 0, this, SLOT (startMultiSync())); 680 QTimer::singleShot( 0, this, SLOT (startMultiSync()));
662 } 681 }
@@ -1564,192 +1583,193 @@ void MainWindow::setDefaultPreferences()
1564 // p->mEnableQuickTodo = false; 1583 // p->mEnableQuickTodo = false;
1565 1584
1566} 1585}
1567 1586
1568QString MainWindow::resourcePath() 1587QString MainWindow::resourcePath()
1569{ 1588{
1570 return KGlobal::iconLoader()->iconPath(); 1589 return KGlobal::iconLoader()->iconPath();
1571} 1590}
1572 1591
1573void MainWindow::displayText( QString text ,QString cap ) 1592void MainWindow::displayText( QString text ,QString cap )
1574{ 1593{
1575 QDialog dia( this, "name", true ); ; 1594 QDialog dia( this, "name", true ); ;
1576 dia.setCaption( cap ); 1595 dia.setCaption( cap );
1577 QVBoxLayout* lay = new QVBoxLayout( &dia ); 1596 QVBoxLayout* lay = new QVBoxLayout( &dia );
1578 lay->setSpacing( 3 ); 1597 lay->setSpacing( 3 );
1579 lay->setMargin( 3 ); 1598 lay->setMargin( 3 );
1580 QTextBrowser tb ( &dia ); 1599 QTextBrowser tb ( &dia );
1581 lay->addWidget( &tb ); 1600 lay->addWidget( &tb );
1582 tb.setText( text ); 1601 tb.setText( text );
1583#ifdef DESKTOP_VERSION 1602#ifdef DESKTOP_VERSION
1584 dia.resize( 640, 480); 1603 dia.resize( 640, 480);
1585#else 1604#else
1586 dia.showMaximized(); 1605 dia.showMaximized();
1587#endif 1606#endif
1588 dia.exec(); 1607 dia.exec();
1589} 1608}
1590 1609
1591void MainWindow::features() 1610void MainWindow::features()
1592{ 1611{
1593 1612
1594 KApplication::showFile( i18n("KO/Pi Features and hints"), "kdepim/korganizer/featuresKOPI.txt" ); 1613 KApplication::showFile( i18n("KO/Pi Features and hints"), "kdepim/korganizer/featuresKOPI.txt" );
1595} 1614}
1596 1615
1597void MainWindow::usertrans() 1616void MainWindow::usertrans()
1598{ 1617{
1599 1618
1600 KApplication::showFile( i18n("KO/Pi User translation HowTo"), "kdepim/korganizer/usertranslationHOWTO.txt" ); 1619 KApplication::showFile( i18n("KO/Pi User translation HowTo"), "kdepim/korganizer/usertranslationHOWTO.txt" );
1601} 1620}
1602 1621
1603void MainWindow::storagehowto() 1622void MainWindow::storagehowto()
1604{ 1623{
1605 KApplication::showFile( "KDE-Pim/Pi Storage HowTo", "kdepim/storagehowto.txt" ); 1624 KApplication::showFile( "KDE-Pim/Pi Storage HowTo", "kdepim/storagehowto.txt" );
1606} 1625}
1607void MainWindow::timetrackinghowto() 1626void MainWindow::timetrackinghowto()
1608{ 1627{
1609 KApplication::showFile( "KO/Pi Timetracking HowTo", "kdepim/timetrackerhowto.txt" ); 1628 KApplication::showFile( "KO/Pi Timetracking HowTo", "kdepim/timetrackerhowto.txt" );
1610} 1629}
1611void MainWindow::kdesynchowto() 1630void MainWindow::kdesynchowto()
1612{ 1631{
1613 KApplication::showFile( "KDE-Pim/Pi Synchronization HowTo", "kdepim/Zaurus-KDE_syncHowTo.txt" ); 1632 KApplication::showFile( "KDE-Pim/Pi Synchronization HowTo", "kdepim/Zaurus-KDE_syncHowTo.txt" );
1614} 1633}
1615void MainWindow::multisynchowto() 1634void MainWindow::multisynchowto()
1616{ 1635{
1617 KApplication::showFile( "KDE-Pim/Pi Synchronization HowTo", "kdepim/MultiSyncHowTo.txt" ); 1636 KApplication::showFile( "KDE-Pim/Pi Synchronization HowTo", "kdepim/MultiSyncHowTo.txt" );
1618} 1637}
1619void MainWindow::synchowto() 1638void MainWindow::synchowto()
1620{ 1639{
1621 KApplication::showFile( "KDE-Pim/Pi Synchronization HowTo", "kdepim/SyncHowto.txt" ); 1640 KApplication::showFile( "KDE-Pim/Pi Synchronization HowTo", "kdepim/SyncHowto.txt" );
1622} 1641}
1623void MainWindow::faq() 1642void MainWindow::faq()
1624{ 1643{
1625 KApplication::showFile( i18n("KO/Pi FAQ"), "kdepim/korganizer/kopiFAQ.txt" ); 1644 KApplication::showFile( i18n("KO/Pi FAQ"), "kdepim/korganizer/kopiFAQ.txt" );
1626 1645
1627} 1646}
1628void MainWindow::whatsNew() 1647void MainWindow::whatsNew()
1629{ 1648{
1630 KApplication::showFile( "KDE-Pim/Pi Version Info", "kdepim/WhatsNew.txt" ); 1649 KApplication::showFile( "KDE-Pim/Pi Version Info", "kdepim/WhatsNew.txt" );
1631 1650
1632} 1651}
1633void MainWindow::licence() 1652void MainWindow::licence()
1634{ 1653{
1635 KApplication::showLicence(); 1654 KApplication::showLicence();
1636 1655
1637} 1656}
1638void MainWindow::about() 1657void MainWindow::about()
1639{ 1658{
1640 QString version; 1659 QString version;
1641#include <../version> 1660#include <../version>
1642 QMessageBox::about( this, i18n("About KOrganizer/Pi"), 1661 QMessageBox::about( this, i18n("About KOrganizer/Pi"),
1643 i18n("KOrganizer/Platform-independent\n") + 1662 i18n("KOrganizer/Platform-independent\n") +
1644 "(KO/Pi) " + version + " - " + 1663 "(KO/Pi) " + version + " - " +
1645 1664
1646#ifdef DESKTOP_VERSION 1665#ifdef DESKTOP_VERSION
1647 i18n("Desktop Edition\n") + 1666 i18n("Desktop Edition\n") +
1648#else 1667#else
1649 i18n("PDA-Edition\nfor: Zaurus 5x00/7x0/860/3000/6000\n") + 1668 i18n("PDA-Edition\nfor: Zaurus 5x00/7x0/860/3000/6000\n") +
1650#endif 1669#endif
1651 i18n("(c)2004 Lutz Rogowski (rogowski@kde.org)\nKO/Pi is based on KOrganizer\n(c)2002,2003 Cornelius Schumacher\n(schumacher@kde.org) and the KDE team.\nKOrganizer/Pi is licensed under the GPL.\nKO/Pi can be compiled for\nLinux, Zaurus-PDA and Windows\nwww.pi-sync.info --- www.korganizer.org\nSpecial thanks to Michael and Ben\nfor intensive testing!") ); 1670 i18n("(c)2004 Lutz Rogowski (rogowski@kde.org)\nKO/Pi is based on KOrganizer\n(c)2002,2003 Cornelius Schumacher\n(schumacher@kde.org) and the KDE team.\nKOrganizer/Pi is licensed under the GPL.\nKO/Pi can be compiled for\nLinux, Zaurus-PDA and Windows\nwww.pi-sync.info --- www.korganizer.org\nSpecial thanks to Michael and Ben\nfor intensive testing!") );
1652} 1671}
1653void MainWindow::keyBindings() 1672void MainWindow::keyBindings()
1654{ 1673{
1655 QString cap = i18n("KO/Pi Keys + Colors"); 1674 QString cap = i18n("KO/Pi Keys + Colors");
1656 QString text = i18n("<p><h2>KO/Pi key shortcuts:</h2></p>\n") + 1675 QString text = i18n("<p><h2>KO/Pi key shortcuts:</h2></p>\n") +
1657 i18n("<p><b>H</b>: This help dialog | <b>S</b>: Search dialog</p>\n")+ 1676 i18n("<p><b>H</b>: This help dialog | <b>S</b>: Search dialog</p>\n")+
1658 i18n("<p><b>N</b>: Switch to next view which has a toolbar icon</p>\n") + 1677 i18n("<p><b>N</b>: Switch to next view which has a toolbar icon</p>\n") +
1659 i18n("<p><b>A+(shift or ctrl)</b>: Show occurence of next alarm</p>\n") + 1678 i18n("<p><b>A+(shift or ctrl)</b>: Show occurence of next alarm</p>\n") +
1679 i18n("<p><b>C+ctrl</b>: Dis/enable automatic saving</p>\n") +
1660 i18n("<p><b>I</b>: Show info for selected event/todo</p>\n") + 1680 i18n("<p><b>I</b>: Show info for selected event/todo</p>\n") +
1661 i18n("<p><b>Space</b>: Toggle fullscreen | <b>P</b>: Date picker</p>\n")+ 1681 i18n("<p><b>Space</b>: Toggle fullscreen | <b>P</b>: Date picker</p>\n")+
1662 i18n("<p><b>R</b>: Toggle Resource View |<b>F</b>: Edit filter </p>\n")+ 1682 i18n("<p><b>R</b>: Toggle Resource View |<b>F</b>: Edit filter </p>\n")+
1663 i18n("<p><b>O</b>: Filter On/Off | <b>J</b>: Journal view</p>\n")+ 1683 i18n("<p><b>O</b>: Filter On/Off | <b>J</b>: Journal view</p>\n")+
1664 i18n("<p><b>1-0</b> (+<b>ctrl</b>): Select filter 1-10 (11-20)</p>\n")+ 1684 i18n("<p><b>1-0</b> (+<b>ctrl</b>): Select filter 1-10 (11-20)</p>\n")+
1665 i18n("<p><b>X</b>: Next X days view| <b>W</b>: What's next view\n ")+ 1685 i18n("<p><b>X</b>: Next X days view| <b>W</b>: What's next view\n ")+
1666 i18n("<p><b>Q</b>: Show next date with conflicting events\n ")+ 1686 i18n("<p><b>Q</b>: Show next date with conflicting events\n ")+
1667 i18n("<p><b>V</b>: Todo view | <b>L</b>: Event list view</p>\n")+ 1687 i18n("<p><b>V</b>: Todo view | <b>L</b>: Event list view</p>\n")+
1668 i18n("<p><b>Z,Y</b>: Work week view | <b>U</b>: Week view</p>\n")+ 1688 i18n("<p><b>Z,Y</b>: Work week view | <b>U</b>: Week view</p>\n")+
1669 i18n("<p><b>D</b>: One day view | <b>M</b>: Month view</p>\n")+ 1689 i18n("<p><b>D</b>: One day view | <b>M</b>: Month view</p>\n")+
1670 i18n("<p><b>K</b>: Week view in Month view syle</p>\n")+ 1690 i18n("<p><b>K</b>: Week view in Month view syle</p>\n")+
1671 i18n("<p><b>E</b>: Edit selected item |<b> E+ctrl</b>: New Event</p>\n")+ 1691 i18n("<p><b>E</b>: Edit selected item |<b> E+ctrl</b>: New Event</p>\n")+
1672 i18n("<p><b>T</b>: Goto today | <b>T+ctrl</b>: New Todo</p>\n")+ 1692 i18n("<p><b>T</b>: Goto today | <b>T+ctrl</b>: New Todo</p>\n")+
1673 i18n("<p><b>S+ctrl</b>: Add sub-todo | <b>X+ctrl</b>: Toggle datenavigator</p>\n")+ 1693 i18n("<p><b>S+ctrl</b>: Add sub-todo | <b>X+ctrl</b>: Toggle datenavigator</p>\n")+
1674 i18n("<p><b>+,-</b> : Zoom in/out agenda | <b>A</b>: Toggle allday agenda height</p>\n")+ 1694 i18n("<p><b>+,-</b> : Zoom in/out agenda | <b>A</b>: Toggle allday agenda height</p>\n")+
1675 i18n("<p><b>C</b>: Show current time in agenda view</p>\n")+ 1695 i18n("<p><b>C</b>: Show current time in agenda view</p>\n")+
1676 i18n("<p><b>B</b>: Edit description (details) of selected item</p>\n")+ 1696 i18n("<p><b>B</b>: Edit description (details) of selected item</p>\n")+
1677 i18n("<p><b>right</b>: Next week | <b>right+ctrl</b>: Next month</p>\n")+ 1697 i18n("<p><b>right</b>: Next week | <b>right+ctrl</b>: Next month</p>\n")+
1678 i18n("<p><b>left</b>: Prev. week | <b>left+ctrl</b>: Prev. month</p>\n")+ 1698 i18n("<p><b>left</b>: Prev. week | <b>left+ctrl</b>: Prev. month</p>\n")+
1679 i18n("<p><b>del,backspace</b>: Delete selected item</p>\n")+ 1699 i18n("<p><b>del,backspace</b>: Delete selected item</p>\n")+
1680 i18n("<p><h3>In agenda view:</h3></p>\n") + 1700 i18n("<p><h3>In agenda view:</h3></p>\n") +
1681 i18n("<p><b>up/down</b>: Scroll agenda view</p>\n")+ 1701 i18n("<p><b>up/down</b>: Scroll agenda view</p>\n")+
1682 i18n("<p><b>ctrl+up/down</b>: Scroll small todo view</p>\n")+ 1702 i18n("<p><b>ctrl+up/down</b>: Scroll small todo view</p>\n")+
1683 i18n("<p><h3>In todo view:</h3></p>\n") + 1703 i18n("<p><h3>In todo view:</h3></p>\n") +
1684 i18n("<p><b>shift+U</b>: <b>U</b>nparent todo (make root todo)</p>\n")+ 1704 i18n("<p><b>shift+U</b>: <b>U</b>nparent todo (make root todo)</p>\n")+
1685 i18n("<p><b>shift+S</b>: Make <b>S</b>ubtodo (reparent todo)</p>\n")+ 1705 i18n("<p><b>shift+S</b>: Make <b>S</b>ubtodo (reparent todo)</p>\n")+
1686 i18n("<p><b>shift+P</b>: Make new <b>P</b>arent for todo selected with shift+S</p>\n")+ 1706 i18n("<p><b>shift+P</b>: Make new <b>P</b>arent for todo selected with shift+S</p>\n")+
1687 i18n("<p><b>Q</b>: Toggle quick todo line edit.</p>\n")+ 1707 i18n("<p><b>Q</b>: Toggle quick todo line edit.</p>\n")+
1688 i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+ 1708 i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+
1689 i18n("<p><b>return</b>: Mark item as completed+one step down.</p>\n")+ 1709 i18n("<p><b>return</b>: Mark item as completed+one step down.</p>\n")+
1690 i18n("<p><b>return+shift</b>: Mark item as not completed+one step down</p>\n")+ 1710 i18n("<p><b>return+shift</b>: Mark item as not completed+one step down</p>\n")+
1691 i18n("<p><h3>In list view:</h3></p>\n") + 1711 i18n("<p><h3>In list view:</h3></p>\n") +
1692 i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+ 1712 i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+
1693 i18n("<p><b>return</b>: Select item+one step down</p>\n")+ 1713 i18n("<p><b>return</b>: Select item+one step down</p>\n")+
1694 i18n("<p><b>return+shift</b>: Deselect item+one step down</p>\n")+ 1714 i18n("<p><b>return+shift</b>: Deselect item+one step down</p>\n")+
1695 i18n("<p><b>up/down</b>: Next/prev item</p>\n")+ 1715 i18n("<p><b>up/down</b>: Next/prev item</p>\n")+
1696 i18n("<p><b>ctrl+up/down</b>: Goto up/down by 20% of items</p>\n")+ 1716 i18n("<p><b>ctrl+up/down</b>: Goto up/down by 20% of items</p>\n")+
1697 i18n("<p><b>shift+up/down</b>: Goto first/last item</p>\n")+ 1717 i18n("<p><b>shift+up/down</b>: Goto first/last item</p>\n")+
1698 i18n("<p><h3>In event/todo viewer:</h3></p>\n") + 1718 i18n("<p><h3>In event/todo viewer:</h3></p>\n") +
1699 i18n("<p><b>I,C</b>: Close dialog.</p>\n")+ 1719 i18n("<p><b>I,C</b>: Close dialog.</p>\n")+
1700 i18n("<p><b>A</b>: Show agenda view.</p>\n")+ 1720 i18n("<p><b>A</b>: Show agenda view.</p>\n")+
1701 i18n("<p><b>E</b>: Edit item</p>\n") + 1721 i18n("<p><b>E</b>: Edit item</p>\n") +
1702 i18n("<p><h2>KO/Pi icon colors:</h2></p>\n") + 1722 i18n("<p><h2>KO/Pi icon colors:</h2></p>\n") +
1703 i18n("<p><b>(for square icons in agenda and month view)</b></p>\n") + 1723 i18n("<p><b>(for square icons in agenda and month view)</b></p>\n") +
1704 i18n("<p><b>Cross</b>: Item cancelled.([c] in Whats'Next view)</p>\n")+ 1724 i18n("<p><b>Cross</b>: Item cancelled.([c] in Whats'Next view)</p>\n")+
1705 i18n("<p><b>Red</b>: Alarm set.([a] in Whats'Next view)</p>\n")+ 1725 i18n("<p><b>Red</b>: Alarm set.([a] in Whats'Next view)</p>\n")+
1706 i18n("<p><b>Blue</b>: Recurrent event.([r] in Whats'Next view)</p>\n")+ 1726 i18n("<p><b>Blue</b>: Recurrent event.([r] in Whats'Next view)</p>\n")+
1707 i18n("<p><b>Dark green</b>: Information(description) available.([i] in WN view)</p>\n")+ 1727 i18n("<p><b>Dark green</b>: Information(description) available.([i] in WN view)</p>\n")+
1708 i18n("<p><b>Black</b>: Event/todo with attendees. You are the organizer!</p>\n")+ 1728 i18n("<p><b>Black</b>: Event/todo with attendees. You are the organizer!</p>\n")+
1709 i18n("<p><b>Dark yellow</b>: Event/todo with attendees.</p>\n") + 1729 i18n("<p><b>Dark yellow</b>: Event/todo with attendees.</p>\n") +
1710 i18n("<p><b>White</b>: Item readonly</p>\n"); 1730 i18n("<p><b>White</b>: Item readonly</p>\n");
1711 displayText( text, cap); 1731 displayText( text, cap);
1712} 1732}
1713void MainWindow::aboutAutoSaving() 1733void MainWindow::aboutAutoSaving()
1714{ 1734{
1715 QString text = i18n("After changing something, the data is\nautomatically saved to the file\n~/kdepim/apps/korganizer/mycalendar.ics\nafter (configurable) three minutes.\nFor safety reasons there is one autosaving\nafter 10 minutes (of idle time) again. The \ndata is saved automatically when closing KO/Pi\nYou can create a backup file \nwith: File - Save Calendar Backup\n"); 1735 QString text = i18n("After changing something, the data is\nautomatically saved to the file\n~/kdepim/apps/korganizer/mycalendar.ics\nafter (configurable) three minutes.\nFor safety reasons there is one autosaving\nafter 10 minutes (of idle time) again. The \ndata is saved automatically when closing KO/Pi\nYou can create a backup file \nwith: File - Save Calendar Backup\n");
1716 1736
1717 KApplication::showText( i18n("Auto Saving in KOrganizer/Pi"), text); 1737 KApplication::showText( i18n("Auto Saving in KOrganizer/Pi"), text);
1718 1738
1719} 1739}
1720void MainWindow::aboutKnownBugs() 1740void MainWindow::aboutKnownBugs()
1721{ 1741{
1722 QMessageBox* msg; 1742 QMessageBox* msg;
1723 msg = new QMessageBox( i18n("Known Problems in KOrganizer/Pi"), 1743 msg = new QMessageBox( i18n("Known Problems in KOrganizer/Pi"),
1724 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")+ 1744 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")+
1725 i18n("2) Audio alarm daemon\nfor Zaurus is available!\nas an additional small application\n")+ 1745 i18n("2) Audio alarm daemon\nfor Zaurus is available!\nas an additional small application\n")+
1726 i18n("\nPlease report unexpected behaviour to\nlutz@pi-sync.info\n") + 1746 i18n("\nPlease report unexpected behaviour to\nlutz@pi-sync.info\n") +
1727 i18n("\nor report them in the bugtracker on\n") + 1747 i18n("\nor report them in the bugtracker on\n") +
1728 i18n("\nhttp://sourceforge.net/projects/kdepimpi\n"), 1748 i18n("\nhttp://sourceforge.net/projects/kdepimpi\n"),
1729 QMessageBox::NoIcon, 1749 QMessageBox::NoIcon,
1730 QMessageBox::Ok, 1750 QMessageBox::Ok,
1731 QMessageBox::NoButton, 1751 QMessageBox::NoButton,
1732 QMessageBox::NoButton); 1752 QMessageBox::NoButton);
1733 msg->exec(); 1753 msg->exec();
1734 delete msg; 1754 delete msg;
1735 1755
1736} 1756}
1737 1757
1738QString MainWindow::defaultFileName() 1758QString MainWindow::defaultFileName()
1739{ 1759{
1740 return QDir::convertSeparators( locateLocal( "data", "korganizer/mycalendar.ics" ) ); 1760 return QDir::convertSeparators( locateLocal( "data", "korganizer/mycalendar.ics" ) );
1741} 1761}
1742QString MainWindow::syncFileName() 1762QString MainWindow::syncFileName()
1743{ 1763{
1744#ifdef DESKTOP_VERSION 1764#ifdef DESKTOP_VERSION
1745 return QDir::convertSeparators( locateLocal( "tmp", "synccalendar.ics" ) ); 1765 return QDir::convertSeparators( locateLocal( "tmp", "synccalendar.ics" ) );
1746#else 1766#else
1747 return QString( "/tmp/synccalendar.ics" ); 1767 return QString( "/tmp/synccalendar.ics" );
1748#endif 1768#endif
1749} 1769}
1750#include "koglobals.h" 1770#include "koglobals.h"
1751#include <kcalendarsystem.h> 1771#include <kcalendarsystem.h>
1752void MainWindow::updateWeek(QDate seda) 1772void MainWindow::updateWeek(QDate seda)
1753{ 1773{
1754 int weekNum = KGlobal::locale()->weekNum ( seda ); 1774 int weekNum = KGlobal::locale()->weekNum ( seda );
1755 mWeekPixmap.fill( mWeekBgColor ); 1775 mWeekPixmap.fill( mWeekBgColor );
@@ -1879,211 +1899,223 @@ void MainWindow::importQtopia()
1879{ 1899{
1880 //#ifndef DESKTOP_VERSION 1900 //#ifndef DESKTOP_VERSION
1881 QString mess = i18n("When importing a calendar twice\nduplicated events will be ignored!\nYou can create a backup file with\nFile - Save Calendar Backup\nto revert importing"); 1901 QString mess = i18n("When importing a calendar twice\nduplicated events will be ignored!\nYou can create a backup file with\nFile - Save Calendar Backup\nto revert importing");
1882#ifdef DESKTOP_VERSION 1902#ifdef DESKTOP_VERSION
1883 mess += i18n("The content of the following files will be\nimported (located in your home directory (hd)):\n(hd)/Applications/datebook/datebook.xml\n(hd)/Applications/todolist/todolist.xml\nThe following category file will be used:\n(hd)/Settings/Categories.xml"); 1903 mess += i18n("The content of the following files will be\nimported (located in your home directory (hd)):\n(hd)/Applications/datebook/datebook.xml\n(hd)/Applications/todolist/todolist.xml\nThe following category file will be used:\n(hd)/Settings/Categories.xml");
1884#endif 1904#endif
1885 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mess, 1905 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mess,
1886 i18n("Import!"), i18n("Cancel"), 0, 1906 i18n("Import!"), i18n("Cancel"), 0,
1887 0, 1 ); 1907 0, 1 );
1888 if ( result == 0 ) { 1908 if ( result == 0 ) {
1889#ifndef DESKTOP_VERSION 1909#ifndef DESKTOP_VERSION
1890 QString datebook = Global::applicationFileName( "datebook", "datebook.xml"); 1910 QString datebook = Global::applicationFileName( "datebook", "datebook.xml");
1891 QString todolist = Global::applicationFileName( "todolist", "todolist.xml"); 1911 QString todolist = Global::applicationFileName( "todolist", "todolist.xml");
1892 QString categories = QString( getenv( "HOME" ) ) + "/Settings/Categories.xml"; 1912 QString categories = QString( getenv( "HOME" ) ) + "/Settings/Categories.xml";
1893#else 1913#else
1894 QString datebook = QDir::homeDirPath()+ "/Applications/datebook/datebook.xml"; 1914 QString datebook = QDir::homeDirPath()+ "/Applications/datebook/datebook.xml";
1895 QString todolist = QDir::homeDirPath()+ "/Applications/todolist/todolist.xml"; 1915 QString todolist = QDir::homeDirPath()+ "/Applications/todolist/todolist.xml";
1896 QString categories = QDir::homeDirPath()+ "/Settings/Categories.xml"; 1916 QString categories = QDir::homeDirPath()+ "/Settings/Categories.xml";
1897#endif 1917#endif
1898 mView->importQtopia( categories, datebook, todolist ); 1918 mView->importQtopia( categories, datebook, todolist );
1899 } 1919 }
1900 mView->calendar()->reInitAlarmSettings(); 1920 mView->calendar()->reInitAlarmSettings();
1901#if 0 1921#if 0
1902 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), 1922 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),
1903 i18n("Not supported \non desktop!\n"), 1923 i18n("Not supported \non desktop!\n"),
1904 i18n("Ok"), i18n("Cancel"), 0, 1924 i18n("Ok"), i18n("Cancel"), 0,
1905 0, 1 ); 1925 0, 1 );
1906 1926
1907#endif 1927#endif
1908} 1928}
1909 1929
1910void MainWindow::saveOnClose() 1930void MainWindow::saveOnClose()
1911{ 1931{
1912 KOPrefs *p = KOPrefs::instance(); 1932 KOPrefs *p = KOPrefs::instance();
1913 p->mToolBarHor = ( iconToolBar->orientation () == Qt:: Horizontal ); 1933 p->mToolBarHor = ( iconToolBar->orientation () == Qt:: Horizontal );
1914 p->mToolBarHorV = ( viewToolBar->orientation () == Qt:: Horizontal ); 1934 p->mToolBarHorV = ( viewToolBar->orientation () == Qt:: Horizontal );
1915 p->mToolBarHorN = ( navigatorToolBar->orientation () == Qt:: Horizontal ); 1935 p->mToolBarHorN = ( navigatorToolBar->orientation () == Qt:: Horizontal );
1916 if ( filterToolBar ) { 1936 if ( filterToolBar ) {
1917 p->mToolBarHorF = ( filterToolBar->orientation () == Qt:: Horizontal ); 1937 p->mToolBarHorF = ( filterToolBar->orientation () == Qt:: Horizontal );
1918 } 1938 }
1919#ifdef DESKTOP_VERSION 1939#ifdef DESKTOP_VERSION
1920 1940
1921 QPoint myP; 1941 QPoint myP;
1922 myP = mapFromGlobal( iconToolBar->mapToGlobal( QPoint( 0,0) ) ); 1942 myP = mapFromGlobal( iconToolBar->mapToGlobal( QPoint( 0,0) ) );
1923 if ( p->mToolBarHor ) 1943 if ( p->mToolBarHor )
1924 p->mToolBarUp = myP.y() > height()/2; 1944 p->mToolBarUp = myP.y() > height()/2;
1925 else 1945 else
1926 p->mToolBarUp = myP.x() > width()/2; 1946 p->mToolBarUp = myP.x() > width()/2;
1927 myP = mapFromGlobal( viewToolBar->mapToGlobal( QPoint( 0,0) ) ); 1947 myP = mapFromGlobal( viewToolBar->mapToGlobal( QPoint( 0,0) ) );
1928 if ( p->mToolBarHorV ) 1948 if ( p->mToolBarHorV )
1929 p->mToolBarUpV = myP.y() > height()/2; 1949 p->mToolBarUpV = myP.y() > height()/2;
1930 else 1950 else
1931 p->mToolBarUpV = myP.x() > width()/2 ; 1951 p->mToolBarUpV = myP.x() > width()/2 ;
1932 myP = mapFromGlobal( navigatorToolBar->mapToGlobal( QPoint( 0,0) ) ); 1952 myP = mapFromGlobal( navigatorToolBar->mapToGlobal( QPoint( 0,0) ) );
1933 if ( p->mToolBarHorN ) 1953 if ( p->mToolBarHorN )
1934 p->mToolBarUpN = myP.y() > height()/2; 1954 p->mToolBarUpN = myP.y() > height()/2;
1935 else 1955 else
1936 p->mToolBarUpN = myP.x() > width()/2 ; 1956 p->mToolBarUpN = myP.x() > width()/2 ;
1937 if ( filterToolBar ) { 1957 if ( filterToolBar ) {
1938 myP = mapFromGlobal( filterToolBar->mapToGlobal( QPoint( 0,0) ) ); 1958 myP = mapFromGlobal( filterToolBar->mapToGlobal( QPoint( 0,0) ) );
1939 if ( p->mToolBarHorF ) 1959 if ( p->mToolBarHorF )
1940 p->mToolBarUpF = myP.y() > height()/2; 1960 p->mToolBarUpF = myP.y() > height()/2;
1941 else 1961 else
1942 p->mToolBarUpF = myP.x() > width()/2 ; 1962 p->mToolBarUpF = myP.x() > width()/2 ;
1943 } 1963 }
1944#else 1964#else
1945 if ( p->mToolBarHor ) 1965 if ( p->mToolBarHor )
1946 p->mToolBarUp = iconToolBar->y() > height()/2; 1966 p->mToolBarUp = iconToolBar->y() > height()/2;
1947 else 1967 else
1948 p->mToolBarUp = iconToolBar->x() > width()/2; 1968 p->mToolBarUp = iconToolBar->x() > width()/2;
1949 if ( p->mToolBarHorV ) 1969 if ( p->mToolBarHorV )
1950 p->mToolBarUpV = viewToolBar->y() > height()/2; 1970 p->mToolBarUpV = viewToolBar->y() > height()/2;
1951 else 1971 else
1952 p->mToolBarUpV = viewToolBar->x() > width()/2 ; 1972 p->mToolBarUpV = viewToolBar->x() > width()/2 ;
1953 1973
1954 if ( p->mToolBarHorN ) 1974 if ( p->mToolBarHorN )
1955 p->mToolBarUpN = navigatorToolBar->y() > height()/2; 1975 p->mToolBarUpN = navigatorToolBar->y() > height()/2;
1956 else 1976 else
1957 p->mToolBarUpN = navigatorToolBar->x() > width()/2 ; 1977 p->mToolBarUpN = navigatorToolBar->x() > width()/2 ;
1958 if ( filterToolBar ) { 1978 if ( filterToolBar ) {
1959 if ( p->mToolBarHorF ) 1979 if ( p->mToolBarHorF )
1960 p->mToolBarUpF = filterToolBar->y() > height()/2; 1980 p->mToolBarUpF = filterToolBar->y() > height()/2;
1961 else 1981 else
1962 p->mToolBarUpF = filterToolBar->x() > width()/2 ; 1982 p->mToolBarUpF = filterToolBar->x() > width()/2 ;
1963 } 1983 }
1964#endif 1984#endif
1965 save(); 1985 save();
1966 mView->writeSettings(); 1986 mView->writeSettings();
1967 mView->checkSuspendAlarm(); 1987 mView->checkSuspendAlarm();
1968} 1988}
1969void MainWindow::slotModifiedChanged( bool ) 1989void MainWindow::slotModifiedChanged( bool )
1970{ 1990{
1971 if ( mBlockAtStartup ) 1991 if ( mBlockAtStartup )
1972 return; 1992 return;
1973 1993
1974 int msec; 1994 int msec;
1995 if ( mAutoSaveDisabled ) {
1996 QTimer::singleShot( 0, this , SLOT ( autoSaveWarning() ) );
1997 qDebug("KO: Autosave disabled (data change deteced)!");
1998 }
1975 if ( mCalendarModifiedFlag ) { 1999 if ( mCalendarModifiedFlag ) {
1976 //qDebug(" MainWindow timer is running "); 2000 //qDebug(" MainWindow timer is running ");
1977 return; 2001 return;
1978 } 2002 }
2003 mCalendarModifiedFlag = true;
2004 if ( mAutoSaveDisabled ) {
2005 return;
2006 }
1979 // we store the changes after 1 minute, 2007 // we store the changes after 1 minute,
1980 // and for safety reasons after 10 minutes again 2008 // and for safety reasons after 10 minutes again
1981 if ( !mSyncManager->blockSave() ) 2009 if ( !mSyncManager->blockSave() )
1982 msec = (1000 * 60*KOPrefs::instance()->mAutoSaveInterval) +1000; 2010 msec = (1000 * 60*KOPrefs::instance()->mAutoSaveInterval) +1000;
1983 else 2011 else
1984 msec = 1000 * 600; 2012 msec = 1000 * 600;
1985 mSaveTimer.start( msec, true ); // 1 minute 2013 mSaveTimer.start( msec, true ); // 1 minute
1986 mSaveTimerStart = QDateTime::currentDateTime(); 2014 mSaveTimerStart = QDateTime::currentDateTime();
1987 mSaveDelay = msec/1000; 2015 mSaveDelay = msec/1000;
1988 qDebug("KO: Saving File in %d secs!", msec/1000); 2016 qDebug("KO: Saving File in %d secs!", msec/1000);
1989 mCalendarModifiedFlag = true; 2017}
2018void MainWindow::autoSaveWarning()
2019{
2020 setCaption(i18n("Autosave disabled!" ));
1990} 2021}
1991void MainWindow::saveStopTimer() 2022void MainWindow::saveStopTimer()
1992{ 2023{
1993 mSaveTimer.stop(); 2024 mSaveTimer.stop();
2025 mSaveDelay = 0;
1994} 2026}
1995void MainWindow::backupAllFiles() 2027void MainWindow::backupAllFiles()
1996{ 2028{
1997 QDate reference ( 2000,1,1); 2029 QDate reference ( 2000,1,1);
1998 int daysTo = reference.daysTo ( QDate::currentDate() ); 2030 int daysTo = reference.daysTo ( QDate::currentDate() );
1999 setCaption(i18n("Creating backup ... please wait ..." )); 2031 setCaption(i18n("Creating backup ... please wait ..." ));
2000 qDebug("KO: Last backup was %d days ago ", daysTo - KOPrefs::instance()->mLastBackupDate); 2032 qDebug("KO: Last backup was %d days ago ", daysTo - KOPrefs::instance()->mLastBackupDate);
2001 // we need the file path, the backup dir and the number of bups as param 2033 // we need the file path, the backup dir and the number of bups as param
2002 QString bupDir = KPimGlobalPrefs::instance()->mBackupDatadir; 2034 QString bupDir = KPimGlobalPrefs::instance()->mBackupDatadir;
2003 if ( KPimGlobalPrefs::instance()->mBackupUseDefaultDir) 2035 if ( KPimGlobalPrefs::instance()->mBackupUseDefaultDir)
2004 bupDir = KGlobalSettings::backupDataDir(); 2036 bupDir = KGlobalSettings::backupDataDir();
2005 int retval = KApplication::createBackup( defaultFileName(), bupDir, KPimGlobalPrefs::instance()->mBackupNumbers ); 2037 int retval = KApplication::createBackup( defaultFileName(), bupDir, KPimGlobalPrefs::instance()->mBackupNumbers );
2006 if ( retval == 0 ) { 2038 if ( retval == 0 ) {
2007 setCaption(i18n("Backup cancelled" )); 2039 setCaption(i18n("Backup cancelled" ));
2008 qDebug("KO: Backup cancelled. Will try again tomorrow "); 2040 qDebug("KO: Backup cancelled. Will try again tomorrow ");
2009 // retval == 0 : backup skipped for today, try again tomorrow 2041 // retval == 0 : backup skipped for today, try again tomorrow
2010 KOPrefs::instance()->mLastBackupDate = daysTo- KPimGlobalPrefs::instance()->mBackupDayCount+1; 2042 KOPrefs::instance()->mLastBackupDate = daysTo- KPimGlobalPrefs::instance()->mBackupDayCount+1;
2011 } else if ( retval == 1 ){ 2043 } else if ( retval == 1 ){
2012 qDebug("KO: Backup created."); 2044 qDebug("KO: Backup created.");
2013 // backup ok 2045 // backup ok
2014 QPtrList<KopiCalendarFile> calendars = KOPrefs::instance()->mCalendars; 2046 QPtrList<KopiCalendarFile> calendars = KOPrefs::instance()->mCalendars;
2015 KopiCalendarFile * cal = calendars.first(); 2047 KopiCalendarFile * cal = calendars.first();
2016 cal = calendars.next(); 2048 cal = calendars.next();
2017 while ( cal ) { 2049 while ( cal ) {
2018 if ( !cal->mErrorOnLoad ) { 2050 if ( !cal->mErrorOnLoad ) {
2019 KApplication::createBackup( cal->mFileName, bupDir, KPimGlobalPrefs::instance()->mBackupNumbers ); 2051 KApplication::createBackup( cal->mFileName, bupDir, KPimGlobalPrefs::instance()->mBackupNumbers );
2020 } 2052 }
2021 cal = calendars.next(); 2053 cal = calendars.next();
2022 } 2054 }
2023 KOPrefs::instance()->mLastBackupDate = daysTo; 2055 KOPrefs::instance()->mLastBackupDate = daysTo;
2024 setCaption(i18n("Backup succesfully finished" )); 2056 setCaption(i18n("Backup succesfully finished" ));
2025 } else if ( retval == 2 ){ 2057 } else if ( retval == 2 ){
2026 setCaption(i18n("Backup globally disabled" )); 2058 setCaption(i18n("Backup globally disabled" ));
2027 qDebug("KO: Backup globally cancelled."); 2059 qDebug("KO: Backup globally cancelled.");
2028 // backup globally cancelled 2060 // backup globally cancelled
2029 KPimGlobalPrefs::instance()->mBackupEnabled = false; 2061 KPimGlobalPrefs::instance()->mBackupEnabled = false;
2030 } 2062 }
2031 // retval == 3: do nothing, try again later 2063 // retval == 3: do nothing, try again later
2032} 2064}
2033void MainWindow::save() 2065void MainWindow::save()
2034{ 2066{
2035 if ( mSaveDelay ) { 2067 if ( mSaveDelay ) {
2036 int elapsed = mSaveTimerStart.secsTo( QDateTime::currentDateTime() ); 2068 int elapsed = mSaveTimerStart.secsTo( QDateTime::currentDateTime() );
2037 if ( mSaveDelay < elapsed ) { 2069 if ( mSaveDelay < elapsed ) {
2038 qDebug("KO: Pending save after wakeup from suspend detected."); 2070 qDebug("KO: Pending save after wakeup from suspend detected.");
2039 qDebug("KO: Save delay %d sec. Elapsed save time %d sec.", mSaveDelay, elapsed ); 2071 qDebug("KO: Save delay %d sec. Elapsed save time %d sec.", mSaveDelay, elapsed );
2040 qDebug("KO: Restarting save timer to save in 10 sec."); 2072 qDebug("KO: Restarting save timer to save in 10 sec.");
2041 int msec = 10000; 2073 int msec = 10000;
2042 mSaveTimer.start( msec, true ); 2074 mSaveTimer.start( msec, true );
2043 mSaveTimerStart = QDateTime::currentDateTime(); 2075 mSaveTimerStart = QDateTime::currentDateTime();
2044 mSaveDelay = msec/1000; 2076 mSaveDelay = msec/1000;
2045 return; 2077 return;
2046 } 2078 }
2047 } 2079 }
2048 if ( mView->viewManager()->journalView() ) 2080 if ( mView->viewManager()->journalView() )
2049 mView->viewManager()->journalView()->checkModified(); 2081 mView->viewManager()->journalView()->checkModified();
2050 if ( !mCalendarModifiedFlag ) { 2082 if ( !mCalendarModifiedFlag ) {
2051 qDebug("KO: Calendar not modified. Nothing saved."); 2083 qDebug("KO: Calendar not modified. Nothing saved.");
2052 return; 2084 return;
2053 } 2085 }
2054 if ( mSyncManager->blockSave() ) { 2086 if ( mSyncManager->blockSave() ) {
2055 slotModifiedChanged( true ); 2087 slotModifiedChanged( true );
2056 return; 2088 return;
2057 } 2089 }
2058#ifndef DESKTOP_VERSION 2090#ifndef DESKTOP_VERSION
2059 // QPEApplication::setTempScreenSaverMode ( QPEApplication::Disable ); 2091 // QPEApplication::setTempScreenSaverMode ( QPEApplication::Disable );
2060#endif 2092#endif
2061 mSaveDelay = 0; 2093 mSaveDelay = 0;
2062 mSyncManager->setBlockSave(true); 2094 mSyncManager->setBlockSave(true);
2063 if ( mView->checkAllFileVersions() ) { 2095 if ( mView->checkAllFileVersions() ) {
2064 if ( KPimGlobalPrefs::instance()->mBackupEnabled ){ 2096 if ( KPimGlobalPrefs::instance()->mBackupEnabled ){
2065 QDate reference ( 2000,1,1); 2097 QDate reference ( 2000,1,1);
2066 int daysTo = reference.daysTo ( QDate::currentDate() ); 2098 int daysTo = reference.daysTo ( QDate::currentDate() );
2067 if ( daysTo - KPimGlobalPrefs::instance()->mBackupDayCount >= KOPrefs::instance()->mLastBackupDate ) { 2099 if ( daysTo - KPimGlobalPrefs::instance()->mBackupDayCount >= KOPrefs::instance()->mLastBackupDate ) {
2068 backupAllFiles(); 2100 backupAllFiles();
2069 } 2101 }
2070 ; // KPimGlobalPrefs::instance()->mLastBackupDate 2102 ; // KPimGlobalPrefs::instance()->mLastBackupDate
2071 } 2103 }
2072 QTime neededSaveTime; 2104 QTime neededSaveTime;
2073 neededSaveTime.start(); 2105 neededSaveTime.start();
2074 if ( !isMinimized () ) 2106 if ( !isMinimized () )
2075 setCaption(i18n("KO/Pi:Saving Data to File ..." )); 2107 setCaption(i18n("KO/Pi:Saving Data to File ..." ));
2076 qDebug("KO: Start saving data to file!"); 2108 qDebug("KO: Start saving data to file!");
2077 if ( mView->saveCalendars() ) 2109 if ( mView->saveCalendars() )
2078 mCalendarModifiedFlag = false; 2110 mCalendarModifiedFlag = false;
2079 int msNeeded = neededSaveTime.elapsed(); 2111 int msNeeded = neededSaveTime.elapsed();
2080 qDebug("KO: Needed %d ms for saving.",msNeeded ); 2112 qDebug("KO: Needed %d ms for saving.",msNeeded );
2081 QString savemes; 2113 QString savemes;
2082 savemes.sprintf(i18n("KO/Pi:File Saved. Needed %d sec, %d ms"),(msNeeded/1000)%100,msNeeded%1000 ); 2114 savemes.sprintf(i18n("KO/Pi:File Saved. Needed %d sec, %d ms"),(msNeeded/1000)%100,msNeeded%1000 );
2083 if ( !isMinimized () ) 2115 if ( !isMinimized () )
2084 setCaption(savemes); 2116 setCaption(savemes);
2085 else 2117 else
2086 qDebug(savemes); 2118 qDebug(savemes);
2087 } else { 2119 } else {
2088 setCaption(i18n("Saving cancelled!")); 2120 setCaption(i18n("Saving cancelled!"));
2089 mCalendarModifiedFlag = false; 2121 mCalendarModifiedFlag = false;
@@ -2114,194 +2146,205 @@ void MainWindow::keyPressEvent ( QKeyEvent * e )
2114 KOPrefs *p = KOPrefs::instance(); 2146 KOPrefs *p = KOPrefs::instance();
2115 bool showSelectedDates = false; 2147 bool showSelectedDates = false;
2116 int size; 2148 int size;
2117 int pro = 0; 2149 int pro = 0;
2118 //qDebug("MainWindow::keyPressEvent "); 2150 //qDebug("MainWindow::keyPressEvent ");
2119 switch ( e->key() ) { 2151 switch ( e->key() ) {
2120 case Qt::Key_Right: 2152 case Qt::Key_Right:
2121 if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton) 2153 if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton)
2122 mView->goNextMonth(); 2154 mView->goNextMonth();
2123 else 2155 else
2124 mView->goNext(); 2156 mView->goNext();
2125 showSelectedDates = true; 2157 showSelectedDates = true;
2126 break; 2158 break;
2127 case Qt::Key_Left: 2159 case Qt::Key_Left:
2128 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) 2160 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton )
2129 mView->goPreviousMonth(); 2161 mView->goPreviousMonth();
2130 else 2162 else
2131 mView->goPrevious(); 2163 mView->goPrevious();
2132 showSelectedDates = true; 2164 showSelectedDates = true;
2133 break; 2165 break;
2134 case Qt::Key_Down: 2166 case Qt::Key_Down:
2135 mView->viewManager()->agendaView()->scrollOneHourDown(); 2167 mView->viewManager()->agendaView()->scrollOneHourDown();
2136 break; 2168 break;
2137 case Qt::Key_Up: 2169 case Qt::Key_Up:
2138 mView->viewManager()->agendaView()->scrollOneHourUp(); 2170 mView->viewManager()->agendaView()->scrollOneHourUp();
2139 break; 2171 break;
2140 case Qt::Key_K: 2172 case Qt::Key_K:
2141 mView->viewManager()->showMonthViewWeek(); 2173 mView->viewManager()->showMonthViewWeek();
2142 break; 2174 break;
2143 case Qt::Key_I: 2175 case Qt::Key_I:
2144 mView->showIncidence(); 2176 mView->showIncidence();
2145 break; 2177 break;
2146 case Qt::Key_Delete: 2178 case Qt::Key_Delete:
2147 case Qt::Key_Backspace: 2179 case Qt::Key_Backspace:
2148 mView->deleteIncidence(); 2180 mView->deleteIncidence();
2149 break; 2181 break;
2150 case Qt::Key_D: 2182 case Qt::Key_D:
2151 mView->viewManager()->showDayView(); 2183 mView->viewManager()->showDayView();
2152 showSelectedDates = true; 2184 showSelectedDates = true;
2153 break; 2185 break;
2154 case Qt::Key_O: 2186 case Qt::Key_O:
2155 mView->toggleFilerEnabled( ); 2187 mView->toggleFilerEnabled( );
2156 break; 2188 break;
2157 case Qt::Key_0: 2189 case Qt::Key_0:
2158 case Qt::Key_1: 2190 case Qt::Key_1:
2159 case Qt::Key_2: 2191 case Qt::Key_2:
2160 case Qt::Key_3: 2192 case Qt::Key_3:
2161 case Qt::Key_4: 2193 case Qt::Key_4:
2162 case Qt::Key_5: 2194 case Qt::Key_5:
2163 case Qt::Key_6: 2195 case Qt::Key_6:
2164 case Qt::Key_7: 2196 case Qt::Key_7:
2165 case Qt::Key_8: 2197 case Qt::Key_8:
2166 case Qt::Key_9: 2198 case Qt::Key_9:
2167 pro = e->key()-48; 2199 pro = e->key()-48;
2168 if ( pro == 0 ) 2200 if ( pro == 0 )
2169 pro = 10; 2201 pro = 10;
2170 if ( e->state() == Qt::ControlButton) 2202 if ( e->state() == Qt::ControlButton)
2171 pro += 10; 2203 pro += 10;
2172 break; 2204 break;
2173 case Qt::Key_M: 2205 case Qt::Key_M:
2174 mView->viewManager()->showMonthView(); 2206 mView->viewManager()->showMonthView();
2175 showSelectedDates = true; 2207 showSelectedDates = true;
2176 break; 2208 break;
2177 case Qt::Key_Insert: 2209 case Qt::Key_Insert:
2178 mView->newEvent(); 2210 mView->newEvent();
2179 break; 2211 break;
2180 case Qt::Key_S : 2212 case Qt::Key_S :
2181 if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton) 2213 if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton)
2182 mView->newSubTodo(); 2214 mView->newSubTodo();
2183 else 2215 else
2184 mView->dialogManager()->showSearchDialog(); 2216 mView->dialogManager()->showSearchDialog();
2185 break; 2217 break;
2186 case Qt::Key_Y : 2218 case Qt::Key_Y :
2187 case Qt::Key_Z : 2219 case Qt::Key_Z :
2188 mView->viewManager()->showWorkWeekView(); 2220 mView->viewManager()->showWorkWeekView();
2189 showSelectedDates = true; 2221 showSelectedDates = true;
2190 break; 2222 break;
2191 case Qt::Key_U : 2223 case Qt::Key_U :
2192 mView->viewManager()->showWeekView(); 2224 mView->viewManager()->showWeekView();
2193 showSelectedDates = true; 2225 showSelectedDates = true;
2194 break; 2226 break;
2195 case Qt::Key_H : 2227 case Qt::Key_H :
2196 keyBindings(); 2228 keyBindings();
2197 break; 2229 break;
2198 case Qt::Key_W: 2230 case Qt::Key_W:
2199 mView->viewManager()->showWhatsNextView(); 2231 mView->viewManager()->showWhatsNextView();
2200 break; 2232 break;
2201 case Qt::Key_L: 2233 case Qt::Key_L:
2202 mView->viewManager()->showListView(); 2234 mView->viewManager()->showListView();
2203 break; 2235 break;
2204 case Qt::Key_N: 2236 case Qt::Key_N:
2205 mView->viewManager()->showNextView(); 2237 mView->viewManager()->showNextView();
2206 break; 2238 break;
2207 case Qt::Key_V: 2239 case Qt::Key_V:
2208 mView->viewManager()->showTodoView(); 2240 mView->viewManager()->showTodoView();
2209 break; 2241 break;
2210 case Qt::Key_C: 2242 case Qt::Key_C:
2211 mView->viewManager()->agendaView()->setStartHour( QTime::currentTime ().hour() ); 2243 if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton ) {
2244 if ( mAutoSaveDisabled ) {
2245 mAutoSaveDisabled = false;
2246 setCaption(i18n("Autosave enabled!" ));
2247 return;
2248 } else {
2249 mAutoSaveDisabled = true;
2250 saveStopTimer();
2251 setCaption(i18n("Autosave disabled! Save timer stopped!" ));
2252 }
2253 } else
2254 mView->viewManager()->agendaView()->setStartHour( QTime::currentTime ().hour() );
2212 break; 2255 break;
2213 case Qt::Key_P: 2256 case Qt::Key_P:
2214 mView->showDatePicker( ); 2257 mView->showDatePicker( );
2215 break; 2258 break;
2216 case Qt::Key_F: 2259 case Qt::Key_F:
2217 mView->editFilters(); 2260 mView->editFilters();
2218 break; 2261 break;
2219 case Qt::Key_R: 2262 case Qt::Key_R:
2220 mView->toggleFilter(); 2263 mView->toggleFilter();
2221 break; 2264 break;
2222 case Qt::Key_X: 2265 case Qt::Key_X:
2223 if ( e->state() == Qt::ControlButton ) 2266 if ( e->state() == Qt::ControlButton )
2224 mView->toggleDateNavigatorWidget(); 2267 mView->toggleDateNavigatorWidget();
2225 else { 2268 else {
2226 mView->viewManager()->showNextXView(); 2269 mView->viewManager()->showNextXView();
2227 showSelectedDates = true; 2270 showSelectedDates = true;
2228 } 2271 }
2229 break; 2272 break;
2230 case Qt::Key_Space: 2273 case Qt::Key_Space:
2231 mView->toggleExpand(); 2274 mView->toggleExpand();
2232 break; 2275 break;
2233 case Qt::Key_A: 2276 case Qt::Key_A:
2234 if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton ) 2277 if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton )
2235 mView->showNextAlarms(); 2278 mView->showNextAlarms();
2236 else 2279 else
2237 mView->toggleAllDaySize(); 2280 mView->toggleAllDaySize();
2238 break; 2281 break;
2239 case Qt::Key_T: 2282 case Qt::Key_T:
2240 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) 2283 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton )
2241 mView->newTodo(); 2284 mView->newTodo();
2242 else { 2285 else {
2243 mView->goToday(); 2286 mView->goToday();
2244 showSelectedDates = true; 2287 showSelectedDates = true;
2245 } 2288 }
2246 break; 2289 break;
2247 case Qt::Key_Q: 2290 case Qt::Key_Q:
2248 if ( e->state() == Qt::ControlButton ) 2291 if ( e->state() == Qt::ControlButton )
2249 mView->conflictNotAll(); 2292 mView->conflictNotAll();
2250 else if ( e->state() == Qt::ShiftButton ) 2293 else if ( e->state() == Qt::ShiftButton )
2251 mView->conflictAllday(); 2294 mView->conflictAllday();
2252 else 2295 else
2253 mView->conflictAll(); 2296 mView->conflictAll();
2254 break; 2297 break;
2255 case Qt::Key_J: 2298 case Qt::Key_J:
2256 mView->viewManager()->showJournalView(); 2299 mView->viewManager()->showJournalView();
2257 break; 2300 break;
2258 case Qt::Key_B: 2301 case Qt::Key_B:
2259 mView->editIncidenceDescription();; 2302 mView->editIncidenceDescription();;
2260 break; 2303 break;
2261 // case Qt::Key_Return: 2304 // case Qt::Key_Return:
2262 case Qt::Key_E: 2305 case Qt::Key_E:
2263 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) 2306 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton )
2264 mView->newEvent(); 2307 mView->newEvent();
2265 else 2308 else
2266 mView->editIncidence(); 2309 mView->editIncidence();
2267 break; 2310 break;
2268 case Qt::Key_Plus: 2311 case Qt::Key_Plus:
2269 size = p->mHourSize +2; 2312 size = p->mHourSize +2;
2270 if ( size <= 22 ) 2313 if ( size <= 22 )
2271 configureAgenda( size ); 2314 configureAgenda( size );
2272 break; 2315 break;
2273 case Qt::Key_Minus: 2316 case Qt::Key_Minus:
2274 size = p->mHourSize - 2; 2317 size = p->mHourSize - 2;
2275 if ( size >= 4 ) 2318 if ( size >= 4 )
2276 configureAgenda( size ); 2319 configureAgenda( size );
2277 break; 2320 break;
2278 2321
2279 2322
2280 default: 2323 default:
2281 e->ignore(); 2324 e->ignore();
2282 } 2325 }
2283 if ( pro > 0 ) { 2326 if ( pro > 0 ) {
2284 selectFilter( pro+1 ); 2327 selectFilter( pro+1 );
2285 } 2328 }
2286 if ( showSelectedDates ) { 2329 if ( showSelectedDates ) {
2287 ;// setCaptionToDates(); 2330 ;// setCaptionToDates();
2288 } 2331 }
2289 2332
2290} 2333}
2291void MainWindow::fillFilterMenuTB() 2334void MainWindow::fillFilterMenuTB()
2292{ 2335{
2293 selectFilterMenuTB->clear(); 2336 selectFilterMenuTB->clear();
2294 selectFilterMenuTB->insertItem(i18n ( "Edit Filters" ), 0 ); 2337 selectFilterMenuTB->insertItem(i18n ( "Edit Filters" ), 0 );
2295 selectFilterMenuTB->insertSeparator(); 2338 selectFilterMenuTB->insertSeparator();
2296 selectFilterMenuTB->insertItem(i18n ( "No Filter" ), 1 ); 2339 selectFilterMenuTB->insertItem(i18n ( "No Filter" ), 1 );
2297 2340
2298 selectFilterMenuTB->insertSeparator(); 2341 selectFilterMenuTB->insertSeparator();
2299 QPtrList<CalFilter> fili = mView->filters(); 2342 QPtrList<CalFilter> fili = mView->filters();
2300 CalFilter *curfilter = mView->filterView()->selectedFilter(); 2343 CalFilter *curfilter = mView->filterView()->selectedFilter();
2301 CalFilter *filter = fili.first(); 2344 CalFilter *filter = fili.first();
2302 int iii = 2; 2345 int iii = 2;
2303 bool checkitem = mView->filterView()->filtersEnabled(); 2346 bool checkitem = mView->filterView()->filtersEnabled();
2304 while(filter) { 2347 while(filter) {
2305 selectFilterMenuTB->insertItem( filter->name(), iii ); 2348 selectFilterMenuTB->insertItem( filter->name(), iii );
2306 if ( filter == curfilter) 2349 if ( filter == curfilter)
2307 selectFilterMenuTB->setItemChecked( iii, checkitem ); 2350 selectFilterMenuTB->setItemChecked( iii, checkitem );
diff --git a/korganizer/mainwindow.h b/korganizer/mainwindow.h
index 71c069b..d8018b6 100644
--- a/korganizer/mainwindow.h
+++ b/korganizer/mainwindow.h
@@ -1,189 +1,191 @@
1#ifndef KORGE_MAINWINDOW_H 1#ifndef KORGE_MAINWINDOW_H
2#define KORGE_MAINWINDOW_H 2#define KORGE_MAINWINDOW_H
3 3
4#include <qmainwindow.h> 4#include <qmainwindow.h>
5#include <qtimer.h> 5#include <qtimer.h>
6#include <qdict.h> 6#include <qdict.h>
7#include <qfile.h> 7#include <qfile.h>
8#include <qmenubar.h> 8#include <qmenubar.h>
9#include <qtextstream.h> 9#include <qtextstream.h>
10#include <qregexp.h> 10#include <qregexp.h>
11 11
12#include <libkcal/incidence.h> 12#include <libkcal/incidence.h>
13#include <ksyncmanager.h> 13#include <ksyncmanager.h>
14#include <kpopupmenu.h> 14#include <kpopupmenu.h>
15#ifndef DESKTOP_VERSION 15#ifndef DESKTOP_VERSION
16#include <qcopchannel_qws.h> 16#include <qcopchannel_qws.h>
17#endif 17#endif
18class QAction; 18class QAction;
19class CalendarView; 19class CalendarView;
20class KSyncProfile; 20class KSyncProfile;
21#ifdef DESKTOP_VERSION 21#ifdef DESKTOP_VERSION
22 22
23#define QPEToolBar QToolBar 23#define QPEToolBar QToolBar
24#endif 24#endif
25class QPEToolBar; 25class QPEToolBar;
26 26
27 27
28namespace KCal { 28namespace KCal {
29class CalendarLocal; 29class CalendarLocal;
30} 30}
31 31
32using namespace KCal; 32using namespace KCal;
33 33
34class MainWindow : public QMainWindow 34class MainWindow : public QMainWindow
35{ 35{
36 Q_OBJECT 36 Q_OBJECT
37 public: 37 public:
38 MainWindow( QWidget *parent = 0, const char *name = 0 ); 38 MainWindow( QWidget *parent = 0, const char *name = 0 );
39 ~MainWindow(); 39 ~MainWindow();
40 bool beamReceiveEnabled(); 40 bool beamReceiveEnabled();
41 static QString defaultFileName(); 41 static QString defaultFileName();
42 static QString syncFileName(); 42 static QString syncFileName();
43 static QString resourcePath(); 43 static QString resourcePath();
44 public slots: 44 public slots:
45 void setUsesBigPixmaps ( bool ); 45 void setUsesBigPixmaps ( bool );
46 void setCaption ( const QString & ); 46 void setCaption ( const QString & );
47 void updateWeekNum(const KCal::DateList &); 47 void updateWeekNum(const KCal::DateList &);
48 void updateWeek(QDate); 48 void updateWeek(QDate);
49 void updateFilterToolbar(); 49 void updateFilterToolbar();
50 virtual void showMaximized (); 50 virtual void showMaximized ();
51 void configureAgenda( int ); 51 void configureAgenda( int );
52 void recieve( const QCString& msg, const QByteArray& data ); 52 void recieve( const QCString& msg, const QByteArray& data );
53 void receiveStart( const QCString& msg, const QByteArray& data ); 53 void receiveStart( const QCString& msg, const QByteArray& data );
54 protected slots: 54 protected slots:
55 void autoSaveWarning();
55 void loadDataAfterStart(); 56 void loadDataAfterStart();
56 void calHint(); 57 void calHint();
57 void startMultiSync(); 58 void startMultiSync();
58 void setCaptionToDates(); 59 void setCaptionToDates();
59 void weekAction(); 60 void weekAction();
60 void about(); 61 void about();
61 void licence(); 62 void licence();
62 void faq(); 63 void faq();
63 void usertrans(); 64 void usertrans();
64 void features(); 65 void features();
65 void synchowto(); 66 void synchowto();
66 void storagehowto(); 67 void storagehowto();
67 void timetrackinghowto(); 68 void timetrackinghowto();
68 void kdesynchowto(); 69 void kdesynchowto();
69 void multisynchowto(); 70 void multisynchowto();
70 void whatsNew(); 71 void whatsNew();
71 void keyBindings(); 72 void keyBindings();
72 void aboutAutoSaving();; 73 void aboutAutoSaving();;
73 void aboutKnownBugs(); 74 void aboutKnownBugs();
74 75
75 void processIncidenceSelection( Incidence * ); 76 void processIncidenceSelection( Incidence * );
76 77
77 void importQtopia(); 78 void importQtopia();
78 void importBday(); 79 void importBday();
79 void importOL(); 80 void importOL();
80 void importIcal(); 81 void importIcal();
81 void importFile( QString, bool ); 82 void importFile( QString, bool );
82 void quickImportIcal(); 83 void quickImportIcal();
83 84
84 void slotModifiedChanged( bool ); 85 void slotModifiedChanged( bool );
85 86
86 void save(); 87 void save();
87 void backupAllFiles(); 88 void backupAllFiles();
88 void saveStopTimer(); 89 void saveStopTimer();
89 void configureToolBar( int ); 90 void configureToolBar( int );
90 void printSel(); 91 void printSel();
91 void printCal(); 92 void printCal();
92 void printListView(); 93 void printListView();
93 void saveCalendar(); 94 void saveCalendar();
94 void loadCalendar(); 95 void loadCalendar();
95 void exportVCalendar(); 96 void exportVCalendar();
96 void exportICalendar(); 97 void exportICalendar();
97 void exportCalendar( bool ); 98 void exportCalendar( bool );
98 void fillFilterMenu(); 99 void fillFilterMenu();
99 void fillFilterMenuTB(); 100 void fillFilterMenuTB();
100 void selectFilter( int ); 101 void selectFilter( int );
101 void fillFilterMenuPopup(); 102 void fillFilterMenuPopup();
102 void selectFilterPopup( int ); 103 void selectFilterPopup( int );
103 void exportToPhone( int ); 104 void exportToPhone( int );
104 void toggleBeamReceive(); 105 void toggleBeamReceive();
105 void disableBR(bool); 106 void disableBR(bool);
106 signals: 107 signals:
107 void selectWeek ( int ); 108 void selectWeek ( int );
108 private slots: 109 private slots:
109 void slotResetFocus(); 110 void slotResetFocus();
110 void slotResetFocusLoop(); 111 void slotResetFocusLoop();
111 void showConfigureAgenda(); 112 void showConfigureAgenda();
112 void getFile( bool ); 113 void getFile( bool );
113 void syncFileRequest(); 114 void syncFileRequest();
114 115
115 protected: 116 protected:
116 int mFocusLoop; 117 int mFocusLoop;
117 void hideEvent ( QHideEvent * ); 118 void hideEvent ( QHideEvent * );
118 QString sentSyncFile(); 119 QString sentSyncFile();
119 void displayText( QString, QString); 120 void displayText( QString, QString);
120 void enableIncidenceActions( bool ); 121 void enableIncidenceActions( bool );
121 bool askForQuitOnSaveError(); 122 bool askForQuitOnSaveError();
122 123
123 private: 124 private:
124 125 bool mAutoSaveDisabled;
126 bool checkAutosave();
125 QCString mCStringMess; 127 QCString mCStringMess;
126 QByteArray mByteData; 128 QByteArray mByteData;
127 129
128 //void setMenuBar( QMenuBar * ); 130 //void setMenuBar( QMenuBar * );
129 bool mBRdisabled; 131 bool mBRdisabled;
130#ifndef DESKTOP_VERSION 132#ifndef DESKTOP_VERSION
131 QCopChannel* infrared; 133 QCopChannel* infrared;
132#endif 134#endif
133 QAction* brAction; 135 QAction* brAction;
134 KSyncManager* mSyncManager; 136 KSyncManager* mSyncManager;
135 bool mClosed; 137 bool mClosed;
136 void saveOnClose(); 138 void saveOnClose();
137 bool mFlagKeyPressed; 139 bool mFlagKeyPressed;
138 bool mBlockAtStartup; 140 bool mBlockAtStartup;
139 KMenuBar *menuBar1; 141 KMenuBar *menuBar1;
140 QPEToolBar *iconToolBar; 142 QPEToolBar *iconToolBar;
141 QPEToolBar *viewToolBar; 143 QPEToolBar *viewToolBar;
142 QPEToolBar *navigatorToolBar; 144 QPEToolBar *navigatorToolBar;
143 QPEToolBar *filterToolBar; 145 QPEToolBar *filterToolBar;
144 KMenuBar *filterMenubar; 146 KMenuBar *filterMenubar;
145 QPopupMenu * filterPopupMenu; 147 QPopupMenu * filterPopupMenu;
146 QPopupMenu * mCurrentItemMenu; 148 QPopupMenu * mCurrentItemMenu;
147 void initActions(); 149 void initActions();
148 void setDefaultPreferences(); 150 void setDefaultPreferences();
149 void resizeEvent( QResizeEvent* e); 151 void resizeEvent( QResizeEvent* e);
150 void keyPressEvent ( QKeyEvent * ) ; 152 void keyPressEvent ( QKeyEvent * ) ;
151 void keyReleaseEvent ( QKeyEvent * ) ; 153 void keyReleaseEvent ( QKeyEvent * ) ;
152 QPopupMenu *configureToolBarMenu; 154 QPopupMenu *configureToolBarMenu;
153 QPopupMenu *selectFilterMenu; 155 QPopupMenu *selectFilterMenu;
154 QPopupMenu *selectFilterMenuTB; 156 QPopupMenu *selectFilterMenuTB;
155 QPopupMenu *configureAgendaMenu, *syncMenu; 157 QPopupMenu *configureAgendaMenu, *syncMenu;
156 CalendarLocal *mCalendar; 158 CalendarLocal *mCalendar;
157 CalendarView *mView; 159 CalendarView *mView;
158 QAction *mNewSubTodoAction; 160 QAction *mNewSubTodoAction;
159 QAction *mWeekAction; 161 QAction *mWeekAction;
160 QFont mWeekFont; 162 QFont mWeekFont;
161 QPixmap mWeekPixmap; 163 QPixmap mWeekPixmap;
162 QColor mWeekBgColor; 164 QColor mWeekBgColor;
163 165
164 QAction *mShowAction; 166 QAction *mShowAction;
165 QAction *mEditAction; 167 QAction *mEditAction;
166 QAction *mDeleteAction; 168 QAction *mDeleteAction;
167 QAction *mCloneAction; 169 QAction *mCloneAction;
168 QAction *mMoveAction; 170 QAction *mMoveAction;
169 QAction *mBeamAction; 171 QAction *mBeamAction;
170 QAction *mCancelAction; 172 QAction *mCancelAction;
171 QAction *mPrintSelAction; 173 QAction *mPrintSelAction;
172 174
173 QAction *mToggleNav; 175 QAction *mToggleNav;
174 QAction *mToggleFilter; 176 QAction *mToggleFilter;
175 QAction *mToggleAllday; 177 QAction *mToggleAllday;
176 QAction *actionFilterMenuTB; 178 QAction *actionFilterMenuTB;
177 179
178 void closeEvent( QCloseEvent* ce ); 180 void closeEvent( QCloseEvent* ce );
179 QTimer mSaveTimer; 181 QTimer mSaveTimer;
180 QDateTime mSaveTimerStart; 182 QDateTime mSaveTimerStart;
181 int mSaveDelay; 183 int mSaveDelay;
182 //bool mBlockSaveFlag; 184 //bool mBlockSaveFlag;
183 bool mCalendarModifiedFlag; 185 bool mCalendarModifiedFlag;
184 QPixmap loadPixmap( QString ); 186 QPixmap loadPixmap( QString );
185 QPixmap listviewPix, listviewPix0, listviewPix20, listviewPix40, listviewPix60, listviewPix80, journalPix; 187 QPixmap listviewPix, listviewPix0, listviewPix20, listviewPix40, listviewPix60, listviewPix80, journalPix;
186}; 188};
187 189
188 190
189#endif 191#endif