Diffstat (limited to 'core/pim/todo/mainwindow.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | core/pim/todo/mainwindow.cpp | 98 |
1 files changed, 48 insertions, 50 deletions
diff --git a/core/pim/todo/mainwindow.cpp b/core/pim/todo/mainwindow.cpp index fc189bd..0613f2c 100644 --- a/core/pim/todo/mainwindow.cpp +++ b/core/pim/todo/mainwindow.cpp | |||
@@ -27,8 +27,22 @@ | |||
27 | */ | 27 | */ |
28 | 28 | ||
29 | #include <unistd.h> | 29 | #include <unistd.h> |
30 | 30 | ||
31 | #include <opie2/opimrecurrence.h> | ||
32 | #include <opie2/opimnotifymanager.h> | ||
33 | #include <opie2/otodoaccessvcal.h> | ||
34 | #include <opie2/oapplicationfactory.h> | ||
35 | |||
36 | #include <qpe/applnk.h> | ||
37 | #include <qpe/config.h> | ||
38 | #include <qpe/ir.h> | ||
39 | #include <qpe/resource.h> | ||
40 | #include <qpe/qpemessagebox.h> | ||
41 | #include <qpe/alarmserver.h> | ||
42 | #include <qpe/timestring.h> | ||
43 | #include <qpe/qpeapplication.h> | ||
44 | |||
31 | #include <qmenubar.h> | 45 | #include <qmenubar.h> |
32 | #include <qmessagebox.h> | 46 | #include <qmessagebox.h> |
33 | #include <qtoolbar.h> | 47 | #include <qtoolbar.h> |
34 | #include <qpopupmenu.h> | 48 | #include <qpopupmenu.h> |
@@ -40,24 +54,8 @@ | |||
40 | #include <qlayout.h> | 54 | #include <qlayout.h> |
41 | #include <qlineedit.h> | 55 | #include <qlineedit.h> |
42 | #include <qwhatsthis.h> | 56 | #include <qwhatsthis.h> |
43 | 57 | ||
44 | #include <qpe/applnk.h> | ||
45 | #include <qpe/config.h> | ||
46 | #include <qpe/ir.h> | ||
47 | #include <qpe/resource.h> | ||
48 | #include <qpe/qpemessagebox.h> | ||
49 | #include <qpe/alarmserver.h> | ||
50 | #include <qpe/timestring.h> | ||
51 | #include <qpe/qpeapplication.h> | ||
52 | |||
53 | #include <opie/orecur.h> | ||
54 | #include <opie/opimnotifymanager.h> | ||
55 | #include <opie/otodoaccessvcal.h> | ||
56 | #include <opie/owidgetstack.h> | ||
57 | |||
58 | #include <opie/oapplicationfactory.h> | ||
59 | |||
60 | #include "quickeditimpl.h" | 58 | #include "quickeditimpl.h" |
61 | #include "todotemplatemanager.h" | 59 | #include "todotemplatemanager.h" |
62 | #include "templateeditor.h" | 60 | #include "templateeditor.h" |
63 | #include "tableview.h" | 61 | #include "tableview.h" |
@@ -309,12 +307,12 @@ QPopupMenu* MainWindow::edit() { | |||
309 | } | 307 | } |
310 | QToolBar* MainWindow::toolbar() { | 308 | QToolBar* MainWindow::toolbar() { |
311 | return m_tool; | 309 | return m_tool; |
312 | } | 310 | } |
313 | OTodoAccess::List MainWindow::list()const { | 311 | OPimTodoAccess::List MainWindow::list()const { |
314 | return m_todoMgr.list(); | 312 | return m_todoMgr.list(); |
315 | } | 313 | } |
316 | OTodoAccess::List MainWindow::sorted( bool asc, int sortOrder ) { | 314 | OPimTodoAccess::List MainWindow::sorted( bool asc, int sortOrder ) { |
317 | int cat = 0; | 315 | int cat = 0; |
318 | if ( m_curCat != QWidget::tr("All Categories") ) | 316 | if ( m_curCat != QWidget::tr("All Categories") ) |
319 | cat = currentCatId(); | 317 | cat = currentCatId(); |
320 | if ( m_curCat == QWidget::tr("Unfiled") ) | 318 | if ( m_curCat == QWidget::tr("Unfiled") ) |
@@ -330,9 +328,9 @@ OTodoAccess::List MainWindow::sorted( bool asc, int sortOrder ) { | |||
330 | filter |= 2; | 328 | filter |= 2; |
331 | 329 | ||
332 | return m_todoMgr.sorted( asc, sortOrder, filter, cat ); | 330 | return m_todoMgr.sorted( asc, sortOrder, filter, cat ); |
333 | } | 331 | } |
334 | OTodoAccess::List MainWindow::sorted( bool asc, int sortOrder, int addFilter) { | 332 | OPimTodoAccess::List MainWindow::sorted( bool asc, int sortOrder, int addFilter) { |
335 | int cat = 0; | 333 | int cat = 0; |
336 | if ( m_curCat != QWidget::tr("All Categories") ) | 334 | if ( m_curCat != QWidget::tr("All Categories") ) |
337 | cat = currentCatId(); | 335 | cat = currentCatId(); |
338 | 336 | ||
@@ -340,9 +338,9 @@ OTodoAccess::List MainWindow::sorted( bool asc, int sortOrder, int addFilter) { | |||
340 | cat = -1; | 338 | cat = -1; |
341 | 339 | ||
342 | return m_todoMgr.sorted(asc, sortOrder, addFilter, cat ); | 340 | return m_todoMgr.sorted(asc, sortOrder, addFilter, cat ); |
343 | } | 341 | } |
344 | OTodo MainWindow::event( int uid ) { | 342 | OPimTodo MainWindow::event( int uid ) { |
345 | return m_todoMgr.event( uid ); | 343 | return m_todoMgr.event( uid ); |
346 | } | 344 | } |
347 | bool MainWindow::isSyncing()const { | 345 | bool MainWindow::isSyncing()const { |
348 | return m_syncing; | 346 | return m_syncing; |
@@ -432,16 +430,16 @@ void MainWindow::populateTemplates() { | |||
432 | */ | 430 | */ |
433 | void MainWindow::slotNewFromTemplate( int id ) { | 431 | void MainWindow::slotNewFromTemplate( int id ) { |
434 | QString name = m_template->text( id ); | 432 | QString name = m_template->text( id ); |
435 | 433 | ||
436 | OTodo event = templateManager()->templateEvent( name ); | 434 | OPimTodo event = templateManager()->templateEvent( name ); |
437 | event = currentEditor()->edit(this, | 435 | event = currentEditor()->edit(this, |
438 | event ); | 436 | event ); |
439 | 437 | ||
440 | if ( currentEditor()->accepted() ) { | 438 | if ( currentEditor()->accepted() ) { |
441 | /* assign new todo */ | 439 | /* assign new todo */ |
442 | event.setUid( 1 ); | 440 | event.setUid( 1 ); |
443 | handleAlarms( OTodo(), event ); | 441 | handleAlarms( OPimTodo(), event ); |
444 | m_todoMgr.add( event ); | 442 | m_todoMgr.add( event ); |
445 | currentView()->addEvent( event ); | 443 | currentView()->addEvent( event ); |
446 | 444 | ||
447 | populateCategories(); | 445 | populateCategories(); |
@@ -456,9 +454,9 @@ void MainWindow::slotDuplicate() { | |||
456 | QMessageBox::warning(this, QWidget::tr("Todo"), | 454 | QMessageBox::warning(this, QWidget::tr("Todo"), |
457 | QWidget::tr("Data can not be edited, currently syncing")); | 455 | QWidget::tr("Data can not be edited, currently syncing")); |
458 | return; | 456 | return; |
459 | } | 457 | } |
460 | OTodo ev = m_todoMgr.event( currentView()->current() ); | 458 | OPimTodo ev = m_todoMgr.event( currentView()->current() ); |
461 | /* let's generate a new uid */ | 459 | /* let's generate a new uid */ |
462 | ev.setUid(1); | 460 | ev.setUid(1); |
463 | m_todoMgr.add( ev ); | 461 | m_todoMgr.add( ev ); |
464 | 462 | ||
@@ -477,9 +475,9 @@ void MainWindow::slotDelete() { | |||
477 | QString strName = currentView()->currentRepresentation(); | 475 | QString strName = currentView()->currentRepresentation(); |
478 | if (!QPEMessageBox::confirmDelete(this, QWidget::tr("Todo"), strName ) ) | 476 | if (!QPEMessageBox::confirmDelete(this, QWidget::tr("Todo"), strName ) ) |
479 | return; | 477 | return; |
480 | 478 | ||
481 | handleAlarms( m_todoMgr.event( currentView()->current() ), OTodo() ); | 479 | handleAlarms( m_todoMgr.event( currentView()->current() ), OPimTodo() ); |
482 | m_todoMgr.remove( currentView()->current() ); | 480 | m_todoMgr.remove( currentView()->current() ); |
483 | currentView()->removeEvent( currentView()->current() ); | 481 | currentView()->removeEvent( currentView()->current() ); |
484 | raiseCurrentView(); | 482 | raiseCurrentView(); |
485 | } | 483 | } |
@@ -489,13 +487,13 @@ void MainWindow::slotDelete(int uid ) { | |||
489 | QMessageBox::warning(this, QWidget::tr("Todo"), | 487 | QMessageBox::warning(this, QWidget::tr("Todo"), |
490 | QWidget::tr("Data can not be edited, currently syncing")); | 488 | QWidget::tr("Data can not be edited, currently syncing")); |
491 | return; | 489 | return; |
492 | } | 490 | } |
493 | OTodo to = m_todoMgr.event(uid); | 491 | OPimTodo to = m_todoMgr.event(uid); |
494 | if (!QPEMessageBox::confirmDelete(this, QWidget::tr("Todo"), to.toShortText() ) ) | 492 | if (!QPEMessageBox::confirmDelete(this, QWidget::tr("Todo"), to.toShortText() ) ) |
495 | return; | 493 | return; |
496 | 494 | ||
497 | handleAlarms(to, OTodo() ); | 495 | handleAlarms(to, OPimTodo() ); |
498 | m_todoMgr.remove( to.uid() ); | 496 | m_todoMgr.remove( to.uid() ); |
499 | currentView()->removeEvent( to.uid() ); | 497 | currentView()->removeEvent( to.uid() ); |
500 | raiseCurrentView(); | 498 | raiseCurrentView(); |
501 | } | 499 | } |
@@ -596,22 +594,22 @@ void MainWindow::beamDone( Ir* ir) { | |||
596 | delete ir; | 594 | delete ir; |
597 | ::unlink( beamfile ); | 595 | ::unlink( beamfile ); |
598 | } | 596 | } |
599 | void MainWindow::receiveFile( const QString& filename ) { | 597 | void MainWindow::receiveFile( const QString& filename ) { |
600 | OTodoAccessVCal* cal = new OTodoAccessVCal(filename ); | 598 | OPimTodoAccessVCal* cal = new OPimTodoAccessVCal(filename ); |
601 | 599 | ||
602 | OTodoAccess acc( cal ); | 600 | OPimTodoAccess acc( cal ); |
603 | acc.load(); | 601 | acc.load(); |
604 | OTodoAccess::List list = acc.allRecords(); | 602 | OPimTodoAccess::List list = acc.allRecords(); |
605 | 603 | ||
606 | if (list.count()){ | 604 | if (list.count()){ |
607 | 605 | ||
608 | QString message = QWidget::tr("<P>%1 new tasks arrived.<p>Would you like to add them to your Todolist?").arg(list.count() ); | 606 | QString message = QWidget::tr("<P>%1 new tasks arrived.<p>Would you like to add them to your Todolist?").arg(list.count() ); |
609 | 607 | ||
610 | if ( QMessageBox::information(this, QWidget::tr("New Tasks"), | 608 | if ( QMessageBox::information(this, QWidget::tr("New Tasks"), |
611 | message, QMessageBox::Ok, | 609 | message, QMessageBox::Ok, |
612 | QMessageBox::Cancel ) == QMessageBox::Ok ) { | 610 | QMessageBox::Cancel ) == QMessageBox::Ok ) { |
613 | OTodoAccess::List::Iterator it; | 611 | OPimTodoAccess::List::Iterator it; |
614 | for ( it = list.begin(); it != list.end(); ++it ) | 612 | for ( it = list.begin(); it != list.end(); ++it ) |
615 | m_todoMgr.add( (*it) ); | 613 | m_todoMgr.add( (*it) ); |
616 | 614 | ||
617 | currentView()->updateView(); | 615 | currentView()->updateView(); |
@@ -707,11 +705,11 @@ void MainWindow::slotEdit( int uid ) { | |||
707 | QWidget::tr("Data can't be edited, currently syncing")); | 705 | QWidget::tr("Data can't be edited, currently syncing")); |
708 | return; | 706 | return; |
709 | } | 707 | } |
710 | 708 | ||
711 | OTodo old_todo = m_todoMgr.event( uid ); | 709 | OPimTodo old_todo = m_todoMgr.event( uid ); |
712 | 710 | ||
713 | OTodo todo = currentEditor()->edit(this, old_todo ); | 711 | OPimTodo todo = currentEditor()->edit(this, old_todo ); |
714 | 712 | ||
715 | /* if completed */ | 713 | /* if completed */ |
716 | if ( currentEditor()->accepted() ) { | 714 | if ( currentEditor()->accepted() ) { |
717 | handleAlarms( old_todo, todo ); | 715 | handleAlarms( old_todo, todo ); |
@@ -727,9 +725,9 @@ void MainWindow::slotEdit( int uid ) { | |||
727 | void MainWindow::slotUpdate1( int uid, const SmallTodo& ev) { | 725 | void MainWindow::slotUpdate1( int uid, const SmallTodo& ev) { |
728 | m_todoMgr.update( uid, ev ); | 726 | m_todoMgr.update( uid, ev ); |
729 | } | 727 | } |
730 | */ | 728 | */ |
731 | void MainWindow::updateTodo( const OTodo& ev) { | 729 | void MainWindow::updateTodo( const OPimTodo& ev) { |
732 | m_todoMgr.update( ev.uid() , ev ); | 730 | m_todoMgr.update( ev.uid() , ev ); |
733 | } | 731 | } |
734 | /* The view changed it's configuration | 732 | /* The view changed it's configuration |
735 | * update the view menu | 733 | * update the view menu |
@@ -745,9 +743,9 @@ void MainWindow::setReadAhead( uint count ) { | |||
745 | m_todoMgr.todoDB()->setReadAhead( count ); | 743 | m_todoMgr.todoDB()->setReadAhead( count ); |
746 | } | 744 | } |
747 | void MainWindow::slotQuickEntered() { | 745 | void MainWindow::slotQuickEntered() { |
748 | qWarning("entered"); | 746 | qWarning("entered"); |
749 | OTodo todo = quickEditor()->todo(); | 747 | OPimTodo todo = quickEditor()->todo(); |
750 | if (todo.isEmpty() ) | 748 | if (todo.isEmpty() ) |
751 | return; | 749 | return; |
752 | 750 | ||
753 | m_todoMgr.add( todo ); | 751 | m_todoMgr.add( todo ); |
@@ -759,10 +757,10 @@ QuickEditBase* MainWindow::quickEditor() { | |||
759 | } | 757 | } |
760 | void MainWindow::slotComplete( int uid ) { | 758 | void MainWindow::slotComplete( int uid ) { |
761 | slotComplete( event(uid) ); | 759 | slotComplete( event(uid) ); |
762 | } | 760 | } |
763 | void MainWindow::slotComplete( const OTodo& todo ) { | 761 | void MainWindow::slotComplete( const OPimTodo& todo ) { |
764 | OTodo to = todo; | 762 | OPimTodo to = todo; |
765 | to.setCompleted( !to.isCompleted() ); | 763 | to.setCompleted( !to.isCompleted() ); |
766 | to.setCompletedDate( QDate::currentDate() ); | 764 | to.setCompletedDate( QDate::currentDate() ); |
767 | 765 | ||
768 | /* | 766 | /* |
@@ -776,14 +774,14 @@ void MainWindow::slotComplete( const OTodo& todo ) { | |||
776 | * new one and add this diff to start, completed and alarm dates | 774 | * new one and add this diff to start, completed and alarm dates |
777 | * -zecke | 775 | * -zecke |
778 | */ | 776 | */ |
779 | if ( to.hasRecurrence() && to.isCompleted() ) { | 777 | if ( to.hasRecurrence() && to.isCompleted() ) { |
780 | OTodo to2( to ); | 778 | OPimTodo to2( to ); |
781 | 779 | ||
782 | /* the spinned off one won't recur anymore */ | 780 | /* the spinned off one won't recur anymore */ |
783 | to.setRecurrence( ORecur() ); | 781 | to.setRecurrence( OPimRecurrence() ); |
784 | 782 | ||
785 | ORecur rec = to2.recurrence(); | 783 | OPimRecurrence rec = to2.recurrence(); |
786 | rec.setStart( to.dueDate() ); | 784 | rec.setStart( to.dueDate() ); |
787 | to2.setRecurrence( rec ); | 785 | to2.setRecurrence( rec ); |
788 | /* | 786 | /* |
789 | * if there is a next occurence | 787 | * if there is a next occurence |
@@ -824,9 +822,9 @@ void MainWindow::slotComplete( const OTodo& todo ) { | |||
824 | al.setDateTime( al.dateTime().addDays( dayDiff ) ); | 822 | al.setDateTime( al.dateTime().addDays( dayDiff ) ); |
825 | als.append( al ); | 823 | als.append( al ); |
826 | } | 824 | } |
827 | to2.notifiers().setAlarms( als ); | 825 | to2.notifiers().setAlarms( als ); |
828 | handleAlarms( OTodo(), todo ); | 826 | handleAlarms( OPimTodo(), todo ); |
829 | } | 827 | } |
830 | to2.setCompletedDate( inval ); | 828 | to2.setCompletedDate( inval ); |
831 | to2.setCompleted( false ); | 829 | to2.setCompleted( false ); |
832 | 830 | ||
@@ -854,15 +852,15 @@ int MainWindow::create() { | |||
854 | } | 852 | } |
855 | m_todoMgr.load(); | 853 | m_todoMgr.load(); |
856 | 854 | ||
857 | 855 | ||
858 | OTodo todo = currentEditor()->newTodo( currentCatId(), | 856 | OPimTodo todo = currentEditor()->newTodo( currentCatId(), |
859 | this ); | 857 | this ); |
860 | 858 | ||
861 | if ( currentEditor()->accepted() ) { | 859 | if ( currentEditor()->accepted() ) { |
862 | //todo.assignUid(); | 860 | //todo.assignUid(); |
863 | uid = todo.uid(); | 861 | uid = todo.uid(); |
864 | handleAlarms( OTodo(), todo ); | 862 | handleAlarms( OPimTodo(), todo ); |
865 | m_todoMgr.add( todo ); | 863 | m_todoMgr.add( todo ); |
866 | currentView()->addEvent( todo ); | 864 | currentView()->addEvent( todo ); |
867 | 865 | ||
868 | 866 | ||
@@ -879,9 +877,9 @@ int MainWindow::create() { | |||
879 | bool MainWindow::remove( int uid ) { | 877 | bool MainWindow::remove( int uid ) { |
880 | if (m_syncing) return false; | 878 | if (m_syncing) return false; |
881 | 879 | ||
882 | /* argh need to get the whole OEvent... to disable alarms -zecke */ | 880 | /* argh need to get the whole OEvent... to disable alarms -zecke */ |
883 | handleAlarms( OTodo(), m_todoMgr.event( uid ) ); | 881 | handleAlarms( OPimTodo(), m_todoMgr.event( uid ) ); |
884 | 882 | ||
885 | return m_todoMgr.remove( uid ); | 883 | return m_todoMgr.remove( uid ); |
886 | } | 884 | } |
887 | void MainWindow::beam( int uid) { | 885 | void MainWindow::beam( int uid) { |
@@ -889,11 +887,11 @@ void MainWindow::beam( int uid) { | |||
889 | 887 | ||
890 | ::unlink( beamfile ); | 888 | ::unlink( beamfile ); |
891 | m_todoMgr.load(); | 889 | m_todoMgr.load(); |
892 | 890 | ||
893 | OTodo todo = event( uid ); | 891 | OPimTodo todo = event( uid ); |
894 | OTodoAccessVCal* cal = new OTodoAccessVCal(QString::fromLatin1(beamfile) ); | 892 | OPimTodoAccessVCal* cal = new OPimTodoAccessVCal(QString::fromLatin1(beamfile) ); |
895 | OTodoAccess acc( cal ); | 893 | OPimTodoAccess acc( cal ); |
896 | acc.load(); | 894 | acc.load(); |
897 | acc.add( todo ); | 895 | acc.add( todo ); |
898 | acc.save(); | 896 | acc.save(); |
899 | Ir* ir = new Ir(this ); | 897 | Ir* ir = new Ir(this ); |
@@ -912,12 +910,12 @@ void MainWindow::edit( int uid ) { | |||
912 | m_todoMgr.load(); | 910 | m_todoMgr.load(); |
913 | slotEdit( uid ); | 911 | slotEdit( uid ); |
914 | } | 912 | } |
915 | void MainWindow::add( const OPimRecord& rec) { | 913 | void MainWindow::add( const OPimRecord& rec) { |
916 | if ( rec.rtti() != OTodo::rtti() ) return; | 914 | if ( rec.rtti() != OPimTodo::rtti() ) return; |
917 | m_todoMgr.load(); // might not be loaded | 915 | m_todoMgr.load(); // might not be loaded |
918 | 916 | ||
919 | const OTodo& todo = static_cast<const OTodo&>(rec); | 917 | const OPimTodo& todo = static_cast<const OPimTodo&>(rec); |
920 | 918 | ||
921 | m_todoMgr.add(todo ); | 919 | m_todoMgr.add(todo ); |
922 | currentView()->addEvent( todo ); | 920 | currentView()->addEvent( todo ); |
923 | 921 | ||
@@ -968,9 +966,9 @@ namespace { | |||
968 | } | 966 | } |
969 | } | 967 | } |
970 | } | 968 | } |
971 | 969 | ||
972 | void MainWindow::handleAlarms( const OTodo& oldTodo, const OTodo& newTodo) { | 970 | void MainWindow::handleAlarms( const OPimTodo& oldTodo, const OPimTodo& newTodo) { |
973 | /* | 971 | /* |
974 | * if oldTodo is not empty and has notifiers we need to find the deleted ones | 972 | * if oldTodo is not empty and has notifiers we need to find the deleted ones |
975 | */ | 973 | */ |
976 | if(!oldTodo.isEmpty() && oldTodo.hasNotifiers() ) { | 974 | if(!oldTodo.isEmpty() && oldTodo.hasNotifiers() ) { |
@@ -996,9 +994,9 @@ void MainWindow::handleAlarms( const OTodo& oldTodo, const OTodo& newTodo) { | |||
996 | /* we might have not loaded the db */ | 994 | /* we might have not loaded the db */ |
997 | void MainWindow::doAlarm( const QDateTime& dt, int uid ) { | 995 | void MainWindow::doAlarm( const QDateTime& dt, int uid ) { |
998 | m_todoMgr.load(); | 996 | m_todoMgr.load(); |
999 | 997 | ||
1000 | OTodo todo = m_todoMgr.event( uid ); | 998 | OPimTodo todo = m_todoMgr.event( uid ); |
1001 | if (!todo.hasNotifiers() ) return; | 999 | if (!todo.hasNotifiers() ) return; |
1002 | 1000 | ||
1003 | /* | 1001 | /* |
1004 | * let's find the right alarm and find out if silent | 1002 | * let's find the right alarm and find out if silent |