--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filebrowser/engine/engine.h Tue Aug 31 15:15:20 2010 +0300
@@ -0,0 +1,217 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "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:
+*
+* Description:
+*
+*/
+
+#ifndef __ENGINE_H__
+#define __ENGINE_H__
+
+// INCLUDES
+#include <e32std.h>
+#include <e32base.h>
+#include <apgcli.h>
+
+#include "FBFileUtils.h"
+
+// setting keys (do not change uids of existing keys to maintain compatibility to older versions!)
+const TUid KFBSettingDisplayMode = { 0x00 };
+const TUid KFBSettingFileViewMode = { 0x01 };
+const TUid KFBSettingShowSubDirectoryInfo = { 0x02 };
+const TUid KFBSettingShowAssociatedIcons = { 0x03 };
+const TUid KFBSettingRememberLastPath = { 0x04 };
+const TUid KFBSettingLastPath = { 0x05 };
+
+const TUid KFBSettingSupportNetworkDrives = { 0x06 };
+const TUid KFBSettingBypassPlatformSecurity = { 0x07 };
+const TUid KFBSettingRemoveFileLocks = { 0x08 };
+const TUid KFBSettingIgnoreProtectionsAtts = { 0x09 };
+const TUid KFBSettingRemoveROMWriteProtection = { 0x0A };
+
+const TUid KFBSettingFolderSelection = { 0x0B };
+const TUid KFBSettingEnableToolbar = { 0x0C };
+
+
+// FORWARD DECLARATIONS
+class CFileBrowserFileListContainer;
+class CFileBrowserScreenCapture;
+class CFileBrowserFileUtils;
+class CEikonEnv;
+class CDictionaryFileStore;
+class MFileBrowserUI;
+
+// CLASS DECLARATIONS
+
+class TFileBrowserSettings
+ {
+public:
+ TInt iDisplayMode;
+ TInt iFileViewMode;
+ TBool iShowSubDirectoryInfo;
+ TBool iShowAssociatedIcons;
+ TBool iRememberLastPath;
+ TFileName iLastPath;
+ TBool iRememberFolderSelection;
+ TBool iEnableToolbar;
+
+ TBool iSupportNetworkDrives;
+ TBool iBypassPlatformSecurity;
+ TBool iRemoveFileLocks;
+ TBool iIgnoreProtectionsAtts;
+ TBool iRemoveROMWriteProrection;
+ };
+
+// INFERFACE FOR COMMUNICATION WITH UI
+
+class MFileBrowserUI
+{
+public:
+// /**
+// * Method from getting current index
+// * @return current index.
+// */
+// virtual TInt QueryCurrentItemIndex() = 0;
+
+ /**
+ * Shows info message with text
+ * @param A aText text to be shown in message body.
+ * @param A aTitle text to be shown in message title.
+ * @return None.
+ */
+ virtual void ShowInformationNote(const TDesC &aDescText, const TDesC &aDescTitle) = 0;
+
+ /**
+ * Shows error message with error text
+ * @param aText An error text to be shown in message.
+ * @return None.
+ */
+ virtual void ShowErrorNote(const TDesC& aText, TBool aNoTimeout = EFalse) = 0;
+
+ /**
+ * Shows confirmation message with text
+ * @param aText An text to be shown in message.
+ * @return None.
+ */
+ virtual void ShowConfirmationNote(const TDesC& aText, TBool aNoTimeout = EFalse) = 0;
+
+ /**
+ * Shows progress bar with text
+ * @param aText A text to be shown at top of the progress bar.
+ * @param aMinimum A minimum progress bar value.
+ * @param aMaximum A maximum progress bar value.
+ * @return None.
+ */
+ virtual void ShowProgressDialog(const TDesC& aDescText, TInt aMinimum, TInt aMaximum ) = 0;
+
+ /**
+ * Cancel progress dialog
+ * @return None.
+ */
+ virtual void CancelProgressDialog() = 0;
+
+ /**
+ * Set progress dialog value
+ * @param aValue A vaule to be shown at top of the progress dialog.
+ */
+ virtual void SetProgressValue(TInt aValue) = 0;
+//
+// /**
+// * Sets progress bar value
+// * @param aValue A value between min and max value of the progress bar range
+// * @return None.
+// */
+// virtual void SetProgressBarValue(TInt aValue) = 0;
+//
+// /**
+// * Hides progress bar
+// * @return None.
+// */
+// virtual void HideProgressBar() = 0;
+//
+ /**
+ * Shows wait dialog with text
+ * @param aText A text to be shown at top of the wait bar.
+ * @return None.
+ */
+ virtual void ShowWaitDialog(const TDesC& aText) = 0;
+
+ /**
+ * Cancel wait dialog
+ * @return None.
+ */
+ virtual void CancelWaitDialog() = 0;
+
+ /**
+ * Processes all pending events to allow wait/progresa dialog to update itself
+ * @return None.
+ */
+ virtual void ProcessEvents() = 0;
+
+ /**
+ * Shows confirmation dialog
+ * @param aFileName String contaning file name and path
+ * @return ETrue if user pressed OK button, otherwise EFalse.
+ */
+ virtual TBool ShowConfirmationQuery(const TDesC& aDescText) = 0;
+
+};
+
+class CEngine : public CBase
+ {
+public:
+ static CEngine* NewL(MFileBrowserUI *aFileBrowserUI);
+ ~CEngine();
+
+private:
+ CEngine();
+ void ConstructL(MFileBrowserUI *aFileBrowserUI);
+ void LoadSettingsL();
+ void LoadDFSValueL(CDictionaryFileStore* aDicFS, const TUid& aUid, TInt& aValue);
+ void LoadDFSValueL(CDictionaryFileStore* aDicFS, const TUid& aUid, TDes& aValue);
+ void SaveDFSValueL(CDictionaryFileStore* aDicFS, const TUid& aUid, const TInt& aValue);
+ void SaveDFSValueL(CDictionaryFileStore* aDicFS, const TUid& aUid, const TDes& aValue);
+
+public:
+ void ActivateEngineL();
+ void DeActivateEngineL();
+ void SaveSettingsL(TBool aNotifyModules=ETrue);
+ TInt LaunchSettingsDialogL();
+ inline TFileBrowserSettings& Settings() { return iSettings; }
+ inline CEikonEnv* EikonEnv() { return iEnv; }
+ inline RApaLsSession& LsSession() { return iLs; }
+ inline CFileBrowserScreenCapture* ScreenCapture() { return iScreenCapture; }
+ inline CFileBrowserFileUtils* FileUtils() { return iFileUtils; }
+ inline MFileBrowserUI* FileBrowserUI() { return iFileBrowserUI; }
+
+ void OpenWithApparcL(TFileName aFileName);
+ void OpenWithDocHandlerL(TFileName aFileName, TBool aEmbed);
+// TInt QueryCurrentItemIndex();
+ TSearchAttributes GetSearchAttributes();
+ void ChangeAttributes(TSearchAttributes attributes);
+ TSearchResults SearchResults();
+ CFileEntryList* FoundFiles();
+ void SearchL();
+
+private:
+ MFileBrowserUI *iFileBrowserUI;
+ CFileBrowserScreenCapture *iScreenCapture;
+ CFileBrowserFileUtils *iFileUtils;
+ CEikonEnv* iEnv;
+ TFileBrowserSettings iSettings;
+ RApaLsSession iLs;
+ TBool iIsHashKeySelectionInUse;
+ };
+
+
+#endif // __ENGINE_H__