diff -r 5b238bc8ffb6 -r 01504893d9cb photosgallery/viewframework/commandhandlers/commandhandlerbase/src/glxmpxcommandcommandhandler.cpp --- a/photosgallery/viewframework/commandhandlers/commandhandlerbase/src/glxmpxcommandcommandhandler.cpp Wed Sep 15 12:13:06 2010 +0300 +++ b/photosgallery/viewframework/commandhandlers/commandhandlerbase/src/glxmpxcommandcommandhandler.cpp Wed Oct 13 14:32:09 2010 +0300 @@ -43,12 +43,9 @@ #include #include #include // for CGlxResourceUtilities -#include -#include -#include -#include -#include +/// @todo Move elsewhere +const TInt KGlxMaxNoteLength = 256; // ----------------------------------------------------------------------------- // ConstructL @@ -123,85 +120,40 @@ if ( consume ) { - CGlxNavigationalState* navState = CGlxNavigationalState::InstanceL(); - CleanupClosePushL(*navState); - CMPXCollectionPath* path = navState->StateLC(); - CreateImageViewerInstanceL(); - TBool privatePath = iImageViewerInstance->IsPrivate(); - TBool viewerPathId = (path->Id() == TMPXItemId(KGlxCollectionPluginImageViewerImplementationUid)) ? ETrue : EFalse; - iImageViewerInstance->CloseImageDecoder(); - DeleteImageViewerInstance(); - CleanupStack::PopAndDestroy(path); - CleanupStack::PopAndDestroy(navState); - - if (viewerPathId && !privatePath) + // get a command object from the deriving class. + // Allow deriving class modify the consume value, even without + // creating a commmand (in case it wants to filter out a command) + CMPXCommand* command = CreateCommandL(aCommandId, aList, consume); + + if (command) { - RFs fs; - CleanupClosePushL(fs); - User::LeaveIfError(fs.Connect()); - ContentAccess::CManager *manager = ContentAccess::CManager::NewL(); - CleanupStack::PushL(manager); - fs.SetAtt(focusedMedia.Uri(), 0, KEntryAttReadOnly); - TInt ret = manager->DeleteFile(focusedMedia.Uri()); - if(ret != KErrNone) + CleanupStack::PushL(command); + + if ( CommandInfo(aCommandId).iStopAnimationForExecution ) { - CreateImageViewerInstanceL(); - iImageViewerInstance->CreateImageDecoderL(); - DeleteImageViewerInstance(); - HBufC* noteText = StringLoader::LoadL(R_GLX_DELETION_FAILURE_NOTE); - CleanupStack::PushL(noteText); - const TDesC& itemName = focusedMedia.Uri(); - TParsePtrC parse(focusedMedia.Uri()); - TBuf text; - StringLoader::Format(text, *noteText, -1, parse.Name()); - GlxGeneralUiUtilities::ShowErrorNoteL(text, ETrue); - CleanupStack::PopAndDestroy(noteText); - } - CleanupStack::PopAndDestroy(manager); - CleanupStack::PopAndDestroy(&fs); - if(ret == KErrNone) - { - iAppUi->ProcessCommandL(EAknSoftkeyExit); + // Stop GIF animation + iAppUi->ProcessCommandL(EGlxCmdDisableAnimations); + iAnimationStopped = ETrue; } - } - else - { - // get a command object from the deriving class. - // Allow deriving class modify the consume value, even without - // creating a commmand (in case it wants to filter out a command) - CMPXCommand* command = CreateCommandL(aCommandId, aList, consume); - - if (command) - { - CleanupStack::PushL(command); - - if (CommandInfo(aCommandId).iStopAnimationForExecution) - { - // Stop GIF animation - iAppUi->ProcessCommandL(EGlxCmdDisableAnimations); - iAnimationStopped = ETrue; - } + + // Add the pointer of this command handler as session id into the message + // This can be used to ensure that this object is the intended recipient + // of a message + command->SetTObjectValueL(KMPXCommandGeneralSessionId, + static_cast(this)); - // Add the pointer of this command handler as session id into the message - // This can be used to ensure that this object is the intended recipient - // of a message - command->SetTObjectValueL ( - KMPXCommandGeneralSessionId, - static_cast (this)); - - aList.AddMediaListObserverL(this); - - aList.CommandL(*command); - - // raise progress note. Note will be closed when complete message received - // For EGlxCmdAddMedia we dont need to show dialog as EGlxCmdAddToAlbum or - // EGlxCmdAddTag will show processing dialog. - if (aCommandId != EGlxCmdAddMedia) - { - ProgressNoteL(aCommandId); - } - CleanupStack::PopAndDestroy(command); + aList.AddMediaListObserverL(this); + + aList.CommandL(*command); + + // raise progress note. Note will be closed when complete message received + // For EGlxCmdAddMedia we dont need to show dialog as EGlxCmdAddToAlbum or + // EGlxCmdAddTag will show processing dialog. + if (aCommandId != EGlxCmdAddMedia) + { + ProgressNoteL(aCommandId); } + CleanupStack::PopAndDestroy(command); } } @@ -429,7 +381,7 @@ // noteText has a place for a title string in it const TDesC& itemName = media->ValueText(KMPXMediaGeneralTitle); - TBuf text; + TBuf text; StringLoader::Format(text, *noteText, -1, itemName); // show popup @@ -464,7 +416,7 @@ // item count TInt count = aMediaList.SelectionCount(); - TBuf text; + TBuf text; GlxGeneralUiUtilities::FormatString(text, *noteText, -1, count, ETrue); // show popup @@ -531,26 +483,21 @@ // get progress note HBufC* progressText = ProgressTextL(aCommandId); __ASSERT_DEBUG(progressText, Panic(EGlxPanicNullDescriptor)); - CleanupStack::PushL(progressText); + CleanupStack::PushL(progressText); // construct progress dialog - iProgressDialog = new (ELeave) CAknProgressDialog( - (REINTERPRET_CAST(CEikDialog**,&iProgressDialog))); - iProgressDialog->PrepareLC(R_GLX_PROGRESS_NOTE); - if (aCommandId == EGlxCmdRename) - { - iProgressDialog->ButtonGroupContainer().SetCommandSetL( - R_AVKON_SOFTKEYS_EMPTY); - } - iProgressDialog->SetTextL(*progressText); - iProgressDialog->SetCallback(this); - + iProgressDialog = new(ELeave)CAknProgressDialog( + (REINTERPRET_CAST(CEikDialog**,&iProgressDialog))); + iProgressDialog->PrepareLC(R_GLX_PROGRESS_NOTE); + iProgressDialog->SetTextL(*progressText); + iProgressDialog->SetCallback(this); + // pick up progress info so that progress notification can be later updated - iProgressInfo = iProgressDialog->GetProgressInfoL(); - + iProgressInfo = iProgressDialog->GetProgressInfoL(); + // launch the note - iProgressDialog->RunLD(); - CleanupStack::PopAndDestroy(progressText); - } + iProgressDialog->RunLD(); + CleanupStack::PopAndDestroy(progressText); + } // ----------------------------------------------------------------------------- // DismissProgressNoteL @@ -752,27 +699,3 @@ TRAP_IGNORE(DismissProgressNoteL()); } } - -// ----------------------------------------------------------------------------- -// CreateImageViewerInstanceL -// ----------------------------------------------------------------------------- -// -void CGlxMpxCommandCommandHandler::CreateImageViewerInstanceL() - { - TRACER("CGlxMpxCommandCommandHandler::CreateImageViewerInstanceL"); - iImageViewerInstance = CGlxImageViewerManager::InstanceL(); - __ASSERT_ALWAYS(iImageViewerInstance, Panic(EGlxPanicNullPointer)); - } - -// ----------------------------------------------------------------------------- -// DeleteImageViewerInstance -// ----------------------------------------------------------------------------- -// -void CGlxMpxCommandCommandHandler::DeleteImageViewerInstance() - { - TRACER("CGlxMpxCommandCommandHandler::DeleteImageViewerInstance"); - if ( iImageViewerInstance ) - { - iImageViewerInstance->DeleteInstance(); - } - }