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) (side-by-side diff)
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
@@ -190,6 +190,14 @@ void KOTodoViewItem::setMyPixmap()
p. drawPixmap ( 0, pixSize, pPix);
p.end();
pixSize += size;
+ }
+ if ( mTodo->doesRecur() ) {
+ pixi.resize(size, pixSize+size);
+ pPix.fill( Qt::blue );
+ p.begin( &pixi );
+ p. drawPixmap ( 0, pixSize, pPix);
+ p.end();
+ pixSize += size;
}
// }
if ( pixi.width() > 1 ) {
@@ -200,7 +208,7 @@ void KOTodoViewItem::setMyPixmap()
}
void KOTodoViewItem::stateChange(bool state)
{
- // qDebug("KOTodoViewItem::stateChange ");
+ // qDebug("KOTodoViewItem::stateChange %d ", state);
// do not change setting on startup
if ( m_init ) return;
if (isOn()!=state) {
@@ -215,7 +223,18 @@ void KOTodoViewItem::stateChange(bool state)
QString keyd = "==";
QString keyt = "==";
//qDebug("KOTodoViewItem::stateChange %s ", text(0).latin1());
- mTodo->setCompleted(state);
+ if ( mTodo->doesRecur() ){
+ QDateTime start = mTodo->dtStart();
+ mTodo->setCompleted(state);
+ if ( start != mTodo->dtStart() ) {
+ if ( state && !mTodo->isCompleted() ) {
+ setOn( false );
+ state = false;
+ }
+ }
+ } else
+ mTodo->setCompleted(state);
+
if (state) mTodo->setCompleted(QDateTime::currentDateTime());
if (mTodo->hasDueDate()) {
@@ -233,6 +252,25 @@ void KOTodoViewItem::stateChange(bool state)
setSortKey(4,keyt);
}
}
+ if (mTodo->hasStartDate()) {
+ QString skeyt = "==";
+ QString skeyd = "==";
+ setText(5, mTodo->dtStartDateStr());
+ QDate d = mTodo->dtStart().date();
+ skeyd.sprintf("%04d%02d%02d",d.year(),d.month(),d.day());
+
+ if (mTodo->doesFloat()) {
+ setText(6,"");
+ }
+ else {
+ setText(6,mTodo->dtStartTimeStr());
+ QTime t = mTodo->dtStart().time();
+ skeyt.sprintf("%02d%02d",t.hour(),t.minute());
+
+ }
+ setSortKey(5,skeyd);
+ setSortKey(6,skeyt);
+ }
if (mTodo->isCompleted()) setSortKey(1,QString::number(9)+keyd+keyt);
else setSortKey(1,QString::number(mTodo->priority())+keyd+keyt);