-rw-r--r-- | libkcal/todo.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/libkcal/todo.cpp b/libkcal/todo.cpp index 29f725f..2201814 100644 --- a/libkcal/todo.cpp +++ b/libkcal/todo.cpp | |||
@@ -94,32 +94,33 @@ void Todo::setRunning( bool run ) | |||
94 | if ( run == mRunning ) | 94 | if ( run == mRunning ) |
95 | return; | 95 | return; |
96 | //qDebug("Todo::setRunning %d ", run); | 96 | //qDebug("Todo::setRunning %d ", run); |
97 | if ( !mRunSaveTimer ) { | 97 | if ( !mRunSaveTimer ) { |
98 | mRunSaveTimer = new QTimer ( this ); | 98 | mRunSaveTimer = new QTimer ( this ); |
99 | connect ( mRunSaveTimer, SIGNAL( timeout() ), this , SLOT ( timerSlotSaveRunningInfoToFile() ) ); | 99 | connect ( mRunSaveTimer, SIGNAL( timeout() ), this , SLOT ( timerSlotSaveRunningInfoToFile() ) ); |
100 | } | 100 | } |
101 | mRunning = run; | 101 | mRunning = run; |
102 | mRunLastSave = QDateTime::currentDateTime(); | 102 | mRunLastSave = QDateTime::currentDateTime(); |
103 | if ( mRunning ) { | 103 | if ( mRunning ) { |
104 | restartSaveTimer( SAVETIMER_TIMEOUT_SECONDS ); | 104 | restartSaveTimer( SAVETIMER_TIMEOUT_SECONDS ); |
105 | mRunStart = QDateTime::currentDateTime(); | 105 | mRunStart = QDateTime::currentDateTime(); |
106 | } else { | 106 | } else { |
107 | mRunSaveTimer->stop(); | 107 | mRunSaveTimer->stop(); |
108 | saveRunningInfoToFile(); | 108 | saveRunningInfoToFile(); |
109 | } | 109 | } |
110 | mLastSavedFileName = ""; | ||
110 | } | 111 | } |
111 | void Todo::saveRunningInfo( QString comment, QDateTime start, QDateTime end ) | 112 | void Todo::saveRunningInfo( QString comment, QDateTime start, QDateTime end ) |
112 | { | 113 | { |
113 | if ( !mRunning) return; | 114 | if ( !mRunning) return; |
114 | mRunning = false; | 115 | mRunning = false; |
115 | mRunStart = start; | 116 | mRunStart = start; |
116 | mRunEnd = end; | 117 | mRunEnd = end; |
117 | saveRunningInfoToFile( comment ); | 118 | saveRunningInfoToFile( comment ); |
118 | } | 119 | } |
119 | void Todo::restartSaveTimer( int secs ) | 120 | void Todo::restartSaveTimer( int secs ) |
120 | { | 121 | { |
121 | mRunSaveTimer->start( secs * 1000 ); | 122 | mRunSaveTimer->start( secs * 1000 ); |
122 | mRunLastSave = QDateTime::currentDateTime(); | 123 | mRunLastSave = QDateTime::currentDateTime(); |
123 | mCurrentTimerDelay = secs; | 124 | mCurrentTimerDelay = secs; |
124 | } | 125 | } |
125 | void Todo::timerSlotSaveRunningInfoToFile() | 126 | void Todo::timerSlotSaveRunningInfoToFile() |
@@ -177,32 +178,38 @@ void Todo::saveRunningInfoToFile( QString comment ) | |||
177 | to->setHasStartDate( true ); | 178 | to->setHasStartDate( true ); |
178 | to->setDtDue( mRunEnd ); | 179 | to->setDtDue( mRunEnd ); |
179 | to->setHasDueDate( true ); | 180 | to->setHasDueDate( true ); |
180 | to->setUid( file ); | 181 | to->setUid( file ); |
181 | if ( !comment.isEmpty() ) { | 182 | if ( !comment.isEmpty() ) { |
182 | QString des = to->description(); | 183 | QString des = to->description(); |
183 | if ( des.isEmpty () ) | 184 | if ( des.isEmpty () ) |
184 | to->setDescription( "TT-Note: " + comment ); | 185 | to->setDescription( "TT-Note: " + comment ); |
185 | else | 186 | else |
186 | to->setDescription( "TT-Note: " + comment +"\n" + des ); | 187 | to->setDescription( "TT-Note: " + comment +"\n" + des ); |
187 | } | 188 | } |
188 | cal.addIncidence( to ); | 189 | cal.addIncidence( to ); |
189 | ICalFormat format( false ); | 190 | ICalFormat format( false ); |
190 | file = dir +"/" +file +".ics"; | 191 | file = dir +"/" +file +".ics"; |
191 | format.save( &cal, file ); | 192 | format.save( &cal, file ); |
192 | saveParents(); | 193 | saveParents(); |
194 | if ( !mLastSavedFileName.isEmpty() ) { | ||
195 | if ( mLastSavedFileName != file ) { | ||
196 | QFile::remove( mLastSavedFileName ); | ||
197 | } | ||
198 | } | ||
199 | mLastSavedFileName = file; | ||
193 | #ifndef DESKTOP_VERSION | 200 | #ifndef DESKTOP_VERSION |
194 | //QPEApplication::setTempScreenSaverMode ( QPEApplication::Enable ); | 201 | //QPEApplication::setTempScreenSaverMode ( QPEApplication::Enable ); |
195 | #endif | 202 | #endif |
196 | } | 203 | } |
197 | void Todo::saveParents() | 204 | void Todo::saveParents() |
198 | { | 205 | { |
199 | if (!relatedTo() ) | 206 | if (!relatedTo() ) |
200 | return; | 207 | return; |
201 | Incidence * inc = relatedTo(); | 208 | Incidence * inc = relatedTo(); |
202 | if ( inc->typeID() != todoID ) | 209 | if ( inc->typeID() != todoID ) |
203 | return; | 210 | return; |
204 | Todo* to = (Todo*)inc; | 211 | Todo* to = (Todo*)inc; |
205 | bool saveTodo = false; | 212 | bool saveTodo = false; |
206 | QString file = KGlobalSettings::timeTrackerDir() + "/"+ to->uid() + ".ics"; | 213 | QString file = KGlobalSettings::timeTrackerDir() + "/"+ to->uid() + ".ics"; |
207 | QFileInfo fi ( file ); | 214 | QFileInfo fi ( file ); |
208 | if ( fi.exists() ) { | 215 | if ( fi.exists() ) { |