summaryrefslogtreecommitdiffabout
path: root/korganizer/mainwindow.cpp
Unidiff
Diffstat (limited to 'korganizer/mainwindow.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/mainwindow.cpp62
1 files changed, 61 insertions, 1 deletions
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp
index 9e32c18..1c74307 100644
--- a/korganizer/mainwindow.cpp
+++ b/korganizer/mainwindow.cpp
@@ -191,193 +191,195 @@ MainWindow::MainWindow( QWidget *parent, const char *name, QString msg) :
191 //qDebug("Splashwidget x %d y %d w %d h %d", splash-> x(), splash->y(), splash->width(),splash-> height ()); 191 //qDebug("Splashwidget x %d y %d w %d h %d", splash-> x(), splash->y(), splash->width(),splash-> height ());
192 int vh = height() ; 192 int vh = height() ;
193 int vw = width(); 193 int vw = width();
194 //qDebug("Toolbar hei %d ",iconToolBar->height() ); 194 //qDebug("Toolbar hei %d ",iconToolBar->height() );
195 if ( iconToolBar->orientation () == Qt:: Horizontal ) { 195 if ( iconToolBar->orientation () == Qt:: Horizontal ) {
196 vh -= iconToolBar->height(); 196 vh -= iconToolBar->height();
197 } else { 197 } else {
198 vw -= iconToolBar->height(); 198 vw -= iconToolBar->height();
199 } 199 }
200 //mView->setMaximumSize( splash->size() ); 200 //mView->setMaximumSize( splash->size() );
201 //mView->resize( splash->size() ); 201 //mView->resize( splash->size() );
202 //qDebug("MainView x %d y %d w %d h %d", mView->x(),mView-> y(), mView->width(), mView->height ()); 202 //qDebug("MainView x %d y %d w %d h %d", mView->x(),mView-> y(), mView->width(), mView->height ());
203 mView->readSettings(); 203 mView->readSettings();
204 bool newFile = false; 204 bool newFile = false;
205 if( !QFile::exists( defaultFileName() ) ) { 205 if( !QFile::exists( defaultFileName() ) ) {
206 QFileInfo finfo ( defaultFileName() ); 206 QFileInfo finfo ( defaultFileName() );
207 QString oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/Applications/korganizer/mycalendar.ics"); 207 QString oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/Applications/korganizer/mycalendar.ics");
208 qDebug("oldfile %s ", oldFile.latin1()); 208 qDebug("oldfile %s ", oldFile.latin1());
209 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"; 209 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";
210 finfo.setFile( oldFile ); 210 finfo.setFile( oldFile );
211 if (finfo.exists() ) { 211 if (finfo.exists() ) {
212 KMessageBox::information( this, message); 212 KMessageBox::information( this, message);
213 mView->openCalendar( oldFile ); 213 mView->openCalendar( oldFile );
214 qApp->processEvents(); 214 qApp->processEvents();
215 } else { 215 } else {
216 oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/korganizer/mycalendar.ics"); 216 oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/korganizer/mycalendar.ics");
217 finfo.setFile( oldFile ); 217 finfo.setFile( oldFile );
218 if (finfo.exists() ) { 218 if (finfo.exists() ) {
219 KMessageBox::information( this, message); 219 KMessageBox::information( this, message);
220 mView->openCalendar( oldFile ); 220 mView->openCalendar( oldFile );
221 qApp->processEvents(); 221 qApp->processEvents();
222 } 222 }
223 } 223 }
224 mView->saveCalendar( defaultFileName() ); 224 mView->saveCalendar( defaultFileName() );
225 newFile = true; 225 newFile = true;
226 } 226 }
227 227
228 QTime neededSaveTime = QDateTime::currentDateTime().time(); 228 QTime neededSaveTime = QDateTime::currentDateTime().time();
229 mView->openCalendar( defaultFileName() ); 229 mView->openCalendar( defaultFileName() );
230 int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() ); 230 int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() );
231 qDebug("KO: Calendar loading time: %d ms",msNeeded ); 231 qDebug("KO: Calendar loading time: %d ms",msNeeded );
232 232
233 if ( KPimGlobalPrefs::instance()->mPreferredLanguage != KOPrefs::instance()->mOldLoadedLanguage ) { 233 if ( KPimGlobalPrefs::instance()->mPreferredLanguage != KOPrefs::instance()->mOldLoadedLanguage ) {
234 KOPrefs::instance()->setCategoryDefaults(); 234 KOPrefs::instance()->setCategoryDefaults();
235 int count = mView->addCategories(); 235 int count = mView->addCategories();
236 } 236 }
237 processIncidenceSelection( 0 ); 237 processIncidenceSelection( 0 );
238 connect( mView, SIGNAL( incidenceSelected( Incidence * ) ), 238 connect( mView, SIGNAL( incidenceSelected( Incidence * ) ),
239 SLOT( processIncidenceSelection( Incidence * ) ) ); 239 SLOT( processIncidenceSelection( Incidence * ) ) );
240 connect( mView, SIGNAL( modifiedChanged( bool ) ), 240 connect( mView, SIGNAL( modifiedChanged( bool ) ),
241 SLOT( slotModifiedChanged( bool ) ) ); 241 SLOT( slotModifiedChanged( bool ) ) );
242 242
243 243
244 connect( mView, SIGNAL( tempDisableBR(bool) ), 244 connect( mView, SIGNAL( tempDisableBR(bool) ),
245 SLOT( disableBR(bool) ) ); 245 SLOT( disableBR(bool) ) );
246 connect( &mSaveTimer, SIGNAL( timeout() ), SLOT( save() ) ); 246 connect( &mSaveTimer, SIGNAL( timeout() ), SLOT( save() ) );
247 mView->setModified( false ); 247 mView->setModified( false );
248 mBlockAtStartup = false; 248 mBlockAtStartup = false;
249 mView->setModified( false ); 249 mView->setModified( false );
250 setCentralWidget( mView ); 250 setCentralWidget( mView );
251 globalFlagBlockStartup = 0; 251 globalFlagBlockStartup = 0;
252 mView->show(); 252 mView->show();
253 delete splash; 253 delete splash;
254 if ( newFile ) 254 if ( newFile )
255 mView->updateConfig(); 255 mView->updateConfig();
256 // qApp->processEvents(); 256 // qApp->processEvents();
257 //qDebug("MainView x %d y %d w %d h %d", mView->x(),mView-> y(), mView->width(), mView->height ()); 257 //qDebug("MainView x %d y %d w %d h %d", mView->x(),mView-> y(), mView->width(), mView->height ());
258 //fillSyncMenu(); 258 //fillSyncMenu();
259 259
260 260
261 connect(mSyncManager , SIGNAL( save() ), this, SLOT( save() ) ); 261 connect(mSyncManager , SIGNAL( save() ), this, SLOT( save() ) );
262 connect(mView , SIGNAL( save() ), this, SLOT( save() ) ); 262 connect(mView , SIGNAL( save() ), this, SLOT( save() ) );
263 connect(mView , SIGNAL( saveStopTimer() ), this, SLOT( saveStopTimer() ) ); 263 connect(mView , SIGNAL( saveStopTimer() ), this, SLOT( saveStopTimer() ) );
264 connect(mSyncManager , SIGNAL( request_file() ), this, SLOT( syncFileRequest() ) ); 264 connect(mSyncManager , SIGNAL( request_file() ), this, SLOT( syncFileRequest() ) );
265 connect(mSyncManager , SIGNAL( getFile( bool )), this, SLOT(getFile( bool ) ) ); 265 connect(mSyncManager , SIGNAL( getFile( bool )), this, SLOT(getFile( bool ) ) );
266 mSyncManager->setDefaultFileName( defaultFileName()); 266 mSyncManager->setDefaultFileName( defaultFileName());
267 connect ( syncMenu, SIGNAL( activated ( int ) ), mSyncManager, SLOT (slotSyncMenu( int ) ) ); 267 connect ( syncMenu, SIGNAL( activated ( int ) ), mSyncManager, SLOT (slotSyncMenu( int ) ) );
268 mSyncManager->fillSyncMenu(); 268 mSyncManager->fillSyncMenu();
269 269
270 270
271 271
272 mView->viewManager()->agendaView()->setStartHour( KOPrefs::instance()->mDayBegins ); 272 mView->viewManager()->agendaView()->setStartHour( KOPrefs::instance()->mDayBegins );
273 if ( showWarning ) { 273 if ( showWarning ) {
274 KMessageBox::information( this, 274 KMessageBox::information( this,
275 "You are starting KO/Pi for the first time.\nPlease read menu: Help-What's New,\nif you did an update!\nPlease choose your timezone in the \nConfigure Dialog TAB Time Zone!\nPlease choose your language\nin the TAB Locale!\nYou get the Configure Dialog\nvia Menu: Actions - Configure....\nClick OK to show the Configure Dialog!\n", "KO/Pi information"); 275 "You are starting KO/Pi for the first time.\nPlease read menu: Help-What's New,\nif you did an update!\nPlease choose your timezone in the \nConfigure Dialog TAB Time Zone!\nPlease choose your language\nin the TAB Locale!\nYou get the Configure Dialog\nvia Menu: Actions - Configure....\nClick OK to show the Configure Dialog!\n", "KO/Pi information");
276 qApp->processEvents(); 276 qApp->processEvents();
277 mView->dialogManager()->showSyncOptions(); 277 mView->dialogManager()->showSyncOptions();
278 } 278 }
279 279
280 //US listen for result adressed from Ka/Pi 280 //US listen for result adressed from Ka/Pi
281#ifndef DESKTOP_VERSION 281#ifndef DESKTOP_VERSION
282 connect(qApp, SIGNAL (appMessage ( const QCString &, const QByteArray & )), ExternalAppHandler::instance(), SLOT (appMessage ( const QCString &, const QByteArray & ))); 282 connect(qApp, SIGNAL (appMessage ( const QCString &, const QByteArray & )), ExternalAppHandler::instance(), SLOT (appMessage ( const QCString &, const QByteArray & )));
283#endif 283#endif
284#ifndef DESKTOP_VERSION 284#ifndef DESKTOP_VERSION
285 infrared = 0; 285 infrared = 0;
286#endif 286#endif
287 287 updateWeek( mView->startDate() );
288 connect( mView->dateNavigator(), SIGNAL( datesSelected( const KCal::DateList & ) ),
289 SLOT( updateWeekNum( const KCal::DateList & ) ) );
288 mBRdisabled = false; 290 mBRdisabled = false;
289 //toggleBeamReceive(); 291 //toggleBeamReceive();
290} 292}
291MainWindow::~MainWindow() 293MainWindow::~MainWindow()
292{ 294{
293 //qDebug("MainWindow::~MainWindow() "); 295 //qDebug("MainWindow::~MainWindow() ");
294 //save toolbar location 296 //save toolbar location
295 delete mCalendar; 297 delete mCalendar;
296 delete mSyncManager; 298 delete mSyncManager;
297#ifndef DESKTOP_VERSION 299#ifndef DESKTOP_VERSION
298 if ( infrared ) 300 if ( infrared )
299 delete infrared; 301 delete infrared;
300#endif 302#endif
301 303
302 304
303} 305}
304 306
305void MainWindow::disableBR(bool b) 307void MainWindow::disableBR(bool b)
306{ 308{
307#ifndef DESKTOP_VERSION 309#ifndef DESKTOP_VERSION
308 if ( b ) { 310 if ( b ) {
309 if ( infrared ) { 311 if ( infrared ) {
310 toggleBeamReceive(); 312 toggleBeamReceive();
311 mBRdisabled = true; 313 mBRdisabled = true;
312 } 314 }
313 mBRdisabled = true; 315 mBRdisabled = true;
314 } else { 316 } else {
315 if ( mBRdisabled ) { 317 if ( mBRdisabled ) {
316 mBRdisabled = false; 318 mBRdisabled = false;
317 //makes no sense,because other cal ap is probably running 319 //makes no sense,because other cal ap is probably running
318 // toggleBeamReceive(); 320 // toggleBeamReceive();
319 } 321 }
320 } 322 }
321#endif 323#endif
322 324
323} 325}
324bool MainWindow::beamReceiveEnabled() 326bool MainWindow::beamReceiveEnabled()
325{ 327{
326#ifndef DESKTOP_VERSION 328#ifndef DESKTOP_VERSION
327 return ( infrared != 0 ); 329 return ( infrared != 0 );
328#endif 330#endif
329 return false; 331 return false;
330} 332}
331 333
332void MainWindow::toggleBeamReceive() 334void MainWindow::toggleBeamReceive()
333{ 335{
334 if ( mBRdisabled ) 336 if ( mBRdisabled )
335 return; 337 return;
336#ifndef DESKTOP_VERSION 338#ifndef DESKTOP_VERSION
337 if ( infrared ) { 339 if ( infrared ) {
338 qDebug("disable BeamReceive "); 340 qDebug("disable BeamReceive ");
339 delete infrared; 341 delete infrared;
340 infrared = 0; 342 infrared = 0;
341 brAction->setOn(false); 343 brAction->setOn(false);
342 return; 344 return;
343 } 345 }
344 qDebug("enable BeamReceive "); 346 qDebug("enable BeamReceive ");
345 brAction->setOn(true); 347 brAction->setOn(true);
346 infrared = new QCopChannel("QPE/Application/datebook",this, "channel" ) ; 348 infrared = new QCopChannel("QPE/Application/datebook",this, "channel" ) ;
347 QObject::connect( infrared, SIGNAL (received ( const QCString &, const QByteArray & )),this, SLOT(recieve( const QCString&, const QByteArray& ))); 349 QObject::connect( infrared, SIGNAL (received ( const QCString &, const QByteArray & )),this, SLOT(recieve( const QCString&, const QByteArray& )));
348#endif 350#endif
349} 351}
350void MainWindow::showMaximized () 352void MainWindow::showMaximized ()
351{ 353{
352#ifndef DESKTOP_VERSION 354#ifndef DESKTOP_VERSION
353 if ( ! globalFlagBlockStartup ) 355 if ( ! globalFlagBlockStartup )
354 if ( mClosed ) 356 if ( mClosed )
355 mView->goToday(); 357 mView->goToday();
356#endif 358#endif
357 QWidget::showMaximized () ; 359 QWidget::showMaximized () ;
358 mClosed = false; 360 mClosed = false;
359} 361}
360void MainWindow::closeEvent( QCloseEvent* ce ) 362void MainWindow::closeEvent( QCloseEvent* ce )
361{ 363{
362 364
363 365
364 366
365 if ( ! KOPrefs::instance()->mAskForQuit ) { 367 if ( ! KOPrefs::instance()->mAskForQuit ) {
366 saveOnClose(); 368 saveOnClose();
367 mClosed = true; 369 mClosed = true;
368 ce->accept(); 370 ce->accept();
369 return; 371 return;
370 372
371 } 373 }
372 374
373 switch( QMessageBox::information( this, "KO/Pi", 375 switch( QMessageBox::information( this, "KO/Pi",
374 i18n("Do you really want\nto close KO/Pi?"), 376 i18n("Do you really want\nto close KO/Pi?"),
375 i18n("Close"), i18n("No"), 377 i18n("Close"), i18n("No"),
376 0, 0 ) ) { 378 0, 0 ) ) {
377 case 0: 379 case 0:
378 saveOnClose(); 380 saveOnClose();
379 mClosed = true; 381 mClosed = true;
380 ce->accept(); 382 ce->accept();
381 break; 383 break;
382 case 1: 384 case 1:
383 ce->ignore(); 385 ce->ignore();
@@ -461,192 +463,216 @@ void MainWindow::recieve( const QCString& cmsg, const QByteArray& data )
461 if ( msg == "-showList" ) { 463 if ( msg == "-showList" ) {
462 mView->viewManager()->showListView(); 464 mView->viewManager()->showListView();
463 } 465 }
464 else if ( msg == "-showDay" ) { 466 else if ( msg == "-showDay" ) {
465 mView->viewManager()->showDayView(); 467 mView->viewManager()->showDayView();
466 } 468 }
467 else if ( msg == "-showWWeek" ) { 469 else if ( msg == "-showWWeek" ) {
468 mView->viewManager()->showWorkWeekView(); 470 mView->viewManager()->showWorkWeekView();
469 } 471 }
470 else if ( msg == "-ringSync" ) { 472 else if ( msg == "-ringSync" ) {
471 mSyncManager->multiSync( false ); 473 mSyncManager->multiSync( false );
472 } 474 }
473 else if ( msg == "-showWeek" ) { 475 else if ( msg == "-showWeek" ) {
474 mView->viewManager()->showWeekView(); 476 mView->viewManager()->showWeekView();
475 } 477 }
476 else if ( msg == "-showTodo" ) { 478 else if ( msg == "-showTodo" ) {
477 mView->viewManager()->showTodoView(); 479 mView->viewManager()->showTodoView();
478 } 480 }
479 else if ( msg == "-showJournal" ) { 481 else if ( msg == "-showJournal" ) {
480 mView->dateNavigator()->selectDates( 1 ); 482 mView->dateNavigator()->selectDates( 1 );
481 mView->dateNavigator()->selectToday(); 483 mView->dateNavigator()->selectToday();
482 mView->viewManager()->showJournalView(); 484 mView->viewManager()->showJournalView();
483 } 485 }
484 else if ( msg == "-showKO" ) { 486 else if ( msg == "-showKO" ) {
485 mView->viewManager()->showNextXView(); 487 mView->viewManager()->showNextXView();
486 } 488 }
487 else if ( msg == "-showWNext" || msg == "nextView()" ) { 489 else if ( msg == "-showWNext" || msg == "nextView()" ) {
488 mView->viewManager()->showWhatsNextView(); 490 mView->viewManager()->showWhatsNextView();
489 } 491 }
490 else if ( msg == "-showNextXView" ) { 492 else if ( msg == "-showNextXView" ) {
491 mView->viewManager()->showNextXView(); 493 mView->viewManager()->showNextXView();
492 } 494 }
493 495
494 496
495 } 497 }
496 498
497 showMaximized(); 499 showMaximized();
498 raise(); 500 raise();
499} 501}
500 502
501QPixmap MainWindow::loadPixmap( QString name ) 503QPixmap MainWindow::loadPixmap( QString name )
502{ 504{
503 return SmallIcon( name ); 505 return SmallIcon( name );
504 506
505} 507}
506void MainWindow::initActions() 508void MainWindow::initActions()
507{ 509{
508 //KOPrefs::instance()->mShowFullMenu 510 //KOPrefs::instance()->mShowFullMenu
509 iconToolBar->clear(); 511 iconToolBar->clear();
510 KOPrefs *p = KOPrefs::instance(); 512 KOPrefs *p = KOPrefs::instance();
511 //QPEMenuBar *menuBar1;// = new QPEMenuBar( iconToolBar ); 513 //QPEMenuBar *menuBar1;// = new QPEMenuBar( iconToolBar );
512 514
513 QPopupMenu *viewMenu = new QPopupMenu( this ); 515 QPopupMenu *viewMenu = new QPopupMenu( this );
514 QPopupMenu *actionMenu = new QPopupMenu( this ); 516 QPopupMenu *actionMenu = new QPopupMenu( this );
515 QPopupMenu *importMenu = new QPopupMenu( this ); 517 QPopupMenu *importMenu = new QPopupMenu( this );
516 selectFilterMenu = new QPopupMenu( this ); 518 selectFilterMenu = new QPopupMenu( this );
517 selectFilterMenu->setCheckable( true ); 519 selectFilterMenu->setCheckable( true );
518 syncMenu = new QPopupMenu( this ); 520 syncMenu = new QPopupMenu( this );
519 configureAgendaMenu = new QPopupMenu( this ); 521 configureAgendaMenu = new QPopupMenu( this );
520 configureToolBarMenu = new QPopupMenu( this ); 522 configureToolBarMenu = new QPopupMenu( this );
521 QPopupMenu *helpMenu = new QPopupMenu( this ); 523 QPopupMenu *helpMenu = new QPopupMenu( this );
522 if ( KOPrefs::instance()->mShowFullMenu ) { 524 if ( KOPrefs::instance()->mShowFullMenu ) {
523 QMenuBar *menuBar1; 525 QMenuBar *menuBar1;
524 menuBar1 = menuBar(); 526 menuBar1 = menuBar();
525 menuBar1->insertItem( i18n("File"), importMenu ); 527 menuBar1->insertItem( i18n("File"), importMenu );
526 menuBar1->insertItem( i18n("View"), viewMenu ); 528 menuBar1->insertItem( i18n("View"), viewMenu );
527 menuBar1->insertItem( i18n("Actions"), actionMenu ); 529 menuBar1->insertItem( i18n("Actions"), actionMenu );
528#ifdef DESKTOP_VERSION 530#ifdef DESKTOP_VERSION
529 menuBar1->insertItem( i18n("Synchronize"), syncMenu ); 531 menuBar1->insertItem( i18n("Synchronize"), syncMenu );
530 menuBar1->insertItem( i18n("AgendaSize"),configureAgendaMenu ); 532 menuBar1->insertItem( i18n("AgendaSize"),configureAgendaMenu );
531#else 533#else
532 menuBar1->insertItem( i18n("Sync"), syncMenu ); 534 menuBar1->insertItem( i18n("Sync"), syncMenu );
533 menuBar1->insertItem( i18n("Agenda"),configureAgendaMenu ); 535 menuBar1->insertItem( i18n("Agenda"),configureAgendaMenu );
534#endif 536#endif
535 //menuBar1->insertItem( i18n("Toolbar"),configureToolBarMenu ); 537 //menuBar1->insertItem( i18n("Toolbar"),configureToolBarMenu );
536 menuBar1->insertItem( i18n("Filter"),selectFilterMenu ); 538 menuBar1->insertItem( i18n("Filter"),selectFilterMenu );
537 menuBar1->insertItem( i18n("Help"), helpMenu ); 539 menuBar1->insertItem( i18n("Help"), helpMenu );
538 } else { 540 } else {
539 QPEMenuBar *menuBar1; 541 QPEMenuBar *menuBar1;
540 menuBar1 = new QPEMenuBar( iconToolBar ); 542 menuBar1 = new QPEMenuBar( iconToolBar );
541 QPopupMenu *menuBar = new QPopupMenu( this ); 543 QPopupMenu *menuBar = new QPopupMenu( this );
542 menuBar1->insertItem( i18n("ME"), menuBar); 544 menuBar1->insertItem( i18n("ME"), menuBar);
543 menuBar->insertItem( i18n("File"), importMenu ); 545 menuBar->insertItem( i18n("File"), importMenu );
544 menuBar->insertItem( i18n("View"), viewMenu ); 546 menuBar->insertItem( i18n("View"), viewMenu );
545 menuBar->insertItem( i18n("Actions"), actionMenu ); 547 menuBar->insertItem( i18n("Actions"), actionMenu );
546 menuBar->insertItem( i18n("Synchronize"), syncMenu ); 548 menuBar->insertItem( i18n("Synchronize"), syncMenu );
547 menuBar->insertItem( i18n("AgendaSize"),configureAgendaMenu ); 549 menuBar->insertItem( i18n("AgendaSize"),configureAgendaMenu );
548 menuBar->insertItem( i18n("Toolbar"),configureToolBarMenu ); 550 menuBar->insertItem( i18n("Toolbar"),configureToolBarMenu );
549 menuBar->insertItem( i18n("Filter"),selectFilterMenu ); 551 menuBar->insertItem( i18n("Filter"),selectFilterMenu );
550 menuBar->insertItem( i18n("Help"), helpMenu ); 552 menuBar->insertItem( i18n("Help"), helpMenu );
551 //menuBar1->setMaximumWidth( menuBar1->sizeHint().width() ); 553 //menuBar1->setMaximumWidth( menuBar1->sizeHint().width() );
552 menuBar1->setMaximumSize( menuBar1->sizeHint( )); 554 menuBar1->setMaximumSize( menuBar1->sizeHint( ));
553 } 555 }
554 connect ( selectFilterMenu, SIGNAL( activated ( int ) ), this, SLOT (selectFilter( int ) ) ); 556 connect ( selectFilterMenu, SIGNAL( activated ( int ) ), this, SLOT (selectFilter( int ) ) );
555 connect ( selectFilterMenu, SIGNAL( aboutToShow() ), this, SLOT (fillFilterMenu() ) ); 557 connect ( selectFilterMenu, SIGNAL( aboutToShow() ), this, SLOT (fillFilterMenu() ) );
556 558
559 menuBarWeek = new QPEMenuBar( iconToolBar );
560 QPopupMenu * wpo = new QPopupMenu (this);
561 QPopupMenu * all = new QPopupMenu (this);
562 //wpo->insertItem( i18n("W#"), 0 );
563 int first = 1;
564 int i;
565 for ( i = 1; i < 50; ++i ) {
566 if ( !(i%10) ) {
567 all->insertItem( i18n("Select week %1-%2" ).arg(first).arg( i-1) ,wpo );
568 connect( wpo, SIGNAL( activated(int) ), SIGNAL( selectWeek ( int ) ) );
569 first = i;
570 wpo = new QPopupMenu (this);
571 }
572 wpo->insertItem( QString::number(i), i );
573 }
574 for ( i = 50; i < 53; ++i ) {
575 wpo->insertItem( QString::number(i), i);
576 }
577 all->insertItem( i18n("Select week %1-%2" ).arg(first).arg( i-1) ,wpo );
578 connect( wpo, SIGNAL( activated(int) ), SIGNAL( selectWeek ( int ) ) );
579 menuBarWeek->insertItem( "00",all,1);
580 menuBarWeek->setMaximumSize( menuBarWeek->sizeHint( ));
581
582 connect( this, SIGNAL( selectWeek ( int ) ), mView->dateNavigator(), SLOT( selectWeek ( int ) ) );
557 // ****************** 583 // ******************
558 QAction *action; 584 QAction *action;
559 QIconSet icon; 585 QIconSet icon;
560 // QPopupMenu *configureMenu= new QPopupMenu( menuBar ); 586 // QPopupMenu *configureMenu= new QPopupMenu( menuBar );
561 configureToolBarMenu->setCheckable( true ); 587 configureToolBarMenu->setCheckable( true );
562 588
563 QString pathString = ""; 589 QString pathString = "";
564 if ( !p->mToolBarMiniIcons ) { 590 if ( !p->mToolBarMiniIcons ) {
565 if ( QApplication::desktop()->width() < 480 ) 591 if ( QApplication::desktop()->width() < 480 )
566 pathString += "icons16/"; 592 pathString += "icons16/";
567 } else 593 } else
568 pathString += "iconsmini/"; 594 pathString += "iconsmini/";
569 configureAgendaMenu->setCheckable( true ); 595 configureAgendaMenu->setCheckable( true );
570 int iii ; 596 int iii ;
571 for ( iii = 1;iii<= 10 ;++iii ){ 597 for ( iii = 1;iii<= 10 ;++iii ){
572 configureAgendaMenu->insertItem(i18n("Size %1").arg(iii), (iii+1)*2 ); 598 configureAgendaMenu->insertItem(i18n("Size %1").arg(iii), (iii+1)*2 );
573 } 599 }
574 //configureMenu->insertItem( "AgendaSize",configureAgendaMenu ); 600 //configureMenu->insertItem( "AgendaSize",configureAgendaMenu );
575 601
576 connect( configureAgendaMenu, SIGNAL( aboutToShow()), 602 connect( configureAgendaMenu, SIGNAL( aboutToShow()),
577 this, SLOT( showConfigureAgenda( ) ) ); 603 this, SLOT( showConfigureAgenda( ) ) );
578 604
579 icon = loadPixmap( pathString + "configure" ); 605 icon = loadPixmap( pathString + "configure" );
580 action = new QAction( i18n("Configure"),icon, i18n("Configure..."), 0, this ); 606 action = new QAction( i18n("Configure"),icon, i18n("Configure..."), 0, this );
581 action->addTo( actionMenu ); 607 action->addTo( actionMenu );
582 connect( action, SIGNAL( activated() ), 608 connect( action, SIGNAL( activated() ),
583 mView, SLOT( edit_options() ) ); 609 mView, SLOT( edit_options() ) );
584 actionMenu->insertSeparator(); 610 actionMenu->insertSeparator();
585 611
586 action = new QAction( i18n("Undo Delete"), i18n("Undo Delete..."), 0, this ); 612 action = new QAction( i18n("Undo Delete"), i18n("Undo Delete..."), 0, this );
587 action->addTo( actionMenu ); 613 action->addTo( actionMenu );
588 connect( action, SIGNAL( activated() ), 614 connect( action, SIGNAL( activated() ),
589 mView, SLOT( undo_delete() ) ); 615 mView, SLOT( undo_delete() ) );
590 actionMenu->insertSeparator(); 616 actionMenu->insertSeparator();
591 617
592 icon = loadPixmap( pathString + "newevent" ); 618 icon = loadPixmap( pathString + "newevent" );
593 configureToolBarMenu->insertItem(i18n("Stretched TB"), 5 ); 619 configureToolBarMenu->insertItem(i18n("Stretched TB"), 5 );
594 configureToolBarMenu->insertSeparator(); 620 configureToolBarMenu->insertSeparator();
595 configureToolBarMenu->insertItem(icon, i18n("New Event..."), 10 ); 621 configureToolBarMenu->insertItem(icon, i18n("New Event..."), 10 );
596 QAction* ne_action = new QAction( i18n("New Event..."), icon, i18n("New Event..."), 0, this ); 622 QAction* ne_action = new QAction( i18n("New Event..."), icon, i18n("New Event..."), 0, this );
597 ne_action->addTo( actionMenu ); 623 ne_action->addTo( actionMenu );
598 connect( ne_action, SIGNAL( activated() ), 624 connect( ne_action, SIGNAL( activated() ),
599 mView, SLOT( newEvent() ) ); 625 mView, SLOT( newEvent() ) );
600 icon = loadPixmap( pathString + "newtodo" ); 626 icon = loadPixmap( pathString + "newtodo" );
601 configureToolBarMenu->insertItem(icon, i18n("New Todo..."), 20 ); 627 configureToolBarMenu->insertItem(icon, i18n("New Todo..."), 20 );
602 QAction* nt_action = new QAction( i18n("New Todo..."), icon, i18n("New Todo..."), 0, this ); 628 QAction* nt_action = new QAction( i18n("New Todo..."), icon, i18n("New Todo..."), 0, this );
603 nt_action->addTo( actionMenu ); 629 nt_action->addTo( actionMenu );
604 connect( nt_action, SIGNAL( activated() ), 630 connect( nt_action, SIGNAL( activated() ),
605 mView, SLOT( newTodo() ) ); 631 mView, SLOT( newTodo() ) );
606 632
607 icon = loadPixmap( pathString + "today" ); 633 icon = loadPixmap( pathString + "today" );
608 QAction* today_action = new QAction( i18n("Go to Today"), icon, i18n("Go to Today"), 0, this ); 634 QAction* today_action = new QAction( i18n("Go to Today"), icon, i18n("Go to Today"), 0, this );
609 today_action->addTo( viewMenu ); 635 today_action->addTo( viewMenu );
610 connect( today_action, SIGNAL( activated() ), 636 connect( today_action, SIGNAL( activated() ),
611 mView, SLOT( goToday() ) ); 637 mView, SLOT( goToday() ) );
612 viewMenu->insertSeparator(); 638 viewMenu->insertSeparator();
613 639
614 icon = loadPixmap( pathString + "navi" ); 640 icon = loadPixmap( pathString + "navi" );
615 action = new QAction( i18n("Toggle DateNavigator"), icon, i18n("Toggle DateNavigator"), 0, this ); 641 action = new QAction( i18n("Toggle DateNavigator"), icon, i18n("Toggle DateNavigator"), 0, this );
616 action->addTo( viewMenu ); 642 action->addTo( viewMenu );
617 connect( action, SIGNAL( activated() ), 643 connect( action, SIGNAL( activated() ),
618 mView, SLOT( toggleDateNavigatorWidget() ) ); 644 mView, SLOT( toggleDateNavigatorWidget() ) );
619 mToggleNav = action ; 645 mToggleNav = action ;
620 icon = loadPixmap( pathString + "filter" ); 646 icon = loadPixmap( pathString + "filter" );
621 action = new QAction( i18n("Toggle FilterView"), icon, i18n("Toggle FilterView"), 0, this ); 647 action = new QAction( i18n("Toggle FilterView"), icon, i18n("Toggle FilterView"), 0, this );
622 action->addTo( viewMenu ); 648 action->addTo( viewMenu );
623 connect( action, SIGNAL( activated() ), 649 connect( action, SIGNAL( activated() ),
624 mView, SLOT( toggleFilter() ) ); 650 mView, SLOT( toggleFilter() ) );
625 mToggleFilter = action; 651 mToggleFilter = action;
626 icon = loadPixmap( pathString + "allday" ); 652 icon = loadPixmap( pathString + "allday" );
627 action = new QAction( i18n("Toggle Allday"), icon,i18n("Toggle Allday"), 0, this ); 653 action = new QAction( i18n("Toggle Allday"), icon,i18n("Toggle Allday"), 0, this );
628 action->addTo( viewMenu ); 654 action->addTo( viewMenu );
629 connect( action, SIGNAL( activated() ), 655 connect( action, SIGNAL( activated() ),
630 mView, SLOT( toggleAllDaySize() ) ); 656 mView, SLOT( toggleAllDaySize() ) );
631 mToggleAllday = action; 657 mToggleAllday = action;
632 658
633 659
634 connect( mView->viewManager(), SIGNAL( signalFullScreen( bool ) ), 660 connect( mView->viewManager(), SIGNAL( signalFullScreen( bool ) ),
635 mToggleNav, SLOT( setEnabled ( bool ) ) ); 661 mToggleNav, SLOT( setEnabled ( bool ) ) );
636 connect( mView->viewManager(), SIGNAL( signalFullScreen( bool ) ), 662 connect( mView->viewManager(), SIGNAL( signalFullScreen( bool ) ),
637 mToggleFilter, SLOT( setEnabled ( bool ) ) ); 663 mToggleFilter, SLOT( setEnabled ( bool ) ) );
638 connect( mView->viewManager(), SIGNAL( signalAgendaView( bool ) ), 664 connect( mView->viewManager(), SIGNAL( signalAgendaView( bool ) ),
639 mToggleAllday, SLOT( setEnabled ( bool ) ) ); 665 mToggleAllday, SLOT( setEnabled ( bool ) ) );
640 666
641 viewMenu->insertSeparator(); 667 viewMenu->insertSeparator();
642 icon = loadPixmap( pathString + "picker" ); 668 icon = loadPixmap( pathString + "picker" );
643 action = new QAction( i18n("Date Picker"), icon, i18n("Date Picker"), 0, this ); 669 action = new QAction( i18n("Date Picker"), icon, i18n("Date Picker"), 0, this );
644 action->addTo( viewMenu ); 670 action->addTo( viewMenu );
645 connect( action, SIGNAL( activated() ), 671 connect( action, SIGNAL( activated() ),
646 mView, SLOT( showDatePicker() ) ); 672 mView, SLOT( showDatePicker() ) );
647 action->addTo( iconToolBar ); 673 action->addTo( iconToolBar );
648 viewMenu->insertSeparator(); 674 viewMenu->insertSeparator();
649 icon = loadPixmap( pathString + "list" ); 675 icon = loadPixmap( pathString + "list" );
650 configureToolBarMenu->insertItem(icon, i18n("List View"), 30 ); 676 configureToolBarMenu->insertItem(icon, i18n("List View"), 30 );
651 QAction* showlist_action = new QAction( i18n("List View"), icon, i18n("List View"), 0, this ); 677 QAction* showlist_action = new QAction( i18n("List View"), icon, i18n("List View"), 0, this );
652 showlist_action->addTo( viewMenu ); 678 showlist_action->addTo( viewMenu );
@@ -1223,195 +1249,229 @@ void MainWindow::about()
1223#endif 1249#endif
1224 i18n("(c) 2004 Lutz Rogowski\nEmail:lutz@pi-sync.net\nKO/Pi is based on KOrganizer\n(c) 2002,2003 Cornelius Schumacher\nEmail: schumacher@kde.org\nKOrganizer/Pi is licensed\nunder the GPL.\nKO/Pi can be compiled for\nLinux, Zaurus-PDA and Windows\nwww.korganizer.org\nwww.pi-sync.net\n") ); 1250 i18n("(c) 2004 Lutz Rogowski\nEmail:lutz@pi-sync.net\nKO/Pi is based on KOrganizer\n(c) 2002,2003 Cornelius Schumacher\nEmail: schumacher@kde.org\nKOrganizer/Pi is licensed\nunder the GPL.\nKO/Pi can be compiled for\nLinux, Zaurus-PDA and Windows\nwww.korganizer.org\nwww.pi-sync.net\n") );
1225} 1251}
1226void MainWindow::keyBindings() 1252void MainWindow::keyBindings()
1227{ 1253{
1228 QString cap = i18n("KO/Pi Keys + Colors"); 1254 QString cap = i18n("KO/Pi Keys + Colors");
1229 QString text = i18n("<p><h2>KO/Pi key shortcuts:</h2></p>\n") + 1255 QString text = i18n("<p><h2>KO/Pi key shortcuts:</h2></p>\n") +
1230 i18n("<p><b>H</b>: This help dialog | <b>S</b>: Search dialog</p>\n")+ 1256 i18n("<p><b>H</b>: This help dialog | <b>S</b>: Search dialog</p>\n")+
1231 i18n("<p><b>I</b>: Show info for selected event/todo</p>\n") + 1257 i18n("<p><b>I</b>: Show info for selected event/todo</p>\n") +
1232 i18n("<p><b>Space</b>: Toggle fullscreen | <b>P</b>: Date picker</p>\n")+ 1258 i18n("<p><b>Space</b>: Toggle fullscreen | <b>P</b>: Date picker</p>\n")+
1233 i18n("<p><b>F</b>: Toggle filterview |<b>F+ctrl</b>: Edit filter </p>\n")+ 1259 i18n("<p><b>F</b>: Toggle filterview |<b>F+ctrl</b>: Edit filter </p>\n")+
1234 i18n("<p><b>O</b>: Filter On/Off | <b>J</b>: Journal view</p>\n")+ 1260 i18n("<p><b>O</b>: Filter On/Off | <b>J</b>: Journal view</p>\n")+
1235 i18n("<p><b>1-0</b> (+<b>ctrl</b>): Select filter 1-10 (11-20)</p>\n")+ 1261 i18n("<p><b>1-0</b> (+<b>ctrl</b>): Select filter 1-10 (11-20)</p>\n")+
1236 i18n("<p><b>N</b>: Next days view| <b>W</b>: What's next view\n ")+ 1262 i18n("<p><b>N</b>: Next days view| <b>W</b>: What's next view\n ")+
1237 i18n("<p><b>V</b>: Todo view | <b>L</b>: Event list view</p>\n")+ 1263 i18n("<p><b>V</b>: Todo view | <b>L</b>: Event list view</p>\n")+
1238 i18n("<p><b>Z,Y</b>: Work week view | <b>U</b>: Week view</p>\n")+ 1264 i18n("<p><b>Z,Y</b>: Work week view | <b>U</b>: Week view</p>\n")+
1239 i18n("<p><b>D</b>: One day view | <b>M</b>: Month view</p>\n")+ 1265 i18n("<p><b>D</b>: One day view | <b>M</b>: Month view</p>\n")+
1240 i18n("<p><b>E</b>: Edit selected item |<b> E+ctrl</b>: New Event</p>\n")+ 1266 i18n("<p><b>E</b>: Edit selected item |<b> E+ctrl</b>: New Event</p>\n")+
1241 i18n("<p><b>T</b>: Goto today | <b>T+ctrl</b>: New Todo</p>\n")+ 1267 i18n("<p><b>T</b>: Goto today | <b>T+ctrl</b>: New Todo</p>\n")+
1242 i18n("<p><b>S+ctrl</b>: Add sub-todo | <b>X</b>: Toggle datenavigator</p>\n")+ 1268 i18n("<p><b>S+ctrl</b>: Add sub-todo | <b>X</b>: Toggle datenavigator</p>\n")+
1243 i18n("<p><b>+,-</b> : Zoom in/out agenda | <b>A</b>: Toggle allday agenda height</p>\n")+ 1269 i18n("<p><b>+,-</b> : Zoom in/out agenda | <b>A</b>: Toggle allday agenda height</p>\n")+
1244 i18n("<p><b>C</b>: Show current time in agenda view</p>\n")+ 1270 i18n("<p><b>C</b>: Show current time in agenda view</p>\n")+
1245 i18n("<p><b>B</b>: Edit description (details) of selected item</p>\n")+ 1271 i18n("<p><b>B</b>: Edit description (details) of selected item</p>\n")+
1246 i18n("<p><b>right</b>: Next week | <b>right+ctrl</b>: Next month</p>\n")+ 1272 i18n("<p><b>right</b>: Next week | <b>right+ctrl</b>: Next month</p>\n")+
1247 i18n("<p><b>left</b>: Prev. week | <b>left+ctrl</b>: Prev. month</p>\n")+ 1273 i18n("<p><b>left</b>: Prev. week | <b>left+ctrl</b>: Prev. month</p>\n")+
1248 i18n("<p><b>del,backspace</b>: Delete selected item</p>\n")+ 1274 i18n("<p><b>del,backspace</b>: Delete selected item</p>\n")+
1249 i18n("<p><h3>In agenda view:</h3></p>\n") + 1275 i18n("<p><h3>In agenda view:</h3></p>\n") +
1250 i18n("<p><b>up/down</b>: Scroll agenda view</p>\n")+ 1276 i18n("<p><b>up/down</b>: Scroll agenda view</p>\n")+
1251 i18n("<p><b>ctrl+up/down</b>: Scroll small todo view</p>\n")+ 1277 i18n("<p><b>ctrl+up/down</b>: Scroll small todo view</p>\n")+
1252 i18n("<p><h3>In todo view:</h3></p>\n") + 1278 i18n("<p><h3>In todo view:</h3></p>\n") +
1253 i18n("<p><b>shift+U</b>: <b>U</b>nparent todo (make root todo)</p>\n")+ 1279 i18n("<p><b>shift+U</b>: <b>U</b>nparent todo (make root todo)</p>\n")+
1254 i18n("<p><b>shift+S</b>: Make <b>S</b>ubtodo (reparent todo)</p>\n")+ 1280 i18n("<p><b>shift+S</b>: Make <b>S</b>ubtodo (reparent todo)</p>\n")+
1255 i18n("<p><b>shift+P</b>: Make new <b>P</b>arent for todo selected with shift+S</p>\n")+ 1281 i18n("<p><b>shift+P</b>: Make new <b>P</b>arent for todo selected with shift+S</p>\n")+
1256 i18n("<p><b>Q</b>: Toggle quick todo line edit.</p>\n")+ 1282 i18n("<p><b>Q</b>: Toggle quick todo line edit.</p>\n")+
1257 i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+ 1283 i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+
1258 i18n("<p><b>return</b>: Mark item as completed+one step down.</p>\n")+ 1284 i18n("<p><b>return</b>: Mark item as completed+one step down.</p>\n")+
1259 i18n("<p><b>return+shift</b>: Mark item as not completed+one step down</p>\n")+ 1285 i18n("<p><b>return+shift</b>: Mark item as not completed+one step down</p>\n")+
1260 i18n("<p><h3>In list view:</h3></p>\n") + 1286 i18n("<p><h3>In list view:</h3></p>\n") +
1261 i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+ 1287 i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+
1262 i18n("<p><b>return</b>: Select item+one step down</p>\n")+ 1288 i18n("<p><b>return</b>: Select item+one step down</p>\n")+
1263 i18n("<p><b>return+shift</b>: Deselect item+one step down</p>\n")+ 1289 i18n("<p><b>return+shift</b>: Deselect item+one step down</p>\n")+
1264 i18n("<p><b>up/down</b>: Next/prev item</p>\n")+ 1290 i18n("<p><b>up/down</b>: Next/prev item</p>\n")+
1265 i18n("<p><b>ctrl+up/down</b>: Goto up/down by 20% of items</p>\n")+ 1291 i18n("<p><b>ctrl+up/down</b>: Goto up/down by 20% of items</p>\n")+
1266 i18n("<p><b>shift+up/down</b>: Goto first/last item</p>\n")+ 1292 i18n("<p><b>shift+up/down</b>: Goto first/last item</p>\n")+
1267 i18n("<p><h3>In event/todo viewer:</h3></p>\n") + 1293 i18n("<p><h3>In event/todo viewer:</h3></p>\n") +
1268 i18n("<p><b>I,C</b>: Close dialog.</p>\n")+ 1294 i18n("<p><b>I,C</b>: Close dialog.</p>\n")+
1269 i18n("<p><b>A</b>: Show agenda view.</p>\n")+ 1295 i18n("<p><b>A</b>: Show agenda view.</p>\n")+
1270 i18n("<p><b>E</b>: Edit item</p>\n") + 1296 i18n("<p><b>E</b>: Edit item</p>\n") +
1271 i18n("<p><h2>KO/Pi icon colors:</h2></p>\n") + 1297 i18n("<p><h2>KO/Pi icon colors:</h2></p>\n") +
1272 i18n("<p><b>(for square icons in agenda and month view)</b></p>\n") + 1298 i18n("<p><b>(for square icons in agenda and month view)</b></p>\n") +
1273 i18n("<p><b>Cross</b>: Item cancelled.([c] in Whats'Next view)</p>\n")+ 1299 i18n("<p><b>Cross</b>: Item cancelled.([c] in Whats'Next view)</p>\n")+
1274 i18n("<p><b>Red</b>: Alarm set.([a] in Whats'Next view)</p>\n")+ 1300 i18n("<p><b>Red</b>: Alarm set.([a] in Whats'Next view)</p>\n")+
1275 i18n("<p><b>Blue</b>: Recurrent event.([r] in Whats'Next view)</p>\n")+ 1301 i18n("<p><b>Blue</b>: Recurrent event.([r] in Whats'Next view)</p>\n")+
1276 i18n("<p><b>Dark green</b>: Information(description) available.([i] in WN view)</p>\n")+ 1302 i18n("<p><b>Dark green</b>: Information(description) available.([i] in WN view)</p>\n")+
1277 i18n("<p><b>Black</b>: Event/todo with attendees. You are the organizer!</p>\n")+ 1303 i18n("<p><b>Black</b>: Event/todo with attendees. You are the organizer!</p>\n")+
1278 i18n("<p><b>Dark yellow</b>: Event/todo with attendees.</p>\n") + 1304 i18n("<p><b>Dark yellow</b>: Event/todo with attendees.</p>\n") +
1279 i18n("<p><b>White</b>: Item readonly</p>\n"); 1305 i18n("<p><b>White</b>: Item readonly</p>\n");
1280 displayText( text, cap); 1306 displayText( text, cap);
1281} 1307}
1282void MainWindow::aboutAutoSaving() 1308void MainWindow::aboutAutoSaving()
1283{ 1309{
1284 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"); 1310 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");
1285 1311
1286 KApplication::showText( i18n("Auto Saving in KOrganizer/Pi"), text); 1312 KApplication::showText( i18n("Auto Saving in KOrganizer/Pi"), text);
1287 1313
1288} 1314}
1289void MainWindow::aboutKnownBugs() 1315void MainWindow::aboutKnownBugs()
1290{ 1316{
1291 QMessageBox* msg; 1317 QMessageBox* msg;
1292 msg = new QMessageBox( i18n("Known Problems in KOrganizer/Pi"), 1318 msg = new QMessageBox( i18n("Known Problems in KOrganizer/Pi"),
1293 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")+ 1319 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")+
1294 i18n("2) Audio alarm daemon\nfor Zaurus is available!\nas an additional small application\n")+ 1320 i18n("2) Audio alarm daemon\nfor Zaurus is available!\nas an additional small application\n")+
1295 i18n("\nPlease report unexpected behaviour to\nlutz@pi-sync.net\n") + 1321 i18n("\nPlease report unexpected behaviour to\nlutz@pi-sync.net\n") +
1296 i18n("\nor report them in the bugtracker on\n") + 1322 i18n("\nor report them in the bugtracker on\n") +
1297 i18n("\nhttp://sourceforge.net/projects/kdepimpi\n"), 1323 i18n("\nhttp://sourceforge.net/projects/kdepimpi\n"),
1298 QMessageBox::NoIcon, 1324 QMessageBox::NoIcon,
1299 QMessageBox::Ok, 1325 QMessageBox::Ok,
1300 QMessageBox::NoButton, 1326 QMessageBox::NoButton,
1301 QMessageBox::NoButton); 1327 QMessageBox::NoButton);
1302 msg->exec(); 1328 msg->exec();
1303 delete msg; 1329 delete msg;
1304 1330
1305} 1331}
1306 1332
1307QString MainWindow::defaultFileName() 1333QString MainWindow::defaultFileName()
1308{ 1334{
1309 return locateLocal( "data", "korganizer/mycalendar.ics" ); 1335 return locateLocal( "data", "korganizer/mycalendar.ics" );
1310} 1336}
1311QString MainWindow::syncFileName() 1337QString MainWindow::syncFileName()
1312{ 1338{
1313#ifdef DESKTOP_VERSION 1339#ifdef DESKTOP_VERSION
1314 return locateLocal( "tmp", "synccalendar.ics" ); 1340 return locateLocal( "tmp", "synccalendar.ics" );
1315#else 1341#else
1316 return QString( "/tmp/synccalendar.ics" ); 1342 return QString( "/tmp/synccalendar.ics" );
1317#endif 1343#endif
1318} 1344}
1345void MainWindow::updateWeek(QDate seda)
1346{
1347 int weekNum = 0;
1348 QDate d = QDate ( seda.year(), 1,1);
1349 seda = seda.addDays( 1-seda.dayOfWeek() );//we are on monday
1350 if ( seda.addDays(6).year() != seda.year() ) {
1351 if ( seda.year() != d.year() ) {
1352 if ( d.dayOfWeek() > 4 )
1353 d = QDate ( seda.year(), 1,1);
1354 else
1355 weekNum = 1;
1356 } else {
1357 QDate dd( seda.year()+1, 1,1);
1358 if ( dd.dayOfWeek() <= 4 )
1359 weekNum = 1;
1360 }
1361 }
1362 if ( weekNum == 0 ){
1363 int dow = d.dayOfWeek();
1364 if ( dow <= 4 )
1365 d = d.addDays( 1-dow );
1366 else // 5,6,7
1367 d = d.addDays( 8-dow );
1368 // we have the first week of the year.we are on monday
1369 weekNum = d.daysTo( seda ) / 7 +1;
1370 }
1371 //qDebug("weeknum %s ", QString::number( weekNum).latin1());
1372 menuBarWeek-> changeItem(1, QString::number( weekNum) );
1319 1373
1374}
1375void MainWindow::updateWeekNum(const DateList &selectedDates)
1376{
1377 updateWeek( selectedDates.first() );
1378}
1320void MainWindow::processIncidenceSelection( Incidence *incidence ) 1379void MainWindow::processIncidenceSelection( Incidence *incidence )
1321{ 1380{
1381
1322 if ( !incidence ) { 1382 if ( !incidence ) {
1323 enableIncidenceActions( false ); 1383 enableIncidenceActions( false );
1324 1384
1325 mNewSubTodoAction->setEnabled( false ); 1385 mNewSubTodoAction->setEnabled( false );
1326 setCaptionToDates(); 1386 setCaptionToDates();
1327 return; 1387 return;
1328 1388
1329 } 1389 }
1330 1390
1331 //KGlobal::locale()->formatDateTime(nextA, true); 1391 //KGlobal::locale()->formatDateTime(nextA, true);
1332 QString startString = ""; 1392 QString startString = "";
1333 if ( incidence->type() != "Todo" ) { 1393 if ( incidence->type() != "Todo" ) {
1334 if ( incidence->dtStart().date() < incidence->dtEnd().date() ) { 1394 if ( incidence->dtStart().date() < incidence->dtEnd().date() ) {
1335 if ( incidence->doesFloat() ) { 1395 if ( incidence->doesFloat() ) {
1336 startString += ": "+incidence->dtStartDateStr( true ); 1396 startString += ": "+incidence->dtStartDateStr( true );
1337 startString += " --- "+((Event*)incidence)->dtEndDateStr( true ); 1397 startString += " --- "+((Event*)incidence)->dtEndDateStr( true );
1338 1398
1339 } else { 1399 } else {
1340 startString = ": "+incidence->dtStartStr(true); 1400 startString = ": "+incidence->dtStartStr(true);
1341 startString += " --- "+((Event*)incidence)->dtEndStr(true); 1401 startString += " --- "+((Event*)incidence)->dtEndStr(true);
1342 1402
1343 } 1403 }
1344 1404
1345 } else { 1405 } else {
1346 if ( incidence->dtStart().time() != incidence->dtEnd().time() ) 1406 if ( incidence->dtStart().time() != incidence->dtEnd().time() )
1347 startString = ": "+KGlobal::locale()->formatTime(incidence->dtStart().time())+ 1407 startString = ": "+KGlobal::locale()->formatTime(incidence->dtStart().time())+
1348 "-"+KGlobal::locale()->formatTime(incidence->dtEnd().time()); 1408 "-"+KGlobal::locale()->formatTime(incidence->dtEnd().time());
1349 if ( incidence->categories().contains( i18n("Birthday") ) || incidence->categories().contains( i18n("Anniversary") ) ) { 1409 if ( incidence->categories().contains( i18n("Birthday") ) || incidence->categories().contains( i18n("Anniversary") ) ) {
1350 bool ok; 1410 bool ok;
1351 QDateTime noc = incidence->getNextOccurence( mView->startDate().addDays(-1), &ok ); 1411 QDateTime noc = incidence->getNextOccurence( mView->startDate().addDays(-1), &ok );
1352 if ( ok ) { 1412 if ( ok ) {
1353 int years = noc.date().year() - incidence->dtStart().date().year(); 1413 int years = noc.date().year() - incidence->dtStart().date().year();
1354 startString += i18n(" (%1 y.)"). arg( years ); 1414 startString += i18n(" (%1 y.)"). arg( years );
1355 } 1415 }
1356 } 1416 }
1357 else 1417 else
1358 startString +=" "+KGlobal::locale()->formatDate( incidence->dtStart().date(), true); 1418 startString +=" "+KGlobal::locale()->formatDate( incidence->dtStart().date(), true);
1359 } 1419 }
1360 1420
1361 } 1421 }
1362 else 1422 else
1363 startString = i18n(": (Prio ") +QString::number( (( KCal::Todo*)incidence)->priority() ) +") "+QString::number( (( KCal::Todo*)incidence)->percentComplete() ) +i18n("\% completed"); 1423 startString = i18n(": (Prio ") +QString::number( (( KCal::Todo*)incidence)->priority() ) +") "+QString::number( (( KCal::Todo*)incidence)->percentComplete() ) +i18n("\% completed");
1364 if ( !incidence->location().isEmpty() ) 1424 if ( !incidence->location().isEmpty() )
1365 startString += " (" +incidence->location()+")"; 1425 startString += " (" +incidence->location()+")";
1366 setCaption( incidence->summary()+startString); 1426 setCaption( incidence->summary()+startString);
1367 1427
1368 enableIncidenceActions( true ); 1428 enableIncidenceActions( true );
1369 1429
1370 if ( incidence->type() == "Event" ) { 1430 if ( incidence->type() == "Event" ) {
1371 mShowAction->setText( i18n("Show Event...") ); 1431 mShowAction->setText( i18n("Show Event...") );
1372 mEditAction->setText( i18n("Edit Event...") ); 1432 mEditAction->setText( i18n("Edit Event...") );
1373 mDeleteAction->setText( i18n("Delete Event...") ); 1433 mDeleteAction->setText( i18n("Delete Event...") );
1374 1434
1375 mNewSubTodoAction->setEnabled( false ); 1435 mNewSubTodoAction->setEnabled( false );
1376 } else if ( incidence->type() == "Todo" ) { 1436 } else if ( incidence->type() == "Todo" ) {
1377 mShowAction->setText( i18n("Show Todo...") ); 1437 mShowAction->setText( i18n("Show Todo...") );
1378 mEditAction->setText( i18n("Edit Todo...") ); 1438 mEditAction->setText( i18n("Edit Todo...") );
1379 mDeleteAction->setText( i18n("Delete Todo...") ); 1439 mDeleteAction->setText( i18n("Delete Todo...") );
1380 1440
1381 mNewSubTodoAction->setEnabled( true ); 1441 mNewSubTodoAction->setEnabled( true );
1382 } else { 1442 } else {
1383 mShowAction->setText( i18n("Show...") ); 1443 mShowAction->setText( i18n("Show...") );
1384 mShowAction->setText( i18n("Edit...") ); 1444 mShowAction->setText( i18n("Edit...") );
1385 mShowAction->setText( i18n("Delete...") ); 1445 mShowAction->setText( i18n("Delete...") );
1386 1446
1387 mNewSubTodoAction->setEnabled( false ); 1447 mNewSubTodoAction->setEnabled( false );
1388 } 1448 }
1389} 1449}
1390 1450
1391void MainWindow::enableIncidenceActions( bool enabled ) 1451void MainWindow::enableIncidenceActions( bool enabled )
1392{ 1452{
1393 mShowAction->setEnabled( enabled ); 1453 mShowAction->setEnabled( enabled );
1394 mEditAction->setEnabled( enabled ); 1454 mEditAction->setEnabled( enabled );
1395 mDeleteAction->setEnabled( enabled ); 1455 mDeleteAction->setEnabled( enabled );
1396 1456
1397 mCloneAction->setEnabled( enabled ); 1457 mCloneAction->setEnabled( enabled );
1398 mMoveAction->setEnabled( enabled ); 1458 mMoveAction->setEnabled( enabled );
1399 mBeamAction->setEnabled( enabled ); 1459 mBeamAction->setEnabled( enabled );
1400 mCancelAction->setEnabled( enabled ); 1460 mCancelAction->setEnabled( enabled );
1401} 1461}
1402 1462
1403void MainWindow::importOL() 1463void MainWindow::importOL()
1404{ 1464{
1405#ifdef _OL_IMPORT_ 1465#ifdef _OL_IMPORT_
1406 KOImportOLdialog *id = new KOImportOLdialog("Import from OL - select folder!" , mView->calendar(),this ); 1466 KOImportOLdialog *id = new KOImportOLdialog("Import from OL - select folder!" , mView->calendar(),this );
1407 id->exec(); 1467 id->exec();
1408 delete id; 1468 delete id;
1409 mView->updateView(); 1469 mView->updateView();
1410#endif 1470#endif
1411} 1471}
1412void MainWindow::importBday() 1472void MainWindow::importBday()
1413{ 1473{
1414 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), 1474 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),
1415 i18n("When importing birthdays twice\nduplicated events will be ignored,\nif the event has not been\nchanged in KO/Pi!\n"), 1475 i18n("When importing birthdays twice\nduplicated events will be ignored,\nif the event has not been\nchanged in KO/Pi!\n"),
1416 i18n("Import!"), i18n("Cancel"), 0, 1476 i18n("Import!"), i18n("Cancel"), 0,
1417 0, 1 ); 1477 0, 1 );