19 #include "logsremove.h" |
19 #include "logsremove.h" |
20 #include "logsmodel.h" |
20 #include "logsmodel.h" |
21 #include "logslogger.h" |
21 #include "logslogger.h" |
22 #include "logsremoveobserver.h" |
22 #include "logsremoveobserver.h" |
23 #include "logsremovestates.h" |
23 #include "logsremovestates.h" |
|
24 #include "logsevent.h" |
24 #include <logcli.h> |
25 #include <logcli.h> |
25 #include <f32file.h> |
26 #include <f32file.h> |
26 #include <logview.h> |
27 #include <logview.h> |
27 //SYSTEM |
28 //SYSTEM |
28 |
29 |
136 } |
137 } |
137 |
138 |
138 if ( !mLogClient ){ |
139 if ( !mLogClient ){ |
139 mLogClient = CLogClient::NewL( *mFsSession ); |
140 mLogClient = CLogClient::NewL( *mFsSession ); |
140 } |
141 } |
|
142 |
|
143 mRemovedEvents.clear(); |
|
144 mRemovedEventDuplicates.clear(); |
141 |
145 |
142 LOGS_QDEBUG( "logs [ENG] <- LogsRemove::initL" ) |
146 LOGS_QDEBUG( "logs [ENG] <- LogsRemove::initL" ) |
143 } |
147 } |
144 |
148 |
145 |
149 |
146 // ---------------------------------------------------------------------------- |
150 // ---------------------------------------------------------------------------- |
147 // LogsRemove::clearEvents |
151 // LogsRemove::clearEvents |
148 // ---------------------------------------------------------------------------- |
152 // ---------------------------------------------------------------------------- |
149 // |
153 // |
150 int LogsRemove::clearEvents(const QList<int>& eventIds, bool& async) |
154 int LogsRemove::clearEvents(const QList<LogsEvent*>& events, bool& async) |
151 { |
155 { |
152 TRAPD( err, clearEventsL(eventIds, async) ); |
156 TRAPD( err, clearEventsL(events, async) ); |
153 return err; |
157 return err; |
154 } |
158 } |
155 |
159 |
156 // ---------------------------------------------------------------------------- |
160 // ---------------------------------------------------------------------------- |
157 // LogsRemove::clearEventsL |
161 // LogsRemove::clearEventsL |
158 // ---------------------------------------------------------------------------- |
162 // ---------------------------------------------------------------------------- |
159 // |
163 // |
160 void LogsRemove::clearEventsL(const QList<int>& eventIds, bool& async) |
164 void LogsRemove::clearEventsL(const QList<LogsEvent*>& events, bool& async) |
161 { |
165 { |
162 LOGS_QDEBUG( "logs [ENG] -> LogsRemove::clearEventsL()") |
166 LOGS_QDEBUG( "logs [ENG] -> LogsRemove::clearEventsL()") |
163 |
167 |
164 async = false; |
168 async = false; |
165 initializeIdBasedRemovalL(); |
169 initializeIdBasedRemovalL(); |
166 |
170 |
167 mRemovedEvents = eventIds; |
171 foreach ( LogsEvent* event, events ){ |
168 mCurrentEventId = eventIds.isEmpty() ? -1 : eventIds.at(0); |
172 mRemovedEvents.append( *event ); |
|
173 for ( int i = 0; i < event->mergedDuplicates().count(); i++ ){ |
|
174 mRemovedEventDuplicates.append( event->mergedDuplicates().at(i) ); |
|
175 } |
|
176 } |
|
177 mCurrentEventId = mRemovedEvents.isEmpty() ? 0 : mRemovedEvents.at(0).logId(); |
169 if ( !mRemovedEvents.isEmpty() ){ |
178 if ( !mRemovedEvents.isEmpty() ){ |
170 async = startClearingL(); |
179 async = startClearingL(); |
171 } |
180 } |
172 |
181 |
173 LOGS_QDEBUG_2( "logs [ENG] <- LogsRemove::clearEventsL(): async", async ) |
182 LOGS_QDEBUG_2( "logs [ENG] <- LogsRemove::clearEventsL(): async", async ) |
247 // LogsRemove::observer |
256 // LogsRemove::observer |
248 // ---------------------------------------------------------------------------- |
257 // ---------------------------------------------------------------------------- |
249 // |
258 // |
250 LogsRemoveObserver& LogsRemove::observer() |
259 LogsRemoveObserver& LogsRemove::observer() |
251 { |
260 { |
252 return mObserver; |
261 return *this; |
253 } |
262 } |
254 |
263 |
255 // ---------------------------------------------------------------------------- |
264 // ---------------------------------------------------------------------------- |
256 // LogsRemove::removedEvents |
265 // LogsRemove::removedEvents |
257 // ---------------------------------------------------------------------------- |
266 // ---------------------------------------------------------------------------- |
258 // |
267 // |
259 QList<int>& LogsRemove::removedEvents() |
268 QList<LogsEvent>& LogsRemove::removedEvents() |
260 { |
269 { |
261 return mRemovedEvents; |
270 return mRemovedEvents; |
262 } |
271 } |
263 |
272 |
264 // ---------------------------------------------------------------------------- |
273 // ---------------------------------------------------------------------------- |
268 int LogsRemove::clearType() |
277 int LogsRemove::clearType() |
269 { |
278 { |
270 return mClearType; |
279 return mClearType; |
271 } |
280 } |
272 |
281 |
|
282 // ---------------------------------------------------------------------------- |
|
283 // Don't forward completion yet if there is associated duplicate events which |
|
284 // need to be still deleted. |
|
285 // ---------------------------------------------------------------------------- |
|
286 // |
|
287 void LogsRemove::removeCompleted() |
|
288 { |
|
289 LOGS_QDEBUG( "logs [ENG] -> LogsRemove::removeCompleted()") |
|
290 |
|
291 if ( !mRemovedEventDuplicates.isEmpty() ){ |
|
292 TRAPD( err, removeAssociatedDuplicatesL() ); |
|
293 if ( err ){ |
|
294 mObserver.logsRemoveErrorOccured(err); |
|
295 } |
|
296 } |
|
297 else { |
|
298 mObserver.removeCompleted(); |
|
299 } |
|
300 |
|
301 LOGS_QDEBUG( "logs [ENG] <- LogsRemove::removeCompleted()") |
|
302 } |
|
303 |
|
304 // ---------------------------------------------------------------------------- |
|
305 // LogsRemove::logsRemoveErrorOccured |
|
306 // ---------------------------------------------------------------------------- |
|
307 // |
|
308 void LogsRemove::logsRemoveErrorOccured(int err) |
|
309 { |
|
310 LOGS_QDEBUG( "logs [ENG] -> LogsRemove::logsRemoveErrorOccured()") |
|
311 |
|
312 mObserver.logsRemoveErrorOccured(err); |
|
313 |
|
314 LOGS_QDEBUG( "logs [ENG] <- LogsRemove::logsRemoveErrorOccured()") |
|
315 } |
|
316 |
|
317 // ---------------------------------------------------------------------------- |
|
318 // LogsRemove::removeAssociatedDuplicatesL |
|
319 // ---------------------------------------------------------------------------- |
|
320 // |
|
321 void LogsRemove::removeAssociatedDuplicatesL() |
|
322 { |
|
323 __ASSERT_ALWAYS( !mRemovedEventDuplicates.isEmpty(), User::Leave( KErrNotFound ) ); |
|
324 |
|
325 LogsEvent event = mRemovedEventDuplicates.takeFirst(); |
|
326 mRemovedEvents.clear(); |
|
327 mRemovedEvents.append(event); |
|
328 mCurrentEventId = mRemovedEvents.at(0).logId(); |
|
329 mCurrentStateMachine = &mRemoveStates; |
|
330 setCurrentState(*mRemoveStates.at(0)); |
|
331 startClearingL(); |
|
332 } |
273 |
333 |
274 // End of file |
334 // End of file |
275 |
335 |