-rw-r--r-- | libkcal/todo.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/libkcal/todo.cpp b/libkcal/todo.cpp index d062492..62b74f1 100644 --- a/libkcal/todo.cpp +++ b/libkcal/todo.cpp | |||
@@ -74,74 +74,80 @@ void Todo::stopRunning() | |||
74 | if ( !mRunning ) | 74 | if ( !mRunning ) |
75 | return; | 75 | return; |
76 | if ( mRunSaveTimer ) | 76 | if ( mRunSaveTimer ) |
77 | mRunSaveTimer->stop(); | 77 | mRunSaveTimer->stop(); |
78 | mRunning = false; | 78 | mRunning = false; |
79 | } | 79 | } |
80 | void Todo::setRunning( bool run ) | 80 | void Todo::setRunning( bool run ) |
81 | { | 81 | { |
82 | if ( run == mRunning ) | 82 | if ( run == mRunning ) |
83 | return; | 83 | return; |
84 | //qDebug("Todo::setRunning %d ", run); | 84 | //qDebug("Todo::setRunning %d ", run); |
85 | if ( !mRunSaveTimer ) { | 85 | if ( !mRunSaveTimer ) { |
86 | mRunSaveTimer = new QTimer ( this ); | 86 | mRunSaveTimer = new QTimer ( this ); |
87 | connect ( mRunSaveTimer, SIGNAL( timeout() ), this , SLOT ( saveRunningInfoToFile() ) ); | 87 | connect ( mRunSaveTimer, SIGNAL( timeout() ), this , SLOT ( saveRunningInfoToFile() ) ); |
88 | } | 88 | } |
89 | mRunning = run; | 89 | mRunning = run; |
90 | if ( mRunning ) { | 90 | if ( mRunning ) { |
91 | mRunSaveTimer->start( 1000 * 60 * 5 ); // 5 min | 91 | mRunSaveTimer->start( 1000 * 60 * 5 ); // 5 min |
92 | mRunStart = QDateTime::currentDateTime(); | 92 | mRunStart = QDateTime::currentDateTime(); |
93 | } else { | 93 | } else { |
94 | mRunSaveTimer->stop(); | 94 | mRunSaveTimer->stop(); |
95 | saveRunningInfoToFile(); | 95 | saveRunningInfoToFile(); |
96 | } | 96 | } |
97 | } | 97 | } |
98 | 98 | void Todo::saveRunningInfo( QString comment, QDateTime start, QDateTime end ) | |
99 | { | ||
100 | mRunStart = start; | ||
101 | mRunEnd = end; | ||
102 | saveRunningInfoToFile( comment ); | ||
103 | } | ||
99 | void Todo::saveRunningInfoToFile() | 104 | void Todo::saveRunningInfoToFile() |
100 | { | 105 | { |
106 | mRunEnd = QDateTime::currentDateTime(); | ||
101 | saveRunningInfoToFile( QString::null ); | 107 | saveRunningInfoToFile( QString::null ); |
102 | } | 108 | } |
103 | void Todo::saveRunningInfoToFile( QString comment ) | 109 | void Todo::saveRunningInfoToFile( QString comment ) |
104 | { | 110 | { |
105 | //qDebug("Todo::saveRunningInfoToFile() %s", summary().latin1()); | 111 | //qDebug("Todo::saveRunningInfoToFile() %s", summary().latin1()); |
106 | if ( mRunStart.secsTo ( QDateTime::currentDateTime() ) < 10 ) { | 112 | if ( mRunStart.secsTo ( QDateTime::currentDateTime() ) < 10 ) { |
107 | qDebug("Running time < 30 seconds. Skipped. "); | 113 | qDebug("Running time < 30 seconds. Skipped. "); |
108 | return; | 114 | return; |
109 | } | 115 | } |
110 | QString dir = KGlobalSettings::timeTrackerDir(); | 116 | QString dir = KGlobalSettings::timeTrackerDir(); |
111 | //qDebug("%s ", dir.latin1()); | 117 | //qDebug("%s ", dir.latin1()); |
112 | QString file = "%1%2%3-%4%5%6-"; | 118 | QString file = "%1%2%3-%4%5%6-"; |
113 | file = file.arg( mRunStart.date().year(), 4).arg( mRunStart.date().month(),2 ).arg( mRunStart.date().day(), 2 ).arg( mRunStart.time().hour(),2 ).arg( mRunStart.time().minute(),2 ).arg( mRunStart.time().second(),2 ); | 119 | file = file.arg( mRunStart.date().year(), 4).arg( mRunStart.date().month(),2 ).arg( mRunStart.date().day(), 2 ).arg( mRunStart.time().hour(),2 ).arg( mRunStart.time().minute(),2 ).arg( mRunStart.time().second(),2 ); |
114 | file.replace ( QRegExp (" "), "0" ); | 120 | file.replace ( QRegExp (" "), "0" ); |
115 | file += uid(); | 121 | file += uid(); |
116 | //qDebug("File %s ",file.latin1() ); | 122 | //qDebug("File %s ",file.latin1() ); |
117 | CalendarLocal cal; | 123 | CalendarLocal cal; |
118 | cal.setLocalTime(); | 124 | cal.setLocalTime(); |
119 | Todo * to = (Todo*) clone(); | 125 | Todo * to = (Todo*) clone(); |
120 | to->setFloats( false ); | 126 | to->setFloats( false ); |
121 | to->setDtStart( mRunStart ); | 127 | to->setDtStart( mRunStart ); |
122 | to->setHasStartDate( true ); | 128 | to->setHasStartDate( true ); |
123 | to->setDtDue( QDateTime::currentDateTime() ); | 129 | to->setDtDue( mRunEnd ); |
124 | to->setHasDueDate( true ); | 130 | to->setHasDueDate( true ); |
125 | to->setUid( file ); | 131 | to->setUid( file ); |
126 | if ( !comment.isEmpty() ) { | 132 | if ( !comment.isEmpty() ) { |
127 | QString des = to->description(); | 133 | QString des = to->description(); |
128 | if ( des.isEmpty () ) | 134 | if ( des.isEmpty () ) |
129 | to->setDescription( "TT-Note: " + comment ); | 135 | to->setDescription( "TT-Note: " + comment ); |
130 | else | 136 | else |
131 | to->setDescription( "TT-Note: " + comment +"\n" + des ); | 137 | to->setDescription( "TT-Note: " + comment +"\n" + des ); |
132 | } | 138 | } |
133 | cal.addIncidence( to ); | 139 | cal.addIncidence( to ); |
134 | ICalFormat format; | 140 | ICalFormat format; |
135 | file = dir +"/" +file +".ics"; | 141 | file = dir +"/" +file +".ics"; |
136 | format.save( &cal, file ); | 142 | format.save( &cal, file ); |
137 | saveParents(); | 143 | saveParents(); |
138 | 144 | ||
139 | } | 145 | } |
140 | void Todo::saveParents() | 146 | void Todo::saveParents() |
141 | { | 147 | { |
142 | if (!relatedTo() ) | 148 | if (!relatedTo() ) |
143 | return; | 149 | return; |
144 | Incidence * inc = relatedTo(); | 150 | Incidence * inc = relatedTo(); |
145 | if ( inc->typeID() != todoID ) | 151 | if ( inc->typeID() != todoID ) |
146 | return; | 152 | return; |
147 | Todo* to = (Todo*)inc; | 153 | Todo* to = (Todo*)inc; |