utilityapps/filebrowser/ui/inc/enginewrapper.h
author hgs
Mon, 18 Oct 2010 16:32:38 +0300
changeset 56 392f7045e621
parent 55 2d9cac8919d3
permissions -rw-r--r--
201041_01
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
55
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description:
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
#ifndef ENGINEWRAPPER_H
hgs
parents:
diff changeset
    19
#define ENGINEWRAPPER_H
hgs
parents:
diff changeset
    20
hgs
parents:
diff changeset
    21
#include "fbdriveentry.h"
hgs
parents:
diff changeset
    22
#include "fbfileentry.h"
hgs
parents:
diff changeset
    23
#include "filebrowsersettings.h"
hgs
parents:
diff changeset
    24
hgs
parents:
diff changeset
    25
#include "engine.h"
hgs
parents:
diff changeset
    26
#include "FBFileUtils.h"
hgs
parents:
diff changeset
    27
#include "FB.hrh"
hgs
parents:
diff changeset
    28
hgs
parents:
diff changeset
    29
#include <QString>
hgs
parents:
diff changeset
    30
#include <QStringList>
hgs
parents:
diff changeset
    31
#include <QModelIndexList>
hgs
parents:
diff changeset
    32
hgs
parents:
diff changeset
    33
class CEngine;
hgs
parents:
diff changeset
    34
class SearchAttributes;
hgs
parents:
diff changeset
    35
class SearchResults;
hgs
parents:
diff changeset
    36
class FileBrowserView;
hgs
parents:
diff changeset
    37
class HbProgressDialog;
hgs
parents:
diff changeset
    38
hgs
parents:
diff changeset
    39
class QModelIndex;
hgs
parents:
diff changeset
    40
hgs
parents:
diff changeset
    41
class OverwriteOptions
hgs
parents:
diff changeset
    42
{
hgs
parents:
diff changeset
    43
public:
hgs
parents:
diff changeset
    44
    OverwriteOptions() :
hgs
parents:
diff changeset
    45
            doFileOperations(true),
hgs
parents:
diff changeset
    46
            queryIndex(0),
hgs
parents:
diff changeset
    47
            overWriteFlags(CFileMan::EOverWrite)
hgs
parents:
diff changeset
    48
    {}
hgs
parents:
diff changeset
    49
hgs
parents:
diff changeset
    50
    bool doFileOperations;
hgs
parents:
diff changeset
    51
    int queryIndex;
hgs
parents:
diff changeset
    52
    QString postFix;
hgs
parents:
diff changeset
    53
    int overWriteFlags;
hgs
parents:
diff changeset
    54
};
hgs
parents:
diff changeset
    55
hgs
parents:
diff changeset
    56
/**
hgs
parents:
diff changeset
    57
 * class that is used for communicating between Symbian and Qt code.
hgs
parents:
diff changeset
    58
 */
hgs
parents:
diff changeset
    59
