summaryrefslogtreecommitdiffabout
path: root/korganizer/kotodoviewitem.cpp
authorzautrix <zautrix>2005-02-13 17:05:02 (UTC)
committer zautrix <zautrix>2005-02-13 17:05:02 (UTC)
commit293271fe9e6a9061da329183f8f488d79580f7da (patch) (unidiff)
tree3a0234eabdf58440a484e960b5eef912a63d0056 /korganizer/kotodoviewitem.cpp
parent0a33f91e166747406ca2ccb5819881feeecfdb40 (diff)
downloadkdepimpi-293271fe9e6a9061da329183f8f488d79580f7da.zip
kdepimpi-293271fe9e6a9061da329183f8f488d79580f7da.tar.gz
kdepimpi-293271fe9e6a9061da329183f8f488d79580f7da.tar.bz2
todo rec fixes
Diffstat (limited to 'korganizer/kotodoviewitem.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/kotodoviewitem.cpp42
1 files changed, 40 insertions, 2 deletions
diff --git a/korganizer/kotodoviewitem.cpp b/korganizer/kotodoviewitem.cpp
index 0e847c2..70f00c6 100644
--- a/korganizer/kotodoviewitem.cpp
+++ b/korganizer/kotodoviewitem.cpp
@@ -187,23 +187,31 @@ void KOTodoViewItem::setMyPixmap()
187 pixi.resize(size, pixSize+size); 187 pixi.resize(size, pixSize+size);
188 pPix.fill( Qt::red ); 188 pPix.fill( Qt::red );
189 p.begin( &pixi ); 189 p.begin( &pixi );
190 p. drawPixmap ( 0, pixSize, pPix); 190 p. drawPixmap ( 0, pixSize, pPix);
191 p.end(); 191 p.end();
192 pixSize += size; 192 pixSize += size;
193 }
194 if ( mTodo->doesRecur() ) {
195 pixi.resize(size, pixSize+size);
196 pPix.fill( Qt::blue );
197 p.begin( &pixi );
198 p. drawPixmap ( 0, pixSize, pPix);
199 p.end();
200 pixSize += size;
193 } 201 }
194 // } 202 // }
195 if ( pixi.width() > 1 ) { 203 if ( pixi.width() > 1 ) {
196 setPixmap ( 0,pixi ) ; 204 setPixmap ( 0,pixi ) ;
197 } else { 205 } else {
198 setPixmap ( 0,QPixmap() ) ; 206 setPixmap ( 0,QPixmap() ) ;
199 } 207 }
200} 208}
201void KOTodoViewItem::stateChange(bool state) 209void KOTodoViewItem::stateChange(bool state)
202{ 210{
203 // qDebug("KOTodoViewItem::stateChange "); 211 // qDebug("KOTodoViewItem::stateChange %d ", state);
204 // do not change setting on startup 212 // do not change setting on startup
205 if ( m_init ) return; 213 if ( m_init ) return;
206 if (isOn()!=state) { 214 if (isOn()!=state) {
207 setOn(state); 215 setOn(state);
208 //qDebug("SETON "); 216 //qDebug("SETON ");
209 return; 217 return;
@@ -212,13 +220,24 @@ void KOTodoViewItem::stateChange(bool state)
212 //qDebug("STATECHANGE:nothing to do "); 220 //qDebug("STATECHANGE:nothing to do ");
213 return; 221 return;
214 } 222 }
215 QString keyd = "=="; 223 QString keyd = "==";
216 QString keyt = "=="; 224 QString keyt = "==";
217 //qDebug("KOTodoViewItem::stateChange %s ", text(0).latin1()); 225 //qDebug("KOTodoViewItem::stateChange %s ", text(0).latin1());
218 mTodo->setCompleted(state); 226 if ( mTodo->doesRecur() ){
227 QDateTime start = mTodo->dtStart();
228 mTodo->setCompleted(state);
229 if ( start != mTodo->dtStart() ) {
230 if ( state && !mTodo->isCompleted() ) {
231 setOn( false );
232 state = false;
233 }
234 }
235 } else
236 mTodo->setCompleted(state);
237
219 if (state) mTodo->setCompleted(QDateTime::currentDateTime()); 238 if (state) mTodo->setCompleted(QDateTime::currentDateTime());
220 239
221 if (mTodo->hasDueDate()) { 240 if (mTodo->hasDueDate()) {
222 setText(3, mTodo->dtDueDateStr()); 241 setText(3, mTodo->dtDueDateStr());
223 QDate d = mTodo->dtDue().date(); 242 QDate d = mTodo->dtDue().date();
224 keyd.sprintf("%04d%02d%02d",d.year(),d.month(),d.day()); 243 keyd.sprintf("%04d%02d%02d",d.year(),d.month(),d.day());
@@ -230,12 +249,31 @@ void KOTodoViewItem::stateChange(bool state)
230 setText(4,mTodo->dtDueTimeStr()); 249 setText(4,mTodo->dtDueTimeStr());
231 QTime t = mTodo->dtDue().time(); 250 QTime t = mTodo->dtDue().time();
232 keyt.sprintf("%02d%02d",t.hour(),t.minute()); 251 keyt.sprintf("%02d%02d",t.hour(),t.minute());
233 setSortKey(4,keyt); 252 setSortKey(4,keyt);
234 } 253 }
235 } 254 }
255 if (mTodo->hasStartDate()) {
256 QString skeyt = "==";
257 QString skeyd = "==";
258 setText(5, mTodo->dtStartDateStr());
259 QDate d = mTodo->dtStart().date();
260 skeyd.sprintf("%04d%02d%02d",d.year(),d.month(),d.day());
261
262 if (mTodo->doesFloat()) {
263 setText(6,"");
264 }
265 else {
266 setText(6,mTodo->dtStartTimeStr());
267 QTime t = mTodo->dtStart().time();
268 skeyt.sprintf("%02d%02d",t.hour(),t.minute());
269
270 }
271 setSortKey(5,skeyd);
272 setSortKey(6,skeyt);
273 }
236 if (mTodo->isCompleted()) setSortKey(1,QString::number(9)+keyd+keyt); 274 if (mTodo->isCompleted()) setSortKey(1,QString::number(9)+keyd+keyt);
237 else setSortKey(1,QString::number(mTodo->priority())+keyd+keyt); 275 else setSortKey(1,QString::number(mTodo->priority())+keyd+keyt);
238 276
239 setText(2,i18n("%1 %").arg(QString::number(mTodo->percentComplete()))); 277 setText(2,i18n("%1 %").arg(QString::number(mTodo->percentComplete())));
240 if (mTodo->percentComplete()<100) { 278 if (mTodo->percentComplete()<100) {
241 if (mTodo->isCompleted()) setSortKey(2,QString::number(999)); 279 if (mTodo->isCompleted()) setSortKey(2,QString::number(999));