summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/todo/config.in2
-rw-r--r--core/pim/todo/mainwindow.cpp98
-rw-r--r--core/pim/todo/mainwindow.h26
-rw-r--r--core/pim/todo/opie-todo.control2
-rw-r--r--core/pim/todo/otaskeditor.cpp18
-rw-r--r--core/pim/todo/otaskeditor.h18
-rw-r--r--core/pim/todo/quickedit.h10
-rw-r--r--core/pim/todo/quickeditimpl.cpp6
-rw-r--r--core/pim/todo/quickeditimpl.h4
-rw-r--r--core/pim/todo/smalltodo.h4
-rw-r--r--core/pim/todo/tableview.cpp18
-rw-r--r--core/pim/todo/tableview.h8
-rw-r--r--core/pim/todo/taskeditoralarms.cpp9
-rw-r--r--core/pim/todo/taskeditoralarms.h9
-rw-r--r--core/pim/todo/taskeditoroverview.cpp6
-rw-r--r--core/pim/todo/taskeditoroverview.h10
-rw-r--r--core/pim/todo/taskeditorstatus.cpp9
-rw-r--r--core/pim/todo/taskeditorstatus.h13
-rw-r--r--core/pim/todo/templatedialogimpl.cpp18
-rw-r--r--core/pim/todo/templatedialogimpl.h2
-rw-r--r--core/pim/todo/textviewshow.cpp2
-rw-r--r--core/pim/todo/textviewshow.h2
-rw-r--r--core/pim/todo/todo.pro2
-rw-r--r--core/pim/todo/todoedit.h6
-rw-r--r--core/pim/todo/todoeditor.cpp10
-rw-r--r--core/pim/todo/todoeditor.h8
-rw-r--r--core/pim/todo/todomanager.cpp20
-rw-r--r--core/pim/todo/todomanager.h38
-rw-r--r--core/pim/todo/todoshow.h6
-rw-r--r--core/pim/todo/todotemplatemanager.cpp36
-rw-r--r--core/pim/todo/todotemplatemanager.h11
-rw-r--r--core/pim/todo/todoview.cpp10
-rw-r--r--core/pim/todo/todoview.h20
33 files changed, 237 insertions, 224 deletions
diff --git a/core/pim/todo/config.in b/core/pim/todo/config.in
index 0b6af4c..45c4558 100644
--- a/core/pim/todo/config.in
+++ b/core/pim/todo/config.in
@@ -1,4 +1,4 @@
1 config TODO 1 config TODO
2 boolean "opie-todo (a Todo-list manager)" 2 boolean "opie-todo (a Todo-list manager)"
3 default "y" 3 default "y"
4 depends ( LIBQPE || LIBQPE-X11 ) && LIBOPIE 4 depends ( LIBQPE || LIBQPE-X11 ) && LIBOPIE2CORE && LIBOPIE2UI && LIBOPIE2PIM
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
@@ -7,77 +7,75 @@
7:`=1 )Y*s>-.--   : the terms of the GNU General Public 7:`=1 )Y*s>-.--   : the terms of the GNU General Public
8.="- .-=="i,     .._ License as published by the Free Software 8.="- .-=="i,     .._ License as published by the Free Software
9 - .   .-<_>     .<> Foundation; either version 2 of the License, 9 - .   .-<_>     .<> Foundation; either version 2 of the License,
10     ._= =}       : or (at your option) any later version. 10     ._= =}       : or (at your option) any later version.
11    .%`+i>       _;_. 11    .%`+i>       _;_.
12    .i_,=:_.      -<s. This program is distributed in the hope that 12    .i_,=:_.      -<s. This program is distributed in the hope that
13     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY; 13     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
14    : ..    .:,     . . . without even the implied warranty of 14    : ..    .:,     . . . without even the implied warranty of
15    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A 15    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
16  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU 16  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
17..}^=.=       =       ; Library General Public License for more 17..}^=.=       =       ; Library General Public License for more
18++=   -.     .`     .: details. 18++=   -.     .`     .: details.
19 :     =  ...= . :.=- 19 :     =  ...= . :.=-
20 -.   .:....=;==+<; You should have received a copy of the GNU 20 -.   .:....=;==+<; You should have received a copy of the GNU
21  -_. . .   )=.  = General Public License along with 21  -_. . .   )=.  = 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 <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>
35#include <qpushbutton.h> 49#include <qpushbutton.h>
36#include <qwidgetstack.h> 50#include <qwidgetstack.h>
37#include <qaction.h> 51#include <qaction.h>
38#include <qtimer.h> 52#include <qtimer.h>
39#include <qvbox.h> 53#include <qvbox.h>
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"
64 62
65#include "textviewshow.h" 63#include "textviewshow.h"
66#include "todoeditor.h" 64#include "todoeditor.h"
67#include "mainwindow.h" 65#include "mainwindow.h"
68 66
69OPIE_EXPORT_APP( OApplicationFactory<Todo::MainWindow> ) 67OPIE_EXPORT_APP( OApplicationFactory<Todo::MainWindow> )
70 68
71using namespace Todo; 69using namespace Todo;
72 70
73MainWindow::MainWindow( QWidget* parent, 71MainWindow::MainWindow( QWidget* parent,
74 const char* name, WFlags ) 72 const char* name, WFlags )
75 : OPimMainWindow( "Todolist", parent, name, WType_TopLevel | WStyle_ContextHelp ) 73 : OPimMainWindow( "Todolist", parent, name, WType_TopLevel | WStyle_ContextHelp )
76{ 74{
77 if (!name) 75 if (!name)
78 setName("todo window"); 76 setName("todo window");
79 77
80 m_syncing = false; 78 m_syncing = false;
81 m_showing = false; 79 m_showing = false;
82 m_counter = 0; 80 m_counter = 0;
83 m_tempManager = new TemplateManager(); 81 m_tempManager = new TemplateManager();
@@ -289,80 +287,80 @@ QPopupMenu* MainWindow::contextMenu( int , bool recur ) {
289 287
290 menu->insertSeparator(); 288 menu->insertSeparator();
291 289
292 /* 290 /*
293 * if this event recurs we allow 291 * if this event recurs we allow
294 * to detach it. 292 * to detach it.
295 * remove all 293 * remove all
296 */ 294 */
297 if ( recur ) { 295 if ( recur ) {
298 ; // FIXME 296 ; // FIXME
299 } 297 }
300 298
301 return menu; 299 return menu;
302} 300}
303QPopupMenu* MainWindow::options() { 301QPopupMenu* MainWindow::options() {
304 qWarning("Options"); 302 qWarning("Options");
305 return m_options; 303 return m_options;
306} 304}
307QPopupMenu* MainWindow::edit() { 305QPopupMenu* MainWindow::edit() {
308 return m_edit; 306 return m_edit;
309} 307}
310QToolBar* MainWindow::toolbar() { 308QToolBar* MainWindow::toolbar() {
311 return m_tool; 309 return m_tool;
312} 310}
313OTodoAccess::List MainWindow::list()const { 311OPimTodoAccess::List MainWindow::list()const {
314 return m_todoMgr.list(); 312 return m_todoMgr.list();
315} 313}
316OTodoAccess::List MainWindow::sorted( bool asc, int sortOrder ) { 314OPimTodoAccess::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") )
321 cat = -1; 319 cat = -1;
322 320
323 qWarning(" Category %d %s", cat, m_curCat.latin1() ); 321 qWarning(" Category %d %s", cat, m_curCat.latin1() );
324 322
325 int filter = 1; 323 int filter = 1;
326 324
327 if (!m_completed ) 325 if (!m_completed )
328 filter |= 4; 326 filter |= 4;
329 if (m_overdue) 327 if (m_overdue)
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}
334OTodoAccess::List MainWindow::sorted( bool asc, int sortOrder, int addFilter) { 332OPimTodoAccess::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
339 if ( m_curCat == QWidget::tr("Unfiled") ) 337 if ( m_curCat == QWidget::tr("Unfiled") )
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}
344OTodo MainWindow::event( int uid ) { 342OPimTodo MainWindow::event( int uid ) {
345 return m_todoMgr.event( uid ); 343 return m_todoMgr.event( uid );
346} 344}
347bool MainWindow::isSyncing()const { 345bool MainWindow::isSyncing()const {
348 return m_syncing; 346 return m_syncing;
349} 347}
350TemplateManager* MainWindow::templateManager() { 348TemplateManager* MainWindow::templateManager() {
351 return m_tempManager; 349 return m_tempManager;
352} 350}
353Editor* MainWindow::currentEditor() { 351Editor* MainWindow::currentEditor() {
354 return m_curEdit; 352 return m_curEdit;
355} 353}
356TodoShow* MainWindow::currentShow() { 354TodoShow* MainWindow::currentShow() {
357 return m_curShow; 355 return m_curShow;
358} 356}
359void MainWindow::slotReload() { 357void MainWindow::slotReload() {
360 m_syncing = FALSE; 358 m_syncing = FALSE;
361 m_todoMgr.reload(); 359 m_todoMgr.reload();
362 currentView()->updateView( ); 360 currentView()->updateView( );
363 raiseCurrentView(); 361 raiseCurrentView();
364} 362}
365void MainWindow::closeEvent( QCloseEvent* e ) { 363void MainWindow::closeEvent( QCloseEvent* e ) {
366 if (m_stack->visibleWidget() == currentShow()->widget() ) { 364 if (m_stack->visibleWidget() == currentShow()->widget() ) {
367 m_showing = false; 365 m_showing = false;
368 raiseCurrentView(); 366 raiseCurrentView();
@@ -412,110 +410,110 @@ void MainWindow::closeEvent( QCloseEvent* e ) {
412 QTimer::singleShot(0, qApp, SLOT(closeAllWindows()) ); 410 QTimer::singleShot(0, qApp, SLOT(closeAllWindows()) );
413 } 411 }
414} 412}
415void MainWindow::populateTemplates() { 413void MainWindow::populateTemplates() {
416 m_template->clear(); 414 m_template->clear();
417 QStringList list = templateManager()->templates(); 415 QStringList list = templateManager()->templates();
418 QStringList::Iterator it; 416 QStringList::Iterator it;
419 for ( it = list.begin(); it != list.end(); ++it ) { 417 for ( it = list.begin(); it != list.end(); ++it ) {
420 m_template->insertItem( (*it) ); 418 m_template->insertItem( (*it) );
421 } 419 }
422} 420}
423/* 421/*
424 * slotNewFromTemplate 422 * slotNewFromTemplate
425 * We use the edit widget to do 423 * We use the edit widget to do
426 * the config but we setUid(1) 424 * the config but we setUid(1)
427 * to get a new uid 425 * to get a new uid
428 */ 426 */
429/* 427/*
430 * first we get the name of the template 428 * first we get the name of the template
431 * then we will use the TemplateManager 429 * then we will use the TemplateManager
432 */ 430 */
433void MainWindow::slotNewFromTemplate( int id ) { 431void 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();
448 } 446 }
449 raiseCurrentView(); 447 raiseCurrentView();
450} 448}
451void MainWindow::slotNew() { 449void MainWindow::slotNew() {
452 create(); 450 create();
453} 451}
454void MainWindow::slotDuplicate() { 452void MainWindow::slotDuplicate() {
455 if(m_syncing) { 453 if(m_syncing) {
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
465 currentView()->addEvent( ev ); 463 currentView()->addEvent( ev );
466 raiseCurrentView(); 464 raiseCurrentView();
467} 465}
468void MainWindow::slotDelete() { 466void MainWindow::slotDelete() {
469 if (!currentView()->current() ) 467 if (!currentView()->current() )
470 return; 468 return;
471 469
472 if(m_syncing) { 470 if(m_syncing) {
473 QMessageBox::warning(this, QWidget::tr("Todo"), 471 QMessageBox::warning(this, QWidget::tr("Todo"),
474 QWidget::tr("Data can not be edited, currently syncing")); 472 QWidget::tr("Data can not be edited, currently syncing"));
475 return; 473 return;
476 } 474 }
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}
486void MainWindow::slotDelete(int uid ) { 484void MainWindow::slotDelete(int uid ) {
487 if( uid == 0 ) return; 485 if( uid == 0 ) return;
488 if(m_syncing) { 486 if(m_syncing) {
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}
502void MainWindow::slotDeleteAll() { 500void MainWindow::slotDeleteAll() {
503 if(m_syncing) { 501 if(m_syncing) {
504 QMessageBox::warning(this, QWidget::tr("Todo"), 502 QMessageBox::warning(this, QWidget::tr("Todo"),
505 QWidget::tr("Data can not be edited, currently syncing")); 503 QWidget::tr("Data can not be edited, currently syncing"));
506 return; 504 return;
507 } 505 }
508 506
509 507
510 if ( !QPEMessageBox::confirmDelete( this, QWidget::tr( "Todo" ), QWidget::tr("all tasks?") ) ) 508 if ( !QPEMessageBox::confirmDelete( this, QWidget::tr( "Todo" ), QWidget::tr("all tasks?") ) )
511 return; 509 return;
512 510
513 m_todoMgr.removeAll(); 511 m_todoMgr.removeAll();
514 currentView()->clear(); 512 currentView()->clear();
515 513
516 raiseCurrentView(); 514 raiseCurrentView();
517} 515}
518void MainWindow::slotDeleteCompleted() { 516void MainWindow::slotDeleteCompleted() {
519 if(m_syncing) { 517 if(m_syncing) {
520 QMessageBox::warning(this, QWidget::tr("Todo"), 518 QMessageBox::warning(this, QWidget::tr("Todo"),
521 QWidget::tr("Data can not be edited, currently syncing")); 519 QWidget::tr("Data can not be edited, currently syncing"));
@@ -576,62 +574,62 @@ void MainWindow::slotShowQuickTask( bool show ) {
576 m_curQuick->widget()->show(); 574 m_curQuick->widget()->show();
577 else 575 else
578 m_curQuick->widget()->hide(); 576 m_curQuick->widget()->hide();
579} 577}
580bool MainWindow::showOverDue()const { 578bool MainWindow::showOverDue()const {
581 return m_overdue; 579 return m_overdue;
582} 580}
583void MainWindow::setDocument( const QString& fi) { 581void MainWindow::setDocument( const QString& fi) {
584 DocLnk doc(fi); 582 DocLnk doc(fi);
585 if (doc.isValid() ) 583 if (doc.isValid() )
586 receiveFile(doc.file() ); 584 receiveFile(doc.file() );
587 else 585 else
588 receiveFile(fi ); 586 receiveFile(fi );
589} 587}
590 588
591static const char *beamfile = "/tmp/opie-todo.vcs"; 589static const char *beamfile = "/tmp/opie-todo.vcs";
592void MainWindow::slotBeam() { 590void MainWindow::slotBeam() {
593 beam( currentView()->current() ); 591 beam( currentView()->current() );
594} 592}
595void MainWindow::beamDone( Ir* ir) { 593void MainWindow::beamDone( Ir* ir) {
596 delete ir; 594 delete ir;
597 ::unlink( beamfile ); 595 ::unlink( beamfile );
598} 596}
599void MainWindow::receiveFile( const QString& filename ) { 597void 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();
618 } 616 }
619 } 617 }
620} 618}
621 619
622void MainWindow::slotFlush() { 620void MainWindow::slotFlush() {
623 m_syncing = TRUE; 621 m_syncing = TRUE;
624 m_todoMgr.save(); 622 m_todoMgr.save();
625} 623}
626void MainWindow::slotShowDetails() { 624void MainWindow::slotShowDetails() {
627 slotShow( currentView()->current() ); 625 slotShow( currentView()->current() );
628} 626}
629/* 627/*
630 * populate the Categories 628 * populate the Categories
631 * Menu 629 * Menu
632 */ 630 */
633void MainWindow::populateCategories() { 631void MainWindow::populateCategories() {
634 m_todoMgr.load(); 632 m_todoMgr.load();
635 633
636 m_catMenu->clear(); 634 m_catMenu->clear();
637 int id, rememberId; 635 int id, rememberId;
@@ -687,257 +685,257 @@ void MainWindow::slotShowDue(bool ov) {
687void MainWindow::slotShow( int uid ) { 685void MainWindow::slotShow( int uid ) {
688 if ( uid == 0 ) return; 686 if ( uid == 0 ) return;
689 qWarning("slotShow"); 687 qWarning("slotShow");
690 currentShow()->slotShow( event( uid ) ); 688 currentShow()->slotShow( event( uid ) );
691 m_stack->raiseWidget( currentShow()->widget() ); 689 m_stack->raiseWidget( currentShow()->widget() );
692} 690}
693void MainWindow::slotShowNext() { 691void MainWindow::slotShowNext() {
694 int l = currentView()->next(); 692 int l = currentView()->next();
695 if (l!=0) 693 if (l!=0)
696 slotShow(l); 694 slotShow(l);
697} 695}
698void MainWindow::slotShowPrev() { 696void MainWindow::slotShowPrev() {
699 int l = currentView()->prev(); 697 int l = currentView()->prev();
700 if (l!=0) 698 if (l!=0)
701 slotShow(l); 699 slotShow(l);
702} 700}
703void MainWindow::slotEdit( int uid ) { 701void MainWindow::slotEdit( int uid ) {
704 if (uid == 0 ) return; 702 if (uid == 0 ) return;
705 if(m_syncing) { 703 if(m_syncing) {
706 QMessageBox::warning(this, QWidget::tr("Todo"), 704 QMessageBox::warning(this, QWidget::tr("Todo"),
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 );
718 m_todoMgr.update( todo.uid(), todo ); 716 m_todoMgr.update( todo.uid(), todo );
719 currentView()->replaceEvent( todo ); 717 currentView()->replaceEvent( todo );
720 /* a Category might have changed */ 718 /* a Category might have changed */
721 populateCategories(); 719 populateCategories();
722 } 720 }
723 721
724 raiseCurrentView(); 722 raiseCurrentView();
725} 723}
726/* 724/*
727void MainWindow::slotUpdate1( int uid, const SmallTodo& ev) { 725void MainWindow::slotUpdate1( int uid, const SmallTodo& ev) {
728 m_todoMgr.update( uid, ev ); 726 m_todoMgr.update( uid, ev );
729} 727}
730*/ 728*/
731void MainWindow::updateTodo( const OTodo& ev) { 729void 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
736 */ 734 */
737void MainWindow::slotUpdate3( QWidget* ) { 735void MainWindow::slotUpdate3( QWidget* ) {
738 736
739} 737}
740void MainWindow::updateList() { 738void MainWindow::updateList() {
741 m_todoMgr.updateList(); 739 m_todoMgr.updateList();
742} 740}
743void MainWindow::setReadAhead( uint count ) { 741void MainWindow::setReadAhead( uint count ) {
744 if (m_todoMgr.todoDB() ) 742 if (m_todoMgr.todoDB() )
745 m_todoMgr.todoDB()->setReadAhead( count ); 743 m_todoMgr.todoDB()->setReadAhead( count );
746} 744}
747void MainWindow::slotQuickEntered() { 745void 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 );
754 currentView()->addEvent( todo ); 752 currentView()->addEvent( todo );
755 raiseCurrentView(); 753 raiseCurrentView();
756} 754}
757QuickEditBase* MainWindow::quickEditor() { 755QuickEditBase* MainWindow::quickEditor() {
758 return m_curQuick; 756 return m_curQuick;
759} 757}
760void MainWindow::slotComplete( int uid ) { 758void MainWindow::slotComplete( int uid ) {
761 slotComplete( event(uid) ); 759 slotComplete( event(uid) );
762} 760}
763void MainWindow::slotComplete( const OTodo& todo ) { 761void 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 /*
769 * if the item does recur 767 * if the item does recur
770 * we need to spin it off 768 * we need to spin it off
771 * and update the items duedate to the next 769 * and update the items duedate to the next
772 * possible recurrance of this item... 770 * possible recurrance of this item...
773 * the spinned off one will loose the 771 * the spinned off one will loose the
774 * recurrence. 772 * recurrence.
775 * We calculate the difference between the old due date and the 773 * We calculate the difference between the old due date and the
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
790 * from the duedate of the last recurrance 788 * from the duedate of the last recurrance
791 */ 789 */
792 QDate date; 790 QDate date;
793 if ( to2.recurrence().nextOcurrence( to2.dueDate().addDays(1), date ) ) { 791 if ( to2.recurrence().nextOcurrence( to2.dueDate().addDays(1), date ) ) {
794 int dayDiff = to.dueDate().daysTo( date ); 792 int dayDiff = to.dueDate().daysTo( date );
795 qWarning("day diff is %d", dayDiff ); 793 qWarning("day diff is %d", dayDiff );
796 QDate inval; 794 QDate inval;
797 /* generate a new uid for the old record */ 795 /* generate a new uid for the old record */
798 to.setUid( 1 ); 796 to.setUid( 1 );
799 797
800 /* add the old one cause it has a new UID here cause it was spin off */ 798 /* add the old one cause it has a new UID here cause it was spin off */
801 m_todoMgr.add( to ); 799 m_todoMgr.add( to );
802 800
803 /* 801 /*
804 * update the due date 802 * update the due date
805 * start date 803 * start date
806 * and complete date 804 * and complete date
807 */ 805 */
808 to2.setDueDate( date ); 806 to2.setDueDate( date );
809 rec.setStart( date ); 807 rec.setStart( date );
810 to2.setRecurrence( rec ); // could be Monday, TuesDay, Thursday every week 808 to2.setRecurrence( rec ); // could be Monday, TuesDay, Thursday every week
811 809
812 /* move start date */ 810 /* move start date */
813 if (to2.hasStartDate() ) 811 if (to2.hasStartDate() )
814 to2.setStartDate( to2.startDate().addDays( dayDiff ) ); 812 to2.setStartDate( to2.startDate().addDays( dayDiff ) );
815 813
816 /* now the alarms */ 814 /* now the alarms */
817 if (to2.hasNotifiers() ) { 815 if (to2.hasNotifiers() ) {
818 OPimNotifyManager::Alarms _als = to2.notifiers().alarms(); 816 OPimNotifyManager::Alarms _als = to2.notifiers().alarms();
819 OPimNotifyManager::Alarms als; 817 OPimNotifyManager::Alarms als;
820 818
821 /* for every alarm move the day */ 819 /* for every alarm move the day */
822 for ( OPimNotifyManager::Alarms::Iterator it = _als.begin(); it != _als.end(); ++it ) { 820 for ( OPimNotifyManager::Alarms::Iterator it = _als.begin(); it != _als.end(); ++it ) {
823 OPimAlarm al = (*it); 821 OPimAlarm al = (*it);
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
833 updateTodo( to2 ); 831 updateTodo( to2 );
834 }else 832 }else
835 updateTodo( to ); 833 updateTodo( to );
836 }else 834 }else
837 updateTodo( to ); 835 updateTodo( to );
838 836
839 currentView()->updateView(); 837 currentView()->updateView();
840 raiseCurrentView(); 838 raiseCurrentView();
841} 839}
842void MainWindow::flush() { 840void MainWindow::flush() {
843 slotFlush(); 841 slotFlush();
844} 842}
845void MainWindow::reload() { 843void MainWindow::reload() {
846 slotReload(); 844 slotReload();
847} 845}
848int MainWindow::create() { 846int MainWindow::create() {
849 int uid = 0; 847 int uid = 0;
850 if(m_syncing) { 848 if(m_syncing) {
851 QMessageBox::warning(this, QWidget::tr("Todo"), 849 QMessageBox::warning(this, QWidget::tr("Todo"),
852 QWidget::tr("Data can not be edited, currently syncing")); 850 QWidget::tr("Data can not be edited, currently syncing"));
853 return uid; 851 return uid;
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
869 // I'm afraid we must call this every time now, otherwise 867 // I'm afraid we must call this every time now, otherwise
870 // spend expensive time comparing all these strings... 868 // spend expensive time comparing all these strings...
871 // but only call if we changed something -zecke 869 // but only call if we changed something -zecke
872 populateCategories(); 870 populateCategories();
873 } 871 }
874 raiseCurrentView( ); 872 raiseCurrentView( );
875 873
876 return uid; 874 return uid;
877} 875}
878/* delete it silently... */ 876/* delete it silently... */
879bool MainWindow::remove( int uid ) { 877bool 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}
887void MainWindow::beam( int uid) { 885void MainWindow::beam( int uid) {
888 if( uid == 0 ) return; 886 if( uid == 0 ) return;
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 );
900 connect(ir, SIGNAL(done(Ir*) ), 898 connect(ir, SIGNAL(done(Ir*) ),
901 this, SLOT(beamDone(Ir*) ) ); 899 this, SLOT(beamDone(Ir*) ) );
902 ir->send(beamfile, todo.summary(), "text/x-vCalendar" ); 900 ir->send(beamfile, todo.summary(), "text/x-vCalendar" );
903} 901}
904void MainWindow::show( int uid ) { 902void MainWindow::show( int uid ) {
905 m_todoMgr.load(); // might not be loaded yet 903 m_todoMgr.load(); // might not be loaded yet
906 m_showing = true; 904 m_showing = true;
907 slotShow( uid ); 905 slotShow( uid );
908 raise(); 906 raise();
909 QPEApplication::setKeepRunning(); 907 QPEApplication::setKeepRunning();
910} 908}
911void MainWindow::edit( int uid ) { 909void MainWindow::edit( int uid ) {
912 m_todoMgr.load(); 910 m_todoMgr.load();
913 slotEdit( uid ); 911 slotEdit( uid );
914} 912}
915void MainWindow::add( const OPimRecord& rec) { 913void 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
924 922
925 // I'm afraid we must call this every time now, otherwise 923 // I'm afraid we must call this every time now, otherwise
926 // spend expensive time comparing all these strings... 924 // spend expensive time comparing all these strings...
927 // but only call if we changed something -zecke 925 // but only call if we changed something -zecke
928 populateCategories(); 926 populateCategories();
929} 927}
930void MainWindow::slotReturnFromView() { 928void MainWindow::slotReturnFromView() {
931 m_showing = false; 929 m_showing = false;
932 raiseCurrentView(); 930 raiseCurrentView();
933} 931}
934 932
935namespace { 933namespace {
936 OPimNotifyManager::Alarms findNonMatching( const OPimNotifyManager::Alarms& oldAls, 934 OPimNotifyManager::Alarms findNonMatching( const OPimNotifyManager::Alarms& oldAls,
937 const OPimNotifyManager::Alarms& newAls ) { 935 const OPimNotifyManager::Alarms& newAls ) {
938 OPimNotifyManager::Alarms nonMatching; 936 OPimNotifyManager::Alarms nonMatching;
939 OPimNotifyManager::Alarms::ConstIterator oldIt = oldAls.begin(); 937 OPimNotifyManager::Alarms::ConstIterator oldIt = oldAls.begin();
940 OPimNotifyManager::Alarms::ConstIterator newIt; 938 OPimNotifyManager::Alarms::ConstIterator newIt;
941 for ( ; oldIt != oldAls.end(); ++oldIt ) { 939 for ( ; oldIt != oldAls.end(); ++oldIt ) {
942 bool found = false; 940 bool found = false;
943 QDateTime oldDt = (*oldIt).dateTime(); 941 QDateTime oldDt = (*oldIt).dateTime();
@@ -948,77 +946,77 @@ namespace {
948 } 946 }
949 } 947 }
950 if (!found) 948 if (!found)
951 nonMatching.append( (*oldIt) ); 949 nonMatching.append( (*oldIt) );
952 } 950 }
953 return nonMatching; 951 return nonMatching;
954 } 952 }
955 void addAlarms( const OPimNotifyManager::Alarms& als, int uid ) { 953 void addAlarms( const OPimNotifyManager::Alarms& als, int uid ) {
956 OPimNotifyManager::Alarms::ConstIterator it; 954 OPimNotifyManager::Alarms::ConstIterator it;
957 for ( it = als.begin(); it != als.end(); ++it ) { 955 for ( it = als.begin(); it != als.end(); ++it ) {
958 qWarning("Adding alarm for %s", (*it).dateTime().toString().latin1() ); 956 qWarning("Adding alarm for %s", (*it).dateTime().toString().latin1() );
959 AlarmServer::addAlarm( (*it).dateTime(), "QPE/Application/todolist", "alarm(QDateTime,int)", uid ); 957 AlarmServer::addAlarm( (*it).dateTime(), "QPE/Application/todolist", "alarm(QDateTime,int)", uid );
960 } 958 }
961 959
962 } 960 }
963 void removeAlarms( const OPimNotifyManager::Alarms& als, int uid ) { 961 void removeAlarms( const OPimNotifyManager::Alarms& als, int uid ) {
964 OPimNotifyManager::Alarms::ConstIterator it; 962 OPimNotifyManager::Alarms::ConstIterator it;
965 for ( it = als.begin(); it != als.end(); ++it ) { 963 for ( it = als.begin(); it != als.end(); ++it ) {
966 qWarning("Removinf alarm for %s", (*it).dateTime().toString().latin1() ); 964 qWarning("Removinf alarm for %s", (*it).dateTime().toString().latin1() );
967 AlarmServer::deleteAlarm( (*it).dateTime(), "QPE/Application/todolist", "alarm(QDateTime,int)", uid ); 965 AlarmServer::deleteAlarm( (*it).dateTime(), "QPE/Application/todolist", "alarm(QDateTime,int)", uid );
968 } 966 }
969 } 967 }
970} 968}
971 969
972void MainWindow::handleAlarms( const OTodo& oldTodo, const OTodo& newTodo) { 970void 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() ) {
977 OPimNotifyManager::Alarms removed; 975 OPimNotifyManager::Alarms removed;
978 OPimNotifyManager::Alarms oldAls = oldTodo.notifiers().alarms(); 976 OPimNotifyManager::Alarms oldAls = oldTodo.notifiers().alarms();
979 if (!newTodo.hasNotifiers() ) 977 if (!newTodo.hasNotifiers() )
980 removed = oldAls; 978 removed = oldAls;
981 else 979 else
982 removed = findNonMatching( oldAls, newTodo.notifiers().alarms() ); 980 removed = findNonMatching( oldAls, newTodo.notifiers().alarms() );
983 981
984 removeAlarms( removed, oldTodo.uid() ); 982 removeAlarms( removed, oldTodo.uid() );
985 } 983 }
986 if ( newTodo.hasNotifiers() ) { 984 if ( newTodo.hasNotifiers() ) {
987 OPimNotifyManager::Alarms added; 985 OPimNotifyManager::Alarms added;
988 if ( oldTodo.isEmpty() || !oldTodo.hasNotifiers() ) 986 if ( oldTodo.isEmpty() || !oldTodo.hasNotifiers() )
989 added = newTodo.notifiers().alarms(); 987 added = newTodo.notifiers().alarms();
990 else 988 else
991 added = findNonMatching( newTodo.notifiers().alarms(), oldTodo.notifiers().alarms() ); 989 added = findNonMatching( newTodo.notifiers().alarms(), oldTodo.notifiers().alarms() );
992 990
993 addAlarms( added, newTodo.uid() ); 991 addAlarms( added, newTodo.uid() );
994 } 992 }
995} 993}
996/* we might have not loaded the db */ 994/* we might have not loaded the db */
997void MainWindow::doAlarm( const QDateTime& dt, int uid ) { 995void 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
1005 * then show a richtext widget 1003 * then show a richtext widget
1006 */ 1004 */
1007 bool loud = false; 1005 bool loud = false;
1008 OPimNotifyManager::Alarms als = todo.notifiers().alarms(); 1006 OPimNotifyManager::Alarms als = todo.notifiers().alarms();
1009 OPimNotifyManager::Alarms::Iterator it; 1007 OPimNotifyManager::Alarms::Iterator it;
1010 for ( it = als.begin(); it != als.end(); ++it ) { 1008 for ( it = als.begin(); it != als.end(); ++it ) {
1011 if ( (*it).dateTime() == dt ) { 1009 if ( (*it).dateTime() == dt ) {
1012 loud = ( (*it).sound() == OPimAlarm::Loud ); 1010 loud = ( (*it).sound() == OPimAlarm::Loud );
1013 break; 1011 break;
1014 } 1012 }
1015 } 1013 }
1016 if (loud) 1014 if (loud)
1017 startAlarm(); 1015 startAlarm();
1018 1016
1019 QDialog dlg(this, 0, TRUE ); 1017 QDialog dlg(this, 0, TRUE );
1020 QVBoxLayout* lay = new QVBoxLayout( &dlg ); 1018 QVBoxLayout* lay = new QVBoxLayout( &dlg );
1021 QTextView* view = new QTextView( &dlg ); 1019 QTextView* view = new QTextView( &dlg );
1022 lay->addWidget( view ); 1020 lay->addWidget( view );
1023 QPushButton* btnOk = new QPushButton( tr("Ok"), &dlg ); 1021 QPushButton* btnOk = new QPushButton( tr("Ok"), &dlg );
1024 connect( btnOk, SIGNAL(clicked() ), &dlg, SLOT(accept() ) ); 1022 connect( btnOk, SIGNAL(clicked() ), &dlg, SLOT(accept() ) );
diff --git a/core/pim/todo/mainwindow.h b/core/pim/todo/mainwindow.h
index fd0e1bd..6a7296b 100644
--- a/core/pim/todo/mainwindow.h
+++ b/core/pim/todo/mainwindow.h
@@ -10,126 +10,128 @@
10     ._= =}       : or (at your option) any later version. 10     ._= =}       : or (at your option) any later version.
11    .%`+i>       _;_. 11    .%`+i>       _;_.
12    .i_,=:_.      -<s. This program is distributed in the hope that 12    .i_,=:_.      -<s. This program is distributed in the hope that
13     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY; 13     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
14    : ..    .:,     . . . without even the implied warranty of 14    : ..    .:,     . . . without even the implied warranty of
15    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A 15    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
16  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU 16  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
17..}^=.=       =       ; Library General Public License for more 17..}^=.=       =       ; Library General Public License for more
18++=   -.     .`     .: details. 18++=   -.     .`     .: details.
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#ifndef TODO_MAIN_WINDOW_H 29#ifndef TODO_MAIN_WINDOW_H
30#define TODO_MAIN_WINDOW_H 30#define TODO_MAIN_WINDOW_H
31 31
32#include <qlist.h> 32#include <qlist.h>
33 33
34#include <opie/otodoaccess.h> 34#include <opie2/otodoaccess.h>
35#include <opie/otodo.h> 35#include <opie2/opimtodo.h>
36#include <opie/opimmainwindow.h> 36#include <opie2/opimmainwindow.h>
37#include <opie2/owidgetstack.h>
37 38
38#include "smalltodo.h" 39#include "smalltodo.h"
39#include "todoview.h" 40#include "todoview.h"
40#include "quickedit.h" 41#include "quickedit.h"
41#include "todomanager.h" 42#include "todomanager.h"
42 43
43class QPopupMenu; 44class QPopupMenu;
44class QMenuBar; 45class QMenuBar;
45class QToolBar; 46class QToolBar;
46class QAction; 47class QAction;
47class OWidgetStack;
48class Ir; 48class Ir;
49class QVBox; 49class QVBox;
50class QLineEdit; 50class QLineEdit;
51 51
52using namespace Opie;
53
52namespace Todo { 54namespace Todo {
53 typedef TodoView View; 55 typedef TodoView View;
54 class TemplateManager; 56 class TemplateManager;
55 class Editor; 57 class Editor;
56 class TodoShow; 58 class TodoShow;
57 class TemplateEditor; 59 class TemplateEditor;
58 struct QuickEditBase; 60 struct QuickEditBase;
59 61
60 class MainWindow : public OPimMainWindow { 62 class MainWindow : public OPimMainWindow {
61 Q_OBJECT 63 Q_OBJECT
62 friend class TodoView; // avoid QObject here.... 64 friend class TodoView; // avoid QObject here....
63 friend class TodoShow; // avoid QObject 65 friend class TodoShow; // avoid QObject
64 public: 66 public:
65 /* OApplicationFactory application Name */ 67 /* OApplicationFactory application Name */
66 static QString appName() { return QString::fromLatin1("todolist"); } 68 static QString appName() { return QString::fromLatin1("todolist"); }
67 69
68 MainWindow( QWidget *parent = 0, 70 MainWindow( QWidget *parent = 0,
69 const char* name = 0, WFlags fl = 0 ); 71 const char* name = 0, WFlags fl = 0 );
70 ~MainWindow(); 72 ~MainWindow();
71 73
72 /** return a context menu for an OTodo */ 74 /** return a context menu for an OPimTodo */
73 QPopupMenu* contextMenu(int uid, bool doesRecur = FALSE ); 75 QPopupMenu* contextMenu(int uid, bool doesRecur = FALSE );
74 QPopupMenu* options(); 76 QPopupMenu* options();
75 QPopupMenu* edit(); 77 QPopupMenu* edit();
76 QToolBar* toolbar(); 78 QToolBar* toolbar();
77 79
78 80
79 void updateList(); 81 void updateList();
80 OTodoAccess::List list()const; 82 OPimTodoAccess::List list()const;
81 OTodoAccess::List sorted( bool asc, int sortOrder ); 83 OPimTodoAccess::List sorted( bool asc, int sortOrder );
82 OTodoAccess::List sorted( bool asc, int sortOrder, int addFilter ); 84 OPimTodoAccess::List sorted( bool asc, int sortOrder, int addFilter );
83 85
84 OTodo event(int uid ); 86 OPimTodo event(int uid );
85 87
86 bool isSyncing()const; 88 bool isSyncing()const;
87 bool showCompleted()const; 89 bool showCompleted()const;
88 bool showDeadline()const; 90 bool showDeadline()const;
89 bool showOverDue()const; 91 bool showOverDue()const;
90 bool showQuickTask()const; 92 bool showQuickTask()const;
91 QString currentCategory()const; 93 QString currentCategory()const;
92 int currentCatId(); 94 int currentCatId();
93 TemplateManager* templateManager(); 95 TemplateManager* templateManager();
94 QuickEditBase* quickEditor(); 96 QuickEditBase* quickEditor();
95 97
96 void updateTodo( const OTodo& ); 98 void updateTodo( const OPimTodo& );
97 void populateTemplates(); 99 void populateTemplates();
98 Editor* currentEditor(); 100 Editor* currentEditor();
99 void setReadAhead(uint count ); 101 void setReadAhead(uint count );
100private slots: 102private slots:
101 void slotQuickEntered(); 103 void slotQuickEntered();
102 void populateCategories(); 104 void populateCategories();
103 void slotReload(); 105 void slotReload();
104 void slotFlush(); 106 void slotFlush();
105 107
106 protected: 108 protected:
107 void closeEvent( QCloseEvent* e ); 109 void closeEvent( QCloseEvent* e );
108 110
109 private: 111 private:
110 /* handle setting and removing alarms */ 112 /* handle setting and removing alarms */
111 void handleAlarms( const OTodo& oldTodo, const OTodo& newTodo ); 113 void handleAlarms( const OPimTodo& oldTodo, const OPimTodo& newTodo );
112 void receiveFile( const QString& filename ); 114 void receiveFile( const QString& filename );
113 void connectBase( ViewBase* ); 115 void connectBase( ViewBase* );
114 void initUI(); 116 void initUI();
115 void initActions(); 117 void initActions();
116 void initConfig(); 118 void initConfig();
117 void initViews(); 119 void initViews();
118 void initEditor(); 120 void initEditor();
119 void initShow(); 121 void initShow();
120 void initTemplate(); 122 void initTemplate();
121 void raiseCurrentView(); 123 void raiseCurrentView();
122 ViewBase* currentView(); 124 ViewBase* currentView();
123 ViewBase* m_curView; 125 ViewBase* m_curView;
124 bool m_showing : 1; // used to see if we show a todo in the cases we shouldn't change the table 126 bool m_showing : 1; // used to see if we show a todo in the cases we shouldn't change the table
125 QuickEditBase* m_curQuick; 127 QuickEditBase* m_curQuick;
126 Editor* m_curEdit; 128 Editor* m_curEdit;
127 TodoShow* currentShow(); 129 TodoShow* currentShow();
128 TodoShow* m_curShow; 130 TodoShow* m_curShow;
129 TemplateEditor* currentTemplateEditor(); 131 TemplateEditor* currentTemplateEditor();
130 TemplateEditor* m_curTempEd; 132 TemplateEditor* m_curTempEd;
131 133
132 QMenuBar* m_bar; 134 QMenuBar* m_bar;
133 QToolBar* m_tool; 135 QToolBar* m_tool;
134 QAction* m_editAction, 136 QAction* m_editAction,
135 *m_deleteAction, 137 *m_deleteAction,
@@ -144,49 +146,49 @@ private slots:
144 *m_effectiveAction; 146 *m_effectiveAction;
145 OWidgetStack *m_stack; 147 OWidgetStack *m_stack;
146 QPopupMenu* m_catMenu, 148 QPopupMenu* m_catMenu,
147 *m_edit, 149 *m_edit,
148 *m_options, 150 *m_options,
149 *m_template; 151 *m_template;
150 152
151 bool m_syncing:1; 153 bool m_syncing:1;
152 bool m_deadline:1; 154 bool m_deadline:1;
153 bool m_completed:1; 155 bool m_completed:1;
154 bool m_overdue:1; 156 bool m_overdue:1;
155 bool m_quicktask:1; 157 bool m_quicktask:1;
156 TodoManager m_todoMgr; 158 TodoManager m_todoMgr;
157 QString m_curCat; 159 QString m_curCat;
158 QList<ViewBase> m_views; 160 QList<ViewBase> m_views;
159 uint m_counter; 161 uint m_counter;
160 TemplateManager* m_tempManager; 162 TemplateManager* m_tempManager;
161 163
162 164
163 private slots: 165 private slots:
164 void slotShow(int); 166 void slotShow(int);
165 void slotEdit(int); 167 void slotEdit(int);
166 void slotUpdate3( QWidget* ); 168 void slotUpdate3( QWidget* );
167 void slotComplete( int uid ); 169 void slotComplete( int uid );
168 void slotComplete( const OTodo& ev ); 170 void slotComplete( const OPimTodo& ev );
169 void slotNewFromTemplate(int id ); 171 void slotNewFromTemplate(int id );
170 void slotNew(); 172 void slotNew();
171 void slotDuplicate(); 173 void slotDuplicate();
172 174
173 void slotDelete(); 175 void slotDelete();
174 void slotDelete(int uid ); 176 void slotDelete(int uid );
175 void slotDeleteAll(); 177 void slotDeleteAll();
176 void slotDeleteCompleted(); 178 void slotDeleteCompleted();
177 179
178 void slotEdit(); 180 void slotEdit();
179 void slotFind(); 181 void slotFind();
180 182
181 void setCategory( int ); 183 void setCategory( int );
182 184
183 void slotShowDeadLine( bool ); 185 void slotShowDeadLine( bool );
184 void slotShowCompleted( bool ); 186 void slotShowCompleted( bool );
185 void slotShowQuickTask( bool ); 187 void slotShowQuickTask( bool );
186 188
187 void setDocument( const QString& ); 189 void setDocument( const QString& );
188 190
189 191
190 void slotBeam(); 192 void slotBeam();
191 void beamDone( Ir* ); 193 void beamDone( Ir* );
192 void slotShowDetails(); 194 void slotShowDetails();
diff --git a/core/pim/todo/opie-todo.control b/core/pim/todo/opie-todo.control
index 8ad50b2..3a65c04 100644
--- a/core/pim/todo/opie-todo.control
+++ b/core/pim/todo/opie-todo.control
@@ -1,10 +1,10 @@
1Package: opie-todo 1Package: opie-todo
2Files: plugins/application/libtodolist.so* bin/todolist apps/1Pim/todo.desktop 2Files: plugins/application/libtodolist.so* bin/todolist apps/1Pim/todo.desktop
3Priority: optional 3Priority: optional
4Section: opie/pim 4Section: opie/pim
5Maintainer: Holger 'zecke' Freyther <zecke@handhelds.org> 5Maintainer: Holger 'zecke' Freyther <zecke@handhelds.org>
6Architecture: arm 6Architecture: arm
7Depends: task-opie-minimal, libopie1, opie-pics 7Depends: task-opie-minimal, libopiecore2, libopieui2, libopiepim2, opie-pics
8Description: Todo list manager 8Description: Todo list manager
9 A Todo list manager for the Opie environment. 9 A Todo list manager for the Opie environment.
10Version: $QPE_VERSION$EXTRAVERSION 10Version: $QPE_VERSION$EXTRAVERSION
diff --git a/core/pim/todo/otaskeditor.cpp b/core/pim/todo/otaskeditor.cpp
index 1ed20b4..ab1ce94 100644
--- a/core/pim/todo/otaskeditor.cpp
+++ b/core/pim/todo/otaskeditor.cpp
@@ -1,92 +1,90 @@
1#include <qlayout.h> 1#include <qlayout.h>
2 2
3#include <opie/orecurrancewidget.h>
4
5#include "taskeditoroverview.h" 3#include "taskeditoroverview.h"
6#include "taskeditorstatus.h" 4#include "taskeditorstatus.h"
7#include "taskeditoralarms.h" 5#include "taskeditoralarms.h"
8 6
9#include "otaskeditor.h" 7#include "otaskeditor.h"
10 8
11OTaskEditor::OTaskEditor(int cur) 9OTaskEditor::OTaskEditor(int cur)
12 : QDialog( 0, 0, TRUE, WStyle_ContextHelp ) { 10 : QDialog( 0, 0, TRUE, WStyle_ContextHelp ) {
13 init(); 11 init();
14 init( cur ); 12 init( cur );
15} 13}
16OTaskEditor::OTaskEditor( const OTodo& to) 14OTaskEditor::OTaskEditor( const OPimTodo& to)
17 : QDialog( 0, 0, TRUE, WStyle_ContextHelp ) { 15 : QDialog( 0, 0, TRUE, WStyle_ContextHelp ) {
18 init(); 16 init();
19 init( to ); 17 init( to );
20} 18}
21OTaskEditor::~OTaskEditor() { 19OTaskEditor::~OTaskEditor() {
22 20
23} 21}
24void OTaskEditor::init( int cur ) { 22void OTaskEditor::init( int cur ) {
25 OTodo to; 23 OPimTodo to;
26 to.setUid( 1 ); // generate a new uid 24 to.setUid( 1 ); // generate a new uid
27 if ( cur != 0 ) 25 if ( cur != 0 )
28 to.setCategories( cur ); 26 to.setCategories( cur );
29 load(to); 27 load(to);
30} 28}
31void OTaskEditor::init( const OTodo& to ) { 29void OTaskEditor::init( const OPimTodo& to ) {
32 load( to ); 30 load( to );
33} 31}
34OTodo OTaskEditor::todo()const{ 32OPimTodo OTaskEditor::todo()const{
35 qWarning("saving!"); 33 qWarning("saving!");
36 OTodo to ( m_todo ); 34 OPimTodo to ( m_todo );
37 m_overView->save( to ); 35 m_overView->save( to );
38 m_stat->save( to ); 36 m_stat->save( to );
39 to.setRecurrence( m_rec->recurrence() ); 37 to.setRecurrence( m_rec->recurrence() );
40 m_alarm->save( to ); 38 m_alarm->save( to );
41 39
42 return to; 40 return to;
43} 41}
44void OTaskEditor::load(const OTodo& to) { 42void OTaskEditor::load(const OPimTodo& to) {
45 m_overView->load( to ); 43 m_overView->load( to );
46 m_stat->load( to ); 44 m_stat->load( to );
47 m_rec->setRecurrence( to.recurrence(), to.hasDueDate() ? to.dueDate() : QDate::currentDate() ); 45 m_rec->setRecurrence( to.recurrence(), to.hasDueDate() ? to.dueDate() : QDate::currentDate() );
48 m_alarm->load( to ); 46 m_alarm->load( to );
49 47
50 m_todo = to; 48 m_todo = to;
51} 49}
52void OTaskEditor::init() { 50void OTaskEditor::init() {
53 setCaption(tr("Task Editor") ); 51 setCaption(tr("Task Editor") );
54 52
55 QVBoxLayout* layo = new QVBoxLayout( this ); 53 QVBoxLayout* layo = new QVBoxLayout( this );
56 m_tab = new OTabWidget( this ); 54 m_tab = new OTabWidget( this );
57 layo->addWidget( m_tab ); 55 layo->addWidget( m_tab );
58 56
59 /* 57 /*
60 * Add the Widgets 58 * Add the Widgets
61 */ 59 */
62 m_overView = new TaskEditorOverView( m_tab ); 60 m_overView = new TaskEditorOverView( m_tab );
63 m_tab->addTab( m_overView, "todo/info", tr("Information") ); 61 m_tab->addTab( m_overView, "todo/info", tr("Information") );
64 62
65 m_stat = new TaskEditorStatus( m_tab ); 63 m_stat = new TaskEditorStatus( m_tab );
66 m_tab->addTab( m_stat, "todo/TodoList", tr("Status") ); 64 m_tab->addTab( m_stat, "todo/TodoList", tr("Status") );
67 65
68 m_alarm = new TaskEditorAlarms( m_tab ); 66 m_alarm = new TaskEditorAlarms( m_tab );
69 m_tab->addTab( m_alarm, "todo/alarm", tr("Alarms") ); 67 m_tab->addTab( m_alarm, "todo/alarm", tr("Alarms") );
70 68
71// m_remind = new TaskEditorAlarms( m_tab ); 69// m_remind = new TaskEditorAlarms( m_tab );
72// m_tab->addTab( m_remind, "todo/reminder", tr("Reminders") ); 70// m_tab->addTab( m_remind, "todo/reminder", tr("Reminders") );
73 71
74// QLabel* lbl = new QLabel( m_tab ); 72// QLabel* lbl = new QLabel( m_tab );
75// lbl->setText( tr("X-Ref") ); 73// lbl->setText( tr("X-Ref") );
76// m_tab->addTab( lbl, "todo/xref", tr("X-Ref") ); 74// m_tab->addTab( lbl, "todo/xref", tr("X-Ref") );
77 75
78 m_rec = new ORecurranceWidget( true, QDate::currentDate(), this ); 76 m_rec = new OPimRecurrenceWidget( true, QDate::currentDate(), this );
79 m_tab->addTab( m_rec, "repeat", tr("Recurrence") ); 77 m_tab->addTab( m_rec, "repeat", tr("Recurrence") );
80 78
81 79
82 /* signal and slots */ 80 /* signal and slots */
83 connect(m_overView, SIGNAL(recurranceEnabled(bool) ), 81 connect(m_overView, SIGNAL(recurranceEnabled(bool) ),
84 m_rec, SLOT(setEnabled(bool) ) ); 82 m_rec, SLOT(setEnabled(bool) ) );
85 83
86 /* connect due date changed to the recurrence tab */ 84 /* connect due date changed to the recurrence tab */
87 connect(m_stat, SIGNAL(dueDateChanged(const QDate&) ), 85 connect(m_stat, SIGNAL(dueDateChanged(const QDate&) ),
88 m_rec, SLOT(setStartDate(const QDate& ) ) ); 86 m_rec, SLOT(setStartDate(const QDate& ) ) );
89 87
90 88
91 m_tab->setCurrentTab( m_overView ); 89 m_tab->setCurrentTab( m_overView );
92} 90}
diff --git a/core/pim/todo/otaskeditor.h b/core/pim/todo/otaskeditor.h
index 2daae52..7068df8 100644
--- a/core/pim/todo/otaskeditor.h
+++ b/core/pim/todo/otaskeditor.h
@@ -1,43 +1,43 @@
1#ifndef OPIE_TASK_EDITOR_H 1#ifndef OPIE_TASK_EDITOR_H
2#define OPIE_TASK_EDITOR_H 2#define OPIE_TASK_EDITOR_H
3 3
4#include <qdialog.h> 4#include <qdialog.h>
5 5
6#include <opie/otodo.h> 6#include <opie2/opimtodo.h>
7#include <opie/otabwidget.h> 7#include <opie2/otabwidget.h>
8#include <opie2/opimrecurrencewidget.h>
8 9
9class TaskEditorOverView; 10class TaskEditorOverView;
10class TaskEditorStatus; 11class TaskEditorStatus;
11class TaskEditorAlarms; 12class TaskEditorAlarms;
12class ORecurranceWidget;
13class QMultiLineEdit; 13class QMultiLineEdit;
14 14
15class OTaskEditor : public QDialog { 15class OTaskEditor : public QDialog {
16 Q_OBJECT 16 Q_OBJECT
17public: 17public:
18 OTaskEditor(int cur); 18 OTaskEditor(int cur);
19 OTaskEditor( const OTodo& todo ); 19 OTaskEditor( const OPimTodo& todo );
20 ~OTaskEditor(); 20 ~OTaskEditor();
21 21
22 /* 22 /*
23 * same as the c'tor but this gives us the 23 * same as the c'tor but this gives us the
24 * power to 'preload' the dialog 24 * power to 'preload' the dialog
25 */ 25 */
26 void init( int cur ); 26 void init( int cur );
27 void init( const OTodo& todo ); 27 void init( const OPimTodo& todo );
28 28
29 OTodo todo()const; 29 OPimTodo todo()const;
30private: 30private:
31 void load( const OTodo& ); 31 void load( const OPimTodo& );
32 void init(); 32 void init();
33 33
34 OTabWidget *m_tab; 34 OTabWidget *m_tab;
35 TaskEditorOverView *m_overView; 35 TaskEditorOverView *m_overView;
36 TaskEditorStatus *m_stat; 36 TaskEditorStatus *m_stat;
37 TaskEditorAlarms *m_alarm; 37 TaskEditorAlarms *m_alarm;
38 TaskEditorAlarms *m_remind; 38 TaskEditorAlarms *m_remind;
39 ORecurranceWidget *m_rec; 39 OPimRecurrenceWidget *m_rec;
40 OTodo m_todo; 40 OPimTodo m_todo;
41}; 41};
42 42
43#endif 43#endif
diff --git a/core/pim/todo/quickedit.h b/core/pim/todo/quickedit.h
index 5fe74fe..0c0c204 100644
--- a/core/pim/todo/quickedit.h
+++ b/core/pim/todo/quickedit.h
@@ -1,45 +1,47 @@
1#ifndef OPIE_QUICK_EDIT_H 1#ifndef OPIE_QUICK_EDIT_H
2#define OPIE_QUICK_EDIT_H 2#define OPIE_QUICK_EDIT_H
3 3
4#include <qsignal.h> 4#include <qsignal.h>
5#include <qwidget.h> 5#include <qwidget.h>
6 6
7#include <opie/otodo.h> 7#include <opie2/opimtodo.h>
8
9using Opie::OPimTodo;
8 10
9namespace Todo{ 11namespace Todo{
10 class MainWindow; 12 class MainWindow;
11 struct QuickEditBase { 13 struct QuickEditBase {
12 virtual OTodo todo()const = 0l; 14 virtual OPimTodo todo()const = 0l;
13 virtual QSignal* signal() = 0l; 15 virtual QSignal* signal() = 0l;
14 virtual QWidget* widget() = 0l; 16 virtual QWidget* widget() = 0l;
15 }; 17 };
16 /* 18 /*
17 * this is my second try 19 * this is my second try
18 * of signal and slots with namespaces 20 * of signal and slots with namespaces
19 * and templates 21 * and templates
20 * I use a different approach now 22 * I use a different approach now
21 * I give a QSignal away 23 * I give a QSignal away
22 * and have a protected method called emit 24 * and have a protected method called emit
23 */ 25 */
24 /** 26 /**
25 * Quick edit is meant to quickly enter 27 * Quick edit is meant to quickly enter
26 * OTodos in a fast way 28 * OPimTodos in a fast way
27 */ 29 */
28 class QuickEdit : public QuickEditBase{ 30 class QuickEdit : public QuickEditBase{
29 public: 31 public:
30 QuickEdit(MainWindow* main ); 32 QuickEdit(MainWindow* main );
31 virtual ~QuickEdit(); 33 virtual ~QuickEdit();
32 //OTodo todo()const; 34 //OPimTodo todo()const;
33 QSignal* signal(); 35 QSignal* signal();
34 //QWidget* widget(); 36 //QWidget* widget();
35 protected: 37 protected:
36 MainWindow* mainWindow(); 38 MainWindow* mainWindow();
37 void commit(); 39 void commit();
38 private: 40 private:
39 MainWindow* m_main; 41 MainWindow* m_main;
40 QSignal* m_sig; 42 QSignal* m_sig;
41 }; 43 };
42}; 44};
43 45
44 46
45#endif 47#endif
diff --git a/core/pim/todo/quickeditimpl.cpp b/core/pim/todo/quickeditimpl.cpp
index 1863ef4..cd0684f 100644
--- a/core/pim/todo/quickeditimpl.cpp
+++ b/core/pim/todo/quickeditimpl.cpp
@@ -1,31 +1,31 @@
1#include <qaction.h> 1#include <qaction.h>
2#include <qlineedit.h> 2#include <qlineedit.h>
3#include <qwhatsthis.h> 3#include <qwhatsthis.h>
4 4
5#include <qpe/resource.h> 5#include <qpe/resource.h>
6 6
7#include <opie/oclickablelabel.h> 7#include <opie2/oclickablelabel.h>
8 8
9#include "mainwindow.h" 9#include "mainwindow.h"
10#include "quickeditimpl.h" 10#include "quickeditimpl.h"
11 11
12 12
13QuickEditImpl::QuickEditImpl( QWidget* parent, bool visible ) 13QuickEditImpl::QuickEditImpl( QWidget* parent, bool visible )
14 : QToolBar( (QMainWindow *)parent ), Todo::QuickEdit( (Todo::MainWindow *)parent ) { 14 : QToolBar( (QMainWindow *)parent ), Todo::QuickEdit( (Todo::MainWindow *)parent ) {
15 setHorizontalStretchable( TRUE ); 15 setHorizontalStretchable( TRUE );
16 16
17 // Load priority icons 17 // Load priority icons
18 // TODO - probably should be done globally somewhere else, 18 // TODO - probably should be done globally somewhere else,
19 // see also tableview.cpp/h, taskeditoroverview.cpp/h 19 // see also tableview.cpp/h, taskeditoroverview.cpp/h
20 priority1 = Resource::loadPixmap( "todo/priority1" ); 20 priority1 = Resource::loadPixmap( "todo/priority1" );
21 priority3 = Resource::loadPixmap( "todo/priority3" ); 21 priority3 = Resource::loadPixmap( "todo/priority3" );
22 priority5 = Resource::loadPixmap( "todo/priority5" ); 22 priority5 = Resource::loadPixmap( "todo/priority5" );
23 23
24 m_lbl = new OClickableLabel( this ); 24 m_lbl = new OClickableLabel( this );
25 m_lbl->setMinimumWidth( 15 ); 25 m_lbl->setMinimumWidth( 15 );
26 m_lbl->setPixmap( priority3 ); 26 m_lbl->setPixmap( priority3 );
27 connect(m_lbl, SIGNAL(clicked() ), this, SLOT(slotPrio()) ); 27 connect(m_lbl, SIGNAL(clicked() ), this, SLOT(slotPrio()) );
28 QWhatsThis::add( m_lbl, QWidget::tr( "Click here to set the priority of new task.\n\nThis area is called the quick task bar.\n\nIt allows you to quickly add a new task to your list. This area can be shown or hidden by selecting Options->'Show quick task bar' from the menu above." ) ); 28 QWhatsThis::add( m_lbl, QWidget::tr( "Click here to set the priority of new task.\n\nThis area is called the quick task bar.\n\nIt allows you to quickly add a new task to your list. This area can be shown or hidden by selecting Options->'Show quick task bar' from the menu above." ) );
29 29
30 m_edit = new QLineEdit( this ); 30 m_edit = new QLineEdit( this );
31 setStretchableWidget( m_edit ); 31 setStretchableWidget( m_edit );
@@ -41,56 +41,56 @@ QuickEditImpl::QuickEditImpl( QWidget* parent, bool visible )
41 a->setWhatsThis( QWidget::tr( "Click here to enter additional information for new task.\n\nThis area is called the quick task bar.\n\nIt allows you to quickly add a new task to your list. This area can be shown or hidden by selecting Options->'Show quick task bar' from the menu above." ) ); 41 a->setWhatsThis( QWidget::tr( "Click here to enter additional information for new task.\n\nThis area is called the quick task bar.\n\nIt allows you to quickly add a new task to your list. This area can be shown or hidden by selecting Options->'Show quick task bar' from the menu above." ) );
42#endif 42#endif
43 43
44 QAction *a = new QAction( QWidget::tr( "Enter" ), Resource::loadPixmap( "enter" ), QString::null, 0, this, 0 ); 44 QAction *a = new QAction( QWidget::tr( "Enter" ), Resource::loadPixmap( "enter" ), QString::null, 0, this, 0 );
45 connect( a, SIGNAL( activated() ), this, SLOT( slotEnter() ) ); 45 connect( a, SIGNAL( activated() ), this, SLOT( slotEnter() ) );
46 a->addTo( this ); 46 a->addTo( this );
47 a->setWhatsThis( QWidget::tr( "Click here to add new task.\n\nThis area is called the quick task bar.\n\nIt allows you to quickly add a new task to your list. This area can be shown or hidden by selecting Options->'Show quick task bar' from the menu above." ) ); 47 a->setWhatsThis( QWidget::tr( "Click here to add new task.\n\nThis area is called the quick task bar.\n\nIt allows you to quickly add a new task to your list. This area can be shown or hidden by selecting Options->'Show quick task bar' from the menu above." ) );
48 48
49 a = new QAction( QWidget::tr( "Cancel" ), Resource::loadPixmap( "close" ), QString::null, 0, this, 0 ); 49 a = new QAction( QWidget::tr( "Cancel" ), Resource::loadPixmap( "close" ), QString::null, 0, this, 0 );
50 connect( a, SIGNAL( activated() ), this, SLOT( slotCancel() ) ); 50 connect( a, SIGNAL( activated() ), this, SLOT( slotCancel() ) );
51 a->addTo( this ); 51 a->addTo( this );
52 a->setWhatsThis( QWidget::tr( "Click here to reset new task information.\n\nThis area is called the quick task bar.\n\nIt allows you to quickly add a new task to your list. This area can be shown or hidden by selecting Options->'Show quick task bar' from the menu above." ) ); 52 a->setWhatsThis( QWidget::tr( "Click here to reset new task information.\n\nThis area is called the quick task bar.\n\nIt allows you to quickly add a new task to your list. This area can be shown or hidden by selecting Options->'Show quick task bar' from the menu above." ) );
53 53
54 m_visible = visible; 54 m_visible = visible;
55 if ( !m_visible ) { 55 if ( !m_visible ) {
56 hide(); 56 hide();
57 } 57 }
58 58
59 m_menu = 0l; 59 m_menu = 0l;
60 reinit(); 60 reinit();
61} 61}
62QuickEditImpl::~QuickEditImpl() { 62QuickEditImpl::~QuickEditImpl() {
63 63
64} 64}
65OTodo QuickEditImpl::todo()const { 65OPimTodo QuickEditImpl::todo()const {
66 return m_todo; 66 return m_todo;
67} 67}
68QWidget* QuickEditImpl::widget() { 68QWidget* QuickEditImpl::widget() {
69 return this; 69 return this;
70} 70}
71void QuickEditImpl::slotEnter() { 71void QuickEditImpl::slotEnter() {
72 OTodo todo; 72 OPimTodo todo;
73 73
74 74
75 if (!m_edit->text().isEmpty() ) { 75 if (!m_edit->text().isEmpty() ) {
76 todo.setUid(1 ); // new uid 76 todo.setUid(1 ); // new uid
77 todo.setPriority( m_state ); 77 todo.setPriority( m_state );
78 todo.setSummary( m_edit->text() ); 78 todo.setSummary( m_edit->text() );
79 if ( ((Todo::MainWindow *)parent())->currentCatId() != 0 ) 79 if ( ((Todo::MainWindow *)parent())->currentCatId() != 0 )
80 todo.setCategories( ((Todo::MainWindow *)parent())->currentCatId() ); 80 todo.setCategories( ((Todo::MainWindow *)parent())->currentCatId() );
81 81
82 m_todo = todo; 82 m_todo = todo;
83 commit(); 83 commit();
84 } 84 }
85 m_todo = todo; 85 m_todo = todo;
86 reinit(); 86 reinit();
87} 87}
88void QuickEditImpl::slotPrio() { 88void QuickEditImpl::slotPrio() {
89 m_state -= 2; 89 m_state -= 2;
90 if ( m_state < 1 ) 90 if ( m_state < 1 )
91 m_state = 5; 91 m_state = 5;
92 92
93 switch( m_state ) { 93 switch( m_state ) {
94 case 1: 94 case 1:
95 m_lbl->setPixmap( priority1 ); 95 m_lbl->setPixmap( priority1 );
96 break; 96 break;
diff --git a/core/pim/todo/quickeditimpl.h b/core/pim/todo/quickeditimpl.h
index 89b94f8..d465dba 100644
--- a/core/pim/todo/quickeditimpl.h
+++ b/core/pim/todo/quickeditimpl.h
@@ -1,41 +1,41 @@
1#ifndef OPIE_QUICK_EDIT_IMPL_H 1#ifndef OPIE_QUICK_EDIT_IMPL_H
2#define OPIE_QUICK_EDIT_IMPL_H 2#define OPIE_QUICK_EDIT_IMPL_H
3 3
4#include <qpixmap.h> 4#include <qpixmap.h>
5 5
6#include <qtoolbar.h> 6#include <qtoolbar.h>
7 7
8#include "quickedit.h" 8#include "quickedit.h"
9 9
10class QLineEdit; 10class QLineEdit;
11class QLabel; 11class QLabel;
12 12
13class QuickEditImpl : public QToolBar, public Todo::QuickEdit { 13class QuickEditImpl : public QToolBar, public Todo::QuickEdit {
14 Q_OBJECT 14 Q_OBJECT
15public: 15public:
16 QuickEditImpl( QWidget* parent, bool visible); 16 QuickEditImpl( QWidget* parent, bool visible);
17 ~QuickEditImpl(); 17 ~QuickEditImpl();
18 OTodo todo()const; 18 OPimTodo todo()const;
19 QWidget* widget(); 19 QWidget* widget();
20private slots: 20private slots:
21 void slotEnter(); 21 void slotEnter();
22 void slotPrio(); 22 void slotPrio();
23 void slotMore(); 23 void slotMore();
24 void slotCancel(); 24 void slotCancel();
25private: 25private:
26 void reinit(); 26 void reinit();
27 int m_state; 27 int m_state;
28 QLabel* m_lbl; 28 QLabel* m_lbl;
29 QLineEdit* m_edit; 29 QLineEdit* m_edit;
30 QLabel* m_enter; 30 QLabel* m_enter;
31 QLabel* m_more; 31 QLabel* m_more;
32 QPopupMenu* m_menu; 32 QPopupMenu* m_menu;
33 OTodo m_todo; 33 OPimTodo m_todo;
34 bool m_visible; 34 bool m_visible;
35 35
36 QPixmap priority1; 36 QPixmap priority1;
37 QPixmap priority3; 37 QPixmap priority3;
38 QPixmap priority5; 38 QPixmap priority5;
39}; 39};
40 40
41#endif 41#endif
diff --git a/core/pim/todo/smalltodo.h b/core/pim/todo/smalltodo.h
index 952ed04..963218e 100644
--- a/core/pim/todo/smalltodo.h
+++ b/core/pim/todo/smalltodo.h
@@ -16,50 +16,50 @@
16  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU 16  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
17..}^=.=       =       ; Library General Public License for more 17..}^=.=       =       ; Library General Public License for more
18++=   -.     .`     .: details. 18++=   -.     .`     .: details.
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#ifndef TODO_SMALL_TODO_H 29#ifndef TODO_SMALL_TODO_H
30#define TODO_SMALL_TODO_H 30#define TODO_SMALL_TODO_H
31 31
32#include <qdatetime.h> 32#include <qdatetime.h>
33#include <qstring.h> 33#include <qstring.h>
34#include <qstringlist.h> 34#include <qstringlist.h>
35 35
36 36
37namespace Todo { 37namespace Todo {
38 /** 38 /**
39 * SmallTodo holds everything necessary 39 * SmallTodo holds everything necessary
40 * to represent a OTodo without holding 40 * to represent a OPimTodo without holding
41 * everything from a OTodo 41 * everything from a OPimTodo
42 */ 42 */
43 class SmallTodo { 43 class SmallTodo {
44 public: 44 public:
45 SmallTodo(int uid = 0, 45 SmallTodo(int uid = 0,
46 bool comp = false, 46 bool comp = false,
47 const QDate& date = QDate::currentDate(), 47 const QDate& date = QDate::currentDate(),
48 const QString& = QString::null, 48 const QString& = QString::null,
49 const QStringList& = QStringList() ); 49 const QStringList& = QStringList() );
50 SmallTodo( const SmallTodo& ); 50 SmallTodo( const SmallTodo& );
51 ~SmallTodo(); 51 ~SmallTodo();
52 52
53 bool operator==( const SmallTodo& ); 53 bool operator==( const SmallTodo& );
54 bool operator==( const SmallTodo& ) const; 54 bool operator==( const SmallTodo& ) const;
55 55
56 SmallTodo &operator=( const SmallTodo& ); 56 SmallTodo &operator=( const SmallTodo& );
57 QString name()const; 57 QString name()const;
58 QStringList categories()const; 58 QStringList categories()const;
59 int uid()const; 59 int uid()const;
60 bool isCompleted()const; 60 bool isCompleted()const;
61 QDate date()const; 61 QDate date()const;
62 62
63 private: 63 private:
64 struct SmallTodoPrivate; 64 struct SmallTodoPrivate;
65 SmallTodoPrivate* d; 65 SmallTodoPrivate* d;
diff --git a/core/pim/todo/tableview.cpp b/core/pim/todo/tableview.cpp
index d980a24..5bbf880 100644
--- a/core/pim/todo/tableview.cpp
+++ b/core/pim/todo/tableview.cpp
@@ -16,49 +16,49 @@
16  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU 16  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
17..}^=.=       =       ; Library General Public License for more 17..}^=.=       =       ; Library General Public License for more
18++=   -.     .`     .: details. 18++=   -.     .`     .: details.
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#include <stdlib.h> 28#include <stdlib.h>
29#include <cmath> 29#include <cmath>
30#include <cctype> 30#include <cctype>
31 31
32#include <qcombobox.h> 32#include <qcombobox.h>
33#include <qlineedit.h> 33#include <qlineedit.h>
34#include <qtimer.h> 34#include <qtimer.h>
35#include <qpopupmenu.h> 35#include <qpopupmenu.h>
36 36
37#include <qpe/config.h> 37#include <qpe/config.h>
38#include <qpe/resource.h> 38#include <qpe/resource.h>
39 39
40#include <opie/orecur.h> 40#include <opie2/opimrecurrence.h>
41 41
42#include "mainwindow.h" 42#include "mainwindow.h"
43//#include "tableitems.h" 43//#include "tableitems.h"
44#include "tableview.h" 44#include "tableview.h"
45 45
46using namespace Todo; 46using namespace Todo;
47 47
48namespace { 48namespace {
49 static const int BoxSize = 14; 49 static const int BoxSize = 14;
50 static const int RowHeight = 20; 50 static const int RowHeight = 20;
51} 51}
52 52
53TableView::EditorWidget::EditorWidget() : m_wid(0l), m_row(-1), m_col(-1) { 53TableView::EditorWidget::EditorWidget() : m_wid(0l), m_row(-1), m_col(-1) {
54} 54}
55void TableView::EditorWidget::setCellWidget(QWidget* wid, int row, int col ) { 55void TableView::EditorWidget::setCellWidget(QWidget* wid, int row, int col ) {
56 m_wid = wid; 56 m_wid = wid;
57 m_row = row; 57 m_row = row;
58 m_col = col; 58 m_col = col;
59} 59}
60void TableView::EditorWidget::releaseCellWidget() { 60void TableView::EditorWidget::releaseCellWidget() {
61 m_wid = 0; 61 m_wid = 0;
62 m_row = m_col = -1; 62 m_row = m_col = -1;
63} 63}
64QWidget* TableView::EditorWidget::cellWidget()const { 64QWidget* TableView::EditorWidget::cellWidget()const {
@@ -163,107 +163,107 @@ void TableView::slotShowMenu() {
163} 163}
164QString TableView::type() const { 164QString TableView::type() const {
165 return QString::fromLatin1( tr("Table View") ); 165 return QString::fromLatin1( tr("Table View") );
166} 166}
167int TableView::current() { 167int TableView::current() {
168 if (numRows() == 0 ) return 0; 168 if (numRows() == 0 ) return 0;
169 int uid = sorted().uidAt(currentRow() ); 169 int uid = sorted().uidAt(currentRow() );
170 170
171 return uid; 171 return uid;
172} 172}
173int TableView::next() { 173int TableView::next() {
174 if ( numRows() == 0 ) return 0; 174 if ( numRows() == 0 ) return 0;
175 if ( currentRow() + 1 >= numRows() ) return 0; 175 if ( currentRow() + 1 >= numRows() ) return 0;
176 setCurrentCell( currentRow() +1, currentColumn() ); 176 setCurrentCell( currentRow() +1, currentColumn() );
177 return sorted().uidAt( currentRow() ); 177 return sorted().uidAt( currentRow() );
178} 178}
179int TableView::prev() { 179int TableView::prev() {
180 if ( numRows() == 0 ) return 0; 180 if ( numRows() == 0 ) return 0;
181 if ( currentRow() - 1 < 0 ) return 0; 181 if ( currentRow() - 1 < 0 ) return 0;
182 setCurrentCell( currentRow() -1, currentColumn() ); 182 setCurrentCell( currentRow() -1, currentColumn() );
183 return sorted().uidAt( currentRow() ); 183 return sorted().uidAt( currentRow() );
184 184
185} 185}
186QString TableView::currentRepresentation() { 186QString TableView::currentRepresentation() {
187 OTodo to = sorted()[currentRow()]; 187 OPimTodo to = sorted()[currentRow()];
188 return to.summary().isEmpty() ? to.description().left(20) : to.summary() ; 188 return to.summary().isEmpty() ? to.description().left(20) : to.summary() ;
189} 189}
190/* show overdue */ 190/* show overdue */
191void TableView::showOverDue( bool ) { 191void TableView::showOverDue( bool ) {
192 clear(); 192 clear();
193 updateView(); 193 updateView();
194} 194}
195 195
196void TableView::updateView( ) { 196void TableView::updateView( ) {
197 qWarning("update view"); 197 qWarning("update view");
198 m_row = false; 198 m_row = false;
199 static int id; 199 static int id;
200 id = startTimer(4000 ); 200 id = startTimer(4000 );
201 /* FIXME we want one page to be read! 201 /* FIXME we want one page to be read!
202 * 202 *
203 * Calculate that screensize 203 * Calculate that screensize
204 */ 204 */
205 todoWindow()->setReadAhead( 4 ); 205 todoWindow()->setReadAhead( 4 );
206 sort(); 206 sort();
207 OTodoAccess::List::Iterator it, end; 207 OPimTodoAccess::List::Iterator it, end;
208 it = sorted().begin(); 208 it = sorted().begin();
209 end = sorted().end(); 209 end = sorted().end();
210 210
211 qWarning("setTodos"); 211 qWarning("setTodos");
212 QTime time; 212 QTime time;
213 time.start(); 213 time.start();
214 m_enablePaint = false; 214 m_enablePaint = false;
215 setUpdatesEnabled( false ); 215 setUpdatesEnabled( false );
216 viewport()->setUpdatesEnabled( false ); 216 viewport()->setUpdatesEnabled( false );
217 217
218 setNumRows( it.count() ); 218 setNumRows( it.count() );
219 if ( it.count() == 0 ) 219 if ( it.count() == 0 )
220 killTimer(id); 220 killTimer(id);
221 221
222// int elc = time.elapsed(); 222// int elc = time.elapsed();
223 setUpdatesEnabled( true ); 223 setUpdatesEnabled( true );
224 viewport()->setUpdatesEnabled( true ); 224 viewport()->setUpdatesEnabled( true );
225 viewport()->update(); 225 viewport()->update();
226 226
227 m_enablePaint = true; 227 m_enablePaint = true;
228// int el = time.elapsed(); 228// int el = time.elapsed();
229} 229}
230void TableView::setTodo( int, const OTodo&) { 230void TableView::setTodo( int, const OPimTodo&) {
231 sort(); 231 sort();
232 232
233 /* repaint */ 233 /* repaint */
234 repaint(); 234 repaint();
235} 235}
236void TableView::addEvent( const OTodo&) { 236void TableView::addEvent( const OPimTodo&) {
237 237
238 /* fix problems of not showing the 'Haken' */ 238 /* fix problems of not showing the 'Haken' */
239 updateView(); 239 updateView();
240} 240}
241/* 241/*
242 * find the event 242 * find the event
243 * and then replace the complete row 243 * and then replace the complete row
244 */ 244 */
245void TableView::replaceEvent( const OTodo& ev) { 245void TableView::replaceEvent( const OPimTodo& ev) {
246 addEvent( ev ); 246 addEvent( ev );
247} 247}
248/* 248/*
249 * re aligning table can be slow too 249 * re aligning table can be slow too
250 * FIXME: look what performs better 250 * FIXME: look what performs better
251 * either this or the old align table 251 * either this or the old align table
252 */ 252 */
253void TableView::removeEvent( int ) { 253void TableView::removeEvent( int ) {
254 updateView(); 254 updateView();
255} 255}
256void TableView::setShowCompleted( bool b) { 256void TableView::setShowCompleted( bool b) {
257 qWarning("Show Completed %d" , b ); 257 qWarning("Show Completed %d" , b );
258 updateView(); 258 updateView();
259} 259}
260void TableView::setShowDeadline( bool b ) { 260void TableView::setShowDeadline( bool b ) {
261 qWarning( "Show DeadLine %d" , b ); 261 qWarning( "Show DeadLine %d" , b );
262 if ( b ) 262 if ( b )
263 showColumn( 3 ); 263 showColumn( 3 );
264 else 264 else
265 hideColumn( 3 ); 265 hideColumn( 3 );
266 266
267 // Try to intelligently size columns 267 // Try to intelligently size columns
268 // TODO - would use width() below, but doesn't have valid value at time of c'tor 268 // TODO - would use width() below, but doesn't have valid value at time of c'tor
269 int col2width = 238; 269 int col2width = 238;
@@ -367,49 +367,49 @@ QWidget* TableView::widget() {
367 * based 367 * based
368 * We event want to set the setOrder 368 * We event want to set the setOrder
369 * to a sort() and update() 369 * to a sort() and update()
370 */ 370 */
371void TableView::sortColumn( int col, bool asc, bool ) { 371void TableView::sortColumn( int col, bool asc, bool ) {
372 qWarning("bool %d", asc ); 372 qWarning("bool %d", asc );
373 setSortOrder( col ); 373 setSortOrder( col );
374 setAscending( asc ); 374 setAscending( asc );
375 updateView(); 375 updateView();
376} 376}
377void TableView::viewportPaintEvent( QPaintEvent* e) { 377void TableView::viewportPaintEvent( QPaintEvent* e) {
378 if (m_enablePaint ) 378 if (m_enablePaint )
379 QTable::viewportPaintEvent( e ); 379 QTable::viewportPaintEvent( e );
380} 380}
381/* 381/*
382 * This segment is copyrighted by TT 382 * This segment is copyrighted by TT
383 * it was taken from their todolist 383 * it was taken from their todolist
384 * application this code is GPL 384 * application this code is GPL
385 */ 385 */
386void TableView::paintCell(QPainter* p, int row, int col, const QRect& cr, bool ) { 386void TableView::paintCell(QPainter* p, int row, int col, const QRect& cr, bool ) {
387 const QColorGroup &cg = colorGroup(); 387 const QColorGroup &cg = colorGroup();
388 388
389 p->save(); 389 p->save();
390 390
391 OTodo task = sorted()[row]; 391 OPimTodo task = sorted()[row];
392 392
393 // TODO - give user option for grid or bars? 393 // TODO - give user option for grid or bars?
394 394
395 // Paint alternating background bars 395 // Paint alternating background bars
396 if ( (row % 2 ) == 0 ) { 396 if ( (row % 2 ) == 0 ) {
397 p->fillRect( 0, 0, cr.width(), cr.height(), cg.brush( QColorGroup::Base ) ); 397 p->fillRect( 0, 0, cr.width(), cr.height(), cg.brush( QColorGroup::Base ) );
398 p->setPen( QPen( cg.text() ) ); 398 p->setPen( QPen( cg.text() ) );
399 } 399 }
400 else { 400 else {
401 p->fillRect( 0, 0, cr.width(), cr.height(), cg.brush( QColorGroup::Background ) ); 401 p->fillRect( 0, 0, cr.width(), cr.height(), cg.brush( QColorGroup::Background ) );
402 p->setPen( QPen( cg.buttonText() ) ); 402 p->setPen( QPen( cg.buttonText() ) );
403 } 403 }
404 404
405 // Paint grid 405 // Paint grid
406 //p->fillRect( 0, 0, cr.width(), cr.height(), cg.brush( QColorGroup::Base ) ); 406 //p->fillRect( 0, 0, cr.width(), cr.height(), cg.brush( QColorGroup::Base ) );
407 //QPen op = p->pen(); 407 //QPen op = p->pen();
408 //p->setPen(cg.mid()); 408 //p->setPen(cg.mid());
409 //p->drawLine( 0, cr.height() - 1, cr.width() - 1, cr.height() - 1 ); 409 //p->drawLine( 0, cr.height() - 1, cr.width() - 1, cr.height() - 1 );
410 //p->drawLine( cr.width() - 1, 0, cr.width() - 1, cr.height() - 1 ); 410 //p->drawLine( cr.width() - 1, 0, cr.width() - 1, cr.height() - 1 );
411 //p->setPen(op); 411 //p->setPen(op);
412 412
413 QFont f = p->font(); 413 QFont f = p->font();
414 QFontMetrics fm(f); 414 QFontMetrics fm(f);
415 415
@@ -476,60 +476,60 @@ QWidget* TableView::createEditor(int row, int col, bool )const {
476 QComboBox* combo = new QComboBox( viewport() ); 476 QComboBox* combo = new QComboBox( viewport() );
477 for ( int i = 0; i < 5; i++ ) { 477 for ( int i = 0; i < 5; i++ ) {
478 combo->insertItem( m_pic_priority[ i ] ); 478 combo->insertItem( m_pic_priority[ i ] );
479 } 479 }
480 combo->setCurrentItem( sorted()[row].priority()-1 ); 480 combo->setCurrentItem( sorted()[row].priority()-1 );
481 return combo; 481 return combo;
482 } 482 }
483 /* summary */ 483 /* summary */
484 case 2:{ 484 case 2:{
485 QLineEdit* edit = new QLineEdit( viewport() ); 485 QLineEdit* edit = new QLineEdit( viewport() );
486 edit->setText( sorted()[row].summary() ); 486 edit->setText( sorted()[row].summary() );
487 return edit; 487 return edit;
488 } 488 }
489 case 0: 489 case 0:
490 default: 490 default:
491 return 0l; 491 return 0l;
492 } 492 }
493} 493}
494void TableView::setCellContentFromEditor(int row, int col ) { 494void TableView::setCellContentFromEditor(int row, int col ) {
495 qWarning("set cell content from editor"); 495 qWarning("set cell content from editor");
496 if ( col == 1 ) { 496 if ( col == 1 ) {
497 QWidget* wid = cellWidget(row, 1 ); 497 QWidget* wid = cellWidget(row, 1 );
498 if ( wid->inherits("QComboBox") ) { 498 if ( wid->inherits("QComboBox") ) {
499 int pri = ((QComboBox*)wid)->currentItem() + 1; 499 int pri = ((QComboBox*)wid)->currentItem() + 1;
500 OTodo todo = sorted()[row]; 500 OPimTodo todo = sorted()[row];
501 if ( todo.priority() != pri ) { 501 if ( todo.priority() != pri ) {
502 todo.setPriority( pri ); 502 todo.setPriority( pri );
503 TodoView::update( todo.uid(), todo ); 503 TodoView::update( todo.uid(), todo );
504 updateView(); 504 updateView();
505 } 505 }
506 } 506 }
507 }else if ( col == 2) { 507 }else if ( col == 2) {
508 QWidget* wid = cellWidget(row, 2); 508 QWidget* wid = cellWidget(row, 2);
509 if ( wid->inherits("QLineEdit") ) { 509 if ( wid->inherits("QLineEdit") ) {
510 QString text = ((QLineEdit*)wid)->text(); 510 QString text = ((QLineEdit*)wid)->text();
511 OTodo todo = sorted()[row]; 511 OPimTodo todo = sorted()[row];
512 if ( todo.summary() != text ) { 512 if ( todo.summary() != text ) {
513 todo.setSummary( text ); 513 todo.setSummary( text );
514 TodoView::update( todo.uid(), todo ); 514 TodoView::update( todo.uid(), todo );
515 updateView(); 515 updateView();
516 } 516 }
517 } 517 }
518 } 518 }
519} 519}
520void TableView::slotPriority() { 520void TableView::slotPriority() {
521 setCellContentFromEditor( currentRow(), currentColumn() ); 521 setCellContentFromEditor( currentRow(), currentColumn() );
522} 522}
523/* 523/*
524 * We'll use the TimerEvent to read ahead or to keep the cahce always 524 * We'll use the TimerEvent to read ahead or to keep the cahce always
525 * filled enough. 525 * filled enough.
526 * We will try to read ahead 4 items in both ways 526 * We will try to read ahead 4 items in both ways
527 * up and down. On odd or even we will currentRow()+-4 or +-9 527 * up and down. On odd or even we will currentRow()+-4 or +-9
528 * 528 *
529 */ 529 */
530void TableView::timerEvent( QTimerEvent* ) { 530void TableView::timerEvent( QTimerEvent* ) {
531// qWarning("sorted %d", sorted().count() ); 531// qWarning("sorted %d", sorted().count() );
532 if (sorted().count() == 0 ) 532 if (sorted().count() == 0 )
533 return; 533 return;
534 534
535 int row = currentRow(); 535 int row = currentRow();
diff --git a/core/pim/todo/tableview.h b/core/pim/todo/tableview.h
index 528ddc9..7f78255 100644
--- a/core/pim/todo/tableview.h
+++ b/core/pim/todo/tableview.h
@@ -35,65 +35,65 @@
35 35
36#include "todoview.h" 36#include "todoview.h"
37 37
38class QTimer; 38class QTimer;
39 39
40namespace Todo { 40namespace Todo {
41 class CheckItem; 41 class CheckItem;
42 class DueTextItem; 42 class DueTextItem;
43 class TableView : public QTable, public TodoView { 43 class TableView : public QTable, public TodoView {
44 Q_OBJECT 44 Q_OBJECT
45 public: 45 public:
46 TableView( MainWindow*, QWidget* parent ); 46 TableView( MainWindow*, QWidget* parent );
47 ~TableView(); 47 ~TableView();
48 48
49 49
50 QString type()const; 50 QString type()const;
51 int current(); 51 int current();
52 QString currentRepresentation(); 52 QString currentRepresentation();
53 int next(); 53 int next();
54 int prev(); 54 int prev();
55 55
56 void clear(); 56 void clear();
57 void showOverDue( bool ); 57 void showOverDue( bool );
58 void updateView(); 58 void updateView();
59 void setTodo( int uid, const OTodo& ); 59 void setTodo( int uid, const OPimTodo& );
60 void addEvent( const OTodo& event ); 60 void addEvent( const OPimTodo& event );
61 void replaceEvent( const OTodo& ); 61 void replaceEvent( const OPimTodo& );
62 void removeEvent( int uid ); 62 void removeEvent( int uid );
63 void setShowCompleted( bool ); 63 void setShowCompleted( bool );
64 void setShowDeadline( bool ); 64 void setShowDeadline( bool );
65 65
66 void setShowCategory(const QString& =QString::null ); 66 void setShowCategory(const QString& =QString::null );
67 void newDay(); 67 void newDay();
68 QWidget* widget(); 68 QWidget* widget();
69 void sortColumn(int, bool, bool ); 69 void sortColumn(int, bool, bool );
70 70
71 /* 71 /*
72 * we do our drawing ourselves 72 * we do our drawing ourselves
73 * because we don't want to have 73 * because we don't want to have
74 * 40.000 QTableItems for 10.000 74 * 40.000 QTableItems for 10.000
75 * OTodos where we only show 10 at a time! 75 * OPimTodos where we only show 10 at a time!
76 */ 76 */
77 void paintCell(QPainter* p, int row, int col, const QRect&, bool ); 77 void paintCell(QPainter* p, int row, int col, const QRect&, bool );
78 private: 78 private:
79 /* reimplented for internal reasons */ 79 /* reimplented for internal reasons */
80 void viewportPaintEvent( QPaintEvent* ); 80 void viewportPaintEvent( QPaintEvent* );
81 QTimer *m_menuTimer; 81 QTimer *m_menuTimer;
82 bool m_enablePaint:1; 82 bool m_enablePaint:1;
83 QString m_oleCat; 83 QString m_oleCat;
84 bool m_first : 1; 84 bool m_first : 1;
85 85
86 QPixmap m_pic_completed; 86 QPixmap m_pic_completed;
87 QPixmap m_pic_priority[ 5 ]; 87 QPixmap m_pic_priority[ 5 ];
88 88
89 protected: 89 protected:
90 void keyPressEvent( QKeyEvent* ); 90 void keyPressEvent( QKeyEvent* );
91 void contentsMouseReleaseEvent( QMouseEvent* ); 91 void contentsMouseReleaseEvent( QMouseEvent* );
92 void contentsMouseMoveEvent( QMouseEvent* ); 92 void contentsMouseMoveEvent( QMouseEvent* );
93 void timerEvent( QTimerEvent* e ); 93 void timerEvent( QTimerEvent* e );
94 QWidget* createEditor(int row, int col, bool initFromCell )const; 94 QWidget* createEditor(int row, int col, bool initFromCell )const;
95 void setCellContentFromEditor( int row, int col ); 95 void setCellContentFromEditor( int row, int col );
96 /** 96 /**
97 * for inline editing on single click and to work around some 97 * for inline editing on single click and to work around some
98 * bug in qt2.3.5 98 * bug in qt2.3.5
99 */ 99 */
diff --git a/core/pim/todo/taskeditoralarms.cpp b/core/pim/todo/taskeditoralarms.cpp
index bcc40fe..930c94e 100644
--- a/core/pim/todo/taskeditoralarms.cpp
+++ b/core/pim/todo/taskeditoralarms.cpp
@@ -7,51 +7,50 @@
7:`=1 )Y*s>-.--   : the terms of the GNU General Public 7:`=1 )Y*s>-.--   : the terms of the GNU General Public
8.="- .-=="i,     .._ License as published by the Free Software 8.="- .-=="i,     .._ License as published by the Free Software
9 - .   .-<_>     .<> Foundation; either version 2 of the License, 9 - .   .-<_>     .<> Foundation; either version 2 of the License,
10     ._= =}       : or (at your option) any later version. 10     ._= =}       : or (at your option) any later version.
11    .%`+i>       _;_. 11    .%`+i>       _;_.
12    .i_,=:_.      -<s. This program is distributed in the hope that 12    .i_,=:_.      -<s. This program is distributed in the hope that
13     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY; 13     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
14    : ..    .:,     . . . without even the implied warranty of 14    : ..    .:,     . . . without even the implied warranty of
15    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A 15    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
16  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU 16  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
17..}^=.=       =       ; Library General Public License for more 17..}^=.=       =       ; Library General Public License for more
18++=   -.     .`     .: details. 18++=   -.     .`     .: details.
19 :     =  ...= . :.=- 19 :     =  ...= . :.=-
20 -.   .:....=;==+<; You should have received a copy of the GNU 20 -.   .:....=;==+<; You should have received a copy of the GNU
21  -_. . .   )=.  = General Public License along with 21  -_. . .   )=.  = 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 "taskeditoralarms.h" 29#include "taskeditoralarms.h"
30 30
31#include <opie/otodo.h> 31#include <opie2/opimnotifymanager.h>
32#include <opie/opimnotifymanager.h> 32#include <opie2/otimepicker.h>
33#include <opie/otimepicker.h>
34 33
35#include <qpe/datebookmonth.h> 34#include <qpe/datebookmonth.h>
36#include <qpe/resource.h> 35#include <qpe/resource.h>
37 36
38#include <qlistview.h> 37#include <qlistview.h>
39#include <qlayout.h> 38#include <qlayout.h>
40 39
41 40
42class AlarmItem : public QListViewItem { 41class AlarmItem : public QListViewItem {
43public: 42public:
44 AlarmItem( QListView*, const OPimAlarm& ); 43 AlarmItem( QListView*, const OPimAlarm& );
45 ~AlarmItem(); 44 ~AlarmItem();
46 45
47 OPimAlarm alarm()const; 46 OPimAlarm alarm()const;
48 void setAlarm( const OPimAlarm& ); 47 void setAlarm( const OPimAlarm& );
49private: 48private:
50 QDateTime m_dt; 49 QDateTime m_dt;
51 int m_type; 50 int m_type;
52}; 51};
53AlarmItem::AlarmItem( QListView* view, const OPimAlarm& dt) 52AlarmItem::AlarmItem( QListView* view, const OPimAlarm& dt)
54 : QListViewItem(view) { 53 : QListViewItem(view) {
55 setAlarm( dt ); 54 setAlarm( dt );
56} 55}
57void AlarmItem::setAlarm( const OPimAlarm& dt ) { 56void AlarmItem::setAlarm( const OPimAlarm& dt ) {
@@ -101,63 +100,63 @@ TaskEditorAlarms::TaskEditorAlarms( QWidget* parent, int, const char* name, WFl
101 //QWhatsThis::add( btn, tr( "Select a checkbook and then click here to delete it." ) ); 100 //QWhatsThis::add( btn, tr( "Select a checkbook and then click here to delete it." ) );
102 connect( btn, SIGNAL( clicked() ), this, SLOT( slotDelete() ) ); 101 connect( btn, SIGNAL( clicked() ), this, SLOT( slotDelete() ) );
103 layout->addWidget( btn, 1, 2 ); 102 layout->addWidget( btn, 1, 2 );
104} 103}
105 104
106TaskEditorAlarms::~TaskEditorAlarms(){ 105TaskEditorAlarms::~TaskEditorAlarms(){
107} 106}
108 107
109void TaskEditorAlarms::slotNew(){ 108void TaskEditorAlarms::slotNew(){
110 (void)new AlarmItem(lstAlarms, OPimAlarm(0, QDateTime::currentDateTime() ) ); 109 (void)new AlarmItem(lstAlarms, OPimAlarm(0, QDateTime::currentDateTime() ) );
111} 110}
112 111
113void TaskEditorAlarms::slotEdit(){ 112void TaskEditorAlarms::slotEdit(){
114} 113}
115 114
116void TaskEditorAlarms::slotDelete(){ 115void TaskEditorAlarms::slotDelete(){
117 QListViewItem* item = lstAlarms->currentItem(); 116 QListViewItem* item = lstAlarms->currentItem();
118 if (!item) return; 117 if (!item) return;
119 118
120 lstAlarms->takeItem( item ); delete item; 119 lstAlarms->takeItem( item ); delete item;
121 120
122 121
123} 122}
124 123
125void TaskEditorAlarms::load( const OTodo& todo) { 124void TaskEditorAlarms::load( const OPimTodo& todo) {
126 lstAlarms->clear(); 125 lstAlarms->clear();
127 if (!todo.hasNotifiers() ) return; 126 if (!todo.hasNotifiers() ) return;
128 127
129 OPimNotifyManager::Alarms als = todo.notifiers().alarms(); 128 OPimNotifyManager::Alarms als = todo.notifiers().alarms();
130 129
131 if (als.isEmpty() ) return; 130 if (als.isEmpty() ) return;
132 131
133 OPimNotifyManager::Alarms::Iterator it = als.begin(); 132 OPimNotifyManager::Alarms::Iterator it = als.begin();
134 for ( ; it != als.end(); ++it ) 133 for ( ; it != als.end(); ++it )
135 (void)new AlarmItem( lstAlarms, (*it) ); 134 (void)new AlarmItem( lstAlarms, (*it) );
136 135
137 136
138} 137}
139void TaskEditorAlarms::save( OTodo& todo ) { 138void TaskEditorAlarms::save( OPimTodo& todo ) {
140 if (lstAlarms->childCount() <= 0 ) return; 139 if (lstAlarms->childCount() <= 0 ) return;
141 140
142 OPimNotifyManager::Alarms alarms; 141 OPimNotifyManager::Alarms alarms;
143 142
144 for ( QListViewItem* item = lstAlarms->firstChild(); item; item = item->nextSibling() ) { 143 for ( QListViewItem* item = lstAlarms->firstChild(); item; item = item->nextSibling() ) {
145 AlarmItem *alItem = static_cast<AlarmItem*>(item); 144 AlarmItem *alItem = static_cast<AlarmItem*>(item);
146 alarms.append( alItem->alarm() ); 145 alarms.append( alItem->alarm() );
147 } 146 }
148 147
149 OPimNotifyManager& manager = todo.notifiers(); 148 OPimNotifyManager& manager = todo.notifiers();
150 manager.setAlarms( alarms ); 149 manager.setAlarms( alarms );
151} 150}
152void TaskEditorAlarms::inlineEdit( QListViewItem* alarm, const QPoint& p, int col ) { 151void TaskEditorAlarms::inlineEdit( QListViewItem* alarm, const QPoint& p, int col ) {
153 if (!alarm) return; 152 if (!alarm) return;
154 153
155 AlarmItem* item = static_cast<AlarmItem*>(alarm); 154 AlarmItem* item = static_cast<AlarmItem*>(alarm);
156 switch( col ) { 155 switch( col ) {
157 // date 156 // date
158 case 0: 157 case 0:
159 return inlineSetDate( item, p ); 158 return inlineSetDate( item, p );
160 // time 159 // time
161 case 1: 160 case 1:
162 return inlineSetTime( item ); 161 return inlineSetTime( item );
163 // type 162 // type
diff --git a/core/pim/todo/taskeditoralarms.h b/core/pim/todo/taskeditoralarms.h
index 0aa52cc..2379b0c 100644
--- a/core/pim/todo/taskeditoralarms.h
+++ b/core/pim/todo/taskeditoralarms.h
@@ -8,65 +8,68 @@
8.="- .-=="i,     .._ License as published by the Free Software 8.="- .-=="i,     .._ License as published by the Free Software
9 - .   .-<_>     .<> Foundation; either version 2 of the License, 9 - .   .-<_>     .<> Foundation; either version 2 of the License,
10     ._= =}       : or (at your option) any later version. 10     ._= =}       : or (at your option) any later version.
11    .%`+i>       _;_. 11    .%`+i>       _;_.
12    .i_,=:_.      -<s. This program is distributed in the hope that 12    .i_,=:_.      -<s. This program is distributed in the hope that
13     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY; 13     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
14    : ..    .:,     . . . without even the implied warranty of 14    : ..    .:,     . . . without even the implied warranty of
15    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A 15    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
16  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU 16  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
17..}^=.=       =       ; Library General Public License for more 17..}^=.=       =       ; Library General Public License for more
18++=   -.     .`     .: details. 18++=   -.     .`     .: details.
19 :     =  ...= . :.=- 19 :     =  ...= . :.=-
20 -.   .:....=;==+<; You should have received a copy of the GNU 20 -.   .:....=;==+<; You should have received a copy of the GNU
21  -_. . .   )=.  = General Public License along with 21  -_. . .   )=.  = 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#ifndef TASKEDITORALARMS_H 29#ifndef TASKEDITORALARMS_H
30#define TASKEDITORALARMS_H 30#define TASKEDITORALARMS_H
31 31
32#include <opie2/opimtodo.h>
33
32#include <qwidget.h> 34#include <qwidget.h>
33 35
34class QListView; 36class QListView;
35class QListViewItem; 37class QListViewItem;
36class OTodo; 38
39using namespace Opie;
37 40
38class AlarmItem; 41class AlarmItem;
39class DateBookMonth; 42class DateBookMonth;
40class TaskEditorAlarms : public QWidget 43class TaskEditorAlarms : public QWidget
41{ 44{
42 Q_OBJECT 45 Q_OBJECT
43 46
44public: 47public:
45 enum Type { 48 enum Type {
46 Alarm = 0, 49 Alarm = 0,
47 Reminders 50 Reminders
48 }; 51 };
49 TaskEditorAlarms( QWidget* parent = 0, int type = Alarm, const char* name = 0, WFlags fl = 0 ); 52 TaskEditorAlarms( QWidget* parent = 0, int type = Alarm, const char* name = 0, WFlags fl = 0 );
50 ~TaskEditorAlarms(); 53 ~TaskEditorAlarms();
51 void load( const OTodo& ); 54 void load( const OPimTodo& );
52 void save( OTodo& ); 55 void save( OPimTodo& );
53private: 56private:
54 QPopupMenu* popup( int column ); 57 QPopupMenu* popup( int column );
55 void inlineSetDate( AlarmItem*, const QPoint& p ); 58 void inlineSetDate( AlarmItem*, const QPoint& p );
56 void inlineSetTime( AlarmItem*); 59 void inlineSetTime( AlarmItem*);
57 void inlineSetType( AlarmItem*, const QPoint& p ); 60 void inlineSetType( AlarmItem*, const QPoint& p );
58 61
59 QListView* lstAlarms; 62 QListView* lstAlarms;
60 QPopupMenu* m_date; 63 QPopupMenu* m_date;
61 QPopupMenu* m_time; 64 QPopupMenu* m_time;
62 QPopupMenu* m_type; 65 QPopupMenu* m_type;
63 DateBookMonth* m_dbMonth; 66 DateBookMonth* m_dbMonth;
64 67
65protected slots: 68protected slots:
66 void slotNew(); 69 void slotNew();
67 void slotEdit(); 70 void slotEdit();
68 void slotDelete(); 71 void slotDelete();
69 void inlineEdit( QListViewItem*, const QPoint& p, int ); 72 void inlineEdit( QListViewItem*, const QPoint& p, int );
70}; 73};
71 74
72#endif // TASKEDITORALARMS_H 75#endif // TASKEDITORALARMS_H
diff --git a/core/pim/todo/taskeditoroverview.cpp b/core/pim/todo/taskeditoroverview.cpp
index 415dcf2..294acb9 100644
--- a/core/pim/todo/taskeditoroverview.cpp
+++ b/core/pim/todo/taskeditoroverview.cpp
@@ -7,49 +7,49 @@
7:`=1 )Y*s>-.--   : the terms of the GNU General Public 7:`=1 )Y*s>-.--   : the terms of the GNU General Public
8.="- .-=="i,     .._ License as published by the Free Software 8.="- .-=="i,     .._ License as published by the Free Software
9 - .   .-<_>     .<> Foundation; either version 2 of the License, 9 - .   .-<_>     .<> Foundation; either version 2 of the License,
10     ._= =}       : or (at your option) any later version. 10     ._= =}       : or (at your option) any later version.
11    .%`+i>       _;_. 11    .%`+i>       _;_.
12    .i_,=:_.      -<s. This program is distributed in the hope that 12    .i_,=:_.      -<s. This program is distributed in the hope that
13     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY; 13     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
14    : ..    .:,     . . . without even the implied warranty of 14    : ..    .:,     . . . without even the implied warranty of
15    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A 15    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
16  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU 16  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
17..}^=.=       =       ; Library General Public License for more 17..}^=.=       =       ; Library General Public License for more
18++=   -.     .`     .: details. 18++=   -.     .`     .: details.
19 :     =  ...= . :.=- 19 :     =  ...= . :.=-
20 -.   .:....=;==+<; You should have received a copy of the GNU 20 -.   .:....=;==+<; You should have received a copy of the GNU
21  -_. . .   )=.  = General Public License along with 21  -_. . .   )=.  = 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 "taskeditoroverview.h" 29#include "taskeditoroverview.h"
30 30
31#include <opie/orecur.h> 31//#include <opie2/opimrecurrence.h>
32 32
33#include <qpe/categoryselect.h> 33#include <qpe/categoryselect.h>
34#include <qpe/datebookmonth.h> 34#include <qpe/datebookmonth.h>
35#include <qpe/resource.h> 35#include <qpe/resource.h>
36 36
37#include <qcheckbox.h> 37#include <qcheckbox.h>
38#include <qlabel.h> 38#include <qlabel.h>
39#include <qlayout.h> 39#include <qlayout.h>
40#include <qmultilineedit.h> 40#include <qmultilineedit.h>
41#include <qwhatsthis.h> 41#include <qwhatsthis.h>
42 42
43TaskEditorOverView::TaskEditorOverView( QWidget* parent, const char* name, WFlags fl ) 43TaskEditorOverView::TaskEditorOverView( QWidget* parent, const char* name, WFlags fl )
44 : QWidget( parent, name, fl ) 44 : QWidget( parent, name, fl )
45{ 45{
46 // Load icons 46 // Load icons
47 // TODO - probably should be done globally somewhere else, 47 // TODO - probably should be done globally somewhere else,
48 // see also quickeditimpl.cpp/h, tableview.cpp/h 48 // see also quickeditimpl.cpp/h, tableview.cpp/h
49 QString namestr; 49 QString namestr;
50 for ( unsigned int i = 1; i < 6; i++ ) { 50 for ( unsigned int i = 1; i < 6; i++ ) {
51 namestr = "todo/priority"; 51 namestr = "todo/priority";
52 namestr.append( QString::number( i ) ); 52 namestr.append( QString::number( i ) );
53 m_pic_priority[ i - 1 ] = Resource::loadPixmap( namestr ); 53 m_pic_priority[ i - 1 ] = Resource::loadPixmap( namestr );
54 } 54 }
55 55
@@ -106,70 +106,70 @@ TaskEditorOverView::TaskEditorOverView( QWidget* parent, const char* name, WFla
106 cmbCategory = new CategorySelect( container ); 106 cmbCategory = new CategorySelect( container );
107 layout->addWidget( cmbCategory, 3, 1 ); 107 layout->addWidget( cmbCategory, 3, 1 );
108 QWhatsThis::add( cmbCategory, tr( "Select category to organize this task with." ) ); 108 QWhatsThis::add( cmbCategory, tr( "Select category to organize this task with." ) );
109 109
110 // Recurrence 110 // Recurrence
111 ckbRecurrence = new QCheckBox( tr( "Recurring task" ), container ); 111 ckbRecurrence = new QCheckBox( tr( "Recurring task" ), container );
112 layout->addMultiCellWidget( ckbRecurrence, 4, 4, 0, 1 ); 112 layout->addMultiCellWidget( ckbRecurrence, 4, 4, 0, 1 );
113 QWhatsThis::add( ckbRecurrence, tr( "Click here if task happens on a regular basis. If selected, frequency can be set on the Recurrence tab." ) ); 113 QWhatsThis::add( ckbRecurrence, tr( "Click here if task happens on a regular basis. If selected, frequency can be set on the Recurrence tab." ) );
114 connect( ckbRecurrence, SIGNAL(clicked() ), this, SLOT( slotRecClicked() ) ); 114 connect( ckbRecurrence, SIGNAL(clicked() ), this, SLOT( slotRecClicked() ) );
115 115
116 // Notes 116 // Notes
117 label = new QLabel( tr( "Description:" ), container ); 117 label = new QLabel( tr( "Description:" ), container );
118 layout->addWidget( label, 5, 0 ); 118 layout->addWidget( label, 5, 0 );
119 QWhatsThis::add( label, tr( "Enter any additional information about this task here." ) ); 119 QWhatsThis::add( label, tr( "Enter any additional information about this task here." ) );
120 mleNotes = new QMultiLineEdit( container ); 120 mleNotes = new QMultiLineEdit( container );
121 mleNotes->setWordWrap( QMultiLineEdit::WidgetWidth ); 121 mleNotes->setWordWrap( QMultiLineEdit::WidgetWidth );
122 layout->addMultiCellWidget( mleNotes, 6, 6, 0, 1 ); 122 layout->addMultiCellWidget( mleNotes, 6, 6, 0, 1 );
123 QWhatsThis::add( mleNotes, tr( "Enter any additional information about this task here." ) ); 123 QWhatsThis::add( mleNotes, tr( "Enter any additional information about this task here." ) );
124} 124}
125 125
126TaskEditorOverView::~TaskEditorOverView() 126TaskEditorOverView::~TaskEditorOverView()
127{ 127{
128} 128}
129 129
130void TaskEditorOverView::load( const OTodo& todo ) 130void TaskEditorOverView::load( const OPimTodo& todo )
131{ 131{
132 // Description 132 // Description
133 cmbDesc->insertItem( todo.summary(), 0 ); 133 cmbDesc->insertItem( todo.summary(), 0 );
134 cmbDesc->setCurrentItem( 0 ); 134 cmbDesc->setCurrentItem( 0 );
135 135
136 // Priority 136 // Priority
137 cmbPriority->setCurrentItem( todo.priority() - 1 ); 137 cmbPriority->setCurrentItem( todo.priority() - 1 );
138 138
139 // Category 139 // Category
140 cmbCategory->setCategories( todo.categories(), "Todo List", tr( "Todo List" ) ); 140 cmbCategory->setCategories( todo.categories(), "Todo List", tr( "Todo List" ) );
141 141
142 // Recurrence 142 // Recurrence
143 ckbRecurrence->setChecked( todo.hasRecurrence() ); 143 ckbRecurrence->setChecked( todo.hasRecurrence() );
144 emit recurranceEnabled( todo.hasRecurrence() ); 144 emit recurranceEnabled( todo.hasRecurrence() );
145 145
146 // Notes 146 // Notes
147 mleNotes->setText( todo.description() ); 147 mleNotes->setText( todo.description() );
148 148
149} 149}
150 150
151void TaskEditorOverView::save( OTodo &todo ) 151void TaskEditorOverView::save( OPimTodo &todo )
152{ 152{
153 // Description 153 // Description
154 todo.setSummary( cmbDesc->currentText() ); 154 todo.setSummary( cmbDesc->currentText() );
155 155
156 // Priority 156 // Priority
157 todo.setPriority( cmbPriority->currentItem() + 1 ); 157 todo.setPriority( cmbPriority->currentItem() + 1 );
158 158
159 // Category 159 // Category
160 if ( cmbCategory->currentCategory() != -1 ) 160 if ( cmbCategory->currentCategory() != -1 )
161 { 161 {
162 QArray<int> arr = cmbCategory->currentCategories(); 162 QArray<int> arr = cmbCategory->currentCategories();
163 todo.setCategories( arr ); 163 todo.setCategories( arr );
164 } 164 }
165 165
166 // Recurrence - don't need to save here... 166 // Recurrence - don't need to save here...
167 167
168 // Notes 168 // Notes
169 todo.setDescription( mleNotes->text() ); 169 todo.setDescription( mleNotes->text() );
170} 170}
171 171
172void TaskEditorOverView::slotRecClicked() 172void TaskEditorOverView::slotRecClicked()
173{ 173{
174 emit recurranceEnabled( ckbRecurrence->isChecked() ); 174 emit recurranceEnabled( ckbRecurrence->isChecked() );
175} 175}
diff --git a/core/pim/todo/taskeditoroverview.h b/core/pim/todo/taskeditoroverview.h
index d5f5125..89679f1 100644
--- a/core/pim/todo/taskeditoroverview.h
+++ b/core/pim/todo/taskeditoroverview.h
@@ -8,62 +8,64 @@
8.="- .-=="i,     .._ License as published by the Free Software 8.="- .-=="i,     .._ License as published by the Free Software
9 - .   .-<_>     .<> Foundation; either version 2 of the License, 9 - .   .-<_>     .<> Foundation; either version 2 of the License,
10     ._= =}       : or (at your option) any later version. 10     ._= =}       : or (at your option) any later version.
11    .%`+i>       _;_. 11    .%`+i>       _;_.
12    .i_,=:_.      -<s. This program is distributed in the hope that 12    .i_,=:_.      -<s. This program is distributed in the hope that
13     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY; 13     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
14    : ..    .:,     . . . without even the implied warranty of 14    : ..    .:,     . . . without even the implied warranty of
15    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A 15    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
16  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU 16  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
17..}^=.=       =       ; Library General Public License for more 17..}^=.=       =       ; Library General Public License for more
18++=   -.     .`     .: details. 18++=   -.     .`     .: details.
19 :     =  ...= . :.=- 19 :     =  ...= . :.=-
20 -.   .:....=;==+<; You should have received a copy of the GNU 20 -.   .:....=;==+<; You should have received a copy of the GNU
21  -_. . .   )=.  = General Public License along with 21  -_. . .   )=.  = 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#ifndef TASKEDITOROVERVIEW_H 29#ifndef TASKEDITOROVERVIEW_H
30#define TASKEDITOROVERVIEW_H 30#define TASKEDITOROVERVIEW_H
31 31
32#include <opie/otodo.h> 32#include <opie2/opimtodo.h>
33 33
34#include <qpixmap.h> 34#include <qpixmap.h>
35#include <qwidget.h> 35#include <qwidget.h>
36 36
37class CategorySelect; 37class CategorySelect;
38class QCheckBox; 38class QCheckBox;
39class QComboBox; 39class QComboBox;
40class QMultiLineEdit; 40class QMultiLineEdit;
41 41
42using namespace Opie;
43
42class TaskEditorOverView : public QWidget 44class TaskEditorOverView : public QWidget
43{ 45{
44 Q_OBJECT 46 Q_OBJECT
45 47
46public: 48public:
47 TaskEditorOverView( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); 49 TaskEditorOverView( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 );
48 ~TaskEditorOverView(); 50 ~TaskEditorOverView();
49 51
50 QComboBox *cmbDesc; 52 QComboBox *cmbDesc;
51 QComboBox *cmbPriority; 53 QComboBox *cmbPriority;
52 CategorySelect *cmbCategory; 54 CategorySelect *cmbCategory;
53 QCheckBox *ckbRecurrence; 55 QCheckBox *ckbRecurrence;
54 QMultiLineEdit *mleNotes; 56 QMultiLineEdit *mleNotes;
55 57
56 void load( const OTodo & ); 58 void load( const OPimTodo & );
57 void save( OTodo & ); 59 void save( OPimTodo & );
58 60
59signals: 61signals:
60 void recurranceEnabled( bool ); 62 void recurranceEnabled( bool );
61 63
62protected: 64protected:
63 QPixmap m_pic_priority[ 5 ]; 65 QPixmap m_pic_priority[ 5 ];
64 66
65protected slots: 67protected slots:
66 void slotRecClicked(); 68 void slotRecClicked();
67}; 69};
68 70
69#endif // TASKEDITOROVERVIEW_H 71#endif // TASKEDITOROVERVIEW_H
diff --git a/core/pim/todo/taskeditorstatus.cpp b/core/pim/todo/taskeditorstatus.cpp
index 98e3cea..367dd58 100644
--- a/core/pim/todo/taskeditorstatus.cpp
+++ b/core/pim/todo/taskeditorstatus.cpp
@@ -7,51 +7,50 @@
7:`=1 )Y*s>-.--   : the terms of the GNU General Public 7:`=1 )Y*s>-.--   : the terms of the GNU General Public
8.="- .-=="i,     .._ License as published by the Free Software 8.="- .-=="i,     .._ License as published by the Free Software
9 - .   .-<_>     .<> Foundation; either version 2 of the License, 9 - .   .-<_>     .<> Foundation; either version 2 of the License,
10     ._= =}       : or (at your option) any later version. 10     ._= =}       : or (at your option) any later version.
11    .%`+i>       _;_. 11    .%`+i>       _;_.
12    .i_,=:_.      -<s. This program is distributed in the hope that 12    .i_,=:_.      -<s. This program is distributed in the hope that
13     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY; 13     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
14    : ..    .:,     . . . without even the implied warranty of 14    : ..    .:,     . . . without even the implied warranty of
15    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A 15    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
16  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU 16  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
17..}^=.=       =       ; Library General Public License for more 17..}^=.=       =       ; Library General Public License for more
18++=   -.     .`     .: details. 18++=   -.     .`     .: details.
19 :     =  ...= . :.=- 19 :     =  ...= . :.=-
20 -.   .:....=;==+<; You should have received a copy of the GNU 20 -.   .:....=;==+<; You should have received a copy of the GNU
21  -_. . .   )=.  = General Public License along with 21  -_. . .   )=.  = 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 "taskeditorstatus.h" 29#include "taskeditorstatus.h"
30 30
31#include <opie/otodo.h> 31#include <opie2/opimmaintainer.h>
32#include <opie/opimmaintainer.h> 32#include <opie2/opimstate.h>
33#include <opie/opimstate.h>
34 33
35#include <qpe/datebookmonth.h> 34#include <qpe/datebookmonth.h>
36 35
37#include <qcheckbox.h> 36#include <qcheckbox.h>
38#include <qcombobox.h> 37#include <qcombobox.h>
39#include <qlabel.h> 38#include <qlabel.h>
40#include <qlayout.h> 39#include <qlayout.h>
41#include <qwhatsthis.h> 40#include <qwhatsthis.h>
42 41
43// FIXME add the hack slots instead of setPopup!!!! 42// FIXME add the hack slots instead of setPopup!!!!
44// drw you shouldn't have removed them 43// drw you shouldn't have removed them
45 44
46TaskEditorStatus::TaskEditorStatus( QWidget* parent, const char* name, WFlags fl ) 45TaskEditorStatus::TaskEditorStatus( QWidget* parent, const char* name, WFlags fl )
47 : QWidget( parent, name, fl ) 46 : QWidget( parent, name, fl )
48{ 47{
49 QDate curDate = QDate::currentDate(); 48 QDate curDate = QDate::currentDate();
50 m_start = m_comp = m_due = curDate; 49 m_start = m_comp = m_due = curDate;
51 QString curDateStr = TimeString::longDateString( curDate ); 50 QString curDateStr = TimeString::longDateString( curDate );
52 51
53 QVBoxLayout *vb = new QVBoxLayout( this ); 52 QVBoxLayout *vb = new QVBoxLayout( this );
54 53
55 QScrollView *sv = new QScrollView( this ); 54 QScrollView *sv = new QScrollView( this );
56 vb->addWidget( sv ); 55 vb->addWidget( sv );
57 sv->setResizePolicy( QScrollView::AutoOneFit ); 56 sv->setResizePolicy( QScrollView::AutoOneFit );
@@ -150,49 +149,49 @@ TaskEditorStatus::TaskEditorStatus( QWidget* parent, const char* name, WFlags f
150 cmbMaintMode->insertItem( tr( "Done By" ) ); 149 cmbMaintMode->insertItem( tr( "Done By" ) );
151 cmbMaintMode->insertItem( tr( "Coordinating" ) ); 150 cmbMaintMode->insertItem( tr( "Coordinating" ) );
152// layout->addMultiCellWidget( cmbMaintMode, 6, 6, 1, 2 ); 151// layout->addMultiCellWidget( cmbMaintMode, 6, 6, 1, 2 );
153 QWhatsThis::add( cmbMaintMode, tr( "Click here to set the maintainer's role." ) ); 152 QWhatsThis::add( cmbMaintMode, tr( "Click here to set the maintainer's role." ) );
154 153
155 // Maintainer 154 // Maintainer
156 label = new QLabel( tr( "Maintainer:" ), container ); 155 label = new QLabel( tr( "Maintainer:" ), container );
157 layout->addWidget( label, 7, 0 ); 156 layout->addWidget( label, 7, 0 );
158 QWhatsThis::add( label, tr( "This is the name of the current task maintainer." ) ); 157 QWhatsThis::add( label, tr( "This is the name of the current task maintainer." ) );
159 txtMaintainer = new QLabel( tr( "test" ), container ); 158 txtMaintainer = new QLabel( tr( "test" ), container );
160 txtMaintainer->setTextFormat( QLabel::RichText ); 159 txtMaintainer->setTextFormat( QLabel::RichText );
161 layout->addWidget( txtMaintainer, 7, 1 ); 160 layout->addWidget( txtMaintainer, 7, 1 );
162 QWhatsThis::add( txtMaintainer, tr( "This is the name of the current task maintainer." ) ); 161 QWhatsThis::add( txtMaintainer, tr( "This is the name of the current task maintainer." ) );
163 tbtMaintainer = new QToolButton( container ); 162 tbtMaintainer = new QToolButton( container );
164 tbtMaintainer->setPixmap( Resource::loadPixmap( "todo/more" ) ); 163 tbtMaintainer->setPixmap( Resource::loadPixmap( "todo/more" ) );
165// layout->addWidget( tbtMaintainer, 7, 2 ); 164// layout->addWidget( tbtMaintainer, 7, 2 );
166 QWhatsThis::add( tbtMaintainer, tr( "Click here to select the task maintainer." ) ); 165 QWhatsThis::add( tbtMaintainer, tr( "Click here to select the task maintainer." ) );
167#endif 166#endif
168} 167}
169 168
170TaskEditorStatus::~TaskEditorStatus() 169TaskEditorStatus::~TaskEditorStatus()
171{ 170{
172} 171}
173 172
174void TaskEditorStatus::load( const OTodo &todo ) 173void TaskEditorStatus::load( const OPimTodo &todo )
175{ 174{
176 QDate date = QDate::currentDate(); 175 QDate date = QDate::currentDate();
177 QString str = TimeString::longDateString( date ); 176 QString str = TimeString::longDateString( date );
178 177
179 // Status 178 // Status
180 int state = todo.hasState()? todo.state().state() : OPimState::NotStarted; 179 int state = todo.hasState()? todo.state().state() : OPimState::NotStarted;
181 if ( state == OPimState::Undefined ) 180 if ( state == OPimState::Undefined )
182 state = OPimState::NotStarted; 181 state = OPimState::NotStarted;
183 cmbStatus->setCurrentItem( state ); 182 cmbStatus->setCurrentItem( state );
184 183
185 // Progress 184 // Progress
186 cmbProgress->setCurrentItem( todo.progress() / 20 ); 185 cmbProgress->setCurrentItem( todo.progress() / 20 );
187 186
188 // Start date 187 // Start date
189 ckbStart->setChecked( todo.hasStartDate() ); 188 ckbStart->setChecked( todo.hasStartDate() );
190 btnStart->setEnabled( todo.hasStartDate() ); 189 btnStart->setEnabled( todo.hasStartDate() );
191 if ( todo.hasStartDate() ) 190 if ( todo.hasStartDate() )
192 { 191 {
193 m_start = todo.startDate(); 192 m_start = todo.startDate();
194 btnStart->setText( TimeString::longDateString( m_start ) ); 193 btnStart->setText( TimeString::longDateString( m_start ) );
195 } 194 }
196 else 195 else
197 btnStart->setText( str ); 196 btnStart->setText( str );
198 197
@@ -202,49 +201,49 @@ void TaskEditorStatus::load( const OTodo &todo )
202 btnDue->setEnabled( todo.hasDueDate() ); 201 btnDue->setEnabled( todo.hasDueDate() );
203 m_due = todo.dueDate(); 202 m_due = todo.dueDate();
204 203
205 // Completed 204 // Completed
206 ckbComp->setChecked( todo.isCompleted() ); 205 ckbComp->setChecked( todo.isCompleted() );
207 btnComp->setEnabled( todo.hasCompletedDate() ); 206 btnComp->setEnabled( todo.hasCompletedDate() );
208 if ( todo.hasCompletedDate() ) 207 if ( todo.hasCompletedDate() )
209 { 208 {
210 m_comp = todo.completedDate(); 209 m_comp = todo.completedDate();
211 btnComp->setText( TimeString::longDateString( m_comp ) ); 210 btnComp->setText( TimeString::longDateString( m_comp ) );
212 } 211 }
213 else 212 else
214 btnComp->setText( str ); 213 btnComp->setText( str );
215 214
216 // Maintainer Mode 215 // Maintainer Mode
217#if 0 216#if 0
218 state = todo.hasMaintainer() ? todo.maintainer().mode() : OPimMaintainer::Nothing; 217 state = todo.hasMaintainer() ? todo.maintainer().mode() : OPimMaintainer::Nothing;
219 if ( state == OPimMaintainer::Undefined ) 218 if ( state == OPimMaintainer::Undefined )
220 state = OPimMaintainer::Nothing; 219 state = OPimMaintainer::Nothing;
221 cmbMaintMode->setCurrentItem( state ); 220 cmbMaintMode->setCurrentItem( state );
222#endif 221#endif
223 // Maintainer - not implemented yet 222 // Maintainer - not implemented yet
224} 223}
225 224
226void TaskEditorStatus::save( OTodo &todo ) 225void TaskEditorStatus::save( OPimTodo &todo )
227{ 226{
228 QDate inval; 227 QDate inval;
229 228
230 // Status 229 // Status
231 todo.setState( OPimState( cmbStatus->currentItem() ) ); 230 todo.setState( OPimState( cmbStatus->currentItem() ) );
232 231
233 // Progress 232 // Progress
234 todo.setProgress( cmbProgress->currentItem() * 20 ); 233 todo.setProgress( cmbProgress->currentItem() * 20 );
235 234
236 // Start date 235 // Start date
237 if ( ckbStart->isChecked() ) 236 if ( ckbStart->isChecked() )
238 { 237 {
239 todo.setStartDate( m_start ); 238 todo.setStartDate( m_start );
240 } 239 }
241 else 240 else
242 todo.setStartDate( inval ); 241 todo.setStartDate( inval );
243 242
244 // Due date 243 // Due date
245 if ( ckbDue->isChecked() ) 244 if ( ckbDue->isChecked() )
246 { 245 {
247 todo.setDueDate( m_due ); 246 todo.setDueDate( m_due );
248 todo.setHasDueDate( true ); 247 todo.setHasDueDate( true );
249 } 248 }
250 else 249 else
diff --git a/core/pim/todo/taskeditorstatus.h b/core/pim/todo/taskeditorstatus.h
index 3544200..97129f0 100644
--- a/core/pim/todo/taskeditorstatus.h
+++ b/core/pim/todo/taskeditorstatus.h
@@ -8,93 +8,96 @@
8.="- .-=="i,     .._ License as published by the Free Software 8.="- .-=="i,     .._ License as published by the Free Software
9 - .   .-<_>     .<> Foundation; either version 2 of the License, 9 - .   .-<_>     .<> Foundation; either version 2 of the License,
10     ._= =}       : or (at your option) any later version. 10     ._= =}       : or (at your option) any later version.
11    .%`+i>       _;_. 11    .%`+i>       _;_.
12    .i_,=:_.      -<s. This program is distributed in the hope that 12    .i_,=:_.      -<s. This program is distributed in the hope that
13     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY; 13     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
14    : ..    .:,     . . . without even the implied warranty of 14    : ..    .:,     . . . without even the implied warranty of
15    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A 15    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
16  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU 16  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
17..}^=.=       =       ; Library General Public License for more 17..}^=.=       =       ; Library General Public License for more
18++=   -.     .`     .: details. 18++=   -.     .`     .: details.
19 :     =  ...= . :.=- 19 :     =  ...= . :.=-
20 -.   .:....=;==+<; You should have received a copy of the GNU 20 -.   .:....=;==+<; You should have received a copy of the GNU
21  -_. . .   )=.  = General Public License along with 21  -_. . .   )=.  = 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#ifndef TASKEDITORSTATUS_H 29#ifndef TASKEDITORSTATUS_H
30#define TASKEDITORSTATUS_H 30#define TASKEDITORSTATUS_H
31 31
32#include <opie2/opimtodo.h>
33
32#include <qdatetime.h> 34#include <qdatetime.h>
33#include <qwidget.h> 35#include <qwidget.h>
34 36
35class DateBookMonth; 37class DateBookMonth;
36class OTodo;
37class QCheckBox; 38class QCheckBox;
38class QComboBox; 39class QComboBox;
39class QLabel; 40class QLabel;
40class QPushButton; 41class QPushButton;
41class QToolButton; 42class QToolButton;
42 43
44using namespace Opie;
45
43/** 46/**
44 * This is the implementation of the Opie Task Editor Advanced tab 47 * This is the implementation of the Opie Task Editor Advanced tab
45 * it features the State! 48 * it features the State!
46 * MaintainerMode 49 * MaintainerMode
47 * Description 50 * Description
48 */ 51 */
49class TaskEditorStatus : public QWidget 52class TaskEditorStatus : public QWidget
50{ 53{
51 Q_OBJECT 54 Q_OBJECT
52 55
53public: 56public:
54 TaskEditorStatus( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); 57 TaskEditorStatus( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 );
55 ~TaskEditorStatus(); 58 ~TaskEditorStatus();
56 59
57 QComboBox *cmbStatus; 60 QComboBox *cmbStatus;
58 QLabel *txtMaintainer; 61 QLabel *txtMaintainer;
59 QToolButton *tbtMaintainer; 62 QToolButton *tbtMaintainer;
60 QComboBox *cmbMaintMode; 63 QComboBox *cmbMaintMode;
61 QCheckBox *ckbDue; 64 QCheckBox *ckbDue;
62 QPushButton *btnDue; 65 QPushButton *btnDue;
63 QCheckBox *ckbStart; 66 QCheckBox *ckbStart;
64 QPushButton *btnStart; 67 QPushButton *btnStart;
65 QCheckBox *ckbComp; 68 QCheckBox *ckbComp;
66 QPushButton *btnComp; 69 QPushButton *btnComp;
67 QComboBox *cmbProgress; 70 QComboBox *cmbProgress;
68 71
69 /* 72 /*
70 * I could have a struct which returns a QWidget* 73 * I could have a struct which returns a QWidget*
71 * load and save to a OTodo 74 * load and save to a OPimTodo
72 * and use multiple inheretence with all other widgets 75 * and use multiple inheretence with all other widgets
73 * and then simply iterate over the list of structs 76 * and then simply iterate over the list of structs
74 * this way I could easily have plugins for the whole editor.... 77 * this way I could easily have plugins for the whole editor....
75 * but I do not do it -zecke 78 * but I do not do it -zecke
76 */ 79 */
77 void load( const OTodo & ); 80 void load( const OPimTodo & );
78 void save( OTodo & ); 81 void save( OPimTodo & );
79 82
80private: 83private:
81 QDate m_start; 84 QDate m_start;
82 QDate m_comp; 85 QDate m_comp;
83 QDate m_due; 86 QDate m_due;
84 DateBookMonth *m_startBook; 87 DateBookMonth *m_startBook;
85 DateBookMonth *m_compBook; 88 DateBookMonth *m_compBook;
86 DateBookMonth *m_dueBook; 89 DateBookMonth *m_dueBook;
87 90
88private slots: 91private slots:
89 void slotStartChecked(); 92 void slotStartChecked();
90 void slotCompChecked(); 93 void slotCompChecked();
91 void slotDueChecked(); 94 void slotDueChecked();
92 void slotStartChanged( int, int, int ); 95 void slotStartChanged( int, int, int );
93 void slotCompChanged( int, int, int ); 96 void slotCompChanged( int, int, int );
94 void slotDueChanged( int, int, int ); 97 void slotDueChanged( int, int, int );
95 98
96signals: 99signals:
97 void dueDateChanged( const QDate& date ); 100 void dueDateChanged( const QDate& date );
98}; 101};
99 102
100#endif // TASKEDITORSTATUS_H 103#endif // TASKEDITORSTATUS_H
diff --git a/core/pim/todo/templatedialogimpl.cpp b/core/pim/todo/templatedialogimpl.cpp
index 63d8107..c9ad3d0 100644
--- a/core/pim/todo/templatedialogimpl.cpp
+++ b/core/pim/todo/templatedialogimpl.cpp
@@ -1,119 +1,119 @@
1#include <qlineedit.h> 1#include <qlineedit.h>
2 2
3#include "mainwindow.h" 3#include "mainwindow.h"
4#include "todoeditor.h" 4#include "todoeditor.h"
5#include "todotemplatemanager.h" 5#include "todotemplatemanager.h"
6#include "templatedialogimpl.h" 6#include "templatedialogimpl.h"
7 7
8 8
9using namespace Todo; 9using namespace Todo;
10 10
11/* TRANSLATOR Todo::TemplateDialogImpl */ 11/* TRANSLATOR Todo::TemplateDialogImpl */
12 12
13namespace { 13namespace {
14 class TemplateListItem : public QListViewItem { 14 class TemplateListItem : public QListViewItem {
15 public: 15 public:
16 TemplateListItem( QListView*, 16 TemplateListItem( QListView*,
17 const QString& name, 17 const QString& name,
18 const OTodo& ); 18 const OPimTodo& );
19 ~TemplateListItem(); 19 ~TemplateListItem();
20 20
21 OTodo event()const; 21 OPimTodo event()const;
22 QString text()const; 22 QString text()const;
23 void setText(const QString& str ); 23 void setText(const QString& str );
24 void setEvent( const OTodo& ); 24 void setEvent( const OPimTodo& );
25 private: 25 private:
26 QString m_name; 26 QString m_name;
27 OTodo m_ev; 27 OPimTodo m_ev;
28 }; 28 };
29 29
30 /* implementation */ 30 /* implementation */
31 TemplateListItem::TemplateListItem( QListView* view, 31 TemplateListItem::TemplateListItem( QListView* view,
32 const QString& text, 32 const QString& text,
33 const OTodo& ev ) 33 const OPimTodo& ev )
34 : QListViewItem( view ), m_name( text ), m_ev( ev ) 34 : QListViewItem( view ), m_name( text ), m_ev( ev )
35 { 35 {
36 QListViewItem::setText(0, m_name ); 36 QListViewItem::setText(0, m_name );
37 } 37 }
38 TemplateListItem::~TemplateListItem() {} 38 TemplateListItem::~TemplateListItem() {}
39 OTodo TemplateListItem::event() const { 39 OPimTodo TemplateListItem::event() const {
40 return m_ev; 40 return m_ev;
41 } 41 }
42 QString TemplateListItem::text()const { 42 QString TemplateListItem::text()const {
43 return m_name; 43 return m_name;
44 } 44 }
45 void TemplateListItem::setText( const QString& str ) { 45 void TemplateListItem::setText( const QString& str ) {
46 QListViewItem::setText(0, str ); 46 QListViewItem::setText(0, str );
47 m_name = str; 47 m_name = str;
48 } 48 }
49 void TemplateListItem::setEvent( const OTodo& ev) { 49 void TemplateListItem::setEvent( const OPimTodo& ev) {
50 m_ev = ev; 50 m_ev = ev;
51 } 51 }
52} 52}
53 53
54TemplateDialogImpl::TemplateDialogImpl( MainWindow* win, 54TemplateDialogImpl::TemplateDialogImpl( MainWindow* win,
55 TemplateManager* man ) 55 TemplateManager* man )
56 : TemplateDialog( win ), m_win( win), m_man( man ) 56 : TemplateDialog( win ), m_win( win), m_man( man )
57{ 57{
58 /* fill the listview */ 58 /* fill the listview */
59 /* not the fastest way.... */ 59 /* not the fastest way.... */
60 QStringList list = man->templates(); 60 QStringList list = man->templates();
61 for (QStringList::Iterator it = list.begin(); 61 for (QStringList::Iterator it = list.begin();
62 it != list.end(); ++it ) { 62 it != list.end(); ++it ) {
63 new TemplateListItem( listView(), (*it), man->templateEvent( (*it) ) ); 63 new TemplateListItem( listView(), (*it), man->templateEvent( (*it) ) );
64 } 64 }
65 listView()->addColumn( QWidget::tr("Name") ); 65 listView()->addColumn( QWidget::tr("Name") );
66 66
67 connect( listView(), SIGNAL(clicked(QListViewItem*) ), 67 connect( listView(), SIGNAL(clicked(QListViewItem*) ),
68 this, SLOT(slotClicked(QListViewItem*) ) ); 68 this, SLOT(slotClicked(QListViewItem*) ) );
69} 69}
70TemplateDialogImpl::~TemplateDialogImpl() { 70TemplateDialogImpl::~TemplateDialogImpl() {
71 71
72} 72}
73void TemplateDialogImpl::slotAdd() { 73void TemplateDialogImpl::slotAdd() {
74 QString str = QWidget::tr("New Template %1").arg( listView()->childCount() ); 74 QString str = QWidget::tr("New Template %1").arg( listView()->childCount() );
75 OTodo ev; 75 OPimTodo ev;
76 m_man->addEvent(str, ev); 76 m_man->addEvent(str, ev);
77 new TemplateListItem( listView(), str, ev ); 77 new TemplateListItem( listView(), str, ev );
78} 78}
79void TemplateDialogImpl::slotRemove() { 79void TemplateDialogImpl::slotRemove() {
80 if (!listView()->currentItem() ) 80 if (!listView()->currentItem() )
81 return; 81 return;
82 82
83 TemplateListItem* item = static_cast<TemplateListItem*>( listView()->currentItem() ); 83 TemplateListItem* item = static_cast<TemplateListItem*>( listView()->currentItem() );
84 listView()->takeItem( item ); 84 listView()->takeItem( item );
85 85
86 m_man->removeEvent( item->text() ); 86 m_man->removeEvent( item->text() );
87 87
88 delete item; 88 delete item;
89} 89}
90void TemplateDialogImpl::slotEdit() { 90void TemplateDialogImpl::slotEdit() {
91 if ( !listView()->currentItem() ) 91 if ( !listView()->currentItem() )
92 return; 92 return;
93 93
94 TemplateListItem* item = static_cast<TemplateListItem*>( listView()->currentItem() ); 94 TemplateListItem* item = static_cast<TemplateListItem*>( listView()->currentItem() );
95 OTodo ev = m_win->currentEditor()->edit( m_win, item->event() ); 95 OPimTodo ev = m_win->currentEditor()->edit( m_win, item->event() );
96 if ( m_win->currentEditor()->accepted() ) { 96 if ( m_win->currentEditor()->accepted() ) {
97 item->setEvent( ev ); 97 item->setEvent( ev );
98 m_man->removeEvent( item->text() ); 98 m_man->removeEvent( item->text() );
99 m_man->addEvent( item->text(), ev ); 99 m_man->addEvent( item->text(), ev );
100 } 100 }
101} 101}
102/* 102/*
103 * we need to update 103 * we need to update
104 * the text 104 * the text
105 */ 105 */
106 106
107void TemplateDialogImpl::slotReturn() { 107void TemplateDialogImpl::slotReturn() {
108 if ( !listView()->currentItem() ) 108 if ( !listView()->currentItem() )
109 return; 109 return;
110 110
111 TemplateListItem* tbl = static_cast<TemplateListItem*>( listView()->currentItem() ); 111 TemplateListItem* tbl = static_cast<TemplateListItem*>( listView()->currentItem() );
112 112
113 if (tbl->text() != edit()->text() ) { 113 if (tbl->text() != edit()->text() ) {
114 m_man->removeEvent( tbl->text() ); 114 m_man->removeEvent( tbl->text() );
115 tbl->setText( edit()->text() ); 115 tbl->setText( edit()->text() );
116 m_man->addEvent( tbl->text(), tbl->event() ); 116 m_man->addEvent( tbl->text(), tbl->event() );
117 } 117 }
118} 118}
119/* update the lineedit when changing */ 119/* update the lineedit when changing */
diff --git a/core/pim/todo/templatedialogimpl.h b/core/pim/todo/templatedialogimpl.h
index f366c9e..cc78521 100644
--- a/core/pim/todo/templatedialogimpl.h
+++ b/core/pim/todo/templatedialogimpl.h
@@ -1,30 +1,30 @@
1#ifndef OPIE_TEMPLATE_DIALOG_IMPL_H 1#ifndef OPIE_TEMPLATE_DIALOG_IMPL_H
2#define OPIE_TEMPLATE_DIALOG_IMPL_H 2#define OPIE_TEMPLATE_DIALOG_IMPL_H
3 3
4#include <qlistview.h> 4#include <qlistview.h>
5 5
6#include <opie/otodo.h> 6#include <opie2/opimtodo.h>
7 7
8#include "templatedialog.h" 8#include "templatedialog.h"
9 9
10 10
11namespace Todo { 11namespace Todo {
12 12
13 class MainWindow; 13 class MainWindow;
14 class TemplateManager; 14 class TemplateManager;
15 class TemplateDialogImpl : public Todo::TemplateDialog { 15 class TemplateDialogImpl : public Todo::TemplateDialog {
16 Q_OBJECT 16 Q_OBJECT
17 public: 17 public:
18 TemplateDialogImpl( MainWindow* win, TemplateManager* ); 18 TemplateDialogImpl( MainWindow* win, TemplateManager* );
19 ~TemplateDialogImpl(); 19 ~TemplateDialogImpl();
20 20
21 private: 21 private:
22 MainWindow* m_win; 22 MainWindow* m_win;
23 TemplateManager* m_man; 23 TemplateManager* m_man;
24private slots: 24private slots:
25 void slotAdd(); 25 void slotAdd();
26 void slotRemove(); 26 void slotRemove();
27 void slotEdit(); 27 void slotEdit();
28 void slotReturn(); 28 void slotReturn();
29 void slotClicked(QListViewItem*); 29 void slotClicked(QListViewItem*);
30 }; 30 };
diff --git a/core/pim/todo/textviewshow.cpp b/core/pim/todo/textviewshow.cpp
index 35ea74b..01e5810 100644
--- a/core/pim/todo/textviewshow.cpp
+++ b/core/pim/todo/textviewshow.cpp
@@ -1,38 +1,38 @@
1#include "textviewshow.h" 1#include "textviewshow.h"
2 2
3using namespace Todo; 3using namespace Todo;
4 4
5TextViewShow::TextViewShow( QWidget* parent, MainWindow* win) 5TextViewShow::TextViewShow( QWidget* parent, MainWindow* win)
6 : QTextView( parent ), TodoShow(win) { 6 : QTextView( parent ), TodoShow(win) {
7 7
8} 8}
9TextViewShow::~TextViewShow() { 9TextViewShow::~TextViewShow() {
10} 10}
11QString TextViewShow::type()const { 11QString TextViewShow::type()const {
12 return QString::fromLatin1("TextViewShow"); 12 return QString::fromLatin1("TextViewShow");
13} 13}
14void TextViewShow::slotShow( const OTodo& ev ) { 14void TextViewShow::slotShow( const OPimTodo& ev ) {
15 setText( ev.toRichText() ); 15 setText( ev.toRichText() );
16} 16}
17QWidget* TextViewShow::widget() { 17QWidget* TextViewShow::widget() {
18 return this; 18 return this;
19} 19}
20void TextViewShow::keyPressEvent( QKeyEvent* event ) { 20void TextViewShow::keyPressEvent( QKeyEvent* event ) {
21 switch( event->key() ) { 21 switch( event->key() ) {
22 case Qt::Key_Up: 22 case Qt::Key_Up:
23 if ( ( visibleHeight() < contentsHeight() ) && 23 if ( ( visibleHeight() < contentsHeight() ) &&
24 ( verticalScrollBar()->value() > verticalScrollBar()->minValue() ) ) 24 ( verticalScrollBar()->value() > verticalScrollBar()->minValue() ) )
25 scrollBy( 0, -(visibleHeight()-20) ); 25 scrollBy( 0, -(visibleHeight()-20) );
26 else 26 else
27 showPrev(); 27 showPrev();
28 break; 28 break;
29 case Qt::Key_Down: 29 case Qt::Key_Down:
30 if ( ( visibleHeight() < contentsHeight() ) && 30 if ( ( visibleHeight() < contentsHeight() ) &&
31 ( verticalScrollBar()->value() < verticalScrollBar()->maxValue() ) ) 31 ( verticalScrollBar()->value() < verticalScrollBar()->maxValue() ) )
32 scrollBy( 0, visibleHeight()-20 ); 32 scrollBy( 0, visibleHeight()-20 );
33 else 33 else
34 showNext(); 34 showNext();
35 break; 35 break;
36 case Qt::Key_Left: 36 case Qt::Key_Left:
37 case Qt::Key_Right: 37 case Qt::Key_Right:
38 case Qt::Key_F33: 38 case Qt::Key_F33:
diff --git a/core/pim/todo/textviewshow.h b/core/pim/todo/textviewshow.h
index 498de81..cc31522 100644
--- a/core/pim/todo/textviewshow.h
+++ b/core/pim/todo/textviewshow.h
@@ -1,20 +1,20 @@
1#include <qtextview.h> 1#include <qtextview.h>
2 2
3#include "todoshow.h" 3#include "todoshow.h"
4 4
5namespace Todo { 5namespace Todo {
6 6
7 class TextViewShow : public QTextView, public TodoShow { 7 class TextViewShow : public QTextView, public TodoShow {
8 public: 8 public:
9 TextViewShow( QWidget* parent, MainWindow* ); 9 TextViewShow( QWidget* parent, MainWindow* );
10 ~TextViewShow(); 10 ~TextViewShow();
11 11
12 QString type()const; 12 QString type()const;
13 void slotShow( const OTodo& ev ); 13 void slotShow( const OPimTodo& ev );
14 QWidget* widget(); 14 QWidget* widget();
15 15
16 protected: 16 protected:
17 void keyPressEvent( QKeyEvent* ); 17 void keyPressEvent( QKeyEvent* );
18 18
19 }; 19 };
20}; 20};
diff --git a/core/pim/todo/todo.pro b/core/pim/todo/todo.pro
index 51cfde7..9267082 100644
--- a/core/pim/todo/todo.pro
+++ b/core/pim/todo/todo.pro
@@ -23,27 +23,27 @@ HEADERS = smalltodo.h \
23 23
24 SOURCES= smalltodo.cpp \ 24 SOURCES= smalltodo.cpp \
25 todomanager.cpp \ 25 todomanager.cpp \
26 mainwindow.cpp \ 26 mainwindow.cpp \
27 # main.cpp \ 27 # main.cpp \
28 tableview.cpp \ 28 tableview.cpp \
29 todoview.cpp \ 29 todoview.cpp \
30 todotemplatemanager.cpp \ 30 todotemplatemanager.cpp \
31 todoeditor.cpp \ 31 todoeditor.cpp \
32 todoshow.cpp \ 32 todoshow.cpp \
33 textviewshow.cpp \ 33 textviewshow.cpp \
34 templateeditor.cpp \ 34 templateeditor.cpp \
35 templatedialog.cpp \ 35 templatedialog.cpp \
36 templatedialogimpl.cpp \ 36 templatedialogimpl.cpp \
37 quickeditimpl.cpp \ 37 quickeditimpl.cpp \
38 quickedit.cpp \ 38 quickedit.cpp \
39 otaskeditor.cpp \ 39 otaskeditor.cpp \
40 taskeditoroverview.cpp \ 40 taskeditoroverview.cpp \
41 taskeditorstatus.cpp \ 41 taskeditorstatus.cpp \
42 taskeditoralarms.cpp 42 taskeditoralarms.cpp
43 43
44 TARGET = todolist 44 TARGET = todolist
45INCLUDEPATH += $(OPIEDIR)/include 45INCLUDEPATH += $(OPIEDIR)/include
46 DEPENDPATH+= $(OPIEDIR)/include 46 DEPENDPATH+= $(OPIEDIR)/include
47LIBS += -lqpe -lopie 47LIBS += -lqpe -lopiecore2 -lopieui2 -lopiepim2
48 48
49include ( $(OPIEDIR)/include.pro ) 49include ( $(OPIEDIR)/include.pro )
diff --git a/core/pim/todo/todoedit.h b/core/pim/todo/todoedit.h
index 02800ca..4e89e93 100644
--- a/core/pim/todo/todoedit.h
+++ b/core/pim/todo/todoedit.h
@@ -1,17 +1,17 @@
1#ifndef OPIE_TODO_EDIT_H 1#ifndef OPIE_TODO_EDIT_H
2#define OPIE_TODO_EDIT_H 2#define OPIE_TODO_EDIT_H
3 3
4#include <opie/otodo.h> 4#include <opie2/opimtodo.h>
5 5
6namespace Todo { 6namespace Todo {
7 class Edit { 7 class Edit {
8 public: 8 public:
9 Edit(); 9 Edit();
10 virtual ~Edit(); 10 virtual ~Edit();
11 11
12 ToDoEvent newEvent( const OTodo& ) = 0; 12 ToDoEvent newEvent( const OPimTodo& ) = 0;
13 ToDoEvent editEvent( const OTodo& ) = 0; 13 ToDoEvent editEvent( const OPimTodo& ) = 0;
14 }; 14 };
15}; 15};
16 16
17#endif 17#endif
diff --git a/core/pim/todo/todoeditor.cpp b/core/pim/todo/todoeditor.cpp
index 78aedd6..879d809 100644
--- a/core/pim/todo/todoeditor.cpp
+++ b/core/pim/todo/todoeditor.cpp
@@ -1,62 +1,62 @@
1 1
2#include <qpe/qpeapplication.h> 2#include <qpe/qpeapplication.h>
3 3
4#include "otaskeditor.h" 4#include "otaskeditor.h"
5#include "todoeditor.h" 5#include "todoeditor.h"
6 6
7using namespace Todo; 7using namespace Todo;
8 8
9Editor::Editor() { 9Editor::Editor() {
10 m_accepted = false; 10 m_accepted = false;
11 m_self = 0l; 11 m_self = 0l;
12} 12}
13Editor::~Editor() { 13Editor::~Editor() {
14 delete m_self; 14 delete m_self;
15 m_self = 0; 15 m_self = 0;
16} 16}
17OTodo Editor::newTodo( int cur, 17OPimTodo Editor::newTodo( int cur,
18 QWidget*) { 18 QWidget*) {
19 19
20 OTaskEditor *e = self(); 20 OTaskEditor *e = self();
21 e->setCaption( QObject::tr("Enter Task") ); 21 e->setCaption( QObject::tr("Enter Task") );
22 e->init( cur ); 22 e->init( cur );
23 23
24 int ret = QPEApplication::execDialog( e ); 24 int ret = QPEApplication::execDialog( e );
25 25
26 if ( QDialog::Accepted == ret ) { 26 if ( QDialog::Accepted == ret ) {
27 m_accepted = true; 27 m_accepted = true;
28 }else 28 }else
29 m_accepted = false; 29 m_accepted = false;
30 30
31 OTodo ev = e->todo(); 31 OPimTodo ev = e->todo();
32 qWarning("Todo uid"); 32 qWarning("Todo uid");
33 qWarning("Todo %s %d %d", ev.summary().latin1(), ev.progress(), ev.isCompleted() ); 33 qWarning("Todo %s %d %d", ev.summary().latin1(), ev.progress(), ev.isCompleted() );
34 ev.setUid(1); 34 ev.setUid(1);
35 35
36 return ev; 36 return ev;
37} 37}
38OTodo Editor::edit( QWidget *, 38OPimTodo Editor::edit( QWidget *,
39 const OTodo& todo ) { 39 const OPimTodo& todo ) {
40 OTaskEditor *e = self(); 40 OTaskEditor *e = self();
41 e->init( todo ); 41 e->init( todo );
42 e->setCaption( QObject::tr( "Edit Task" ) ); 42 e->setCaption( QObject::tr( "Edit Task" ) );
43 43
44 int ret = QPEApplication::execDialog( e ); 44 int ret = QPEApplication::execDialog( e );
45 45
46 OTodo ev = e->todo(); 46 OPimTodo ev = e->todo();
47 if ( ret == QDialog::Accepted ) 47 if ( ret == QDialog::Accepted )
48 m_accepted = true; 48 m_accepted = true;
49 else 49 else
50 m_accepted = false; 50 m_accepted = false;
51 51
52 return ev; 52 return ev;
53} 53}
54bool Editor::accepted()const { 54bool Editor::accepted()const {
55 return m_accepted; 55 return m_accepted;
56} 56}
57OTaskEditor* Editor::self() { 57OTaskEditor* Editor::self() {
58 if (!m_self ) 58 if (!m_self )
59 m_self = new OTaskEditor(0); 59 m_self = new OTaskEditor(0);
60 60
61 return m_self; 61 return m_self;
62} 62}
diff --git a/core/pim/todo/todoeditor.h b/core/pim/todo/todoeditor.h
index fe30634..bcfd205 100644
--- a/core/pim/todo/todoeditor.h
+++ b/core/pim/todo/todoeditor.h
@@ -1,29 +1,29 @@
1#ifndef OPIE_TODO_EDITOR_H 1#ifndef OPIE_TODO_EDITOR_H
2#define OPIE_TODO_EDITOR_H 2#define OPIE_TODO_EDITOR_H
3 3
4#include <opie/otodo.h> 4#include <opie2/opimtodo.h>
5 5
6 6
7class OTaskEditor; 7class OTaskEditor;
8namespace Todo { 8namespace Todo {
9 class Editor { 9 class Editor {
10 public: 10 public:
11 Editor(); 11 Editor();
12 ~Editor(); 12 ~Editor();
13 13
14 OTodo newTodo( int currentCatId, 14 OPimTodo newTodo( int currentCatId,
15 QWidget* par ); 15 QWidget* par );
16 OTodo edit( QWidget* par, 16 OPimTodo edit( QWidget* par,
17 const OTodo& ev = OTodo() ); 17 const OPimTodo& ev = OPimTodo() );
18 18
19 19
20 bool accepted()const; 20 bool accepted()const;
21 protected: 21 protected:
22 OTaskEditor* self(); 22 OTaskEditor* self();
23 private: 23 private:
24 bool m_accepted: 1; 24 bool m_accepted: 1;
25 OTaskEditor* m_self; 25 OTaskEditor* m_self;
26 }; 26 };
27}; 27};
28 28
29#endif 29#endif
diff --git a/core/pim/todo/todomanager.cpp b/core/pim/todo/todomanager.cpp
index 501cca7..21e1d0c 100644
--- a/core/pim/todo/todomanager.cpp
+++ b/core/pim/todo/todomanager.cpp
@@ -21,107 +21,107 @@
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#include <qpe/categoryselect.h> 28#include <qpe/categoryselect.h>
29 29
30#include "todomanager.h" 30#include "todomanager.h"
31 31
32using namespace Todo; 32using namespace Todo;
33 33
34TodoManager::TodoManager( QObject *obj ) 34TodoManager::TodoManager( QObject *obj )
35 : QObject( obj ) { 35 : QObject( obj ) {
36 m_db = 0l; 36 m_db = 0l;
37 QTime time; 37 QTime time;
38 time.start(); 38 time.start();
39 int el = time.elapsed(); 39 int el = time.elapsed();
40 qWarning("QTimer for loading %d", el/1000 ); 40 qWarning("QTimer for loading %d", el/1000 );
41} 41}
42TodoManager::~TodoManager() { 42TodoManager::~TodoManager() {
43 delete m_db; 43 delete m_db;
44} 44}
45OTodo TodoManager::event(int uid ) { 45OPimTodo TodoManager::event(int uid ) {
46 return m_db->find( uid ); 46 return m_db->find( uid );
47} 47}
48void TodoManager::updateList() { 48void TodoManager::updateList() {
49 qWarning("update list"); 49 qWarning("update list");
50 m_list = m_db->allRecords(); 50 m_list = m_db->allRecords();
51} 51}
52OTodoAccess::List TodoManager::list() const{ 52OPimTodoAccess::List TodoManager::list() const{
53 return m_list; 53 return m_list;
54} 54}
55OTodoAccess::List TodoManager::sorted( bool asc, int so, int f, int cat ) { 55OPimTodoAccess::List TodoManager::sorted( bool asc, int so, int f, int cat ) {
56 return m_db->sorted( asc, so, f, cat ); 56 return m_db->sorted( asc, so, f, cat );
57} 57}
58OTodoAccess::List::Iterator TodoManager::overDue() { 58OPimTodoAccess::List::Iterator TodoManager::overDue() {
59 int filter = 2 | 1; 59 int filter = 2 | 1;
60 m_list = m_db->sorted(m_asc, m_sortOrder, filter, m_ca ); 60 m_list = m_db->sorted(m_asc, m_sortOrder, filter, m_ca );
61 m_it = m_list.begin(); 61 m_it = m_list.begin();
62 return m_it; 62 return m_it;
63} 63}
64OTodoAccess::List::Iterator TodoManager::fromTo( const QDate& start, 64OPimTodoAccess::List::Iterator TodoManager::fromTo( const QDate& start,
65 const QDate& end ) { 65 const QDate& end ) {
66 m_list = m_db->effectiveToDos( start, end ); 66 m_list = m_db->effectiveToDos( start, end );
67 m_it = m_list.begin(); 67 m_it = m_list.begin();
68 return m_it; 68 return m_it;
69} 69}
70OTodoAccess::List::Iterator TodoManager::query( const OTodo& ev, int query ) { 70OPimTodoAccess::List::Iterator TodoManager::query( const OPimTodo& ev, int query ) {
71 m_list = m_db->queryByExample( ev, query ); 71 m_list = m_db->queryByExample( ev, query );
72 m_it = m_list.begin(); 72 m_it = m_list.begin();
73 return m_it; 73 return m_it;
74} 74}
75OTodoAccess* TodoManager::todoDB() { 75OPimTodoAccess* TodoManager::todoDB() {
76 return m_db; 76 return m_db;
77} 77}
78void TodoManager::add( const OTodo& ev ) { 78void TodoManager::add( const OPimTodo& ev ) {
79 m_db->add( ev ); 79 m_db->add( ev );
80} 80}
81void TodoManager::update( int, const SmallTodo& ) { 81void TodoManager::update( int, const SmallTodo& ) {
82 82
83} 83}
84void TodoManager::update( int, const OTodo& ev) { 84void TodoManager::update( int, const OPimTodo& ev) {
85 m_db->replace( ev ); 85 m_db->replace( ev );
86} 86}
87bool TodoManager::remove( int uid ) { 87bool TodoManager::remove( int uid ) {
88 return m_db->remove( uid ); 88 return m_db->remove( uid );
89} 89}
90void TodoManager::removeAll() { 90void TodoManager::removeAll() {
91 m_db->clear(); 91 m_db->clear();
92} 92}
93void TodoManager::removeCompleted() { 93void TodoManager::removeCompleted() {
94 m_db->removeAllCompleted(); 94 m_db->removeAllCompleted();
95} 95}
96void TodoManager::save() { 96void TodoManager::save() {
97 m_db->save(); 97 m_db->save();
98} 98}
99bool TodoManager::saveAll() { 99bool TodoManager::saveAll() {
100 return m_db->save(); 100 return m_db->save();
101} 101}
102void TodoManager::reload() { 102void TodoManager::reload() {
103 m_db->reload(); 103 m_db->reload();
104} 104}
105QStringList TodoManager::categories() { 105QStringList TodoManager::categories() {
106 m_cat.load(categoryFileName() ); 106 m_cat.load(categoryFileName() );
107 return m_cat.labels( "Todo List"); 107 return m_cat.labels( "Todo List");
108} 108}
109/* 109/*
110 * we rely on load beeing called from populateCategories 110 * we rely on load beeing called from populateCategories
111 */ 111 */
112int TodoManager::catId( const QString& cats ) { 112int TodoManager::catId( const QString& cats ) {
113 return m_cat.id( "Todo List", cats ); 113 return m_cat.id( "Todo List", cats );
114} 114}
115void TodoManager::remove( const QArray<int>& ids) { 115void TodoManager::remove( const QArray<int>& ids) {
116 for (uint i=0; i < ids.size(); i++ ) 116 for (uint i=0; i < ids.size(); i++ )
117 remove( ids[i] ); 117 remove( ids[i] );
118} 118}
119bool TodoManager::isLoaded()const { 119bool TodoManager::isLoaded()const {
120 return (m_db == 0 ); 120 return (m_db == 0 );
121} 121}
122void TodoManager::load() { 122void TodoManager::load() {
123 if (!m_db) { 123 if (!m_db) {
124 m_db = new OTodoAccess(); 124 m_db = new OPimTodoAccess();
125 m_db->load(); 125 m_db->load();
126 } 126 }
127} 127}
diff --git a/core/pim/todo/todomanager.h b/core/pim/todo/todomanager.h
index 8544277..865b47b 100644
--- a/core/pim/todo/todomanager.h
+++ b/core/pim/todo/todomanager.h
@@ -8,104 +8,106 @@
8.="- .-=="i,     .._ License as published by the Free Software 8.="- .-=="i,     .._ License as published by the Free Software
9 - .   .-<_>     .<> Foundation; either version 2 of the License, 9 - .   .-<_>     .<> Foundation; either version 2 of the License,
10     ._= =}       : or (at your option) any later version. 10     ._= =}       : or (at your option) any later version.
11    .%`+i>       _;_. 11    .%`+i>       _;_.
12    .i_,=:_.      -<s. This program is distributed in the hope that 12    .i_,=:_.      -<s. This program is distributed in the hope that
13     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY; 13     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
14    : ..    .:,     . . . without even the implied warranty of 14    : ..    .:,     . . . without even the implied warranty of
15    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A 15    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
16  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU 16  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
17..}^=.=       =       ; Library General Public License for more 17..}^=.=       =       ; Library General Public License for more
18++=   -.     .`     .: details. 18++=   -.     .`     .: details.
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#ifndef OPIE_TODO_MANAGER_H 29#ifndef OPIE_TODO_MANAGER_H
30#define OPIE_TODO_MANAGER_H 30#define OPIE_TODO_MANAGER_H
31 31
32#include <qarray.h> 32#include <opie2/opimtodo.h>
33#include <qobject.h> 33#include <opie2/otodoaccess.h>
34#include <qstring.h>
35 34
36#include <qpe/categories.h> 35#include <qpe/categories.h>
37 36
38#include <opie/otodo.h> 37#include <qarray.h>
39#include <opie/otodoaccess.h> 38#include <qobject.h>
39#include <qstring.h>
40 40
41#include "smalltodo.h" 41#include "smalltodo.h"
42 42
43using Opie::OPimTodo;
44using Opie::OPimTodoAccess;
43 45
44namespace Todo { 46namespace Todo {
45 class TodoManager : public QObject{ 47 class TodoManager : public QObject{
46 Q_OBJECT 48 Q_OBJECT
47 public: 49 public:
48 bool isLoaded()const; 50 bool isLoaded()const;
49 void load(); 51 void load();
50 TodoManager(QObject* obj = 0); 52 TodoManager(QObject* obj = 0);
51 ~TodoManager(); 53 ~TodoManager();
52 54
53 QStringList categories()/*const*/; 55 QStringList categories()/*const*/;
54 int catId(const QString&); 56 int catId(const QString&);
55 OTodo event(int uid ); 57 OPimTodo event(int uid );
56 58
57 void updateList(); 59 void updateList();
58 /** returns the iterator sorted if set sorted*/ 60 /** returns the iterator sorted if set sorted*/
59 OTodoAccess::List list()const; 61 OPimTodoAccess::List list()const;
60 OTodoAccess::List sorted( bool asc, int so, int f, int cat ); 62 OPimTodoAccess::List sorted( bool asc, int so, int f, int cat );
61 63
62 OTodoAccess::List::Iterator overDue(); 64 OPimTodoAccess::List::Iterator overDue();
63 OTodoAccess::List::Iterator fromTo( const QDate& start, 65 OPimTodoAccess::List::Iterator fromTo( const QDate& start,
64 const QDate& end ); 66 const QDate& end );
65 OTodoAccess::List::Iterator query( const OTodo& ev, int query ); 67 OPimTodoAccess::List::Iterator query( const OPimTodo& ev, int query );
66 68
67 void setCategory( bool sort, int category = -1); 69 void setCategory( bool sort, int category = -1);
68 void setShowOverDue( bool show ); 70 void setShowOverDue( bool show );
69 void setSortOrder( int sortOrder ); 71 void setSortOrder( int sortOrder );
70 void setSortASC( bool ); 72 void setSortASC( bool );
71 void sort(); 73 void sort();
72 74
73 OTodoAccess* todoDB(); 75 OPimTodoAccess* todoDB();
74 bool saveAll(); 76 bool saveAll();
75 77
76 78
77 signals: 79 signals:
78 void update(); 80 void update();
79 void updateCategories(); 81 void updateCategories();
80 82
81 public slots: 83 public slots:
82 void add( const OTodo& ); 84 void add( const OPimTodo& );
83 void update( int uid, const SmallTodo& ); 85 void update( int uid, const SmallTodo& );
84 void update( int uid, const OTodo& ); 86 void update( int uid, const OPimTodo& );
85 bool remove( int uid ); 87 bool remove( int uid );
86 void remove( const QArray<int>& ); 88 void remove( const QArray<int>& );
87 89
88 /** 90 /**
89 * remove all completed 91 * remove all completed
90 */ 92 */
91 void removeCompleted(); 93 void removeCompleted();
92 void removeAll(); 94 void removeAll();
93 void reload(); 95 void reload();
94 void save(); 96 void save();
95 97
96 private: 98 private:
97 OTodoAccess* m_db; 99 OPimTodoAccess* m_db;
98 OTodoAccess::List m_list; 100 OPimTodoAccess::List m_list;
99 OTodoAccess::List::Iterator m_it; 101 OPimTodoAccess::List::Iterator m_it;
100 OTodoAccess::List m_sorted; 102 OPimTodoAccess::List m_sorted;
101 Categories m_cat; 103 Categories m_cat;
102 int m_ca; 104 int m_ca;
103 /* sort cat */ 105 /* sort cat */
104 bool m_shCat; 106 bool m_shCat;
105 int m_sortOrder; 107 int m_sortOrder;
106 bool m_asc; 108 bool m_asc;
107 109
108 }; 110 };
109}; 111};
110 112
111#endif 113#endif
diff --git a/core/pim/todo/todoshow.h b/core/pim/todo/todoshow.h
index 2babe93..1eeadf8 100644
--- a/core/pim/todo/todoshow.h
+++ b/core/pim/todo/todoshow.h
@@ -10,51 +10,53 @@
10     ._= =}       : or (at your option) any later version. 10     ._= =}       : or (at your option) any later version.
11    .%`+i>       _;_. 11    .%`+i>       _;_.
12    .i_,=:_.      -<s. This program is distributed in the hope that 12    .i_,=:_.      -<s. This program is distributed in the hope that
13     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY; 13     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
14    : ..    .:,     . . . without even the implied warranty of 14    : ..    .:,     . . . without even the implied warranty of
15    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A 15    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
16  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU 16  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
17..}^=.=       =       ; Library General Public License for more 17..}^=.=       =       ; Library General Public License for more
18++=   -.     .`     .: details. 18++=   -.     .`     .: details.
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#ifndef TODO_TODO_SHOW_H 28#ifndef TODO_TODO_SHOW_H
29#define TODO_TODO_SHOW_H 29#define TODO_TODO_SHOW_H
30 30
31#include <qstring.h> 31#include <qstring.h>
32#include <qwidget.h> 32#include <qwidget.h>
33 33
34#include <opie/otodo.h> 34#include <opie2/opimtodo.h>
35
36using Opie::OPimTodo;
35 37
36namespace Todo { 38namespace Todo {
37 class MainWindow; 39 class MainWindow;
38 /** 40 /**
39 * TodoShow is the baseclass of 41 * TodoShow is the baseclass of
40 * of all TodoShows. 42 * of all TodoShows.
41 * The first implementation is a QTextView 43 * The first implementation is a QTextView
42 * implementation showing the Todo as richtext 44 * implementation showing the Todo as richtext
43 */ 45 */
44 class TodoShow { 46 class TodoShow {
45 public: 47 public:
46 TodoShow( MainWindow* win); 48 TodoShow( MainWindow* win);
47 virtual ~TodoShow(); 49 virtual ~TodoShow();
48 virtual QString type()const = 0; 50 virtual QString type()const = 0;
49 virtual void slotShow( const OTodo& ev ) = 0; 51 virtual void slotShow( const OPimTodo& ev ) = 0;
50 virtual QWidget* widget() = 0; 52 virtual QWidget* widget() = 0;
51 protected: 53 protected:
52 void escapeView(); 54 void escapeView();
53 void showNext(); 55 void showNext();
54 void showPrev(); 56 void showPrev();
55 private: 57 private:
56 MainWindow *m_win; 58 MainWindow *m_win;
57 }; 59 };
58}; 60};
59 61
60#endif 62#endif
diff --git a/core/pim/todo/todotemplatemanager.cpp b/core/pim/todo/todotemplatemanager.cpp
index 5b83f76..eeac51b 100644
--- a/core/pim/todo/todotemplatemanager.cpp
+++ b/core/pim/todo/todotemplatemanager.cpp
@@ -1,81 +1,81 @@
1#include <opie2/otodoaccess.h>
2#include <opie2/otodoaccessxml.h>
3
1#include <qpe/config.h> 4#include <qpe/config.h>
2#include <qpe/global.h> 5#include <qpe/global.h>
3 6
4#include <opie/otodoaccess.h>
5#include <opie/otodoaccessxml.h>
6
7#include "todotemplatemanager.h" 7#include "todotemplatemanager.h"
8 8
9 9
10using namespace Todo; 10using namespace Todo;
11 11
12TemplateManager::TemplateManager() { 12TemplateManager::TemplateManager() {
13 m_path = Global::applicationFileName("todolist", "templates.xml"); 13 m_path = Global::applicationFileName("todolist", "templates.xml");
14} 14}
15TemplateManager::~TemplateManager() { 15TemplateManager::~TemplateManager() {
16 save(); 16 save();
17} 17}
18void TemplateManager::load() { 18void TemplateManager::load() {
19 Config conf("todolist_templates"); 19 Config conf("todolist_templates");
20 OTodoAccessXML *xml = new OTodoAccessXML( QString::fromLatin1("template"), 20 OPimTodoAccessXML *xml = new OPimTodoAccessXML( QString::fromLatin1("template"),
21 m_path ); 21 m_path );
22 OTodoAccess todoDB(xml ); 22 OPimTodoAccess todoDB(xml );
23 todoDB.load(); 23 todoDB.load();
24 24
25 OTodoAccess::List::Iterator it; 25 OPimTodoAccess::List::Iterator it;
26 OTodoAccess::List list = todoDB.allRecords(); 26 OPimTodoAccess::List list = todoDB.allRecords();
27 for ( it = list.begin(); it != list.end(); ++it ) { 27 for ( it = list.begin(); it != list.end(); ++it ) {
28 OTodo ev = (*it); 28 OPimTodo ev = (*it);
29 conf.setGroup( QString::number( ev.uid() ) ); 29 conf.setGroup( QString::number( ev.uid() ) );
30 QString str = conf.readEntry("Name", QString::null ); 30 QString str = conf.readEntry("Name", QString::null );
31 if (str.isEmpty() ) 31 if (str.isEmpty() )
32 continue; 32 continue;
33 33
34 m_templates.insert( str, ev ); 34 m_templates.insert( str, ev );
35 } 35 }
36} 36}
37void TemplateManager::save() { 37void TemplateManager::save() {
38 qWarning("Saving!!!!"); 38 qWarning("Saving!!!!");
39 Config conf("todolist_templates"); 39 Config conf("todolist_templates");
40 40
41 OTodoAccessXML *res = new OTodoAccessXML( "template", 41 OPimTodoAccessXML *res = new OPimTodoAccessXML( "template",
42 m_path ); 42 m_path );
43 OTodoAccess db(res); 43 OPimTodoAccess db(res);
44 db.load(); 44 db.load();
45 db.clear(); 45 db.clear();
46 46
47 47
48 QMap<QString, OTodo>::Iterator it; 48 QMap<QString, OPimTodo>::Iterator it;
49 for ( it = m_templates.begin(); it != m_templates.end(); ++it ) { 49 for ( it = m_templates.begin(); it != m_templates.end(); ++it ) {
50 OTodo ev = it.data(); 50 OPimTodo ev = it.data();
51 conf.setGroup( QString::number( ev.uid() ) ); 51 conf.setGroup( QString::number( ev.uid() ) );
52 qWarning("Name" + it.key() ); 52 qWarning("Name" + it.key() );
53 conf.writeEntry("Name", it.key() ); 53 conf.writeEntry("Name", it.key() );
54 db.add( ev ); 54 db.add( ev );
55 } 55 }
56 db.save(); 56 db.save();
57} 57}
58void TemplateManager::addEvent( const QString& str, 58void TemplateManager::addEvent( const QString& str,
59 const OTodo& ev) { 59 const OPimTodo& ev) {
60 qWarning("AddEvent"+ str ); 60 qWarning("AddEvent"+ str );
61 OTodo todo = ev; 61 OPimTodo todo = ev;
62 if( ev.uid() == 0 ) 62 if( ev.uid() == 0 )
63 todo.setUid(1); // generate a new uid 63 todo.setUid(1); // generate a new uid
64 64
65 m_templates.replace( str, todo ); 65 m_templates.replace( str, todo );
66} 66}
67void TemplateManager::removeEvent( const QString& str ) { 67void TemplateManager::removeEvent( const QString& str ) {
68 m_templates.remove( str ); 68 m_templates.remove( str );
69} 69}
70QStringList TemplateManager::templates() const { 70QStringList TemplateManager::templates() const {
71 QStringList list; 71 QStringList list;
72 QMap<QString, OTodo>::ConstIterator it; 72 QMap<QString, OPimTodo>::ConstIterator it;
73 for (it = m_templates.begin(); it != m_templates.end(); ++it ) { 73 for (it = m_templates.begin(); it != m_templates.end(); ++it ) {
74 list << it.key(); 74 list << it.key();
75 } 75 }
76 76
77 return list; 77 return list;
78} 78}
79OTodo TemplateManager::templateEvent( const QString& templateName ) { 79OPimTodo TemplateManager::templateEvent( const QString& templateName ) {
80 return m_templates[templateName]; 80 return m_templates[templateName];
81} 81}
diff --git a/core/pim/todo/todotemplatemanager.h b/core/pim/todo/todotemplatemanager.h
index 387ced1..ee8aaaf 100644
--- a/core/pim/todo/todotemplatemanager.h
+++ b/core/pim/todo/todotemplatemanager.h
@@ -1,32 +1,33 @@
1#ifndef OPIE_TODO_TEMPLATE_H 1#ifndef OPIE_TODO_TEMPLATE_H
2#define OPIE_TODO_TEMPLATE_H 2#define OPIE_TODO_TEMPLATE_H
3 3
4#include <opie2/opimtodo.h>
5
4#include <qstring.h> 6#include <qstring.h>
5#include <qmap.h> 7#include <qmap.h>
6 8
7#include <opie/otodo.h> 9using namespace Opie;
8
9 10
10namespace Todo { 11namespace Todo {
11 class TemplateManager { 12 class TemplateManager {
12 public: 13 public:
13 TemplateManager(); 14 TemplateManager();
14 ~TemplateManager(); 15 ~TemplateManager();
15 void load(); 16 void load();
16 void save(); 17 void save();
17 QStringList templates()const; 18 QStringList templates()const;
18 OTodo templateEvent( const QString& templateName ); 19 OPimTodo templateEvent( const QString& templateName );
19 20
20 /* also replaces one */ 21 /* also replaces one */
21 void addEvent( const QString&, const OTodo& ); 22 void addEvent( const QString&, const OPimTodo& );
22 void removeEvent( const QString& ); 23 void removeEvent( const QString& );
23 private: 24 private:
24 QString m_path; 25 QString m_path;
25 QMap<QString, OTodo> m_templates; 26 QMap<QString, OPimTodo> m_templates;
26 27
27 28
28 29
29 }; 30 };
30}; 31};
31 32
32#endif 33#endif
diff --git a/core/pim/todo/todoview.cpp b/core/pim/todo/todoview.cpp
index 31047cf..d99cf77 100644
--- a/core/pim/todo/todoview.cpp
+++ b/core/pim/todo/todoview.cpp
@@ -1,69 +1,69 @@
1#include "mainwindow.h" 1#include "mainwindow.h"
2 2
3#include "todoview.h" 3#include "todoview.h"
4 4
5using namespace Todo; 5using namespace Todo;
6 6
7 7
8 8
9 9
10TodoView::TodoView( MainWindow* win ) 10TodoView::TodoView( MainWindow* win )
11 : m_main( win ) 11 : m_main( win )
12{ 12{
13 m_asc = false; 13 m_asc = false;
14 m_sortOrder = -1; 14 m_sortOrder = -1;
15} 15}
16TodoView::~TodoView() { 16TodoView::~TodoView() {
17}; 17};
18MainWindow* TodoView::todoWindow() { 18MainWindow* TodoView::todoWindow() {
19 return m_main; 19 return m_main;
20} 20}
21 21
22OTodo TodoView::event(int uid ) { 22OPimTodo TodoView::event(int uid ) {
23 return m_main->event( uid ); 23 return m_main->event( uid );
24} 24}
25OTodoAccess::List TodoView::list(){ 25OPimTodoAccess::List TodoView::list(){
26 todoWindow()->updateList(); 26 todoWindow()->updateList();
27 return todoWindow()->list(); 27 return todoWindow()->list();
28} 28}
29OTodoAccess::List TodoView::sorted()const{ 29OPimTodoAccess::List TodoView::sorted()const{
30 return m_sort; 30 return m_sort;
31} 31}
32void TodoView::sort() { 32void TodoView::sort() {
33 m_sort = todoWindow()->sorted(m_asc,m_sortOrder ); 33 m_sort = todoWindow()->sorted(m_asc,m_sortOrder );
34 qWarning("m_sort.count() = %d", m_sort.count() ); 34 qWarning("m_sort.count() = %d", m_sort.count() );
35} 35}
36void TodoView::sort(int sort) { 36void TodoView::sort(int sort) {
37 m_sort = todoWindow()->sorted(m_asc, m_sortOrder, sort ); 37 m_sort = todoWindow()->sorted(m_asc, m_sortOrder, sort );
38} 38}
39void TodoView::setSortOrder( int order ) { 39void TodoView::setSortOrder( int order ) {
40 m_sortOrder = order; 40 m_sortOrder = order;
41} 41}
42void TodoView::setAscending( bool b ) { 42void TodoView::setAscending( bool b ) {
43 qWarning("setAscending %d", b ); 43 qWarning("setAscending %d", b );
44 m_asc = b; 44 m_asc = b;
45} 45}
46void TodoView::update(int, const SmallTodo& ) { 46void TodoView::update(int, const SmallTodo& ) {
47 //m_main->slotUpate1( uid, to ); 47 //m_main->slotUpate1( uid, to );
48} 48}
49void TodoView::update(int , const OTodo& ev ) { 49void TodoView::update(int , const OPimTodo& ev ) {
50 m_main->updateTodo( ev ); 50 m_main->updateTodo( ev );
51} 51}
52void TodoView::showTodo( int uid ) { 52void TodoView::showTodo( int uid ) {
53 m_main->slotShow( uid ); 53 m_main->slotShow( uid );
54} 54}
55void TodoView::edit( int uid ) { 55void TodoView::edit( int uid ) {
56 m_main->slotEdit( uid ); 56 m_main->slotEdit( uid );
57} 57}
58void TodoView::remove( int uid ) { 58void TodoView::remove( int uid ) {
59 m_main->m_todoMgr.remove( uid ); 59 m_main->m_todoMgr.remove( uid );
60} 60}
61void TodoView::complete( int uid ) { 61void TodoView::complete( int uid ) {
62 m_main->slotComplete( uid ); 62 m_main->slotComplete( uid );
63} 63}
64void TodoView::complete( const OTodo& ev ) { 64void TodoView::complete( const OPimTodo& ev ) {
65 m_main->slotComplete( ev ); 65 m_main->slotComplete( ev );
66} 66}
67void TodoView::removeQuery( int uid ) { 67void TodoView::removeQuery( int uid ) {
68 m_main->slotDelete( uid ); 68 m_main->slotDelete( uid );
69} 69}
diff --git a/core/pim/todo/todoview.h b/core/pim/todo/todoview.h
index e5ed66f..a5ea9f5 100644
--- a/core/pim/todo/todoview.h
+++ b/core/pim/todo/todoview.h
@@ -13,124 +13,126 @@
13     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY; 13     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
14    : ..    .:,     . . . without even the implied warranty of 14    : ..    .:,     . . . without even the implied warranty of
15    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A 15    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
16  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU 16  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
17..}^=.=       =       ; Library General Public License for more 17..}^=.=       =       ; Library General Public License for more
18++=   -.     .`     .: details. 18++=   -.     .`     .: details.
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#ifndef TODO_VIEW_H 29#ifndef TODO_VIEW_H
30#define TODO_VIEW_H 30#define TODO_VIEW_H
31 31
32#include <qarray.h> 32#include <qarray.h>
33#include <qstring.h> 33#include <qstring.h>
34#include <qvaluelist.h> 34#include <qvaluelist.h>
35#include <qwidget.h> 35#include <qwidget.h>
36 36
37#include <opie/otodoaccess.h> 37#include <opie2/otodoaccess.h>
38 38
39#include "smalltodo.h" 39#include "smalltodo.h"
40 40
41using Opie::OPimTodo;
42using Opie::OPimTodoAccess;
41 43
42namespace Todo { 44namespace Todo {
43 class MainWindow; 45 class MainWindow;
44 46
45 /** 47 /**
46 * due to inheretince problems we need this base class 48 * due to inheretince problems we need this base class
47 */ 49 */
48 struct ViewBase { 50 struct ViewBase {
49 public: 51 public:
50 virtual QWidget* widget() = 0; 52 virtual QWidget* widget() = 0;
51 virtual QString type()const = 0; 53 virtual QString type()const = 0;
52 virtual int current() = 0; 54 virtual int current() = 0;
53 virtual QString currentRepresentation() = 0; 55 virtual QString currentRepresentation() = 0;
54 virtual void showOverDue( bool ) = 0; 56 virtual void showOverDue( bool ) = 0;
55 57
56 /** 58 /**
57 * the next record in the view or 0 if none is there 59 * the next record in the view or 0 if none is there
58 */ 60 */
59 virtual int next() = 0; 61 virtual int next() = 0;
60 62
61 /** 63 /**
62 * the previous record or 0 if none is there.. 64 * the previous record or 0 if none is there..
63 */ 65 */
64 virtual int prev() = 0; 66 virtual int prev() = 0;
65 67
66 /* 68 /*
67 * update the view 69 * update the view
68 */ 70 */
69 virtual void updateView() = 0; 71 virtual void updateView() = 0;
70 72
71 virtual void addEvent( const OTodo& ) = 0; 73 virtual void addEvent( const OPimTodo& ) = 0;
72 virtual void replaceEvent( const OTodo& ) = 0; 74 virtual void replaceEvent( const OPimTodo& ) = 0;
73 virtual void removeEvent( int uid ) = 0; 75 virtual void removeEvent( int uid ) = 0;
74 virtual void setShowCompleted( bool ) = 0; 76 virtual void setShowCompleted( bool ) = 0;
75 virtual void setShowDeadline( bool ) = 0; 77 virtual void setShowDeadline( bool ) = 0;
76 virtual void setShowCategory( const QString& = QString::null ) = 0; 78 virtual void setShowCategory( const QString& = QString::null ) = 0;
77 virtual void clear() = 0; 79 virtual void clear() = 0;
78 virtual void newDay() = 0; 80 virtual void newDay() = 0;
79 }; 81 };
80 82
81 /** 83 /**
82 * A base class for all TodoView which are showing 84 * A base class for all TodoView which are showing
83 * a list of todos. 85 * a list of todos.
84 * Either in a QTable, QListView or any other QWidget 86 * Either in a QTable, QListView or any other QWidget
85 * derived class 87 * derived class
86 * Through the MainWindow( dispatcher ) one can access 88 * Through the MainWindow( dispatcher ) one can access
87 * the relevant informations 89 * the relevant informations
88 * 90 *
89 * It's not possible to have signal and slots from within 91 * It's not possible to have signal and slots from within
90 * templates this way you've to register for a signal 92 * templates this way you've to register for a signal
91 */ 93 */
92 class TodoView : public ViewBase{ 94 class TodoView : public ViewBase{
93 95
94 public: 96 public:
95 /** 97 /**
96 * c'tor 98 * c'tor
97 */ 99 */
98 TodoView( MainWindow* win ); 100 TodoView( MainWindow* win );
99 101
100 /** 102 /**
101 *d'tor 103 *d'tor
102 */ 104 */
103 virtual ~TodoView(); 105 virtual ~TodoView();
104 106
105 protected: 107 protected:
106 MainWindow* todoWindow(); 108 MainWindow* todoWindow();
107 OTodo event(int uid ); 109 OPimTodo event(int uid );
108 OTodoAccess::List list(); 110 OPimTodoAccess::List list();
109 OTodoAccess::List sorted()const; 111 OPimTodoAccess::List sorted()const;
110 void sort(); 112 void sort();
111 void sort(int sort ); 113 void sort(int sort );
112 void setSortOrder( int order ); 114 void setSortOrder( int order );
113 void setAscending( bool ); 115 void setAscending( bool );
114 116
115 /* 117 /*
116 * These things needs to be implemented 118 * These things needs to be implemented
117 * in a implementation 119 * in a implementation
118 */ 120 */
119 void showTodo( int uid ); 121 void showTodo( int uid );
120 void edit( int uid ); 122 void edit( int uid );
121 void update(int uid, const SmallTodo& to ); 123 void update(int uid, const SmallTodo& to );
122 void update(int uid, const OTodo& ev); 124 void update(int uid, const OPimTodo& ev);
123 void remove( int uid ); 125 void remove( int uid );
124 /* will ask the user if the item should be deleted */ 126 /* will ask the user if the item should be deleted */
125 void removeQuery(int uid ); 127 void removeQuery(int uid );
126 void complete( int uid ); 128 void complete( int uid );
127 void complete( const OTodo& ev ); 129 void complete( const OPimTodo& ev );
128 private: 130 private:
129 MainWindow *m_main; 131 MainWindow *m_main;
130 OTodoAccess::List m_sort; 132 OPimTodoAccess::List m_sort;
131 bool m_asc : 1; 133 bool m_asc : 1;
132 int m_sortOrder; 134 int m_sortOrder;
133 }; 135 };
134}; 136};
135 137
136#endif 138#endif