class EngineWrapper : public QObject, public MFileBrowserUI
hgs
parents:
diff changeset
    60
{
hgs
parents:
diff changeset
    61
    Q_OBJECT
hgs
parents:
diff changeset
    62
public:
hgs
parents:
diff changeset
    63
    /**
hgs
parents:
diff changeset
    64
     * Constructor
hgs
parents:
diff changeset
    65
     */
hgs
parents:
diff changeset
    66
    EngineWrapper();
hgs
parents:
diff changeset
    67
    
hgs
parents:
diff changeset
    68
    /**
hgs
parents:
diff changeset
    69
     * Destructor
hgs
parents:
diff changeset
    70
     */
hgs
parents:
diff changeset
    71
    ~EngineWrapper();
hgs
parents:
diff changeset
    72
    
hgs
parents:
diff changeset
    73
    /**
hgs
parents:
diff changeset
    74
     * Initializes Engine Wrapper
hgs
parents:
diff changeset
    75
     * @return true if engine was started successfully
hgs
parents:
diff changeset
    76
     */
hgs
parents:
diff changeset
    77
    bool init();
hgs
parents:
diff changeset
    78
hgs
parents:
diff changeset
    79
public: // from MFileBrowserUI
hgs
parents:
diff changeset
    80
    /* Functions that are called from engine: */
hgs
parents:
diff changeset
    81
    void ShowInformationNote(const TDesC &aDescText, const TDesC &aDescTitle);
hgs
parents:
diff changeset
    82
    void ShowErrorNote(const TDesC& aDescText, TBool aNoTimeout = EFalse);
hgs
parents:
diff changeset
    83
    void ShowConfirmationNote(const TDesC& aDescText, TBool aNoTimeout = EFalse);
hgs
parents:
diff changeset
    84
hgs
parents:
diff changeset
    85
    void ShowProgressDialog(const TDesC& aDescText, TInt aMinimum, TInt aMaximum);
hgs
parents:
diff changeset
    86
    void CancelProgressDialog();
hgs
parents:
diff changeset
    87
    void SetProgressValue(TInt aValue);
hgs
parents:
diff changeset
    88
hgs
parents:
diff changeset
    89
    void ShowWaitDialog(const TDesC& aText);
hgs
parents:
diff changeset
    90
    void CancelWaitDialog();
hgs
parents:
diff changeset
    91
    void ProcessEvents();
hgs
parents:
diff changeset
    92
hgs
parents:
diff changeset
    93
    TBool ShowConfirmationQuery(const TDesC& aDescText);
hgs
parents:
diff changeset
    94
    void NotifyModelHasChanged();
hgs
parents:
diff changeset
    95
hgs
parents:
diff changeset
    96
public: 
hgs
parents:
diff changeset
    97
    /* Functions that are called from UI */
hgs
parents:
diff changeset
    98
    bool searchFiles();
hgs
parents:
diff changeset
    99
    SearchAttributes getFileSearchAttributes();
hgs
parents:
diff changeset
   100
    int setFileSearchAttributes(SearchAttributes attributes);
hgs
parents:
diff changeset
   101
    SearchResults getSearchResults();
hgs
parents:
diff changeset
   102
hgs
parents:
diff changeset
   103
    FileBrowserSettings &settings() { return mSettings; }
hgs
parents:
diff changeset
   104
    const FileBrowserSettings &settings() const { return mSettings; }
hgs
parents:
diff changeset
   105
hgs
parents:
diff changeset
   106
    void saveSettings(bool aNotifyModules = true);
hgs
parents:
diff changeset
   107
hgs
parents:
diff changeset
   108
    void startExecutingCommands(const QString &aCommandsExecutionMessage);
hgs
parents:
diff changeset
   109
    void refreshView();
hgs
parents:
diff changeset
   110
    inline TListingMode listingMode() { return mEngine->FileUtils()->ListingMode(); }
hgs
parents:
diff changeset
   111
//    TBool IsCurrentDriveReadOnly();
hgs
parents:
diff changeset
   112
//    TBool IsCurrentItemDirectory();
hgs
parents:
diff changeset
   113
    void moveUpOneLevel();
hgs
parents:
diff changeset
   114
    void moveDownToDirectory(const QModelIndex& index);
hgs
parents:
diff changeset
   115
    int clipboardCut(const QModelIndexList &aSelectionIndices);
hgs
parents:
diff changeset
   116
    int clipboardCopy(const QModelIndexList &aSelectionIndices);
hgs
parents:
diff changeset
   117
    void clipboardPaste(const OverwriteOptions &aOverwriteOptions);
hgs
parents:
diff changeset
   118
    void copyToFolder(const QString &aTargetDir, const OverwriteOptions &aOverwriteOptions, bool aMove);
hgs
parents:
diff changeset
   119
    void createNewFile(const QString &aNewFileName);
hgs
parents:
diff changeset
   120
    void createNewDirectory(const QString &aNewDirectoryName);
hgs
parents:
diff changeset
   121
    void deleteItems(const QModelIndexList& aSelectionIndices);
hgs
parents:
diff changeset
   122
    bool selectionHasDirs();
hgs
parents:
diff changeset
   123
    void rename(const QModelIndex& aIndex, const QString aNewName);
hgs
parents:
diff changeset
   124
    void touch(bool aRecurse);
hgs
parents:
diff changeset
   125
    int getFilesCount(const QString &aDriveRoot);
hgs
parents:
diff changeset
   126
    int getFilesCountAndSize(const QString &aDriveRoot, qint64 &aSize);
hgs
parents:
diff changeset
   127
    int getEntriesCount(const QString &aDriveRoot);
hgs
parents:
diff changeset
   128
    QString getMimeType(const QString &aFullPath);
hgs
parents:
diff changeset
   129
    QString getOpenWith(const QString &aFullPath);
hgs
parents:
diff changeset
   130
    void setAttributes(quint32 &, quint32 &, bool &);
hgs
parents:
diff changeset
   131
hgs
parents:
diff changeset
   132
    bool openAppArc(QString fileName);
hgs
parents:
diff changeset
   133
    bool openDocHandler(QString fileName, bool embeddedVal = false);
hgs
parents:
diff changeset
   134
hgs
parents:
diff changeset
   135
    bool isDriveListViewActive();
hgs
parents:
diff changeset
   136
    bool isCurrentDriveReadOnly();
hgs
parents:
diff changeset
   137
    bool isClipBoardListInUse();
hgs
parents:
diff changeset
   138
    int itemCount() const;
hgs
parents:
diff changeset
   139
    FbDriveEntry getDriveEntry(const QModelIndex& aIndex) const;
hgs
parents:
diff changeset
   140
    FbFileEntry getFileEntry(const QModelIndex& aIndex) const;
hgs
parents:
diff changeset
   141
	
hgs
parents:
diff changeset
   142
    const CArrayFix<TInt> *convertSelectionList(const QModelIndexList &aSelectionIndices);
hgs
parents:
diff changeset
   143
    void setCurrentSelection(const QModelIndexList &aSelectionIndices);
hgs
parents:
diff changeset
   144
    bool isDestinationEntriesExists(const QModelIndexList &aSelectionIndices, QString aTargetDir);
hgs
parents:
diff changeset
   145
    bool targetExists(const QModelIndex& aIndex, const QString aNewName);
hgs
parents:
diff changeset
   146
    QString currentPath() const;
hgs
parents:
diff changeset
   147
    TOverwriteOptions convertOverwriteOptions(const OverwriteOptions &aOverwriteOptions);
hgs
parents:
diff changeset
   148
    bool hasDrivePassword(const QModelIndex &aIndex);
hgs
parents:
diff changeset
   149
    bool isDriveRemovable(const QModelIndex &aIndex);
hgs
parents:
diff changeset
   150
    bool isDriveLocked(const QModelIndex &aIndex);
hgs
parents:
diff changeset
   151
    void GetDriveName(const QModelIndex &aIndex, QString &aDriveName);
hgs
parents:
diff changeset
   152
    void GetDriveVolumeLabel(const QModelIndex &aIndex, QString &aDriveName);
hgs
parents:
diff changeset
   153
hgs
parents:
diff changeset
   154
    void DiskAdminSetDrivePassword(const QModelIndex &aIndex, const QString &aOldPassword, const QString &aNewPassword);
hgs
parents:
diff changeset
   155
    void DiskAdminUnlockDrive(const QModelIndex &aIndex, const QString &aOldPassword);
hgs
parents:
diff changeset
   156
    void DiskAdminClearDrivePassword(const QModelIndex &aIndex, const QString &aOldPassword);
hgs
parents:
diff changeset
   157
    void DiskAdminEraseDrivePassword(const QModelIndex &aIndex);
hgs
parents:
diff changeset
   158
    void DiskAdminFormatDrive(const QModelIndex &aIndex, bool aQuickFormat);
hgs
parents:
diff changeset
   159
    void DiskAdminQuickFormatDrive(const QModelIndex &aIndex, bool aQuickFormat);
hgs
parents:
diff changeset
   160
    void DiskAdminCheckDisk(const QModelIndex &aIndex);
hgs
parents:
diff changeset
   161
    void DiskAdminScanDrive(const QModelIndex &aIndex);
hgs
parents:
diff changeset
   162
    void DiskAdminSetDriveName(const QModelIndex &aIndex, const QString &aDriveName);
hgs
parents:
diff changeset
   163
    void DiskAdminSetDriveVolumeLabel(const QModelIndex &aIndex, const QString &aVolumeLabel);
hgs
parents:
diff changeset
   164
    void DiskAdminEjectDrive(const QModelIndex &aIndex);
hgs
parents:
diff changeset
   165
    void DiskAdminDismountDrive(const QModelIndex &aIndex);
hgs
parents:
diff changeset
   166
    void DiskAdminEraseMBR(const QModelIndex &aIndex);
hgs
parents:
diff changeset
   167
    void DiskAdminPartitionDrive(const QModelIndex &aIndex, bool aEraseMBR, int aAmountOfPartitions);
hgs
parents:
diff changeset
   168
hgs
parents:
diff changeset
   169
    void ToolsSetErrRd(bool aEnable);
hgs
parents:
diff changeset
   170
    bool ErrRdFileExists();
hgs
parents:
diff changeset
   171
hgs
parents:
diff changeset
   172
    void ToolsErrorSimulateLeave(int aLeaveCode);
hgs
parents:
diff changeset
   173
    void ToolsErrorSimulatePanic(QString aPanicCategory, int aPanicCode);
hgs
parents:
diff changeset
   174
    void ToolsErrorSimulateException(int aExceptionCode);
hgs
parents:
diff changeset
   175
hgs
parents:
diff changeset
   176
    quint32 getDebugMask();
hgs
parents:
diff changeset
   177
    void toolsSetDebugMask(quint32 aDbgMask);
hgs
parents:
diff changeset
   178
hgs
parents:
diff changeset
   179
    void toolsWriteAllFiles();
hgs
parents:
diff changeset
   180
hgs
parents:
diff changeset
   181
    void showFileCheckSums(const QModelIndex &aIndex, TFileBrowserCmdFileChecksums checksumType);
hgs
parents:
diff changeset
   182
hgs
parents:
diff changeset
   183
    TClipBoardMode getClipBoardMode() { return mEngine->FileUtils()->GetClipBoardMode(); }
hgs
parents:
diff changeset
   184
hgs
parents:
diff changeset
   185
signals:
hgs
parents:
diff changeset
   186
    void fileSystemDataChanged();
hgs
parents:
diff changeset
   187
hgs
parents:
diff changeset
   188
private slots:
hgs
parents:
diff changeset
   189
        void progressDialogCancelled();
hgs
parents:
diff changeset
   190
        void waitDialogCancelled();
hgs
parents:
diff changeset
   191
hgs
parents:
diff changeset
   192
private:
hgs
parents:
diff changeset
   193
    // FB engine
hgs
parents:
diff changeset
   194
    CEngine *mEngine;
hgs
parents:
diff changeset
   195
    // List of found files results for Ui
hgs
parents:
diff changeset
   196
    QStringList mFilesFound;
hgs
parents:
diff changeset
   197
    FileBrowserSettings mSettings;
hgs
parents:
diff changeset
   198
    HbProgressDialog *mProgressDialog;
hgs
parents:
diff changeset
   199
    HbProgressDialog *mWaitDialog;
hgs
parents:
diff changeset
   200
    };
hgs
parents:
diff changeset
   201
hgs
parents:
diff changeset
   202
#endif //ENGINEWRAPPER_H