filebrowser/inc/FBModel.h
branchRCL_3
changeset 22 fad26422216a
parent 0 d6fe6244b863
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/filebrowser/inc/FBModel.h	Wed Sep 01 12:30:35 2010 +0100
@@ -0,0 +1,118 @@
+/*
+* Copyright (c) 2009 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 __FILEBROWSER_MODEL_H__
+#define __FILEBROWSER_MODEL_H__
+
+// INCLUDES
+#include <e32std.h>
+#include <e32base.h>
+#include <apgcli.h>
+#include <CAknMemorySelectionSettingPage.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 CAknGlobalConfirmationQuery;
+class CDictionaryFileStore;
+
+// 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;
+    };
+
+
+class CFileBrowserModel : public CBase
+	{
+public:
+	static CFileBrowserModel* NewL();
+	~CFileBrowserModel();
+
+private:
+	CFileBrowserModel();
+	void ConstructL();
+    void LoadSettingsL();
+    void GetHashKeySelectionStatus();
+    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 ActivateModelL();
+    void DeActivateModelL();
+    void SaveSettingsL(TBool aNotifyModules=ETrue);
+    void SetFileListContainer(CFileBrowserFileListContainer* aFileListContainer);
+    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 CFileBrowserFileListContainer* FileListContainer() { return iFileListContainer; }
+    inline TBool IsHashKeySelectionInUse() { return iIsHashKeySelectionInUse; }
+
+private:
+    CFileBrowserFileListContainer*  iFileListContainer;
+    CFileBrowserScreenCapture*      iScreenCapture;
+    CFileBrowserFileUtils*          iFileUtils;
+    CEikonEnv*                      iEnv;
+    TFileBrowserSettings            iSettings;
+    RApaLsSession                   iLs;
+    TBool                           iIsHashKeySelectionInUse; 
+    };
+   
+
+#endif // __FILEBROWSER_MODEL_H__
\ No newline at end of file