author | zautrix <zautrix> | 2005-07-09 23:58:28 (UTC) |
---|---|---|
committer | zautrix <zautrix> | 2005-07-09 23:58:28 (UTC) |
commit | 2aabde6c21d6dc4f9de8cf3ac17b98053961cc6b (patch) (unidiff) | |
tree | e57782981707d6932940d0489fc942bfeab40dd6 /korganizer/kotodoviewitem.cpp | |
parent | 47370b5d0dea0f29bb929ba13cf45186095c762d (diff) | |
download | kdepimpi-2aabde6c21d6dc4f9de8cf3ac17b98053961cc6b.zip kdepimpi-2aabde6c21d6dc4f9de8cf3ac17b98053961cc6b.tar.gz kdepimpi-2aabde6c21d6dc4f9de8cf3ac17b98053961cc6b.tar.bz2 |
fixxx
Diffstat (limited to 'korganizer/kotodoviewitem.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | korganizer/kotodoviewitem.cpp | 66 |
1 files changed, 58 insertions, 8 deletions
diff --git a/korganizer/kotodoviewitem.cpp b/korganizer/kotodoviewitem.cpp index 0cf6e4c..bdef94c 100644 --- a/korganizer/kotodoviewitem.cpp +++ b/korganizer/kotodoviewitem.cpp | |||
@@ -60,393 +60,443 @@ void KOTodoViewItem:: setup() | |||
60 | setHeight( h ); | 60 | setHeight( h ); |
61 | 61 | ||
62 | } | 62 | } |
63 | void KOTodoViewItem::setSortKey(int column,const QString &key) | 63 | void KOTodoViewItem::setSortKey(int column,const QString &key) |
64 | { | 64 | { |
65 | mKeyMap.insert(column,key); | 65 | mKeyMap.insert(column,key); |
66 | } | 66 | } |
67 | 67 | ||
68 | #if QT_VERSION >= 0x030000 | 68 | #if QT_VERSION >= 0x030000 |
69 | void KOTodoViewItem::paintBranches(QPainter *p,const QColorGroup & cg,int w, | 69 | void KOTodoViewItem::paintBranches(QPainter *p,const QColorGroup & cg,int w, |
70 | int y,int h) | 70 | int y,int h) |
71 | { | 71 | { |
72 | QListViewItem::paintBranches(p,cg,w,y,h); | 72 | QListViewItem::paintBranches(p,cg,w,y,h); |
73 | } | 73 | } |
74 | #else | 74 | #else |
75 | #endif | 75 | #endif |
76 | 76 | ||
77 | void KOTodoViewItem::construct() | 77 | void KOTodoViewItem::construct() |
78 | { | 78 | { |
79 | // qDebug("KOTodoViewItem::construct() "); | 79 | // qDebug("KOTodoViewItem::construct() "); |
80 | m_init = true; | 80 | m_init = true; |
81 | QString keyd = "=="; | 81 | QString keyd = "=="; |
82 | QString keyt = "=="; | 82 | QString keyt = "=="; |
83 | QString skeyd = "=="; | 83 | QString skeyd = "=="; |
84 | QString skeyt = "=="; | 84 | QString skeyt = "=="; |
85 | 85 | ||
86 | setOn(mTodo->isCompleted()); | 86 | setOn(mTodo->isCompleted()); |
87 | setText(0,mTodo->summary()); | 87 | setText(0,mTodo->summary()); |
88 | setText(1,QString::number(mTodo->priority())); | 88 | setText(1,QString::number(mTodo->priority())); |
89 | setText(2,i18n("%1 %").arg(QString::number(mTodo->percentComplete()))); | 89 | setText(2,i18n("%1 %").arg(QString::number(mTodo->percentComplete()))); |
90 | if (mTodo->percentComplete()<100) { | 90 | if (mTodo->percentComplete()<100) { |
91 | if (mTodo->isCompleted()) setSortKey(2,QString::number(999)); | 91 | if (mTodo->isCompleted()) setSortKey(2,QString::number(999)); |
92 | else setSortKey(2,QString::number(mTodo->percentComplete())); | 92 | else setSortKey(2,QString::number(mTodo->percentComplete())); |
93 | } | 93 | } |
94 | else { | 94 | else { |
95 | if (mTodo->isCompleted()) setSortKey(2,QString::number(999)); | 95 | if (mTodo->isCompleted()) setSortKey(2,QString::number(999)); |
96 | else setSortKey(2,QString::number(99)); | 96 | else setSortKey(2,QString::number(99)); |
97 | } | 97 | } |
98 | if (mTodo->hasDueDate()) { | 98 | if (mTodo->hasDueDate()) { |
99 | setText(3, mTodo->dtDueDateStr()); | 99 | setText(3, mTodo->dtDueDateStr()); |
100 | QDate d = mTodo->dtDue().date(); | 100 | QDate d = mTodo->dtDue().date(); |
101 | keyd.sprintf("%04d%02d%02d",d.year(),d.month(),d.day()); | 101 | keyd.sprintf("%04d%02d%02d",d.year(),d.month(),d.day()); |
102 | // setSortKey(3,keyd); | 102 | // setSortKey(3,keyd); |
103 | if (mTodo->doesFloat()) { | 103 | if (mTodo->doesFloat()) { |
104 | setText(4,""); | 104 | setText(4,""); |
105 | } | 105 | } |
106 | else { | 106 | else { |
107 | setText(4,mTodo->dtDueTimeStr()); | 107 | setText(4,mTodo->dtDueTimeStr()); |
108 | QTime t = mTodo->dtDue().time(); | 108 | QTime t = mTodo->dtDue().time(); |
109 | keyt.sprintf("%02d%02d",t.hour(),t.minute()); | 109 | keyt.sprintf("%02d%02d",t.hour(),t.minute()); |
110 | //setSortKey(4,keyt); | 110 | //setSortKey(4,keyt); |
111 | } | 111 | } |
112 | } else { | 112 | } else { |
113 | setText(3,""); | 113 | setText(3,""); |
114 | setText(4,""); | 114 | setText(4,""); |
115 | } | 115 | } |
116 | setSortKey(3,keyd); | 116 | setSortKey(3,keyd); |
117 | setSortKey(4,keyt); | 117 | setSortKey(4,keyt); |
118 | 118 | ||
119 | if (mTodo->isCompleted()) setSortKey(1,"6" + QString::number(mTodo->priority())+keyd+keyt); | 119 | if (mTodo->isCompleted()) setSortKey(1,"6" + QString::number(mTodo->priority())+keyd+keyt); |
120 | else setSortKey(1,QString::number(mTodo->priority())+keyd+keyt); | 120 | else setSortKey(1,QString::number(mTodo->priority())+keyd+keyt); |
121 | 121 | ||
122 | 122 | ||
123 | 123 | ||
124 | keyd = ""; | 124 | keyd = ""; |
125 | keyt = ""; | 125 | keyt = ""; |
126 | 126 | ||
127 | if (mTodo->isRunning() ) { | 127 | if (mTodo->isRunning() ) { |
128 | QDate d = mTodo->runStart().date(); | 128 | QDate d = mTodo->runStart().date(); |
129 | QTime t = mTodo->runStart().time(); | 129 | QTime t = mTodo->runStart().time(); |
130 | skeyt.sprintf("%02d%02d",t.hour(),t.minute()); | 130 | skeyt.sprintf("%02d%02d",t.hour(),t.minute()); |
131 | skeyd.sprintf("%04d%02d%02d",d.year(),d.month(),d.day()); | 131 | skeyd.sprintf("%04d%02d%02d",d.year(),d.month(),d.day()); |
132 | keyd = KGlobal::locale()->formatDate( d , true); | 132 | keyd = KGlobal::locale()->formatDate( d , true); |
133 | keyt = KGlobal::locale()->formatTime( t ); | 133 | keyt = KGlobal::locale()->formatTime( t ); |
134 | 134 | ||
135 | } else { | 135 | } else { |
136 | 136 | ||
137 | if (mTodo->hasStartDate()) { | 137 | if (mTodo->hasStartDate()) { |
138 | keyd = mTodo->dtStartDateStr(); | 138 | keyd = mTodo->dtStartDateStr(); |
139 | QDate d = mTodo->dtStart().date(); | 139 | QDate d = mTodo->dtStart().date(); |
140 | skeyd.sprintf("%04d%02d%02d",d.year(),d.month(),d.day()); | 140 | skeyd.sprintf("%04d%02d%02d",d.year(),d.month(),d.day()); |
141 | 141 | ||
142 | if ( !mTodo->doesFloat()) { | 142 | if ( !mTodo->doesFloat()) { |
143 | keyt = mTodo->dtStartTimeStr(); | 143 | keyt = mTodo->dtStartTimeStr(); |
144 | QTime t = mTodo->dtStart().time(); | 144 | QTime t = mTodo->dtStart().time(); |
145 | skeyt.sprintf("%02d%02d",t.hour(),t.minute()); | 145 | skeyt.sprintf("%02d%02d",t.hour(),t.minute()); |
146 | 146 | ||
147 | } | 147 | } |
148 | 148 | ||
149 | } | 149 | } |
150 | } | 150 | } |
151 | setText(5,keyd); | 151 | setText(5,keyd); |
152 | setText(6,keyt); | 152 | setText(6,keyt); |
153 | setSortKey(5,skeyd); | 153 | setSortKey(5,skeyd); |
154 | setSortKey(6,skeyt); | 154 | setSortKey(6,skeyt); |
155 | 155 | ||
156 | setText(7,mTodo->cancelled() ? i18n("Yes") : i18n("No")); | 156 | //setText(7,mTodo->cancelled() ? i18n("Yes") : i18n("No")); |
157 | setText(8,mTodo->categoriesStr()); | 157 | setText(7,mTodo->categoriesStr()); |
158 | setText(9,KOPrefs::instance()->calName( mTodo->calID())); | 158 | setText(8,KOPrefs::instance()->calName( mTodo->calID())); |
159 | 159 | setText(9, KGlobal::locale()->formatDateTime( mTodo->lastModified(), true, true )); | |
160 | setText(10, KGlobal::locale()->formatDateTime( mTodo->created(), true, true )); | ||
161 | setText(11, KGlobal::locale()->formatDateTime( mTodo->lastModifiedSub(), true, true )); | ||
162 | QString key; | ||
163 | QDate d = mTodo->lastModified().date(); | ||
164 | QTime t = mTodo->lastModified().time(); | ||
165 | key.sprintf("%04d%02d%02d%02d%02d%02d",d.year(),d.month(),d.day(),t.hour(),t.minute(),t.second() ); | ||
166 | setSortKey(9,key); | ||
167 | d = mTodo->created().date(); | ||
168 | t = mTodo->created().time(); | ||
169 | key.sprintf("%04d%02d%02d%02d%02d%02d",d.year(),d.month(),d.day(),t.hour(),t.minute(),t.second() ); | ||
170 | setSortKey(10,key); | ||
171 | d = mTodo->lastModifiedSub().date(); | ||
172 | t = mTodo->lastModifiedSub().time(); | ||
173 | key.sprintf("%04d%02d%02d%02d%02d%02d",d.year(),d.month(),d.day(),t.hour(),t.minute(),t.second() ); | ||
174 | setSortKey(11,key); | ||
175 | |||
160 | #if 0 | 176 | #if 0 |
161 | // Find sort id in description. It's the text behind the last '#' character | 177 | // Find sort id in description. It's the text behind the last '#' character |
162 | // found in the description. White spaces are removed from beginning and end | 178 | // found in the description. White spaces are removed from beginning and end |
163 | // of sort id. | 179 | // of sort id. |
164 | int pos = mTodo->description().findRev('#'); | 180 | int pos = mTodo->description().findRev('#'); |
165 | if (pos < 0) { | 181 | if (pos < 0) { |
166 | setText(6,""); | 182 | setText(6,""); |
167 | } else { | 183 | } else { |
168 | QString str = mTodo->description().mid(pos+1); | 184 | QString str = mTodo->description().mid(pos+1); |
169 | str.stripWhiteSpace(); | 185 | str.stripWhiteSpace(); |
170 | setText(6,str); | 186 | setText(6,str); |
171 | } | 187 | } |
172 | #endif | 188 | #endif |
173 | 189 | ||
174 | m_known = false; | 190 | m_known = false; |
175 | m_init = false; | 191 | m_init = false; |
176 | 192 | ||
177 | setMyPixmap(); | 193 | setMyPixmap(); |
178 | 194 | ||
179 | } | 195 | } |
180 | void KOTodoViewItem::setMyPixmap() | 196 | void KOTodoViewItem::setMyPixmap() |
181 | { | 197 | { |
182 | int size = 5; | 198 | int size = 5; |
183 | QPixmap pixi = QPixmap( 1, 1 ); | 199 | QPixmap pixi = QPixmap( 1, 1 ); |
184 | // if ( !mTodo->isCompleted() && mTodo->hasDueDate() && mTodo->dtDue() < QDateTime::currentDateTime() ) { | 200 | // if ( !mTodo->isCompleted() && mTodo->hasDueDate() && mTodo->dtDue() < QDateTime::currentDateTime() ) { |
185 | // pixi = SmallIcon("redcross16"); | 201 | // pixi = SmallIcon("redcross16"); |
186 | // } else { | 202 | // } else { |
187 | QPainter p; | 203 | QPainter p; |
188 | 204 | ||
189 | int pixSize = 0; | 205 | int pixSize = 0; |
190 | QPixmap pPix = QPixmap( size, size ); | 206 | QPixmap pPix = QPixmap( size, size ); |
191 | if ( mTodo->description().length() > 0 ) { | 207 | if ( mTodo->description().length() > 0 ) { |
192 | pixi.resize(size, pixSize+size); | 208 | pixi.resize(size, pixSize+size); |
193 | pPix.fill( Qt::darkGreen ); | 209 | pPix.fill( Qt::darkGreen ); |
194 | p.begin( &pixi ); | 210 | p.begin( &pixi ); |
195 | p. drawPixmap ( 0, pixSize, pPix); | 211 | p. drawPixmap ( 0, pixSize, pPix); |
196 | p.end(); | 212 | p.end(); |
197 | pixSize += size; | 213 | pixSize += size; |
198 | } | 214 | } |
199 | if ( mTodo->isAlarmEnabled() && mTodo->alarmEnabled()) { | 215 | if ( mTodo->isAlarmEnabled() && mTodo->alarmEnabled()) { |
200 | pixi.resize(size, pixSize+size); | 216 | pixi.resize(size, pixSize+size); |
201 | pPix.fill( Qt::red ); | 217 | pPix.fill( Qt::red ); |
202 | p.begin( &pixi ); | 218 | p.begin( &pixi ); |
203 | p. drawPixmap ( 0, pixSize, pPix); | 219 | p. drawPixmap ( 0, pixSize, pPix); |
204 | p.end(); | 220 | p.end(); |
205 | pixSize += size; | 221 | pixSize += size; |
206 | } | 222 | } |
207 | if ( mTodo->doesRecur() ) { | 223 | if ( mTodo->doesRecur() ) { |
208 | pixi.resize(size, pixSize+size); | 224 | pixi.resize(size, pixSize+size); |
209 | pPix.fill( Qt::blue ); | 225 | pPix.fill( Qt::blue ); |
210 | p.begin( &pixi ); | 226 | p.begin( &pixi ); |
211 | p. drawPixmap ( 0, pixSize, pPix); | 227 | p. drawPixmap ( 0, pixSize, pPix); |
212 | p.end(); | 228 | p.end(); |
213 | pixSize += size; | 229 | pixSize += size; |
214 | } | 230 | } |
215 | // } | 231 | // } |
216 | if ( pixi.width() > 1 ) { | 232 | if ( pixi.width() > 1 ) { |
217 | setPixmap ( 0,pixi ) ; | 233 | setPixmap ( 0,pixi ) ; |
218 | } else { | 234 | } else { |
219 | setPixmap ( 0,QPixmap() ) ; | 235 | setPixmap ( 0,QPixmap() ) ; |
220 | } | 236 | } |
221 | } | 237 | } |
222 | void KOTodoViewItem::stateChange(bool state) | 238 | void KOTodoViewItem::stateChange(bool state) |
223 | { | 239 | { |
224 | // qDebug("KOTodoViewItem::stateChange %d ", state); | 240 | // qDebug("KOTodoViewItem::stateChange %d ", state); |
225 | // do not change setting on startup | 241 | // do not change setting on startup |
226 | if ( m_init ) return; | 242 | if ( m_init ) return; |
227 | if (isOn()!=state) { | 243 | if (isOn()!=state) { |
228 | setOn(state); | 244 | setOn(state); |
229 | //qDebug("SETON "); | 245 | //qDebug("SETON "); |
230 | return; | 246 | return; |
231 | } | 247 | } |
232 | if ( mTodo->isCompleted() == state ) { | 248 | if ( mTodo->isCompleted() == state ) { |
233 | //qDebug("STATECHANGE:nothing to do "); | 249 | //qDebug("STATECHANGE:nothing to do "); |
234 | return; | 250 | return; |
235 | } | 251 | } |
236 | QString keyd = "=="; | 252 | QString keyd = "=="; |
237 | QString keyt = "=="; | 253 | QString keyt = "=="; |
238 | //qDebug("KOTodoViewItem::stateChange %s ", text(0).latin1()); | 254 | //qDebug("KOTodoViewItem::stateChange %s ", text(0).latin1()); |
239 | if ( mTodo->doesRecur() ){ | 255 | if ( mTodo->doesRecur() ){ |
240 | QDateTime start = mTodo->dtStart(); | 256 | QDateTime start = mTodo->dtStart(); |
241 | mTodo->setCompleted(state); | 257 | mTodo->setCompleted(state); |
242 | if ( start != mTodo->dtStart() ) { | 258 | if ( start != mTodo->dtStart() ) { |
243 | if ( state && !mTodo->isCompleted() ) { | 259 | if ( state && !mTodo->isCompleted() ) { |
244 | setOn( false ); | 260 | setOn( false ); |
245 | state = false; | 261 | state = false; |
246 | } | 262 | } |
247 | } | 263 | } |
248 | } else | 264 | } else |
249 | mTodo->setCompleted(state); | 265 | mTodo->setCompleted(state); |
250 | 266 | ||
251 | if (state) mTodo->setCompleted(QDateTime::currentDateTime()); | 267 | if (state) mTodo->setCompleted(QDateTime::currentDateTime()); |
252 | 268 | ||
253 | if (mTodo->hasDueDate()) { | 269 | if (mTodo->hasDueDate()) { |
254 | setText(3, mTodo->dtDueDateStr()); | 270 | setText(3, mTodo->dtDueDateStr()); |
255 | QDate d = mTodo->dtDue().date(); | 271 | QDate d = mTodo->dtDue().date(); |
256 | keyd.sprintf("%04d%02d%02d",d.year(),d.month(),d.day()); | 272 | keyd.sprintf("%04d%02d%02d",d.year(),d.month(),d.day()); |
257 | setSortKey(3,keyd); | 273 | setSortKey(3,keyd); |
258 | if (mTodo->doesFloat()) { | 274 | if (mTodo->doesFloat()) { |
259 | setText(4,""); | 275 | setText(4,""); |
260 | } | 276 | } |
261 | else { | 277 | else { |
262 | setText(4,mTodo->dtDueTimeStr()); | 278 | setText(4,mTodo->dtDueTimeStr()); |
263 | QTime t = mTodo->dtDue().time(); | 279 | QTime t = mTodo->dtDue().time(); |
264 | keyt.sprintf("%02d%02d",t.hour(),t.minute()); | 280 | keyt.sprintf("%02d%02d",t.hour(),t.minute()); |
265 | setSortKey(4,keyt); | 281 | setSortKey(4,keyt); |
266 | } | 282 | } |
267 | } | 283 | } |
268 | if (mTodo->hasStartDate()) { | 284 | if (mTodo->hasStartDate()) { |
269 | QString skeyt = "=="; | 285 | QString skeyt = "=="; |
270 | QString skeyd = "=="; | 286 | QString skeyd = "=="; |
271 | setText(5, mTodo->dtStartDateStr()); | 287 | setText(5, mTodo->dtStartDateStr()); |
272 | QDate d = mTodo->dtStart().date(); | 288 | QDate d = mTodo->dtStart().date(); |
273 | skeyd.sprintf("%04d%02d%02d",d.year(),d.month(),d.day()); | 289 | skeyd.sprintf("%04d%02d%02d",d.year(),d.month(),d.day()); |
274 | 290 | ||
275 | if (mTodo->doesFloat()) { | 291 | if (mTodo->doesFloat()) { |
276 | setText(6,""); | 292 | setText(6,""); |
277 | } | 293 | } |
278 | else { | 294 | else { |
279 | setText(6,mTodo->dtStartTimeStr()); | 295 | setText(6,mTodo->dtStartTimeStr()); |
280 | QTime t = mTodo->dtStart().time(); | 296 | QTime t = mTodo->dtStart().time(); |
281 | skeyt.sprintf("%02d%02d",t.hour(),t.minute()); | 297 | skeyt.sprintf("%02d%02d",t.hour(),t.minute()); |
282 | 298 | ||
283 | } | 299 | } |
284 | setSortKey(5,skeyd); | 300 | setSortKey(5,skeyd); |
285 | setSortKey(6,skeyt); | 301 | setSortKey(6,skeyt); |
286 | } | 302 | } |
287 | if (mTodo->isCompleted()) setSortKey(1,QString::number(9)+keyd+keyt); | 303 | if (mTodo->isCompleted()) setSortKey(1,QString::number(9)+keyd+keyt); |
288 | else setSortKey(1,QString::number(mTodo->priority())+keyd+keyt); | 304 | else setSortKey(1,QString::number(mTodo->priority())+keyd+keyt); |
289 | 305 | ||
290 | setText(2,i18n("%1 %").arg(QString::number(mTodo->percentComplete()))); | 306 | setText(2,i18n("%1 %").arg(QString::number(mTodo->percentComplete()))); |
291 | if (mTodo->percentComplete()<100) { | 307 | if (mTodo->percentComplete()<100) { |
292 | if (mTodo->isCompleted()) setSortKey(2,QString::number(999)); | 308 | if (mTodo->isCompleted()) setSortKey(2,QString::number(999)); |
293 | else setSortKey(2,QString::number(mTodo->percentComplete())); | 309 | else setSortKey(2,QString::number(mTodo->percentComplete())); |
294 | } | 310 | } |
295 | else { | 311 | else { |
296 | if (mTodo->isCompleted()) setSortKey(2,QString::number(999)); | 312 | if (mTodo->isCompleted()) setSortKey(2,QString::number(999)); |
297 | else setSortKey(2,QString::number(99)); | 313 | else setSortKey(2,QString::number(99)); |
298 | } | 314 | } |
299 | if ( state ) { | 315 | if ( state ) { |
300 | QListViewItem * myChild = firstChild(); | 316 | QListViewItem * myChild = firstChild(); |
301 | KOTodoViewItem *item; | 317 | KOTodoViewItem *item; |
302 | while( myChild ) { | 318 | while( myChild ) { |
303 | //qDebug("stateCH "); | 319 | //qDebug("stateCH "); |
304 | item = static_cast<KOTodoViewItem*>(myChild); | 320 | item = static_cast<KOTodoViewItem*>(myChild); |
305 | item->stateChange(state); | 321 | item->stateChange(state); |
306 | myChild = myChild->nextSibling(); | 322 | myChild = myChild->nextSibling(); |
307 | } | 323 | } |
308 | } else { | 324 | } else { |
309 | QListViewItem * myChild = parent(); | 325 | QListViewItem * myChild = parent(); |
310 | if ( myChild ) | 326 | if ( myChild ) |
311 | (static_cast<KOTodoViewItem*>(myChild))->stateChange(state); | 327 | (static_cast<KOTodoViewItem*>(myChild))->stateChange(state); |
312 | } | 328 | } |
313 | mTodoView->modified(true); | 329 | mTodoView->modified(true); |
314 | setMyPixmap(); | 330 | setMyPixmap(); |
315 | mTodoView->setTodoModified( mTodo ); | 331 | mTodoView->setTodoModified( mTodo ); |
316 | } | 332 | } |
317 | 333 | ||
318 | bool KOTodoViewItem::isAlternate() | 334 | bool KOTodoViewItem::isAlternate() |
319 | { | 335 | { |
320 | 336 | #if 0 | |
337 | //if ( m_known ) return m_odd; | ||
338 | //qDebug("test "); | ||
339 | KOTodoViewItem *item = static_cast<KOTodoViewItem *>(itemAbove()); | ||
340 | if ( item ) { | ||
341 | m_known = item->m_known; | ||
342 | if ( m_known ) { | ||
343 | m_odd = !item->m_odd ; | ||
344 | return m_odd; | ||
345 | } | ||
346 | } else { | ||
347 | item = static_cast<KOTodoViewItem *>(itemBelow()); | ||
348 | if ( item ) { | ||
349 | m_known = item->m_known; | ||
350 | if ( m_known ) { | ||
351 | m_odd = !item->m_odd ; | ||
352 | return m_odd; | ||
353 | } | ||
354 | } | ||
355 | } | ||
321 | KOTodoListView *lv = static_cast<KOTodoListView *>(listView()); | 356 | KOTodoListView *lv = static_cast<KOTodoListView *>(listView()); |
322 | if (lv && lv->alternateBackground().isValid()) | 357 | item = static_cast<KOTodoViewItem *>(lv->firstChild()); |
358 | bool previous = true; | ||
359 | qDebug("WHILE "); | ||
360 | while ( item ) { | ||
361 | item->m_odd = !previous; | ||
362 | item->m_known = true; | ||
363 | previous = !previous; | ||
364 | item = static_cast<KOTodoViewItem *>(item->itemBelow()); | ||
365 | } | ||
366 | return m_odd; | ||
367 | |||
368 | #else | ||
369 | |||
370 | //KOTodoListView *lv = static_cast<KOTodoListView *>(listView()); | ||
371 | //if (lv && lv->alternateBackground().isValid()) | ||
323 | { | 372 | { |
324 | KOTodoViewItem *above = 0; | 373 | KOTodoViewItem *above = static_cast<KOTodoViewItem *>(itemAbove()); |
325 | above = static_cast<KOTodoViewItem *>(itemAbove()); | ||
326 | m_known = above ? above->m_known : true; | 374 | m_known = above ? above->m_known : true; |
327 | if (m_known) | 375 | if (m_known) |
328 | { | 376 | { |
329 | m_odd = above ? !above->m_odd : false; | 377 | m_odd = above ? !above->m_odd : false; |
330 | } | 378 | } |
331 | else | 379 | else |
332 | { | 380 | { |
333 | KOTodoViewItem *item; | 381 | KOTodoViewItem *item; |
334 | bool previous = true; | 382 | bool previous = true; |
335 | if (QListViewItem::parent()) | 383 | if (QListViewItem::parent()) |
336 | { | 384 | { |
337 | item = static_cast<KOTodoViewItem *>(QListViewItem::parent()); | 385 | item = static_cast<KOTodoViewItem *>(QListViewItem::parent()); |
338 | if (item) | 386 | if (item) |
339 | previous = item->m_odd; | 387 | previous = item->m_odd; |
340 | item = static_cast<KOTodoViewItem *>(QListViewItem::parent()->firstChild()); | 388 | item = static_cast<KOTodoViewItem *>(QListViewItem::parent()->firstChild()); |
341 | } | 389 | } |
342 | else | 390 | else |
343 | { | 391 | { |
392 | KOTodoListView *lv = static_cast<KOTodoListView *>(listView()); | ||
344 | item = static_cast<KOTodoViewItem *>(lv->firstChild()); | 393 | item = static_cast<KOTodoViewItem *>(lv->firstChild()); |
345 | } | 394 | } |
346 | 395 | ||
347 | while(item) | 396 | while(item) |
348 | { | 397 | { |
349 | item->m_odd = previous = !previous; | 398 | item->m_odd = previous = !previous; |
350 | item->m_known = true; | 399 | item->m_known = true; |
351 | item = static_cast<KOTodoViewItem *>(item->nextSibling()); | 400 | item = static_cast<KOTodoViewItem *>(item->nextSibling()); |
352 | } | 401 | } |
353 | } | 402 | } |
354 | return m_odd; | 403 | return m_odd; |
355 | } | 404 | } |
356 | return false; | 405 | return false; |
406 | #endif | ||
357 | } | 407 | } |
358 | 408 | ||
359 | void KOTodoViewItem::paintCell(QPainter *p, const QColorGroup &cg, int column, int width, int alignment) | 409 | void KOTodoViewItem::paintCell(QPainter *p, const QColorGroup &cg, int column, int width, int alignment) |
360 | { | 410 | { |
361 | QColorGroup _cg = cg; | 411 | QColorGroup _cg = cg; |
362 | QColorGroup::ColorRole role; | 412 | QColorGroup::ColorRole role; |
363 | if ( KOPrefs::instance()->mTodoViewUsesForegroundColor && !mTodo->isRunning()) | 413 | if ( KOPrefs::instance()->mTodoViewUsesForegroundColor && !mTodo->isRunning()) |
364 | role = QColorGroup::Text; | 414 | role = QColorGroup::Text; |
365 | else | 415 | else |
366 | role = QColorGroup::Base; | 416 | role = QColorGroup::Base; |
367 | //#ifndef KORG_NOLVALTERNATION | 417 | //#ifndef KORG_NOLVALTERNATION |
368 | if (isAlternate()) | 418 | if (isAlternate()) |
369 | _cg.setColor(QColorGroup::Base, static_cast< KOTodoListView* >(listView())->alternateBackground()); | 419 | _cg.setColor(QColorGroup::Base, static_cast< KOTodoListView* >(listView())->alternateBackground()); |
370 | bool setColor = KOPrefs::instance()->mTodoViewUsesCatColors; | 420 | bool setColor = KOPrefs::instance()->mTodoViewUsesCatColors; |
371 | QColor colorToSet; | 421 | QColor colorToSet; |
372 | if ( column == 0 && mTodo->calID() > 1 ) { | 422 | if ( column == 0 && mTodo->calID() > 1 ) { |
373 | setColor = true; | 423 | setColor = true; |
374 | colorToSet = KOPrefs::instance()->defaultColor( mTodo->calID() ); | 424 | colorToSet = KOPrefs::instance()->defaultColor( mTodo->calID() ); |
375 | } else if ( setColor ) { | 425 | } else if ( setColor ) { |
376 | QStringList categories = mTodo->categories(); | 426 | QStringList categories = mTodo->categories(); |
377 | QString cat = categories.first(); | 427 | QString cat = categories.first(); |
378 | if ( !cat.isEmpty()) { | 428 | if ( !cat.isEmpty()) { |
379 | colorToSet = *(KOPrefs::instance()->categoryColor(cat) ); | 429 | colorToSet = *(KOPrefs::instance()->categoryColor(cat) ); |
380 | } else | 430 | } else |
381 | setColor = false; | 431 | setColor = false; |
382 | } | 432 | } |
383 | bool openMode = !isOpen(); | 433 | bool openMode = !isOpen(); |
384 | // maybe we are in flat-display-mode | 434 | // maybe we are in flat-display-mode |
385 | if ( !firstChild() ) | 435 | if ( !firstChild() ) |
386 | openMode = false; | 436 | openMode = false; |
387 | bool colorRunning = mTodo->isRunning(); | 437 | bool colorRunning = mTodo->isRunning(); |
388 | if ( ! colorRunning && openMode ) | 438 | if ( ! colorRunning && openMode ) |
389 | colorRunning = mTodo->hasRunningSub(); | 439 | colorRunning = mTodo->hasRunningSub(); |
390 | if ( colorRunning ) { | 440 | if ( colorRunning ) { |
391 | setColor = true; | 441 | setColor = true; |
392 | colorToSet = KOPrefs::instance()->mTodoRunColor; | 442 | colorToSet = KOPrefs::instance()->mTodoRunColor; |
393 | } else { | 443 | } else { |
394 | int odue = mTodo->hasDueSubTodo( openMode ); | 444 | int odue = mTodo->hasDueSubTodo( openMode ); |
395 | if (odue == 2) { | 445 | if (odue == 2) { |
396 | colorToSet = KOPrefs::instance()->mTodoOverdueColor; | 446 | colorToSet = KOPrefs::instance()->mTodoOverdueColor; |
397 | setColor = true; | 447 | setColor = true; |
398 | } else if ( odue == 1 ) { | 448 | } else if ( odue == 1 ) { |
399 | colorToSet = KOPrefs::instance()->mTodoDueTodayColor; | 449 | colorToSet = KOPrefs::instance()->mTodoDueTodayColor; |
400 | setColor = true; | 450 | setColor = true; |
401 | } | 451 | } |
402 | } | 452 | } |
403 | 453 | ||
404 | 454 | ||
405 | if ( setColor ) { | 455 | if ( setColor ) { |
406 | _cg.setColor(role,colorToSet ); | 456 | _cg.setColor(role,colorToSet ); |
407 | if ( role == QColorGroup::Base) { | 457 | if ( role == QColorGroup::Base) { |
408 | int rgb = colorToSet.red(); | 458 | int rgb = colorToSet.red(); |
409 | rgb += colorToSet.blue()/2; | 459 | rgb += colorToSet.blue()/2; |
410 | rgb += colorToSet.green(); | 460 | rgb += colorToSet.green(); |
411 | if ( rgb < 200 ) | 461 | if ( rgb < 200 ) |
412 | _cg.setColor(QColorGroup::Text,Qt::white ); | 462 | _cg.setColor(QColorGroup::Text,Qt::white ); |
413 | } | 463 | } |
414 | } | 464 | } |
415 | //#endif | 465 | //#endif |
416 | if ( column > 0 ){ | 466 | if ( column > 0 ){ |
417 | if ( column == 2 && !KOPrefs::instance()->mTodoViewShowsPercentage ) { | 467 | if ( column == 2 && !KOPrefs::instance()->mTodoViewShowsPercentage ) { |
418 | p->save(); | 468 | p->save(); |
419 | int progress = (int)(( (width-6)*mTodo->percentComplete())/100.0 + 0.5); | 469 | int progress = (int)(( (width-6)*mTodo->percentComplete())/100.0 + 0.5); |
420 | 470 | ||
421 | p->fillRect( 0, 0, width, height(), _cg.base() ); // background | 471 | p->fillRect( 0, 0, width, height(), _cg.base() ); // background |
422 | // p->setPen(Qt::black ); //border | 472 | // p->setPen(Qt::black ); //border |
423 | // p->setBrush( KOPrefs::instance()->mHighlightColorKGlobalSettings::baseColor() ); //filling | 473 | // p->setBrush( KOPrefs::instance()->mHighlightColorKGlobalSettings::baseColor() ); //filling |
424 | QColor fc = KOPrefs::instance()->mHighlightColor; | 474 | QColor fc = KOPrefs::instance()->mHighlightColor; |
425 | if ( mTodo->percentComplete() == 100 ) | 475 | if ( mTodo->percentComplete() == 100 ) |
426 | fc = darkGreen; | 476 | fc = darkGreen; |
427 | p->drawRect( 2, 2, width-4, height()-4); | 477 | p->drawRect( 2, 2, width-4, height()-4); |
428 | p->fillRect( 3, 3, progress, height()-6, | 478 | p->fillRect( 3, 3, progress, height()-6, |
429 | fc ); | 479 | fc ); |
430 | p->restore(); | 480 | p->restore(); |
431 | } else { | 481 | } else { |
432 | QCheckListItem::paintCell(p, _cg, column, width, alignment); | 482 | QCheckListItem::paintCell(p, _cg, column, width, alignment); |
433 | } | 483 | } |
434 | return; | 484 | return; |
435 | } | 485 | } |
436 | 486 | ||
437 | int align = alignment; | 487 | int align = alignment; |
438 | 488 | ||
439 | if ( !p ) | 489 | if ( !p ) |
440 | return; | 490 | return; |
441 | 491 | ||
442 | p->fillRect( 0, 0, width, height(), _cg.brush( QColorGroup::Base ) ); | 492 | p->fillRect( 0, 0, width, height(), _cg.brush( QColorGroup::Base ) ); |
443 | 493 | ||
444 | QListView *lv = listView(); | 494 | QListView *lv = listView(); |
445 | if ( !lv ) | 495 | if ( !lv ) |
446 | return; | 496 | return; |
447 | int marg = 2;//lv->itemMargin(); | 497 | int marg = 2;//lv->itemMargin(); |
448 | int r = 0; | 498 | int r = 0; |
449 | QCheckListItem::Type myType = QCheckListItem::CheckBox; | 499 | QCheckListItem::Type myType = QCheckListItem::CheckBox; |
450 | int BoxSize = 20; | 500 | int BoxSize = 20; |
451 | int boxOffset = 2; | 501 | int boxOffset = 2; |
452 | int xOffset = 2; | 502 | int xOffset = 2; |