summaryrefslogtreecommitdiff
path: root/core
Unidiff
Diffstat (limited to 'core') (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/todo/mainwindow.cpp42
-rw-r--r--core/pim/todo/otaskeditor.cpp1
-rw-r--r--core/pim/todo/tableview.cpp20
-rw-r--r--core/pim/todo/templatedialog.cpp4
-rw-r--r--core/pim/todo/todoeditor.cpp2
-rw-r--r--core/pim/todo/todomanager.cpp4
-rw-r--r--core/pim/todo/todotemplatemanager.cpp3
-rw-r--r--core/pim/todo/todoview.cpp4
8 files changed, 36 insertions, 44 deletions
diff --git a/core/pim/todo/mainwindow.cpp b/core/pim/todo/mainwindow.cpp
index d552928..924fde1 100644
--- a/core/pim/todo/mainwindow.cpp
+++ b/core/pim/todo/mainwindow.cpp
@@ -38,52 +38,52 @@
38#include <qpe/config.h> 38#include <qpe/config.h>
39#include <qpe/ir.h> 39#include <qpe/ir.h>
40#include <qpe/resource.h> 40#include <qpe/resource.h>
41#include <qpe/qpemessagebox.h> 41#include <qpe/qpemessagebox.h>
42#include <qpe/alarmserver.h> 42#include <qpe/alarmserver.h>
43#include <qpe/qpeapplication.h> 43#include <qpe/qpeapplication.h>
44 44
45#include <qmenubar.h> 45#include <qmenubar.h>
46#include <qmessagebox.h> 46#include <qmessagebox.h>
47#include <qpushbutton.h> 47#include <qpushbutton.h>
48#include <qaction.h> 48#include <qaction.h>
49#include <qtimer.h> 49#include <qtimer.h>
50#include <qlayout.h> 50#include <qlayout.h>
51#include <qwhatsthis.h> 51#include <qwhatsthis.h>
52 52
53#include "quickeditimpl.h" 53#include "quickeditimpl.h"
54#include "todotemplatemanager.h" 54#include "todotemplatemanager.h"
55#include "templateeditor.h" 55#include "templateeditor.h"
56#include "tableview.h" 56#include "tableview.h"
57 57
58#include "textviewshow.h" 58#include "textviewshow.h"
59#include "todoeditor.h" 59#include "todoeditor.h"
60#include "mainwindow.h" 60#include "mainwindow.h"
61 61
62using namespace Opie::Core; 62using Opie::Core::OApplicationFactory;
63OPIE_EXPORT_APP( OApplicationFactory<Todo::MainWindow> ) 63OPIE_EXPORT_APP( OApplicationFactory<Todo::MainWindow> )
64 64
65 using namespace Opie; 65using namespace Opie;
66using namespace Todo; 66using namespace Todo;
67 67
68MainWindow::MainWindow( QWidget* parent, 68MainWindow::MainWindow( QWidget* parent,
69 const char* name, WFlags ) 69 const char* name, WFlags )
70 : Opie::OPimMainWindow( "Todolist", parent, name, WType_TopLevel | WStyle_ContextHelp ) 70 : Opie::OPimMainWindow( "Todolist", parent, name, WType_TopLevel | WStyle_ContextHelp )
71{ 71{
72 if (!name) 72 if (!name)
73 setName("todo window"); 73 setName("todo window");
74 74
75 m_syncing = false; 75 m_syncing = false;
76 m_showing = false; 76 m_showing = false;
77 m_counter = 0; 77 m_counter = 0;
78 m_tempManager = new TemplateManager(); 78 m_tempManager = new TemplateManager();
79 m_tempManager->load(); 79 m_tempManager->load();
80 80
81 initUI(); 81 initUI();
82 initConfig(); 82 initConfig();
83 initViews(); 83 initViews();
84 initActions(); 84 initActions();
85 initEditor(); 85 initEditor();
86 initShow(); 86 initShow();
87 initTemplate(); 87 initTemplate();
88 88
89 populateTemplates(); 89 populateTemplates();
@@ -275,68 +275,68 @@ MainWindow::~MainWindow() {
275void MainWindow::connectBase( ViewBase* ) { 275void MainWindow::connectBase( ViewBase* ) {
276 // once templates and signals mix we'll use it again 276 // once templates and signals mix we'll use it again
277} 277}
278QPopupMenu* MainWindow::contextMenu( int , bool recur ) { 278QPopupMenu* MainWindow::contextMenu( int , bool recur ) {
279 QPopupMenu* menu = new QPopupMenu(); 279 QPopupMenu* menu = new QPopupMenu();
280 280
281 m_editAction->addTo( menu ); 281 m_editAction->addTo( menu );
282 m_deleteAction->addTo( menu ); 282 m_deleteAction->addTo( menu );
283 m_duplicateAction->addTo( menu ); 283 m_duplicateAction->addTo( menu );
284 284
285 menu->insertSeparator(); 285 menu->insertSeparator();
286 286
287 /* 287 /*
288 * if this event recurs we allow 288 * if this event recurs we allow
289 * to detach it. 289 * to detach it.
290 * remove all 290 * remove all
291 */ 291 */
292 if ( recur ) { 292 if ( recur ) {
293 ; // FIXME 293 ; // FIXME
294 } 294 }
295 295
296 return menu; 296 return menu;
297} 297}
298QPopupMenu* MainWindow::options() { 298QPopupMenu* MainWindow::options() {
299 Opie::Core::owarn << "Options" << oendl; 299 owarn << "Options" << oendl;
300 return m_options; 300 return m_options;
301} 301}
302QPopupMenu* MainWindow::edit() { 302QPopupMenu* MainWindow::edit() {
303 return m_edit; 303 return m_edit;
304} 304}
305QToolBar* MainWindow::toolbar() { 305QToolBar* MainWindow::toolbar() {
306 return m_tool; 306 return m_tool;
307} 307}
308OPimTodoAccess::List MainWindow::list()const { 308OPimTodoAccess::List MainWindow::list()const {
309 return m_todoMgr.list(); 309 return m_todoMgr.list();
310} 310}
311OPimTodoAccess::List MainWindow::sorted( bool asc, int sortOrder ) { 311OPimTodoAccess::List MainWindow::sorted( bool asc, int sortOrder ) {
312 int cat = 0; 312 int cat = 0;
313 if ( m_curCat != QWidget::tr("All Categories") ) 313 if ( m_curCat != QWidget::tr("All Categories") )
314 cat = currentCatId(); 314 cat = currentCatId();
315 if ( m_curCat == QWidget::tr("Unfiled") ) 315 if ( m_curCat == QWidget::tr("Unfiled") )
316 cat = -1; 316 cat = -1;
317 317
318 Opie::Core::owarn << " Category " << cat << " " << m_curCat << oendl; 318 owarn << " Category " << cat << " " << m_curCat << oendl;
319 319
320 int filter = 1; 320 int filter = 1;
321 321
322 if (!m_completed ) 322 if (!m_completed )
323 filter |= 4; 323 filter |= 4;
324 if (m_overdue) 324 if (m_overdue)
325 filter |= 2; 325 filter |= 2;
326 326
327 return m_todoMgr.sorted( asc, sortOrder, filter, cat ); 327 return m_todoMgr.sorted( asc, sortOrder, filter, cat );
328} 328}
329OPimTodoAccess::List MainWindow::sorted( bool asc, int sortOrder, int addFilter) { 329OPimTodoAccess::List MainWindow::sorted( bool asc, int sortOrder, int addFilter) {
330 int cat = 0; 330 int cat = 0;
331 if ( m_curCat != QWidget::tr("All Categories") ) 331 if ( m_curCat != QWidget::tr("All Categories") )
332 cat = currentCatId(); 332 cat = currentCatId();
333 333
334 if ( m_curCat == QWidget::tr("Unfiled") ) 334 if ( m_curCat == QWidget::tr("Unfiled") )
335 cat = -1; 335 cat = -1;
336 336
337 return m_todoMgr.sorted(asc, sortOrder, addFilter, cat ); 337 return m_todoMgr.sorted(asc, sortOrder, addFilter, cat );
338} 338}
339OPimTodo MainWindow::event( int uid ) { 339OPimTodo MainWindow::event( int uid ) {
340 return m_todoMgr.event( uid ); 340 return m_todoMgr.event( uid );
341} 341}
342bool MainWindow::isSyncing()const { 342bool MainWindow::isSyncing()const {
@@ -353,49 +353,49 @@ TodoShow* MainWindow::currentShow() {
353} 353}
354void MainWindow::slotReload() { 354void MainWindow::slotReload() {
355 m_syncing = FALSE; 355 m_syncing = FALSE;
356 m_todoMgr.reload(); 356 m_todoMgr.reload();
357 currentView()->updateView( ); 357 currentView()->updateView( );
358 raiseCurrentView(); 358 raiseCurrentView();
359} 359}
360void MainWindow::closeEvent( QCloseEvent* e ) { 360void MainWindow::closeEvent( QCloseEvent* e ) {
361 if (m_stack->visibleWidget() == currentShow()->widget() ) { 361 if (m_stack->visibleWidget() == currentShow()->widget() ) {
362 m_showing = false; 362 m_showing = false;
363 raiseCurrentView(); 363 raiseCurrentView();
364 e->ignore(); 364 e->ignore();
365 return; 365 return;
366 } 366 }
367 /* 367 /*
368 * we should have flushed and now we're still saving 368 * we should have flushed and now we're still saving
369 * so there is no need to flush 369 * so there is no need to flush
370 */ 370 */
371 if (m_syncing ) { 371 if (m_syncing ) {
372 e->accept(); 372 e->accept();
373 return; 373 return;
374 } 374 }
375 bool quit = false; 375 bool quit = false;
376 if ( m_todoMgr.saveAll() ){ 376 if ( m_todoMgr.saveAll() ){
377 Opie::Core::owarn << "saved" << oendl; 377 owarn << "saved" << oendl;
378 quit = true; 378 quit = true;
379 }else { 379 }else {
380 if ( QMessageBox::critical( this, QWidget::tr("Out of space"), 380 if ( QMessageBox::critical( this, QWidget::tr("Out of space"),
381 QWidget::tr("Todo was unable\n" 381 QWidget::tr("Todo was unable\n"
382 "to save your changes.\n" 382 "to save your changes.\n"
383 "Free up some space\n" 383 "Free up some space\n"
384 "and try again.\n" 384 "and try again.\n"
385 "\nQuit Anyway?"), 385 "\nQuit Anyway?"),
386 QMessageBox::Yes|QMessageBox::Escape, 386 QMessageBox::Yes|QMessageBox::Escape,
387 QMessageBox::No|QMessageBox::Default) 387 QMessageBox::No|QMessageBox::Default)
388 != QMessageBox::No ) { 388 != QMessageBox::No ) {
389 e->accept(); 389 e->accept();
390 quit = true; 390 quit = true;
391 }else 391 }else
392 e->ignore(); 392 e->ignore();
393 393
394 } 394 }
395 395
396 if (quit ) { 396 if (quit ) {
397 Config config( "todo" ); 397 Config config( "todo" );
398 config.setGroup( "View" ); 398 config.setGroup( "View" );
399 config.writeEntry( "ShowComplete", showCompleted() ); 399 config.writeEntry( "ShowComplete", showCompleted() );
400 config.writeEntry( "Category", currentCategory() ); 400 config.writeEntry( "Category", currentCategory() );
401 config.writeEntry( "ShowDeadLine", showDeadline()); 401 config.writeEntry( "ShowDeadLine", showDeadline());
@@ -516,49 +516,49 @@ void MainWindow::slotDeleteCompleted() {
516 QWidget::tr("Data can not be edited, currently syncing")); 516 QWidget::tr("Data can not be edited, currently syncing"));
517 return; 517 return;
518 } 518 }
519 519
520 if ( !QPEMessageBox::confirmDelete( this, QWidget::tr( "Todo" ), QWidget::tr("all completed tasks?") ) ) 520 if ( !QPEMessageBox::confirmDelete( this, QWidget::tr( "Todo" ), QWidget::tr("all completed tasks?") ) )
521 return; 521 return;
522 522
523 523
524 m_todoMgr.removeCompleted(); 524 m_todoMgr.removeCompleted();
525 currentView()->updateView( ); 525 currentView()->updateView( );
526} 526}
527void MainWindow::slotFind() { 527void MainWindow::slotFind() {
528 528
529} 529}
530void MainWindow::slotEdit() { 530void MainWindow::slotEdit() {
531 slotEdit( currentView()->current() ); 531 slotEdit( currentView()->current() );
532} 532}
533/* 533/*
534 * set the category 534 * set the category
535 */ 535 */
536void MainWindow::setCategory( int c) { 536void MainWindow::setCategory( int c) {
537 if ( c <= 0 ) return; 537 if ( c <= 0 ) return;
538 538
539 539
540 Opie::Core::owarn << "Iterating over cats " << c << oendl; 540 owarn << "Iterating over cats " << c << oendl;
541 for ( unsigned int i = 1; i < m_catMenu->count(); i++ ) 541 for ( unsigned int i = 1; i < m_catMenu->count(); i++ )
542 m_catMenu->setItemChecked(i, c == (int)i ); 542 m_catMenu->setItemChecked(i, c == (int)i );
543 543
544 if (c == 1 ) { 544 if (c == 1 ) {
545 m_curCat = QString::null; 545 m_curCat = QString::null;
546 setCaption( QWidget::tr("Todo") + " - " + QWidget::tr("All Categories" ) ); 546 setCaption( QWidget::tr("Todo") + " - " + QWidget::tr("All Categories" ) );
547 547
548 }else if ( c == (int)m_catMenu->count() - 1 ) { 548 }else if ( c == (int)m_catMenu->count() - 1 ) {
549 m_curCat = QWidget::tr("Unfiled"); 549 m_curCat = QWidget::tr("Unfiled");
550 setCaption( QWidget::tr("Todo") + " - " + QWidget::tr("Unfiled") ); 550 setCaption( QWidget::tr("Todo") + " - " + QWidget::tr("Unfiled") );
551 }else { 551 }else {
552 m_curCat = m_todoMgr.categories()[c-2]; 552 m_curCat = m_todoMgr.categories()[c-2];
553 setCaption( QWidget::tr("Todo") + " - " + m_curCat ); 553 setCaption( QWidget::tr("Todo") + " - " + m_curCat );
554 } 554 }
555 m_catMenu->setItemChecked( c, true ); 555 m_catMenu->setItemChecked( c, true );
556 556
557 currentView()->setShowCategory( m_curCat ); 557 currentView()->setShowCategory( m_curCat );
558 raiseCurrentView(); 558 raiseCurrentView();
559} 559}
560void MainWindow::slotShowDeadLine( bool dead) { 560void MainWindow::slotShowDeadLine( bool dead) {
561 m_deadline = dead; 561 m_deadline = dead;
562 currentView()->setShowDeadline( dead ); 562 currentView()->setShowDeadline( dead );
563} 563}
564void MainWindow::slotShowCompleted( bool show) { 564void MainWindow::slotShowCompleted( bool show) {
@@ -579,59 +579,59 @@ void MainWindow::setDocument( const QString& fi) {
579 DocLnk doc(fi); 579 DocLnk doc(fi);
580 if (doc.isValid() ) 580 if (doc.isValid() )
581 receiveFile(doc.file() ); 581 receiveFile(doc.file() );
582 else 582 else
583 receiveFile(fi ); 583 receiveFile(fi );
584} 584}
585 585
586static const char *beamfile = "/tmp/opie-todo.vcs"; 586static const char *beamfile = "/tmp/opie-todo.vcs";
587void MainWindow::slotBeam() { 587void MainWindow::slotBeam() {
588 beam( currentView()->current() ); 588 beam( currentView()->current() );
589} 589}
590void MainWindow::beamDone( Ir* ir) { 590void MainWindow::beamDone( Ir* ir) {
591 delete ir; 591 delete ir;
592 ::unlink( beamfile ); 592 ::unlink( beamfile );
593} 593}
594void MainWindow::receiveFile( const QString& filename ) { 594void MainWindow::receiveFile( const QString& filename ) {
595 OPimTodoAccessVCal* cal = new OPimTodoAccessVCal(filename ); 595 OPimTodoAccessVCal* cal = new OPimTodoAccessVCal(filename );
596 596
597 OPimTodoAccess acc( cal ); 597 OPimTodoAccess acc( cal );
598 acc.load(); 598 acc.load();
599 OPimTodoAccess::List list = acc.allRecords(); 599 OPimTodoAccess::List list = acc.allRecords();
600 600
601 if (list.count()){ 601 if (list.count()){
602 602
603 QString message = QWidget::tr("<P>%1 new tasks arrived.<p>Would you like to add them to your Todolist?").arg(list.count() ); 603 QString message = QWidget::tr("<P>%1 new tasks arrived.<p>Would you like to add them to your Todolist?").arg(list.count() );
604 604
605 if ( QMessageBox::information(this, QWidget::tr("New Tasks"), 605 if ( QMessageBox::information(this, QWidget::tr("New Tasks"),
606 message, QMessageBox::Ok, 606 message, QMessageBox::Ok,
607 QMessageBox::Cancel ) == QMessageBox::Ok ) { 607 QMessageBox::Cancel ) == QMessageBox::Ok ) {
608 OPimTodoAccess::List::Iterator it; 608 OPimTodoAccess::List::Iterator it;
609 for ( it = list.begin(); it != list.end(); ++it ) 609 for ( it = list.begin(); it != list.end(); ++it )
610 m_todoMgr.add( (*it) ); 610 m_todoMgr.add( (*it) );
611 611
612 currentView()->updateView(); 612 currentView()->updateView();
613 } 613 }
614 } 614 }
615} 615}
616 616
617void MainWindow::slotFlush() { 617void MainWindow::slotFlush() {
618 m_syncing = TRUE; 618 m_syncing = TRUE;
619 m_todoMgr.save(); 619 m_todoMgr.save();
620} 620}
621void MainWindow::slotShowDetails() { 621void MainWindow::slotShowDetails() {
622 slotShow( currentView()->current() ); 622 slotShow( currentView()->current() );
623} 623}
624/* 624/*
625 * populate the Categories 625 * populate the Categories
626 * Menu 626 * Menu
627 */ 627 */
628void MainWindow::populateCategories() { 628void MainWindow::populateCategories() {
629 m_todoMgr.load(); 629 m_todoMgr.load();
630 630
631 m_catMenu->clear(); 631 m_catMenu->clear();
632 int id, rememberId; 632 int id, rememberId;
633 id = 1; 633 id = 1;
634 rememberId = 1; 634 rememberId = 1;
635 635
636 m_catMenu->insertItem( QWidget::tr( "All Categories" ), id++ ); 636 m_catMenu->insertItem( QWidget::tr( "All Categories" ), id++ );
637 m_catMenu->insertSeparator(); 637 m_catMenu->insertSeparator();
@@ -660,49 +660,51 @@ QString MainWindow::currentCategory()const {
660} 660}
661int MainWindow::currentCatId() { 661int MainWindow::currentCatId() {
662 return m_todoMgr.catId( m_curCat ); 662 return m_todoMgr.catId( m_curCat );
663} 663}
664ViewBase* MainWindow::currentView() { 664ViewBase* MainWindow::currentView() {
665 return m_curView; 665 return m_curView;
666} 666}
667void MainWindow::raiseCurrentView() { 667void MainWindow::raiseCurrentView() {
668 // due QPE/Application/todolist show(int) 668 // due QPE/Application/todolist show(int)
669 // we might not have the populateCategories slot called once 669 // we might not have the populateCategories slot called once
670 // we would show the otodo but then imediately switch to the currentView 670 // we would show the otodo but then imediately switch to the currentView
671 // if we're initially showing we shouldn't raise the table 671 // if we're initially showing we shouldn't raise the table
672 // in returnFromView we fix up m_showing 672 // in returnFromView we fix up m_showing
673 if (m_showing ) return; 673 if (m_showing ) return;
674 674
675 m_stack->raiseWidget( m_curView->widget() ); 675 m_stack->raiseWidget( m_curView->widget() );
676} 676}
677void MainWindow::slotShowDue(bool ov) { 677void MainWindow::slotShowDue(bool ov) {
678 m_overdue = ov; 678 m_overdue = ov;
679 currentView()->showOverDue( ov ); 679 currentView()->showOverDue( ov );
680 raiseCurrentView(); 680 raiseCurrentView();
681} 681}
682void MainWindow::slotShow( int uid ) { 682void MainWindow::slotShow( int uid ) {
683 if ( uid == 0 ) return; 683 if ( uid == 0 ) return;
684 Opie::Core::owarn << "slotShow" << oendl; 684
685
686 owarn << "slotShow" << oendl;
685 currentShow()->slotShow( event( uid ) ); 687 currentShow()->slotShow( event( uid ) );
686 m_stack->raiseWidget( currentShow()->widget() ); 688 m_stack->raiseWidget( currentShow()->widget() );
687} 689}
688void MainWindow::slotShowNext() { 690void MainWindow::slotShowNext() {
689 int l = currentView()->next(); 691 int l = currentView()->next();
690 if (l!=0) 692 if (l!=0)
691 slotShow(l); 693 slotShow(l);
692} 694}
693void MainWindow::slotShowPrev() { 695void MainWindow::slotShowPrev() {
694 int l = currentView()->prev(); 696 int l = currentView()->prev();
695 if (l!=0) 697 if (l!=0)
696 slotShow(l); 698 slotShow(l);
697} 699}
698void MainWindow::slotEdit( int uid ) { 700void MainWindow::slotEdit( int uid ) {
699 if (uid == 0 ) return; 701 if (uid == 0 ) return;
700 if(m_syncing) { 702 if(m_syncing) {
701 QMessageBox::warning(this, QWidget::tr("Todo"), 703 QMessageBox::warning(this, QWidget::tr("Todo"),
702 QWidget::tr("Data can't be edited, currently syncing")); 704 QWidget::tr("Data can't be edited, currently syncing"));
703 return; 705 return;
704 } 706 }
705 707
706 OPimTodo old_todo = m_todoMgr.event( uid ); 708 OPimTodo old_todo = m_todoMgr.event( uid );
707 709
708 OPimTodo todo = currentEditor()->edit(this, old_todo ); 710 OPimTodo todo = currentEditor()->edit(this, old_todo );
@@ -719,96 +721,96 @@ void MainWindow::slotEdit( int uid ) {
719 raiseCurrentView(); 721 raiseCurrentView();
720} 722}
721/* 723/*
722void MainWindow::slotUpdate1( int uid, const SmallTodo& ev) { 724void MainWindow::slotUpdate1( int uid, const SmallTodo& ev) {
723 m_todoMgr.update( uid, ev ); 725 m_todoMgr.update( uid, ev );
724} 726}
725*/ 727*/
726void MainWindow::updateTodo( const OPimTodo& ev) { 728void MainWindow::updateTodo( const OPimTodo& ev) {
727 m_todoMgr.update( ev.uid() , ev ); 729 m_todoMgr.update( ev.uid() , ev );
728} 730}
729/* The view changed it's configuration 731/* The view changed it's configuration
730 * update the view menu 732 * update the view menu
731 */ 733 */
732void MainWindow::slotUpdate3( QWidget* ) { 734void MainWindow::slotUpdate3( QWidget* ) {
733 735
734} 736}
735void MainWindow::updateList() { 737void MainWindow::updateList() {
736 m_todoMgr.updateList(); 738 m_todoMgr.updateList();
737} 739}
738void MainWindow::setReadAhead( uint count ) { 740void MainWindow::setReadAhead( uint count ) {
739 if (m_todoMgr.todoDB() ) 741 if (m_todoMgr.todoDB() )
740 m_todoMgr.todoDB()->setReadAhead( count ); 742 m_todoMgr.todoDB()->setReadAhead( count );
741} 743}
742void MainWindow::slotQuickEntered() { 744void MainWindow::slotQuickEntered() {
743 Opie::Core::owarn << "entered" << oendl; 745 owarn << "entered" << oendl;
744 OPimTodo todo = quickEditor()->todo(); 746 OPimTodo todo = quickEditor()->todo();
745 if (todo.isEmpty() ) 747 if (todo.isEmpty() )
746 return; 748 return;
747 749
748 m_todoMgr.add( todo ); 750 m_todoMgr.add( todo );
749 currentView()->addEvent( todo ); 751 currentView()->addEvent( todo );
750 raiseCurrentView(); 752 raiseCurrentView();
751} 753}
752QuickEditBase* MainWindow::quickEditor() { 754QuickEditBase* MainWindow::quickEditor() {
753 return m_curQuick; 755 return m_curQuick;
754} 756}
755void MainWindow::slotComplete( int uid ) { 757void MainWindow::slotComplete( int uid ) {
756 slotComplete( event(uid) ); 758 slotComplete( event(uid) );
757} 759}
758void MainWindow::slotComplete( const OPimTodo& todo ) { 760void MainWindow::slotComplete( const OPimTodo& todo ) {
759 OPimTodo to = todo; 761 OPimTodo to = todo;
760 to.setCompleted( !to.isCompleted() ); 762 to.setCompleted( !to.isCompleted() );
761 to.setCompletedDate( QDate::currentDate() ); 763 to.setCompletedDate( QDate::currentDate() );
762 764
763 /* 765 /*
764 * if the item does recur 766 * if the item does recur
765 * we need to spin it off 767 * we need to spin it off
766 * and update the items duedate to the next 768 * and update the items duedate to the next
767 * possible recurrance of this item... 769 * possible recurrance of this item...
768 * the spinned off one will loose the 770 * the spinned off one will loose the
769 * recurrence. 771 * recurrence.
770 * We calculate the difference between the old due date and the 772 * We calculate the difference between the old due date and the
771 * new one and add this diff to start, completed and alarm dates 773 * new one and add this diff to start, completed and alarm dates
772 * -zecke 774 * -zecke
773 */ 775 */
774 if ( to.hasRecurrence() && to.isCompleted() ) { 776 if ( to.hasRecurrence() && to.isCompleted() ) {
775 OPimTodo to2( to ); 777 OPimTodo to2( to );
776 778
777 /* the spinned off one won't recur anymore */ 779 /* the spinned off one won't recur anymore */
778 to.setRecurrence( OPimRecurrence() ); 780 to.setRecurrence( OPimRecurrence() );
779 781
780 OPimRecurrence rec = to2.recurrence(); 782 OPimRecurrence rec = to2.recurrence();
781 rec.setStart( to.dueDate() ); 783 rec.setStart( to.dueDate() );
782 to2.setRecurrence( rec ); 784 to2.setRecurrence( rec );
783 /* 785 /*
784 * if there is a next occurence 786 * if there is a next occurence
785 * from the duedate of the last recurrance 787 * from the duedate of the last recurrance
786 */ 788 */
787 QDate date; 789 QDate date;
788 if ( to2.recurrence().nextOcurrence( to2.dueDate().addDays(1), date ) ) { 790 if ( to2.recurrence().nextOcurrence( to2.dueDate().addDays(1), date ) ) {
789 int dayDiff = to.dueDate().daysTo( date ); 791 int dayDiff = to.dueDate().daysTo( date );
790 Opie::Core::owarn << "day diff is " << dayDiff << oendl; 792 owarn << "day diff is " << dayDiff << oendl;
791 QDate inval; 793 QDate inval;
792 /* generate a new uid for the old record */ 794 /* generate a new uid for the old record */
793 to.setUid( 1 ); 795 to.setUid( 1 );
794 796
795 /* add the old one cause it has a new UID here cause it was spin off */ 797 /* add the old one cause it has a new UID here cause it was spin off */
796 m_todoMgr.add( to ); 798 m_todoMgr.add( to );
797 799
798 /* 800 /*
799 * update the due date 801 * update the due date
800 * start date 802 * start date
801 * and complete date 803 * and complete date
802 */ 804 */
803 to2.setDueDate( date ); 805 to2.setDueDate( date );
804 rec.setStart( date ); 806 rec.setStart( date );
805 to2.setRecurrence( rec ); // could be Monday, TuesDay, Thursday every week 807 to2.setRecurrence( rec ); // could be Monday, TuesDay, Thursday every week
806 808
807 /* move start date */ 809 /* move start date */
808 if (to2.hasStartDate() ) 810 if (to2.hasStartDate() )
809 to2.setStartDate( to2.startDate().addDays( dayDiff ) ); 811 to2.setStartDate( to2.startDate().addDays( dayDiff ) );
810 812
811 /* now the alarms */ 813 /* now the alarms */
812 if (to2.hasNotifiers() ) { 814 if (to2.hasNotifiers() ) {
813 OPimNotifyManager::Alarms _als = to2.notifiers().alarms(); 815 OPimNotifyManager::Alarms _als = to2.notifiers().alarms();
814 OPimNotifyManager::Alarms als; 816 OPimNotifyManager::Alarms als;
@@ -929,57 +931,57 @@ void MainWindow::slotReturnFromView() {
929 931
930namespace { 932namespace {
931 OPimNotifyManager::Alarms findNonMatching( const OPimNotifyManager::Alarms& oldAls, 933 OPimNotifyManager::Alarms findNonMatching( const OPimNotifyManager::Alarms& oldAls,
932 const OPimNotifyManager::Alarms& newAls ) { 934 const OPimNotifyManager::Alarms& newAls ) {
933 OPimNotifyManager::Alarms nonMatching; 935 OPimNotifyManager::Alarms nonMatching;
934 OPimNotifyManager::Alarms::ConstIterator oldIt = oldAls.begin(); 936 OPimNotifyManager::Alarms::ConstIterator oldIt = oldAls.begin();
935 OPimNotifyManager::Alarms::ConstIterator newIt; 937 OPimNotifyManager::Alarms::ConstIterator newIt;
936 for ( ; oldIt != oldAls.end(); ++oldIt ) { 938 for ( ; oldIt != oldAls.end(); ++oldIt ) {
937 bool found = false; 939 bool found = false;
938 QDateTime oldDt = (*oldIt).dateTime(); 940 QDateTime oldDt = (*oldIt).dateTime();
939 for (newIt= newAls.begin(); newIt != newAls.end(); ++newIt ) { 941 for (newIt= newAls.begin(); newIt != newAls.end(); ++newIt ) {
940 if ( oldDt == (*newIt).dateTime() ) { 942 if ( oldDt == (*newIt).dateTime() ) {
941 found = true; 943 found = true;
942 break; 944 break;
943 } 945 }
944 } 946 }
945 if (!found) 947 if (!found)
946 nonMatching.append( (*oldIt) ); 948 nonMatching.append( (*oldIt) );
947 } 949 }
948 return nonMatching; 950 return nonMatching;
949 } 951 }
950 void addAlarms( const OPimNotifyManager::Alarms& als, int uid ) { 952 void addAlarms( const OPimNotifyManager::Alarms& als, int uid ) {
951 OPimNotifyManager::Alarms::ConstIterator it; 953 OPimNotifyManager::Alarms::ConstIterator it;
952 for ( it = als.begin(); it != als.end(); ++it ) { 954 for ( it = als.begin(); it != als.end(); ++it ) {
953 Opie::Core::owarn << "Adding alarm for " << (*it).dateTime().toString() << oendl; 955 owarn << "Adding alarm for " << (*it).dateTime().toString() << oendl;
954 AlarmServer::addAlarm( (*it).dateTime(), "QPE/Application/todolist", "alarm(QDateTime,int)", uid ); 956 AlarmServer::addAlarm( (*it).dateTime(), "QPE/Application/todolist", "alarm(QDateTime,int)", uid );
955 } 957 }
956 958
957 } 959 }
958 void removeAlarms( const OPimNotifyManager::Alarms& als, int uid ) { 960 void removeAlarms( const OPimNotifyManager::Alarms& als, int uid ) {
959 OPimNotifyManager::Alarms::ConstIterator it; 961 OPimNotifyManager::Alarms::ConstIterator it;
960 for ( it = als.begin(); it != als.end(); ++it ) { 962 for ( it = als.begin(); it != als.end(); ++it ) {
961 Opie::Core::owarn << "Removinf alarm for " << (*it).dateTime().toString() << oendl; 963 owarn << "Removinf alarm for " << (*it).dateTime().toString() << oendl;
962 AlarmServer::deleteAlarm( (*it).dateTime(), "QPE/Application/todolist", "alarm(QDateTime,int)", uid ); 964 AlarmServer::deleteAlarm( (*it).dateTime(), "QPE/Application/todolist", "alarm(QDateTime,int)", uid );
963 } 965 }
964 } 966 }
965} 967}
966 968
967void MainWindow::handleAlarms( const OPimTodo& oldTodo, const OPimTodo& newTodo) { 969void MainWindow::handleAlarms( const OPimTodo& oldTodo, const OPimTodo& newTodo) {
968 /* 970 /*
969 * if oldTodo is not empty and has notifiers we need to find the deleted ones 971 * if oldTodo is not empty and has notifiers we need to find the deleted ones
970 */ 972 */
971 if(!oldTodo.isEmpty() && oldTodo.hasNotifiers() ) { 973 if(!oldTodo.isEmpty() && oldTodo.hasNotifiers() ) {
972 OPimNotifyManager::Alarms removed; 974 OPimNotifyManager::Alarms removed;
973 OPimNotifyManager::Alarms oldAls = oldTodo.notifiers().alarms(); 975 OPimNotifyManager::Alarms oldAls = oldTodo.notifiers().alarms();
974 if (!newTodo.hasNotifiers() ) 976 if (!newTodo.hasNotifiers() )
975 removed = oldAls; 977 removed = oldAls;
976 else 978 else
977 removed = findNonMatching( oldAls, newTodo.notifiers().alarms() ); 979 removed = findNonMatching( oldAls, newTodo.notifiers().alarms() );
978 980
979 removeAlarms( removed, oldTodo.uid() ); 981 removeAlarms( removed, oldTodo.uid() );
980 } 982 }
981 if ( newTodo.hasNotifiers() ) { 983 if ( newTodo.hasNotifiers() ) {
982 OPimNotifyManager::Alarms added; 984 OPimNotifyManager::Alarms added;
983 if ( oldTodo.isEmpty() || !oldTodo.hasNotifiers() ) 985 if ( oldTodo.isEmpty() || !oldTodo.hasNotifiers() )
984 added = newTodo.notifiers().alarms(); 986 added = newTodo.notifiers().alarms();
985 else 987 else
diff --git a/core/pim/todo/otaskeditor.cpp b/core/pim/todo/otaskeditor.cpp
index 55a3dd5..bbc177d 100644
--- a/core/pim/todo/otaskeditor.cpp
+++ b/core/pim/todo/otaskeditor.cpp
@@ -14,49 +14,48 @@ using namespace Opie;
14OTaskEditor::OTaskEditor(int cur) 14OTaskEditor::OTaskEditor(int cur)
15 : QDialog( 0, 0, TRUE, WStyle_ContextHelp ) { 15 : QDialog( 0, 0, TRUE, WStyle_ContextHelp ) {
16 init(); 16 init();
17 init( cur ); 17 init( cur );
18} 18}
19OTaskEditor::OTaskEditor( const OPimTodo& to) 19OTaskEditor::OTaskEditor( const OPimTodo& to)
20 : QDialog( 0, 0, TRUE, WStyle_ContextHelp ) { 20 : QDialog( 0, 0, TRUE, WStyle_ContextHelp ) {
21 init(); 21 init();
22 init( to ); 22 init( to );
23} 23}
24OTaskEditor::~OTaskEditor() { 24OTaskEditor::~OTaskEditor() {
25 25
26} 26}
27void OTaskEditor::init( int cur ) { 27void OTaskEditor::init( int cur ) {
28 OPimTodo to; 28 OPimTodo to;
29 to.setUid( 1 ); // generate a new uid 29 to.setUid( 1 ); // generate a new uid
30 if ( cur != 0 ) 30 if ( cur != 0 )
31 to.setCategories( cur ); 31 to.setCategories( cur );
32 load(to); 32 load(to);
33} 33}
34void OTaskEditor::init( const OPimTodo& to ) { 34void OTaskEditor::init( const OPimTodo& to ) {
35 load( to ); 35 load( to );
36} 36}
37OPimTodo OTaskEditor::todo()const{ 37OPimTodo OTaskEditor::todo()const{
38 Opie::Core::owarn << "saving!" << oendl;
39 OPimTodo to ( m_todo ); 38 OPimTodo to ( m_todo );
40 m_overView->save( to ); 39 m_overView->save( to );
41 m_stat->save( to ); 40 m_stat->save( to );
42 to.setRecurrence( m_rec->recurrence() ); 41 to.setRecurrence( m_rec->recurrence() );
43 m_alarm->save( to ); 42 m_alarm->save( to );
44 43
45 return to; 44 return to;
46} 45}
47void OTaskEditor::load(const OPimTodo& to) { 46void OTaskEditor::load(const OPimTodo& to) {
48 m_overView->load( to ); 47 m_overView->load( to );
49 m_stat->load( to ); 48 m_stat->load( to );
50 m_rec->setRecurrence( to.recurrence(), to.hasDueDate() ? to.dueDate() : QDate::currentDate() ); 49 m_rec->setRecurrence( to.recurrence(), to.hasDueDate() ? to.dueDate() : QDate::currentDate() );
51 m_alarm->load( to ); 50 m_alarm->load( to );
52 51
53 m_todo = to; 52 m_todo = to;
54} 53}
55void OTaskEditor::init() { 54void OTaskEditor::init() {
56 setCaption(tr("Task Editor") ); 55 setCaption(tr("Task Editor") );
57 56
58 QVBoxLayout* layo = new QVBoxLayout( this ); 57 QVBoxLayout* layo = new QVBoxLayout( this );
59 m_tab = new OTabWidget( this ); 58 m_tab = new OTabWidget( this );
60 layo->addWidget( m_tab ); 59 layo->addWidget( m_tab );
61 60
62 /* 61 /*
diff --git a/core/pim/todo/tableview.cpp b/core/pim/todo/tableview.cpp
index 0b1c579..b7458d8 100644
--- a/core/pim/todo/tableview.cpp
+++ b/core/pim/todo/tableview.cpp
@@ -174,136 +174,136 @@ int TableView::current() {
174int TableView::next() { 174int TableView::next() {
175 if ( numRows() == 0 ) return 0; 175 if ( numRows() == 0 ) return 0;
176 if ( currentRow() + 1 >= numRows() ) return 0; 176 if ( currentRow() + 1 >= numRows() ) return 0;
177 setCurrentCell( currentRow() +1, currentColumn() ); 177 setCurrentCell( currentRow() +1, currentColumn() );
178 return sorted().uidAt( currentRow() ); 178 return sorted().uidAt( currentRow() );
179} 179}
180int TableView::prev() { 180int TableView::prev() {
181 if ( numRows() == 0 ) return 0; 181 if ( numRows() == 0 ) return 0;
182 if ( currentRow() - 1 < 0 ) return 0; 182 if ( currentRow() - 1 < 0 ) return 0;
183 setCurrentCell( currentRow() -1, currentColumn() ); 183 setCurrentCell( currentRow() -1, currentColumn() );
184 return sorted().uidAt( currentRow() ); 184 return sorted().uidAt( currentRow() );
185 185
186} 186}
187QString TableView::currentRepresentation() { 187QString TableView::currentRepresentation() {
188 OPimTodo to = sorted()[currentRow()]; 188 OPimTodo to = sorted()[currentRow()];
189 return to.summary().isEmpty() ? to.description().left(20) : to.summary() ; 189 return to.summary().isEmpty() ? to.description().left(20) : to.summary() ;
190} 190}
191/* show overdue */ 191/* show overdue */
192void TableView::showOverDue( bool ) { 192void TableView::showOverDue( bool ) {
193 clear(); 193 clear();
194 updateView(); 194 updateView();
195} 195}
196 196
197void TableView::updateView( ) { 197void TableView::updateView( ) {
198 Opie::Core::owarn << "update view" << oendl; 198 owarn << "update view" << oendl;
199 m_row = false; 199 m_row = false;
200 static int id; 200 static int id;
201 id = startTimer(4000 ); 201 id = startTimer(4000 );
202 /* FIXME we want one page to be read! 202 /* FIXME we want one page to be read!
203 * 203 *
204 * Calculate that screensize 204 * Calculate that screensize
205 */ 205 */
206 todoWindow()->setReadAhead( 4 ); 206 todoWindow()->setReadAhead( 4 );
207 sort(); 207 sort();
208 OPimTodoAccess::List::Iterator it, end; 208 OPimTodoAccess::List::Iterator it, end;
209 it = sorted().begin(); 209 it = sorted().begin();
210 end = sorted().end(); 210 end = sorted().end();
211 211
212 Opie::Core::owarn << "setTodos" << oendl; 212 owarn << "setTodos" << oendl;
213 QTime time; 213 QTime time;
214 time.start(); 214 time.start();
215 m_enablePaint = false; 215 m_enablePaint = false;
216 setUpdatesEnabled( false ); 216 setUpdatesEnabled( false );
217 viewport()->setUpdatesEnabled( false ); 217 viewport()->setUpdatesEnabled( false );
218 218
219 setNumRows( it.count() ); 219 setNumRows( it.count() );
220 if ( it.count() == 0 ) 220 if ( it.count() == 0 )
221 killTimer(id); 221 killTimer(id);
222 222
223// int elc = time.elapsed(); 223// int elc = time.elapsed();
224 setUpdatesEnabled( true ); 224 setUpdatesEnabled( true );
225 viewport()->setUpdatesEnabled( true ); 225 viewport()->setUpdatesEnabled( true );
226 viewport()->update(); 226 viewport()->update();
227 227
228 m_enablePaint = true; 228 m_enablePaint = true;
229// int el = time.elapsed(); 229// int el = time.elapsed();
230} 230}
231void TableView::setTodo( int, const OPimTodo&) { 231void TableView::setTodo( int, const OPimTodo&) {
232 sort(); 232 sort();
233 233
234 /* repaint */ 234 /* repaint */
235 repaint(); 235 repaint();
236} 236}
237void TableView::addEvent( const OPimTodo&) { 237void TableView::addEvent( const OPimTodo&) {
238 238
239 /* fix problems of not showing the 'Haken' */ 239 /* fix problems of not showing the 'Haken' */
240 updateView(); 240 updateView();
241} 241}
242/* 242/*
243 * find the event 243 * find the event
244 * and then replace the complete row 244 * and then replace the complete row
245 */ 245 */
246void TableView::replaceEvent( const OPimTodo& ev) { 246void TableView::replaceEvent( const OPimTodo& ev) {
247 addEvent( ev ); 247 addEvent( ev );
248} 248}
249/* 249/*
250 * re aligning table can be slow too 250 * re aligning table can be slow too
251 * FIXME: look what performs better 251 * FIXME: look what performs better
252 * either this or the old align table 252 * either this or the old align table
253 */ 253 */
254void TableView::removeEvent( int ) { 254void TableView::removeEvent( int ) {
255 updateView(); 255 updateView();
256} 256}
257void TableView::setShowCompleted( bool b) { 257void TableView::setShowCompleted( bool b) {
258 Opie::Core::owarn << "Show Completed " << b << oendl; 258 owarn << "Show Completed " << b << oendl;
259 updateView(); 259 updateView();
260} 260}
261void TableView::setShowDeadline( bool b ) { 261void TableView::setShowDeadline( bool b ) {
262 Opie::Core::owarn << "Show Deadline " << b << oendl; 262 owarn << "Show Deadline " << b << oendl;
263 if ( b ) 263 if ( b )
264 showColumn( 3 ); 264 showColumn( 3 );
265 else 265 else
266 hideColumn( 3 ); 266 hideColumn( 3 );
267 267
268 // Try to intelligently size columns 268 // Try to intelligently size columns
269 // TODO - would use width() below, but doesn't have valid value at time of c'tor 269 // TODO - would use width() below, but doesn't have valid value at time of c'tor
270 int col2width = 238; 270 int col2width = 238;
271 int width = m_pic_completed.width(); 271 int width = m_pic_completed.width();
272 setColumnWidth( 0, width ); 272 setColumnWidth( 0, width );
273 col2width -= width; 273 col2width -= width;
274 width = fontMetrics().boundingRect( horizontalHeader()->label( 1 ) ).width() + 8; 274 width = fontMetrics().boundingRect( horizontalHeader()->label( 1 ) ).width() + 8;
275 setColumnWidth( 1, width ); 275 setColumnWidth( 1, width );
276 col2width -= width; 276 col2width -= width;
277 if ( b ) { 277 if ( b ) {
278 width = fontMetrics().boundingRect( horizontalHeader()->label( 3 ) ).width() + 8; 278 width = fontMetrics().boundingRect( horizontalHeader()->label( 3 ) ).width() + 8;
279 setColumnWidth( 3, width ); 279 setColumnWidth( 3, width );
280 col2width -= width; 280 col2width -= width;
281 } 281 }
282 setColumnWidth( 2, col2width ); 282 setColumnWidth( 2, col2width );
283} 283}
284void TableView::setShowCategory( const QString& str) { 284void TableView::setShowCategory( const QString& str) {
285 Opie::Core::owarn << "setShowCategory" << oendl; 285 owarn << "setShowCategory" << oendl;
286 if ( str != m_oleCat || m_first ) 286 if ( str != m_oleCat || m_first )
287 updateView(); 287 updateView();
288 288
289 m_oleCat = str; 289 m_oleCat = str;
290 m_first = false; 290 m_first = false;
291 291
292} 292}
293void TableView::clear() { 293void TableView::clear() {
294 setNumRows(0); 294 setNumRows(0);
295} 295}
296void TableView::slotClicked(int row, int col, int, 296void TableView::slotClicked(int row, int col, int,
297 const QPoint& point) { 297 const QPoint& point) {
298 if ( m_editorWidget.cellWidget() ) { 298 if ( m_editorWidget.cellWidget() ) {
299 //setCellContentFromEditor(m_editorWidget.cellRow(), m_editorWidget.cellCol() ); 299 //setCellContentFromEditor(m_editorWidget.cellRow(), m_editorWidget.cellCol() );
300 endEdit(m_editorWidget.cellRow(), m_editorWidget.cellCol(), 300 endEdit(m_editorWidget.cellRow(), m_editorWidget.cellCol(),
301 true, true ); 301 true, true );
302 m_editorWidget.releaseCellWidget(); 302 m_editorWidget.releaseCellWidget();
303 } 303 }
304 304
305 if ( !cellGeometry(row, col ).contains(point ) ) 305 if ( !cellGeometry(row, col ).contains(point ) )
306 return; 306 return;
307 307
308 int ui= sorted().uidAt( row ); 308 int ui= sorted().uidAt( row );
309 309
@@ -326,73 +326,73 @@ void TableView::slotClicked(int row, int col, int,
326 // Priority emit a double click... 326 // Priority emit a double click...
327 case 1:{ 327 case 1:{
328 QWidget* wid = beginEdit( row, col, FALSE ); 328 QWidget* wid = beginEdit( row, col, FALSE );
329 m_editorWidget.setCellWidget( wid, row, col ); 329 m_editorWidget.setCellWidget( wid, row, col );
330 } 330 }
331 break; 331 break;
332 332
333 case 2: { 333 case 2: {
334 m_menuTimer->stop(); 334 m_menuTimer->stop();
335 showTodo( ui ); 335 showTodo( ui );
336 break; 336 break;
337 } 337 }
338 case 3: { 338 case 3: {
339 m_menuTimer->stop(); 339 m_menuTimer->stop();
340 TodoView::edit( ui ); 340 TodoView::edit( ui );
341 break; 341 break;
342 } 342 }
343 } 343 }
344 344
345 345
346} 346}
347void TableView::slotPressed(int row, int col, int, 347void TableView::slotPressed(int row, int col, int,
348 const QPoint& point) { 348 const QPoint& point) {
349 349
350 Opie::Core::owarn << "pressed row " << row << " col " << col << " x:" << point.x() 350 owarn << "pressed row " << row << " col " << col << " x:" << point.x()
351 << "+y:" << point.y() << oendl; 351 << "+y:" << point.y() << oendl;
352 m_prevP = point; 352 m_prevP = point;
353 /* TextColumn column */ 353 /* TextColumn column */
354 if ( col == 2 && cellGeometry( row, col ).contains( point ) ) 354 if ( col == 2 && cellGeometry( row, col ).contains( point ) )
355 m_menuTimer->start( 750, TRUE ); 355 m_menuTimer->start( 750, TRUE );
356} 356}
357void TableView::slotValueChanged( int, int ) { 357void TableView::slotValueChanged( int, int ) {
358 Opie::Core::owarn << "Value Changed" << oendl; 358 owarn << "Value Changed" << oendl;
359} 359}
360void TableView::slotCurrentChanged(int, int ) { 360void TableView::slotCurrentChanged(int, int ) {
361 m_menuTimer->stop(); 361 m_menuTimer->stop();
362} 362}
363QWidget* TableView::widget() { 363QWidget* TableView::widget() {
364 return this; 364 return this;
365} 365}
366/* 366/*
367 * We need to overwrite sortColumn 367 * We need to overwrite sortColumn
368 * because we want to sort whole row 368 * because we want to sort whole row
369 * based 369 * based
370 * We event want to set the setOrder 370 * We event want to set the setOrder
371 * to a sort() and update() 371 * to a sort() and update()
372 */ 372 */
373void TableView::sortColumn( int col, bool asc, bool ) { 373void TableView::sortColumn( int col, bool asc, bool ) {
374 Opie::Core::owarn << "bool " << asc << oendl; 374 owarn << "bool " << asc << oendl;
375 setSortOrder( col ); 375 setSortOrder( col );
376 setAscending( asc ); 376 setAscending( asc );
377 updateView(); 377 updateView();
378} 378}
379void TableView::viewportPaintEvent( QPaintEvent* e) { 379void TableView::viewportPaintEvent( QPaintEvent* e) {
380 if (m_enablePaint ) 380 if (m_enablePaint )
381 QTable::viewportPaintEvent( e ); 381 QTable::viewportPaintEvent( e );
382} 382}
383/* 383/*
384 * This segment is copyrighted by TT 384 * This segment is copyrighted by TT
385 * it was taken from their todolist 385 * it was taken from their todolist
386 * application this code is GPL 386 * application this code is GPL
387 */ 387 */
388void TableView::paintCell(QPainter* p, int row, int col, const QRect& cr, bool ) { 388void TableView::paintCell(QPainter* p, int row, int col, const QRect& cr, bool ) {
389 const QColorGroup &cg = colorGroup(); 389 const QColorGroup &cg = colorGroup();
390 390
391 p->save(); 391 p->save();
392 392
393 OPimTodo task = sorted()[row]; 393 OPimTodo task = sorted()[row];
394 394
395 // TODO - give user option for grid or bars? 395 // TODO - give user option for grid or bars?
396 396
397 // Paint alternating background bars 397 // Paint alternating background bars
398 if ( (row % 2 ) == 0 ) { 398 if ( (row % 2 ) == 0 ) {
@@ -473,49 +473,49 @@ void TableView::paintCell(QPainter* p, int row, int col, const QRect& cr, bool
473} 473}
474QWidget* TableView::createEditor(int row, int col, bool )const { 474QWidget* TableView::createEditor(int row, int col, bool )const {
475 switch( col ) { 475 switch( col ) {
476 case 1: { 476 case 1: {
477 /* the priority stuff */ 477 /* the priority stuff */
478 QComboBox* combo = new QComboBox( viewport() ); 478 QComboBox* combo = new QComboBox( viewport() );
479 for ( int i = 0; i < 5; i++ ) { 479 for ( int i = 0; i < 5; i++ ) {
480 combo->insertItem( m_pic_priority[ i ] ); 480 combo->insertItem( m_pic_priority[ i ] );
481 } 481 }
482 combo->setCurrentItem( sorted()[row].priority()-1 ); 482 combo->setCurrentItem( sorted()[row].priority()-1 );
483 return combo; 483 return combo;
484 } 484 }
485 /* summary */ 485 /* summary */
486 case 2:{ 486 case 2:{
487 QLineEdit* edit = new QLineEdit( viewport() ); 487 QLineEdit* edit = new QLineEdit( viewport() );
488 edit->setText( sorted()[row].summary() ); 488 edit->setText( sorted()[row].summary() );
489 return edit; 489 return edit;
490 } 490 }
491 case 0: 491 case 0:
492 default: 492 default:
493 return 0l; 493 return 0l;
494 } 494 }
495} 495}
496void TableView::setCellContentFromEditor(int row, int col ) { 496void TableView::setCellContentFromEditor(int row, int col ) {
497 Opie::Core::owarn << "set cell content from editor" << oendl; 497 owarn << "set cell content from editor" << oendl;
498 if ( col == 1 ) { 498 if ( col == 1 ) {
499 QWidget* wid = cellWidget(row, 1 ); 499 QWidget* wid = cellWidget(row, 1 );
500 if ( wid->inherits("QComboBox") ) { 500 if ( wid->inherits("QComboBox") ) {
501 int pri = ((QComboBox*)wid)->currentItem() + 1; 501 int pri = ((QComboBox*)wid)->currentItem() + 1;
502 OPimTodo todo = sorted()[row]; 502 OPimTodo todo = sorted()[row];
503 if ( todo.priority() != pri ) { 503 if ( todo.priority() != pri ) {
504 todo.setPriority( pri ); 504 todo.setPriority( pri );
505 TodoView::update( todo.uid(), todo ); 505 TodoView::update( todo.uid(), todo );
506 updateView(); 506 updateView();
507 } 507 }
508 } 508 }
509 }else if ( col == 2) { 509 }else if ( col == 2) {
510 QWidget* wid = cellWidget(row, 2); 510 QWidget* wid = cellWidget(row, 2);
511 if ( wid->inherits("QLineEdit") ) { 511 if ( wid->inherits("QLineEdit") ) {
512 QString text = ((QLineEdit*)wid)->text(); 512 QString text = ((QLineEdit*)wid)->text();
513 OPimTodo todo = sorted()[row]; 513 OPimTodo todo = sorted()[row];
514 if ( todo.summary() != text ) { 514 if ( todo.summary() != text ) {
515 todo.setSummary( text ); 515 todo.setSummary( text );
516 TodoView::update( todo.uid(), todo ); 516 TodoView::update( todo.uid(), todo );
517 updateView(); 517 updateView();
518 } 518 }
519 } 519 }
520 } 520 }
521} 521}
@@ -557,49 +557,49 @@ void TableView::timerEvent( QTimerEvent* ) {
557// We want a strike through completed ;) 557// We want a strike through completed ;)
558// durchstreichen to complete 558// durchstreichen to complete
559/* 559/*
560 * MouseTracking is off this mean we only receive 560 * MouseTracking is off this mean we only receive
561 * these events if the mouse button is pressed 561 * these events if the mouse button is pressed
562 * We've the previous point saved 562 * We've the previous point saved
563 * We check if the previous and current Point are 563 * We check if the previous and current Point are
564 * in the same row. 564 * in the same row.
565 * Then we check if they're some pixel horizontal away 565 * Then we check if they're some pixel horizontal away
566 * if the distance between the two points is greater than 566 * if the distance between the two points is greater than
567 * 8 we mark the underlying todo as completed and do a repaint 567 * 8 we mark the underlying todo as completed and do a repaint
568 * 568 *
569 * BUG: When clicking on the Due column and it's scrollable 569 * BUG: When clicking on the Due column and it's scrollable
570 * the todo is marked as completed... 570 * the todo is marked as completed...
571 * REASON: QTable is doing auto scrolling which leads to a move 571 * REASON: QTable is doing auto scrolling which leads to a move
572 * in the x coordinate and this way it's able to pass the 572 * in the x coordinate and this way it's able to pass the
573 * m_completeStrokeWidth criteria 573 * m_completeStrokeWidth criteria
574 * WORKAROUND: strike through needs to strike through the same 574 * WORKAROUND: strike through needs to strike through the same
575 * row and two columns! 575 * row and two columns!
576 */ 576 */
577void TableView::contentsMouseReleaseEvent( QMouseEvent* e) { 577void TableView::contentsMouseReleaseEvent( QMouseEvent* e) {
578 int row = rowAt(m_prevP.y()); 578 int row = rowAt(m_prevP.y());
579 int colOld = columnAt(m_prevP.x() ); 579 int colOld = columnAt(m_prevP.x() );
580 int colNew = columnAt(e->x() ); 580 int colNew = columnAt(e->x() );
581 Opie::Core::owarn << "colNew: " << colNew << " colOld: " << colOld << oendl; 581 owarn << "colNew: " << colNew << " colOld: " << colOld << oendl;
582 if ( row == rowAt( e->y() ) && row != -1 && 582 if ( row == rowAt( e->y() ) && row != -1 &&
583 colOld != colNew ) { 583 colOld != colNew ) {
584 TodoView::complete( sorted()[row] ); 584 TodoView::complete( sorted()[row] );
585 return; 585 return;
586 } 586 }
587 QTable::contentsMouseReleaseEvent( e ); 587 QTable::contentsMouseReleaseEvent( e );
588} 588}
589void TableView::contentsMouseMoveEvent( QMouseEvent* e ) { 589void TableView::contentsMouseMoveEvent( QMouseEvent* e ) {
590 m_menuTimer->stop(); 590 m_menuTimer->stop();
591 QTable::contentsMouseMoveEvent( e ); 591 QTable::contentsMouseMoveEvent( e );
592} 592}
593void TableView::keyPressEvent( QKeyEvent* event) { 593void TableView::keyPressEvent( QKeyEvent* event) {
594 if ( m_editorWidget.cellWidget() ) { 594 if ( m_editorWidget.cellWidget() ) {
595// setCellContentFromEditor(m_editorWidget.cellRow(), m_editorWidget.cellCol() ); 595// setCellContentFromEditor(m_editorWidget.cellRow(), m_editorWidget.cellCol() );
596 endEdit(m_editorWidget.cellRow(), m_editorWidget.cellCol(), 596 endEdit(m_editorWidget.cellRow(), m_editorWidget.cellCol(),
597 true, true ); 597 true, true );
598 m_editorWidget.releaseCellWidget(); 598 m_editorWidget.releaseCellWidget();
599 setFocus(); 599 setFocus();
600 } 600 }
601 601
602 if ( sorted().count() < 1 ) { 602 if ( sorted().count() < 1 ) {
603 QTable::keyPressEvent( event ); 603 QTable::keyPressEvent( event );
604 return; 604 return;
605 } 605 }
diff --git a/core/pim/todo/templatedialog.cpp b/core/pim/todo/templatedialog.cpp
index 32327a6..8d72297 100644
--- a/core/pim/todo/templatedialog.cpp
+++ b/core/pim/todo/templatedialog.cpp
@@ -30,35 +30,31 @@ TemplateDialog::TemplateDialog( QWidget* widget )
30 m_edit = new QPushButton( QWidget::tr("Edit"), m_btnBar ); 30 m_edit = new QPushButton( QWidget::tr("Edit"), m_btnBar );
31 m_rem = new QPushButton( QWidget::tr("Remove"), m_btnBar ); 31 m_rem = new QPushButton( QWidget::tr("Remove"), m_btnBar );
32 m_main->addWidget( m_btnBar ); 32 m_main->addWidget( m_btnBar );
33 33
34 connect(m_add, SIGNAL(clicked() ), 34 connect(m_add, SIGNAL(clicked() ),
35 this, SLOT(slotAdd() ) ); 35 this, SLOT(slotAdd() ) );
36 connect(m_edit, SIGNAL(clicked() ), 36 connect(m_edit, SIGNAL(clicked() ),
37 this, SLOT(slotEdit() ) ); 37 this, SLOT(slotEdit() ) );
38 connect(m_rem, SIGNAL(clicked() ), 38 connect(m_rem, SIGNAL(clicked() ),
39 this, SLOT(slotRemove() ) ); 39 this, SLOT(slotRemove() ) );
40 connect(m_lne, SIGNAL(returnPressed() ), 40 connect(m_lne, SIGNAL(returnPressed() ),
41 this, SLOT(slotReturn() ) ); 41 this, SLOT(slotReturn() ) );
42 42
43} 43}
44TemplateDialog::~TemplateDialog() { 44TemplateDialog::~TemplateDialog() {
45 // Qt does delete our widgets 45 // Qt does delete our widgets
46} 46}
47QListView* TemplateDialog::listView() { 47QListView* TemplateDialog::listView() {
48 return m_list; 48 return m_list;
49} 49}
50QLineEdit* TemplateDialog::edit() { 50QLineEdit* TemplateDialog::edit() {
51 return m_lne; 51 return m_lne;
52} 52}
53void TemplateDialog::slotAdd() { 53void TemplateDialog::slotAdd() {
54 Opie::Core::owarn << "Not Implemented here" << oendl;
55} 54}
56void TemplateDialog::slotRemove() { 55void TemplateDialog::slotRemove() {
57 Opie::Core::owarn << "Not Implemented here" << oendl;
58} 56}
59void TemplateDialog::slotEdit() { 57void TemplateDialog::slotEdit() {
60 Opie::Core::owarn << "Not Implemented here" << oendl;
61} 58}
62void TemplateDialog::slotReturn() { 59void TemplateDialog::slotReturn() {
63 Opie::Core::owarn << "Not Implemented here" << oendl;
64} 60}
diff --git a/core/pim/todo/todoeditor.cpp b/core/pim/todo/todoeditor.cpp
index 7857d52..a1c559d 100644
--- a/core/pim/todo/todoeditor.cpp
+++ b/core/pim/todo/todoeditor.cpp
@@ -10,50 +10,48 @@ using namespace Todo;
10 10
11Editor::Editor() { 11Editor::Editor() {
12 m_accepted = false; 12 m_accepted = false;
13 m_self = 0l; 13 m_self = 0l;
14} 14}
15Editor::~Editor() { 15Editor::~Editor() {
16 delete m_self; 16 delete m_self;
17 m_self = 0; 17 m_self = 0;
18} 18}
19OPimTodo Editor::newTodo( int cur, 19OPimTodo Editor::newTodo( int cur,
20 QWidget*) { 20 QWidget*) {
21 21
22 OTaskEditor *e = self(); 22 OTaskEditor *e = self();
23 e->setCaption( QObject::tr("Enter Task") ); 23 e->setCaption( QObject::tr("Enter Task") );
24 e->init( cur ); 24 e->init( cur );
25 25
26 int ret = QPEApplication::execDialog( e ); 26 int ret = QPEApplication::execDialog( e );
27 27
28 if ( QDialog::Accepted == ret ) { 28 if ( QDialog::Accepted == ret ) {
29 m_accepted = true; 29 m_accepted = true;
30 }else 30 }else
31 m_accepted = false; 31 m_accepted = false;
32 32
33 OPimTodo ev = e->todo(); 33 OPimTodo ev = e->todo();
34 Opie::Core::owarn << "Todo uid" << oendl;
35 Opie::Core::owarn << "Todo " << ev.summary() << " " << ev.progress() << " " << ev.isCompleted() << oendl;
36 ev.setUid(1); 34 ev.setUid(1);
37 35
38 return ev; 36 return ev;
39} 37}
40OPimTodo Editor::edit( QWidget *, 38OPimTodo Editor::edit( QWidget *,
41 const OPimTodo& todo ) { 39 const OPimTodo& todo ) {
42 OTaskEditor *e = self(); 40 OTaskEditor *e = self();
43 e->init( todo ); 41 e->init( todo );
44 e->setCaption( QObject::tr( "Edit Task" ) ); 42 e->setCaption( QObject::tr( "Edit Task" ) );
45 43
46 int ret = QPEApplication::execDialog( e ); 44 int ret = QPEApplication::execDialog( e );
47 45
48 OPimTodo ev = e->todo(); 46 OPimTodo ev = e->todo();
49 if ( ret == QDialog::Accepted ) 47 if ( ret == QDialog::Accepted )
50 m_accepted = true; 48 m_accepted = true;
51 else 49 else
52 m_accepted = false; 50 m_accepted = false;
53 51
54 return ev; 52 return ev;
55} 53}
56bool Editor::accepted()const { 54bool Editor::accepted()const {
57 return m_accepted; 55 return m_accepted;
58} 56}
59OTaskEditor* Editor::self() { 57OTaskEditor* Editor::self() {
diff --git a/core/pim/todo/todomanager.cpp b/core/pim/todo/todomanager.cpp
index 7826747..c4b8fbc 100644
--- a/core/pim/todo/todomanager.cpp
+++ b/core/pim/todo/todomanager.cpp
@@ -19,58 +19,58 @@
19 :     =  ...= . :.=- 19 :     =  ...= . :.=-
20 -.   .:....=;==+<; You should have received a copy of the GNU 20 -.   .:....=;==+<; You should have received a copy of the GNU
21  -_. . .   )=.  = Library General Public License along with 21  -_. . .   )=.  = Library General Public License along with
22    --        :-=` this library; see the file COPYING.LIB. 22    --        :-=` this library; see the file COPYING.LIB.
23 If not, write to the Free Software Foundation, 23 If not, write to the Free Software Foundation,
24 Inc., 59 Temple Place - Suite 330, 24 Inc., 59 Temple Place - Suite 330,
25 Boston, MA 02111-1307, USA. 25 Boston, MA 02111-1307, USA.
26 26
27*/ 27*/
28 28
29#include <opie2/odebug.h> 29#include <opie2/odebug.h>
30 30
31#include <qpe/categoryselect.h> 31#include <qpe/categoryselect.h>
32 32
33#include "todomanager.h" 33#include "todomanager.h"
34 34
35using namespace Todo; 35using namespace Todo;
36 36
37TodoManager::TodoManager( QObject *obj ) 37TodoManager::TodoManager( QObject *obj )
38 : QObject( obj ) { 38 : QObject( obj ) {
39 m_db = 0l; 39 m_db = 0l;
40 QTime time; 40 QTime time;
41 time.start(); 41 time.start();
42 int el = time.elapsed(); 42 int el = time.elapsed();
43 Opie::Core::owarn << "QTimer for loading " << el/1000 << oendl; 43 owarn << "QTimer for loading " << el/1000 << oendl;
44} 44}
45TodoManager::~TodoManager() { 45TodoManager::~TodoManager() {
46 delete m_db; 46 delete m_db;
47} 47}
48OPimTodo TodoManager::event(int uid ) { 48OPimTodo TodoManager::event(int uid ) {
49 return m_db->find( uid ); 49 return m_db->find( uid );
50} 50}
51void TodoManager::updateList() { 51void TodoManager::updateList() {
52 Opie::Core::owarn << "update lists" << oendl; 52 owarn << "update lists" << oendl;
53 m_list = m_db->allRecords(); 53 m_list = m_db->allRecords();
54} 54}
55OPimTodoAccess::List TodoManager::list() const{ 55OPimTodoAccess::List TodoManager::list() const{
56 return m_list; 56 return m_list;
57} 57}
58OPimTodoAccess::List TodoManager::sorted( bool asc, int so, int f, int cat ) { 58OPimTodoAccess::List TodoManager::sorted( bool asc, int so, int f, int cat ) {
59 return m_db->sorted( asc, so, f, cat ); 59 return m_db->sorted( asc, so, f, cat );
60} 60}
61OPimTodoAccess::List::Iterator TodoManager::overDue() { 61OPimTodoAccess::List::Iterator TodoManager::overDue() {
62 int filter = 2 | 1; 62 int filter = 2 | 1;
63 m_list = m_db->sorted(m_asc, m_sortOrder, filter, m_ca ); 63 m_list = m_db->sorted(m_asc, m_sortOrder, filter, m_ca );
64 m_it = m_list.begin(); 64 m_it = m_list.begin();
65 return m_it; 65 return m_it;
66} 66}
67OPimTodoAccess::List::Iterator TodoManager::fromTo( const QDate& start, 67OPimTodoAccess::List::Iterator TodoManager::fromTo( const QDate& start,
68 const QDate& end ) { 68 const QDate& end ) {
69 m_list = m_db->effectiveToDos( start, end ); 69 m_list = m_db->effectiveToDos( start, end );
70 m_it = m_list.begin(); 70 m_it = m_list.begin();
71 return m_it; 71 return m_it;
72} 72}
73OPimTodoAccess::List::Iterator TodoManager::query( const OPimTodo& ev, int query ) { 73OPimTodoAccess::List::Iterator TodoManager::query( const OPimTodo& ev, int query ) {
74 m_list = m_db->queryByExample( ev, query ); 74 m_list = m_db->queryByExample( ev, query );
75 m_it = m_list.begin(); 75 m_it = m_list.begin();
76 return m_it; 76 return m_it;
diff --git a/core/pim/todo/todotemplatemanager.cpp b/core/pim/todo/todotemplatemanager.cpp
index 0b20d5a..7690d37 100644
--- a/core/pim/todo/todotemplatemanager.cpp
+++ b/core/pim/todo/todotemplatemanager.cpp
@@ -15,68 +15,65 @@ TemplateManager::TemplateManager() {
15} 15}
16TemplateManager::~TemplateManager() { 16TemplateManager::~TemplateManager() {
17 save(); 17 save();
18} 18}
19void TemplateManager::load() { 19void TemplateManager::load() {
20 Config conf("todolist_templates"); 20 Config conf("todolist_templates");
21 OPimTodoAccessXML *xml = new OPimTodoAccessXML( QString::fromLatin1("template"), 21 OPimTodoAccessXML *xml = new OPimTodoAccessXML( QString::fromLatin1("template"),
22 m_path ); 22 m_path );
23 OPimTodoAccess todoDB(xml ); 23 OPimTodoAccess todoDB(xml );
24 todoDB.load(); 24 todoDB.load();
25 25
26 OPimTodoAccess::List::Iterator it; 26 OPimTodoAccess::List::Iterator it;
27 OPimTodoAccess::List list = todoDB.allRecords(); 27 OPimTodoAccess::List list = todoDB.allRecords();
28 for ( it = list.begin(); it != list.end(); ++it ) { 28 for ( it = list.begin(); it != list.end(); ++it ) {
29 OPimTodo ev = (*it); 29 OPimTodo ev = (*it);
30 conf.setGroup( QString::number( ev.uid() ) ); 30 conf.setGroup( QString::number( ev.uid() ) );
31 QString str = conf.readEntry("Name", QString::null ); 31 QString str = conf.readEntry("Name", QString::null );
32 if (str.isEmpty() ) 32 if (str.isEmpty() )
33 continue; 33 continue;
34 34
35 m_templates.insert( str, ev ); 35 m_templates.insert( str, ev );
36 } 36 }
37} 37}
38void TemplateManager::save() { 38void TemplateManager::save() {
39 Opie::Core::owarn << "Saving!!!!" << oendl;
40 Config conf("todolist_templates"); 39 Config conf("todolist_templates");
41 40
42 OPimTodoAccessXML *res = new OPimTodoAccessXML( "template", 41 OPimTodoAccessXML *res = new OPimTodoAccessXML( "template",
43 m_path ); 42 m_path );
44 OPimTodoAccess db(res); 43 OPimTodoAccess db(res);
45 db.load(); 44 db.load();
46 db.clear(); 45 db.clear();
47 46
48 47
49 QMap<QString, OPimTodo>::Iterator it; 48 QMap<QString, OPimTodo>::Iterator it;
50 for ( it = m_templates.begin(); it != m_templates.end(); ++it ) { 49 for ( it = m_templates.begin(); it != m_templates.end(); ++it ) {
51 OPimTodo ev = it.data(); 50 OPimTodo ev = it.data();
52 conf.setGroup( QString::number( ev.uid() ) ); 51 conf.setGroup( QString::number( ev.uid() ) );
53 Opie::Core::owarn << "Name " << it.key() << oendl;
54 conf.writeEntry("Name", it.key() ); 52 conf.writeEntry("Name", it.key() );
55 db.add( ev ); 53 db.add( ev );
56 } 54 }
57 db.save(); 55 db.save();
58} 56}
59void TemplateManager::addEvent( const QString& str, 57void TemplateManager::addEvent( const QString& str,
60 const OPimTodo& ev) { 58 const OPimTodo& ev) {
61 Opie::Core::owarn << "AddEvent " << str << oendl;
62 OPimTodo todo = ev; 59 OPimTodo todo = ev;
63 if( ev.uid() == 0 ) 60 if( ev.uid() == 0 )
64 todo.setUid(1); // generate a new uid 61 todo.setUid(1); // generate a new uid
65 62
66 m_templates.replace( str, todo ); 63 m_templates.replace( str, todo );
67} 64}
68void TemplateManager::removeEvent( const QString& str ) { 65void TemplateManager::removeEvent( const QString& str ) {
69 m_templates.remove( str ); 66 m_templates.remove( str );
70} 67}
71QStringList TemplateManager::templates() const { 68QStringList TemplateManager::templates() const {
72 QStringList list; 69 QStringList list;
73 QMap<QString, OPimTodo>::ConstIterator it; 70 QMap<QString, OPimTodo>::ConstIterator it;
74 for (it = m_templates.begin(); it != m_templates.end(); ++it ) { 71 for (it = m_templates.begin(); it != m_templates.end(); ++it ) {
75 list << it.key(); 72 list << it.key();
76 } 73 }
77 74
78 return list; 75 return list;
79} 76}
80OPimTodo TemplateManager::templateEvent( const QString& templateName ) { 77OPimTodo TemplateManager::templateEvent( const QString& templateName ) {
81 return m_templates[templateName]; 78 return m_templates[templateName];
82} 79}
diff --git a/core/pim/todo/todoview.cpp b/core/pim/todo/todoview.cpp
index 03e1060..3d2c982 100644
--- a/core/pim/todo/todoview.cpp
+++ b/core/pim/todo/todoview.cpp
@@ -12,58 +12,58 @@ using namespace Todo;
12TodoView::TodoView( MainWindow* win ) 12TodoView::TodoView( MainWindow* win )
13 : m_main( win ) 13 : m_main( win )
14{ 14{
15 m_asc = false; 15 m_asc = false;
16 m_sortOrder = -1; 16 m_sortOrder = -1;
17} 17}
18TodoView::~TodoView() { 18TodoView::~TodoView() {
19}; 19};
20MainWindow* TodoView::todoWindow() { 20MainWindow* TodoView::todoWindow() {
21 return m_main; 21 return m_main;
22} 22}
23 23
24OPimTodo TodoView::event(int uid ) { 24OPimTodo TodoView::event(int uid ) {
25 return m_main->event( uid ); 25 return m_main->event( uid );
26} 26}
27OPimTodoAccess::List TodoView::list(){ 27OPimTodoAccess::List TodoView::list(){
28 todoWindow()->updateList(); 28 todoWindow()->updateList();
29 return todoWindow()->list(); 29 return todoWindow()->list();
30} 30}
31OPimTodoAccess::List TodoView::sorted()const{ 31OPimTodoAccess::List TodoView::sorted()const{
32 return m_sort; 32 return m_sort;
33} 33}
34void TodoView::sort() { 34void TodoView::sort() {
35 m_sort = todoWindow()->sorted(m_asc,m_sortOrder ); 35 m_sort = todoWindow()->sorted(m_asc,m_sortOrder );
36 Opie::Core::owarn << "m_sort.count() = " << m_sort.count() << oendl; 36 owarn << "m_sort.count() = " << m_sort.count() << oendl;
37} 37}
38void TodoView::sort(int sort) { 38void TodoView::sort(int sort) {
39 m_sort = todoWindow()->sorted(m_asc, m_sortOrder, sort ); 39 m_sort = todoWindow()->sorted(m_asc, m_sortOrder, sort );
40} 40}
41void TodoView::setSortOrder( int order ) { 41void TodoView::setSortOrder( int order ) {
42 m_sortOrder = order; 42 m_sortOrder = order;
43} 43}
44void TodoView::setAscending( bool b ) { 44void TodoView::setAscending( bool b ) {
45 Opie::Core::owarn << "setAscending " << b << oendl; 45 owarn << "setAscending " << b << oendl;
46 m_asc = b; 46 m_asc = b;
47} 47}
48void TodoView::update(int, const SmallTodo& ) { 48void TodoView::update(int, const SmallTodo& ) {
49 //m_main->slotUpate1( uid, to ); 49 //m_main->slotUpate1( uid, to );
50} 50}
51void TodoView::update(int , const OPimTodo& ev ) { 51void TodoView::update(int , const OPimTodo& ev ) {
52 m_main->updateTodo( ev ); 52 m_main->updateTodo( ev );
53} 53}
54void TodoView::showTodo( int uid ) { 54void TodoView::showTodo( int uid ) {
55 m_main->slotShow( uid ); 55 m_main->slotShow( uid );
56} 56}
57void TodoView::edit( int uid ) { 57void TodoView::edit( int uid ) {
58 m_main->slotEdit( uid ); 58 m_main->slotEdit( uid );
59} 59}
60void TodoView::remove( int uid ) { 60void TodoView::remove( int uid ) {
61 m_main->m_todoMgr.remove( uid ); 61 m_main->m_todoMgr.remove( uid );
62} 62}
63void TodoView::complete( int uid ) { 63void TodoView::complete( int uid ) {
64 m_main->slotComplete( uid ); 64 m_main->slotComplete( uid );
65} 65}
66void TodoView::complete( const OPimTodo& ev ) { 66void TodoView::complete( const OPimTodo& ev ) {
67 m_main->slotComplete( ev ); 67 m_main->slotComplete( ev );
68} 68}
69void TodoView::removeQuery( int uid ) { 69void TodoView::removeQuery( int uid ) {