--- a/imageeditor/imageeditorApp/src/ImageEditorAppUi.cpp Fri Jan 29 13:53:17 2010 +0200
+++ b/imageeditor/imageeditorApp/src/ImageEditorAppUi.cpp Thu Jun 03 18:57:10 2010 +0800
@@ -1,30 +1,27 @@
/*
-* Copyright (c) 2010 Ixonos Plc.
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - Initial contribution
-*
-* Contributors:
-* Ixonos Plc
-*
-* Description:
-* Image Editor AppUI class.
-*
-*/
-
-
+ * Copyright (c) 2010 Ixonos Plc.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - Initial contribution
+ *
+ * Contributors:
+ * Ixonos Plc
+ *
+ * Description:
+ * Image Editor AppUI class.
+ *
+ */
// INCLUDE FILES
#include <fbs.h>
#include <f32file.h>
#include <badesca.h>
#include <bautils.h>
#include <e32math.h>
-
#include <aknnotifystd.h>
#include <aknwaitdialog.h>
#include <AknGlobalNote.h>
@@ -34,1110 +31,1097 @@
#include <aknnotewrappers.h>
#include <CMessageData.h>
#include <e32property.h>
-
#include <AknDlgShut.h>
#include <CAknFileNamePromptDialog.h>
#include <CAknMemorySelectionDialog.h>
#include <PathInfo.h>
#include <csxhelp/sie.hlp.hrh>
-
#ifdef VERBOSE
#include <eikenv.h>
#endif
-
#include <AknCommonDialogsDynMem.h>
#include <CAknMemorySelectionDialogMultiDrive.h>
-
#include <ImageEditor.rsg>
#include "ImageEditorUI.hrh"
#include "ImageEditorPanics.h"
-
#include "imageeditoruids.hrh"
#include "commondefs.h"
-//#include "platform_security_literals.hrh"
-
#include "ImageEditorApp.h"
#include "ImageEditorAppUi.h"
#include "ImageEditorUIView.h"
#include "ImageEditorUI.hrh"
#include "ImageEditorError.h"
#include "PluginInfo.h"
-
#include "ImageEditorPluginLocator.h"
#include "ImageEditorPluginManager.h"
#include "ImageEditorImageController.h"
-
+#include "ImageEditorUIContainer.h"
#include "ImageEditorUtils.h"
#include "ResolutionUtil.h"
#include "Callback.h"
-
// CONSTANTS
-
// Panic category
_LIT(KComponentName, "ImageEditorAppUi");
-
-const TInt KObConstructCallBackID = 1;
-const TInt KObInitPluginID = 1000;
-const TInt KObReturnFromPluginID = 1001;
-const TInt KObCancelCallbackID = 1002;
-const TInt KObUndoDCallbackID = 1003;
-const TInt KObSendCallbackID = 1004;
-const TInt KObPrintCallbackID = 1005;
-const TInt KObSaveCallbackID = 1006;
+_LIT(KDrawPlugin,"draw.pgn");
+_LIT(KNull,"");
+
+const TInt KObConstructCallBackID = 1;
+const TInt KObInitPluginID = 1000;
+const TInt KObReturnFromPluginID = 1001;
+const TInt KObCancelCallbackID = 1002;
+const TInt KObUndoDCallbackID = 1003;
+const TInt KObSendCallbackID = 1004;
+const TInt KObPrintCallbackID = 1005;
+const TInt KObSaveCallbackID = 1006;
//=============================================================================
CImageEditorAppUi::CImageEditorAppUi() :
- // Initialize application flags and variables
- iDocumentName(),
- iSourceFileName(),
- iImageSaved (EFalse),
- iForeground (ETrue),
- iExitFromApp (EFalse),
- iSaveOnExit (ETrue),
- iSysExit (EFalse),
- iBusy (ETrue),
- iOrientationChanged (EFalse),
- iSaving (EFalse),
- iSending (EFalse),
- iPrinting (EFalse),
- iCancelling (EFalse),
- iFullScreen (EFalse),
- iPluginsScanned (EFalse),
- iImageLoaded (EFalse),
- iEditorReady (EFalse),
- iCancelTextInputActive (EFalse),
- iProcessPriorityAltered (EFalse)
-{
-
-}
+ // Initialize application flags and variables
+ iDocumentName(), iSourceFileName(), iImageSaved(EFalse),
+ iForeground(ETrue), iExitFromApp(EFalse), iSaveOnExit(ETrue),
+ iSysExit(EFalse), iBusy(ETrue), iOrientationChanged(EFalse),
+ iSaving(EFalse), iSending(EFalse), iPrinting(EFalse), iCancelling(
+ EFalse), iFullScreen(EFalse), iPluginsScanned(EFalse),
+ iImageLoaded(EFalse), iEditorReady(EFalse), iCancelTextInputActive(
+ EFalse), iProcessPriorityAltered(EFalse)
+ {
+
+ }
//=============================================================================
void CImageEditorAppUi::ConstructL()
-{
- LOG(KImageEditorLogFile, "CImageEditorAppUi::ConstructL");
+ {
+ LOG(KImageEditorLogFile, "CImageEditorAppUi::ConstructL");
// Initialize UI with standard values, read application resource file,
// read default document
#ifdef LANDSCAPE_ONLY
- BaseConstructL( EAppOrientationLandscape | EAknEnableSkin | EAknEnableMSK );
+ BaseConstructL( EAppOrientationLandscape | EAknEnableSkin | EAknEnableMSK );
#else
#ifdef LANDSCAPE_SUPPORT
- BaseConstructL( EAppOrientationAutomatic|EAknEnableSkin | EAknEnableMSK );
+ BaseConstructL(EAppOrientationAutomatic | EAknEnableSkin | EAknEnableMSK);
#else
- BaseConstructL( EAknEnableSkin | EAknEnableMSK );
+ BaseConstructL( EAknEnableSkin | EAknEnableMSK );
#endif
#endif // LANDSCAPE_SUPPORT
-
- // Set busy
- SetBusy();
-
- // Create main view
- CImageEditorUIView * view = new (ELeave) CImageEditorUIView;
- CleanupStack::PushL (view);
- view->ConstructL();
- view->ConstructMenuAndCbaEarlyL();
+ // Set busy
+ SetBusy();
+
+ // Create main view
+ CImageEditorUIView * view = new (ELeave) CImageEditorUIView;
+ CleanupStack::PushL(view);
+ view->ConstructL();
+ view->ConstructMenuAndCbaEarlyL();
iEditorView = view;
- AddViewL (view); // transfers ownership
- CleanupStack::Pop(); // view
- LOG (KImageEditorLogFile, "CImageEditorAppUi: Main view created");
-
- // Activate view
- ActivateLocalViewL ( iEditorView->Id() );
- LOG(KImageEditorLogFile, "CImageEditorAppUi: View activated");
-
- // Set default navi pane text
- ClearTitlePaneTextL();
- ClearNaviPaneTextL();
-
- // Create CObCallback instance
+ AddViewL(view); // transfers ownership
+ CleanupStack::Pop(); // view
+ LOG (KImageEditorLogFile, "CImageEditorAppUi: Main view created");
+
+ // Activate view
+ ActivateLocalViewL(iEditorView->Id());
+ LOG(KImageEditorLogFile, "CImageEditorAppUi: View activated");
+
+ // Set default navi pane text
+ ClearTitlePaneTextL();
+ ClearNaviPaneTextL();
+
+ // Create CObCallback instance
iConstructionState = EConstructionStateAlloc;
- iCallback = CObCallback::NewL ( (MObCallbackMethod *)this );
- iCallback->DoCallback (KObConstructCallBackID);
-
- // Volume key observer instance
- iVolumeKeyObserver = CImageEditorRemConObserver::NewL( *this );
-
+ iCallback = CObCallback::NewL((MObCallbackMethod *) this);
+ iCallback->DoCallback(KObConstructCallBackID);
+
+ // Volume key observer instance
+ iVolumeKeyObserver = CImageEditorRemConObserver::NewL(*this);
+
+ iStandby = EFalse;
#ifdef S60_31_VOLUME_KEYS
iMGXRemConTarget = CMGXRemConTarget::NewL( this );
#endif
-}
+ }
//=============================================================================
CImageEditorAppUi::~CImageEditorAppUi()
-{
- LOG(KImageEditorLogFile, "CImageEditorAppUi::~CImageEditorAppUi() starting...");
+ {
+ LOG(KImageEditorLogFile, "CImageEditorAppUi::~CImageEditorAppUi() starting...");
//KillWaitNote();
if (iWaitNote != NULL)
{
- delete iWaitNote;
- iWaitNote = NULL;
+ delete iWaitNote;
+ iWaitNote = NULL;
}
-
- delete iLocator;
- delete iImageController;
- delete iEditorManager;
+
+ delete iLocator;
+ delete iImageController;
+ delete iEditorManager;
delete iSendAppUi;
delete iCallback;
iSourceImageMgAlbumIdList.Close();
- iEditorView = NULL;
-
+ iEditorView = NULL;
+
iFile.Close();
-
+
#ifdef S60_31_VOLUME_KEYS
delete iMGXRemConTarget;
#endif
-
+
// deleted by CCoeEnv
iResolutionUtil = NULL;
delete iVolumeKeyObserver;
- LOG(KImageEditorLogFile, "CImageEditorAppUi: AppUi deleted");
-}
+ LOG(KImageEditorLogFile, "CImageEditorAppUi: AppUi deleted");
+ }
//=============================================================================
-void CImageEditorAppUi::OperationReadyL (
- TOperationCode aOpId,
- TInt aError
- )
-{
- LOGFMT2(KImageEditorLogFile, "CImageEditorAppUi:OperationReadyL (aOpId:%d, aError:%d)", (TInt)aOpId, aError);
-
- // Kill wait note
- KillWaitNote();
-
- // Handle error
- if ( aError != KErrNone )
+void CImageEditorAppUi::OperationReadyL(TOperationCode aOpId, TInt aError)
{
- switch ( aOpId )
+ LOGFMT2(KImageEditorLogFile, "CImageEditorAppUi:OperationReadyL (aOpId:%d, aError:%d)", (TInt)aOpId, aError);
+
+ // Kill wait note
+ KillWaitNote();
+
+ // Handle error
+ if (aError != KErrNone)
{
+ switch (aOpId)
+ {
case EOperationCodeLoad:
case EOperationCodeBlockLoad:
case EOperationCodeSearch:
- {
-
- if (KErrCancel == aError)
- {
- // Loading image was cancelled.
- User::Leave (KSIEEErrorOkToExit);
- }
- else
- {
- User::Leave (KSIEEOpenFile);
- }
- break;
- }
- case EOperationCodeSave:
- case EOperationCodeBlockSave:
- {
- LOG(KImageEditorLogFile, "CImageEditorAppUi: Save cancelled");
+ {
+
+ if (KErrCancel == aError)
+ {
+ // Loading image was cancelled.
+ User::Leave(KSIEEErrorOkToExit);
+ }
+ else
+ {
+ User::Leave(KSIEEOpenFile);
+ }
+ break;
+ }
+ case EOperationCodeSave:
+ case EOperationCodeBlockSave:
+ {
+ LOG(KImageEditorLogFile, "CImageEditorAppUi: Save cancelled");
#ifdef VERBOSE
- LOGFMT3(KImageEditorLogFile, "\tiSourceFileName: %S, iDocumentName: %S, iTempSaveFileName: %S", &iSourceFileName, &iDocumentName, &iTempSaveFileName);
+ LOGFMT3(KImageEditorLogFile, "\tiSourceFileName: %S, iDocumentName: %S, iTempSaveFileName: %S", &iSourceFileName, &iDocumentName, &iTempSaveFileName);
#endif
- iSaving = EFalse;
-
- // delete the temporary files
- DeleteTempFiles();
-
- // Reset bitmap sink and screen size
- UpdateScreenRectL();
- iOrientationChanged = EFalse;
-
-
- if (!iExitFromApp)
- {
-
- if (iSending)
- {
- // Restore document name
- iEditorManager->SetImageName (iDocumentName);
- iSending = EFalse;
- }
- if (KErrCancel == aError)
- {
- // KErrCancel means user cancel, not an error.
- ResetBusy();
- }
- else
- {
- // Leave in case of error.
- User::Leave (KSIEESaveFile);
- }
- }
- else
- {
- TInt exit = 0;
- if (iSaveOnExit)
- {
- exit = ((CImageEditorUIView *)iEditorView)->LaunchExitWithoutSavingQueryL();
- }
-
- if (exit == EImageEditorSoftkeyCmdYes || !iSaveOnExit)
- {
- // If the image has not been saved before, the reserved target
- // file has zero size and can be deleted.
- TEntry entry;
- TInt err = iEikonEnv->FsSession().Entry( iDocumentName, entry );
- if ( err == KErrNone && entry.iSize == 0 )
- {
- BaflUtils::DeleteFile (iEikonEnv->FsSession(), iDocumentName);
- }
-
- // Exit the application
- User::Leave (KSIEEErrorOkToExit);
- }
- else
- {
- iExitFromApp = EFalse;
- ResetBusy();
- }
- }
- SetOrientationL(EAppUiOrientationUnspecified);
- break;
- }
- default:
- {
- User::Leave (aError);
- break;
- }
+ iSaving = EFalse;
+
+ // delete the temporary files
+ DeleteTempFiles();
+
+ // Reset bitmap sink and screen size
+ UpdateScreenRectL();
+ iOrientationChanged = EFalse;
+
+ if (!iExitFromApp)
+ {
+
+ if (iSending)
+ {
+ // Restore document name
+ iEditorManager->SetImageName(iDocumentName);
+ iSending = EFalse;
+ }
+ if (KErrCancel == aError)
+ {
+ // KErrCancel means user cancel, not an error.
+ ResetBusy();
+ }
+ else
+ {
+ // Leave in case of error.
+ User::Leave(KSIEESaveFile);
+ }
+ }
+ else
+ {
+ TInt exit = 0;
+ if (iSaveOnExit)
+ {
+ exit
+ = ((CImageEditorUIView *) iEditorView)->LaunchExitWithoutSavingQueryL();
+ }
+
+ if (exit == EImageEditorSoftkeyCmdYes || !iSaveOnExit)
+ {
+ // If the image has not been saved before, the reserved target
+ // file has zero size and can be deleted.
+ TEntry entry;
+ TInt err = iEikonEnv->FsSession().Entry(iDocumentName,
+ entry);
+ if (err == KErrNone && entry.iSize == 0)
+ {
+ BaflUtils::DeleteFile(iEikonEnv->FsSession(),
+ iDocumentName);
+ }
+
+ // Exit the application
+ User::Leave(KSIEEErrorOkToExit);
+ }
+ else
+ {
+ iExitFromApp = EFalse;
+ ResetBusy();
+ }
+ }
+ SetOrientationL(EAppUiOrientationUnspecified);
+ break;
+ }
+ default:
+ {
+ User::Leave(aError);
+ break;
+ }
+ }
}
- }
else
- {
- switch ( aOpId )
{
+ switch (aOpId)
+ {
case EOperationCodeLoad:
case EOperationCodeBlockLoad:
- {
- LOG(KImageEditorLogFile, "CImageEditorAppUi: Image loaded");
-
- // Find out whether the source file belongs to any albums
- ImageEditorUtils::FindAlbumsForImageFileL (
- iSourceImageMgAlbumIdList,
- iSourceFileName );
-
- // Generate the name for the saved file
- TInt err = ImageEditorUtils::GenerateNewDocumentNameL (
- iEikonEnv->FsSession(),
- iSourceFileName,
- iDocumentName,
- &iSourceImageMgAlbumIdList );
+ {
+ LOG(KImageEditorLogFile, "CImageEditorAppUi: Image loaded");
+
+ // Find out whether the source file belongs to any albums
+ ImageEditorUtils::FindAlbumsForImageFileL(
+ iSourceImageMgAlbumIdList, iSourceFileName);
+
+ // Generate the name for the saved file
+ TInt err = ImageEditorUtils::GenerateNewDocumentNameL(
+ iEikonEnv->FsSession(), iSourceFileName, iDocumentName,
+ &iSourceImageMgAlbumIdList);
// Delete old temp files, which could exist if the exit was not clean
DeleteTempFiles();
-
- // If there is not enough disk space to save the edited image, show
- // error note but continue anyway (user can free up memory before saving)
- if (KSIEENotEnoughDiskSpace == err)
- {
- ShowErrorNoteL (err);
- }
- else if (KErrNone != err)
- {
- // Fatal error
- User::Leave (err);
- }
- iEditorManager->SetImageName (iDocumentName);
- iImageLoaded = ETrue;
- InitializeUiItemsL();
-
- if (!iOrientationChanged)
- {
- // Immediately display the loaded image
- ((CImageEditorUIView *)iEditorView)->
- SetImageL ( iEditorManager->GetPreviewImage() );
- }
-
- ApplicationReadyL();
-
+
+ // If there is not enough disk space to save the edited image, show
+ // error note but continue anyway (user can free up memory before saving)
+ if (KSIEENotEnoughDiskSpace == err)
+ {
+ ShowErrorNoteL(err);
+ }
+ else if (KErrNone != err)
+ {
+ // Fatal error
+ User::Leave(err);
+ }
+ iEditorManager->SetImageName(iDocumentName);
+ iImageLoaded = ETrue;
+ InitializeUiItemsL();
+
+ if (!iOrientationChanged)
+ {
+ // Immediately display the loaded image
+ ((CImageEditorUIView *) iEditorView)-> SetImageL(
+ iEditorManager->GetPreviewImage());
+ }
+
+ ApplicationReadyL();
+
// Do not have to keep file open anymore.
// Fixes problem with Online Printing
iFile.Close();
- break;
- }
+ break;
+ }
case EOperationCodeSave:
case EOperationCodeBlockSave:
- {
- LOG(KImageEditorLogFile, "CImageEditorAppUi: Image saved");
+ {
+ LOG(KImageEditorLogFile, "CImageEditorAppUi: Image saved");
#ifdef VERBOSE
- LOGFMT3(KImageEditorLogFile, "\tiSourceFileName: %S, iDocumentName: %S, iTempSaveFileName: %S", &iSourceFileName, &iDocumentName, &iTempSaveFileName);
+ LOGFMT3(KImageEditorLogFile, "\tiSourceFileName: %S, iDocumentName: %S, iTempSaveFileName: %S", &iSourceFileName, &iDocumentName, &iTempSaveFileName);
#endif
- ResetBusy();
- iSaving = EFalse;
-
- RFs & fs = iEikonEnv->FsSession();
- if ( BaflUtils::FileExists (fs, iTempSaveFileName ))
- {
- // Image has been successfully saved
- iImageSaved = ETrue;
-
- CFileMan* fileMan = CFileMan::NewL( fs );
- CleanupStack::PushL( fileMan );
-
- // the temporary image file and the target file are located in the same drive
- if ( iTempSaveFileName.Left(1) == iDocumentName.Left(1) )
- {
- User::LeaveIfError( fileMan->Rename( iTempSaveFileName, iDocumentName ));
- }
- // the temporary image file and the target file are not in the same drive
- else
- {
- User::LeaveIfError( fileMan->Move( iTempSaveFileName, iDocumentName ));
- }
- CleanupStack::PopAndDestroy(); //fileMan
-
- // Source file changes (at least if saved with a new name)
- iSourceFileName = iDocumentName;
-
- // Update title
- SetFileNameTitlePaneL(iDocumentName);
- iEditorManager->SetImageName(iDocumentName);
-
- LOGFMT(KImageEditorLogFile, "CImageEditorAppUi: Temp file renamed to %S", &iDocumentName);
-
- // Purge undo stack if on the way to exit.
- // Don't purge if printing or sending the image.
- if( iExitFromApp )
- {
- iEditorManager->PurgeUndoRedoHistory();
- }
-
- FinalizeSaveL();
- }
-
- if (iExitFromApp)
- {
- DeleteTempFiles();
- User::Leave (KSIEEErrorOkToExit);
- }
- else
- {
- if (iSending)
- {
- // Restore document name
- SetBusy();
- iEditorManager->SetImageName (iDocumentName);
- iCallback->DoCallback (KObSendCallbackID);
- }
-
- if (iPrinting)
- {
- // Restore document name
- SetBusy();
- iEditorManager->SetImageName (iDocumentName);
- iCallback->DoCallback (KObPrintCallbackID);
- }
-
- // Reset bitmap sink and screen size
- UpdateScreenRectL();
-
- // Set saved image name for printing
- ((CImageEditorUIView *)iEditorView)->SetImageFileName(iDocumentName);
-
- }
-
- // Update menu
- SetUndoFlag ();
- SetOrientationL(EAppUiOrientationUnspecified);
- LOG(KImageEditorLogFile, "CImageEditorAppUi: Saving procedure completed");
- break;
- }
-
- default:
- {
- break;
- }
- }
- }
-}
+ ResetBusy();
+ iSaving = EFalse;
+
+ RFs & fs = iEikonEnv->FsSession();
+ if (BaflUtils::FileExists(fs, iTempSaveFileName))
+ {
+ // Image has been successfully saved
+ iImageSaved = ETrue;
+
+ CFileMan* fileMan = CFileMan::NewL(fs);
+ CleanupStack::PushL(fileMan);
+
+ // the temporary image file and the target file are located in the same drive
+ if (iTempSaveFileName.Left(1) == iDocumentName.Left(1))
+ {
+ User::LeaveIfError(fileMan->Rename(iTempSaveFileName,
+ iDocumentName));
+ }
+ // the temporary image file and the target file are not in the same drive
+ else
+ {
+ User::LeaveIfError(fileMan->Move(iTempSaveFileName,
+ iDocumentName));
+ }
+ CleanupStack::PopAndDestroy(); //fileMan
+
+ // Source file changes (at least if saved with a new name)
+ iSourceFileName = iDocumentName;
+
+ // Update title
+ SetFileNameTitlePaneL(iDocumentName);
+ iEditorManager->SetImageName(iDocumentName);
+
+ LOGFMT(KImageEditorLogFile, "CImageEditorAppUi: Temp file renamed to %S", &iDocumentName);
+
+ // Purge undo stack if on the way to exit.
+ // Don't purge if printing or sending the image.
+ if (iExitFromApp)
+ {
+ iEditorManager->PurgeUndoRedoHistory();
+ }
+
+ FinalizeSaveL();
+ }
+
+ if (iExitFromApp)
+ {
+ DeleteTempFiles();
+ User::Leave(KSIEEErrorOkToExit);
+ }
+ else
+ {
+ if (iSending)
+ {
+ // Restore document name
+ SetBusy();
+ iEditorManager->SetImageName(iDocumentName);
+ iCallback->DoCallback(KObSendCallbackID);
+ }
+
+ if (iPrinting)
+ {
+ // Restore document name
+ SetBusy();
+ iEditorManager->SetImageName(iDocumentName);
+ iCallback->DoCallback(KObPrintCallbackID);
+ }
+
+ // Reset bitmap sink and screen size
+ UpdateScreenRectL();
+
+ // Set saved image name for printing
+ ((CImageEditorUIView *) iEditorView)->SetImageFileName(
+ iDocumentName);
+
+ }
+
+ // Update menu
+ SetUndoFlag();
+ SetOrientationL(EAppUiOrientationUnspecified);
+ LOG(KImageEditorLogFile, "CImageEditorAppUi: Saving procedure completed");
+ break;
+ }
+
+ default:
+ {
+ break;
+ }
+ }
+ }
+ }
//=============================================================================
-void CImageEditorAppUi::RenderL ()
-{
- LOG(KImageEditorLogFile, "CImageEditorAppUi: Rendering...");
+void CImageEditorAppUi::RenderL()
+ {
+ LOG(KImageEditorLogFile, "CImageEditorAppUi: Rendering...");
SetBusy();
iEditorManager->ProcessImageL();
- ((CImageEditorUIView *)iEditorView)->GetContainer()->DrawNow();
+ ((CImageEditorUIView *) iEditorView)->GetContainer()->DrawNow();
ResetBusy();
-}
+ }
//=============================================================================
-TKeyResponse CImageEditorAppUi::HandleKeyEventL (
- const TKeyEvent & aKeyEvent,
- TEventCode aType
- )
-{
- LOGFMT2(KImageEditorLogFile, "CImageEditorAppUi:HandleKeyEventL (aKeyEvent: %d, aType:\t %d)", aKeyEvent,aType);
-
- TKeyResponse response = EKeyWasNotConsumed;
-
- // if we are busy doing something
+TKeyResponse CImageEditorAppUi::HandleKeyEventL(const TKeyEvent & aKeyEvent,
+ TEventCode aType)
+ {
+ LOGFMT2(KImageEditorLogFile, "CImageEditorAppUi:HandleKeyEventL (aKeyEvent: %d, aType:\t %d)", aKeyEvent,aType);
+
+ TKeyResponse response = EKeyWasNotConsumed;
+
+ // if we are busy doing something
// then we consume the key
- if ( iBusy || (iConstructionState != EConstructionStateReady) )
- {
- response = EKeyWasConsumed;
- }
+ if (iBusy || (iConstructionState != EConstructionStateReady))
+ {
+ response = EKeyWasConsumed;
+ }
// we are only interested in real key events
// rather than ups or downs
else if (aType != EEventKey)
- {
- // These are handled separately here because pressing shift key doesn't
- // give EEventKey event at all
- if ( aType == EEventKeyDown )
- {
- switch (aKeyEvent.iScanCode)
- {
- case EStdKeyLeftShift:
- {
- iEditorView->HandleCommandL (EImageEditorPreGlobalZoomChange);
- ZoomL( EZoomIn );
- iEditorView->HandleCommandL (EImageEditorGlobalZoomChanged);
- response = EKeyWasConsumed;
- break;
- }
- case EStdKeyRightShift:
- {
- iEditorView->HandleCommandL (EImageEditorPreGlobalZoomChange);
- ZoomL( EZoomOut );
- iEditorView->HandleCommandL (EImageEditorGlobalZoomChanged);
- response = EKeyWasConsumed;
- break;
- }
- }
- }
-
- response = EKeyWasNotConsumed;
- }
+ {
+ // These are handled separately here because pressing shift key doesn't
+ // give EEventKey event at all
+ if (aType == EEventKeyDown)
+ {
+ switch (aKeyEvent.iScanCode)
+ {
+ case EStdKeyLeftShift:
+ {
+ iEditorView->HandleCommandL(EImageEditorPreGlobalZoomChange);
+ ZoomL(EZoomIn);
+ iEditorView->HandleCommandL(EImageEditorGlobalZoomChanged);
+ response = EKeyWasConsumed;
+ break;
+ }
+ case EStdKeyRightShift:
+ {
+ iEditorView->HandleCommandL(EImageEditorPreGlobalZoomChange);
+ ZoomL(EZoomOut);
+ iEditorView->HandleCommandL(EImageEditorGlobalZoomChanged);
+ response = EKeyWasConsumed;
+ break;
+ }
+ }
+ }
+
+ response = EKeyWasNotConsumed;
+ }
// scan codes for numbers are their ASCII codes
- else
- {
- TBool rotated = LandscapeScreenOrientation();
-
- switch (aKeyEvent.iScanCode)
- {
-
- case 0x30: // 0
- {
-#ifdef FULLSCREEN_AVAILABLE
- if (iFullScreen)
- {
- ResetFullScreenL();
- }
- else
- {
- SetFullScreenL();
- }
- response = EKeyWasConsumed;
-#endif // FULLSCREEN_AVAILABLE
- break;
- }
-#ifndef LANDSCAPE_ROTATE_HOTKEYS
- case 0x31: // 1
-#else
- case 0x33: // 3
-#endif
- {
- RotateL (ERotationCounterClockwise);
- response = EKeyWasConsumed;
- break;
- }
-
- case 0x32: // 2
+ else
+ {
+ TBool rotated = LandscapeScreenOrientation();
+
+ switch (aKeyEvent.iScanCode)
{
- if (!rotated)
- {
- PanL (EDirectionUp);
- response = EKeyWasConsumed;
- }
- else
+
+ case 0x30: // 0
{
- PanL (EDirectionLeft);
- response = EKeyWasConsumed;
+#ifdef FULLSCREEN_AVAILABLE
+ if (iFullScreen)
+ {
+ ResetFullScreenL();
+ }
+ else
+ {
+ SetFullScreenL();
+ }
+ response = EKeyWasConsumed;
+#endif // FULLSCREEN_AVAILABLE
+ break;
}
- break;
- }
-
#ifndef LANDSCAPE_ROTATE_HOTKEYS
- case 0x33: // 3
-#else
- case 0x39: // 9
-#endif
- {
- RotateL (ERotationClockwise);
- response = EKeyWasConsumed;
- break;
- }
-
- case 0x34: // 4
- {
- if (!rotated)
+ case 0x31: // 1
+#else
+ case 0x33: // 3
+#endif
{
- PanL (EDirectionLeft);
- response = EKeyWasConsumed;
- }
- else
- {
- PanL (EDirectionDown);
- response = EKeyWasConsumed;
+ RotateL(ERotationCounterClockwise);
+ response = EKeyWasConsumed;
+ break;
}
- break;
- }
- case 0x35: // 5
- {
- // No function
- break;
- }
-
- case 0x36: // 6
- {
- if (!rotated)
+
+ case 0x32: // 2
+ {
+ if (!rotated)
{
- PanL (EDirectionRight);
- response = EKeyWasConsumed;
+ PanL(EDirectionUp);
+ response = EKeyWasConsumed;
}
else
{
- PanL (EDirectionUp);
- response = EKeyWasConsumed;
- }
- break;
- }
-
- case 0x38: // 8
- {
- if (!rotated)
+ PanL(EDirectionLeft);
+ response = EKeyWasConsumed;
+ }
+ break;
+ }
+
+#ifndef LANDSCAPE_ROTATE_HOTKEYS
+ case 0x33: // 3
+#else
+ case 0x39: // 9
+#endif
+ {
+ RotateL(ERotationClockwise);
+ response = EKeyWasConsumed;
+ break;
+ }
+
+ case 0x34: // 4
+ {
+ if (!rotated)
+ {
+ PanL(EDirectionLeft);
+ response = EKeyWasConsumed;
+ }
+ else
+ {
+ PanL(EDirectionDown);
+ response = EKeyWasConsumed;
+ }
+ break;
+ }
+ case 0x35: // 5
+ {
+ // No function
+ break;
+ }
+
+ case 0x36: // 6
+ {
+ if (!rotated)
+ {
+ PanL(EDirectionRight);
+ response = EKeyWasConsumed;
+ }
+ else
{
- PanL (EDirectionDown);
- response = EKeyWasConsumed;
+ PanL(EDirectionUp);
+ response = EKeyWasConsumed;
+ }
+ break;
+ }
+
+ case 0x38: // 8
+ {
+ if (!rotated)
+ {
+ PanL(EDirectionDown);
+ response = EKeyWasConsumed;
+ }
+ else
+ {
+ PanL(EDirectionRight);
+ response = EKeyWasConsumed;
+ }
+ break;
+ }
+
+ // following cases handle four directions and select key
+ case EStdKeyRightArrow:
+ {
+ PanL(EDirectionRight);
+ response = EKeyWasConsumed;
+ break;
+ }
+ case EStdKeyLeftArrow:
+ {
+ PanL(EDirectionLeft);
+ response = EKeyWasConsumed;
+ break;
+ }
+ case EStdKeyUpArrow:
+ {
+ PanL(EDirectionUp);
+ response = EKeyWasConsumed;
+ break;
+ }
+ case EStdKeyDownArrow:
+ {
+ PanL(EDirectionDown);
+ response = EKeyWasConsumed;
+ break;
+ }
+ case EStdKeyEnter:
+ {
+ TBool zoomedIn =
+ ((CImageEditorUIView *) iEditorView)->InZoomingState();
+ if (zoomedIn)
+ {
+ iEditorView->HandleCommandL(EImageEditorPreGlobalZoomChange);
+ ZoomL(EZoomIn);
+ iEditorView->HandleCommandL(EImageEditorGlobalZoomChanged);
}
else
{
- PanL (EDirectionRight);
- response = EKeyWasConsumed;
+ // display the plugin selection grid if not in zoomed state
+ HandleCommandL(EImageEditorMenuCmdApplyEffect);
+ }
+ response = EKeyWasConsumed;
+ break;
+ }
+ case 0x2a: // *
+ case EStdKeyNkpAsterisk: // *
+ case EStdKeyIncVolume:
+ {
+ if (iEditorManager->IsPluginLoaded())
+ {
+ if (iEditorManager->GetZoomMode() == EZoomIn3)
+ {
+ response = EKeyWasConsumed;
+ break;
+ }
+ }
+ iEditorView->HandleCommandL(EImageEditorPreGlobalZoomChange);
+ ZoomL(EZoomIn);
+ iEditorView->HandleCommandL(EImageEditorGlobalZoomChanged);
+ response = EKeyWasConsumed;
+ break;
+ }
+ case 0x23: // #
+ case EStdKeyHash: // #
+ case EStdKeyDecVolume:
+ {
+ if (iEditorManager->IsPluginLoaded())
+ {
+ if (iEditorManager->GetZoomMode() == EZoomNormal)
+ {
+ response = EKeyWasConsumed;
+ break;
+ }
}
- break;
- }
-
- // following cases handle four directions and select key
- case EStdKeyRightArrow:
- {
- PanL (EDirectionRight);
- response = EKeyWasConsumed;
- break;
- }
- case EStdKeyLeftArrow:
- {
- PanL (EDirectionLeft);
- response = EKeyWasConsumed;
- break;
- }
- case EStdKeyUpArrow:
- {
- PanL (EDirectionUp);
- response = EKeyWasConsumed;
- break;
- }
- case EStdKeyDownArrow:
- {
- PanL (EDirectionDown);
- response = EKeyWasConsumed;
- break;
- }
- case EStdKeyEnter:
- {
- TBool zoomedIn = ( ( CImageEditorUIView *)iEditorView )->InZoomingState();
- if ( zoomedIn )
- {
- iEditorView->HandleCommandL (EImageEditorPreGlobalZoomChange);
- ZoomL( EZoomIn );
- iEditorView->HandleCommandL (EImageEditorGlobalZoomChanged);
- }
- else
- {
- // display the plugin selection grid if not in zoomed state
- HandleCommandL( EImageEditorMenuCmdApplyEffect );
- }
- response = EKeyWasConsumed;
- break;
- }
- case 0x2a: // *
- case EStdKeyNkpAsterisk: // *
- case EStdKeyIncVolume:
- {
- if ( iEditorManager->IsPluginLoaded() )
- {
- if ( iEditorManager->GetZoomMode()== EZoomIn3 )
- {
- response = EKeyWasConsumed;
- break;
- }
- }
- iEditorView->HandleCommandL (EImageEditorPreGlobalZoomChange);
- ZoomL (EZoomIn);
- iEditorView->HandleCommandL (EImageEditorGlobalZoomChanged);
- response = EKeyWasConsumed;
- break;
- }
- case 0x23: // #
- case EStdKeyHash: // #
- case EStdKeyDecVolume:
- {
- if ( iEditorManager->IsPluginLoaded() )
- {
- if ( iEditorManager->GetZoomMode()== EZoomNormal )
- {
- response = EKeyWasConsumed;
- break;
- }
- }
- iEditorView->HandleCommandL (EImageEditorPreGlobalZoomChange);
- ZoomL (EZoomOut);
- iEditorView->HandleCommandL (EImageEditorGlobalZoomChanged);
+ iEditorView->HandleCommandL(EImageEditorPreGlobalZoomChange);
+ ZoomL(EZoomOut);
+ iEditorView->HandleCommandL(EImageEditorGlobalZoomChanged);
response = EKeyWasConsumed;
- break;
- }
- case EStdKeyYes: // green answer call key
- {
- if (!iEditorManager->IsPluginLoaded())
- {
- // when touch is enabled, dialer application is launched
- // by the framework and application should not consume
- // this key. Otherwise image is saved and send menu opened.
- if ( !AknLayoutUtils::PenEnabled() )
- {
- if ( !iSending )
- {
- SaveChangesAndSendL();
- }
- response = EKeyWasConsumed;
- }
- else
- {
- response = EKeyWasNotConsumed;
- }
- }
- break;
- }
- case EStdKeyDevice3: // Select key (OK key)
- {
- // display the plugin selection grid
- HandleCommandL(EImageEditorMenuCmdApplyEffect);
- response = EKeyWasConsumed;
- break;
- }
- case EStdKeyNo: // end key
- {
- iBusy = ETrue;
- response = EKeyWasNotConsumed;
- break;
- }
-
- default:
- {
- response = EKeyWasNotConsumed;
- break;
- }
- }
- }
+ break;
+ }
+ case EStdKeyYes: // green answer call key
+ {
+ if (!iEditorManager->IsPluginLoaded())
+ {
+ // when touch is enabled, dialer application is launched
+ // by the framework and application should not consume
+ // this key. Otherwise image is saved and send menu opened.
+ if (!AknLayoutUtils::PenEnabled())
+ {
+ if (!iSending)
+ {
+ SaveChangesAndSendL();
+ }
+ response = EKeyWasConsumed;
+ }
+ else
+ {
+ response = EKeyWasNotConsumed;
+ }
+ }
+ break;
+ }
+ case EStdKeyDevice3: // Select key (OK key)
+ {
+ // display the plugin selection grid
+ HandleCommandL(EImageEditorMenuCmdApplyEffect);
+ response = EKeyWasConsumed;
+ break;
+ }
+ case EStdKeyNo: // end key
+ {
+ iBusy = ETrue;
+ response = EKeyWasNotConsumed;
+ break;
+ }
+
+ default:
+ {
+ response = EKeyWasNotConsumed;
+ break;
+ }
+ }
+ }
return response;
-}
+ }
//=============================================================================
-void CImageEditorAppUi::HandleCommandL (TInt aCommand)
-{
- LOGFMT(KImageEditorLogFile, "CImageEditorAppUi:HandleCommandL (%d)", aCommand);
-
- switch ( aCommand )
- {
-
- /**
- *
- * MENU COMMANDS
- *
- */
-
- // Launch plug-in selection grid
- case EImageEditorMenuCmdApplyEffect:
+void CImageEditorAppUi::HandleCommandL(TInt aCommand)
+ {
+ LOGFMT(KImageEditorLogFile, "CImageEditorAppUi:HandleCommandL (%d)", aCommand);
+
+ switch (aCommand)
{
+
+ /**
+ *
+ * MENU COMMANDS
+ *
+ */
+
+ // Launch plug-in selection grid
+ case EImageEditorMenuCmdApplyEffect:
+ {
SetBusy();
- iCallback->DoCallback (KObInitPluginID);
- break;
- }
-
- // Undo effect
+ iCallback->DoCallback(KObInitPluginID);
+ break;
+ }
+
+ // Undo effect
case EImageEditorMenuCmdUndo:
- {
+ {
SetBusy();
- iCallback->DoCallback (KObUndoDCallbackID);
- break;
- }
-
- // Switch to full screen
+ iCallback->DoCallback(KObUndoDCallbackID);
+ break;
+ }
+
+ // Switch to full screen
case EImageEditorMenuCmdFullScreen:
- {
+ {
#ifdef FULLSCREEN_AVAILABLE
- SetFullScreenL();
+ SetFullScreenL();
#endif // FULLSCREEN_AVAILABLE
- break;
- }
-
- // Switch to normal screen
+ break;
+ }
+
+ // Switch to normal screen
case EImageEditorMenuCmdNormalScreen:
- {
+ {
#ifdef FULLSCREEN_AVAILABLE
- ResetFullScreenL();
+ ResetFullScreenL();
#endif // FULLSCREEN_AVAILABLE
- break;
- }
-
- // Increase Zoom
- case EImageEditorMenuCmdZoomIn:
- {
- ZoomL (EZoomIn);
- break;
- }
-
- // Decrease Zoom
- case EImageEditorMenuCmdZoomOut:
- {
- ZoomL (EZoomOut);
- break;
- }
-
- // Set zoom to minimum (=normal image)
- case EImageEditorMenuCmdFitToScreen:
- {
- ZoomL( EZoomMin );
- break;
- }
-
- // Launch CSHelp
- case EAknCmdHelp:
- case EImageEditorMenuCmdHelp:
- {
- CArrayFix<TCoeHelpContext>* context = CCoeAppUi::AppHelpContextL();
- if (context)
- {
- HlpLauncher::LaunchHelpApplicationL(iEikonEnv->WsSession(), context);
- }
- break;
- }
- case EImageEditorMenuCmdSave:
- {
- if ( ! ((CImageEditorUIView*) iEditorView)->IsMemoryInCriticalLevel() )
- {
- QueryAndSaveL();
- }
- break;
- }
-
- // Close editor
- case EImageEditorMenuCmdExit:
- {
- TBool exitNow = ETrue;
- if ( iEditorManager->IsImageChanged() )
- {
- if ( ! ((CImageEditorUIView*) iEditorView)->IsMemoryInCriticalLevel() )
- {
- // launch "Save changes?" query
- TInt result = ((CImageEditorUIView *)iEditorView)->LaunchSaveChangesQueryL();
- if( result == EImageEditorSoftkeyCmdYes )
- {
- if (QueryAndSaveL())
- {
- SetBusy();
- iExitFromApp = ETrue;
- exitNow = EFalse;
- LOG(KImageEditorLogFile, "CImageEditorAppUi:HandleCommandL: Hide application from Fast-swap window.");
- CAknAppUi::HideApplicationFromFSW(ETrue);
- }
- else
- {
- iExitFromApp = EFalse;
- exitNow = EFalse;
- }
-
- }
- else if( result == EImageEditorSoftkeyCmdNo )
- {
- // do nothing, exitNow == ETrue
- }
- else
- {
- // Automatic cancel may have occurred, don't exit
- iExitFromApp = EFalse;
- exitNow = EFalse;
- }
- }
- }
-
- if (exitNow)
- {
- DeleteTempFiles();
- RunAppShutter();
-
-
- //Exit();
- }
- break;
- }
-
- /**
- *
- * SOFTKEY COMMANDS
- *
- */
-
- // Back softkey pressed => Close editor
+ break;
+ }
+
+ // Increase Zoom
+ case EImageEditorMenuCmdZoomIn:
+ {
+ ZoomL(EZoomIn);
+ break;
+ }
+
+ // Decrease Zoom
+ case EImageEditorMenuCmdZoomOut:
+ {
+ ZoomL(EZoomOut);
+ break;
+ }
+
+ // Set zoom to minimum (=normal image)
+ case EImageEditorMenuCmdFitToScreen:
+ {
+ ZoomL(EZoomMin);
+ break;
+ }
+
+ // Launch CSHelp
+ case EAknCmdHelp:
+ case EImageEditorMenuCmdHelp:
+ {
+ CArrayFix<TCoeHelpContext>* context = CCoeAppUi::AppHelpContextL();
+ if (context)
+ {
+ HlpLauncher::LaunchHelpApplicationL(iEikonEnv->WsSession(),
+ context);
+ }
+ break;
+ }
+ case EImageEditorMenuCmdSave:
+ {
+ if (!((CImageEditorUIView*) iEditorView)->IsMemoryInCriticalLevel())
+ {
+ QueryAndSaveL();
+ }
+ break;
+ }
+
+ // Close editor
+ case EImageEditorMenuCmdExit:
+ {
+ TBool exitNow = ETrue;
+ if (iEditorManager->IsImageChanged())
+ {
+ if (!((CImageEditorUIView*) iEditorView)->IsMemoryInCriticalLevel())
+ {
+ // launch "Save changes?" query
+ TInt
+ result =
+ ((CImageEditorUIView *) iEditorView)->LaunchSaveChangesQueryL();
+ if (result == EImageEditorSoftkeyCmdYes)
+ {
+ if (QueryAndSaveL())
+ {
+ SetBusy();
+ iExitFromApp = ETrue;
+ exitNow = EFalse;
+ LOG(KImageEditorLogFile, "CImageEditorAppUi:HandleCommandL: Hide application from Fast-swap window.");
+ CAknAppUi::HideApplicationFromFSW(ETrue);
+ }
+ else
+ {
+ iExitFromApp = EFalse;
+ exitNow = EFalse;
+ }
+
+ }
+ else if (result == EImageEditorSoftkeyCmdNo)
+ {
+ // do nothing, exitNow == ETrue
+ }
+ else
+ {
+ // Automatic cancel may have occurred, don't exit
+ iExitFromApp = EFalse;
+ exitNow = EFalse;
+ }
+ }
+ }
+
+ if (exitNow)
+ {
+ DeleteTempFiles();
+ RunAppShutter();
+
+ //Exit();
+ }
+ break;
+ }
+
+ /**
+ *
+ * SOFTKEY COMMANDS
+ *
+ */
+
+ // Back softkey pressed => Close editor
case EImageEditorSoftkeyCmdBack:
- {
- TBool exitNow = ETrue;
- if (iSaving || iCancelling)
- {
- // ignore
- }
- if ( ! ((CImageEditorUIView*) iEditorView)->IsMemoryInCriticalLevel() )
- {
- if ( iEditorManager->IsImageChanged() )
- {
- // launch "Save changes?" query
- TInt result = ((CImageEditorUIView *)iEditorView)->LaunchSaveChangesQueryL();
- if( result == EImageEditorSoftkeyCmdYes )
- {
- if (QueryAndSaveL())
- {
- SetBusy();
- iExitFromApp = ETrue;
- exitNow = EFalse;
- LOG(KImageEditorLogFile, "CImageEditorAppUi:HandleCommandL: Hide application from Fast-swap window.");
- CAknAppUi::HideApplicationFromFSW(ETrue);
- }
- else
- {
- iExitFromApp = EFalse;
- exitNow = EFalse;
- }
-
- }
- else if( result == EImageEditorSoftkeyCmdNo )
- {
- // do nothing, exitNow == ETrue
- }
- else
- {
- // Automatic cancel may have occurred, don't exit
- iExitFromApp = EFalse;
- exitNow = EFalse;
- }
- }
- }
-
- if (exitNow)
- {
- DeleteTempFiles();
- RunAppShutter();
- //ProcessCommandL(EAknCmdExit);
- }
- break;
- }
-
- /**
- *
- * SYSTEM COMMANDS
- *
- */
-
- case EEikCmdExit:
- {
- LOG(KImageEditorLogFile, "CImageEditorAppUi: EEikCmdExit caught");
+ {
+ TBool exitNow = ETrue;
+ if (iSaving || iCancelling)
+ {
+ // ignore
+ }
+ if (!((CImageEditorUIView*) iEditorView)->IsMemoryInCriticalLevel())
+ {
+ if (iEditorManager->IsImageChanged())
+ {
+ // launch "Save changes?" query
+ TInt
+ result =
+ ((CImageEditorUIView *) iEditorView)->LaunchSaveChangesQueryL();
+ if (result == EImageEditorSoftkeyCmdYes)
+ {
+ if (QueryAndSaveL())
+ {
+ SetBusy();
+ iExitFromApp = ETrue;
+ exitNow = EFalse;
+ LOG(KImageEditorLogFile, "CImageEditorAppUi:HandleCommandL: Hide application from Fast-swap window.");
+ CAknAppUi::HideApplicationFromFSW(ETrue);
+ }
+ else
+ {
+ iExitFromApp = EFalse;
+ exitNow = EFalse;
+ }
+
+ }
+ else if (result == EImageEditorSoftkeyCmdNo)
+ {
+ // do nothing, exitNow == ETrue
+ }
+ else
+ {
+ // Automatic cancel may have occurred, don't exit
+ iExitFromApp = EFalse;
+ exitNow = EFalse;
+ }
+ }
+ }
+
+ if (exitNow)
+ {
+ DeleteTempFiles();
+ RunAppShutter();
+ //ProcessCommandL(EAknCmdExit);
+ }
+ break;
+ }
+
+ /**
+ *
+ * SYSTEM COMMANDS
+ *
+ */
+
+ case EEikCmdExit:
+ {
+ LOG(KImageEditorLogFile, "CImageEditorAppUi: EEikCmdExit caught");
DeleteTempFiles();
- Exit();
- break;
- }
-
- /**
- *
- * MISC COMMANDS
- *
- */
-
- // Render image
- case EImageEditorCmdRender:
- {
- RenderL();
- break;
- }
-
- case EImageEditorCmdViewReady:
- {
-
- LOG(KImageEditorLogFile, "CImageEditorAppUi: View ready");
+ Exit();
+ break;
+ }
+
+ /**
+ *
+ * MISC COMMANDS
+ *
+ */
+
+ // Render image
+ case EImageEditorCmdRender:
+ {
+ RenderL();
+ break;
+ }
+ case EImageEditorResetFullScreen:
+ {
+ ResetFullScreenL();
+ }
+ case EImageEditorCmdViewReady:
+ {
+
+ LOG(KImageEditorLogFile, "CImageEditorAppUi: View ready");
iEditorReady = ETrue;
- // Initialize UI items
- InitializeUiItemsL();
+ // Initialize UI items
+ InitializeUiItemsL();
ApplicationReadyL();
- break;
- }
+ break;
+ }
case EImageEditorApplyPlugin:
- {
+ {
// Return from plug-in
- SetBusy();
- iCallback->DoCallback (KObReturnFromPluginID);
- break;
- }
-
- case EImageEditorCancelPlugin:
- {
+ SetBusy();
+ iCallback->DoCallback(KObReturnFromPluginID);
+ break;
+ }
+
+ case EImageEditorCancelPlugin:
+ {
SetBusy();
iCancelling = ETrue;
- iCallback->DoCallback (KObCancelCallbackID);
- break;
- }
-
- case EImageEditorAddFilterToEngine:
- {
- // Add the current plugin parameters to engine
- // and continue with the same plugin
+// ResetFullScreenL();
+ iPluginName.Copy(KNull);
+ iCallback->DoCallback(KObCancelCallbackID);
+ break;
+ }
+
+ case EImageEditorAddFilterToEngine:
+ {
+ // Add the current plugin parameters to engine
+ // and continue with the same plugin
iEditorManager->AddFilterToEngineL();
- break;
- }
-
- case EImageEditorStoreParameters:
- {
- break;
- }
-
- case EImageEditorUndoFilter:
- {
- // Undo one filter (can be called if one plugin
- // has put more than one filter to the engine)
- SetBusy();
- iEditorManager->UndoL();
- SetUndoFlag();
- ((CImageEditorUIView *)iEditorView)->GetContainer()->DrawNow();
+ break;
+ }
+
+ case EImageEditorStoreParameters:
+ {
+ break;
+ }
+
+ case EImageEditorUndoFilter:
+ {
+ // Undo one filter (can be called if one plugin
+ // has put more than one filter to the engine)
+ SetBusy();
+ iEditorManager->UndoL();
+ SetUndoFlag();
+ ((CImageEditorUIView *) iEditorView)->GetContainer()->DrawNow();
ResetBusy();
- break;
- }
-
- case EImageEditorSaveAndPrint:
- {
- if ( iEditorManager->IsImageChanged() )
- {
- iPrinting = ETrue;
- SaveImageL();
- }
- else
- {
- SetBusy();
- iCallback->DoCallback (KObPrintCallbackID);
- }
- break;
- }
- case EImageEditorResetZoom:
- {
- // If this is called rendering must be done separately
- iEditorManager->ZoomL( EZoomMin );
- ((CImageEditorUIView *)iEditorView)->SetZoomModeL( iEditorManager->GetZoomMode() );
- break;
- }
- case EImageEditorCmdTouchPan:
- {
- TouchPanL();
- break;
- }
- case EImageEditorOpenContextMenu:
- {
- CAknViewAppUi::ProcessCommandL(EAknSoftkeyContextOptions);
- break;
- }
- default:
- {
- // CSendUi commands
- if (aCommand >= EImageEditorMenuCmdSend &&
- aCommand < EImageEditorMenuCmdSendLast)
- {
- SetBusy();
- SaveChangesAndSendL();
- break;
- }
-
- /**
- *
- * BEVERLY HILLS
- *
- */
- else
- {
- // Do not handle unknown commands
- ResetBusy();
- break;
- }
- }
+ break;
+ }
+
+ case EImageEditorSaveAndPrint:
+ {
+ if (iEditorManager->IsImageChanged())
+ {
+ iPrinting = ETrue;
+ SaveImageL();
+ }
+ else
+ {
+ SetBusy();
+ iCallback->DoCallback(KObPrintCallbackID);
+ }
+ break;
+ }
+ case EImageEditorResetZoom:
+ {
+ // If this is called rendering must be done separately
+ iEditorManager->ZoomL(EZoomMin);
+ ((CImageEditorUIView *) iEditorView)->SetZoomModeL(
+ iEditorManager->GetZoomMode());
+ break;
+ }
+ case EImageEditorCmdTouchPan:
+ {
+ TouchPanL();
+ break;
+ }
+ case EImageEditorOpenContextMenu:
+ {
+ CAknViewAppUi::ProcessCommandL(EAknSoftkeyContextOptions);
+ break;
+ }
+ default:
+ {
+ // CSendUi commands
+ if (aCommand >= EImageEditorMenuCmdSend && aCommand
+ < EImageEditorMenuCmdSendLast)
+ {
+ SetBusy();
+ SaveChangesAndSendL();
+ break;
+ }
+
+ /**
+ *
+ * BEVERLY HILLS
+ *
+ */
+ else
+ {
+ // Do not handle unknown commands
+ ResetBusy();
+ break;
+ }
+ }
+ }
}
-}
//=============================================================================
-void CImageEditorAppUi::HandleWsEventL (
- const TWsEvent & aEvent,
- CCoeControl * aDestination
- )
-{
+void CImageEditorAppUi::HandleWsEventL(const TWsEvent & aEvent,
+ CCoeControl * aDestination)
+ {
#ifdef VERBOSE
- LOGFMT3 (KImageEditorLogFile, "CImageEditorAppUi::HandleWsEventL: aEvent.Type() == %d, aEvent.Key().iCode == %d, aEvent.Key().iScanCode == %d", aEvent.Type(), (TInt)aEvent.Key()->iCode, (TInt)aEvent.Key()->iScanCode);
+ LOGFMT3 (KImageEditorLogFile, "CImageEditorAppUi::HandleWsEventL: aEvent.Type() == %d, aEvent.Key().iCode == %d, aEvent.Key().iScanCode == %d", aEvent.Type(), (TInt)aEvent.Key()->iCode, (TInt)aEvent.Key()->iScanCode);
#endif
- switch ( aEvent.Type() )
- {
-
- case EEventFocusLost:
- {
+ switch (aEvent.Type())
+ {
+
+ case EEventFocusLost:
+ {
iForeground = EFalse;
break;
- }
-
- case EEventFocusGained:
- {
-
- // Update the screen rect when we gain focus.
- // This isn't really needed every time, it should only do this if something has changed
- if (iImageController)
- {
- UpdateScreenRectL();
- }
-
- if (iFullScreen)
- {
- StatusPane()->MakeVisible ( EFalse );
- }
+ }
+
+ case EEventFocusGained:
+ {
+
+ // Update the screen rect when we gain focus.
+ // This isn't really needed every time, it should only do this if something has changed
+ if (iImageController)
+ {
+ UpdateScreenRectL();
+ }
+
+ if (iFullScreen)
+ {
+ StatusPane()->MakeVisible(EFalse);
+ }
iForeground = ETrue;
break;
- }
+ }
default:
- {
+ {
break;
- }
-
- }
-
- if ( ( aEvent.Type() == KAknUidValueEndKeyCloseEvent) && iEditorManager->IsImageChanged() )
+ }
+
+ }
+
+ if ((aEvent.Type() == KAknUidValueEndKeyCloseEvent)
+ && iEditorManager->IsImageChanged())
{
if (iCancelling)
{
return;
}
- iExitFromApp = ETrue;
+ iExitFromApp = ETrue;
if (iSaving)
{
iImageController->CancelOperation(ETrue);
@@ -1146,215 +1130,215 @@
return;
}
- TInt err = ImageEditorUtils::GenerateNewDocumentNameL (
- iEikonEnv->FsSession(),
- iSourceFileName,
- iDocumentName,
- &iSourceImageMgAlbumIdList
- );
- SaveImageOverWriteL( EFalse );
+ TInt err = ImageEditorUtils::GenerateNewDocumentNameL(
+ iEikonEnv->FsSession(), iSourceFileName, iDocumentName,
+ &iSourceImageMgAlbumIdList);
+ SaveImageOverWriteL(EFalse);
}
else
{
- TInt err( 0 );
- TRAP( err, CAknViewAppUi::HandleWsEventL( aEvent, aDestination ) );
+ TInt err(0);
+ TRAP( err, CAknViewAppUi::HandleWsEventL( aEvent, aDestination ) );
}
-}
-
+ }
//=============================================================================
void CImageEditorAppUi::HandleScreenDeviceChangedL()
- {
-
- LOG(KImageEditorLogFile, "CImageEditorAppUi::HandleScreenDeviceChangedL()");
-
- // Work-a-round to avoid softkeys to drawn incorrectly
- // when a dialog is open when changing to view mode
- if (iConstructionState == EConstructionStateReady &&
- iSaving == EFalse &&
- iSending == EFalse )
- {
- StopDisplayingMenuBar();
- }
-
- CAknViewAppUi::HandleScreenDeviceChangedL();
-
- TBool visibleFlag = EFalse;
- if (((CImageEditorUIView *)iEditorView)->GetContainer())
- {
- visibleFlag = ((CImageEditorUIView *)iEditorView)->GetContainer()->IsVisible();
- }
-
- // If orientation changes during loading - screen bitmap need to be recreated
- // In the start-up there can be event from system without screen device change
- if (!iImageLoaded && iConstructionState != EConstructionStateAlloc )
- {
- iOrientationChanged = ETrue;
- // Set landscape parameter
- if (LandscapeScreenOrientation())
- {
- iResolutionUtil->SetLandscape(ETrue);
- }
- else
- {
- iResolutionUtil->SetLandscape(EFalse);
- }
-
- iResolutionUtil->UpdateScreenMode();
- TRect rect;
- iResolutionUtil->GetClientRect(rect);
- CCoeControl * control = ((CImageEditorUIView *)iEditorView)->GetContainer();
+ {
+
+ LOG(KImageEditorLogFile, "CImageEditorAppUi::HandleScreenDeviceChangedL()");
+ // Work-a-round to avoid softkeys to drawn incorrectly
+ // when a dialog is open when changing to view mode
+ if (iConstructionState == EConstructionStateReady && iSaving == EFalse
+ && iSending == EFalse)
+ {
+ StopDisplayingMenuBar();
+ }
+
+ CAknViewAppUi::HandleScreenDeviceChangedL();
+
+ //called while screen mode change
+ if (!iStandby)
+ {
+ if (iPluginName == KDrawPlugin)
+ {
+ InitialHorizontalDrawPlugin();
+ }
+ }
+ iStandby = EFalse;
+
+ TBool visibleFlag = EFalse;
+ if (((CImageEditorUIView *) iEditorView)->GetContainer())
+ {
+ visibleFlag
+ = ((CImageEditorUIView *) iEditorView)->GetContainer()->IsVisible();
+ }
+
+ // If orientation changes during loading - screen bitmap need to be recreated
+ // In the start-up there can be event from system without screen device change
+ if (!iImageLoaded && iConstructionState != EConstructionStateAlloc)
+ {
+ iOrientationChanged = ETrue;
+ // Set landscape parameter
+ if (LandscapeScreenOrientation())
+ {
+ iResolutionUtil->SetLandscape(ETrue);
+ }
+ else
+ {
+ iResolutionUtil->SetLandscape(EFalse);
+ }
+
+ iResolutionUtil->UpdateScreenMode();
+ TRect rect;
+ iResolutionUtil->GetClientRect(rect);
+ CCoeControl * control =
+ ((CImageEditorUIView *) iEditorView)->GetContainer();
control->SetRect(rect);
- }
-
- // Update screen rects if we are currently in the foreground.
- else if ((iForeground && iImageController) || visibleFlag)
- {
- UpdateScreenRectL();
- }
-
-}
+ }
+
+ // Update screen rects if we are currently in the foreground.
+ else if ((iForeground && iImageController) || visibleFlag)
+ {
+ UpdateScreenRectL();
+ }
+
+ }
//=============================================================================
TBool CImageEditorAppUi::LandscapeScreenOrientation()
-{
-
- LOG(KImageEditorLogFile, "CImageEditorAppUi::LandscapeScreenOrientation()");
-
- TBool orientation = EFalse;
+ {
+
+ LOG(KImageEditorLogFile, "CImageEditorAppUi::LandscapeScreenOrientation()");
+
+ TBool orientation = EFalse;
#ifdef LANDSCAPE_SUPPORT
- TRect rect;
-
- AknLayoutUtils::LayoutMetricsRect(AknLayoutUtils::EScreen, rect);
-
- if ( rect.iBr.iX > rect.iBr.iY )
- {
- orientation = ETrue;
- }
+ TRect rect;
+
+ AknLayoutUtils::LayoutMetricsRect(AknLayoutUtils::EScreen, rect);
+
+ if (rect.iBr.iX > rect.iBr.iY)
+ {
+ orientation = ETrue;
+ }
else
- {
- orientation = EFalse;
- }
+ {
+ orientation = EFalse;
+ }
#endif
- LOGFMT(KImageEditorLogFile, "CImageEditorAppUi: Orientation (%d)", (TInt)orientation);
-
- return orientation;
-}
+ LOGFMT(KImageEditorLogFile, "CImageEditorAppUi: Orientation (%d)", (TInt)orientation);
+
+ return orientation;
+ }
//=============================================================================
-void CImageEditorAppUi::HandleForegroundEventL (TBool aForeground)
-{
- LOG(KImageEditorLogFile, "CImageEditorAppUi::HandleForegroundEventL()");
+void CImageEditorAppUi::HandleForegroundEventL(TBool aForeground)
+ {
+ LOG(KImageEditorLogFile, "CImageEditorAppUi::HandleForegroundEventL()");
if (aForeground)
- {
- if ( !BaflUtils::FileExists( iEikonEnv->Static()->FsSession() , iSourceFileName ) )
+ {
+ if (!BaflUtils::FileExists(iEikonEnv->Static()->FsSession(),
+ iSourceFileName))
{
DeleteTempFiles();
RunAppShutter();
}
- if ( iProcessPriorityAltered )
- {
- // Return to normal priority.
- RProcess myProcess;
- TProcessPriority priority = myProcess.Priority();
- if ( priority < iOriginalProcessPriority )
+ if (iProcessPriorityAltered)
{
- myProcess.SetPriority( iOriginalProcessPriority );
+ // Return to normal priority.
+ RProcess myProcess;
+ TProcessPriority priority = myProcess.Priority();
+ if (priority < iOriginalProcessPriority)
+ {
+ myProcess.SetPriority(iOriginalProcessPriority);
+ }
+ iProcessPriorityAltered = EFalse;
+ iStandby = ETrue;
}
- iProcessPriorityAltered = EFalse;
+
+ // Check that application is in sync with the system
+ if (!iImageLoaded && iConstructionState != EConstructionStateAlloc)
+ {
+ iOrientationChanged = ETrue;
+ }
+ else if (iResolutionUtil && LandscapeScreenOrientation()
+ != iResolutionUtil->GetLandscape())
+ {
+ UpdateScreenRectL();
+ }
+
+ iEditorView->HandleCommandL(EImageEditorFocusGained);
}
-
- // Check that application is in sync with the system
- if (!iImageLoaded && iConstructionState != EConstructionStateAlloc )
- {
- iOrientationChanged = ETrue;
- }
- else if (iResolutionUtil && LandscapeScreenOrientation() != iResolutionUtil->GetLandscape())
- {
- UpdateScreenRectL();
- }
-
- iEditorView->HandleCommandL (EImageEditorFocusGained);
- }
else
- {
- iEditorView->HandleCommandL (EImageEditorFocusLost);
+ {
+ iEditorView->HandleCommandL(EImageEditorFocusLost);
// Set the priority to low. This is needed to handle the situations
// where the engine is performing heavy processing while the application
// is in background.
RProcess myProcess;
iOriginalProcessPriority = myProcess.Priority();
- myProcess.SetPriority( EPriorityLow );
+ myProcess.SetPriority(EPriorityLow);
iProcessPriorityAltered = ETrue;
-
-
+ iStandby = ETrue;
+
+ }
+ CAknViewAppUi::HandleForegroundEventL(aForeground);
}
- CAknViewAppUi::HandleForegroundEventL (aForeground);
-}
-
//=============================================================================
-TBool CImageEditorAppUi::ProcessCommandParametersL (
- TApaCommand aCommand,
- TFileName & aDocumentName,
- const TDesC8 & aTail
- )
-{
- LOG(KImageEditorLogFile, "CImageEditorAppUi::ProcessCommandParametersL");
-
- /* ------------- : test only ----------
- if ( this->ContainerAppUi() == NULL ) // launched as standalone
+TBool CImageEditorAppUi::ProcessCommandParametersL(TApaCommand aCommand,
+ TFileName & aDocumentName, const TDesC8 & aTail)
{
- aDocumentName = _L("C:\\Data\\Images\\test.jpg");
- };
- // ---------------- test only ------------- */
-
+ LOG(KImageEditorLogFile, "CImageEditorAppUi::ProcessCommandParametersL");
+
// Store command parameter document name
- iDocumentName.Copy (aDocumentName);
-
- // Save original document name
- iSourceFileName.Copy(aDocumentName);
-
- // Set document name for printing
- ((CImageEditorUIView *)iEditorView)->SetImageFileName(iDocumentName);
-
- // Return default action
- return CAknViewAppUi::ProcessCommandParametersL (aCommand, aDocumentName, aTail);
+ iDocumentName.Copy(aDocumentName);
+
+ // Save original document name
+ iSourceFileName.Copy(aDocumentName);
+
+ // Set document name for printing
+ ((CImageEditorUIView *) iEditorView)->SetImageFileName(iDocumentName);
+
+ // Return default action
+ return CAknViewAppUi::ProcessCommandParametersL(aCommand, aDocumentName,
+ aTail);
}
//=============================================================================
void CImageEditorAppUi::OpenFileL(RFile &aFile)
- {
- LOG(KImageEditorLogFile, "CImageEditorAppUi::OpenFileL");
+ {
+ LOG(KImageEditorLogFile, "CImageEditorAppUi::OpenFileL");
// This function should be called only when editor is started
// as an embedded application.
- // Store command parameter document name
- aFile.FullName(iDocumentName);
+ // Store command parameter document name
+ aFile.FullName(iDocumentName);
// Open file for editor
// File must be opened until editor is closed, otherwise
// shared session is lost -> Error code -14.
- RFs& fs = iEikonEnv->FsSession();
- fs.ShareProtected();
+ RFs& fs = iEikonEnv->FsSession();
+ fs.ShareProtected();
TInt err = iFile.Open(fs, iDocumentName, EFileRead | EFileShareReadersOnly);
if (KErrNone != err)
{
- User::LeaveIfError(iFile.Open(fs, iDocumentName, EFileRead | EFileShareAny));
+ User::LeaveIfError(iFile.Open(fs, iDocumentName, EFileRead
+ | EFileShareAny));
}
- // Save original document name
- aFile.FullName(iSourceFileName);
-
- // Set document name for printing
- ((CImageEditorUIView *)iEditorView)->SetImageFileName(iDocumentName);
+ // Save original document name
+ aFile.FullName(iSourceFileName);
+
+ // Set document name for printing
+ ((CImageEditorUIView *) iEditorView)->SetImageFileName(iDocumentName);
// If OpenFileL was not called when the startup sequence reached
// the point where it needs the document name, the construction was
@@ -1363,763 +1347,746 @@
{
// Resume construction
iConstructionState = EConstructionStateLoadImage;
- iCallback->DoCallback (KObConstructCallBackID);
+ iCallback->DoCallback(KObConstructCallBackID);
}
- }
+ }
//=============================================================================
CArrayFix<TCoeHelpContext>* CImageEditorAppUi::HelpContextL() const
-{
- CArrayFixFlat<TCoeHelpContext>* array =
- new(ELeave)CArrayFixFlat<TCoeHelpContext>(1);
- CleanupStack::PushL(array);
-
- TBool zoomedIn = ( ( CImageEditorUIView *)iEditorView )->InZoomingState();
- if ( zoomedIn )
- {
- array->AppendL(TCoeHelpContext(TUid::Uid(UID_IMAGE_EDITOR), KSIE_HLP_ZOOMING));
- }
- else
- {
- array->AppendL(TCoeHelpContext(TUid::Uid(UID_IMAGE_EDITOR), KSIE_HLP_MAIN));
- }
-
- CleanupStack::Pop(array);
- return array;
-}
+ {
+ CArrayFixFlat<TCoeHelpContext>* array = new (ELeave) CArrayFixFlat<
+ TCoeHelpContext> (1);
+ CleanupStack::PushL(array);
+
+ TBool zoomedIn = ((CImageEditorUIView *) iEditorView)->InZoomingState();
+ if (zoomedIn)
+ {
+ array->AppendL(TCoeHelpContext(TUid::Uid(UID_IMAGE_EDITOR),
+ KSIE_HLP_ZOOMING));
+ }
+ else
+ {
+ array->AppendL(TCoeHelpContext(TUid::Uid(UID_IMAGE_EDITOR),
+ KSIE_HLP_MAIN));
+ }
+
+ CleanupStack::Pop(array);
+ return array;
+ }
//=============================================================================
-void CImageEditorAppUi::InitializePluginL ()
-{
- LOG(KImageEditorLogFile, "CImageEditorAppUi: Initialising plugin");
-
- // Get pointer to the view
- CImageEditorUIView * view = (CImageEditorUIView *)iEditorView;
-
+void CImageEditorAppUi::InitializePluginL()
+ {
+ LOG(KImageEditorLogFile, "CImageEditorAppUi: Initialising plugin");
+
+ // Get pointer to the view
+ CImageEditorUIView * view = (CImageEditorUIView *) iEditorView;
+
// Close the previous plug-in
iEditorManager->ClosePlugin();
+
+ // Open a new plug-in
+ CPluginInfo * pgn_info = view->GetSelectedPluginInfoL();
+
+ if (pgn_info)
+ {
+ iEditorManager->OpenPluginL(pgn_info->PluginDll()->Des());
+ iPluginName.Copy(pgn_info->PluginDll()->Des());
- // Open a new plug-in
- CPluginInfo * pgn_info = view->GetSelectedPluginInfoL();
-
- if (pgn_info)
- {
- iEditorManager->OpenPluginL ( pgn_info->PluginDll()->Des() );
-
- LOG(KImageEditorLogFile, "CImageEditorAppUi: Plugin opened");
-
- // current rect
- TRect rect;
- iResolutionUtil->GetClientRect(rect);
-
- // Create a plug-in control
- // Ownership is moved to the plug-in
- CCoeControl * control = NULL;
- TInt err = iEditorManager->CreatePluginControlL (
- rect,
- view->GetContainer(),
- control
- );
-
- LOG(KImageEditorLogFile, "CImageEditorAppUi: Plugin control created");
-
- // The plug-in activation was cancelled
- if (err != KErrNone)
- {
- // Cancel plug-in
- iCancelling = ETrue;
- iCallback->DoCallback (KObCancelCallbackID);
- }
-
- // Activate plug-in
- else
- {
-
- // Register control to UI
- view->ActivatePluginL (control);
-
- LOG(KImageEditorLogFile, "CImageEditorAppUi: Plugin activated");
-
-
- // If the filter did not have a control, close plug-in
- if ( !control )
- {
- iEditorManager->ClosePlugin();
-
- }
-
- // Set the last opened image to editor view
- ((CImageEditorUIView *)iEditorView)->SetImageL (
- iEditorManager->GetPreviewImage()
- );
-
- ResetBusy();
- }
- }
+ //judge if it is draw plug-in
+ if (iPluginName != KNull && iPluginName == KDrawPlugin)
+ {
+ ((CImageEditorUIContainer *) ((CImageEditorUIView *) iEditorView)->GetContainer())->IsDrawPlugin(ETrue);
+ SetFullScreenL();
+ }
+ else
+ {
+ ((CImageEditorUIContainer *) ((CImageEditorUIView *) iEditorView)->GetContainer())->IsDrawPlugin(EFalse);
+ }
+
+ LOG(KImageEditorLogFile, "CImageEditorAppUi: Plugin opened");
+
+ // current rect
+ TRect rect;
+ iResolutionUtil->GetClientRect(rect);
+
+ // Create a plug-in control
+ // Ownership is moved to the plug-in
+ CCoeControl * control = NULL;
+ TInt err = iEditorManager->CreatePluginControlL(rect,view->GetContainer(), control);
+
+ LOG(KImageEditorLogFile, "CImageEditorAppUi: Plugin control created");
+
+ // The plug-in activation was cancelled
+ if (err != KErrNone)
+ {
+ // Cancel plug-in
+ iCancelling = ETrue;
+ iCallback->DoCallback(KObCancelCallbackID);
+ }
+ // Activate plug-in
+ else
+ {
+ // Register control to UI
+ view->ActivatePluginL(control);
+
+ LOG(KImageEditorLogFile, "CImageEditorAppUi: Plugin activated");
+
+ // If the filter did not have a control, close plug-in
+ if (!control)
+ {
+ iEditorManager->ClosePlugin();
+ }
+
+ // Set the last opened image to editor view
+ ((CImageEditorUIView *) iEditorView)->SetImageL(iEditorManager->GetPreviewImage());
+
+ ResetBusy();
+ }
+ }
+
else
- {
+ {
ResetBusy();
+ }
}
-}
//=============================================================================
-void CImageEditorAppUi::CreatePluginLocatorL ()
-{
- iLocator = CPluginLocator::NewL();
-}
-
-//=============================================================================
-void CImageEditorAppUi::CreateEditorManagerL ()
-{
- iEditorManager = CImageEditorPluginManager::NewL();
-}
+void CImageEditorAppUi::CreatePluginLocatorL()
+ {
+ iLocator = CPluginLocator::NewL();
+ }
//=============================================================================
-void CImageEditorAppUi::CreateImageControllerL ()
-{
- iImageController = CImageController::NewL (this, iEditorManager);
-}
+void CImageEditorAppUi::CreateEditorManagerL()
+ {
+ iEditorManager = CImageEditorPluginManager::NewL();
+ }
//=============================================================================
-void CImageEditorAppUi::LoadPluginsL ()
-{
- // Scan plug-ins
- iLocator->ScanPluginsL ();
-}
+void CImageEditorAppUi::CreateImageControllerL()
+ {
+ iImageController = CImageController::NewL(this, iEditorManager);
+ }
//=============================================================================
-void CImageEditorAppUi::InitializeUiItemsL ()
-{
-
- LOG (KImageEditorLogFile, "CImageEditorAppUi: InitializeUiItemsL");
-
- // Set UI items
- if (iEditorReady && iPluginsScanned && iImageLoaded)
- {
- for (TInt i = 0, c = iLocator->CountPlugins(); i < c; ++i)
- {
- ((CImageEditorUIView *)iEditorView)->AddPluginUiItemL (iLocator->GetPluginInfo(i));
- }
-
- // Set the last opened image to editor view
- ((CImageEditorUIView *)iEditorView)->SetImageL (
- iEditorManager->GetPreviewImage()
- );
-
- SetFileNameTitlePaneL(iSourceFileName);
-
- ((CImageEditorUIView *)iEditorView)->SetZoomModeL( iEditorManager->GetZoomMode() );
+void CImageEditorAppUi::LoadPluginsL()
+ {
+ // Scan plug-ins
+ iLocator->ScanPluginsL();
+ }
+
+//=============================================================================
+void CImageEditorAppUi::InitializeUiItemsL()
+ {
+
+ LOG (KImageEditorLogFile, "CImageEditorAppUi: InitializeUiItemsL");
+
+ // Set UI items
+ if (iEditorReady && iPluginsScanned && iImageLoaded)
+ {
+ for (TInt i = 0, c = iLocator->CountPlugins(); i < c; ++i)
+ {
+ ((CImageEditorUIView *) iEditorView)->AddPluginUiItemL(iLocator->GetPluginInfo(i));
+ }
+
+ SetFileNameTitlePaneL(iSourceFileName);
+
+ ((CImageEditorUIView *) iEditorView)->SetZoomModeL(iEditorManager->GetZoomMode());
LOG (KImageEditorLogFile, "CImageEditorAppUi: Plugins initialized");
-
- }
-}
+ }
+ }
//=============================================================================
void CImageEditorAppUi::ApplicationReadyL()
-{
- LOG (KImageEditorLogFile, "CImageEditorAppUi: ApplicationReadyLL");
-
- // Set UI items
- if (iEditorReady && iPluginsScanned && iImageLoaded)
- {
- if ( iOrientationChanged )
- {
- LOG(KImageEditorLogFile,
- "CImageEditorAppUi: Orientation changed, updating screen rect");
- // Check that application is in sync with the system
- // This should fix the problem with screen update after image is loading when
- // screen is folded during loading
- UpdateScreenRectL();
- iOrientationChanged = EFalse;
- }
- else if ( ( LandscapeScreenOrientation() &&
- ( StatusPane()->CurrentLayoutResId() !=
- R_AVKON_WIDESCREEN_PANE_LAYOUT_USUAL_FLAT ) ) )
- {
- LOG(KImageEditorLogFile,
- "CImageEditorAppUi: Status pane needs to be changed->updating screen rect");
- // Updating screen rect updates also status pane to correct "flat version"
- UpdateScreenRectL();
- }
-
+ {
+ LOG (KImageEditorLogFile, "CImageEditorAppUi: ApplicationReadyLL");
+
+ // Set UI items
+ if (iEditorReady && iPluginsScanned && iImageLoaded)
+ {
+ if (iOrientationChanged)
+ {
+ LOG(KImageEditorLogFile, "CImageEditorAppUi: Orientation changed, updating screen rect");
+ // Check that application is in sync with the system
+ // This should fix the problem with screen update after image is loading when
+ // screen is folded during loading
+ UpdateScreenRectL();
+ iOrientationChanged = EFalse;
+ }
+ else if ((LandscapeScreenOrientation()
+ && (StatusPane()->CurrentLayoutResId()
+ != R_AVKON_WIDESCREEN_PANE_LAYOUT_USUAL_FLAT)))
+ {
+ LOG(KImageEditorLogFile,"CImageEditorAppUi: Status pane needs to be changed->updating screen rect");
+ // Updating screen rect updates also status pane to correct "flat version"
+ UpdateScreenRectL();
+ }
+
TRect screenRect;
CResolutionUtil::Self()->GetClientRect(screenRect);
iOldScreenRect = screenRect;
ResetBusy();
-
+
// Open Plugin selection grid right away when application start is finished
//HandleCommandL(EImageEditorMenuCmdApplyEffect);
-
+
+ }
}
-}
-
//=============================================================================
-void CImageEditorAppUi::LoadImageL ()
-{
- LOGFMT (KImageEditorLogFile, "CImageEditorAppUi: Loading image (%S)", &iSourceFileName);
+void CImageEditorAppUi::LoadImageL()
+ {
+
+ LOGFMT (KImageEditorLogFile, "CImageEditorAppUi: Loading image (%S)", &iSourceFileName);
// Load the image to be edited
- iImageController->LoadImageL (iSourceFileName);
-}
+ iImageController->LoadImageL(iSourceFileName);
+ }
//=============================================================================
-void CImageEditorAppUi::SaveImageL ()
-{
- LOG(KImageEditorLogFile, "CImageEditorAppUi: Saving image");
-
- // Check if source image still exists
- if (!BaflUtils::FileExists(iEikonEnv->FsSession(), iSourceFileName))
- {
- if (iExitFromApp)
- {
- TInt exit =
- ((CImageEditorUIView *)iEditorView)->LaunchExitWithoutSavingQueryL();
- if (exit)
- {
- // Exit
- User::Leave (KSIEEErrorOkToExit);
- }
- else
- {
- iExitFromApp = EFalse;
- User::Leave(KSIEEInternal);
- }
- }
- else
- {
- User::Leave(KSIEEInternal);
- }
- }
-
- // Check document name if not saved yet or memory card removed
- if ( !iImageSaved ||
- !BaflUtils::PathExists(iEikonEnv->FsSession(), iTempSaveFileName.Left(3)))
- {
- // If not saved yet, check that document name is valid
- SetImageNameL();
- }
+void CImageEditorAppUi::SaveImageL()
+ {
+
+ LOG(KImageEditorLogFile, "CImageEditorAppUi: Saving image");
+
+ // Check if source image still exists
+ if (!BaflUtils::FileExists(iEikonEnv->FsSession(), iSourceFileName))
+ {
+ if (iExitFromApp)
+ {
+ TInt exit = ((CImageEditorUIView *) iEditorView)->LaunchExitWithoutSavingQueryL();
+ if (exit)
+ {
+ // Exit
+ User::Leave(KSIEEErrorOkToExit);
+ }
+ else
+ {
+ iExitFromApp = EFalse;
+ User::Leave(KSIEEInternal);
+ }
+ }
+ else
+ {
+ User::Leave(KSIEEInternal);
+ }
+ }
+
+ // Check document name if not saved yet or memory card removed
+ if (!iImageSaved || !BaflUtils::PathExists(iEikonEnv->FsSession(),
+ iTempSaveFileName.Left(3)))
+ {
+ // If not saved yet, check that document name is valid
+ SetImageNameL();
+ }
// Set temp save image name to engine
- iEditorManager->SetImageName (iTempSaveFileName);
-
- SetLayoutAwareApp(EFalse);
- // Launch save wait note
- LaunchSaveWaitNoteL ();
-
- iCallback->DoCallback (KObSaveCallbackID);
-
-}
+ iEditorManager->SetImageName(iTempSaveFileName);
+
+ SetLayoutAwareApp(EFalse);
+ // Launch save wait note
+ LaunchSaveWaitNoteL();
+
+ iCallback->DoCallback(KObSaveCallbackID);
+
+ }
//=============================================================================
void CImageEditorAppUi::SetImageNameL()
- {
-
- // Create new document name
- // (note that this also selects the drive where the image is saved)
- TInt err = ImageEditorUtils::GenerateNewDocumentNameL (
- iEikonEnv->FsSession(),
- iSourceFileName,
- iDocumentName,
- &iSourceImageMgAlbumIdList
- );
- User::LeaveIfError (err); // cannot save the image
- iEditorManager->SetImageName (iDocumentName);
-
- // Change title pane text
- SetFileNameTitlePaneL(iSourceFileName);
+ {
+
+ // Create new document name
+ // (note that this also selects the drive where the image is saved)
+ TInt err = ImageEditorUtils::GenerateNewDocumentNameL(
+ iEikonEnv->FsSession(), iSourceFileName, iDocumentName,
+ &iSourceImageMgAlbumIdList);
+ User::LeaveIfError(err); // cannot save the image
+ iEditorManager->SetImageName(iDocumentName);
+
+ // Change title pane text
+ SetFileNameTitlePaneL(iSourceFileName);
// Check that everything is in order with the file
- CheckFileL (iDocumentName);
-
- // Generate temporary save file name
- TParse tempFileParser;
- tempFileParser.Set (KTempSaveFile, &KTempPath, &iDocumentName);
- iTempSaveFileName.Copy (tempFileParser.FullName());
- BaflUtils::EnsurePathExistsL (iEikonEnv->FsSession(), iTempSaveFileName);
-
- }
-
+ CheckFileL(iDocumentName);
+
+ // Generate temporary save file name
+ TParse tempFileParser;
+ tempFileParser.Set(KTempSaveFile, &KTempPath, &iDocumentName);
+ iTempSaveFileName.Copy(tempFileParser.FullName());
+ BaflUtils::EnsurePathExistsL(iEikonEnv->FsSession(), iTempSaveFileName);
+
+ }
//=============================================================================
void CImageEditorAppUi::SaveChangesAndSendL()
-{
-
- LOG(KImageEditorLogFile, "CImageEditorAppUi::SaveChangesAndSendL()");
-
- iSending = ETrue;
-
- // Delete old temp files if exists
- DeleteTempFiles();
-
- if (iEditorManager->IsImageChanged())
- {
- // Save image
- SaveImageL();
-
- }
- // Otherwise send last saved image
- else
- {
- SendImageL ();
- }
-
-}
+ {
+
+ LOG(KImageEditorLogFile, "CImageEditorAppUi::SaveChangesAndSendL()");
+
+ iSending = ETrue;
+
+ // Delete old temp files if exists
+ DeleteTempFiles();
+
+ if (iEditorManager->IsImageChanged())
+ {
+ // Save image
+ SaveImageL();
+ }
+ // Otherwise send last saved image
+ else
+ {
+ SendImageL();
+ }
+
+ }
//=============================================================================
-void CImageEditorAppUi::SendImageL ()
-{
- LOG(KImageEditorLogFile, "CImageEditorAppUi::SendImageL()");
-
- ResetBusy();
-
- RFs& fs = iEikonEnv->FsSession();
- TFileName fileToSend;
-
- // Check if image has been modified and saved
- if (BaflUtils::FileExists(fs, iDocumentName))
- {
- fileToSend.Append(iDocumentName);
- }
- // Use source file if no changes done
- else
- {
- fileToSend.Append(iSourceFileName);
- }
-
- LOGFMT(KImageEditorLogFile, "CImageEditorAppUi: Sending image: %S", &fileToSend);
-
- iEikonEnv->SetBusy(ETrue);
-
+void CImageEditorAppUi::SendImageL()
+ {
+ LOG(KImageEditorLogFile, "CImageEditorAppUi::SendImageL()");
+
+ ResetBusy();
+
+ RFs& fs = iEikonEnv->FsSession();
+ TFileName fileToSend;
+
+ // Check if image has been modified and saved
+ if (BaflUtils::FileExists(fs, iDocumentName))
+ {
+ fileToSend.Append(iDocumentName);
+ }
+ // Use source file if no changes done
+ else
+ {
+ fileToSend.Append(iSourceFileName);
+ }
+
+ LOGFMT(KImageEditorLogFile, "CImageEditorAppUi: Sending image: %S", &fileToSend);
+
+ iEikonEnv->SetBusy(ETrue);
+
// Launch send query dialog
- TSendingCapabilities cap( 0, 0, TSendingCapabilities::ESupportsAttachments );
- ((CImageEditorUIView *)iEditorView)->LaunchSendQueryL(cap, fileToSend);
-
- iSending = EFalse;
- iEikonEnv->SetBusy(EFalse);
-}
+ TSendingCapabilities cap(0, 0, TSendingCapabilities::ESupportsAttachments);
+ ((CImageEditorUIView *) iEditorView)->LaunchSendQueryL(cap, fileToSend);
+
+ iSending = EFalse;
+ iEikonEnv->SetBusy(EFalse);
+ }
//=============================================================================
-void CImageEditorAppUi::CheckFileL (const TDesC & aFileName) const
-{
+void CImageEditorAppUi::CheckFileL(const TDesC & aFileName) const
+ {
RFs & fs = iEikonEnv->FsSession();
// Is file name valid
- if ( !fs.IsValidName (aFileName) )
- {
- User::Leave ( KSIEESaveFile );
+ if (!fs.IsValidName(aFileName))
+ {
+ User::Leave(KSIEESaveFile);
+ }
}
-}
-
//=============================================================================
-TBool CImageEditorAppUi::CallbackMethodL (TInt aParam)
-{
+TBool CImageEditorAppUi::CallbackMethodL(TInt aParam)
+ {
LOGFMT(KImageEditorLogFile, "CImageEditorAppUi::CallbackMethodL (%d)", aParam);
- TBool ret = EFalse;
-
- switch (aParam)
- {
-
- case KObConstructCallBackID:
+ TBool ret = EFalse;
+
+ switch (aParam)
{
-
- switch (iConstructionState)
- {
-
- case EConstructionStateAlloc:
- {
- // Launch wait note
- LaunchLoadWaitNoteL();
-
- // Initialize resolution utility. CResolutionUtil::InitializeL()
- // Returns the singleton instance of the class, creating it if
- // it does not yet exist.
- iResolutionUtil = CResolutionUtil::InitializeL();
+ case KObConstructCallBackID:
+ {
+ switch (iConstructionState)
+ {
+ case EConstructionStateAlloc:
+ {
+ // Launch wait note
+ LaunchLoadWaitNoteL();
+
+ // Initialize resolution utility. CResolutionUtil::InitializeL()
+ // Returns the singleton instance of the class, creating it if
+ // it does not yet exist.
+ iResolutionUtil = CResolutionUtil::InitializeL();
iResolutionUtil->SetFullScreen(EFalse);
#ifdef LANDSCAPE_SUPPORT
- // Set landscape parameter
- if (LandscapeScreenOrientation())
- {
- iResolutionUtil->SetLandscape(ETrue);
- }
- else
- {
- iResolutionUtil->SetLandscape(EFalse);
- }
+ // Set landscape parameter
+ if (LandscapeScreenOrientation())
+ {
+ iResolutionUtil->SetLandscape(ETrue);
+ }
+ else
+ {
+ iResolutionUtil->SetLandscape(EFalse);
+ }
#else
#ifdef LANDSCAPE_ONLY
iResolutionUtil->SetLandscape(ETrue);
#else
- iResolutionUtil->SetLandscape(EFalse);
+ iResolutionUtil->SetLandscape(EFalse);
#endif
#endif // LANDSCAPE_SUPPORT
-
- iResolutionUtil->UpdateScreenMode();
- LOG(KImageEditorLogFile, "CImageEditorAppUi: Resolution set");
-
- // Create the Send UI instance
- iSendAppUi = CSendUi::NewL();
- ((CImageEditorUIView *)iEditorView)->SetSendAppUi(iSendAppUi);
-
- // Create plug-in locator
- CreatePluginLocatorL();
+ iResolutionUtil->UpdateScreenMode();
+ LOG(KImageEditorLogFile, "CImageEditorAppUi: Resolution set");
+
+ // Create the Send UI instance
+ iSendAppUi = CSendUi::NewL();
+ ((CImageEditorUIView *) iEditorView)->SetSendAppUi(iSendAppUi);
+
+ // Create plug-in locator
+ CreatePluginLocatorL();
LOG(KImageEditorLogFile, "Locator created");
- // Create plug-in manager
- CreateEditorManagerL();
+
+ // Create plug-in manager
+ CreateEditorManagerL();
LOG(KImageEditorLogFile, "Manager created");
- // Create image controller
- CreateImageControllerL();
+
+ // Create image controller
+ CreateImageControllerL();
LOG(KImageEditorLogFile, "Image Controller created");
- iConstructionState = EConstructionStateLoadImage;
- ret = ETrue;
- break;
- }
-
- case EConstructionStateLoadImage:
- {
+ iConstructionState = EConstructionStateLoadImage;
+ ret = ETrue;
+ break;
+ }
+
+ case EConstructionStateLoadImage:
+ {
LOG(KImageEditorLogFile, "Loading image");
// iSourceFileName is available (in embedded mode) only after
// CImageEditorDocument::OpenFileL has been called by the system.
// If that has not been done
if (!iSourceFileName.Length())
- {
+ {
iConstructionState = EConstructionStateWaitForStartupParameters;
ret = EFalse;
- }
+ }
else
- {
- // Kill wait note before loading image.
- // Some corrupted images loading stacks if wait note is displayd
- //KillWaitNote();
-
- // Relaunch wait note
- //LaunchLoadWaitNoteL();
-
- // Load image
- LoadImageL();
-
- SetFileNameTitlePaneL(iSourceFileName);
- iConstructionState = EConstructionStateScanPlugins;
- ret = ETrue;
+ {
+ // Kill wait note before loading image.
+ // Some corrupted images loading stacks if wait note is displayd
+ //KillWaitNote();
+
+ // Relaunch wait note
+ //LaunchLoadWaitNoteL();
+
+ // Load image
+ LoadImageL();
+
+ SetFileNameTitlePaneL(iSourceFileName);
+ iConstructionState = EConstructionStateScanPlugins;
+ ret = ETrue;
+ }
+ break;
}
- break;
- }
-
- case EConstructionStateScanPlugins:
- {
+
+ case EConstructionStateScanPlugins:
+ {
LOG(KImageEditorLogFile, "Scanning plugins");
- LoadPluginsL();
- iConstructionState = EConstructionStateInitUi;
- ret = ETrue;
- break;
- }
-
- case EConstructionStateInitUi:
- {
+ LoadPluginsL();
+ iConstructionState = EConstructionStateInitUi;
+ ret = ETrue;
+ break;
+ }
+
+ case EConstructionStateInitUi:
+ {
LOG(KImageEditorLogFile, "Init UI");
- // Initialize UI items
- iPluginsScanned = ETrue;
- InitializeUiItemsL();
- iConstructionState = EConstructionStateReady;
- ret = ETrue;
- break;
- }
-
- default:
- {
+ // Initialize UI items
+ iPluginsScanned = ETrue;
+ InitializeUiItemsL();
+ iConstructionState = EConstructionStateReady;
+ ret = ETrue;
+ break;
+ }
+
+ default:
+ {
LOG(KImageEditorLogFile, "Ready");
KillWaitNote();
- ApplicationReadyL();
- break;
- }
- }
- break;
- }
+ ApplicationReadyL();
+ break;
+ }
+ }
+ break;
+ }
case KObReturnFromPluginID:
- {
- SetUndoFlag();
+ {
+ SetUndoFlag();
iEditorManager->ShowPluginPopup();
iEditorManager->ClosePlugin();
-
- __ASSERT_ALWAYS( iEditorView, User::Panic(KComponentName, EImageEditorPanicNoView) );
- ((CImageEditorUIView *)iEditorView)->ActivateMainViewL();
-
- ((CImageEditorUIView *)iEditorView)->SetImageL (
- iEditorManager->GetPreviewImage());
-
+ __ASSERT_ALWAYS( iEditorView, User::Panic(KComponentName, EImageEditorPanicNoView) );
+ ((CImageEditorUIView *) iEditorView)->ActivateMainViewL();
+
+ //Only for draw plug-in
+ if (iPluginName != KNull && iPluginName == KDrawPlugin)
+ {
+ iPluginName.Copy(KNull);
+ ResetFullScreenL();
+ }
+
ResetBusy();
break;
- }
+ }
case KObInitPluginID:
- {
- InitializePluginL ();
- SetUndoFlag();
+ {
+ InitializePluginL();
+ SetUndoFlag();
break;
- }
+ }
case KObCancelCallbackID:
- {
+ {
+ TRect rect;
+ CResolutionUtil::Self()->GetClientRect(rect);
+ CCoeControl* control = ((CImageEditorUIView *) iEditorView)->GetContainer();
+ control->SetRect(rect);
+
iEditorManager->ClosePlugin();
- iEditorManager->UndoL();
-
-
- __ASSERT_ALWAYS( iEditorView, User::Panic(KComponentName, EImageEditorPanicNoView) );
- ((CImageEditorUIView *)iEditorView)->ActivateMainViewL();
-
- ((CImageEditorUIView *)iEditorView)->SetImageL (
- iEditorManager->GetPreviewImage());
-
- SetUndoFlag();
+ iEditorManager->UndoL();
+
+ __ASSERT_ALWAYS( iEditorView, User::Panic(KComponentName, EImageEditorPanicNoView) );
+ ((CImageEditorUIView *) iEditorView)->ActivateMainViewL();
+
+ ((CImageEditorUIView *) iEditorView)->SetImageL(iEditorManager->GetPreviewImage());
+
+ SetUndoFlag();
ResetBusy();
iCancelling = EFalse;
break;
- }
+ }
case KObUndoDCallbackID:
- {
- iEditorManager->UndoL();
- SetUndoFlag();
- ((CImageEditorUIView *)iEditorView)->GetContainer()->DrawNow();
+ {
+ iEditorManager->UndoL();
+ SetUndoFlag();
+ ((CImageEditorUIView *) iEditorView)->GetContainer()->DrawNow();
ResetBusy();
break;
- }
+ }
case KObSendCallbackID:
- {
- SendImageL ();
- ResetBusy();
+ {
+ SendImageL();
+ ResetBusy();
+ break;
+ }
+
+ case KObPrintCallbackID:
+ {
+ // Reset first otherwise canceling print application
+ // leaves busy state active
+ iPrinting = EFalse;
+ ResetBusy();
+ ((CImageEditorUIView *) iEditorView)-> HandleCommandL(EImageEditorDoPrint);
break;
+ }
+
+ case KObSaveCallbackID:
+ {
+ // Start saving
+ iImageController->SaveImageL(iTempSaveFileName);
+ iSaving = ETrue;
+ break;
+ }
+
+ default:
+ {
+ break;
+ }
}
- case KObPrintCallbackID:
- {
- // Reset first otherwise canceling print application
- // leaves busy state active
- iPrinting = EFalse;
- ResetBusy();
- ((CImageEditorUIView *)iEditorView)->
- HandleCommandL(EImageEditorDoPrint);
- break;
- }
-
- case KObSaveCallbackID:
- {
- // Start saving
- iImageController->SaveImageL (iTempSaveFileName);
-
- iSaving = ETrue;
- break;
- }
-
- default:
+ return ret;
+ }
+
+//=============================================================================
+void CImageEditorAppUi::SetBusy()
+ {
+ LOG(KImageEditorLogFile, "CImageEditorAppUi: SetBusy()");
+ if (iEditorView)
{
- break;
+ ((CImageEditorUIView *) iEditorView)->SetBusy();
+ }
+ iBusy = ETrue;
+ }
+
+//=============================================================================
+void CImageEditorAppUi::ResetBusy()
+ {
+
+ LOG(KImageEditorLogFile, "CImageEditorAppUi: ResetBusy()");
+ // Keep busy until application is fully constructed
+ if (iConstructionState == EConstructionStateReady)
+ {
+ if (iEditorView)
+ {
+ ((CImageEditorUIView *) iEditorView)->ResetBusy();
+ }
+ iBusy = EFalse;
}
}
- return ret;
-}
-
-//=============================================================================
-void CImageEditorAppUi::SetBusy ()
-{
- LOG(KImageEditorLogFile, "CImageEditorAppUi: SetBusy()");
- if (iEditorView)
- {
- ((CImageEditorUIView *)iEditorView)->SetBusy();
- }
- iBusy = ETrue;
-}
-
-//=============================================================================
-void CImageEditorAppUi::ResetBusy ()
-{
- LOG(KImageEditorLogFile, "CImageEditorAppUi: ResetBusy()");
- // Keep busy until application is fully constructed
- if (iConstructionState == EConstructionStateReady)
- {
- if (iEditorView)
- {
- ((CImageEditorUIView *)iEditorView)->ResetBusy();
- }
- iBusy = EFalse;
- }
-}
-
//=============================================================================
-void CImageEditorAppUi::SetFullScreenL ()
-{
- __ASSERT_ALWAYS( iEditorView, User::Panic(KComponentName, EImageEditorPanicNoView) );
-
- LOG(KImageEditorLogFile, "CImageEditorAppUi: Setting full screen");
-
- iFullScreen = ETrue;
-
- // Set to full screen mode
- ((CImageEditorUIView *)iEditorView)->SetFullScreen();
-
- // In the startup image controller might not be created yet
- if (iImageController)
- {
- // Update new screen resolution
- UpdateScreenRectL();
- }
-
-
-}
+void CImageEditorAppUi::SetFullScreenL()
+ {
+ __ASSERT_ALWAYS( iEditorView, User::Panic(KComponentName, EImageEditorPanicNoView) );
+
+ LOG(KImageEditorLogFile, "CImageEditorAppUi: Setting full screen");
+
+ iFullScreen = ETrue;
+
+ // Set to full screen mode
+ ((CImageEditorUIView *) iEditorView)->SetFullScreen();
+
+ // In the startup image controller might not be created yet
+ if (iImageController)
+ {
+ // Update new screen resolution
+ UpdateScreenRectL();
+ }
+
+ }
//=============================================================================
-void CImageEditorAppUi::ResetFullScreenL ()
-{
- __ASSERT_ALWAYS( iEditorView, User::Panic(KComponentName, EImageEditorPanicNoView) );
-
- LOG(KImageEditorLogFile, "CImageEditorAppUi: Resetting full screen");
-
- iFullScreen = EFalse;
-
- // Set to full screen mode
- ((CImageEditorUIView *)iEditorView)->ResetFullScreen();
-
- // In the startup image controller might not be created yet
- if (iImageController)
- {
- UpdateScreenRectL();
- }
-
-}
+void CImageEditorAppUi::ResetFullScreenL()
+ {
+ __ASSERT_ALWAYS( iEditorView, User::Panic(KComponentName, EImageEditorPanicNoView) );
+
+ LOG(KImageEditorLogFile, "CImageEditorAppUi: Resetting full screen");
+
+ iFullScreen = EFalse;
+
+ // Set to full screen mode
+ ((CImageEditorUIView *) iEditorView)->ResetFullScreen();
+
+ // In the startup image controller might not be created yet
+ if (iImageController)
+ {
+ UpdateScreenRectL();
+ }
+
+ }
//=============================================================================
-void CImageEditorAppUi::SetUndoFlag ()
-{
- if (iEditorView)
- {
- ((CImageEditorUIView *)iEditorView)->SetUndoFlag( iEditorManager->CanUndo() );
- ((CImageEditorUIView *)iEditorView)->SetSaveFlag( iEditorManager->IsImageChanged() );
- }
-}
+void CImageEditorAppUi::SetUndoFlag()
+ {
+ if (iEditorView)
+ {
+ ((CImageEditorUIView *) iEditorView)->SetUndoFlag(iEditorManager->CanUndo());
+ ((CImageEditorUIView *) iEditorView)->SetSaveFlag(iEditorManager->IsImageChanged());
+ }
+ }
//=============================================================================
-void CImageEditorAppUi::SetTitlePaneTextL (const TDesC & aText)
-{
- const TInt KMaximumTitleTextLength = 13;
-
- if (iEditorView)
- {
- HBufC * title_text = HBufC::NewLC ( aText.Length() );
- TPtr title_text_ptr = title_text->Des();
-
- // No truncation
- if ( aText.Length() - 4 < KMaximumTitleTextLength )
- {
- // Copy whole file name
- title_text_ptr.Copy (aText);
- }
-
- // With truncation
- else
- {
-
- // Copy maximum amount of the file
- title_text_ptr.Copy ( aText.Left (KMaximumTitleTextLength) );
-
- // Append horizontal ellipsis
- title_text_ptr.Append ( KBaflCharTruncation );
-
- // Append sequence number
- _LIT(KSearchWildcard, "*-???");
- TInt offset = aText.Match (KSearchWildcard);
- if ( offset != KErrNotFound )
- {
- title_text_ptr.Append ( aText.Mid (offset, 4) );
- }
-
- }
-
- // Set title pane text
- ((CImageEditorUIView *)iEditorView)->SetTitlePaneTextL (title_text_ptr);
-
- CleanupStack::PopAndDestroy(); // title_text
- }
-}
+void CImageEditorAppUi::SetTitlePaneTextL(const TDesC & aText)
+ {
+ const TInt KMaximumTitleTextLength = 13;
+
+ if (iEditorView)
+ {
+ HBufC * title_text = HBufC::NewLC(aText.Length());
+ TPtr title_text_ptr = title_text->Des();
+
+ // No truncation
+ if (aText.Length() - 4 < KMaximumTitleTextLength)
+ {
+ // Copy whole file name
+ title_text_ptr.Copy(aText);
+ }
+ // With truncation
+ else
+ {
+ // Copy maximum amount of the file
+ title_text_ptr.Copy(aText.Left(KMaximumTitleTextLength));
+
+ // Append horizontal ellipsis
+ title_text_ptr.Append(KBaflCharTruncation);
+ // Append sequence number
+ _LIT(KSearchWildcard, "*-???");
+ TInt offset = aText.Match(KSearchWildcard);
+ if (offset != KErrNotFound)
+ {
+ title_text_ptr.Append(aText.Mid(offset, 4));
+ }
+ }
+ // Set title pane text
+ ((CImageEditorUIView *) iEditorView)->SetTitlePaneTextL(title_text_ptr);
+
+ CleanupStack::PopAndDestroy(); // title_text
+ }
+ }
//=============================================================================
-void CImageEditorAppUi::ClearTitlePaneTextL ()
-{
- if (iEditorView)
- {
- ((CImageEditorUIView *)iEditorView)->ClearTitlePaneTextL ();
- }
-}
-
+void CImageEditorAppUi::ClearTitlePaneTextL()
+ {
+ if (iEditorView)
+ {
+ ((CImageEditorUIView *) iEditorView)->ClearTitlePaneTextL();
+ }
+ }
//=============================================================================
-void CImageEditorAppUi::SetFileNameTitlePaneL (const TDesC& aFullFileName)
-{
- TParsePtrC parser (aFullFileName);
- SetTitlePaneTextL ( parser.Name() );
-}
+void CImageEditorAppUi::SetFileNameTitlePaneL(const TDesC& aFullFileName)
+ {
+ TParsePtrC parser(aFullFileName);
+ SetTitlePaneTextL(parser.Name());
+ }
//=============================================================================
void CImageEditorAppUi::ClearNaviPaneTextL()
-{
- if (iEditorView)
- {
- ((CImageEditorUIView *)iEditorView)->ClearNaviPaneTextL();
- }
-}
-
+ {
+ if (iEditorView)
+ {
+ ((CImageEditorUIView *) iEditorView)->ClearNaviPaneTextL();
+ }
+ }
//=============================================================================
void CImageEditorAppUi::UpdateScreenRectL()
- {
- LOG(KImageEditorLogFile, "CImageEditorAppUi::UpdateScreenRectL()");
-
- if (iEditorView == NULL ||
- iEditorManager == NULL ||
- iImageController == NULL)
+ {
+ LOG(KImageEditorLogFile, "CImageEditorAppUi::UpdateScreenRectL()");
+
+ if (iEditorView == NULL || iEditorManager == NULL || iImageController == NULL)
{
return;
}
-
- iEditorView->HandleCommandL (EImageEditorPreScreenModeChange);
-
- // Set Full screen parameter
- iResolutionUtil->SetFullScreen(iFullScreen);
+
+ iEditorView->HandleCommandL(EImageEditorPreScreenModeChange);
+
+ // Set Full screen parameter
+ iResolutionUtil->SetFullScreen(iFullScreen);
#ifdef LANDSCAPE_SUPPORT
- // Set landscape parameter
- if (LandscapeScreenOrientation())
- {
- iResolutionUtil->SetLandscape(ETrue);
- }
- else
- {
- iResolutionUtil->SetLandscape(EFalse);
- }
+ // Set landscape parameter
+ if (LandscapeScreenOrientation())
+ {
+ iResolutionUtil->SetLandscape(ETrue);
+ }
+ else
+ {
+ iResolutionUtil->SetLandscape(EFalse);
+ }
#else
#ifdef LANDSCAPE_ONLY
iResolutionUtil->SetLandscape(ETrue);
#else
- iResolutionUtil->SetLandscape(EFalse);
+ iResolutionUtil->SetLandscape(EFalse);
#endif
#endif
- // Update view layout
- ((CImageEditorUIView *)iEditorView)->UpdateLayoutL(
- iEikonEnv->ScreenDevice()->CurrentScreenMode());
+ // Update view layout
+ ((CImageEditorUIView *) iEditorView)->UpdateLayoutL(iEikonEnv->ScreenDevice()->CurrentScreenMode());
LOGFMT(KImageEditorLogFile, "CImageEditorAppUi: CurrentScreenMode() = %d", iEikonEnv->ScreenDevice()->CurrentScreenMode() );
- // Set current screen size to resolution util
- iResolutionUtil->UpdateScreenMode();
+ // Set current screen size to resolution util
+ iResolutionUtil->UpdateScreenMode();
// Check if screen size has changed
TRect newScreenRect;
@@ -2129,37 +2096,38 @@
LOG(KImageEditorLogFile, "CImageEditorAppUi: Not setting new preview image");
return;
}
- iOldScreenRect = newScreenRect;
-
- LOG(KImageEditorLogFile, "CImageEditorAppUi: Setting new preview image");
-
- // Create screen bitmap for new screen size
- iImageController->CreatePreviewBitmapL();
- if ((iConstructionState == EConstructionStateReady ||
- iConstructionState == EConstructionStateInitUi) &&
- !iSaving && iImageLoaded )
- {
- iEditorManager->SetScreenSizeL();
- }
-
+
+ iOldScreenRect = newScreenRect;
+
+ LOG(KImageEditorLogFile, "CImageEditorAppUi: Setting new preview image");
+
+ // Create screen bitmap for new screen size
+ iImageController->CreatePreviewBitmapL();
+ if ((iConstructionState == EConstructionStateReady || iConstructionState
+ == EConstructionStateInitUi) && !iSaving && iImageLoaded)
+ {
+ iEditorManager->SetScreenSizeL();
+ }
+
// Set the new image pointer to editor view
if (!iSaving)
{
- ((CImageEditorUIView *)iEditorView)->SetImageL (
- iEditorManager->GetPreviewImage()
- );
+ ((CImageEditorUIView *) iEditorView)->SetImageL(
+ iEditorManager->GetPreviewImage());
}
else // if saving cannot update new image until saving is completed.
{
- iOrientationChanged = ETrue;
- ((CImageEditorUIView *)iEditorView)->SetImageL ( NULL );
+ iOrientationChanged = ETrue;
+ ((CImageEditorUIView *) iEditorView)->SetImageL(NULL);
}
// Set container extent to whole screen
- CCoeControl * control = ((CImageEditorUIView *)iEditorView)->GetContainer();
+ CCoeControl * control =
+ ((CImageEditorUIView *) iEditorView)->GetContainer();
if (control)
{
- if (iFullScreen)
+ //if it is draw plug-in
+ if (iFullScreen || iPluginName == KDrawPlugin)
{
control->SetExtentToWholeScreen();
}
@@ -2170,748 +2138,777 @@
control->SetRect(rect);
}
- if (control->IsFocused())
- {
- control->DrawNow();
- }
- }
-
- iEditorView->HandleCommandL (EImageEditorPostScreenModeChange);
-
- }
-
+ if (control->IsFocused())
+ {
+ control->DrawNow();
+ }
+ }
+
+ iEditorView->HandleCommandL(EImageEditorPostScreenModeChange);
+
+ }
//=============================================================================
-void CImageEditorAppUi::ZoomL (const TZoom aZoom)
- {
- __ASSERT_ALWAYS( iEditorView, User::Panic(KComponentName, EImageEditorPanicNoView) );
- __ASSERT_ALWAYS( iEditorManager, User::Panic(KComponentName, EImageEditorPanicNoEditorManager) );
- SetBusy();
-
- // Zoom
- iEditorManager->ZoomL (aZoom);
-
- RenderL();
+void CImageEditorAppUi::ZoomL(const TZoom aZoom)
+ {
+ __ASSERT_ALWAYS( iEditorView, User::Panic(KComponentName, EImageEditorPanicNoView) );
+ __ASSERT_ALWAYS( iEditorManager, User::Panic(KComponentName, EImageEditorPanicNoEditorManager) );
+ SetBusy();
+
+ // Zoom
+ iEditorManager->ZoomL(aZoom);
+
+ RenderL();
iEditorManager->GetSystemParameters();
- // Inform the view about current zoom mode
- ((CImageEditorUIView *)iEditorView)->
- SetZoomModeL( iEditorManager->GetZoomMode() );
- }
+ // Inform the view about current zoom mode
+ ((CImageEditorUIView *) iEditorView)-> SetZoomModeL(iEditorManager->GetZoomMode());
+ }
//=============================================================================
-void CImageEditorAppUi::PanL (TDirection aDirection)
-{
- __ASSERT_ALWAYS( iEditorView, User::Panic(KComponentName, EImageEditorPanicNoView) );
- __ASSERT_ALWAYS( iEditorManager, User::Panic(KComponentName, EImageEditorPanicNoEditorManager) );
-
- iEditorView->HandleCommandL (EImageEditorPreGlobalPanChange);
-
- SetBusy();
+void CImageEditorAppUi::PanL(TDirection aDirection)
+ {
+ __ASSERT_ALWAYS( iEditorView, User::Panic(KComponentName, EImageEditorPanicNoView) );
+ __ASSERT_ALWAYS( iEditorManager, User::Panic(KComponentName, EImageEditorPanicNoEditorManager) );
+
+ iEditorView->HandleCommandL(EImageEditorPreGlobalPanChange);
+
+ SetBusy();
// Pan
- iEditorManager->PanL (aDirection);
-
- RenderL();
- iEditorManager->GetSystemParameters();
-
- ResetBusy();
-
- iEditorView->HandleCommandL (EImageEditorGlobalPanChanged);
-}
+ iEditorManager->PanL(aDirection);
+
+ RenderL();
+ iEditorManager->GetSystemParameters();
+
+ ResetBusy();
+
+ iEditorView->HandleCommandL(EImageEditorGlobalPanChanged);
+ }
//=============================================================================
-void CImageEditorAppUi::TouchPanL ()
-{
- __ASSERT_ALWAYS( iEditorView, User::Panic(KComponentName, EImageEditorPanicNoView) );
- __ASSERT_ALWAYS( iEditorManager, User::Panic(KComponentName, EImageEditorPanicNoEditorManager) );
-
- iEditorView->HandleCommandL (EImageEditorPreGlobalPanChange);
-
- SetBusy();
-
- // Fetch directions
- TInt xMovement(0);
- TInt yMovement(0);
-
- ((CImageEditorUIView *)iEditorView)->GetTouchPanDirections( xMovement, yMovement );
-
+void CImageEditorAppUi::TouchPanL()
+ {
+ __ASSERT_ALWAYS( iEditorView, User::Panic(KComponentName, EImageEditorPanicNoView) );
+ __ASSERT_ALWAYS( iEditorManager, User::Panic(KComponentName, EImageEditorPanicNoEditorManager) );
+
+ iEditorView->HandleCommandL(EImageEditorPreGlobalPanChange);
+
+ SetBusy();
+
+ // Fetch directions
+ TInt xMovement(0);
+ TInt yMovement(0);
+
+ ((CImageEditorUIView *) iEditorView)->GetTouchPanDirections(xMovement,yMovement);
+
// Pan
- iEditorManager->PanL( xMovement, yMovement );
-
- RenderL();
- iEditorManager->GetSystemParameters();
-
- ResetBusy();
-
- iEditorView->HandleCommandL (EImageEditorGlobalPanChanged);
-}
+ iEditorManager->PanL(xMovement, yMovement);
+
+ RenderL();
+ iEditorManager->GetSystemParameters();
+
+ ResetBusy();
+
+ iEditorView->HandleCommandL(EImageEditorGlobalPanChanged);
+ }
//=============================================================================
-void CImageEditorAppUi::RotateL (const TRotation aRot)
-{
+void CImageEditorAppUi::RotateL(const TRotation aRot)
+ {
__ASSERT_ALWAYS( iEditorView, User::Panic(KComponentName, EImageEditorPanicNoView) );
__ASSERT_ALWAYS( iEditorManager, User::Panic(KComponentName, EImageEditorPanicNoEditorManager) );
if (!iEditorManager->IsPluginLoaded())
- {
- iEditorManager->RotateL (aRot);
+ {
+ iEditorManager->RotateL(aRot);
RenderL();
SetUndoFlag();
- iEditorView->HandleCommandL (EImageEditorGlobalRotationChanged);
+ iEditorView->HandleCommandL(EImageEditorGlobalRotationChanged);
+ }
}
-}
//=============================================================================
-void CImageEditorAppUi::LaunchLoadWaitNoteL ()
-{
- __ASSERT_ALWAYS( iEditorView, User::Panic(KComponentName, EImageEditorPanicNoView) );
-
- SetBusy();
- ((CImageEditorUIView *)iEditorView)->LaunchWaitDialog( );
-
-// if (!iWaitNote)
-// {
-// ((CImageEditorUIView *)iEditorView)->LaunchLoadWaitDialogL( &iWaitNote, this );
-// }
-}
+void CImageEditorAppUi::LaunchLoadWaitNoteL()
+ {
+ __ASSERT_ALWAYS( iEditorView, User::Panic(KComponentName, EImageEditorPanicNoView) );
+
+ SetBusy();
+ ((CImageEditorUIView *) iEditorView)->LaunchWaitDialog();
+
+ // if (!iWaitNote)
+ // {
+ // ((CImageEditorUIView *)iEditorView)->LaunchLoadWaitDialogL( &iWaitNote, this );
+ // }
+ }
//=============================================================================
-void CImageEditorAppUi::LaunchSaveWaitNoteL ()
-{
- __ASSERT_ALWAYS( iEditorView, User::Panic(KComponentName, EImageEditorPanicNoView) );
- TAppUiOrientation orientation(EAppUiOrientationPortrait);
- if(LandscapeScreenOrientation())
- {
- orientation = EAppUiOrientationLandscape;
- }
-
- SetOrientationL(orientation);
- if (!iProgressNote)
- {
- ((CImageEditorUIView *)iEditorView)->LaunchSaveWaitDialogL( &iProgressNote, 100, this );
+void CImageEditorAppUi::LaunchSaveWaitNoteL()
+ {
+ __ASSERT_ALWAYS( iEditorView, User::Panic(KComponentName, EImageEditorPanicNoView) );
+ TAppUiOrientation orientation(EAppUiOrientationPortrait);
+ if (LandscapeScreenOrientation())
+ {
+ orientation = EAppUiOrientationLandscape;
+ }
+
+ SetOrientationL(orientation);
+ if (!iProgressNote)
+ {
+ ((CImageEditorUIView *) iEditorView)->LaunchSaveWaitDialogL(&iProgressNote, 100, this);
iSaving = ETrue;
- }
-}
+ }
+ }
//=============================================================================
-void CImageEditorAppUi::KillWaitNote ()
-{
-
-
-/* if (iWaitNote)
- {
- // If the application is exiting, iWaitNote->ProcessFinishedL()
- // apparently does not finish in time and does something after the
- // application has been deleted, causing USER 0 panic on debug builds.
- delete iWaitNote;
- iWaitNote = NULL;
- } */
-
- if (iProgressNote)
- {
- delete iProgressNote;
- iProgressNote = NULL;
- }
- else
- {
- // This can be hidden in all cases. If dialog is not active, nothing
- // special happens
- ((CImageEditorUIView *)iEditorView)->HideWaitDialog( );
- // Commented due to multiple ResetBusy() call during initialization:
- //ResetBusy();
- }
-}
-
+void CImageEditorAppUi::KillWaitNote()
+ {
+
+ /* if (iWaitNote)
+ {
+ // If the application is exiting, iWaitNote->ProcessFinishedL()
+ // apparently does not finish in time and does something after the
+ // application has been deleted, causing USER 0 panic on debug builds.
+ delete iWaitNote;
+ iWaitNote = NULL;
+ } */
+
+ if (iProgressNote)
+ {
+ delete iProgressNote;
+ iProgressNote = NULL;
+ }
+ else
+ {
+ // This can be hidden in all cases. If dialog is not active, nothing
+ // special happens
+ ((CImageEditorUIView *) iEditorView)->HideWaitDialog();
+ // Commented due to multiple ResetBusy() call during initialization:
+ //ResetBusy();
+ }
+ }
//=============================================================================
void CImageEditorAppUi::IncrementProgressBarL(const TInt aIncrement)
-{
- __ASSERT_ALWAYS( iProgressNote, User::Panic(KComponentName, EImageEditorPanicNoProgressDialog) );
-
- CEikProgressInfo * progi = iProgressNote->GetProgressInfoL();
- if (progi)
- {
- progi->IncrementAndDraw (aIncrement);
- }
-}
+ {
+ __ASSERT_ALWAYS( iProgressNote, User::Panic(KComponentName, EImageEditorPanicNoProgressDialog) );
+
+ CEikProgressInfo * progi = iProgressNote->GetProgressInfoL();
+ if (progi)
+ {
+ progi->IncrementAndDraw(aIncrement);
+ }
+ }
//=============================================================================
-void CImageEditorAppUi::DialogDismissedL( TInt aButtonId )
-{
- LOGFMT(KImageEditorLogFile, "CImageEditorAppUi::DialogDismissedL( %d )", aButtonId);
-
- if( aButtonId == EAknSoftkeyCancel )
- {
-
- if ( !iSaving )
- {
+void CImageEditorAppUi::DialogDismissedL(TInt aButtonId)
+ {
+ LOGFMT(KImageEditorLogFile, "CImageEditorAppUi::DialogDismissedL( %d )", aButtonId);
+
+ if (aButtonId == EAknSoftkeyCancel)
+ {
+ if (!iSaving)
+ {
iCallback->Cancel();
- iImageController->CancelOperation(ETrue);
- }
- else
- {
- iImageController->CancelOperation();
- }
+ iImageController->CancelOperation(ETrue);
+ }
+ else
+ {
+ iImageController->CancelOperation();
+ }
iWaitNote = NULL;
-
+
ResetBusy();
- }
-}
+ }
+ }
//=============================================================================
-TErrorHandlerResponse CImageEditorAppUi::HandleError (
- TInt aError,
- const SExtendedError & aExtErr,
- TDes & aErrorText,
- TDes & aContextText
- )
-{
- LOGFMT(KImageEditorLogFile, "CImageEditorAppUi::HandleError: %d", aError);
+TErrorHandlerResponse CImageEditorAppUi::HandleError(TInt aError,const SExtendedError & aExtErr, TDes & aErrorText, TDes & aContextText)
+ {
+ LOGFMT(KImageEditorLogFile, "CImageEditorAppUi::HandleError: %d", aError);
// Reset busy flag
- KillWaitNote ();
+ KillWaitNote();
ResetBusy();
iCancelling = EFalse;
iSaving = EFalse;
- TErrorHandlerResponse ret = ENoDisplay;
-
- // Handle Image Editor errors
- if ( (aError < KSIEEErrorBase) && (aError > KSIEEErrorMax) )
- {
- TRAPD ( err, HandleErrorL (aError) );
- if ( err == KErrNoMemory )
+ TErrorHandlerResponse ret = ENoDisplay;
+
+ // Handle Image Editor errors
+ if ((aError < KSIEEErrorBase) && (aError > KSIEEErrorMax))
{
- Exit();
+ TRAPD ( err, HandleErrorL (aError) );
+ if (err == KErrNoMemory)
+ {
+ Exit();
+ }
}
- }
-
- // Let the framework handle system errors
- else if ( aError == KErrNoMemory )
- {
+
+ // Let the framework handle system errors
+ else if (aError == KErrNoMemory)
+ {
iImageController->Cancel();
- ret = CAknViewAppUi::HandleError (aError, aExtErr, aErrorText, aContextText);
- Exit ();
- }
- // KErrCancel is returned when Bluetooth send is cancelled
- // No need to show error dialog
- else if ( aError == KErrCancel )
- {
- // Nothing to do
- }
- else if ((aError == KErrArgument) || (aError == KErrInUse))
- {
- // Show error note
- HandleErrorL (aError);
- }
- //end
- else if ( (aError <= KErrExtended) && (aError >= KLeaveExit) )
- {
- ret = CAknViewAppUi::HandleError (aError, aExtErr, aErrorText, aContextText);
- // Close plugin if error occurs, otherwise plugin may crash
- iEditorManager->ClosePlugin();
-
- __ASSERT_ALWAYS( iEditorView, User::Panic(KComponentName, EImageEditorPanicNoView) );
- TRAP_IGNORE( ((CImageEditorUIView *)iEditorView)->ActivateMainViewL() );
-
- TRAP_IGNORE( ((CImageEditorUIView *)iEditorView)->SetImageL (
- iEditorManager->GetPreviewImage()) );
- }
- else
- {
- ret = CAknViewAppUi::HandleError (aError, aExtErr, aErrorText, aContextText);
- // Close plugin if error occurs, otherwise plugin may crash
- iEditorManager->ClosePlugin();
-
- __ASSERT_ALWAYS( iEditorView, User::Panic(KComponentName, EImageEditorPanicNoView) );
-
- TRAPD( err, ((CImageEditorUIView *)iEditorView)->ActivateMainViewL() );
-
- TRAP_IGNORE( ((CImageEditorUIView *)iEditorView)->SetImageL (
- iEditorManager->GetPreviewImage()) );
-
- if ( err == KErrNoMemory )
+ ret = CAknViewAppUi::HandleError(aError, aExtErr, aErrorText,aContextText);
+ Exit();
+ }
+ // KErrCancel is returned when Bluetooth send is cancelled
+ // No need to show error dialog
+ else if (aError == KErrCancel)
+ {
+ // Nothing to do
+ }
+ else if ((aError == KErrArgument) || (aError == KErrInUse))
+ {
+ // Show error note
+ HandleErrorL(aError);
+ }
+ //end
+ else if ((aError <= KErrExtended) && (aError >= KLeaveExit))
{
- Exit();
+ ret = CAknViewAppUi::HandleError(aError, aExtErr, aErrorText,aContextText);
+ // Close plugin if error occurs, otherwise plugin may crash
+ iEditorManager->ClosePlugin();
+
+ __ASSERT_ALWAYS( iEditorView, User::Panic(KComponentName, EImageEditorPanicNoView) );
+ TRAP_IGNORE( ((CImageEditorUIView *)iEditorView)->ActivateMainViewL() );
+
+ TRAP_IGNORE( ((CImageEditorUIView *)iEditorView)->SetImageL (iEditorManager->GetPreviewImage()) );
}
- }
- return ret;
-}
+ else
+ {
+ ret = CAknViewAppUi::HandleError(aError, aExtErr, aErrorText,
+ aContextText);
+ // Close plugin if error occurs, otherwise plugin may crash
+ iEditorManager->ClosePlugin();
+
+ __ASSERT_ALWAYS( iEditorView, User::Panic(KComponentName, EImageEditorPanicNoView) );
+ TRAPD( err, ((CImageEditorUIView *)iEditorView)->ActivateMainViewL() );
+
+ TRAP_IGNORE( ((CImageEditorUIView *)iEditorView)->SetImageL (
+ iEditorManager->GetPreviewImage()) );
+ if (err == KErrNoMemory)
+ {
+ Exit();
+ }
+ }
+ return ret;
+ }
//=============================================================================
-void CImageEditorAppUi::HandleErrorL (const TInt aError)
-{
+void CImageEditorAppUi::HandleErrorL(const TInt aError)
+ {
// Show error note
- ShowErrorNoteL (aError);
+ ShowErrorNoteL(aError);
// Handle error
- switch ( aError )
- {
-
- case KSIEEErrorOkToExit:
- case KSIEEOpenFile:
- case KSIEEExifRead:
- case KSIEEInternalNonRecoverable:
- case KSIEEIncompatibleImage:
+ switch (aError)
{
+ case KSIEEErrorOkToExit:
+ case KSIEEOpenFile:
+ case KSIEEExifRead:
+ case KSIEEInternalNonRecoverable:
+ case KSIEEIncompatibleImage:
+ {
// For some weird reason, in some cases when trying to
// exit from CImageEditorAppUi::OperationReadyL, calling
// Exit() here won't exit the application.
RunAppShutter();
break;
- }
+ }
default:
- {
- // Close plugin if error occurs, otherwise plugin may crash
- if (iEditorManager)
- {
- iEditorManager->ClosePlugin();
-
- }
- if (iEditorView)
- {
- ((CImageEditorUIView *)iEditorView)->ActivateMainViewL();
- ((CImageEditorUIView *)iEditorView)->SetImageL (
- iEditorManager->GetPreviewImage());
- }
+ {
+ // Close plugin if error occurs, otherwise plugin may crash
+ if (iEditorManager)
+ {
+ iEditorManager->ClosePlugin();
+
+ }
+ if (iEditorView)
+ {
+ ((CImageEditorUIView *) iEditorView)->ActivateMainViewL();
+ ((CImageEditorUIView *) iEditorView)->SetImageL(iEditorManager->GetPreviewImage());
+ }
break;
+ }
}
}
-}
//=============================================================================
-void CImageEditorAppUi::ShowErrorNoteL (const TInt aError) const
-{
+void CImageEditorAppUi::ShowErrorNoteL(const TInt aError) const
+ {
TInt res_id = -1;
switch (aError)
- {
- case KErrNotFound:
+ {
+ case KErrNotFound:
case KSIEEOpenFile:
- case KSIEEExifRead:
- case KSIEEIncompatibleImage:
- {
+ case KSIEEExifRead:
+ case KSIEEIncompatibleImage:
+ {
res_id = R_ERROR_LOADING;
break;
- }
+ }
case KSIEESaveFile:
- case KSIEEExifUpdate:
+ case KSIEEExifUpdate:
case KErrArgument:
case KErrInUse:
-
- {
+
+ {
res_id = R_ERROR_SAVING;
break;
- }
+ }
case KSIEENotEnoughDiskSpace:
- {
+ {
res_id = R_ERROR_NOT_ENOUGH_DISK_SPACE;
break;
- }
+ }
case KSIEEProcessFile:
- {
+ {
res_id = R_ERROR_PROCESSING;
break;
- }
+ }
case KSIEEEngine:
- {
+ {
res_id = R_ERROR_ENGINE;
break;
- }
+ }
case KSIEEInternal:
- {
+ {
res_id = R_ERROR_INTERNAL;
break;
- }
+ }
case KSIEEInternalNonRecoverable:
- {
+ {
res_id = R_ERROR_INTERNAL_NON_RECOVERABLE;
break;
+ }
+ case KSIEEProtectedFile:
+ {
+ res_id = R_ERROR_PROTECTED_FILE;
+ break;
+ }
+ default:
+ break;
}
- case KSIEEProtectedFile:
- {
- res_id = R_ERROR_PROTECTED_FILE;
- break;
- }
- default:
- break;
+
+ if (res_id != -1)
+ {
+ HBufC * textdata = iEikonEnv->AllocReadResourceLC(res_id);
+ TPtrC ptr = textdata->Des();
+
+ LOGFMT(KImageEditorLogFile, "CImageEditorAppUi::ShowErrorNoteL: \"%S\"", &ptr);
+
+ CAknGlobalNote* globalNote = CAknGlobalNote::NewLC();
+ TInt noteId = globalNote->ShowNoteL(EAknGlobalErrorNote, ptr);
+
+ User::After(1500042); // waiting for 1 second
+
+ // discard note
+ globalNote->CancelNoteL(noteId);
+
+ CleanupStack::PopAndDestroy(); //textdata
+ CleanupStack::PopAndDestroy(); // GlobalNote
+ }
}
- if (res_id != - 1)
- {
- HBufC * textdata = iEikonEnv->AllocReadResourceLC (res_id);
- TPtrC ptr = textdata->Des();
-
- LOGFMT(KImageEditorLogFile, "CImageEditorAppUi::ShowErrorNoteL: \"%S\"", &ptr);
-
-
- CAknGlobalNote* globalNote = CAknGlobalNote::NewLC();
- TInt noteId = globalNote->ShowNoteL( EAknGlobalErrorNote, ptr );
-
- User::After(1500042); // waiting for 1 second
-
- // discard note
- globalNote->CancelNoteL( noteId );
-
-
- CleanupStack::PopAndDestroy(); //textdata
- CleanupStack::PopAndDestroy(); // GlobalNote
- }
-}
-
//=============================================================================
void CImageEditorAppUi::DeleteTempFiles() const
-{
- // Get the used temp directory path.
- // Take drive letter from iDocumentName
- TParse parse;
- parse.Set (KTempPath, &iDocumentName, NULL);
- TPtrC tempDir = parse.DriveAndPath();
-
- LOGFMT (KImageEditorLogFile, "CImageEditorAppUi::DeleteTempFiles(): %S", &tempDir);
-
- // Delete all files in the temp directory
- _LIT(KAllFiles, "*.*");
- TFindFile file_finder (iEikonEnv->FsSession());
- CDir* file_list;
- TInt err = file_finder.FindWildByDir (KAllFiles, tempDir, file_list);
- while (err==KErrNone)
- {
- TInt i;
- for (i=0; i<file_list->Count(); i++)
- {
- const TDesC& name = (*file_list)[i].iName;
- const TDesC& related = file_finder.File();
- TParse fullentry;
- fullentry.Set (name, &related, NULL);
- BaflUtils::DeleteFile (iEikonEnv->FsSession(), fullentry.FullName());
- }
- delete file_list;
- err=file_finder.FindWild (file_list);
- }
-
-}
+ {
+ // Get the used temp directory path.
+ // Take drive letter from iDocumentName
+ TParse parse;
+ parse.Set(KTempPath, &iDocumentName, NULL);
+ TPtrC tempDir = parse.DriveAndPath();
+
+ LOGFMT (KImageEditorLogFile, "CImageEditorAppUi::DeleteTempFiles(): %S", &tempDir);
+ // Delete all files in the temp directory
+ _LIT(KAllFiles, "*.*");
+ TFindFile file_finder(iEikonEnv->FsSession());
+ CDir* file_list;
+ TInt err = file_finder.FindWildByDir(KAllFiles, tempDir, file_list);
+ while (err == KErrNone)
+ {
+ TInt i;
+ for (i = 0; i < file_list->Count(); i++)
+ {
+ const TDesC& name = (*file_list)[i].iName;
+ const TDesC& related = file_finder.File();
+ TParse fullentry;
+ fullentry.Set(name, &related, NULL);
+ BaflUtils::DeleteFile(iEikonEnv->FsSession(), fullentry.FullName());
+ }
+ delete file_list;
+ err = file_finder.FindWild(file_list);
+ }
+
+ }
//=============================================================================
void CImageEditorAppUi::FinalizeSaveL()
-{
- LOG(KImageEditorLogFile, "CImageEditorAppUi::FinalizeSaveL");
+ {
+ LOG(KImageEditorLogFile, "CImageEditorAppUi::FinalizeSaveL");
#ifdef FILE_TIME_STAMP_UPDATE
- // Set the timestamp of the saved file to original file's timestamp + 2 seconds.
- // The idea is to make the original and edited images appear next to each other.
- TEntry original;
- TInt err = iEikonEnv->FsSession().Entry( iSourceFileName, original );
- if (KErrNone == err)
- {
- TTime newTime = original.iModified + TTimeIntervalSeconds (2);
-
- CFileMan* fileMan = CFileMan::NewL( iEikonEnv->FsSession() );
- CleanupStack::PushL (fileMan);
- fileMan->Attribs(iDocumentName, 0, 0, newTime); // do not set or clear anything, mofify time
- CleanupStack::PopAndDestroy (fileMan);
- }
+ // Set the timestamp of the saved file to original file's timestamp + 2 seconds.
+ // The idea is to make the original and edited images appear next to each other.
+ TEntry original;
+ TInt err = iEikonEnv->FsSession().Entry( iSourceFileName, original );
+ if (KErrNone == err)
+ {
+ TTime newTime = original.iModified + TTimeIntervalSeconds (2);
+
+ CFileMan* fileMan = CFileMan::NewL( iEikonEnv->FsSession() );
+ CleanupStack::PushL (fileMan);
+ fileMan->Attribs(iDocumentName, 0, 0, newTime); // do not set or clear anything, mofify time
+ CleanupStack::PopAndDestroy (fileMan);
+ }
#endif
- LOG(KImageEditorLogFile, "CImageEditorAppUi: Check if source image belongs to an album");
-
- iSourceImageMgAlbumIdList.Reset();
-
- LOG(KImageEditorLogFile, "CImageEditorAppUi: publish the filename for provider");
-
- // Publish & Subscribe API used for delivering document name to AIW provider
- TInt err2 = RProperty::Define(KImageEditorProperties, EPropertyFilename, RProperty::EText);
-
- if (err2 != KErrAlreadyExists)
- {
- User::LeaveIfError(err2);
- }
-
- User::LeaveIfError(RProperty::Set(KImageEditorProperties, EPropertyFilename, iDocumentName));
-
- LOG(KImageEditorLogFile, "CImageEditorAppUi::FinalizeSaveL out");
-}
+ LOG(KImageEditorLogFile, "CImageEditorAppUi: Check if source image belongs to an album");
+
+ iSourceImageMgAlbumIdList.Reset();
+
+ LOG(KImageEditorLogFile, "CImageEditorAppUi: publish the filename for provider");
+
+ // Publish & Subscribe API used for delivering document name to AIW provider
+ TInt err2 = RProperty::Define(KImageEditorProperties, EPropertyFilename,
+ RProperty::EText);
+
+ if (err2 != KErrAlreadyExists)
+ {
+ User::LeaveIfError(err2);
+ }
+
+ User::LeaveIfError(RProperty::Set(KImageEditorProperties,
+ EPropertyFilename, iDocumentName));
+
+ LOG(KImageEditorLogFile, "CImageEditorAppUi::FinalizeSaveL out");
+ }
//=============================================================================
void CImageEditorAppUi::HandleVolumeUpL()
-{
+ {
LOG(KImageEditorLogFile, "CImageEditorAppUi::HandleVolumeUpL: in");
TKeyEvent key;
key.iScanCode = EStdKeyIncVolume;
key.iCode = EKeyIncVolume;
- if( LandscapeScreenOrientation() )
- {
+ if (LandscapeScreenOrientation())
+ {
key.iScanCode = EStdKeyDecVolume;
key.iCode = EKeyDecVolume;
- }
+ }
key.iRepeats = 0;
- iEikonEnv->SimulateKeyEventL( key, EEventKey );
+ iEikonEnv->SimulateKeyEventL(key, EEventKey);
LOG(KImageEditorLogFile, "CImageEditorAppUi::HandleVolumeUpL: out");
-}
+ }
//=============================================================================
void CImageEditorAppUi::HandleVolumeDownL()
-{
+ {
LOG(KImageEditorLogFile, "CImageEditorAppUi::HandleVolumeDownL: in");
TKeyEvent key;
key.iScanCode = EStdKeyDecVolume;
key.iCode = EKeyDecVolume;
- if( LandscapeScreenOrientation() )
- {
+ if (LandscapeScreenOrientation())
+ {
key.iScanCode = EStdKeyIncVolume;
key.iCode = EKeyIncVolume;
- }
+ }
key.iRepeats = 0;
- iEikonEnv->SimulateKeyEventL( key, EEventKey );
+ iEikonEnv->SimulateKeyEventL(key, EEventKey);
LOG(KImageEditorLogFile, "CImageEditorAppUi::HandleVolumeDownL: out");
-}
+ }
//=============================================================================
void CImageEditorAppUi::SaveImageOverWriteL(TBool aOverWrite)
-{
- LOG(KImageEditorLogFile, "CImageEditorAppUi: SaveImageOverWriteL: in");
-
- // Generate temporary save file name
+ {
+ LOG(KImageEditorLogFile, "CImageEditorAppUi: SaveImageOverWriteL: in");
+
+ // Generate temporary save file name
TParse tempFileParser;
- tempFileParser.Set (KTempSaveFile, &KTempPath, &iDocumentName);
- iTempSaveFileName.Copy (tempFileParser.FullName());
- BaflUtils::EnsurePathExistsL (iEikonEnv->FsSession(), iTempSaveFileName);
-
- if (iExitFromApp)
- {
- TInt exit =
- ((CImageEditorUIView *)iEditorView)->LaunchExitWithoutSavingQueryL();
- if (exit)
- {
- // Exit
- User::Leave (KSIEEErrorOkToExit);
- }
- else
- {
- iExitFromApp = EFalse;
- User::Leave(KSIEEInternal);
- }
- }
+ tempFileParser.Set(KTempSaveFile, &KTempPath, &iDocumentName);
+ iTempSaveFileName.Copy(tempFileParser.FullName());
+ BaflUtils::EnsurePathExistsL(iEikonEnv->FsSession(), iTempSaveFileName);
+
+ if (iExitFromApp)
+ {
+ TInt
+ exit = ((CImageEditorUIView *) iEditorView)->LaunchExitWithoutSavingQueryL();
+ if (exit)
+ {
+ // Exit
+ User::Leave(KSIEEErrorOkToExit);
+ }
+ else
+ {
+ iExitFromApp = EFalse;
+ User::Leave(KSIEEInternal);
+ }
+ }
// overwrite the existing file
if (aOverWrite)
- {
- iDocumentName = iSourceFileName;
- }
-
+ {
+ iDocumentName = iSourceFileName;
+ }
+
// save with a new file name
else
- {
- // Check document name if not saved yet or memory card removed
- if ( !iImageSaved ||
- !BaflUtils::PathExists(iEikonEnv->FsSession(), iTempSaveFileName.Left(3)))
- {
- // If not saved yet, check that document name is valid
- CheckFileL (iDocumentName);
- }
+ {
+ // Check document name if not saved yet or memory card removed
+ if (!iImageSaved || !BaflUtils::PathExists(iEikonEnv->FsSession(),
+ iTempSaveFileName.Left(3)))
+ {
+ // If not saved yet, check that document name is valid
+ CheckFileL(iDocumentName);
+ }
+ }
+
+ // Set temp save image name to engine
+ iEditorManager->SetImageName(iTempSaveFileName);
+
+ // Launch save wait note
+ LaunchSaveWaitNoteL();
+
+ iCallback->DoCallback(KObSaveCallbackID);
+ LOG(KImageEditorLogFile, "CImageEditorAppUi: SaveImageOverWriteL: out");
}
-
- // Set temp save image name to engine
- iEditorManager->SetImageName (iTempSaveFileName);
-
- // Launch save wait note
- LaunchSaveWaitNoteL ();
-
- iCallback->DoCallback (KObSaveCallbackID);
- LOG(KImageEditorLogFile, "CImageEditorAppUi: SaveImageOverWriteL: out");
-}
//=============================================================================
TInt CImageEditorAppUi::QueryAndSaveL()
- {
-
- TInt isSaved = 0;
- TInt userSelection = 0;
- TBool isFileOpen = EFalse;
- RFs& fs = iEikonEnv->FsSession();
- TInt err = fs.IsFileOpen( iSourceFileName, isFileOpen );
-
- // Check if .jpg or .jpeg file
- TBool isJpgExtension = EFalse;
- TParsePtrC fileParse ( iSourceFileName );
+ {
+
+ TInt isSaved = 0;
+ TInt userSelection = 0;
+ TBool isFileOpen = EFalse;
+ RFs& fs = iEikonEnv->FsSession();
+ TInt err = fs.IsFileOpen(iSourceFileName, isFileOpen);
+
+ // Check if .jpg or .jpeg file
+ TBool isJpgExtension = EFalse;
+ TParsePtrC fileParse(iSourceFileName);
_LIT( KJpgExtension, ".jpg" );
_LIT( KJpegExtension, ".jpeg" );
- TPtrC extension( fileParse.Ext() );
- if ( ( extension.MatchF( KJpgExtension ) == KErrNone ) ||
- ( extension.MatchF( KJpegExtension ) == KErrNone ) )
- {
- isJpgExtension = ETrue;
- }
-
- // If source file is open (e.g. in ImageViewer application) don't give
- // user an option to replace original but launch directly "Save with a
- // new name query. Don't give other that jpg originals.
- if ( !isFileOpen && isJpgExtension )
- {
- // the user selects to save with a new file name
- // launch query with choices "Replace original" and
- // "Save with a new file name"
- userSelection = ( ( CImageEditorUIView *)iEditorView )->LaunchSaveImageQueryL();
- }
- SetOrientationL(Orientation());
- SetLayoutAwareApp(EFalse);
- // If user has selected "Save with a new file name"
- if( userSelection == 0 )
- {
-
- // Multiple drive support enabled
+ TPtrC extension(fileParse.Ext());
+ if ((extension.MatchF(KJpgExtension) == KErrNone) || (extension.MatchF(
+ KJpegExtension) == KErrNone))
+ {
+ isJpgExtension = ETrue;
+ }
+
+ // If source file is open (e.g. in ImageViewer application) don't give
+ // user an option to replace original but launch directly "Save with a
+ // new name query. Don't give other that jpg originals.
+ if (!isFileOpen && isJpgExtension)
+ {
+ // the user selects to save with a new file name
+ // launch query with choices "Replace original" and
+ // "Save with a new file name"
+ userSelection = ((CImageEditorUIView *) iEditorView)->LaunchSaveImageQueryL();
+ }
+ SetOrientationL(Orientation());
+ SetLayoutAwareApp(EFalse);
+ // If user has selected "Save with a new file name"
+ if (userSelection == 0)
+ {
+
+ // Multiple drive support enabled
#ifdef RD_MULTIPLE_DRIVE
-
- TDriveNumber driveNumber;
- TFileName driveAndPath;
- // new multi drive dialog
- CAknMemorySelectionDialogMultiDrive* multiDriveDlg =
- CAknMemorySelectionDialogMultiDrive::NewL( ECFDDialogTypeSave,
- EFalse );
- CleanupStack::PushL( multiDriveDlg );
-
- // launch "Select memory" query (mds)
- if ( multiDriveDlg->ExecuteL( driveNumber, &driveAndPath, NULL ) )
- {
- // Generate a default name for the new file
- TInt err = ImageEditorUtils::GenerateNewFileNameL(
- iEikonEnv->FsSession(),
- iSourceFileName,
- iDocumentName,
- driveAndPath,
- NULL );
-
- driveAndPath.Append( PathInfo::ImagesPath() );
-
- // launch file name prompt dialog
- // the generated name is shown as a default name in dialog
- TBuf<160> tmp( iDocumentName.Left(160) );
- iSavingQuery = ETrue;
- if ( CAknFileNamePromptDialog::RunDlgLD( tmp, /* iDocumentName, */
- driveAndPath,
- KNullDesC ) )
- {
- iDocumentName.Copy( tmp );
- iSavingQuery = EFalse;
- // add just queried filename to the path
- driveAndPath.Append( iDocumentName );
-
- iDocumentName = driveAndPath;
-
- SaveImageOverWriteL( EFalse );
- isSaved = 1;
- }
- iSavingQuery = EFalse;
- }
- CleanupStack::PopAndDestroy( multiDriveDlg );
-
+
+ TDriveNumber driveNumber;
+ TFileName driveAndPath;
+ // new multi drive dialog
+ CAknMemorySelectionDialogMultiDrive* multiDriveDlg = CAknMemorySelectionDialogMultiDrive::NewL(ECFDDialogTypeSave,
+ EFalse);
+ CleanupStack::PushL(multiDriveDlg);
+
+ // launch "Select memory" query (mds)
+ if (multiDriveDlg->ExecuteL(driveNumber, &driveAndPath, NULL ))
+ {
+ // Generate a default name for the new file
+ TInt err = ImageEditorUtils::GenerateNewFileNameL(
+ iEikonEnv->FsSession(), iSourceFileName, iDocumentName,
+ driveAndPath, NULL );
+
+ driveAndPath.Append(PathInfo::ImagesPath());
+
+ //Save as the original file format.
+ iDocumentName.Delete(iDocumentName.Length() - 5, 4);
+ iDocumentName.Append(fileParse.Ext());
+
+ // launch file name prompt dialog
+ // the generated name is shown as a default name in dialog
+
+ TBuf<160> tmp(iDocumentName.Left(160));
+ iSavingQuery = ETrue;
+ if (CAknFileNamePromptDialog::RunDlgLD(tmp, /* iDocumentName, */
+ driveAndPath, KNullDesC))
+ {
+ iDocumentName.Copy(tmp);
+ iSavingQuery = EFalse;
+ // add just queried filename to the path
+ driveAndPath.Append(iDocumentName);
+
+ iDocumentName = driveAndPath;
+
+ SaveImageOverWriteL(EFalse);
+ isSaved = 1;
+ }
+ iSavingQuery = EFalse;
+ }
+ CleanupStack::PopAndDestroy(multiDriveDlg);
+
#else // No multiple drive support
- CAknMemorySelectionDialog::TMemory selectedMemory(
- CAknMemorySelectionDialog::EPhoneMemory );
-
- // launch "Select memory" query
- if ( CAknMemorySelectionDialog::RunDlgLD( selectedMemory ) )
- {
- // create path for the image
- TFileName driveAndPath;
- ImageEditorUtils::TMemorySelection memorySelection =
- ImageEditorUtils::ESelectPhone;
- if( selectedMemory == CAknMemorySelectionDialog::EPhoneMemory )
- {
- memorySelection = ImageEditorUtils::ESelectPhone;
- driveAndPath.Copy( PathInfo::PhoneMemoryRootPath() );
- driveAndPath.Append( PathInfo::ImagesPath() );
- }
- else if ( selectedMemory ==
- CAknMemorySelectionDialog::EMemoryCard )
- {
- memorySelection = ImageEditorUtils::ESelectMmc;
- driveAndPath.Copy( PathInfo::MemoryCardRootPath() );
- driveAndPath.Append( PathInfo::ImagesPath() );
- }
-
- TInt err = ImageEditorUtils::GenerateNewDocumentNameL(
- iEikonEnv->FsSession(),
- iSourceFileName,
- iDocumentName,
- &iSourceImageMgAlbumIdList,
- NULL,
- memorySelection );
-
-
- // launch file name prompt dialog
- // the generated name is shown as a default name
- iSavingQuery = ETrue;
- if ( CAknFileNamePromptDialog::RunDlgLD( iDocumentName,
- driveAndPath,
- KNullDesC ) )
- {
- iSavingQuery = EFalse;
- TInt err = ImageEditorUtils::GenerateFilePathL(
- iEikonEnv->FsSession(),
- iSourceFileName,
- iDocumentName,
- memorySelection
- );
-
- SaveImageOverWriteL( EFalse );
- isSaved = 1;
- }
- iSavingQuery = EFalse;
- }
+ CAknMemorySelectionDialog::TMemory selectedMemory(
+ CAknMemorySelectionDialog::EPhoneMemory );
+
+ // launch "Select memory" query
+ if ( CAknMemorySelectionDialog::RunDlgLD( selectedMemory ) )
+ {
+ // create path for the image
+ TFileName driveAndPath;
+ ImageEditorUtils::TMemorySelection memorySelection =
+ ImageEditorUtils::ESelectPhone;
+ if( selectedMemory == CAknMemorySelectionDialog::EPhoneMemory )
+ {
+ memorySelection = ImageEditorUtils::ESelectPhone;
+ driveAndPath.Copy( PathInfo::PhoneMemoryRootPath() );
+ driveAndPath.Append( PathInfo::ImagesPath() );
+ }
+ else if ( selectedMemory ==
+ CAknMemorySelectionDialog::EMemoryCard )
+ {
+ memorySelection = ImageEditorUtils::ESelectMmc;
+ driveAndPath.Copy( PathInfo::MemoryCardRootPath() );
+ driveAndPath.Append( PathInfo::ImagesPath() );
+ }
+
+ TInt err = ImageEditorUtils::GenerateNewDocumentNameL(
+ iEikonEnv->FsSession(),
+ iSourceFileName,
+ iDocumentName,
+ &iSourceImageMgAlbumIdList,
+ NULL,
+ memorySelection );
+
+ // launch file name prompt dialog
+ // the generated name is shown as a default name
+ iSavingQuery = ETrue;
+ if ( CAknFileNamePromptDialog::RunDlgLD( iDocumentName,
+ driveAndPath,
+ KNullDesC ) )
+ {
+ iSavingQuery = EFalse;
+ TInt err = ImageEditorUtils::GenerateFilePathL(
+ iEikonEnv->FsSession(),
+ iSourceFileName,
+ iDocumentName,
+ memorySelection
+ );
+
+ SaveImageOverWriteL( EFalse );
+ isSaved = 1;
+ }
+ iSavingQuery = EFalse;
+ }
#endif
- }
- // the user selects to overwrite the original image
- else if ( userSelection == 1 )
- {
- SaveImageOverWriteL( ETrue );
- isSaved = 1;
- }
- return isSaved;
- }
+ }
+ // the user selects to overwrite the original image
+ else if (userSelection == 1)
+ {
+ SaveImageOverWriteL(ETrue);
+ isSaved = 1;
+ }
+ return isSaved;
+ }
// ----------------------------------------------------------------------------
// CImageEditorAppUi::HandleVolumeKeyEvent
// ----------------------------------------------------------------------------
//
-void CImageEditorAppUi::HandleVolumeKeyEvent( TRemConCoreApiOperationId aOperationId,
- TRemConCoreApiButtonAction /* aButtonAct */ )
- {
- if (((CImageEditorUIView *)iEditorView)->GetContainer())
- {
- if(! ((CImageEditorUIView *)iEditorView)->GetContainer()->IsFocused() )
- {
- return;
- }
- }
-
- if( iForeground )
- {
- TKeyEvent keyEvent;
- if( aOperationId == ERemConCoreApiVolumeUp )
- {
- keyEvent.iScanCode = EStdKeyIncVolume;
- TRAP_IGNORE( HandleKeyEventL( keyEvent, EEventKey ) );
- }
- else if( aOperationId == ERemConCoreApiVolumeDown )
- {
- keyEvent.iScanCode = EStdKeyDecVolume;
- TRAP_IGNORE( HandleKeyEventL( keyEvent, EEventKey ) );
- }
- }
- }
-
+void CImageEditorAppUi::HandleVolumeKeyEvent(
+ TRemConCoreApiOperationId aOperationId, TRemConCoreApiButtonAction /* aButtonAct */)
+ {
+ if (((CImageEditorUIView *) iEditorView)->GetContainer())
+ {
+ if (!((CImageEditorUIView *) iEditorView)->GetContainer()->IsFocused())
+ {
+ return;
+ }
+ }
+
+ if (iForeground)
+ {
+ TKeyEvent keyEvent;
+ if (aOperationId == ERemConCoreApiVolumeUp)
+ {
+ keyEvent.iScanCode = EStdKeyIncVolume;
+ TRAP_IGNORE( HandleKeyEventL( keyEvent, EEventKey ) );
+ }
+ else if (aOperationId == ERemConCoreApiVolumeDown)
+ {
+ keyEvent.iScanCode = EStdKeyDecVolume;
+ TRAP_IGNORE( HandleKeyEventL( keyEvent, EEventKey ) );
+ }
+ }
+ }
+
+void CImageEditorAppUi::InitialHorizontalDrawPlugin()
+ {
+ // // Get pointer to the view
+ CImageEditorUIView * view = (CImageEditorUIView *) iEditorView;
+
+ TRect rect;
+ iResolutionUtil->GetClientRect(rect);
+ SetFullScreenL();
+ // Create a plug-in control
+ // Ownership is moved to the plug-in
+ CCoeControl * control = NULL;
+ TInt err = iEditorManager->CreatePluginControlL(rect, view->GetContainer(),
+ control);
+
+ LOG(KImageEditorLogFile, "CImageEditorAppUi: Plugin control created");
+
+ // The plug-in activation was cancelled
+ if (err != KErrNone)
+ {
+ // Cancel plug-in
+ iCancelling = ETrue;
+ iCallback->DoCallback(KObCancelCallbackID);
+ }
+
+ // Activate plug-in
+ else
+ {
+ // Register control to UI
+ view->ActivatePluginL(control);
+
+ LOG(KImageEditorLogFile, "CImageEditorAppUi: Plugin activated");
+
+ // If the filter did not have a control, close plug-in
+ if (!control)
+ {
+ iEditorManager->ClosePlugin();
+
+ }
+
+ // Set the last opened image to editor view
+ ((CImageEditorUIView *) iEditorView)->SetImageL(iEditorManager->GetPreviewImage());
+
+ ResetBusy();
+ }
+ }
// End of File