--- a/filebrowser/ui/src/fbfileview.cpp Tue Aug 31 15:15:20 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1535 +0,0 @@
-/*
-* 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:
-*
-*/
-
-#include "fbfileview.h"
-#include "settingsview.h"
-#include "editorview.h"
-#include "searchview.h"
-#include "enginewrapper.h"
-#include "notifications.h"
-
-#include "fbfilemodel.h"
-#include "filebrowsersortfilterproxymodel.h"
-//#include "fbfilelistviewitem.h"
-
-#include <HbMenu>
-#include <HbPopup>
-#include <HbView>
-#include <HbMessageBox>
-#include <HbAction>
-#include <HbLabel>
-#include <HbListView>
-#include <HbListViewItem>
-#include <HbListWidget>
-#include <HbLineEdit>
-#include <HbAbstractViewItem>
-#include <HbSelectionDialog>
-#include <HbValidator>
-#include <HbInputDialog>
-#include <HbToolBar>
-#include <HbToolBarExtension>
-#include <HbSearchPanel>
-
-#include <QString>
-#include <QGraphicsLinearLayout>
-#include <QItemSelection>
-#include <QDebug>
-//TODO check if needed to do this way
-#include <FB.hrh>
-
-// ---------------------------------------------------------------------------
-
-FbFileView::FbFileView() :
- mEngineWrapper(0),
- mListView(0),
- mToolBar(0),
- mNaviPane(0),
- mSearchPanel(0),
- mMainLayout(0),
- mFbFileModel(0),
- mSortFilterProxyModel(0),
- mOptionMenuActions(),
- mContextMenuActions(),
- mContextMenu(0),
- mToolbarBackAction(0),
- mItemHighlighted(false),
- mLocationChanged(false),
- mRemoveFileAfterCopied(false),
-// mClipBoardInUse(false),
- mFolderContentChanged(false),
- mCurrentIndex(),
- mOldPassword(),
- mPanicCategory(),
- mAbsoluteFilePath(),
- mOverwriteOptions(),
- mModelIndex(),
- mNewFileName(),
- mProceed(false),
- mEraseMBR(false)
-{
- setTitle("File Browser");
-
- createMenu();
- createContextMenu();
- createToolBar();
-}
-
-// ---------------------------------------------------------------------------
-
-void FbFileView::init(EngineWrapper *engineWrapper)
-{
- mEngineWrapper = engineWrapper;
-
- mListView = new HbListView(this);
- mListView->listItemPrototype()->setStretchingStyle(HbListViewItem::StretchLandscape);
-
-// mListView->setItemPrototype(new FbDiskListViewItem(mListView));
-
- mFbFileModel = new FbFileModel(mEngineWrapper);
- if (!mListView->model()) {
-
- mEngineWrapper->refreshView();
-
- mSortFilterProxyModel = new FileBrowserSortFilterProxyModel(this);
- mSortFilterProxyModel->setSourceModel(mFbFileModel);
- mSortFilterProxyModel->setFilterCaseSensitivity(Qt::CaseInsensitive);
- mSearchPanel->setPlaceholderText(QString("Type filter criteria"));
-
- mListView->setModel(mSortFilterProxyModel);
- }
-
- //mListView->setRootIndex(mFileSystemModel->index(startPath));
- //mListView->setRootIndex(model->index());
-
- //setItemVisible(Hb::ToolBarItem, !mEngineWrapper->isDriveListViewActive());
-// mListView->setScrollingStyle(HbScrollArea::PanWithFollowOn);
-
- connect(mListView, SIGNAL(activated(QModelIndex)), this, SLOT(activated(QModelIndex)));
- connect(mListView, SIGNAL(longPressed(HbAbstractViewItem*,QPointF)),
- this, SLOT(onLongPressed(HbAbstractViewItem*, QPointF)));
-
- mNaviPane = new HbLabel(this);
- mNaviPane->setPlainText(QString(" ")); // TODO get from settings or default
- //mNaviPane->setPlainText(QString(mEngineWrapper->currentPath()));
- HbFontSpec fontSpec(HbFontSpec::PrimarySmall);
- mNaviPane->setFontSpec(fontSpec);
-
- // Create layout and add list view and toolbar into layout:
- mMainLayout = new QGraphicsLinearLayout(Qt::Vertical);
- mMainLayout->addItem(mNaviPane);
- mMainLayout->addItem(mListView);
- setLayout(mMainLayout);
-}
-
-// ---------------------------------------------------------------------------
-
-FbFileView::~FbFileView()
-{
-// if (mEngineWrapper) {
-// delete mEngineWrapper;
-// }
- if (mContextMenu) {
- mContextMenu->deleteLater();
- }
-
- delete mSortFilterProxyModel;
- delete mFbFileModel;
- delete mListView;
- delete mToolBar;
-}
-
-/**
- Initial setup for options menu.
- Dynamic menu update during the runtime is performed by updateOptionMenu() which
- to menu's aboutToShow() signal.
- */
-void FbFileView::createMenu()
-{
- createFileMenu();
- createEditMenu();
- createViewMenu();
- createToolsMenu();
-
- createSelectionMenuItem();
- createSettingsMenuItem();
- createAboutMenuItem();
- createExitMenuItem();
-
- // menu dynamic update
- connect(menu(), SIGNAL(aboutToShow()), this, SLOT(updateOptionMenu()));
-}
-
-/**
- Initial setup for File submenu
- */
-void FbFileView::createFileMenu()
-{
- mOptionMenuActions.mFileMenu = menu()->addMenu("File");
-
- mOptionMenuActions.mFileBackMoveUp = mOptionMenuActions.mFileMenu->addAction("Back/Move up", this, SLOT(fileBackMoveUp()));
- mOptionMenuActions.mFileSearch = mOptionMenuActions.mFileMenu->addAction("Search...", this, SLOT(fileSearch()));
- //mOptionMenuActions.mFileSearch->setVisible(false);
-
- mOptionMenuActions.mFileNewMenu = mOptionMenuActions.mFileMenu->addMenu("New");
- mOptionMenuActions.mFileNewFile = mOptionMenuActions.mFileNewMenu->addAction("File", this, SLOT(fileNewFile()));
- mOptionMenuActions.mFileNewDirectory = mOptionMenuActions.mFileNewMenu->addAction("Directory", this, SLOT(fileNewDirectory()));
-
- mOptionMenuActions.mFileDelete = mOptionMenuActions.mFileMenu->addAction("Delete", this, SLOT(fileDelete()));
- mOptionMenuActions.mFileRename = mOptionMenuActions.mFileMenu->addAction("Rename", this, SLOT(fileRename()));
- mOptionMenuActions.mFileTouch = mOptionMenuActions.mFileMenu->addAction("Touch", this, SLOT(fileTouch()));
-
-// mOptionMenuActions.mFileChecksumsMenu = mOptionMenuActions.mFileMenu->addMenu("Checksums");
-// mOptionMenuActions.mFileChecksumsMD5 = mOptionMenuActions.mFileChecksumsMenu->addAction("MD5", this, SLOT(fileChecksumsMD5()));
-// mOptionMenuActions.mFileChecksumsMD2 = mOptionMenuActions.mFileChecksumsMenu->addAction("MD2", this, SLOT(fileChecksumsMD2()));
-// mOptionMenuActions.mFileChecksumsSHA1 = mOptionMenuActions.mFileChecksumsMenu->addAction("SHA-1", this, SLOT(fileChecksumsSHA1()));
-
- mOptionMenuActions.mFileSetAttributes = mOptionMenuActions.mFileMenu->addAction("Set attributes...", this, SLOT(fileSetAttributes()));
- mOptionMenuActions.mFileSetAttributes->setVisible(false);
-}
-
-/**
- Initial setup for Edit submenu
- */
-void FbFileView::createEditMenu()
-{
- mOptionMenuActions.mEditMenu = menu()->addMenu("Edit");
-
- mOptionMenuActions.mEditSnapShotToE = mOptionMenuActions.mEditMenu->addAction("Snap shot to E:", this, SLOT(editSnapShotToE()));
- mOptionMenuActions.mEditSnapShotToE->setVisible(false);
- mOptionMenuActions.mEditCut = mOptionMenuActions.mEditMenu->addAction("Cut", this, SLOT(editCut()));
- mOptionMenuActions.mEditCopy = mOptionMenuActions.mEditMenu->addAction("Copy", this, SLOT(editCopy()));
- mOptionMenuActions.mEditPaste = mOptionMenuActions.mEditMenu->addAction("Paste", this, SLOT(editPaste()));
-
- mOptionMenuActions.mEditCopyToFolder = mOptionMenuActions.mEditMenu->addAction("Copy to folder...", this, SLOT(editCopyToFolder()));
- mOptionMenuActions.mEditMoveToFolder = mOptionMenuActions.mEditMenu->addAction("Move to folder...", this, SLOT(editMoveToFolder()));
-
- mOptionMenuActions.mEditSelect = mOptionMenuActions.mEditMenu->addAction("Select", this, SLOT(editSelect()));
- mOptionMenuActions.mEditUnselect = mOptionMenuActions.mEditMenu->addAction("Unselect", this, SLOT(editUnselect()));
- mOptionMenuActions.mEditSelectAll = mOptionMenuActions.mEditMenu->addAction("Select all", this, SLOT(editSelectAll()));
- mOptionMenuActions.mEditUnselectAll = mOptionMenuActions.mEditMenu->addAction("Unselect all", this, SLOT(editUnselectAll()));
-}
-
-/**
- Initial setup for View submenu
- */
-void FbFileView::createViewMenu()
-{
- mOptionMenuActions.mViewMenu = menu()->addMenu("View");
- //mOptionMenuActions.mViewMenu->menuAction()->setVisible(false);
-
- mOptionMenuActions.mViewFilterEntries = mOptionMenuActions.mViewMenu->addAction("Filter entries", this, SLOT(viewFilterEntries()));
- mOptionMenuActions.mViewRefresh = mOptionMenuActions.mViewMenu->addAction("Refresh", this, SLOT(viewRefresh()));
-}
-
-/**
- Initial setup for Tools submenu
- */
-void FbFileView::createToolsMenu()
-{
- mOptionMenuActions.mToolsMenu = menu()->addMenu("Tools");
-
- mOptionMenuActions.mToolsAllAppsToTextFile = mOptionMenuActions.mToolsMenu->addAction("All apps to a text file", this, SLOT(toolsAllAppsToTextFile()));
- mOptionMenuActions.mToolsAllAppsToTextFile->setVisible(false);
- mOptionMenuActions.mToolsAllFilesToTextFile = mOptionMenuActions.mToolsMenu->addAction("All files to a text file", this, SLOT(toolsAllFilesToTextFile()));
- //mOptionMenuActions.mToolsAllFilesToTextFile->setVisible(false);
-
-// mOptionMenuActions.mToolsAvkonIconCacheMenu = mOptionMenuActions.mToolsMenu->addMenu("Avkon icon cache");
-// mOptionMenuActions.mToolsAvkonIconCacheMenu->menuAction()->setVisible(false);
-// mOptionMenuActions.mToolsAvkonIconCacheEnable = mOptionMenuActions.mToolsAvkonIconCacheMenu->addAction("Enable", this, SLOT(toolsAvkonIconCacheEnable()));
-// mOptionMenuActions.mToolsAvkonIconCacheDisable = mOptionMenuActions.mToolsAvkonIconCacheMenu->addAction("Clear and disable", this, SLOT(toolsAvkonIconCacheDisable()));
-
- mOptionMenuActions.mToolsDisableExtendedErrors = mOptionMenuActions.mToolsMenu->addAction("Disable extended errors", this, SLOT(toolsDisableExtendedErrors()));
- mOptionMenuActions.mToolsDumpMsgStoreWalk = mOptionMenuActions.mToolsMenu->addAction("Dump msg. store walk", this, SLOT(toolsDumpMsgStoreWalk()));
- mOptionMenuActions.mToolsDumpMsgStoreWalk->setVisible(false);
- mOptionMenuActions.mToolsEditDataTypes = mOptionMenuActions.mToolsMenu->addAction("Edit data types", this, SLOT(toolsEditDataTypes()));
- mOptionMenuActions.mToolsEditDataTypes->setVisible(false);
- mOptionMenuActions.mToolsEnableExtendedErrors = mOptionMenuActions.mToolsMenu->addAction("Enable extended errors", this, SLOT(toolsEnableExtendedErrors()));
-
- mOptionMenuActions.mToolsErrorSimulateMenu = mOptionMenuActions.mToolsMenu->addMenu("Error simulate");
- mOptionMenuActions.mToolsErrorSimulateLeave = mOptionMenuActions.mToolsErrorSimulateMenu->addAction("Leave", this, SLOT(toolsErrorSimulateLeave()));
- mOptionMenuActions.mToolsErrorSimulatePanic = mOptionMenuActions.mToolsErrorSimulateMenu->addAction("Panic", this, SLOT(toolsErrorSimulatePanic()));
- mOptionMenuActions.mToolsErrorSimulatePanic->setVisible(false);
- mOptionMenuActions.mToolsErrorSimulateException = mOptionMenuActions.mToolsErrorSimulateMenu->addAction("Exception", this, SLOT(toolsErrorSimulateException()));
-
-// mOptionMenuActions.mLocalConnectivityMenu = mOptionMenuActions.mToolsMenu->addMenu("Local connectivity");
-// mOptionMenuActions.mToolsLocalConnectivityActivateInfrared = mOptionMenuActions.mLocalConnectivityMenu->addAction("Activate infrared", this, SLOT(toolsLocalConnectivityActivateInfrared()));
-// mOptionMenuActions.mToolsLocalConnectivityLaunchBTUI = mOptionMenuActions.mLocalConnectivityMenu->addAction("Launch BT UI", this, SLOT(toolsLocalConnectivityLaunchBTUI()));
-// mOptionMenuActions.mToolsLocalConnectivityLaunchUSBUI = mOptionMenuActions.mLocalConnectivityMenu->addAction("Launch USB UI", this, SLOT(toolsLocalConnectivityLaunchUSBUI()));
-
- mOptionMenuActions.mToolsMessageAttachmentsMenu = mOptionMenuActions.mToolsMenu->addMenu("Message attachments");
- mOptionMenuActions.mToolsMessageAttachmentsMenu->menuAction()->setVisible(false);
- mOptionMenuActions.mToolsMessageInbox = mOptionMenuActions.mToolsMessageAttachmentsMenu->addAction("Inbox", this, SLOT(toolsMessageInbox()));
- mOptionMenuActions.mToolsMessageDrafts = mOptionMenuActions.mToolsMessageAttachmentsMenu->addAction("Drafts", this, SLOT(toolsMessageDrafts()));
- mOptionMenuActions.mToolsMessageSentItems = mOptionMenuActions.mToolsMessageAttachmentsMenu->addAction("Sent items", this, SLOT(toolsMessageSentItems()));
- mOptionMenuActions.mToolsMessageOutbox = mOptionMenuActions.mToolsMessageAttachmentsMenu->addAction("Outbox", this, SLOT(toolsMessageOutbox()));
-
- mOptionMenuActions.mToolsMemoryInfo = mOptionMenuActions.mToolsMenu->addAction("Memory info", this, SLOT(toolsMemoryInfo()));
- mOptionMenuActions.mToolsMemoryInfo->setVisible(false);
-
- mOptionMenuActions.mToolsSecureBackupMenu = mOptionMenuActions.mToolsMenu->addMenu("Secure backup");
- mOptionMenuActions.mToolsSecureBackupMenu->menuAction()->setVisible(false);
- mOptionMenuActions.mToolsSecureBackStart = mOptionMenuActions.mToolsSecureBackupMenu->addAction("Start backup", this, SLOT(toolsSecureBackStart()));
- mOptionMenuActions.mToolsSecureBackRestore = mOptionMenuActions.mToolsSecureBackupMenu->addAction("Start restore", this, SLOT(toolsSecureBackRestore()));
- mOptionMenuActions.mToolsSecureBackStop = mOptionMenuActions.mToolsSecureBackupMenu->addAction("Stop", this, SLOT(toolsSecureBackStop()));
-
- mOptionMenuActions.mToolsSetDebugMask = mOptionMenuActions.mToolsMenu->addAction("Set debug mask", this, SLOT(toolsSetDebugMaskQuestion()));
- mOptionMenuActions.mToolsShowOpenFilesHere = mOptionMenuActions.mToolsMenu->addAction("Show open files here", this, SLOT(toolsShowOpenFilesHere()));
- mOptionMenuActions.mToolsShowOpenFilesHere->setVisible(false);
-}
-
-/**
- Creates Selection mode menu item in option menu
- */
-void FbFileView::createSelectionMenuItem()
-{
- if (!mOptionMenuActions.mSelection) {
- mOptionMenuActions.mSelection = menu()->addAction("Selection mode");
- mOptionMenuActions.mSelection->setToolTip("Selection mode");
- mOptionMenuActions.mSelection->setCheckable(true);
- connect(mOptionMenuActions.mSelection, SIGNAL(triggered()), this, SLOT(selectionModeChanged()));
- }
-}
-
-/**
- Creates Setting menu item in option menu
- */
-void FbFileView::createSettingsMenuItem()
-{
- mOptionMenuActions.mSetting = menu()->addAction("Settings...");
- connect(mOptionMenuActions.mSetting, SIGNAL(triggered()), this, SIGNAL(aboutToShowSettingsView()));
-}
-
-
-/**
- Creates About menu item in option menu
- */
-void FbFileView::createAboutMenuItem()
-{
- // about note
- mOptionMenuActions.mAbout = menu()->addAction("About");
- connect(mOptionMenuActions.mAbout, SIGNAL(triggered()), this, SLOT(about()));
-}
-
-/**
- Creates Exit menu item in option menu
- */
-void FbFileView::createExitMenuItem()
-{
- // application exit
- mOptionMenuActions.mExit = menu()->addAction("Exit");
- connect(mOptionMenuActions.mExit, SIGNAL(triggered()), qApp, SLOT(quit()));
-}
-
-/**
- update menu: disk admin available only in device root view. edit available only in folder view
- when file or folder content exist in current folder, or clipboard has copied item.
- file and view menus updated every time regarding the folder content.
- tools, settings, about, exit always available.
- If there's remove and add operations at same time, always remove first
- to keep to the correct menu items order.
- */
-void FbFileView::updateOptionMenu()
-{
- bool isFileItemListEmpty = mFbFileModel->rowCount() == 0;
- bool isNormalModeActive = true; //iModel->FileUtils()->IsNormalModeActive();
- bool isCurrentDriveReadOnly = mEngineWrapper->isCurrentDriveReadOnly(); //iModel->FileUtils()->IsCurrentDriveReadOnly();
- bool isCurrentItemDirectory = mEngineWrapper->getFileEntry(currentItemIndex()).isDir();
- // bool currentSelected = true; //iContainer->ListBox()->View()->ItemIsSelected(iContainer->ListBox()->View()->CurrentItemIndex());
- bool isAllSelected = mListView->selectionModel()->selection().count() == mFbFileModel->rowCount();
- //bool isNoneSelected = mListView->selectionModel()->selection().count() != 0;
- bool hasSelectedItems = mListView->selectionModel()->selection().count() != 0;
- bool isSelectionMode = mOptionMenuActions.mSelection && mOptionMenuActions.mSelection->isChecked();
- bool isClipBoardEmpty = !mEngineWrapper->isClipBoardListInUse();
- //bool showSnapShot = false; //iModel->FileUtils()->DriveSnapShotPossible();
-
- bool showEditMenu(true);
- if (isFileItemListEmpty && isClipBoardEmpty)
- showEditMenu = false;
- else
- showEditMenu = true;
-
- mOptionMenuActions.mEditMenu->menuAction()->setVisible(showEditMenu);
-
- //mOptionMenuActions.mFileBackMoveUp->setVisible( !isDriveListViewActive);
-
- //aMenuPane->SetItemDimmed(EFileBrowserCmdFileView, isFileItemListEmpty || !hasSelectedItems || isCurrentItemDirectory);
- //aMenuPane->SetItemDimmed(EFileBrowserCmdFileEdit, isFileItemListEmpty || !hasSelectedItems || isCurrentItemDirectory);
- //aMenuPane->SetItemDimmed(EFileBrowserCmdFileSendTo, isFileItemListEmpty || driveListActive || isCurrentItemDirectory);
-
- mOptionMenuActions.mFileNewMenu->menuAction()->setVisible(!isCurrentDriveReadOnly);
- mOptionMenuActions.mFileDelete->setVisible(!isFileItemListEmpty && !isCurrentDriveReadOnly && hasSelectedItems/*isSelectionMode*/);
- mOptionMenuActions.mFileRename->setVisible(!isFileItemListEmpty && !isCurrentDriveReadOnly && hasSelectedItems/*&& isSelectionMode*/);
- mOptionMenuActions.mFileTouch->setVisible(!isFileItemListEmpty && !isCurrentDriveReadOnly && hasSelectedItems);
-
- // TODO mOptionMenuActions.mFileChecksumsMenu->setVisible(!(isFileItemListEmpty || !hasSelectedItems || isCurrentItemDirectory));
- // TODO mOptionMenuActions.mFileSetAttributes->setVisible(!(isFileItemListEmpty || isCurrentDriveReadOnly));
- // TODO mOptionMenuActions.mFileCompress->setVisible(!(isCurrentDriveReadOnly || isFileItemListEmpty || !hasSelectedItems || isCurrentItemDirectory));
- // TODO mOptionMenuActions.mFileDecompress->setVisible(!(isCurrentDriveReadOnly || isFileItemListEmpty || !hasSelectedItems || isCurrentItemDirectory));
-
- mOptionMenuActions.mEditCut->setVisible(!isFileItemListEmpty && !isCurrentDriveReadOnly && isSelectionMode);
- mOptionMenuActions.mEditCopy->setVisible(!isFileItemListEmpty && isSelectionMode);
- mOptionMenuActions.mEditPaste->setVisible(!(isClipBoardEmpty || isCurrentDriveReadOnly));
- mOptionMenuActions.mEditCopyToFolder->setVisible(!isFileItemListEmpty);
- mOptionMenuActions.mEditMoveToFolder->setVisible(!(isCurrentDriveReadOnly || isFileItemListEmpty));
-
- mOptionMenuActions.mEditSelect->setVisible(false/*!currentSelected && !isFileItemListEmpty*/);
- mOptionMenuActions.mEditUnselect->setVisible(false/*currentSelected && !isFileItemListEmpty*/);
- mOptionMenuActions.mEditSelectAll->setVisible(isSelectionMode && !isAllSelected && !isFileItemListEmpty);
- mOptionMenuActions.mEditUnselectAll->setVisible(hasSelectedItems && !isFileItemListEmpty);
-
- // TODO mOptionMenuActions.mViewSort->setVisible(!(!isNormalModeActive || isFileItemListEmpty));
- // TODO mOptionMenuActions.mViewOrder->setVisible(!(!isNormalModeActive || isFileItemListEmpty));
- mOptionMenuActions.mViewRefresh->setVisible(isNormalModeActive);
- mOptionMenuActions.mViewFilterEntries->setVisible(!isFileItemListEmpty);
-
- // TODO R_FILEBROWSER_VIEW_SORT_SUBMENU
- // aMenuPane->SetItemButtonState(iModel->FileUtils()->SortMode(), EEikMenuItemSymbolOn);
-
- // TODO R_FILEBROWSER_VIEW_ORDER_SUBMENU
- // aMenuPane->SetItemButtonState(iModel->FileUtils()->OrderMode(), EEikMenuItemSymbolOn);
-
- // aResourceId == R_FILEBROWSER_TOOLS_SUBMENU
- bool noExtendedErrorsAllowed = mEngineWrapper->ErrRdFileExists();
- mOptionMenuActions.mToolsDisableExtendedErrors->setVisible(noExtendedErrorsAllowed);
- mOptionMenuActions.mToolsEnableExtendedErrors->setVisible(!noExtendedErrorsAllowed);
-
-// bool infraRedAllowed = mEngineWrapper->FileExists(KIRAppPath);
-// bool bluetoothAllowed = mEngineWrapper->FileExists(KBTAppPath);
-// bool usbAllowed = mEngineWrapper->FileExists(KUSBAppPath);
-//
-// bool noLocalCon = !infraRedAllowed && !bluetoothAllowed && !usbAllowed;
-// mOptionMenuActions.mToolsLocalConnectivityMenu->menuAction()->setVisible(!noLocalCon);
-//
-// mOptionMenuActions.mToolsLocalConnectivityActivateInfrared->setVisible(infraRedAllowed);
-// mOptionMenuActions.mToolsLocalConnectivityLaunchBTUI->setVisible(bluetoothAllowed);
-// mOptionMenuActions.mToolsLocalConnectivityLaunchUSBUI->setVisible(usbAllowed);
-}
-
-void FbFileView::createContextMenu()
-{
- mContextMenu = new HbMenu();
- connect(mContextMenu, SIGNAL(aboutToShow()), this, SLOT(updateContextMenu()));
-
- createFileContextMenu();
- createEditContextMenu();
- createViewContextMenu();
-}
-
-
-void FbFileView::createFileContextMenu()
-{
- mContextMenuActions.mFileMenu = mContextMenu->addMenu("File");
-
- //mContextMenuActions.mFileBackMoveUp = mContextMenuActions.mFileMenu->addAction("Back/Move up (<-)", this, SLOT(fileBackMoveUp()));
- mContextMenuActions.mFileOpenDirectory = mContextMenuActions.mFileMenu->addAction("Open directory (->)", this, SLOT(fileOpenDirectory()));
-// mContextMenuActions.mFileSearch = mContextMenuActions.mFileMenu->addAction("Search...", this, SLOT(fileSearch()));
- //mContextMenuActions.mFileSearch->setVisible(false);
-
- mContextMenuActions.mFileDelete = mContextMenuActions.mFileMenu->addAction("Delete", this, SLOT(fileDelete()));
- mContextMenuActions.mFileRename = mContextMenuActions.mFileMenu->addAction("Rename", this, SLOT(fileRename()));
- mContextMenuActions.mFileTouch = mContextMenuActions.mFileMenu->addAction("Touch", this, SLOT(fileTouch()));
- mContextMenuActions.mFileProperties = mContextMenuActions.mFileMenu->addAction("Properties", this, SLOT(fileProperties()));
-
- mContextMenuActions.mFileChecksumsMenu = mContextMenuActions.mFileMenu->addMenu("Checksums");
- mContextMenuActions.mFileChecksumsMD5 = mContextMenuActions.mFileChecksumsMenu->addAction("MD5", this, SLOT(fileChecksumsMD5()));
- mContextMenuActions.mFileChecksumsMD2 = mContextMenuActions.mFileChecksumsMenu->addAction("MD2", this, SLOT(fileChecksumsMD2()));
- mContextMenuActions.mFileChecksumsSHA1 = mContextMenuActions.mFileChecksumsMenu->addAction("SHA-1", this, SLOT(fileChecksumsSHA1()));
-
-// mContextMenuActions.mFileSetAttributes = mContextMenuActions.mFileMenu->addAction("Set attributes...", this, SLOT(fileSetAttributes()));
-// mContextMenuActions.mFileSetAttributes->setVisible(false);
-}
-
-void FbFileView::createEditContextMenu()
-{
- mContextMenuActions.mEditMenu = mContextMenu->addMenu("Edit");
-
- //mContextMenuActions.mEditSnapShotToE = mContextMenuActions.mEditMenu->addAction("Snap shot to E:", this, SLOT(editSnapShotToE()));
-// mContextMenuActions.mEditSnapShotToE->setVisible(false);
- mContextMenuActions.mEditCut = mContextMenuActions.mEditMenu->addAction("Cut", this, SLOT(editCut()));
- mContextMenuActions.mEditCopy = mContextMenuActions.mEditMenu->addAction("Copy", this, SLOT(editCopy()));
- mContextMenuActions.mEditPaste = mContextMenuActions.mEditMenu->addAction("Paste", this, SLOT(editPaste()));
-
- mContextMenuActions.mEditCopyToFolder = mContextMenuActions.mEditMenu->addAction("Copy to folder...", this, SLOT(editCopyToFolder()));
- mContextMenuActions.mEditMoveToFolder = mContextMenuActions.mEditMenu->addAction("Move to folder...", this, SLOT(editMoveToFolder()));
-}
-
-void FbFileView::createViewContextMenu()
-{
-
-}
-
-void FbFileView::updateContextMenu()
-{
- bool isFileItemListEmpty = mFbFileModel->rowCount() == 0;
- bool isDriveListViewActive = mEngineWrapper->isDriveListViewActive();
-// bool isNormalModeActive = true; //iModel->FileUtils()->IsNormalModeActive();
- bool isCurrentDriveReadOnly = mEngineWrapper->isCurrentDriveReadOnly();
- bool isCurrentItemDirectory = mEngineWrapper->getFileEntry(currentItemIndex()).isDir();
- bool hasSelectedItems = mListView->selectionModel()->selection().count() != 0;
- bool isSelectionMode = mOptionMenuActions.mSelection && mOptionMenuActions.mSelection->isChecked();
- bool isClipBoardEmpty = !mEngineWrapper->isClipBoardListInUse();
-
- // File submenu
- //mContextMenuActions.mFileBackMoveUp->setVisible( !isDriveListViewActive);
- mContextMenuActions.mFileOpenDirectory->setVisible( !isFileItemListEmpty && !isDriveListViewActive && isCurrentItemDirectory);
-
- mContextMenuActions.mFileDelete->setVisible(!isFileItemListEmpty && !isDriveListViewActive && !isCurrentDriveReadOnly);
- mContextMenuActions.mFileRename->setVisible(!isFileItemListEmpty && !isDriveListViewActive && !isCurrentDriveReadOnly);
- mContextMenuActions.mFileTouch->setVisible(!isFileItemListEmpty && !isDriveListViewActive && !isCurrentDriveReadOnly);
- mContextMenuActions.mFileProperties->setVisible(!isFileItemListEmpty && !isSelectionMode);
-
- mContextMenuActions.mFileChecksumsMenu->menuAction()->setVisible(!(isFileItemListEmpty || isSelectionMode /*|| !hasSelectedItems*/ || isCurrentItemDirectory || isDriveListViewActive));
- // Edit submenu
- mContextMenuActions.mEditMenu->menuAction()->setVisible(!isDriveListViewActive);
- mContextMenuActions.mEditCut->setVisible(!(isDriveListViewActive || isCurrentDriveReadOnly || isFileItemListEmpty));
- mContextMenuActions.mEditCopy->setVisible(!(isDriveListViewActive || isFileItemListEmpty));
- mContextMenuActions.mEditPaste->setVisible(!isDriveListViewActive && !isClipBoardEmpty && !isCurrentDriveReadOnly);
- mContextMenuActions.mEditCopyToFolder->setVisible(!(isDriveListViewActive || isFileItemListEmpty));
- mContextMenuActions.mEditMoveToFolder->setVisible(!(isDriveListViewActive || isCurrentDriveReadOnly || isFileItemListEmpty));
-}
-
-// ---------------------------------------------------------------------------
-
-void FbFileView::onLongPressed(HbAbstractViewItem *listViewItem, QPointF coords)
-{
- QModelIndex proxyIndex = listViewItem->modelIndex();
- //map to source model
- mCurrentIndex = mSortFilterProxyModel->mapToSource(proxyIndex);
-
- mContextMenu->setPreferredPos(coords);
- mContextMenu->show();
-}
-
-/**
- Create a file browser tool bar
- */
-void FbFileView::createToolBar()
-{
- mToolBar = toolBar();
-
- mToolbarBackAction = new HbAction(mToolBar);
- mToolbarBackAction->setToolTip("Back");
- mToolbarBackAction->setIcon(HbIcon(QString(":/qgn_indi_tb_filebrowser_folder_parent.svg")));
- connect(mToolbarBackAction, SIGNAL(triggered()), this, SLOT(fileBackMoveUp()));
- mToolBar->addAction(mToolbarBackAction);
-
- // Find button and its extension
- HbToolBarExtension* filterExtension = new HbToolBarExtension();
- // Set search panel widget
- mSearchPanel = new HbSearchPanel(filterExtension);
- mSearchPanel->setMinimumWidth( 360 ); // TODO should be based on layout, screen width
- connect(mSearchPanel, SIGNAL(criteriaChanged(const QString &)), this, SLOT(filterCriteriaChanged(const QString &)));
- connect(mSearchPanel, SIGNAL(exitClicked()), filterExtension, SLOT(close()));
- connect(mSearchPanel, SIGNAL(exitClicked()), this, SLOT(clearFilterCriteria()));
- filterExtension->setContentWidget(mSearchPanel);
-
- HbAction* mToolbarFilterAction = mToolBar->addExtension(filterExtension);
-// mToolbarFilterAction->setText("Filter");
- mToolbarFilterAction->setToolTip("Filter");
- mToolbarFilterAction->setIcon(HbIcon(QString(":/qgn_indi_tb_filebrowser_find.svg")));
- //connect(mToolbarFilterAction, SIGNAL(triggered()), this, SLOT(viewFilterEntries()));
-
- if (mOptionMenuActions.mSelection) {
- //mOptionMenuActions.mSelection->setIcon(HbIcon(QString(":/qgn_indi_tb_filebrowser_selection_active.svg")));
- mToolBar->addAction(mOptionMenuActions.mSelection);
- }
-
-// // TODO Paste to be added
-// if (mOptionMenuActions.mEditPaste) {
-// //mOptionMenuActions.mEditPaste->setIcon(HbIcon(QString(":/qgn_indi_tb_filebrowser_selection_active.svg")));
-// mToolBar->addAction(mOptionMenuActions.mEditPaste);
-// }
-}
-
-/**
- Refresh FileBrowser view
- */
-void FbFileView::refreshList()
-{
- editUnselectAll();
- mEngineWrapper->refreshView();
- mSearchPanel->setCriteria(QString(""));
- mListView->model()->revert();
- mListView->reset();
-
- if (mListView->model() && mListView->model()->rowCount() > 0) {
- QModelIndex firstIndex = mListView->model()->index(0, 0);
- mListView->scrollTo(firstIndex);
- }
-
- TListingMode listingMode = mEngineWrapper->listingMode();
- if (listingMode == ENormalEntries)
- mNaviPane->setPlainText(QString(mEngineWrapper->currentPath()));
- else if (listingMode == ESearchResults)
- mNaviPane->setPlainText(QString(tr("Search results")));
- else if (listingMode == EOpenFiles)
- mNaviPane->setPlainText(QString(tr("Open files")));
- else if (listingMode == EMsgAttachmentsInbox)
- mNaviPane->setPlainText(QString(tr("Attachments in Inbox")));
- else if (listingMode == EMsgAttachmentsDrafts)
- mNaviPane->setPlainText(QString(tr("Attachments in Drafts")));
- else if (listingMode == EMsgAttachmentsSentItems)
- mNaviPane->setPlainText(QString(tr("Attachments in Sent Items")));
- else if (listingMode == EMsgAttachmentsOutbox)
- mNaviPane->setPlainText(QString(tr("Attachments in Outbox")));
-}
-
-// ---------------------------------------------------------------------------
-
-void FbFileView::fileOpen(HbAction *action)
-{
-// Q_UNUSED(action);
- HbSelectionDialog *dlg = static_cast<HbSelectionDialog*>(sender());
- if(!action && dlg && dlg->selectedItems().count()){
- int selectionIndex = dlg->selectedItems().at(0).toInt();
-
- if (selectionIndex == 0) {
- // open editor view
- emit aboutToShowEditorView(mAbsoluteFilePath, true);
- } else if (selectionIndex == 1) {
- // AppArc
- mEngineWrapper->openAppArc(mAbsoluteFilePath);
- } else {
- // DocHandler
- mEngineWrapper->openDocHandler(mAbsoluteFilePath, true);
- }
- }
-}
-
-/**
- Open overwrite dialog
- */
-void FbFileView::fileOverwriteDialog()
-{
- mOverwriteOptions = OverwriteOptions();
- // open user-dialog to select: view as text/hex, open w/AppArc or open w/DocH. embed
- QStringList list;
- list << QString("Overwrite all")
- << QString("Skip all existing")
- << QString("Gen. unique filenames")
- << QString("Query postfix");
- openListDialog(list, QString("Overwrite?"), this, SLOT(fileOverwrite(HbAction *)));
-}
-
-/**
- File overwrite
- */
-void FbFileView::fileOverwrite(HbAction *action)
-{
- HbSelectionDialog *dlg = static_cast<HbSelectionDialog*>(sender());
- if(!action && dlg && dlg->selectedItems().count()) {
- mOverwriteOptions.queryIndex = dlg->selectedItems().at(0).toInt();
- if (mOverwriteOptions.queryIndex == EFileActionQueryPostFix) {
- QString heading = QString("Postfix");
- HbInputDialog::getText(heading, this, SLOT(fileOverwritePostfix(HbAction *)), QString(), scene());
- } else if (mOverwriteOptions.queryIndex == EFileActionSkipAllExisting) {
- mOverwriteOptions.overWriteFlags = 0;
- }
- } else {
- mOverwriteOptions.doFileOperations = false;
- }
-}
-
-/**
- File overwrite postfix query dialog
- */
-void FbFileView::fileOverwritePostfix(HbAction *action)
-{
- HbInputDialog *dlg = static_cast<HbInputDialog*>(sender());
- if (dlg && action && action->text().compare(QString("Ok"), Qt::CaseInsensitive) == 0) {
- mOverwriteOptions.postFix = dlg->value().toString();
- } else {
- mOverwriteOptions.doFileOperations = false;
- }
-}
-
-// ---------------------------------------------------------------------------
-/**
- Show a list dialog
- \param List aList of item to select item from.
- \param Title text titleText of a dialog heading widget
- \return None
- */
-void FbFileView::openListDialog(const QStringList& items, const QString &titleText, QObject* receiver, const char* member)
-{
- // Create a list and some simple content for it
- HbSelectionDialog *dlg = new HbSelectionDialog();
- dlg->setAttribute(Qt::WA_DeleteOnClose);
- // Set items to be popup's content
- dlg->setStringItems(items);
- dlg->setSelectionMode(HbAbstractItemView::SingleSelection);
-
- HbLabel *title = new HbLabel(dlg);
- title->setPlainText(titleText);
- dlg->setHeadingWidget(title);
-
- // Launch popup and handle the user response:
- dlg->open(receiver, member);
-}
-
-// ---------------------------------------------------------------------------
-
-void FbFileView::openPropertyDialog(const QStringList& propertyList, const QString& title)
-{
- HbDialog *dialog = new HbDialog();
- dialog->setDismissPolicy(HbPopup::TapOutside);
- dialog->setTimeout(HbPopup::NoTimeout);
-
- HbLabel *titleWidget = new HbLabel();
- titleWidget->setPlainText(title);
- dialog->setHeadingWidget(titleWidget);
-
- // Create a list and some simple content for it
- HbListWidget *list = new HbListWidget();
- QString str;
- foreach (str, propertyList) {
- list->addItem(str);
- }
-
- // Connect list item activation signal to close the popup
- connect(list, SIGNAL(activated(HbListWidgetItem*)), dialog, SLOT(close()));
-
- HbAction *cancelAction = new HbAction("Close");
- dialog->setPrimaryAction(cancelAction);
-
- // Set listwidget to be popup's content
- dialog->setContentWidget(list);
- // Launch popup and handle the user response:
- dialog->open();
-}
-
-/**
- Stores selection or current index mapped to source model
- */
-void FbFileView::storeSelectedItemsOrCurrentItem()
-{
- QItemSelectionModel *selectionIndexes = mListView->selectionModel();
-
- // by default use selected items
- if (selectionIndexes) {
- if (selectionIndexes->hasSelection()) {
- QItemSelection proxyItemSelection = mListView->selectionModel()->selection();
- QItemSelection itemSelection = mSortFilterProxyModel->mapSelectionToSource(proxyItemSelection);
- mSelectionIndexes = itemSelection.indexes();
- } else { // or if none selected, use the current item index
- mSelectionIndexes.clear();
- QModelIndex currentIndex = currentItemIndex(); //alreade mapped to source model
- mSelectionIndexes.append(currentIndex);
- }
- }
-}
-
-// ---------------------------------------------------------------------------
-
-QModelIndex FbFileView::currentItemIndex()
-{
- return mCurrentIndex;
-}
-
-// ---------------------------------------------------------------------------
-// operations in File Menu
-// ---------------------------------------------------------------------------
-
-/**
- Move back/up in folder browsing history
- */
-void FbFileView::fileBackMoveUp()
-{
- mLocationChanged = true;
- mEngineWrapper->moveUpOneLevel();
- //mListView->setRootIndex(currentItemIndex());
- refreshList();
- if (mEngineWrapper->isDriveListViewActive()) {
- emit aboutToShowDriveView();
- }
-}
-
-void FbFileView::fileOpenDirectory()
-{
- mLocationChanged = true;
- // get selected drive or directory from list view model and open it:
- //if (mListView->selectionModel()->hasSelection()) {
-// if (mListView->selectionModel()->selection().count() != 0) {
-// QModelIndex currentIndex = currentItemIndex();
- mEngineWrapper->moveDownToDirectory(currentItemIndex());
-// mListView->setRootIndex(currentItemIndex());
- refreshList();
-// } else {
-// Notifications::showErrorNote("not selected item!");
-// }
-}
-
-void FbFileView::fileSearch()
-{
- QString searchPath;
-// if (mEngineWrapper->currentPath() != mInitDirPath.path()) {
-// searchPath = mDirectory;
-// searchPath.replace("/", "\\");
-// searchPath+="\\";
-// }
- searchPath = mEngineWrapper->currentPath();
-// mSearch->open(searchPath);
- emit aboutToShowSearchView(searchPath);
-}
-
-/**
- Open new file dialog
- */
-void FbFileView::fileNewFile()
-{
- QString heading = QString("Enter filename");
- HbInputDialog::getText(heading, this, SLOT(doFileNewFile(HbAction*)), QString(), scene());
-}
-
-/**
- Create a new file in current directory with a name queried from user
- */
-void FbFileView::doFileNewFile(HbAction *action)
-{
- HbInputDialog *dlg = static_cast<HbInputDialog*>(sender());
- if (dlg && action && action->text().compare(QString("Ok"), Qt::CaseInsensitive) == 0) {
- QString newFileName = dlg->value().toString();
- mEngineWrapper->createNewFile(newFileName);
- refreshList();
- }
-}
-
-/**
- Open new directory dialog
- */
-void FbFileView::fileNewDirectory()
-{
- QString heading = QString("Enter directory name");
- HbInputDialog::getText(heading, this, SLOT(doFileNewDirectory(HbAction*)), QString(), scene());
-}
-
-/**
- Create a new directory in current directory with a name queried from user
- */
-void FbFileView::doFileNewDirectory(HbAction *action)
-{
- HbInputDialog *dlg = static_cast<HbInputDialog*>(sender());
- if (dlg && action && action->text().compare(QString("Ok"), Qt::CaseInsensitive) == 0) {
- QString newDirectoryName = dlg->value().toString();
- mEngineWrapper->createNewDirectory(newDirectoryName);
- refreshList();
- }
-}
-
-/**
- Question for Delete actually selected files
- */
-void FbFileView::fileDelete()
-{
- storeSelectedItemsOrCurrentItem();
- const QString messageFormat = "Delete %1 entries?";
- QString message = messageFormat.arg(mSelectionIndexes.count());
- HbMessageBox::question(message, this, SLOT(doFileDelete(HbAction*)));
-}
-
-/**
- Delete actually selected files
- */
-void FbFileView::doFileDelete(HbAction* action)
-{
- if (action && action->text().compare(QString("Yes"), Qt::CaseInsensitive) == 0) {
- //storeSelectedItemsOrCurrentItem();
- mEngineWrapper->deleteItems(mSelectionIndexes);
- refreshList();
- }
-}
-
-/**
- Open rename dialog for actually selected files
- */
-void FbFileView::fileRename()
-{
- storeSelectedItemsOrCurrentItem();
- mEngineWrapper->setCurrentSelection(mSelectionIndexes);
-
- for (int i(0), ie(mSelectionIndexes.count()); i < ie; ++i ) {
- mProceed = (i == ie-1); // if the last item
- mModelIndex = mSelectionIndexes.at(i);
- FileEntry entry = mEngineWrapper->getFileEntry(mModelIndex);
-
- QString heading = QString("Enter new name");
- HbInputDialog::getText(heading, this, SLOT(doFileRename(HbAction*)), entry.name(), scene());
- }
-}
-
-/**
- Rename actually selected files
- */
-void FbFileView::doFileRename(HbAction *action)
-{
- HbInputDialog *dlg = static_cast<HbInputDialog*>(sender());
- if (dlg && action && action->text().compare(QString("Ok"), Qt::CaseInsensitive) == 0) {
- mNewFileName = dlg->value().toString();
-
- if (mEngineWrapper->targetExists(mModelIndex, mNewFileName)) {
- const QString messageTemplate = QString("%1 already exists, overwrite?");
- QString message = messageTemplate.arg(mNewFileName);
- HbMessageBox::question(message, this, SLOT(doFileRenameFileExist(HbAction *)));
- } else {
- mEngineWrapper->rename(mModelIndex, mNewFileName);
- if (mProceed) {
- mEngineWrapper->startExecutingCommands(QString("Renaming"));
- refreshList();
- }
- }
- }
-}
-
-/**
- Rename actually selected files
- */
-void FbFileView::doFileRenameFileExist(HbAction *action)
-{
- if (action && action->text().compare(QString("Yes"), Qt::CaseInsensitive) == 0) {
- mEngineWrapper->rename(mModelIndex, mNewFileName);
- if (mProceed) {
- mEngineWrapper->startExecutingCommands(QString("Renaming"));
- refreshList();
- }
- }
-}
-
-/**
- Touch actually selected files
- */
-void FbFileView::fileTouch()
-{
- storeSelectedItemsOrCurrentItem();
- mEngineWrapper->setCurrentSelection(mSelectionIndexes);
-
- if (mEngineWrapper->selectionHasDirs()) {
- const QString message = "Recurse touch for all selected dirs?";
- HbMessageBox::question(message, this, SLOT(doFileTouch(HbAction*)));
- }
- else{
- mEngineWrapper->touch(false);
- refreshList();
- }
-}
-
-/**
- Touch actually selected files
- */
-void FbFileView::doFileTouch(HbAction* action)
-{
- bool recurse = false;
- if (action && action->text().compare(QString("Yes"), Qt::CaseInsensitive) == 0) {
- recurse = true;
- }
- mEngineWrapper->touch(recurse);
- refreshList();
-}
-
-void FbFileView::fileChecksumsMD5()
-{
- fileChecksums(EFileChecksumsMD5);
-}
-
-void FbFileView::fileChecksumsMD2()
-{
- fileChecksums(EFileChecksumsMD2);
-}
-
-void FbFileView::fileChecksumsSHA1()
-{
- fileChecksums(EFileChecksumsSHA1);
-}
-
-void FbFileView::fileChecksums(TFileBrowserCmdFileChecksums checksumType)
-{
- mEngineWrapper->showFileCheckSums(currentItemIndex(), checksumType);
-}
-
-/**
- Show file properties
- */
-void FbFileView::fileProperties()
-{
- QModelIndex currentIndex = currentItemIndex();
- QStringList propertyList;
- QString titleText;
- mEngineWrapper->properties(currentIndex, propertyList, titleText);
- openPropertyDialog(propertyList, titleText);
-}
-
-void FbFileView::fileSetAttributes()
-{
-
-}
-
-// edit menu
-void FbFileView::editSnapShotToE()
-{
-
-}
-
-/**
- Set selected files into clipboard.
- Selected item will be removed after paste operation.
- */
-void FbFileView::editCut()
-{
- storeSelectedItemsOrCurrentItem();
-
- // Store indices to clipboard
- mClipboardIndexes.clear();
- for (int i = 0; i < mSelectionIndexes.size(); ++i) {
- mClipboardIndexes.append(mSelectionIndexes.at(i));
- }
-
- mEngineWrapper->clipboardCut(mClipboardIndexes);
-
- int operations = mClipboardIndexes.count();
- const QString message = QString ("%1 entries cut to clipboard");
- QString noteMsg = message.arg(operations);
-
- Notifications::showInformationNote(noteMsg);
-}
-
-/**
- Set selected files into clipboard.
- Selected item will not be removed after paste operation.
- */
-void FbFileView::editCopy()
-{
- storeSelectedItemsOrCurrentItem();
-
- // Store indices to clipboard
- mClipboardIndexes.clear();
- for (int i = 0; i < mSelectionIndexes.size(); ++i) {
- mClipboardIndexes.append(mSelectionIndexes.at(i));
- }
-
- mEngineWrapper->clipboardCopy(mClipboardIndexes);
-
- int operations = mClipboardIndexes.count();
-
- const QString message = QString ("%1 entries copied to clipboard");
- QString noteMsg = message.arg(operations);
-
- Notifications::showInformationNote(noteMsg);
-}
-
-/**
- Moves or copies file selection stored in clipboard to a actual directory.
- Removing files depend on previous operation, i.e. Cut or Copy
- */
-void FbFileView::editPaste()
-{
- bool someEntryExists(false);
-
- // TODO Set entry items here
-
- someEntryExists = mEngineWrapper->isDestinationEntriesExists(mClipboardIndexes, mEngineWrapper->currentPath());
- if (someEntryExists) {
- fileOverwriteDialog();
- }
-
- mEngineWrapper->clipboardPaste(mOverwriteOptions);
-}
-
-/**
- Open copy to folder new filename dialog
- */
-void FbFileView::editCopyToFolder()
-{
- QString heading = QString("Enter new name");
- HbInputDialog::getText(heading, this, SLOT(doEditCopyToFolder(HbAction*)), mEngineWrapper->currentPath(), scene());
-}
-
-/**
- Copies current file selection to a queried directory.
- */
-void FbFileView::doEditCopyToFolder(HbAction *action)
-{
- HbInputDialog *dlg = static_cast<HbInputDialog*>(sender());
- if (dlg && action && action->text().compare(QString("Ok"), Qt::CaseInsensitive) == 0) {
- QString targetDir = dlg->value().toString();
- bool someEntryExists(false);
-
- // TODO Set entry items here
- storeSelectedItemsOrCurrentItem();
- mEngineWrapper->setCurrentSelection(mSelectionIndexes);
-
- someEntryExists = mEngineWrapper->isDestinationEntriesExists(mSelectionIndexes, targetDir);
- if (someEntryExists) {
- fileOverwriteDialog();
- }
- mEngineWrapper->copyToFolder(targetDir, mOverwriteOptions, false);
- refreshList();
- }
-}
-
-/**
- Open move to folder new filename dialog.
- */
-void FbFileView::editMoveToFolder()
-{
- QString heading = QString("Enter new name");
- HbInputDialog::getText(heading, this, SLOT(doEditMoveToFolder(HbAction*)), mEngineWrapper->currentPath(), scene());
-}
-
-/**
- Moves current file selection to a queried directory.
- */
-void FbFileView::doEditMoveToFolder(HbAction *action)
-{
- HbInputDialog *dlg = static_cast<HbInputDialog*>(sender());
- if (dlg && action && action->text().compare(QString("Ok"), Qt::CaseInsensitive) == 0) {
- QString targetDir = dlg->value().toString();
- bool someEntryExists(false);
-
- // TODO Set entry items here
- storeSelectedItemsOrCurrentItem();
- mEngineWrapper->setCurrentSelection(mSelectionIndexes);
-
- someEntryExists = mEngineWrapper->isDestinationEntriesExists(mSelectionIndexes, targetDir);
- if (someEntryExists) {
- fileOverwriteDialog();
- }
- mEngineWrapper->copyToFolder(targetDir, mOverwriteOptions, true);
- refreshList();
- }
-}
-
-/**
- Select current file
- */
-void FbFileView::editSelect()
-{
- QItemSelectionModel *selectionModel = mListView->selectionModel();
- if (selectionModel) {
- selectionModel->select(selectionModel->currentIndex(), QItemSelectionModel::SelectCurrent);
- selectionModel->select(selectionModel->currentIndex(), QItemSelectionModel::Select);
-// itemHighlighted(selectionModel->currentIndex());
- refreshList();
- }
-}
-
-/**
- Unselect current file
- */
-void FbFileView::editUnselect()
-{
- QItemSelectionModel *selectionModel = mListView->selectionModel();
- if (selectionModel) {
- selectionModel->select(selectionModel->currentIndex(), QItemSelectionModel::Deselect);
-// itemHighlighted(selectionModel->currentIndex());
- }
-}
-
-/**
- Select all files
- */
-void FbFileView::editSelectAll()
-{
- QItemSelectionModel *selectionModel = mListView->selectionModel();
- if (selectionModel) {
-
- //if (mFileBrowserModel->rowCount() > 0) {
- if (mListView->model() && mListView->model()->rowCount() > 0) {
- QModelIndex firstIndex = mListView->model()->index(0, 0);
- QModelIndex lastIndex = mListView->model()->index( (mListView->model()->rowCount() - 1), 0);
-
- QItemSelection itemSelection(firstIndex, lastIndex);
- selectionModel->select(itemSelection, QItemSelectionModel::SelectCurrent);
- }
- }
-}
-
-/**
- Unselect all files
- */
-void FbFileView::editUnselectAll()
-{
- QItemSelectionModel *selectionModel = mListView->selectionModel();
- if (selectionModel) {
- selectionModel->clearSelection();
- }
-}
-
-// ---------------------------------------------------------------------------
-// view menu
-// ---------------------------------------------------------------------------
-void FbFileView::viewFilterEntries()
-{
- if (mToolBar && mToolBar->actions().count() > 1 && mToolBar->actions().at(1)) {
- HbAction* tbeFilterAction = qobject_cast<HbAction*>(mToolBar->actions().at(1));
- if (tbeFilterAction && tbeFilterAction->toolBarExtension()) {
- HbToolBarExtension *tbeFilter = tbeFilterAction->toolBarExtension();
- tbeFilter->open();
- }
- }
-}
-
-/**
- Set filter criteria to proxy model
- */
-void FbFileView::filterCriteriaChanged(const QString &criteria)
-{
- mSortFilterProxyModel->setFilterCriteria(criteria);
-}
-
-/**
- Set filter criteria to proxy model
- */
-void FbFileView::clearFilterCriteria()
-{
- mSearchPanel->setCriteria(QString(""));
-}
-
-/**
- Refresh view
- */
-void FbFileView::viewRefresh()
-{
- refreshList();
-}
-
-// ---------------------------------------------------------------------------
-// tools menu
-// ---------------------------------------------------------------------------
-void FbFileView::toolsAllAppsToTextFile()
-{
-
-}
-
-/**
- Write all files to text file
- */
-void FbFileView::toolsAllFilesToTextFile()
-{
- mEngineWrapper->toolsWriteAllFiles();
-}
-
-//void FbFileView::toolsAvkonIconCacheEnable()
-//{
-//
-//}
-//void FbFileView::toolsAvkonIconCacheDisable()
-//{
-//
-//}
-
-/**
- Disable extended errors
- */
-void FbFileView::toolsDisableExtendedErrors()
-{
- mEngineWrapper->ToolsSetErrRd(false);
-}
-
-void FbFileView::toolsDumpMsgStoreWalk()
-{
-
-}
-void FbFileView::toolsEditDataTypes()
-{
-
-}
-
-/**
- Enable extended errors
- */
-void FbFileView::toolsEnableExtendedErrors()
-{
- mEngineWrapper->ToolsSetErrRd(true);
-}
-
-/**
- Open simulate leave dialog
- */
-void FbFileView::toolsErrorSimulateLeave()
-{
- int leaveCode = -6;
- QString heading = QString("Leave code");
- //HbInputDialog::getInteger(heading, this, SLOT(doToolsErrorSimulateLeave(HbAction*)), leaveCode, scene());
- HbInputDialog::getText(heading, this, SLOT(doToolsErrorSimulateLeave(HbAction*)), QString::number(leaveCode), scene());
-}
-
-
-/**
- Simulate leave.
- */
-void FbFileView::doToolsErrorSimulateLeave(HbAction *action)
-{
- HbInputDialog *dlg = static_cast<HbInputDialog*>(sender());
- if (dlg && action && action->text().compare(QString("Ok"), Qt::CaseInsensitive) == 0) {
- bool ok;
- int leaveCode = dlg->value().toString().toInt(&ok);
- if (leaveCode != 0 || ok) {
- mEngineWrapper->ToolsErrorSimulateLeave(leaveCode);
- }
- }
-}
-
-/**
- Open simulate panic dialog.
- */
-void FbFileView::toolsErrorSimulatePanic()
-{
- mPanicCategory = QString ("Test Category");
- QString heading = QString("Panic category");
- HbInputDialog::getText(heading, this, SLOT(doToolsErrorSimulatePanicCode(HbAction*)), mPanicCategory, scene());
-}
-
-/**
- Simulate panic.
- */
-void FbFileView::doToolsErrorSimulatePanicCode(HbAction *action)
-{
- HbInputDialog *dlg = static_cast<HbInputDialog*>(sender());
- if (dlg && action && action->text().compare(QString("Ok"), Qt::CaseInsensitive) == 0) {
- mPanicCategory = dlg->value().toString();
- int panicCode(555);
- QString heading = QString("Panic code");
- HbInputDialog::getInteger(heading, this, SLOT(doToolsErrorSimulatePanic(HbAction*)), panicCode, scene());
- }
-}
-
-/**
- Simulate panic.
- */
-void FbFileView::doToolsErrorSimulatePanic(HbAction *action)
-{
- HbInputDialog *dlg = static_cast<HbInputDialog*>(sender());
- if (dlg && action && action->text().compare(QString("Ok"), Qt::CaseInsensitive) == 0) {
- bool ok;
- int panicCode = dlg->value().toInt(&ok);
- if (panicCode != 0 || ok) {
- mEngineWrapper->ToolsErrorSimulatePanic(mPanicCategory, panicCode);
- }
- }
-}
-
-/**
- Open simulate exception dialog.
- */
-void FbFileView::toolsErrorSimulateException()
-{
- int exceptionCode = 0;
- QString heading = QString("Exception code");
- HbInputDialog::getInteger(heading, this, SLOT(doToolsErrorSimulateException(HbAction*)), exceptionCode, scene());
-}
-
-/**
- Simulate exception.
- */
-void FbFileView::doToolsErrorSimulateException(HbAction *action)
-{
- HbInputDialog *dlg = static_cast<HbInputDialog*>(sender());
- if (dlg && action && action->text().compare(QString("Ok"), Qt::CaseInsensitive) == 0) {
- bool ok;
- int exceptionCode = dlg->value().toInt(&ok);
- if (exceptionCode != 0 || ok) {
- mEngineWrapper->ToolsErrorSimulateException(exceptionCode);
- }
- }
-}
-
-// void FbFileView::toolsLocalConnectivityActivateInfrared()
-//{
-//
-//}
-// void FbFileView::toolsLocalConnectivityLaunchBTUI()
-//{
-//
-//}
-// void FbFileView::toolsLocalConnectivityLaunchUSBUI()
-//{
-//
-//}
-void FbFileView::toolsMessageInbox()
-{
-
-}
-void FbFileView::toolsMessageDrafts()
-{
-
-}
-void FbFileView::toolsMessageSentItems()
-{
-
-}
-void FbFileView::toolsMessageOutbox()
-{
-
-}
-void FbFileView::toolsMemoryInfo()
-{
-
-}
-void FbFileView::toolsSecureBackStart()
-{
-
-}
-void FbFileView::toolsSecureBackRestore()
-{
-
-}
-void FbFileView::toolsSecureBackStop()
-{
-
-}
-
-/**
- Open debug mask dialog
- */
-void FbFileView::toolsSetDebugMaskQuestion()
-{
- quint32 dbgMask = mEngineWrapper->getDebugMask();
- QString dbgMaskText = QString("0x").append(QString::number(dbgMask, 16));
- QString heading = QString("Kernel debug mask in hex format");
- HbInputDialog::getText(heading, this, SLOT(toolsSetDebugMask(HbAction*)), dbgMaskText, scene());
-}
-
-/**
- Set debug mask
- */
-void FbFileView::toolsSetDebugMask(HbAction *action)
-{
- HbInputDialog *dlg = static_cast<HbInputDialog*>(sender());
- if (dlg && action && action->text().compare(QString("Ok"), Qt::CaseInsensitive) == 0) {
- QString dbgMaskText = dlg->value().toString();
- if (dbgMaskText.length() > 2 && dbgMaskText[0]=='0' && dbgMaskText[1]=='x') {
- bool ok;
- quint32 dbgMask = dbgMaskText.toUInt(&ok, 16);
- if (dbgMask != 0 || ok) {
- mEngineWrapper->toolsSetDebugMask(dbgMask);
- Notifications::showConfirmationNote(QString("Changed"));
- } else {
- Notifications::showErrorNote(QString("Cannot convert value"));
- }
- } else {
- Notifications::showErrorNote(QString("Not in hex format"));
- }
- }
-}
-
-void FbFileView::toolsShowOpenFilesHere()
-{
-
-}
-
-// ---------------------------------------------------------------------------
-// main menu items
-// ---------------------------------------------------------------------------
-void FbFileView::selectionModeChanged()
-{
- if (mOptionMenuActions.mSelection->isChecked()) {
- activateSelectionMode();
- } else {
- deActivateSelectionMode();
- }
-}
-
-/**
- Show about note
- */
-void FbFileView::about()
-{
- Notifications::showAboutNote();
-}
-
-// ---------------------------------------------------------------------------
-// End of operations
-// ---------------------------------------------------------------------------
-
-// ---------------------------------------------------------------------------
-
-/**
- Item is selected from list when selection mode is activated from menu
- */
-void FbFileView::selectionChanged(const QItemSelection &/*selected*/, const QItemSelection &/*deselected*/)
-{
- //QItemSelectionModel *selectionModel = mListView->selectionModel();
- //itemHighlighted(selectionModel->currentIndex());
-}
-
-/**
- An item is clicked from navigation item list. Navigation item list contains
- drive-, folder- or file items. Opens selected drive, folder or file popup menu
- */
-void FbFileView::activated(const QModelIndex& index)
-{
- if (mFbFileModel) {
- //map to source model
- QModelIndex activatedIndex = mSortFilterProxyModel->mapToSource(index);
-
- if (mEngineWrapper->getFileEntry(activatedIndex).isDir()) {
- // populate new content of changed navigation view.
- // mLocationChanged = true;
- // mDirectory = filePath;
- mEngineWrapper->moveDownToDirectory(activatedIndex);
- refreshList();
- } else { // file item
- // mSelectedFilePath = filePath;
- FileEntry fileEntry = mEngineWrapper->getFileEntry(activatedIndex);
- mAbsoluteFilePath = fileEntry.path() + fileEntry.name();
-
- // open user-dialog to select: view as text/hex, open w/AppArc or open w/DocH. embed
- QStringList list;
- list << QString("View as text/hex") << QString("Open w/ AppArc") << QString("Open w/ DocH. embed");
- openListDialog(list, QString("Open file"), this, SLOT(fileOpen(HbAction *)));
- }
- }
-}
-
-// ---------------------------------------------------------------------------
-
-void FbFileView::activateSelectionMode()
-{
- QString path;
- disconnect(mListView, SIGNAL(activated(QModelIndex)), this, SLOT(activated(QModelIndex)));
- mListView->setSelectionMode(HbListView::MultiSelection);
-
-// QModelIndex index = mFileSystemModel->index(path,0);
-// mListView->selectionModel()->setCurrentIndex(index, QItemSelectionModel::SelectCurrent);
-// mListView->selectionModel()->select(index, QItemSelectionModel::Select);
-// //mListView->setHighlightMode(HbItemHighlight::HighlightAlwaysVisible);
-// mListView->setFocus(); // TODO use focus in
- if (mListView->selectionModel()) {
- connect(mListView->selectionModel(),
- SIGNAL(selectionChanged(QItemSelection, QItemSelection)),
- this,
- SLOT(selectionChanged(QItemSelection, QItemSelection)));
-// // flag to indicate that selection mode changed, "edit" sub-menu update needed
-// mFolderContentChanged = true;
- }
-}
-
-// ---------------------------------------------------------------------------
-
-void FbFileView::deActivateSelectionMode()
-{
- disconnect(mListView->selectionModel(),
- SIGNAL(selectionChanged(QItemSelection, QItemSelection)),
- this,
- SLOT(selectionChanged(QItemSelection, QItemSelection)));
- mListView->setSelectionMode(HbListView::NoSelection);
- connect(mListView, SIGNAL(activated(QModelIndex)), this, SLOT(activated(QModelIndex)));
- editUnselectAll();
- // flag to indicate that selection mode changed, "edit" sub-menu update needed
- mFolderContentChanged = true;
-}
-
-// ---------------------------------------------------------------------------