Diffstat (limited to 'core/pim/today/plugins/todolist') (more/less context) (ignore whitespace changes)
-rw-r--r-- | core/pim/today/plugins/todolist/todoplugin.cpp | 16 | ||||
-rw-r--r-- | core/pim/today/plugins/todolist/todoplugin.h | 8 | ||||
-rw-r--r-- | core/pim/today/plugins/todolist/todopluginwidget.cpp | 34 | ||||
-rw-r--r-- | core/pim/today/plugins/todolist/todopluginwidget.h | 4 |
4 files changed, 46 insertions, 16 deletions
diff --git a/core/pim/today/plugins/todolist/todoplugin.cpp b/core/pim/today/plugins/todolist/todoplugin.cpp index b5abbd3..1238f92 100644 --- a/core/pim/today/plugins/todolist/todoplugin.cpp +++ b/core/pim/today/plugins/todolist/todoplugin.cpp @@ -17,31 +17,35 @@ #include "todoplugin.h" #include "todopluginconfig.h" -#include "todopluginwidget.h" TodolistPlugin::TodolistPlugin() { + m_widget = 0l; } TodolistPlugin::~TodolistPlugin() { + delete m_widget; } QString TodolistPlugin::pluginName() const { return QObject::tr( "Todolist plugin" ); } double TodolistPlugin::versionNumber() const { - return 0.8; + return 0.9; } QString TodolistPlugin::pixmapNameWidget() const { return "TodoList"; } QWidget* TodolistPlugin::widget( QWidget *wid ) { - return new TodolistPluginWidget( wid, "Todolist" ); + if(!m_widget) { + m_widget = new TodolistPluginWidget( wid, "Todolist" ); + } + return m_widget; } QString TodolistPlugin::pixmapNameConfig() const { return "TodoList"; @@ -58,4 +62,10 @@ QString TodolistPlugin::appName() const { bool TodolistPlugin::excludeFromRefresh() const { return false; } + +void TodolistPlugin::refresh() { + if ( m_widget ) { + m_widget->refresh(); + } +} diff --git a/core/pim/today/plugins/todolist/todoplugin.h b/core/pim/today/plugins/todolist/todoplugin.h index f98afdb..6106d0c 100644 --- a/core/pim/today/plugins/todolist/todoplugin.h +++ b/core/pim/today/plugins/todolist/todoplugin.h @@ -23,21 +23,27 @@ #include <opie/tododb.h> #include <opie/oclickablelabel.h> #include <opie/todayplugininterface.h> +#include "todopluginwidget.h" + class TodolistPlugin : public TodayPluginObject { public: TodolistPlugin(); ~TodolistPlugin(); - + QString pluginName() const; double versionNumber() const; QString pixmapNameWidget() const; QWidget* widget(QWidget *); QString pixmapNameConfig() const; TodayConfigWidget* configWidget(QWidget *); QString appName() const; bool excludeFromRefresh() const; + void refresh(); + + private: + TodolistPluginWidget *m_widget; }; #endif diff --git a/core/pim/today/plugins/todolist/todopluginwidget.cpp b/core/pim/today/plugins/todolist/todopluginwidget.cpp index 773e5cf..3242dac 100644 --- a/core/pim/today/plugins/todolist/todopluginwidget.cpp +++ b/core/pim/today/plugins/todolist/todopluginwidget.cpp @@ -29,24 +29,40 @@ TodolistPluginWidget::TodolistPluginWidget( QWidget *parent, const char* name ) : QWidget( parent, name ) { - todoLabel = 0l; todo = 0l; + layoutTodo = 0l; + todoLabel = 0l; if ( todo ) { delete todo; } - todo = new OTodoAccess(); todo->load(); + if ( layoutTodo ) { + delete layoutTodo; + } + layoutTodo = new QVBoxLayout( this ); + layoutTodo->setAutoAdd( true ); + + + if ( todoLabel ) { + delete todoLabel; + } + todoLabel = new OClickableLabel( this ); + + connect( todoLabel, SIGNAL( clicked() ), this, SLOT( startTodolist() ) ); + readConfig(); getTodo(); } TodolistPluginWidget::~TodolistPluginWidget() { delete todo; + delete todoLabel; + delete layoutTodo; } void TodolistPluginWidget::readConfig() { @@ -55,22 +71,17 @@ void TodolistPluginWidget::readConfig() { m_maxLinesTask = cfg.readNumEntry( "maxlinestask", 5 ); m_maxCharClip = cfg.readNumEntry( "maxcharclip", 38 ); } +void TodolistPluginWidget:: refresh() { + getTodo(); +} /** * Get the todos */ void TodolistPluginWidget::getTodo() { - QVBoxLayout* layoutTodo = new QVBoxLayout( this ); - - if ( todoLabel ) { - delete todoLabel; - } - - todoLabel = new OClickableLabel( this ); - connect( todoLabel, SIGNAL( clicked() ), this, SLOT( startTodolist() ) ); QString output; QString tmpout; int count = 0; @@ -85,9 +96,9 @@ void TodolistPluginWidget::getTodo() { if( desc.isEmpty() ) { desc = (*m_it).description(); } tmpout += "<font color=#e00000><b>-" + desc.mid( 0, m_maxCharClip ) + "</b></font><br>"; - ammount++; + ammount++ ; } } // get total number of still open todos @@ -117,9 +128,8 @@ void TodolistPluginWidget::getTodo() { } else { output = QObject::tr( "No active tasks" ); } todoLabel->setText( output ); - layoutTodo->addWidget( todoLabel ); } /** * start the todolist diff --git a/core/pim/today/plugins/todolist/todopluginwidget.h b/core/pim/today/plugins/todolist/todopluginwidget.h index 37b0ee1..0d0deb5 100644 --- a/core/pim/today/plugins/todolist/todopluginwidget.h +++ b/core/pim/today/plugins/todolist/todopluginwidget.h @@ -18,8 +18,9 @@ #define TODOLIST_PLUGIN_WIDGET_H #include <qstring.h> #include <qwidget.h> +#include <qlayout.h> #include <opie/otodo.h> #include <opie/otodoaccess.h> #include <opie/oclickablelabel.h> @@ -32,13 +33,16 @@ class TodolistPluginWidget : public QWidget { public: TodolistPluginWidget( QWidget *parent, const char *name ); ~TodolistPluginWidget(); + void refresh(); + protected slots: void startTodolist(); private: OClickableLabel *todoLabel; + QVBoxLayout* layoutTodo; OTodoAccess *todo; OTodoAccess::List m_list; OTodoAccess::List::Iterator m_it; |