Diffstat (limited to 'core/pim/osearch/todosearch.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | core/pim/osearch/todosearch.cpp | 37 |
1 files changed, 31 insertions, 6 deletions
diff --git a/core/pim/osearch/todosearch.cpp b/core/pim/osearch/todosearch.cpp index c9fa61a..08bbe93 100644 --- a/core/pim/osearch/todosearch.cpp +++ b/core/pim/osearch/todosearch.cpp @@ -16,4 +16,7 @@ #include <opie/otodo.h> -#include <qiconset.h> #include <qpe/resource.h> +#include <qpe/config.h> +#include <qiconset.h> +#include <qaction.h> +#include <qpopupmenu.h> #include "todoitem.h" @@ -21,5 +24,4 @@ TodoSearch::TodoSearch(QListView* parent, QString name) -: SearchGroup(parent, name) +: SearchGroup(parent, name), _todos(0), _popupMenu(0) { - _todos = 0; // AppLnkSet als(QPEApplication::qpeDir()); @@ -28,2 +30,7 @@ TodoSearch::TodoSearch(QListView* parent, QString name) setPixmap( 0, is.pixmap( QIconSet::Small, true ) ); + actionShowCompleted = new QAction( QObject::tr("show completed tasks"),QString::null, 0, 0, 0, true ); + Config cfg( "osearch", Config::User ); + cfg.setGroup( "todo_settings" ); + actionShowCompleted->setOn( cfg.readBoolEntry( "show_completed_tasks", false ) ); + } @@ -33,2 +40,7 @@ TodoSearch::~TodoSearch() { + Config cfg( "osearch", Config::User ); + cfg.setGroup( "todo_settings" ); + cfg.writeEntry( "show_completed_tasks", actionShowCompleted->isOn() ); + delete _popupMenu; + delete actionShowCompleted; delete _todos; @@ -47,9 +59,22 @@ int TodoSearch::search() for (uint i = 0; i < results.count(); i++) - new TodoItem( this, new OTodo( results[i] )); - return results.count(); + insertItem( new OTodo( results[i] )); + return _resultCount; } -void TodoSearch::insertItem( void* ) +void TodoSearch::insertItem( void *rec ) { + OTodo *todo = (OTodo*)rec; + if (!actionShowCompleted->isOn() && + todo->isCompleted() ) return; + new TodoItem( this, todo ); + _resultCount++; +} +QPopupMenu* TodoSearch::popupMenu() +{ + if (!_popupMenu){ + _popupMenu = new QPopupMenu( 0 ); + actionShowCompleted->addTo( _popupMenu ); + } + return _popupMenu; } |