summaryrefslogtreecommitdiff
path: root/core/pim/datebook/datebook.cpp
Unidiff
Diffstat (limited to 'core/pim/datebook/datebook.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/datebook/datebook.cpp85
1 files changed, 47 insertions, 38 deletions
diff --git a/core/pim/datebook/datebook.cpp b/core/pim/datebook/datebook.cpp
index 9880e2d..92dbdc8 100644
--- a/core/pim/datebook/datebook.cpp
+++ b/core/pim/datebook/datebook.cpp
@@ -147,49 +147,48 @@ DateBook::DateBook( QWidget *parent, const char *, WFlags f )
147 a->addTo( sub_bar ); 147 a->addTo( sub_bar );
148 a->addTo( view ); 148 a->addTo( view );
149 a->setToggleAction( TRUE ); 149 a->setToggleAction( TRUE );
150 weekLstAction = a; 150 weekLstAction = a;
151 151
152 a = new QAction( tr( "Month" ), Resource::loadPixmap( "month" ), QString::null, 0, g, 0 ); 152 a = new QAction( tr( "Month" ), Resource::loadPixmap( "month" ), QString::null, 0, g, 0 );
153 connect( a, SIGNAL( activated() ), this, SLOT( viewMonth() ) ); 153 connect( a, SIGNAL( activated() ), this, SLOT( viewMonth() ) );
154 a->addTo( sub_bar ); 154 a->addTo( sub_bar );
155 a->addTo( view ); 155 a->addTo( view );
156 a->setToggleAction( TRUE ); 156 a->setToggleAction( TRUE );
157 monthAction = a; 157 monthAction = a;
158 158
159 a = new QAction( tr( "Find" ), Resource::loadPixmap( "mag" ), QString::null, 0, g, 0 ); 159 a = new QAction( tr( "Find" ), Resource::loadPixmap( "mag" ), QString::null, 0, g, 0 );
160 connect( a, SIGNAL(activated()), this, SLOT(slotFind()) ); 160 connect( a, SIGNAL(activated()), this, SLOT(slotFind()) );
161 a->addTo( sub_bar ); 161 a->addTo( sub_bar );
162 162
163 a = new QAction( tr( "Alarm and Start Time..." ), QString::null, 0, 0 ); 163 a = new QAction( tr( "Alarm and Start Time..." ), QString::null, 0, 0 );
164 connect( a, SIGNAL( activated() ), this, SLOT( slotSettings() ) ); 164 connect( a, SIGNAL( activated() ), this, SLOT( slotSettings() ) );
165 a->addTo( settings ); 165 a->addTo( settings );
166 166
167 QPopupMenu *default_view = new QPopupMenu(this); 167 QPopupMenu *default_view = new QPopupMenu(this);
168 settings->insertItem( tr( "Default View" ),default_view ); 168 settings->insertItem( tr( "Default View" ),default_view );
169 default_view->setCheckable(TRUE); 169 default_view->setCheckable(TRUE);
170 170
171
172 Config config("DateBook"); 171 Config config("DateBook");
173 config.setGroup("Main"); 172 config.setGroup("Main");
174 int current=config.readNumEntry("defaultview", DAY); 173 int current=config.readNumEntry("defaultview", DAY);
175 174
176 QActionGroup *ag = new QActionGroup(this); 175 QActionGroup *ag = new QActionGroup(this);
177 a = new QAction( tr( "Day" ), QString::null, 0, 0, 0, true ); 176 a = new QAction( tr( "Day" ), QString::null, 0, 0, 0, true );
178 if (current==DAY) a->setOn(true), viewDay(); 177 if (current==DAY) a->setOn(true), viewDay();
179 ag->insert(a); 178 ag->insert(a);
180 a = new QAction( tr( "Week" ), QString::null, 0, 0, 0, true ); 179 a = new QAction( tr( "Week" ), QString::null, 0, 0, 0, true );
181 if (current==WEEK) a->setOn(true), viewWeek(); 180 if (current==WEEK) a->setOn(true), viewWeek();
182 ag->insert(a); 181 ag->insert(a);
183 a = new QAction( tr( "WeekLst" ), QString::null, 0, 0, 0, true ); 182 a = new QAction( tr( "WeekLst" ), QString::null, 0, 0, 0, true );
184 if (current==WEEKLST) a->setOn(true), viewWeekLst(); 183 if (current==WEEKLST) a->setOn(true), viewWeekLst();
185 ag->insert(a); 184 ag->insert(a);
186 a = new QAction( tr( "Month" ), QString::null, 0, 0, 0, true ); 185 a = new QAction( tr( "Month" ), QString::null, 0, 0, 0, true );
187 if (current==MONTH) a->setOn(true), viewMonth(); 186 if (current==MONTH) a->setOn(true), viewMonth();
188 ag->insert(a); 187 ag->insert(a);
189 188
190 ag->addTo(default_view); 189 ag->addTo(default_view);
191 connect(ag, SIGNAL( selected ( QAction * ) ), 190 connect(ag, SIGNAL( selected ( QAction * ) ),
192 this, SLOT( newDefaultView(QAction *) ) 191 this, SLOT( newDefaultView(QAction *) )
193 ); 192 );
194 193
195 connect( qApp, SIGNAL(clockChanged(bool)), 194 connect( qApp, SIGNAL(clockChanged(bool)),
@@ -291,85 +290,98 @@ QString DateBook::checkEvent(const Event &e)
291 if(checkFailed) 290 if(checkFailed)
292 return tr("Event duration is potentially longer\n" 291 return tr("Event duration is potentially longer\n"
293 "than interval between repeats."); 292 "than interval between repeats.");
294 293
295 return QString::null; 294 return QString::null;
296} 295}
297 296
298QDate DateBook::currentDate() 297QDate DateBook::currentDate()
299{ 298{
300 QDate d = QDate::currentDate(); 299 QDate d = QDate::currentDate();
301 300
302 if ( dayView && views->visibleWidget() == dayView ) { 301 if ( dayView && views->visibleWidget() == dayView ) {
303 d = dayView->date(); 302 d = dayView->date();
304 } else if ( weekView && views->visibleWidget() == weekView ) { 303 } else if ( weekView && views->visibleWidget() == weekView ) {
305 d = weekView->date(); 304 d = weekView->date();
306 } else if ( weekLstView && views->visibleWidget() == weekLstView ) { 305 } else if ( weekLstView && views->visibleWidget() == weekLstView ) {
307 d = weekLstView->date(); 306 d = weekLstView->date();
308 } else if ( monthView && views->visibleWidget() == monthView ) { 307 } else if ( monthView && views->visibleWidget() == monthView ) {
309 d = monthView->selectedDate(); 308 d = monthView->selectedDate();
310 } 309 }
311 310
312 return d; 311 return d;
313} 312}
314 313
315void DateBook::viewDay() 314void DateBook::view(int v, const QDate &d) {
316{ 315 if (v==DAY) {
317 initDay(); 316 initDay();
318 dayAction->setOn( TRUE ); 317 dayAction->setOn( TRUE );
319 QDate d = currentDate(); 318 dayView->setDate( d );
320 dayView->setDate( d ); 319 views->raiseWidget( dayView );
321 views->raiseWidget( dayView ); 320 dayView->redraw();
322 dayView->redraw(); 321 } else if (v==WEEK) {
322 initWeek();
323 weekAction->setOn( TRUE );
324 weekView->setDate( d );
325 views->raiseWidget( weekView );
326 weekView->redraw();
327 } else if (v==WEEKLST) {
328 initWeekLst();
329 weekLstAction->setOn( TRUE );
330 weekLstView->setDate(d);
331 views->raiseWidget( weekLstView );
332 weekLstView->redraw();
333 } else if (v==MONTH) {
334 initMonth();
335 monthAction->setOn( TRUE );
336 monthView->setDate( d.year(), d.month(), d.day() );
337 views->raiseWidget( monthView );
338 monthView->redraw();
339 }
323} 340}
324 341
325void DateBook::viewWeek() 342void DateBook::viewDefault(const QDate &d) {
326{ 343 Config config("DateBook");
327 initWeek(); 344 config.setGroup("Main");
328 weekAction->setOn( TRUE ); 345 int current=config.readNumEntry("defaultview", DAY);
329 QDate d = currentDate(); 346
330 weekView->setDate( d ); 347 view(current,d);
331 views->raiseWidget( weekView ); 348}
332 weekView->redraw(); 349
350void DateBook::viewDay() {
351 view(DAY,currentDate());
352}
353
354void DateBook::viewWeek() {
355 view(WEEK,currentDate());
333} 356}
334 357
335void DateBook::viewWeekLst() { 358void DateBook::viewWeekLst() {
336 initWeekLst(); 359 view(WEEKLST,currentDate());
337 weekLstAction->setOn( TRUE );
338 QDate d=currentDate();
339 weekLstView->setDate(d);
340 views->raiseWidget( weekLstView );
341 weekLstView->redraw();
342} 360}
343 361
344void DateBook::viewMonth() 362void DateBook::viewMonth() {
345{ 363 view(MONTH,currentDate());
346 initMonth();
347 monthAction->setOn( TRUE );
348 QDate d = currentDate();
349 monthView->setDate( d.year(), d.month(), d.day() );
350 views->raiseWidget( monthView );
351 monthView->redraw();
352} 364}
353 365
354void DateBook::editEvent( const Event &e ) 366void DateBook::editEvent( const Event &e )
355{ 367{
356 if (syncing) { 368 if (syncing) {
357 QMessageBox::warning( this, tr("Calendar"), 369 QMessageBox::warning( this, tr("Calendar"),
358 tr( "Can not edit data, currently syncing") ); 370 tr( "Can not edit data, currently syncing") );
359 return; 371 return;
360 } 372 }
361 373
362 // workaround added for text input. 374 // workaround added for text input.
363 QDialog editDlg( this, 0, TRUE ); 375 QDialog editDlg( this, 0, TRUE );
364 DateEntry *entry; 376 DateEntry *entry;
365 editDlg.setCaption( tr("Edit Event") ); 377 editDlg.setCaption( tr("Edit Event") );
366 QVBoxLayout *vb = new QVBoxLayout( &editDlg ); 378 QVBoxLayout *vb = new QVBoxLayout( &editDlg );
367 QScrollView *sv = new QScrollView( &editDlg, "scrollview" ); 379 QScrollView *sv = new QScrollView( &editDlg, "scrollview" );
368 sv->setResizePolicy( QScrollView::AutoOneFit ); 380 sv->setResizePolicy( QScrollView::AutoOneFit );
369 // KLUDGE!!! 381 // KLUDGE!!!
370 sv->setHScrollBarMode( QScrollView::AlwaysOff ); 382 sv->setHScrollBarMode( QScrollView::AlwaysOff );
371 vb->addWidget( sv ); 383 vb->addWidget( sv );
372 entry = new DateEntry( onMonday, e, ampm, &editDlg, "editor" ); 384 entry = new DateEntry( onMonday, e, ampm, &editDlg, "editor" );
373 entry->timezone->setEnabled( FALSE ); 385 entry->timezone->setEnabled( FALSE );
374 sv->addChild( entry ); 386 sv->addChild( entry );
375 387
@@ -397,52 +409,50 @@ void DateBook::removeEvent( const Event &e )
397 QMessageBox::warning( this, tr("Calendar"), 409 QMessageBox::warning( this, tr("Calendar"),
398 tr( "Can not edit data, currently syncing") ); 410 tr( "Can not edit data, currently syncing") );
399 return; 411 return;
400 } 412 }
401 413
402 QString strName = e.description(); 414 QString strName = e.description();
403 415
404 if ( !QPEMessageBox::confirmDelete( this, tr( "Calendar" ),strName ) ) 416 if ( !QPEMessageBox::confirmDelete( this, tr( "Calendar" ),strName ) )
405 return; 417 return;
406 418
407 db->removeEvent( e ); 419 db->removeEvent( e );
408 if ( views->visibleWidget() == dayView && dayView ) 420 if ( views->visibleWidget() == dayView && dayView )
409 dayView->redraw(); 421 dayView->redraw();
410} 422}
411 423
412void DateBook::addEvent( const Event &e ) 424void DateBook::addEvent( const Event &e )
413{ 425{
414 QDate d = e.start().date(); 426 QDate d = e.start().date();
415 initDay(); 427 initDay();
416 dayView->setDate( d ); 428 dayView->setDate( d );
417} 429}
418 430
419void DateBook::showDay( int year, int month, int day ) 431void DateBook::showDay( int year, int month, int day )
420{ 432{
421 initDay(); 433 QDate d(year, month, day);
422 dayView->setDate( year, month, day ); 434 view(DAY,d);
423 views->raiseWidget( dayView );
424 dayAction->setOn( TRUE );
425} 435}
426 436
427void DateBook::initDay() 437void DateBook::initDay()
428{ 438{
429 if ( !dayView ) { 439 if ( !dayView ) {
430 dayView = new DateBookDay( ampm, onMonday, db, views, "day view" ); 440 dayView = new DateBookDay( ampm, onMonday, db, views, "day view" );
431 views->addWidget( dayView, DAY ); 441 views->addWidget( dayView, DAY );
432 dayView->setStartViewTime( startTime ); 442 dayView->setStartViewTime( startTime );
433 connect( this, SIGNAL( newEvent() ), 443 connect( this, SIGNAL( newEvent() ),
434 dayView, SLOT( redraw() ) ); 444 dayView, SLOT( redraw() ) );
435 connect( dayView, SIGNAL( newEvent() ), 445 connect( dayView, SIGNAL( newEvent() ),
436 this, SLOT( fileNew() ) ); 446 this, SLOT( fileNew() ) );
437 connect( dayView, SIGNAL( removeEvent( const Event & ) ), 447 connect( dayView, SIGNAL( removeEvent( const Event & ) ),
438 this, SLOT( removeEvent( const Event & ) ) ); 448 this, SLOT( removeEvent( const Event & ) ) );
439 connect( dayView, SIGNAL( editEvent( const Event & ) ), 449 connect( dayView, SIGNAL( editEvent( const Event & ) ),
440 this, SLOT( editEvent( const Event & ) ) ); 450 this, SLOT( editEvent( const Event & ) ) );
441 connect( dayView, SIGNAL( beamEvent( const Event & ) ), 451 connect( dayView, SIGNAL( beamEvent( const Event & ) ),
442 this, SLOT( beamEvent( const Event & ) ) ); 452 this, SLOT( beamEvent( const Event & ) ) );
443 connect( dayView, SIGNAL(sigNewEvent(const QString &)), 453 connect( dayView, SIGNAL(sigNewEvent(const QString &)),
444 this, SLOT(slotNewEventFromKey(const QString &)) ); 454 this, SLOT(slotNewEventFromKey(const QString &)) );
445 } 455 }
446} 456}
447 457
448void DateBook::initWeek() 458void DateBook::initWeek()
@@ -668,51 +678,50 @@ void DateBook::timerEvent( QTimerEvent *e )
668 } else { 678 } else {
669 stop = 0; 679 stop = 0;
670 killTimer( e->timerId() ); 680 killTimer( e->timerId() );
671 } 681 }
672} 682}
673 683
674void DateBook::changeClock( bool newClock ) 684void DateBook::changeClock( bool newClock )
675{ 685{
676 ampm = newClock; 686 ampm = newClock;
677 // repaint the affected objects... 687 // repaint the affected objects...
678 if (dayView) dayView->redraw(); 688 if (dayView) dayView->redraw();
679 if (weekView) weekView->redraw(); 689 if (weekView) weekView->redraw();
680 if (weekLstView) weekLstView->redraw(); 690 if (weekLstView) weekLstView->redraw();
681} 691}
682 692
683void DateBook::changeWeek( bool m ) 693void DateBook::changeWeek( bool m )
684{ 694{
685 /* no need to redraw, each widget catches. Do need to 695 /* no need to redraw, each widget catches. Do need to
686 store though for widgets we haven't made yet */ 696 store though for widgets we haven't made yet */
687 onMonday = m; 697 onMonday = m;
688} 698}
689 699
690void DateBook::slotToday() 700void DateBook::slotToday()
691{ 701{
692 // we need to view today 702 // we need to view today using default view
693 QDate dt = QDate::currentDate(); 703 viewDefault(QDate::currentDate());
694 showDay( dt.year(), dt.month(), dt.day() );
695} 704}
696 705
697void DateBook::closeEvent( QCloseEvent *e ) 706void DateBook::closeEvent( QCloseEvent *e )
698{ 707{
699 if(syncing) { 708 if(syncing) {
700 /* no need to save, did that at flush */ 709 /* no need to save, did that at flush */
701 e->accept(); 710 e->accept();
702 return; 711 return;
703 } 712 }
704 713
705 // save settings will generate it's own error messages, no 714 // save settings will generate it's own error messages, no
706 // need to do checking ourselves. 715 // need to do checking ourselves.
707 saveSettings(); 716 saveSettings();
708 if ( db->save() ) 717 if ( db->save() )
709 e->accept(); 718 e->accept();
710 else { 719 else {
711 if ( QMessageBox::critical( this, tr( "Out of space" ), 720 if ( QMessageBox::critical( this, tr( "Out of space" ),
712 tr("Calendar was unable to save\n" 721 tr("Calendar was unable to save\n"
713 "your changes.\n" 722 "your changes.\n"
714 "Free up some space and try again.\n" 723 "Free up some space and try again.\n"
715 "\nQuit anyway?"), 724 "\nQuit anyway?"),
716 QMessageBox::Yes|QMessageBox::Escape, 725 QMessageBox::Yes|QMessageBox::Escape,
717 QMessageBox::No|QMessageBox::Default ) 726 QMessageBox::No|QMessageBox::Default )
718 != QMessageBox::No ) 727 != QMessageBox::No )