logsui/logsengine/logssymbianos/src/logsremove.cpp
changeset 15 76d2cf7a585e
parent 9 68f3171a5819
equal deleted inserted replaced
13:52d644758b05 15:76d2cf7a585e
    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