summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/todo/mainwindow.cpp32
-rw-r--r--core/pim/todo/mainwindow.h6
-rw-r--r--core/pim/todo/tableview.cpp16
-rw-r--r--core/pim/todo/tableview.h3
-rw-r--r--core/pim/todo/todomanager.cpp11
-rw-r--r--core/pim/todo/todomanager.h5
-rw-r--r--core/pim/todo/todoview.cpp25
-rw-r--r--core/pim/todo/todoview.h18
8 files changed, 78 insertions, 38 deletions
diff --git a/core/pim/todo/mainwindow.cpp b/core/pim/todo/mainwindow.cpp
index a8f4c9c..47c0160 100644
--- a/core/pim/todo/mainwindow.cpp
+++ b/core/pim/todo/mainwindow.cpp
@@ -222,14 +222,12 @@ void MainWindow::initUI() {
222void MainWindow::initViews() { 222void MainWindow::initViews() {
223 TableView* tableView = new TableView( this, this ); 223 TableView* tableView = new TableView( this, this );
224 m_stack->addWidget( tableView, m_counter++ ); 224 m_stack->addWidget( tableView, m_counter++ );
225 m_views.append( tableView ); 225 m_views.append( tableView );
226 m_curView = tableView; 226 m_curView = tableView;
227 connectBase( tableView ); 227 connectBase( tableView );
228// tableView->setTodos( begin(), end() ); we call populateCategories
229
230 /* add QString type + QString configname to 228 /* add QString type + QString configname to
231 * the View menu 229 * the View menu
232 * and subdirs for multiple views 230 * and subdirs for multiple views
233 */ 231 */
234} 232}
235void MainWindow::initEditor() { 233void MainWindow::initEditor() {
@@ -273,17 +271,35 @@ QPopupMenu* MainWindow::edit() {
273QPopupMenu* MainWindow::view() { 271QPopupMenu* MainWindow::view() {
274 return m_view; 272 return m_view;
275} 273}
276QToolBar* MainWindow::toolbar() { 274QToolBar* MainWindow::toolbar() {
277 return m_tool; 275 return m_tool;
278} 276}
279OTodoAccess::List::Iterator MainWindow::begin() { 277OTodoAccess::List MainWindow::list()const {
280 return m_todoMgr.begin(); 278 return m_todoMgr.list();
279}
280OTodoAccess::List MainWindow::sorted( bool asc, int sortOrder ) {
281 int cat = 0;
282 if ( m_curCat == tr("All Categories") )
283 cat = currentCatId();
284
285 int filter = 1;
286
287 if (!m_completed )
288 filter |= 4;
289 if (m_overdue)
290 filter |= 2;
291
292 return m_todoMgr.sorted( asc, sortOrder, filter, cat );
281} 293}
282OTodoAccess::List::Iterator MainWindow::end() { 294OTodoAccess::List MainWindow::sorted( bool asc, int sortOrder, int addFilter) {
283 return m_todoMgr.end(); 295 int cat = 0;
296 if ( m_curCat == tr("All Categories") )
297 cat = currentCatId();
298
299 return m_todoMgr.sorted(asc, sortOrder, addFilter, cat );
284} 300}
285OTodo MainWindow::event( int uid ) { 301OTodo MainWindow::event( int uid ) {
286 return m_todoMgr.event( uid ); 302 return m_todoMgr.event( uid );
287} 303}
288bool MainWindow::isSyncing()const { 304bool MainWindow::isSyncing()const {
289 return m_syncing; 305 return m_syncing;
@@ -296,13 +312,13 @@ Editor* MainWindow::currentEditor() {
296} 312}
297TodoShow* MainWindow::currentShow() { 313TodoShow* MainWindow::currentShow() {
298 return m_curShow; 314 return m_curShow;
299} 315}
300void MainWindow::slotReload() { 316void MainWindow::slotReload() {
301 m_todoMgr.reload(); 317 m_todoMgr.reload();
302 currentView()->setTodos( begin(), end() ); 318 currentView()->updateView( );
303 raiseCurrentView(); 319 raiseCurrentView();
304} 320}
305void MainWindow::closeEvent( QCloseEvent* e ) { 321void MainWindow::closeEvent( QCloseEvent* e ) {
306 if (m_stack->visibleWidget() == currentShow()->widget() ) { 322 if (m_stack->visibleWidget() == currentShow()->widget() ) {
307 raiseCurrentView(); 323 raiseCurrentView();
308 e->ignore(); 324 e->ignore();
@@ -463,13 +479,13 @@ void MainWindow::slotDeleteCompleted() {
463 } 479 }
464 480
465 if ( !QPEMessageBox::confirmDelete( this, tr( "Todo" ), tr("all completed tasks?") ) ) 481 if ( !QPEMessageBox::confirmDelete( this, tr( "Todo" ), tr("all completed tasks?") ) )
466 return; 482 return;
467 483
468 m_todoMgr.remove( currentView()->completed() ); 484 m_todoMgr.remove( currentView()->completed() );
469 currentView()->setTodos( begin(), end() ); 485 currentView()->updateView( );
470} 486}
471void MainWindow::slotFind() { 487void MainWindow::slotFind() {
472 488
473} 489}
474void MainWindow::slotEdit() { 490void MainWindow::slotEdit() {
475 slotEdit( currentView()->current() ); 491 slotEdit( currentView()->current() );
diff --git a/core/pim/todo/mainwindow.h b/core/pim/todo/mainwindow.h
index 43666f0..598c3af 100644
--- a/core/pim/todo/mainwindow.h
+++ b/core/pim/todo/mainwindow.h
@@ -67,15 +67,15 @@ namespace Todo {
67 QPopupMenu* edit(); 67 QPopupMenu* edit();
68 QPopupMenu* view(); 68 QPopupMenu* view();
69 QToolBar* toolbar(); 69 QToolBar* toolbar();
70 70
71 71
72 void updateList(); 72 void updateList();
73 OTodoAccess::List::Iterator begin(); 73 OTodoAccess::List list()const;
74 OTodoAccess::List::Iterator end(); 74 OTodoAccess::List sorted( bool asc, int sortOrder );
75// OTodoAccess::List::Iterator &iterator(); 75 OTodoAccess::List sorted( bool asc, int sortOrder, int addFilter );
76 76
77 OTodo event(int uid ); 77 OTodo event(int uid );
78 78
79 bool isSyncing()const; 79 bool isSyncing()const;
80 bool showCompleted()const; 80 bool showCompleted()const;
81 bool showDeadline()const; 81 bool showDeadline()const;
diff --git a/core/pim/todo/tableview.cpp b/core/pim/todo/tableview.cpp
index 8cd2e7e..097af39 100644
--- a/core/pim/todo/tableview.cpp
+++ b/core/pim/todo/tableview.cpp
@@ -87,13 +87,13 @@ TableView::TableView( MainWindow* window, QWidget* wid )
87} 87}
88/* a new day has started 88/* a new day has started
89 * update the day 89 * update the day
90 */ 90 */
91void TableView::newDay() { 91void TableView::newDay() {
92 clear(); 92 clear();
93 setTodos( begin(),end() ); 93 updateView();
94} 94}
95TableView::~TableView() { 95TableView::~TableView() {
96 96
97} 97}
98void TableView::slotShowMenu() { 98void TableView::slotShowMenu() {
99 QPopupMenu *menu = todoWindow()->contextMenu( current() ); 99 QPopupMenu *menu = todoWindow()->contextMenu( current() );
@@ -135,17 +135,19 @@ int TableView::current() {
135QString TableView::currentRepresentation() { 135QString TableView::currentRepresentation() {
136 return text( currentRow(), 2); 136 return text( currentRow(), 2);
137} 137}
138/* show overdue */ 138/* show overdue */
139void TableView::showOverDue( bool ) { 139void TableView::showOverDue( bool ) {
140 clear(); 140 clear();
141 setTodos( begin(), end() ); 141 updateView();
142} 142}
143 143
144void TableView::setTodos( OTodoAccess::List::Iterator it, 144void TableView::updateView( ) {
145 OTodoAccess::List::Iterator end ) { 145 OTodoAccess::List::Iterator it, end;
146 it = list().begin();
147 end = list().end();
146 qWarning("setTodos"); 148 qWarning("setTodos");
147 QTime time; 149 QTime time;
148 time.start(); 150 time.start();
149 m_enablePaint = false; 151 m_enablePaint = false;
150 setUpdatesEnabled( false ); 152 setUpdatesEnabled( false );
151 viewport()->setUpdatesEnabled( false ); 153 viewport()->setUpdatesEnabled( false );
@@ -230,28 +232,28 @@ void TableView::replaceEvent( const OTodo& ev) {
230 * re aligning table can be slow too 232 * re aligning table can be slow too
231 * FIXME: look what performs better 233 * FIXME: look what performs better
232 * either this or the old align table 234 * either this or the old align table
233 */ 235 */
234void TableView::removeEvent( int ) { 236void TableView::removeEvent( int ) {
235 clear(); 237 clear();
236 setTodos( begin(), end() ); 238 updateView();
237} 239}
238void TableView::setShowCompleted( bool b) { 240void TableView::setShowCompleted( bool b) {
239 qWarning("Show Completed %d" + b ); 241 qWarning("Show Completed %d" + b );
240 setTodos( begin(), end() ); 242 updateView();
241} 243}
242void TableView::setShowDeadline( bool b) { 244void TableView::setShowDeadline( bool b) {
243 qWarning("Show DeadLine %d" + b ); 245 qWarning("Show DeadLine %d" + b );
244 if (b) 246 if (b)
245 showColumn(3 ); 247 showColumn(3 );
246 else 248 else
247 hideColumn(3 ); 249 hideColumn(3 );
248} 250}
249void TableView::setShowCategory( const QString& ) { 251void TableView::setShowCategory( const QString& ) {
250 qWarning("setShowCategory"); 252 qWarning("setShowCategory");
251 setTodos( begin(), end() ); 253 updateView();
252} 254}
253void TableView::clear() { 255void TableView::clear() {
254 m_cache.clear(); 256 m_cache.clear();
255 int rows = numRows(); 257 int rows = numRows();
256 for (int r = 0; r < rows; r++ ) { 258 for (int r = 0; r < rows; r++ ) {
257 for (int c = 0; c < numCols(); c++ ) { 259 for (int c = 0; c < numCols(); c++ ) {
diff --git a/core/pim/todo/tableview.h b/core/pim/todo/tableview.h
index 721b40b..1fa21b2 100644
--- a/core/pim/todo/tableview.h
+++ b/core/pim/todo/tableview.h
@@ -51,14 +51,13 @@ namespace Todo {
51 51
52 QString type()const; 52 QString type()const;
53 int current(); 53 int current();
54 QString currentRepresentation(); 54 QString currentRepresentation();
55 55
56 void showOverDue( bool ); 56 void showOverDue( bool );
57 void setTodos( OTodoAccess::List::Iterator it, 57 void updateView();
58 OTodoAccess::List::Iterator end );
59 void setTodo( int uid, const OTodo& ); 58 void setTodo( int uid, const OTodo& );
60 void addEvent( const OTodo& event ); 59 void addEvent( const OTodo& event );
61 void replaceEvent( const OTodo& ); 60 void replaceEvent( const OTodo& );
62 void removeEvent( int uid ); 61 void removeEvent( int uid );
63 void setShowCompleted( bool ); 62 void setShowCompleted( bool );
64 void setShowDeadline( bool ); 63 void setShowDeadline( bool );
diff --git a/core/pim/todo/todomanager.cpp b/core/pim/todo/todomanager.cpp
index 8e3fa88..ebf9e8a 100644
--- a/core/pim/todo/todomanager.cpp
+++ b/core/pim/todo/todomanager.cpp
@@ -46,21 +46,20 @@ TodoManager::~TodoManager() {
46OTodo TodoManager::event(int uid ) { 46OTodo TodoManager::event(int uid ) {
47 return m_db->find( uid ); 47 return m_db->find( uid );
48} 48}
49void TodoManager::updateList() { 49void TodoManager::updateList() {
50 m_list = m_db->allRecords(); 50 m_list = m_db->allRecords();
51} 51}
52OTodoAccess::List::Iterator TodoManager::begin() { 52OTodoAccess::List TodoManager::list() const{
53 m_it = m_list.begin(); 53 return m_list;
54 return m_it;
55} 54}
56OTodoAccess::List::Iterator TodoManager::end() { 55OTodoAccess::List TodoManager::sorted( bool asc, int so, int f, int cat ) {
57 return m_list.end(); 56 return m_db->sorted( asc, so, f, cat );
58} 57}
59OTodoAccess::List::Iterator TodoManager::overDue() { 58OTodoAccess::List::Iterator TodoManager::overDue() {
60 int filter = 2 & 1; 59 int filter = 2 | 1;
61 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 );
62 m_it = m_list.begin(); 61 m_it = m_list.begin();
63 return m_it; 62 return m_it;
64} 63}
65OTodoAccess::List::Iterator TodoManager::fromTo( const QDate& start, 64OTodoAccess::List::Iterator TodoManager::fromTo( const QDate& start,
66 const QDate& end ) { 65 const QDate& end ) {
diff --git a/core/pim/todo/todomanager.h b/core/pim/todo/todomanager.h
index 1f9e288..b03b598 100644
--- a/core/pim/todo/todomanager.h
+++ b/core/pim/todo/todomanager.h
@@ -53,15 +53,14 @@ namespace Todo {
53 QStringList categories()/*const*/; 53 QStringList categories()/*const*/;
54 int catId(const QString&); 54 int catId(const QString&);
55 OTodo event(int uid ); 55 OTodo event(int uid );
56 56
57 void updateList(); 57 void updateList();
58 /** returns the iterator sorted if set sorted*/ 58 /** returns the iterator sorted if set sorted*/
59 OTodoAccess::List::Iterator begin(); 59 OTodoAccess::List list()const;
60 OTodoAccess::List::Iterator end(); 60 OTodoAccess::List sorted( bool asc, int so, int f, int cat );
61 OTodoAccess::List& list();
62 61
63 OTodoAccess::List::Iterator overDue(); 62 OTodoAccess::List::Iterator overDue();
64 OTodoAccess::List::Iterator fromTo( const QDate& start, 63 OTodoAccess::List::Iterator fromTo( const QDate& start,
65 const QDate& end ); 64 const QDate& end );
66 OTodoAccess::List::Iterator query( const OTodo& ev, int query ); 65 OTodoAccess::List::Iterator query( const OTodo& ev, int query );
67 66
diff --git a/core/pim/todo/todoview.cpp b/core/pim/todo/todoview.cpp
index 5362b23..b77baed 100644
--- a/core/pim/todo/todoview.cpp
+++ b/core/pim/todo/todoview.cpp
@@ -5,12 +5,14 @@
5using namespace Todo; 5using namespace Todo;
6 6
7TodoView::TodoView( MainWindow* win ) 7TodoView::TodoView( MainWindow* win )
8 : m_main( win ) 8 : m_main( win )
9{ 9{
10 hack = new InternQtHack; 10 hack = new InternQtHack;
11 m_asc = false;
12 m_sortOrder = -1;
11} 13}
12TodoView::~TodoView() { 14TodoView::~TodoView() {
13 delete hack; 15 delete hack;
14}; 16};
15 17
16void TodoView::connectShow(QObject* obj, 18void TodoView::connectShow(QObject* obj,
@@ -45,18 +47,31 @@ void TodoView::connectRemove( QObject* obj,
45} 47}
46MainWindow* TodoView::todoWindow() { 48MainWindow* TodoView::todoWindow() {
47 return m_main; 49 return m_main;
48} 50}
49 51
50OTodo TodoView::event(int uid ) { return m_main->event( uid ); } 52OTodo TodoView::event(int uid ) { return m_main->event( uid ); }
51OTodoAccess::List::Iterator TodoView::begin() { 53OTodoAccess::List TodoView::list(){
52 m_main->updateList(); 54 todoWindow()->updateList();
53 return m_main->begin(); 55 return todoWindow()->list();
56}
57OTodoAccess::List TodoView::sorted(){
58 return m_sort;
59}
60void TodoView::sort() {
61 m_sort = todoWindow()->sorted(m_asc,m_sortOrder );
62}
63void TodoView::sort(int sort) {
64 m_sort = todoWindow()->sorted(m_asc, m_sortOrder, sort );
65}
66void TodoView::setSortOrder( int order ) {
67 m_sortOrder = order;
68}
69void TodoView::setAscending( bool b ) {
70 m_asc = b;
54} 71}
55OTodoAccess::List::Iterator TodoView::end() { return m_main->end(); }
56
57void TodoView::update(int uid, const SmallTodo& to ) { 72void TodoView::update(int uid, const SmallTodo& to ) {
58 //m_main->slotUpate1( uid, to ); 73 //m_main->slotUpate1( uid, to );
59} 74}
60void TodoView::update(int uid, const OTodo& ev ) { 75void TodoView::update(int uid, const OTodo& ev ) {
61 m_main->updateTodo( ev ); 76 m_main->updateTodo( ev );
62} 77}
diff --git a/core/pim/todo/todoview.h b/core/pim/todo/todoview.h
index e4985a7..81ace3a 100644
--- a/core/pim/todo/todoview.h
+++ b/core/pim/todo/todoview.h
@@ -86,14 +86,17 @@ namespace Todo {
86 public: 86 public:
87 virtual QWidget* widget() = 0; 87 virtual QWidget* widget() = 0;
88 virtual QString type()const = 0; 88 virtual QString type()const = 0;
89 virtual int current() = 0; 89 virtual int current() = 0;
90 virtual QString currentRepresentation() = 0; 90 virtual QString currentRepresentation() = 0;
91 virtual void showOverDue( bool ) = 0; 91 virtual void showOverDue( bool ) = 0;
92 virtual void setTodos( OTodoAccess::List::Iterator it, 92
93 OTodoAccess::List::Iterator end ) = 0; 93 /*
94 * update the view
95 */
96 virtual void updateView() = 0;
94 97
95 virtual void addEvent( const OTodo& ) = 0; 98 virtual void addEvent( const OTodo& ) = 0;
96 virtual void replaceEvent( const OTodo& ) = 0; 99 virtual void replaceEvent( const OTodo& ) = 0;
97 virtual void removeEvent( int uid ) = 0; 100 virtual void removeEvent( int uid ) = 0;
98 virtual void setShowCompleted( bool ) = 0; 101 virtual void setShowCompleted( bool ) = 0;
99 virtual void setShowDeadline( bool ) = 0; 102 virtual void setShowDeadline( bool ) = 0;
@@ -150,14 +153,18 @@ namespace Todo {
150 const char* slot ); 153 const char* slot );
151 void connectRemove( QObject* obj, 154 void connectRemove( QObject* obj,
152 const char* slot ); 155 const char* slot );
153 protected: 156 protected:
154 MainWindow* todoWindow(); 157 MainWindow* todoWindow();
155 OTodo event(int uid ); 158 OTodo event(int uid );
156 OTodoAccess::List::Iterator begin(); 159 OTodoAccess::List list();
157 OTodoAccess::List::Iterator end(); 160 OTodoAccess::List sorted();
161 void sort();
162 void sort(int sort );
163 void setSortOrder( int order );
164 void setAscending( bool );
158 165
159 /* 166 /*
160 These things needs to be implemented 167 These things needs to be implemented
161 in a implementation 168 in a implementation
162 signals: 169 signals:
163 */ 170 */
@@ -169,10 +176,13 @@ namespace Todo {
169 void remove( int uid ) { 176 void remove( int uid ) {
170 hack->emitRemove( uid ); 177 hack->emitRemove( uid );
171 } 178 }
172 private: 179 private:
173 InternQtHack* hack; 180 InternQtHack* hack;
174 MainWindow *m_main; 181 MainWindow *m_main;
182 OTodoAccess::List m_sort;
183 bool m_asc : 1;
184 int m_sortOrder;
175 }; 185 };
176}; 186};
177 187
178#endif 188#endif