author | zecke <zecke> | 2002-10-13 02:26:52 (UTC) |
---|---|---|
committer | zecke <zecke> | 2002-10-13 02:26:52 (UTC) |
commit | e9e5c2346f12f78b42025c70a50ebb4157dbd7ca (patch) (unidiff) | |
tree | 310c3a4bb3fc38646b21941e516f6f9f6b4c7fb9 /core/pim/todo | |
parent | d96ce086c617b5b2efc5081cd10a43257a78f488 (diff) | |
download | opie-e9e5c2346f12f78b42025c70a50ebb4157dbd7ca.zip opie-e9e5c2346f12f78b42025c70a50ebb4157dbd7ca.tar.gz opie-e9e5c2346f12f78b42025c70a50ebb4157dbd7ca.tar.bz2 |
Speed Speed Speed...
main.cpp disabled messagehandler..
TableView: do not update View from setCategory if category was not changed
and if not first setCategory
Inline editing is working again
current is working too
Fixed sorting
MainWindow:
Show Event
and Edit event does work again
Try to avoid calling sorted or allRecords unneeded...
10.000 todos on SQL does feel fast
I need to get it down some more... maybe tweaking libsqlite a bit ( some compiler switches and disable asserts )
Before I implement new features I want to get down to 2-3 seconds loading
of Data
The UI will instantly pop up and then load the stuff within seconds
-rw-r--r-- | core/pim/todo/main.cpp | 2 | ||||
-rw-r--r-- | core/pim/todo/mainwindow.cpp | 5 | ||||
-rw-r--r-- | core/pim/todo/tableview.cpp | 83 | ||||
-rw-r--r-- | core/pim/todo/tableview.h | 7 | ||||
-rw-r--r-- | core/pim/todo/todomanager.cpp | 2 | ||||
-rw-r--r-- | core/pim/todo/todoview.cpp | 3 | ||||
-rw-r--r-- | core/pim/todo/todoview.h | 2 |
7 files changed, 78 insertions, 26 deletions
diff --git a/core/pim/todo/main.cpp b/core/pim/todo/main.cpp index 58ed45c..aeae794 100644 --- a/core/pim/todo/main.cpp +++ b/core/pim/todo/main.cpp | |||
@@ -28,13 +28,13 @@ | |||
28 | void myMessages( QtMsgType, const char* ) { | 28 | void myMessages( QtMsgType, const char* ) { |
29 | 29 | ||
30 | } | 30 | } |
31 | 31 | ||
32 | int main( int argc, char **argv ) | 32 | int main( int argc, char **argv ) |
33 | { | 33 | { |
34 | qInstallMsgHandler( myMessages ); | 34 | // qInstallMsgHandler( myMessages ); |
35 | QPEApplication a( argc, argv ); | 35 | QPEApplication a( argc, argv ); |
36 | 36 | ||
37 | QTime time; | 37 | QTime time; |
38 | time.start(); | 38 | time.start(); |
39 | Todo::MainWindow mw; | 39 | Todo::MainWindow mw; |
40 | int t = time.elapsed(); | 40 | int t = time.elapsed(); |
diff --git a/core/pim/todo/mainwindow.cpp b/core/pim/todo/mainwindow.cpp index 48954ce..c9c43d4 100644 --- a/core/pim/todo/mainwindow.cpp +++ b/core/pim/todo/mainwindow.cpp | |||
@@ -417,13 +417,12 @@ void MainWindow::slotNew() { | |||
417 | 417 | ||
418 | // I'm afraid we must call this every time now, otherwise | 418 | // I'm afraid we must call this every time now, otherwise |
419 | // spend expensive time comparing all these strings... | 419 | // spend expensive time comparing all these strings... |
420 | // but only call if we changed something -zecke | 420 | // but only call if we changed something -zecke |
421 | populateCategories(); | 421 | populateCategories(); |
422 | } | 422 | } |
423 | |||
424 | raiseCurrentView( ); | 423 | raiseCurrentView( ); |
425 | } | 424 | } |
426 | void MainWindow::slotDuplicate() { | 425 | void MainWindow::slotDuplicate() { |
427 | if(m_syncing) { | 426 | if(m_syncing) { |
428 | QMessageBox::warning(this, tr("Todo"), | 427 | QMessageBox::warning(this, tr("Todo"), |
429 | tr("Can not edit data, currently syncing")); | 428 | tr("Can not edit data, currently syncing")); |
@@ -494,12 +493,13 @@ void MainWindow::slotEdit() { | |||
494 | /* | 493 | /* |
495 | * set the category | 494 | * set the category |
496 | */ | 495 | */ |
497 | void MainWindow::setCategory( int c) { | 496 | void MainWindow::setCategory( int c) { |
498 | if ( c <= 0 ) return; | 497 | if ( c <= 0 ) return; |
499 | 498 | ||
499 | |||
500 | qWarning("Iterating over cats %d", c ); | 500 | qWarning("Iterating over cats %d", c ); |
501 | for ( unsigned int i = 1; i < m_catMenu->count(); i++ ) | 501 | for ( unsigned int i = 1; i < m_catMenu->count(); i++ ) |
502 | m_catMenu->setItemChecked(i, c == (int)i ); | 502 | m_catMenu->setItemChecked(i, c == (int)i ); |
503 | 503 | ||
504 | if (c == 1 ) { | 504 | if (c == 1 ) { |
505 | m_curCat = QString::null; | 505 | m_curCat = QString::null; |
@@ -510,12 +510,13 @@ void MainWindow::setCategory( int c) { | |||
510 | setCaption( tr("Todo") + " - " + tr("Unfiled") ); | 510 | setCaption( tr("Todo") + " - " + tr("Unfiled") ); |
511 | }else { | 511 | }else { |
512 | m_curCat = m_todoMgr.categories()[c-2]; | 512 | m_curCat = m_todoMgr.categories()[c-2]; |
513 | setCaption( tr("Todo") + " - " + m_curCat ); | 513 | setCaption( tr("Todo") + " - " + m_curCat ); |
514 | } | 514 | } |
515 | m_catMenu->setItemChecked( c, true ); | 515 | m_catMenu->setItemChecked( c, true ); |
516 | |||
516 | currentView()->setShowCategory( m_curCat ); | 517 | currentView()->setShowCategory( m_curCat ); |
517 | raiseCurrentView(); | 518 | raiseCurrentView(); |
518 | } | 519 | } |
519 | void MainWindow::slotShowDeadLine( bool dead) { | 520 | void MainWindow::slotShowDeadLine( bool dead) { |
520 | m_deadline = dead; | 521 | m_deadline = dead; |
521 | currentView()->setShowDeadline( dead ); | 522 | currentView()->setShowDeadline( dead ); |
@@ -546,13 +547,12 @@ void MainWindow::slotShowDetails() { | |||
546 | } | 547 | } |
547 | /* | 548 | /* |
548 | * populate the Categories | 549 | * populate the Categories |
549 | * Menu | 550 | * Menu |
550 | */ | 551 | */ |
551 | void MainWindow::populateCategories() { | 552 | void MainWindow::populateCategories() { |
552 | if (m_todoMgr.isLoaded() ) | ||
553 | m_todoMgr.load(); | 553 | m_todoMgr.load(); |
554 | 554 | ||
555 | m_catMenu->clear(); | 555 | m_catMenu->clear(); |
556 | int id, rememberId; | 556 | int id, rememberId; |
557 | id = 1; | 557 | id = 1; |
558 | rememberId = 1; | 558 | rememberId = 1; |
@@ -611,12 +611,13 @@ void MainWindow::slotEdit( int uid ) { | |||
611 | 611 | ||
612 | /* if completed */ | 612 | /* if completed */ |
613 | if ( currentEditor()->accepted() ) { | 613 | if ( currentEditor()->accepted() ) { |
614 | qWarning("Replacing now" ); | 614 | qWarning("Replacing now" ); |
615 | m_todoMgr.update( todo.uid(), todo ); | 615 | m_todoMgr.update( todo.uid(), todo ); |
616 | currentView()->replaceEvent( todo ); | 616 | currentView()->replaceEvent( todo ); |
617 | /* a Category might have changed */ | ||
617 | populateCategories(); | 618 | populateCategories(); |
618 | } | 619 | } |
619 | 620 | ||
620 | raiseCurrentView(); | 621 | raiseCurrentView(); |
621 | } | 622 | } |
622 | /* | 623 | /* |
diff --git a/core/pim/todo/tableview.cpp b/core/pim/todo/tableview.cpp index 5594b13..5d82eb2 100644 --- a/core/pim/todo/tableview.cpp +++ b/core/pim/todo/tableview.cpp | |||
@@ -86,12 +86,15 @@ TableView::TableView( MainWindow* window, QWidget* wid ) | |||
86 | this, SLOT(slotShowMenu()) ); | 86 | this, SLOT(slotShowMenu()) ); |
87 | 87 | ||
88 | m_enablePaint = true; | 88 | m_enablePaint = true; |
89 | setUpdatesEnabled( true ); | 89 | setUpdatesEnabled( true ); |
90 | viewport()->setUpdatesEnabled( true ); | 90 | viewport()->setUpdatesEnabled( true ); |
91 | viewport()->update(); | 91 | viewport()->update(); |
92 | setSortOrder( 0 ); | ||
93 | setAscending( TRUE ); | ||
94 | m_first = true; | ||
92 | } | 95 | } |
93 | /* a new day has started | 96 | /* a new day has started |
94 | * update the day | 97 | * update the day |
95 | */ | 98 | */ |
96 | void TableView::newDay() { | 99 | void TableView::newDay() { |
97 | clear(); | 100 | clear(); |
@@ -106,28 +109,26 @@ void TableView::slotShowMenu() { | |||
106 | delete menu; | 109 | delete menu; |
107 | } | 110 | } |
108 | QString TableView::type() const { | 111 | QString TableView::type() const { |
109 | return QString::fromLatin1( tr("Table View") ); | 112 | return QString::fromLatin1( tr("Table View") ); |
110 | } | 113 | } |
111 | int TableView::current() { | 114 | int TableView::current() { |
112 | int cur = 0; | 115 | int uid = sorted().uidAt(currentRow() ); |
113 | // FIXME | 116 | qWarning("uid %d", uid ); |
114 | return cur; | 117 | return uid; |
115 | } | 118 | } |
116 | QString TableView::currentRepresentation() { | 119 | QString TableView::currentRepresentation() { |
117 | return text( currentRow(), 2); | 120 | return text( currentRow(), 2); |
118 | } | 121 | } |
119 | /* show overdue */ | 122 | /* show overdue */ |
120 | void TableView::showOverDue( bool ) { | 123 | void TableView::showOverDue( bool ) { |
121 | clear(); | 124 | clear(); |
122 | updateView(); | 125 | updateView(); |
123 | } | 126 | } |
124 | 127 | ||
125 | void TableView::updateView( ) { | 128 | void TableView::updateView( ) { |
126 | setSortOrder( 0 ); | ||
127 | setAscending( true ); | ||
128 | sort(); | 129 | sort(); |
129 | OTodoAccess::List::Iterator it, end; | 130 | OTodoAccess::List::Iterator it, end; |
130 | it = sorted().begin(); | 131 | it = sorted().begin(); |
131 | end = sorted().end(); | 132 | end = sorted().end(); |
132 | 133 | ||
133 | qWarning("setTodos"); | 134 | qWarning("setTodos"); |
@@ -184,43 +185,46 @@ void TableView::setShowDeadline( bool b) { | |||
184 | qWarning("Show DeadLine %d" + b ); | 185 | qWarning("Show DeadLine %d" + b ); |
185 | if (b) | 186 | if (b) |
186 | showColumn(3 ); | 187 | showColumn(3 ); |
187 | else | 188 | else |
188 | hideColumn(3 ); | 189 | hideColumn(3 ); |
189 | } | 190 | } |
190 | void TableView::setShowCategory( const QString& ) { | 191 | void TableView::setShowCategory( const QString& str) { |
191 | qWarning("setShowCategory"); | 192 | qWarning("setShowCategory"); |
193 | if ( str != m_oleCat || m_first ) | ||
192 | updateView(); | 194 | updateView(); |
195 | |||
196 | m_oleCat = str; | ||
197 | m_first = false; | ||
198 | |||
193 | } | 199 | } |
194 | void TableView::clear() { | 200 | void TableView::clear() { |
195 | setNumRows(0); | 201 | setNumRows(0); |
196 | } | 202 | } |
197 | void TableView::slotClicked(int row, int col, int, | 203 | void TableView::slotClicked(int row, int col, int, |
198 | const QPoint& point) { | 204 | const QPoint& point) { |
199 | if ( !cellGeometry(row, col ).contains(point ) ) | 205 | if ( !cellGeometry(row, col ).contains(point ) ) |
200 | return; | 206 | return; |
201 | int ui=0; // FIXME = uid(row); | 207 | |
208 | int ui= sorted().uidAt( row ); | ||
202 | 209 | ||
203 | 210 | ||
204 | switch( col ) { | 211 | switch( col ) { |
205 | case 0: { | 212 | case 0: { |
206 | // FIXME | ||
207 | CheckItem* item = 0l; | ||
208 | /* | ||
209 | * let's see if we centered clicked | ||
210 | */ | ||
211 | if ( item ) { | ||
212 | int x = point.x() -columnPos( col ); | 213 | int x = point.x() -columnPos( col ); |
213 | int y = point.y() -rowPos( row ); | 214 | int y = point.y() -rowPos( row ); |
214 | int w = columnWidth( col ); | 215 | int w = columnWidth( col ); |
215 | int h = rowHeight( row ); | 216 | int h = rowHeight( row ); |
216 | if ( x >= ( w - OCheckItem::BoxSize ) / 2 && | 217 | if ( x >= ( w - BoxSize ) / 2 && |
217 | x <= ( w - OCheckItem::BoxSize ) / 2 + OCheckItem::BoxSize && | 218 | x <= ( w - BoxSize ) / 2 + BoxSize && |
218 | y >= ( h - OCheckItem::BoxSize ) / 2 && | 219 | y >= ( h - BoxSize ) / 2 && |
219 | y <= ( h - OCheckItem::BoxSize ) / 2 + OCheckItem::BoxSize ) | 220 | y <= ( h - BoxSize ) / 2 + BoxSize ) { |
220 | item->toggle(); | 221 | OTodo todo = sorted()[row]; |
222 | todo.setCompleted( !todo.isCompleted() ); | ||
223 | TodoView::update( todo.uid(), todo ); | ||
224 | updateView(); | ||
221 | } | 225 | } |
222 | } | 226 | } |
223 | break; | 227 | break; |
224 | 228 | ||
225 | case 1: | 229 | case 1: |
226 | break; | 230 | break; |
@@ -259,15 +263,17 @@ QWidget* TableView::widget() { | |||
259 | * We need to overwrite sortColumn | 263 | * We need to overwrite sortColumn |
260 | * because we want to sort whole row | 264 | * because we want to sort whole row |
261 | * based | 265 | * based |
262 | * We event want to set the setOrder | 266 | * We event want to set the setOrder |
263 | * to a sort() and update() | 267 | * to a sort() and update() |
264 | */ | 268 | */ |
265 | void TableView::sortColumn( int row, bool asc, bool ) { | 269 | void TableView::sortColumn( int col, bool asc, bool ) { |
266 | QTable::sortColumn( row, asc, TRUE ); | 270 | qWarning("bool %d", asc ); |
267 | 271 | setSortOrder( col ); | |
272 | setAscending( asc ); | ||
273 | updateView(); | ||
268 | } | 274 | } |
269 | void TableView::viewportPaintEvent( QPaintEvent* e) { | 275 | void TableView::viewportPaintEvent( QPaintEvent* e) { |
270 | qWarning("Paint event" ); | 276 | qWarning("Paint event" ); |
271 | if (m_enablePaint ) | 277 | if (m_enablePaint ) |
272 | QTable::viewportPaintEvent( e ); | 278 | QTable::viewportPaintEvent( e ); |
273 | } | 279 | } |
@@ -354,6 +360,41 @@ void TableView::paintCell(QPainter* p, int row, int col, const QRect& cr, bool | |||
354 | p->drawText(2,2 + fm.ascent(), text); | 360 | p->drawText(2,2 + fm.ascent(), text); |
355 | } | 361 | } |
356 | break; | 362 | break; |
357 | } | 363 | } |
358 | p->restore(); | 364 | p->restore(); |
359 | } | 365 | } |
366 | QWidget* TableView::createEditor(int row, int col, bool )const { | ||
367 | switch( col ) { | ||
368 | case 1: { | ||
369 | /* the priority stuff */ | ||
370 | QComboBox* combo = new QComboBox( viewport() ); | ||
371 | combo->insertItem( "1" ); | ||
372 | combo->insertItem( "2" ); | ||
373 | combo->insertItem( "3" ); | ||
374 | combo->insertItem( "4" ); | ||
375 | combo->insertItem( "5" ); | ||
376 | combo->setCurrentItem( sorted()[row].priority()-1 ); | ||
377 | return combo; | ||
378 | } | ||
379 | case 0: | ||
380 | default: | ||
381 | return 0l; | ||
382 | } | ||
383 | } | ||
384 | void TableView::setCellContentFromEditor(int row, int col ) { | ||
385 | if ( col == 1 ) { | ||
386 | QWidget* wid = cellWidget(row, 1 ); | ||
387 | if ( wid->inherits("QComboBox") ) { | ||
388 | int pri = ((QComboBox*)wid)->currentItem() + 1; | ||
389 | OTodo todo = sorted()[row]; | ||
390 | if ( todo.priority() != pri ) { | ||
391 | todo.setPriority( pri ); | ||
392 | TodoView::update( todo.uid(), todo ); | ||
393 | updateView(); | ||
394 | } | ||
395 | } | ||
396 | } | ||
397 | } | ||
398 | void TableView::slotPriority() { | ||
399 | setCellContentFromEditor( currentRow(), currentColumn() ); | ||
400 | } | ||
diff --git a/core/pim/todo/tableview.h b/core/pim/todo/tableview.h index b608204..bf41aea 100644 --- a/core/pim/todo/tableview.h +++ b/core/pim/todo/tableview.h | |||
@@ -75,19 +75,26 @@ namespace Todo { | |||
75 | void paintCell(QPainter* p, int row, int col, const QRect&, bool ); | 75 | void paintCell(QPainter* p, int row, int col, const QRect&, bool ); |
76 | private: | 76 | private: |
77 | /* reimplented for internal reasons */ | 77 | /* reimplented for internal reasons */ |
78 | void viewportPaintEvent( QPaintEvent* ); | 78 | void viewportPaintEvent( QPaintEvent* ); |
79 | QTimer *m_menuTimer; | 79 | QTimer *m_menuTimer; |
80 | bool m_enablePaint:1; | 80 | bool m_enablePaint:1; |
81 | QString m_oleCat; | ||
82 | bool m_first : 1; | ||
83 | |||
84 | protected: | ||
85 | QWidget* createEditor(int row, int col, bool initFromCell )const; | ||
86 | void setCellContentFromEditor( int row, int col ); | ||
81 | 87 | ||
82 | private slots: | 88 | private slots: |
83 | void slotShowMenu(); | 89 | void slotShowMenu(); |
84 | void slotClicked(int, int, int, | 90 | void slotClicked(int, int, int, |
85 | const QPoint& ); | 91 | const QPoint& ); |
86 | void slotPressed(int, int, int, | 92 | void slotPressed(int, int, int, |
87 | const QPoint& ); | 93 | const QPoint& ); |
88 | void slotValueChanged(int, int); | 94 | void slotValueChanged(int, int); |
89 | void slotCurrentChanged(int, int ); | 95 | void slotCurrentChanged(int, int ); |
96 | void slotPriority(); | ||
90 | }; | 97 | }; |
91 | }; | 98 | }; |
92 | 99 | ||
93 | #endif | 100 | #endif |
diff --git a/core/pim/todo/todomanager.cpp b/core/pim/todo/todomanager.cpp index ebf9e8a..1f81539 100644 --- a/core/pim/todo/todomanager.cpp +++ b/core/pim/todo/todomanager.cpp | |||
@@ -44,12 +44,13 @@ TodoManager::~TodoManager() { | |||
44 | delete m_db; | 44 | delete m_db; |
45 | } | 45 | } |
46 | OTodo TodoManager::event(int uid ) { | 46 | OTodo TodoManager::event(int uid ) { |
47 | return m_db->find( uid ); | 47 | return m_db->find( uid ); |
48 | } | 48 | } |
49 | void TodoManager::updateList() { | 49 | void TodoManager::updateList() { |
50 | qWarning("update list"); | ||
50 | m_list = m_db->allRecords(); | 51 | m_list = m_db->allRecords(); |
51 | } | 52 | } |
52 | OTodoAccess::List TodoManager::list() const{ | 53 | OTodoAccess::List TodoManager::list() const{ |
53 | return m_list; | 54 | return m_list; |
54 | } | 55 | } |
55 | OTodoAccess::List TodoManager::sorted( bool asc, int so, int f, int cat ) { | 56 | OTodoAccess::List TodoManager::sorted( bool asc, int so, int f, int cat ) { |
@@ -115,10 +116,11 @@ void TodoManager::remove( const QArray<int>& ids) { | |||
115 | } | 116 | } |
116 | bool TodoManager::isLoaded()const { | 117 | bool TodoManager::isLoaded()const { |
117 | return (m_db == 0 ); | 118 | return (m_db == 0 ); |
118 | } | 119 | } |
119 | void TodoManager::load() { | 120 | void TodoManager::load() { |
120 | if (!m_db) { | 121 | if (!m_db) { |
122 | qWarning("loading!"); | ||
121 | m_db = new OTodoAccess(); | 123 | m_db = new OTodoAccess(); |
122 | m_db->load(); | 124 | m_db->load(); |
123 | } | 125 | } |
124 | } | 126 | } |
diff --git a/core/pim/todo/todoview.cpp b/core/pim/todo/todoview.cpp index 06eaaa9..639fa66 100644 --- a/core/pim/todo/todoview.cpp +++ b/core/pim/todo/todoview.cpp | |||
@@ -51,13 +51,13 @@ MainWindow* TodoView::todoWindow() { | |||
51 | 51 | ||
52 | OTodo TodoView::event(int uid ) { return m_main->event( uid ); } | 52 | OTodo TodoView::event(int uid ) { return m_main->event( uid ); } |
53 | OTodoAccess::List TodoView::list(){ | 53 | OTodoAccess::List TodoView::list(){ |
54 | todoWindow()->updateList(); | 54 | todoWindow()->updateList(); |
55 | return todoWindow()->list(); | 55 | return todoWindow()->list(); |
56 | } | 56 | } |
57 | OTodoAccess::List TodoView::sorted(){ | 57 | OTodoAccess::List TodoView::sorted()const{ |
58 | return m_sort; | 58 | return m_sort; |
59 | } | 59 | } |
60 | void TodoView::sort() { | 60 | void TodoView::sort() { |
61 | m_sort = todoWindow()->sorted(m_asc,m_sortOrder ); | 61 | m_sort = todoWindow()->sorted(m_asc,m_sortOrder ); |
62 | qWarning("m_sort.count() = %d", m_sort.count() ); | 62 | qWarning("m_sort.count() = %d", m_sort.count() ); |
63 | } | 63 | } |
@@ -65,12 +65,13 @@ void TodoView::sort(int sort) { | |||
65 | m_sort = todoWindow()->sorted(m_asc, m_sortOrder, sort ); | 65 | m_sort = todoWindow()->sorted(m_asc, m_sortOrder, sort ); |
66 | } | 66 | } |
67 | void TodoView::setSortOrder( int order ) { | 67 | void TodoView::setSortOrder( int order ) { |
68 | m_sortOrder = order; | 68 | m_sortOrder = order; |
69 | } | 69 | } |
70 | void TodoView::setAscending( bool b ) { | 70 | void TodoView::setAscending( bool b ) { |
71 | qWarning("setAscending %d", b ); | ||
71 | m_asc = b; | 72 | m_asc = b; |
72 | } | 73 | } |
73 | void TodoView::update(int uid, const SmallTodo& to ) { | 74 | void TodoView::update(int uid, const SmallTodo& to ) { |
74 | //m_main->slotUpate1( uid, to ); | 75 | //m_main->slotUpate1( uid, to ); |
75 | } | 76 | } |
76 | void TodoView::update(int uid, const OTodo& ev ) { | 77 | void TodoView::update(int uid, const OTodo& ev ) { |
diff --git a/core/pim/todo/todoview.h b/core/pim/todo/todoview.h index 9408ef1..e5c77f9 100644 --- a/core/pim/todo/todoview.h +++ b/core/pim/todo/todoview.h | |||
@@ -154,13 +154,13 @@ namespace Todo { | |||
154 | void connectRemove( QObject* obj, | 154 | void connectRemove( QObject* obj, |
155 | const char* slot ); | 155 | const char* slot ); |
156 | protected: | 156 | protected: |
157 | MainWindow* todoWindow(); | 157 | MainWindow* todoWindow(); |
158 | OTodo event(int uid ); | 158 | OTodo event(int uid ); |
159 | OTodoAccess::List list(); | 159 | OTodoAccess::List list(); |
160 | OTodoAccess::List sorted(); | 160 | OTodoAccess::List sorted()const; |
161 | void sort(); | 161 | void sort(); |
162 | void sort(int sort ); | 162 | void sort(int sort ); |
163 | void setSortOrder( int order ); | 163 | void setSortOrder( int order ); |
164 | void setAscending( bool ); | 164 | void setAscending( bool ); |
165 | 165 | ||
166 | /* | 166 | /* |