-rw-r--r-- | core/pim/todo/mainwindow.cpp | 32 | ||||
-rw-r--r-- | core/pim/todo/mainwindow.h | 6 | ||||
-rw-r--r-- | core/pim/todo/tableview.cpp | 16 | ||||
-rw-r--r-- | core/pim/todo/tableview.h | 3 | ||||
-rw-r--r-- | core/pim/todo/todomanager.cpp | 11 | ||||
-rw-r--r-- | core/pim/todo/todomanager.h | 5 | ||||
-rw-r--r-- | core/pim/todo/todoview.cpp | 25 | ||||
-rw-r--r-- | core/pim/todo/todoview.h | 18 |
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 @@ -226,6 +226,4 @@ void MainWindow::initViews() { m_curView = tableView; connectBase( tableView ); -// tableView->setTodos( begin(), end() ); we call populateCategories - /* add QString type + QString configname to * the View menu @@ -277,9 +275,27 @@ QToolBar* MainWindow::toolbar() { return m_tool; } -OTodoAccess::List::Iterator MainWindow::begin() { - return m_todoMgr.begin(); +OTodoAccess::List MainWindow::list()const { + return m_todoMgr.list(); +} +OTodoAccess::List MainWindow::sorted( bool asc, int sortOrder ) { + int cat = 0; + if ( m_curCat == tr("All Categories") ) + cat = currentCatId(); + + int filter = 1; + + if (!m_completed ) + filter |= 4; + if (m_overdue) + filter |= 2; + + return m_todoMgr.sorted( asc, sortOrder, filter, cat ); } -OTodoAccess::List::Iterator MainWindow::end() { - return m_todoMgr.end(); +OTodoAccess::List MainWindow::sorted( bool asc, int sortOrder, int addFilter) { + int cat = 0; + if ( m_curCat == tr("All Categories") ) + cat = currentCatId(); + + return m_todoMgr.sorted(asc, sortOrder, addFilter, cat ); } OTodo MainWindow::event( int uid ) { @@ -300,5 +316,5 @@ TodoShow* MainWindow::currentShow() { void MainWindow::slotReload() { m_todoMgr.reload(); - currentView()->setTodos( begin(), end() ); + currentView()->updateView( ); raiseCurrentView(); } @@ -467,5 +483,5 @@ void MainWindow::slotDeleteCompleted() { m_todoMgr.remove( currentView()->completed() ); - currentView()->setTodos( begin(), end() ); + currentView()->updateView( ); } void MainWindow::slotFind() { 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 @@ -71,7 +71,7 @@ namespace Todo { void updateList(); - OTodoAccess::List::Iterator begin(); - OTodoAccess::List::Iterator end(); -// OTodoAccess::List::Iterator &iterator(); + OTodoAccess::List list()const; + OTodoAccess::List sorted( bool asc, int sortOrder ); + OTodoAccess::List sorted( bool asc, int sortOrder, int addFilter ); OTodo event(int uid ); 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 @@ -91,5 +91,5 @@ TableView::TableView( MainWindow* window, QWidget* wid ) void TableView::newDay() { clear(); - setTodos( begin(),end() ); + updateView(); } TableView::~TableView() { @@ -139,9 +139,11 @@ QString TableView::currentRepresentation() { void TableView::showOverDue( bool ) { clear(); - setTodos( begin(), end() ); + updateView(); } -void TableView::setTodos( OTodoAccess::List::Iterator it, - OTodoAccess::List::Iterator end ) { +void TableView::updateView( ) { + OTodoAccess::List::Iterator it, end; + it = list().begin(); + end = list().end(); qWarning("setTodos"); QTime time; @@ -234,9 +236,9 @@ void TableView::replaceEvent( const OTodo& ev) { void TableView::removeEvent( int ) { clear(); - setTodos( begin(), end() ); + updateView(); } void TableView::setShowCompleted( bool b) { qWarning("Show Completed %d" + b ); - setTodos( begin(), end() ); + updateView(); } void TableView::setShowDeadline( bool b) { @@ -249,5 +251,5 @@ void TableView::setShowDeadline( bool b) { void TableView::setShowCategory( const QString& ) { qWarning("setShowCategory"); - setTodos( begin(), end() ); + updateView(); } void TableView::clear() { 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 @@ -55,6 +55,5 @@ namespace Todo { void showOverDue( bool ); - void setTodos( OTodoAccess::List::Iterator it, - OTodoAccess::List::Iterator end ); + void updateView(); void setTodo( int uid, const OTodo& ); void addEvent( const OTodo& event ); 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 @@ -50,13 +50,12 @@ void TodoManager::updateList() { m_list = m_db->allRecords(); } -OTodoAccess::List::Iterator TodoManager::begin() { - m_it = m_list.begin(); - return m_it; +OTodoAccess::List TodoManager::list() const{ + return m_list; } -OTodoAccess::List::Iterator TodoManager::end() { - return m_list.end(); +OTodoAccess::List TodoManager::sorted( bool asc, int so, int f, int cat ) { + return m_db->sorted( asc, so, f, cat ); } OTodoAccess::List::Iterator TodoManager::overDue() { - int filter = 2 & 1; + int filter = 2 | 1; m_list = m_db->sorted(m_asc, m_sortOrder, filter, m_ca ); m_it = m_list.begin(); 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 @@ -57,7 +57,6 @@ namespace Todo { void updateList(); /** returns the iterator sorted if set sorted*/ - OTodoAccess::List::Iterator begin(); - OTodoAccess::List::Iterator end(); - OTodoAccess::List& list(); + OTodoAccess::List list()const; + OTodoAccess::List sorted( bool asc, int so, int f, int cat ); OTodoAccess::List::Iterator overDue(); 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 @@ -9,4 +9,6 @@ TodoView::TodoView( MainWindow* win ) { hack = new InternQtHack; + m_asc = false; + m_sortOrder = -1; } TodoView::~TodoView() { @@ -49,10 +51,23 @@ MainWindow* TodoView::todoWindow() { OTodo TodoView::event(int uid ) { return m_main->event( uid ); } -OTodoAccess::List::Iterator TodoView::begin() { - m_main->updateList(); - return m_main->begin(); +OTodoAccess::List TodoView::list(){ + todoWindow()->updateList(); + return todoWindow()->list(); +} +OTodoAccess::List TodoView::sorted(){ + return m_sort; +} +void TodoView::sort() { + m_sort = todoWindow()->sorted(m_asc,m_sortOrder ); +} +void TodoView::sort(int sort) { + m_sort = todoWindow()->sorted(m_asc, m_sortOrder, sort ); +} +void TodoView::setSortOrder( int order ) { + m_sortOrder = order; +} +void TodoView::setAscending( bool b ) { + m_asc = b; } -OTodoAccess::List::Iterator TodoView::end() { return m_main->end(); } - void TodoView::update(int uid, const SmallTodo& to ) { //m_main->slotUpate1( uid, to ); 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 @@ -90,6 +90,9 @@ namespace Todo { virtual QString currentRepresentation() = 0; virtual void showOverDue( bool ) = 0; - virtual void setTodos( OTodoAccess::List::Iterator it, - OTodoAccess::List::Iterator end ) = 0; + + /* + * update the view + */ + virtual void updateView() = 0; virtual void addEvent( const OTodo& ) = 0; @@ -154,6 +157,10 @@ namespace Todo { MainWindow* todoWindow(); OTodo event(int uid ); - OTodoAccess::List::Iterator begin(); - OTodoAccess::List::Iterator end(); + OTodoAccess::List list(); + OTodoAccess::List sorted(); + void sort(); + void sort(int sort ); + void setSortOrder( int order ); + void setAscending( bool ); /* @@ -173,4 +180,7 @@ namespace Todo { InternQtHack* hack; MainWindow *m_main; + OTodoAccess::List m_sort; + bool m_asc : 1; + int m_sortOrder; }; }; |