Diffstat (limited to 'core/pim/today/plugins/todolist/todopluginwidget.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | core/pim/today/plugins/todolist/todopluginwidget.cpp | 32 |
1 files changed, 21 insertions, 11 deletions
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 | |||
@@ -9,122 +9,132 @@ | |||
9 | * * | 9 | * * |
10 | * This program is free software; you can redistribute it and/or modify * | 10 | * This program is free software; you can redistribute it and/or modify * |
11 | * it under the terms of the GNU General Public License as published by * | 11 | * it under the terms of the GNU General Public License as published by * |
12 | * the Free Software Foundation; either version 2 of the License, or * | 12 | * the Free Software Foundation; either version 2 of the License, or * |
13 | * (at your option) any later version. * | 13 | * (at your option) any later version. * |
14 | * * | 14 | * * |
15 | ***************************************************************************/ | 15 | ***************************************************************************/ |
16 | 16 | ||
17 | #include "todopluginwidget.h" | 17 | #include "todopluginwidget.h" |
18 | 18 | ||
19 | #include <qvaluelist.h> | 19 | #include <qvaluelist.h> |
20 | #include <qtl.h> | 20 | #include <qtl.h> |
21 | #include <qstring.h> | 21 | #include <qstring.h> |
22 | #include <qscrollview.h> | 22 | #include <qscrollview.h> |
23 | #include <qobject.h> | 23 | #include <qobject.h> |
24 | #include <qlayout.h> | 24 | #include <qlayout.h> |
25 | 25 | ||
26 | #include <qpe/config.h> | 26 | #include <qpe/config.h> |
27 | #include <qpe/timestring.h> | 27 | #include <qpe/timestring.h> |
28 | #include <qpe/qcopenvelope_qws.h> | 28 | #include <qpe/qcopenvelope_qws.h> |
29 | 29 | ||
30 | TodolistPluginWidget::TodolistPluginWidget( QWidget *parent, const char* name ) | 30 | TodolistPluginWidget::TodolistPluginWidget( QWidget *parent, const char* name ) |
31 | : QWidget( parent, name ) { | 31 | : QWidget( parent, name ) { |
32 | 32 | ||
33 | todoLabel = 0l; | ||
34 | todo = 0l; | 33 | todo = 0l; |
34 | layoutTodo = 0l; | ||
35 | todoLabel = 0l; | ||
35 | 36 | ||
36 | if ( todo ) { | 37 | if ( todo ) { |
37 | delete todo; | 38 | delete todo; |
38 | } | 39 | } |
39 | |||
40 | todo = new OTodoAccess(); | 40 | todo = new OTodoAccess(); |
41 | todo->load(); | 41 | todo->load(); |
42 | 42 | ||
43 | if ( layoutTodo ) { | ||
44 | delete layoutTodo; | ||
45 | } | ||
46 | layoutTodo = new QVBoxLayout( this ); | ||
47 | layoutTodo->setAutoAdd( true ); | ||
48 | |||
49 | |||
50 | if ( todoLabel ) { | ||
51 | delete todoLabel; | ||
52 | } | ||
53 | todoLabel = new OClickableLabel( this ); | ||
54 | |||
55 | connect( todoLabel, SIGNAL( clicked() ), this, SLOT( startTodolist() ) ); | ||
56 | |||
43 | readConfig(); | 57 | readConfig(); |
44 | getTodo(); | 58 | getTodo(); |
45 | } | 59 | } |
46 | 60 | ||
47 | TodolistPluginWidget::~TodolistPluginWidget() { | 61 | TodolistPluginWidget::~TodolistPluginWidget() { |
48 | delete todo; | 62 | delete todo; |
63 | delete todoLabel; | ||
64 | delete layoutTodo; | ||
49 | } | 65 | } |
50 | 66 | ||
51 | 67 | ||
52 | void TodolistPluginWidget::readConfig() { | 68 | void TodolistPluginWidget::readConfig() { |
53 | Config cfg( "todaytodoplugin" ); | 69 | Config cfg( "todaytodoplugin" ); |
54 | cfg.setGroup( "config" ); | 70 | cfg.setGroup( "config" ); |
55 | m_maxLinesTask = cfg.readNumEntry( "maxlinestask", 5 ); | 71 | m_maxLinesTask = cfg.readNumEntry( "maxlinestask", 5 ); |
56 | m_maxCharClip = cfg.readNumEntry( "maxcharclip", 38 ); | 72 | m_maxCharClip = cfg.readNumEntry( "maxcharclip", 38 ); |
57 | } | 73 | } |
58 | 74 | ||
75 | void TodolistPluginWidget:: refresh() { | ||
76 | getTodo(); | ||
77 | } | ||
59 | 78 | ||
60 | /** | 79 | /** |
61 | * Get the todos | 80 | * Get the todos |
62 | */ | 81 | */ |
63 | void TodolistPluginWidget::getTodo() { | 82 | void TodolistPluginWidget::getTodo() { |
64 | 83 | ||
65 | QVBoxLayout* layoutTodo = new QVBoxLayout( this ); | ||
66 | |||
67 | if ( todoLabel ) { | ||
68 | delete todoLabel; | ||
69 | } | ||
70 | |||
71 | todoLabel = new OClickableLabel( this ); | ||
72 | connect( todoLabel, SIGNAL( clicked() ), this, SLOT( startTodolist() ) ); | ||
73 | 84 | ||
74 | QString output; | 85 | QString output; |
75 | QString tmpout; | 86 | QString tmpout; |
76 | int count = 0; | 87 | int count = 0; |
77 | int ammount = 0; | 88 | int ammount = 0; |
78 | 89 | ||
79 | // get overdue todos first | 90 | // get overdue todos first |
80 | m_list = todo->overDue(); | 91 | m_list = todo->overDue(); |
81 | 92 | ||
82 | for ( m_it = m_list.begin(); m_it != m_list.end(); ++m_it ) { | 93 | for ( m_it = m_list.begin(); m_it != m_list.end(); ++m_it ) { |
83 | if (!(*m_it).isCompleted() && ( ammount < m_maxLinesTask ) ) { | 94 | if (!(*m_it).isCompleted() && ( ammount < m_maxLinesTask ) ) { |
84 | QString desc = (*m_it).summary(); | 95 | QString desc = (*m_it).summary(); |
85 | if( desc.isEmpty() ) { | 96 | if( desc.isEmpty() ) { |
86 | desc = (*m_it).description(); | 97 | desc = (*m_it).description(); |
87 | } | 98 | } |
88 | tmpout += "<font color=#e00000><b>-" + desc.mid( 0, m_maxCharClip ) + "</b></font><br>"; | 99 | tmpout += "<font color=#e00000><b>-" + desc.mid( 0, m_maxCharClip ) + "</b></font><br>"; |
89 | ammount++; | 100 | ammount++; |
90 | } | 101 | } |
91 | } | 102 | } |
92 | 103 | ||
93 | // get total number of still open todos | 104 | // get total number of still open todos |
94 | m_list = todo->sorted( true, 1, 4, 1); | 105 | m_list = todo->sorted( true, 1, 4, 1); |
95 | 106 | ||
96 | for ( m_it = m_list.begin(); m_it != m_list.end(); ++m_it ) { | 107 | for ( m_it = m_list.begin(); m_it != m_list.end(); ++m_it ) { |
97 | count +=1; | 108 | count +=1; |
98 | // not the overdues, we allready got them, and not if we are | 109 | // not the overdues, we allready got them, and not if we are |
99 | // over the maxlines | 110 | // over the maxlines |
100 | if ( !(*m_it).isOverdue() && ( ammount < m_maxLinesTask ) ) { | 111 | if ( !(*m_it).isOverdue() && ( ammount < m_maxLinesTask ) ) { |
101 | QString desc = (*m_it).summary(); | 112 | QString desc = (*m_it).summary(); |
102 | if( desc.isEmpty() ) { | 113 | if( desc.isEmpty() ) { |
103 | desc = (*m_it).description(); | 114 | desc = (*m_it).description(); |
104 | } | 115 | } |
105 | tmpout += "<b>-</b>" + desc.mid( 0, m_maxCharClip ) + "<br>"; | 116 | tmpout += "<b>-</b>" + desc.mid( 0, m_maxCharClip ) + "<br>"; |
106 | ammount++; | 117 | ammount++; |
107 | } | 118 | } |
108 | } | 119 | } |
109 | 120 | ||
110 | if ( count > 0 ) { | 121 | if ( count > 0 ) { |
111 | if( count == 1 ) { | 122 | if( count == 1 ) { |
112 | output += QObject::tr( "There is <b> 1</b> active task: <br>" ); | 123 | output += QObject::tr( "There is <b> 1</b> active task: <br>" ); |
113 | } else { | 124 | } else { |
114 | output += QObject::tr( "There are <b> %1</b> active tasks: <br>" ).arg( count ); | 125 | output += QObject::tr( "There are <b> %1</b> active tasks: <br>" ).arg( count ); |
115 | } | 126 | } |
116 | output += tmpout; | 127 | output += tmpout; |
117 | } else { | 128 | } else { |
118 | output = QObject::tr( "No active tasks" ); | 129 | output = QObject::tr( "No active tasks" ); |
119 | } | 130 | } |
120 | todoLabel->setText( output ); | 131 | todoLabel->setText( output ); |
121 | layoutTodo->addWidget( todoLabel ); | ||
122 | } | 132 | } |
123 | 133 | ||
124 | /** | 134 | /** |
125 | * start the todolist | 135 | * start the todolist |
126 | */ | 136 | */ |
127 | void TodolistPluginWidget::startTodolist() { | 137 | void TodolistPluginWidget::startTodolist() { |
128 | QCopEnvelope e( "QPE/System", "execute(QString)" ); | 138 | QCopEnvelope e( "QPE/System", "execute(QString)" ); |
129 | e << QString( "todolist" ); | 139 | e << QString( "todolist" ); |
130 | } | 140 | } |