diff -r ba8a586c45f1 -r c20154ccf3c0 filebrowser/ui/src/filebrowserview.cpp --- a/filebrowser/ui/src/filebrowserview.cpp Fri Jun 11 16:29:34 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1976 +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 "filebrowserview.h" -#include "filebrowsermainwindow.h" -#include "settingsview.h" -#include "editorview.h" -#include "searchview.h" -#include "enginewrapper.h" -#include "notifications.h" - -#include "filebrowsermodel.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -//TODO check if needed to do this way -#include - -//const int DRIVEPATHLENGTH = 4; -const QString okActionText("OK"); -const QString cancelActionText("Cancel"); - -// --------------------------------------------------------------------------- - -FileBrowserView::FileBrowserView(FileBrowserMainWindow &mainWindow) - : mMainWindow(mainWindow), - mEngineWrapper(0), - mListView(0), - mToolBar(0), - mNaviPane(0), - mMainLayout(0), - mDirectory(), - mSelectedFilePath(), - mFileBrowserModel(0), - mFileViewMenuActions(), - mToolbarBackAction(0), - mSearch(0), - mSettingsView(0), - mItemHighlighted(false), - mLocationChanged(false), - mRemoveFileAfterCopied(false), - mClipBoardInUse(false), - mFolderContentChanged(false), - mOldPassword(), - mPanicCategory(), - mAbsoluteFilePath(), - mOverwriteOptions(), - mIsRenameAllowed(true), - mProceed(false), - mEraseMBR(false) -{ - setTitle("File Browser"); - - createMenu(); - createToolBar(); -} - -// --------------------------------------------------------------------------- - -void FileBrowserView::init(EngineWrapper *engineWrapper) -{ - mEngineWrapper = engineWrapper; - - mListView = new HbListView(this); - mFileBrowserModel = new FileBrowserModel(mEngineWrapper); - if (!mListView->model()) { - mListView->setModel(mFileBrowserModel); - mListView->listItemPrototype()->setStretchingStyle(HbListViewItem::StretchLandscape); - mEngineWrapper->refreshView(); - mToolbarBackAction->setEnabled(!mEngineWrapper->isDriveListViewActive()); - } - - //mListView->setRootIndex(mFileSystemModel->index(startPath)); - //mListView->setRootIndex(model->index()); - - mListView->setScrollingStyle(HbScrollArea::PanWithFollowOn); - //mListView->setHighlightMode(HbItemHighlight::HighlightAlwaysVisible); - - connect(mListView, SIGNAL(activated(QModelIndex)), this, SLOT(activated(QModelIndex))); - - 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); - //mMainLayout->addItem(mToolBar); - setLayout(mMainLayout); -} - -// --------------------------------------------------------------------------- - -FileBrowserView::~FileBrowserView() -{ -// if (mSearch !=0) { -// delete mSearch; -// } -// if (mSettingsView != 0) { -// delete mSettingsView; -// } -// if (mEngineWrapper) { -// delete mEngineWrapper; -// } - delete mFileBrowserModel; - delete mListView; - delete mToolBar; -} - -/** - Create a file browser tool bar - */ -void FileBrowserView::createToolBar() -{ - mToolBar = new HbToolBar(this); - - mToolbarBackAction = new HbAction(/*"Back"*/); - mToolbarBackAction->setToolTip("Back"); - mToolbarBackAction->setIcon(HbIcon(QString(":/qgn_indi_tb_filebrowser_folder_parent.svg"))); - connect(mToolbarBackAction, SIGNAL(triggered()), this, SLOT(fileBackMoveUp())); - mToolBar->addAction(mToolbarBackAction); - - if (mFileViewMenuActions.mSelection) { - mToolBar->addAction(mFileViewMenuActions.mSelection); - } - - setToolBar(mToolBar); -} - -/** - Initial setup for options menu. - Dynamic menu update during the runtime is performed by updateMenu() which - to menu's aboutToShow() signal. - */ -void FileBrowserView::createMenu() -{ - createFileMenu(); - createEditMenu(); - createViewMenu(); - createDiskAdminMenu(); - createToolsMenu(); - - createSelectionMenuItem(); - createSettingsMenuItem(); - createAboutMenuItem(); - createExitMenuItem(); - - // menu dynamic update - connect(menu(), SIGNAL(aboutToShow()), this, SLOT(updateMenu())); -} - -/** - Initial setup for File submenu - */ -void FileBrowserView::createFileMenu() -{ - mFileViewMenuActions.mFileMenu = menu()->addMenu("File"); - - mFileViewMenuActions.mFileBackMoveUp = mFileViewMenuActions.mFileMenu->addAction("Back/Move up (<-)", this, SLOT(fileBackMoveUp())); - mFileViewMenuActions.mFileOpenDrive = mFileViewMenuActions.mFileMenu->addAction("Open drive (->)", this, SLOT(fileOpenDrive())); - mFileViewMenuActions.mFileOpenDirectory = mFileViewMenuActions.mFileMenu->addAction("Open directory (->)", this, SLOT(fileOpenDirectory())); - mFileViewMenuActions.mFileSearch = mFileViewMenuActions.mFileMenu->addAction("Search", this, SLOT(fileSearch())); - mFileViewMenuActions.mFileSearch->setVisible(false); - - mFileViewMenuActions.mFileNewMenu = mFileViewMenuActions.mFileMenu->addMenu("New"); - mFileViewMenuActions.mFileNewFile = mFileViewMenuActions.mFileNewMenu->addAction("File", this, SLOT(fileNewFile())); - mFileViewMenuActions.mFileNewDirectory = mFileViewMenuActions.mFileNewMenu->addAction("Directory", this, SLOT(fileNewDirectory())); - - mFileViewMenuActions.mFileDelete = mFileViewMenuActions.mFileMenu->addAction("Delete", this, SLOT(fileDelete())); - mFileViewMenuActions.mFileRename = mFileViewMenuActions.mFileMenu->addAction("Rename", this, SLOT(fileRename())); - mFileViewMenuActions.mFileTouch = mFileViewMenuActions.mFileMenu->addAction("Touch", this, SLOT(fileTouch())); - mFileViewMenuActions.mFileProperties = mFileViewMenuActions.mFileMenu->addAction("Properties", this, SLOT(fileProperties())); - - mFileViewMenuActions.mFileChecksumsMenu = mFileViewMenuActions.mFileMenu->addMenu("Checksums"); - mFileViewMenuActions.mFileChecksumsMD5 = mFileViewMenuActions.mFileChecksumsMenu->addAction("MD5", this, SLOT(fileChecksumsMD5())); - mFileViewMenuActions.mFileChecksumsMD2 = mFileViewMenuActions.mFileChecksumsMenu->addAction("MD2", this, SLOT(fileChecksumsMD2())); - mFileViewMenuActions.mFileChecksumsSHA1 = mFileViewMenuActions.mFileChecksumsMenu->addAction("SHA-1", this, SLOT(fileChecksumsSHA1())); - - mFileViewMenuActions.mFileSetAttributes = mFileViewMenuActions.mFileMenu->addAction("Set attributes...", this, SLOT(fileSetAttributes())); - mFileViewMenuActions.mFileSetAttributes->setVisible(false); -} - -/** - Initial setup for Edit submenu - */ -void FileBrowserView::createEditMenu() -{ - mFileViewMenuActions.mEditMenu = menu()->addMenu("Edit"); - - mFileViewMenuActions.mEditSnapShotToE = mFileViewMenuActions.mEditMenu->addAction("Snap shot to E:", this, SLOT(editSnapShotToE())); - mFileViewMenuActions.mEditSnapShotToE->setVisible(false); - mFileViewMenuActions.mEditCut = mFileViewMenuActions.mEditMenu->addAction("Cut", this, SLOT(editCut())); - mFileViewMenuActions.mEditCopy = mFileViewMenuActions.mEditMenu->addAction("Copy", this, SLOT(editCopy())); - mFileViewMenuActions.mEditPaste = mFileViewMenuActions.mEditMenu->addAction("Paste", this, SLOT(editPaste())); - - mFileViewMenuActions.mEditCopyToFolder = mFileViewMenuActions.mEditMenu->addAction("Copy to folder...", this, SLOT(editCopyToFolder())); - mFileViewMenuActions.mEditMoveToFolder = mFileViewMenuActions.mEditMenu->addAction("Move to folder...", this, SLOT(editMoveToFolder())); - - mFileViewMenuActions.mEditSelect = mFileViewMenuActions.mEditMenu->addAction("Select", this, SLOT(editSelect())); - mFileViewMenuActions.mEditUnselect = mFileViewMenuActions.mEditMenu->addAction("Unselect", this, SLOT(editUnselect())); - mFileViewMenuActions.mEditSelectAll = mFileViewMenuActions.mEditMenu->addAction("Select all", this, SLOT(editSelectAll())); - mFileViewMenuActions.mEditUnselectAll = mFileViewMenuActions.mEditMenu->addAction("Unselect all", this, SLOT(editUnselectAll())); -} - -/** - Initial setup for View submenu - */ -void FileBrowserView::createViewMenu() -{ - mFileViewMenuActions.mViewMenu = menu()->addMenu("View"); - mFileViewMenuActions.mViewMenu->menuAction()->setVisible(false); - - mFileViewMenuActions.mViewFilterEntries = mFileViewMenuActions.mViewMenu->addAction("Filter entries", this, SLOT(viewFilterEntries())); - mFileViewMenuActions.mViewRefresh = mFileViewMenuActions.mViewMenu->addAction("Refresh", this, SLOT(viewRefresh())); -} - -/** - Initial setup for Disk Admin submenu - */ -void FileBrowserView::createDiskAdminMenu() -{ - mFileViewMenuActions.mDiskAdminMenu = menu()->addMenu("Disk admin"); - mFileViewMenuActions.mDiskAdminMenu->menuAction()->setVisible(false); - - mFileViewMenuActions.mDiskAdminSetDrivePassword = mFileViewMenuActions.mDiskAdminMenu->addAction("Set drive password", this, SLOT(diskAdminSetDrivePassword())); - mFileViewMenuActions.mDiskAdminUnlockDrive = mFileViewMenuActions.mDiskAdminMenu->addAction("Unlock drive", this, SLOT(diskAdminUnlockDrive())); - mFileViewMenuActions.mDiskAdminClearDrivePassword = mFileViewMenuActions.mDiskAdminMenu->addAction("Clear drive password", this, SLOT(diskAdminClearDrivePassword())); - mFileViewMenuActions.mDiskAdminEraseDrivePassword = mFileViewMenuActions.mDiskAdminMenu->addAction("Erase drive password", this, SLOT(diskAdminEraseDrivePassword())); - mFileViewMenuActions.mDiskAdminFormatDrive = mFileViewMenuActions.mDiskAdminMenu->addAction("Format drive", this, SLOT(diskAdminFormatDrive())); - mFileViewMenuActions.mDiskAdminQuickFormatDrive = mFileViewMenuActions.mDiskAdminMenu->addAction("Quick format drive", this, SLOT(diskAdminQuickFormatDrive())); - mFileViewMenuActions.mDiskAdminCheckDisk = mFileViewMenuActions.mDiskAdminMenu->addAction("Check disk", this, SLOT(diskAdminCheckDisk())); - mFileViewMenuActions.mDiskAdminScanDrive = mFileViewMenuActions.mDiskAdminMenu->addAction("Scan drive", this, SLOT(diskAdminScanDrive())); - mFileViewMenuActions.mDiskAdminSetDriveName = mFileViewMenuActions.mDiskAdminMenu->addAction("Set drive name", this, SLOT(diskAdminSetDriveName())); - mFileViewMenuActions.mDiskAdminSetDriveVolumeLabel = mFileViewMenuActions.mDiskAdminMenu->addAction("Set drive volume label", this, SLOT(diskAdminSetDriveVolumeLabel())); - mFileViewMenuActions.mDiskAdminEjectDrive = mFileViewMenuActions.mDiskAdminMenu->addAction("Eject drive", this, SLOT(diskAdminEjectDrive())); - mFileViewMenuActions.mDiskAdminDismountDrive = mFileViewMenuActions.mDiskAdminMenu->addAction("Dismount drive", this, SLOT(diskAdminDismountDrive())); - mFileViewMenuActions.mDiskAdminEraseMBR = mFileViewMenuActions.mDiskAdminMenu->addAction("Erase MBR", this, SLOT(diskAdminEraseMBR())); - mFileViewMenuActions.mDiskAdminPartitionDrive = mFileViewMenuActions.mDiskAdminMenu->addAction("Partition drive", this, SLOT(diskAdminPartitionDrive())); -} - -/** - Initial setup for Tools submenu - */ -void FileBrowserView::createToolsMenu() -{ - mFileViewMenuActions.mToolsMenu = menu()->addMenu("Tools"); - - mFileViewMenuActions.mToolsAllAppsToTextFile = mFileViewMenuActions.mToolsMenu->addAction("All apps to a text file", this, SLOT(toolsAllAppsToTextFile())); - mFileViewMenuActions.mToolsAllAppsToTextFile->setVisible(false); - mFileViewMenuActions.mToolsAllFilesToTextFile = mFileViewMenuActions.mToolsMenu->addAction("All files to a text file", this, SLOT(toolsAllFilesToTextFile())); - mFileViewMenuActions.mToolsAllFilesToTextFile->setVisible(false); - - mFileViewMenuActions.mToolsAvkonIconCacheMenu = mFileViewMenuActions.mToolsMenu->addMenu("Avkon icon cache"); - mFileViewMenuActions.mToolsAvkonIconCacheMenu->menuAction()->setVisible(false); - mFileViewMenuActions.mToolsAvkonIconCacheEnable = mFileViewMenuActions.mToolsAvkonIconCacheMenu->addAction("Enable", this, SLOT(toolsAvkonIconCacheEnable())); - mFileViewMenuActions.mToolsAvkonIconCacheDisable = mFileViewMenuActions.mToolsAvkonIconCacheMenu->addAction("Clear and disable", this, SLOT(toolsAvkonIconCacheDisable())); - - mFileViewMenuActions.mToolsDisableExtendedErrors = mFileViewMenuActions.mToolsMenu->addAction("Disable extended errors", this, SLOT(toolsDisableExtendedErrors())); - mFileViewMenuActions.mToolsDumpMsgStoreWalk = mFileViewMenuActions.mToolsMenu->addAction("Dump msg. store walk", this, SLOT(toolsDumpMsgStoreWalk())); - mFileViewMenuActions.mToolsDumpMsgStoreWalk->setVisible(false); - mFileViewMenuActions.mToolsEditDataTypes = mFileViewMenuActions.mToolsMenu->addAction("Edit data types", this, SLOT(toolsEditDataTypes())); - mFileViewMenuActions.mToolsEditDataTypes->setVisible(false); - mFileViewMenuActions.mToolsEnableExtendedErrors = mFileViewMenuActions.mToolsMenu->addAction("Enable extended errors", this, SLOT(toolsEnableExtendedErrors())); - - mFileViewMenuActions.mToolsErrorSimulateMenu = mFileViewMenuActions.mToolsMenu->addMenu("Error simulate"); - mFileViewMenuActions.mToolsErrorSimulateLeave = mFileViewMenuActions.mToolsErrorSimulateMenu->addAction("Leave", this, SLOT(toolsErrorSimulateLeave())); - mFileViewMenuActions.mToolsErrorSimulatePanic = mFileViewMenuActions.mToolsErrorSimulateMenu->addAction("Panic", this, SLOT(toolsErrorSimulatePanic())); - mFileViewMenuActions.mToolsErrorSimulatePanic->setVisible(false); - mFileViewMenuActions.mToolsErrorSimulateException = mFileViewMenuActions.mToolsErrorSimulateMenu->addAction("Exception", this, SLOT(toolsErrorSimulateException())); - -// mFileViewMenuActions.mLocalConnectivityMenu = mFileViewMenuActions.mToolsMenu->addMenu("Local connectivity"); -// mFileViewMenuActions.mToolsLocalConnectivityActivateInfrared = mFileViewMenuActions.mLocalConnectivityMenu->addAction("Activate infrared", this, SLOT(toolsLocalConnectivityActivateInfrared())); -// mFileViewMenuActions.mToolsLocalConnectivityLaunchBTUI = mFileViewMenuActions.mLocalConnectivityMenu->addAction("Launch BT UI", this, SLOT(toolsLocalConnectivityLaunchBTUI())); -// mFileViewMenuActions.mToolsLocalConnectivityLaunchUSBUI = mFileViewMenuActions.mLocalConnectivityMenu->addAction("Launch USB UI", this, SLOT(toolsLocalConnectivityLaunchUSBUI())); - - mFileViewMenuActions.mToolsMessageAttachmentsMenu = mFileViewMenuActions.mToolsMenu->addMenu("Message attachments"); - mFileViewMenuActions.mToolsMessageAttachmentsMenu->menuAction()->setVisible(false); - mFileViewMenuActions.mToolsMessageInbox = mFileViewMenuActions.mToolsMessageAttachmentsMenu->addAction("Inbox", this, SLOT(toolsMessageInbox())); - mFileViewMenuActions.mToolsMessageDrafts = mFileViewMenuActions.mToolsMessageAttachmentsMenu->addAction("Drafts", this, SLOT(toolsMessageDrafts())); - mFileViewMenuActions.mToolsMessageSentItems = mFileViewMenuActions.mToolsMessageAttachmentsMenu->addAction("Sent items", this, SLOT(toolsMessageSentItems())); - mFileViewMenuActions.mToolsMessageOutbox = mFileViewMenuActions.mToolsMessageAttachmentsMenu->addAction("Outbox", this, SLOT(toolsMessageOutbox())); - - mFileViewMenuActions.mToolsMemoryInfo = mFileViewMenuActions.mToolsMenu->addAction("Memory info", this, SLOT(toolsMemoryInfo())); - mFileViewMenuActions.mToolsMemoryInfo->setVisible(false); - - mFileViewMenuActions.mToolsSecureBackupMenu = mFileViewMenuActions.mToolsMenu->addMenu("Secure backup"); - mFileViewMenuActions.mToolsSecureBackupMenu->menuAction()->setVisible(false); - mFileViewMenuActions.mToolsSecureBackStart = mFileViewMenuActions.mToolsSecureBackupMenu->addAction("Start backup", this, SLOT(toolsSecureBackStart())); - mFileViewMenuActions.mToolsSecureBackRestore = mFileViewMenuActions.mToolsSecureBackupMenu->addAction("Start restore", this, SLOT(toolsSecureBackRestore())); - mFileViewMenuActions.mToolsSecureBackStop = mFileViewMenuActions.mToolsSecureBackupMenu->addAction("Stop", this, SLOT(toolsSecureBackStop())); - - mFileViewMenuActions.mToolsSetDebugMask = mFileViewMenuActions.mToolsMenu->addAction("Set debug mask", this, SLOT(toolsSetDebugMaskQuestion())); - mFileViewMenuActions.mToolsShowOpenFilesHere = mFileViewMenuActions.mToolsMenu->addAction("Show open files here", this, SLOT(toolsShowOpenFilesHere())); - mFileViewMenuActions.mToolsShowOpenFilesHere->setVisible(false); -} - -/** - Creates Selection mode menu item in option menu - */ -void FileBrowserView::createSelectionMenuItem() -{ - if (!mFileViewMenuActions.mSelection) { - mFileViewMenuActions.mSelection = menu()->addAction("Selection mode"); - mFileViewMenuActions.mSelection->setToolTip("Selection mode"); - mFileViewMenuActions.mSelection->setCheckable(true); - connect(mFileViewMenuActions.mSelection, SIGNAL(triggered()), this, SLOT(selectionModeChanged())); - } -} - -/** - Creates Setting menu item in option menu - */ -void FileBrowserView::createSettingsMenuItem() -{ - mFileViewMenuActions.mSetting = menu()->addAction("Settings"); - connect(mFileViewMenuActions.mSetting, SIGNAL(triggered()), this, SIGNAL(aboutToShowSettingsView())); -} - - -/** - Creates About menu item in option menu - */ -void FileBrowserView::createAboutMenuItem() -{ - // about note - mFileViewMenuActions.mAbout = menu()->addAction("About"); - connect(mFileViewMenuActions.mAbout, SIGNAL(triggered()), this, SLOT(about())); -} - -/** - Creates Exit menu item in option menu - */ -void FileBrowserView::createExitMenuItem() -{ - // application exit - mFileViewMenuActions.mExit = menu()->addAction("Exit"); - connect(mFileViewMenuActions.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 FileBrowserView::updateMenu() -{ - bool emptyListBox = mFileBrowserModel->rowCount() == 0; //iContainer->ListBoxNumberOfVisibleItems() == 0; - bool driveListActive = mEngineWrapper->isDriveListViewActive(); //iModel->FileUtils()->IsDriveListViewActive(); - bool normalModeActive = true; //iModel->FileUtils()->IsNormalModeActive(); - bool currentDriveReadOnly = mEngineWrapper->isCurrentDriveReadOnly(); //iModel->FileUtils()->IsCurrentDriveReadOnly(); - bool currentItemDirectory = mEngineWrapper->getFileEntry(currentItemIndex()).isDir(); //iModel->FileUtils()->IsCurrentItemDirectory(); - bool listBoxSelections = mListView->selectionModel()->selection().count() == 0; //iContainer->ListBoxSelectionIndexesCount() == 0; - bool emptyClipBoard = !mEngineWrapper->isClipBoardListInUse(); - bool showSnapShot = false; //iModel->FileUtils()->DriveSnapShotPossible(); - - bool showEditMenu(true); - if (driveListActive) { - if (!showSnapShot || emptyListBox && emptyClipBoard) - showEditMenu = false; - else - showEditMenu = true; - } else { - if (emptyListBox && emptyClipBoard) - showEditMenu = false; - else - showEditMenu = true; - } - - mFileViewMenuActions.mEditMenu->menuAction()->setVisible(showEditMenu); - // TODO mFileViewMenuActions.mDiskAdminMenu->menuAction()->setVisible(driveListActive); - - mFileViewMenuActions.mFileBackMoveUp->setVisible( !driveListActive); - - //aMenuPane->SetItemDimmed(EFileBrowserCmdFileOpen, emptyListBox || driveListActive || currentItemDirectory); - mFileViewMenuActions.mFileOpenDrive->setVisible( !(emptyListBox || !driveListActive)); - mFileViewMenuActions.mFileOpenDirectory->setVisible( !(emptyListBox || driveListActive || !currentItemDirectory)); - - //aMenuPane->SetItemDimmed(EFileBrowserCmdFileView, emptyListBox || listBoxSelections || currentItemDirectory || driveListActive); - //aMenuPane->SetItemDimmed(EFileBrowserCmd FileEdit, emptyListBox || listBoxSelections || currentItemDirectory || driveListActive); - //aMenuPane->SetItemDimmed(EFileBrowserCmdFileSendTo, emptyListBox || driveListActive || currentItemDirectory); - - mFileViewMenuActions.mFileNewMenu->menuAction()->setVisible(!(driveListActive || currentDriveReadOnly)); - mFileViewMenuActions.mFileDelete->setVisible(!(emptyListBox || driveListActive || currentDriveReadOnly)); - mFileViewMenuActions.mFileRename->setVisible(!(emptyListBox || driveListActive || currentDriveReadOnly || listBoxSelections)); - mFileViewMenuActions.mFileTouch->setVisible(!(emptyListBox || driveListActive || currentDriveReadOnly)); - mFileViewMenuActions.mFileProperties->setVisible(!(emptyListBox || listBoxSelections)); - // TODO mFileViewMenuActions.mFileChecksums->setVisible(!(emptyListBox || listBoxSelections || currentItemDirectory || driveListActive)); - // TODO mFileViewMenuActions.mFileSetAttributes->setVisible(!(emptyListBox || driveListActive || currentDriveReadOnly)); - // TODO mFileViewMenuActions.mFileCompress->setVisible(!(currentDriveReadOnly || emptyListBox || listBoxSelections || currentItemDirectory || driveListActive)); - // TODO mFileViewMenuActions.mFileDecompress->setVisible(!(currentDriveReadOnly || emptyListBox || listBoxSelections || currentItemDirectory || driveListActive)); - - bool currentSelected = true; //iContainer->ListBox()->View()->ItemIsSelected(iContainer->ListBox()->View()->CurrentItemIndex()); - bool allSelected = mListView->selectionModel()->selection().count() == mFileBrowserModel->rowCount(); //iContainer->ListBox()->SelectionIndexes()->Count() == iContainer->ListBox()->Model()->NumberOfItems(); - bool noneSelected = mListView->selectionModel()->selection().count() != 0; //iContainer->ListBox()->SelectionIndexes()->Count() == 0; - - //mFileViewMenuActions.mEditSnapShotToE->setVisible(driveListActive); // TODO - mFileViewMenuActions.mEditCut->setVisible(!(driveListActive || currentDriveReadOnly || emptyListBox)); - mFileViewMenuActions.mEditCopy->setVisible(!(driveListActive || emptyListBox)); - mFileViewMenuActions.mEditPaste->setVisible(!(driveListActive || emptyClipBoard || currentDriveReadOnly)); - mFileViewMenuActions.mEditCopyToFolder->setVisible(!(driveListActive || emptyListBox)); - mFileViewMenuActions.mEditMoveToFolder->setVisible(!(driveListActive || currentDriveReadOnly || emptyListBox)); - mFileViewMenuActions.mEditSelect->setVisible(!(driveListActive || currentSelected || emptyListBox)); - mFileViewMenuActions.mEditUnselect->setVisible(!(driveListActive || !currentSelected || emptyListBox)); - mFileViewMenuActions.mEditSelectAll->setVisible(!(driveListActive || allSelected || emptyListBox)); - mFileViewMenuActions.mEditUnselectAll->setVisible(!(driveListActive || noneSelected || emptyListBox)); - - // TODO mFileViewMenuActions.mViewSort->setVisible(!(!normalModeActive || driveListActive || emptyListBox)); - // TODO mFileViewMenuActions.mViewOrder->setVisible(!(!normalModeActive || driveListActive || emptyListBox)); - mFileViewMenuActions.mViewRefresh->setVisible(normalModeActive); - mFileViewMenuActions.mViewFilterEntries->setVisible(!emptyListBox); - - // 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(); - mFileViewMenuActions.mToolsDisableExtendedErrors->setVisible(noExtendedErrorsAllowed); - mFileViewMenuActions.mToolsEnableExtendedErrors->setVisible(!noExtendedErrorsAllowed); - -// bool infraRedAllowed = mEngineWrapper->FileExists(KIRAppPath); -// bool bluetoothAllowed = mEngineWrapper->FileExists(KBTAppPath); -// bool usbAllowed = mEngineWrapper->FileExists(KUSBAppPath); -// -// bool noLocalCon = !infraRedAllowed && !bluetoothAllowed && !usbAllowed; -// mFileViewMenuActions.mToolsLocalConnectivityMenu->menuAction()->setVisible(!noLocalCon); -// -// mFileViewMenuActions.mToolsLocalConnectivityActivateInfrared->setVisible(infraRedAllowed); -// mFileViewMenuActions.mToolsLocalConnectivityLaunchBTUI->setVisible(bluetoothAllowed); -// mFileViewMenuActions.mToolsLocalConnectivityLaunchUSBUI->setVisible(usbAllowed); -} - -/** - Refresh FileBrowser view - */ -void FileBrowserView::refreshList() -{ - mEngineWrapper->refreshView(); - mNaviPane->setPlainText(QString(mEngineWrapper->currentPath())); - mListView->reset(); - mListView->setModel(mFileBrowserModel); - mToolbarBackAction->setEnabled(!mEngineWrapper->isDriveListViewActive()); -} - -/** - Populate changed folder content, i.e. in practice navigation list items - */ -void FileBrowserView::populateFolderContent() -{ - // update the file browser by setting up the model with current directory as root path - if(mListView->model() == 0) { - mFileBrowserModel = new FileBrowserModel(mEngineWrapper); - mListView->setModel(mFileBrowserModel); - } - - refreshList(); - //mFileSystemModel->setFilter(mFileSystemModel->filter() | QDir::System | QDir::Hidden); - //mFileSystemModel->setRootPath(directory); - //mListView->setRootIndex(mFileSystemModel->index(directory)); -} - -// --------------------------------------------------------------------------- - -void FileBrowserView::fileOpen(HbAction *action) -{ - HbSelectionDialog *dlg = static_cast(sender()); - if(!action && dlg && dlg->selectedModelIndexes().count()){ - int selectionIndex = dlg->selectedModelIndexes().at(0).row(); - - 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 FileBrowserView::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 FileBrowserView::fileOverwrite(HbAction *action) -{ - HbSelectionDialog *dlg = static_cast(sender()); - if(!action && dlg && dlg->selectedModelIndexes().count()) { - mOverwriteOptions.queryIndex = dlg->selectedModelIndexes().at(0).row(); - 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 FileBrowserView::fileOverwritePostfix(HbAction *action) -{ - HbInputDialog *dlg = static_cast(sender()); - if (action == dlg->primaryAction()) { - 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 aTitleText of a dialog heading widget - \return None - */ -void FileBrowserView::openListDialog(const QStringList& items, const QString &aTitleText, 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); - //dlg->setDismissPolicy(HbPopup::TapOutside); - - HbLabel *title = new HbLabel(dlg); - title->setPlainText(aTitleText); - dlg->setHeadingWidget(title); - - // Launch popup and handle the user response: - dlg->open(receiver, member); -} - -// --------------------------------------------------------------------------- - -HbDialog *FileBrowserView::filePathQuery(const QString &headingText, - const QString &text, - const QString &primaryActionText, - const QString &secondaryActionText) -{ - HbDialog *dialog = new HbDialog(); - dialog->setDismissPolicy(HbPopup::TapOutside); - dialog->setTimeout(HbPopup::NoTimeout); - HbLineEdit *edit = new HbLineEdit(); - HbAction *primaryAction = new HbAction(primaryActionText); - HbAction *secondaryAction = new HbAction(secondaryActionText); - // connect signal to close pop-up if cancel selected: - connect(secondaryAction, SIGNAL(triggered()), dialog, SLOT(close())); - edit->setText(text); - dialog->setHeadingWidget(new HbLabel(headingText)); - //popup->setHeadingWidget(dlgTitle); - dialog->setContentWidget(edit); - dialog->setPrimaryAction(primaryAction); - dialog->setSecondaryAction(secondaryAction); - - return dialog; -} - -// --------------------------------------------------------------------------- - -//HbDialog *FileBrowserView::openTextQuery(const QString &headingText, -// const QString &text, -// const QString &primaryActionText, -// const QString &secondaryActionText) -//{ -// HbDialog *dialog = new HbDialog(); -// dialog->setDismissPolicy(HbPopup::TapOutside); -// dialog->setTimeout(HbPopup::NoTimeout); -// HbLineEdit *edit = new HbLineEdit(); -// HbAction *primaryAction = new HbAction(primaryActionText); -// HbAction *secondaryAction = new HbAction(secondaryActionText); -// // connect signal to close pop-up if cancel selected: -// connect(secondaryAction, SIGNAL(triggered()), dialog, SLOT(close())); -// edit->setText(text); -// dialog->setHeadingWidget(new HbLabel(headingText)); -// //popup->setHeadingWidget(dlgTitle); -// dialog->setContentWidget(edit); -// dialog->setPrimaryAction(primaryAction); -// dialog->setSecondaryAction(secondaryAction); -// -// return dialog; -//} - -// --------------------------------------------------------------------------- - -HbDialog *FileBrowserView::openNumberQuery(const QString &headingText, - const QString &text, - const QString &primaryActionText, - const QString &secondaryActionText, - int aMin/* = -99999*/, - int aMax/* = 99999*/) -{ - HbDialog *dialog = new HbDialog(); - dialog->setDismissPolicy(HbPopup::TapOutside); - dialog->setTimeout(HbPopup::NoTimeout); - HbAction *primaryAction = new HbAction(primaryActionText); - HbAction *secondaryAction = new HbAction(secondaryActionText); - // connect signal to close pop-up if cancel selected: - connect(secondaryAction, SIGNAL(triggered()), dialog, SLOT(close())); - - HbLineEdit *edit = new HbLineEdit(); - HbValidator *validator = new HbValidator(); - validator->addField(new QIntValidator(aMin, aMax, 0), text); - edit->setValidator(validator); - edit->setInputMethodHints(Qt::ImhDigitsOnly); - - //edit->setText(text); - dialog->setHeadingWidget(new HbLabel(headingText)); - //popup->setHeadingWidget(dlgTitle); - dialog->setContentWidget(edit); - dialog->setPrimaryAction(primaryAction); - dialog->setSecondaryAction(secondaryAction); - - return dialog; -} - -// --------------------------------------------------------------------------- - -void FileBrowserView::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(); -} - -QModelIndexList FileBrowserView::getSelectedItemsOrCurrentItem() -{ - QModelIndexList modelIndexList; - QItemSelectionModel *selectionIndexes = mListView->selectionModel(); - - // by default use selected items - if (selectionIndexes) { - if (selectionIndexes->hasSelection()) { - modelIndexList = mListView->selectionModel()->selectedIndexes(); - } else { // or if none selected, use the current item index - QModelIndex currentIndex = currentItemIndex(); -// if (mFileBrowserModel->rowCount(currentItemIndex) > currentItemIndex && currentItemIndex >= 0) -// { - modelIndexList.append(currentIndex); -// } - } - } - mClipBoardInUse = true; - return modelIndexList; -} - -// --------------------------------------------------------------------------- - -QModelIndex FileBrowserView::currentItemIndex() -{ - return mListView->selectionModel()->currentIndex(); -} - -// --------------------------------------------------------------------------- -// operations in File Menu -// --------------------------------------------------------------------------- - -/** - Move back/up in folder browsing history - */ -void FileBrowserView::fileBackMoveUp() -{ - mLocationChanged = true; -// if(mDirectory.length() < DRIVEPATHLENGTH) { -// // location in the root of any drive -> move back/up to root of device -// QModelIndex index = currentItemIndex(); -// const QString filePath = mFileSystemModel->filePath(index); -// qDebug() << "handleBackButton filePath" << filePath; -// mDirectory = mInitDirPath.path(); -// populateFolderContent(mDirectory); -// } -// else if(mDirectory != mInitDirPath.path()) { -// // location in any folder in any drive -> move back/up -// QDir dir(mDirectory); -// dir.cdUp(); -// const QString currentPath = dir.absolutePath(); -// mDirectory = currentPath; -// populateFolderContent(currentPath); -// mSelectedFilePath = ""; -// } else { -// // location already in the device root, no way up. -// // do nothing. -// } - mEngineWrapper->moveUpOneLevel(); - populateFolderContent(); -} - -void FileBrowserView::fileOpenDrive() -{ - // TODO make a separate function to be called from here and 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(currentIndex); - populateFolderContent(); - } else { - Notifications::showErrorNote("not selected item!"); - } -} - -void FileBrowserView::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(currentIndex); - populateFolderContent(); - } else { - Notifications::showErrorNote("not selected item!"); - } -} - -void FileBrowserView::fileSearch() -{ - // create and launch search: -// if(mSearch != 0){ -// delete mSearch; -// mSearch = 0; -// } -// mSearch = new SearchView(*this, mMainWindow, *mEngineWrapper); -// QString searchPath; -// if (mDirectory != mInitDirPath.path()) { -// searchPath = mDirectory; -// searchPath.replace("/", "\\"); -// searchPath+="\\"; -// } -// mSearch->open(searchPath); -} - -/** - Open new file dialog - */ -void FileBrowserView::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 FileBrowserView::doFileNewFile(HbAction *action) -{ - HbInputDialog *dlg = static_cast(sender()); - if (action == dlg->primaryAction()) - { - QString newFileName = dlg->value().toString(); - mEngineWrapper->createNewFile(newFileName); - refreshList(); - } -} - -/** - Open new directory dialog - */ -void FileBrowserView::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 FileBrowserView::doFileNewDirectory(HbAction *action) -{ - HbInputDialog *dlg = static_cast(sender()); - if (action == dlg->primaryAction()) - { - QString newDirectoryName = dlg->value().toString(); - mEngineWrapper->createNewDirectory(newDirectoryName); - refreshList(); - } -} - -/** - Question for Delete actually selected files - */ -void FileBrowserView::fileDelete() -{ - QModelIndexList currentSelection = getSelectedItemsOrCurrentItem(); - const QString messageFormat = "Delete %1 entries?"; - QString message = messageFormat.arg(currentSelection.count()); - HbMessageBox::question(message, this, SLOT(doFileDelete(HbAction*))); -} - -/** - Delete actually selected files - */ -void FileBrowserView::doFileDelete(HbAction* action) -{ - HbMessageBox *dlg = qobject_cast(sender()); - if (action == dlg->primaryAction()) { - QModelIndexList currentSelection = getSelectedItemsOrCurrentItem(); - mEngineWrapper->deleteItems(currentSelection); - refreshList(); - } -} - -/** - Open rename dialog for actually selected files - */ -void FileBrowserView::fileRename() -{ - QModelIndexList currentSelection = getSelectedItemsOrCurrentItem(); - mEngineWrapper->setCurrentSelection(currentSelection); - - for (int i(0), ie(currentSelection.count()); i < ie; ++i ) { - mModelIndex = currentSelection.at(i); - FileEntry entry = mEngineWrapper->getFileEntry(mModelIndex); - - QString heading = QString("Enter new name"); - HbInputDialog::getText(heading, this, SLOT(doFileRename(HbAction*)), entry.name(), scene()); - - } - mEngineWrapper->startExecutingCommands(QString("Renaming")); - refreshList(); -} - -/** - Rename actually selected files - */ -void FileBrowserView::doFileRename(HbAction *action) -{ - HbInputDialog *dlg = static_cast(sender()); - if (action == dlg->primaryAction()) - { - QString newName = dlg->value().toString(); - - if (mEngineWrapper->targetExists(mModelIndex, newName)) { - - const QString messageTemplate = QString("%1 already exists, overwrite?"); - QString message = messageTemplate.arg(newName); - HbMessageBox::question(message, this, SLOT(doFileRenameFileExist(HbAction *))); - } - if (mIsRenameAllowed) { - mEngineWrapper->rename(mModelIndex, newName); - } - } -} - -/** - Rename actually selected files - */ -void FileBrowserView::doFileRenameFileExist(HbAction *action) -{ - HbMessageBox *dlg = qobject_cast(sender()); - if (action == dlg->secondaryAction()) { - mIsRenameAllowed = false; - } -} - -/** - Touch actually selected files - */ -void FileBrowserView::fileTouch() -{ - QModelIndexList currentSelection = getSelectedItemsOrCurrentItem(); - mEngineWrapper->setCurrentSelection(currentSelection); - - 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 FileBrowserView::doFileTouch(HbAction* action) -{ - bool recurse = false; - HbMessageBox *dlg = qobject_cast(sender()); - if (action == dlg->primaryAction()) { - recurse = true; - } - mEngineWrapper->touch(recurse); - refreshList(); -} - -void FileBrowserView::fileChecksumsMD5() -{ - fileChecksums(EFileChecksumsMD5); -} - -void FileBrowserView::fileChecksumsMD2() -{ - fileChecksums(EFileChecksumsMD2); -} - -void FileBrowserView::fileChecksumsSHA1() -{ - fileChecksums(EFileChecksumsSHA1); -} - -void FileBrowserView::fileChecksums(TFileBrowserCmdFileChecksums checksumType) -{ - QModelIndex currentIndex = currentItemIndex(); - mEngineWrapper->showFileCheckSums(currentIndex, checksumType); -} - -/** - Show file properties - */ -void FileBrowserView::fileProperties() -{ - QModelIndex currentIndex = currentItemIndex(); - QStringList propertyList; - QString titleText; - mEngineWrapper->properties(currentIndex, propertyList, titleText); - openPropertyDialog(propertyList, titleText); -} - -void FileBrowserView::fileSetAttributes() -{ - -} - -// edit menu -void FileBrowserView::editSnapShotToE() -{ - -} - -/** - Set selected files into clipboard. - Selected item will be removed after paste operation. - */ -void FileBrowserView::editCut() -{ - mClipboardIndices = getSelectedItemsOrCurrentItem(); - - mEngineWrapper->clipboardCut(mClipboardIndices); - - int operations = mClipboardIndices.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 FileBrowserView::editCopy() -{ - mClipboardIndices = getSelectedItemsOrCurrentItem(); - - mEngineWrapper->clipboardCopy(mClipboardIndices); - - int operations = mClipboardIndices.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 FileBrowserView::editPaste() -{ - bool someEntryExists(false); - - // TODO Set entry items here - - someEntryExists = mEngineWrapper->isDestinationEntriesExists(mClipboardIndices, mEngineWrapper->currentPath()); - if (someEntryExists) { - fileOverwriteDialog(); - } - mEngineWrapper->clipboardPaste(mOverwriteOptions); -} - -/** - Open copy to folder new filename dialog - */ -void FileBrowserView::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 FileBrowserView::doEditCopyToFolder(HbAction *action) -{ - HbInputDialog *dlg = static_cast(sender()); - if (action == dlg->primaryAction()) - { - QString targetDir = dlg->value().toString(); - bool someEntryExists(false); - - // TODO Set entry items here - QModelIndexList currentSelection = getSelectedItemsOrCurrentItem(); - mEngineWrapper->setCurrentSelection(currentSelection); - - someEntryExists = mEngineWrapper->isDestinationEntriesExists(currentSelection, targetDir); - if (someEntryExists) { - fileOverwriteDialog(); - } - mEngineWrapper->copyToFolder(targetDir, mOverwriteOptions, false); - refreshList(); - } -} - -/** - Open move to folder new filename dialog. - */ -void FileBrowserView::editMoveToFolder() -{ - QString heading = QString("Enter new name"); - HbInputDialog::getText(heading, this, SLOT(doEditCopyToFolder(HbAction*)), mEngineWrapper->currentPath(), scene()); -} - -/** - Moves current file selection to a queried directory. - */ -void FileBrowserView::doEditMoveToFolder(HbAction *action) -{ - HbInputDialog *dlg = static_cast(sender()); - if (action == dlg->primaryAction()) - { - QString targetDir = dlg->value().toString(); - bool someEntryExists(false); - - // TODO Set entry items here - QModelIndexList currentSelection = getSelectedItemsOrCurrentItem(); - mEngineWrapper->setCurrentSelection(currentSelection); - - someEntryExists = mEngineWrapper->isDestinationEntriesExists(currentSelection, targetDir); - if (someEntryExists) { - fileOverwriteDialog(); - } - mEngineWrapper->copyToFolder(targetDir, mOverwriteOptions, true); - refreshList(); - } -} - -/** - Select current file - */ -void FileBrowserView::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 FileBrowserView::editUnselect() -{ - QItemSelectionModel *selectionModel = mListView->selectionModel(); - if (selectionModel) { - selectionModel->select(selectionModel->currentIndex(), QItemSelectionModel::Deselect); - itemHighlighted(selectionModel->currentIndex()); - } -} - -/** - Select all files - */ -void FileBrowserView::editSelectAll() -{ - QItemSelectionModel *selectionModel = mListView->selectionModel(); - if (selectionModel) { - - if (mFileBrowserModel->rowCount() > 0) { - QModelIndex firstIndex = mFileBrowserModel->index(0, 0); - QModelIndex lastIndex = mFileBrowserModel->index( (mFileBrowserModel->rowCount() - 1), 0); - - QItemSelection itemSelection(firstIndex, lastIndex); - //selectionModel->select(itemSelection, QItemSelectionModel::SelectCurrent); - selectionModel->select(itemSelection, QItemSelectionModel::Select); - } - } -} - -/** - Unselect all files - */ -void FileBrowserView::editUnselectAll() -{ - QItemSelectionModel *selectionModel = mListView->selectionModel(); - if (selectionModel) { - selectionModel->clearSelection(); - } -} - -// --------------------------------------------------------------------------- -// view menu -// --------------------------------------------------------------------------- -void FileBrowserView::viewFilterEntries() -{ - -} -void FileBrowserView::viewRefresh() -{ - refreshList(); -} - -// --------------------------------------------------------------------------- -// disk admin menu -// --------------------------------------------------------------------------- - -/** - Open old password for the selected drive dialog. - */ -void FileBrowserView::diskAdminSetDrivePassword() -{ - QModelIndex currentIndex = currentItemIndex(); - // check if the drive has a password - if (mEngineWrapper->hasDrivePassword(currentIndex)) { - QString heading = QString("Existing password"); - HbInputDialog::getText(heading, this, SLOT(diskAdminSetDrivePasswordNew(HbAction*)), QString(), scene()); - } -} - -/** - Open new password for the selected drive dialog. - */ -void FileBrowserView::diskAdminSetDrivePasswordNew(HbAction *action) -{ - HbInputDialog *dlg = static_cast(sender()); - if (action == dlg->primaryAction()) { - mOldPassword = dlg->value().toString(); - } - - QString heading = QString("New password"); - HbInputDialog::getText(heading, this, SLOT(doDiskAdminSetDrivePassword(HbAction*)), mOldPassword, scene()); -} - -/** - Set password for the selected drive. - */ -void FileBrowserView::doDiskAdminSetDrivePassword(HbAction *action) -{ - HbInputDialog *dlg = static_cast(sender()); - if (action == dlg->primaryAction()) { - QString newPassword = dlg->value().toString(); - QModelIndex currentIndex = currentItemIndex(); - mEngineWrapper->DiskAdminSetDrivePassword(currentIndex, mOldPassword, newPassword); - refreshList(); - } -} - -/** - Open Unlock the selected drive dialog. - */ -void FileBrowserView::diskAdminUnlockDrive() -{ - QModelIndex currentIndex = currentItemIndex(); - // check if the drive is locked - if (mEngineWrapper->isDriveLocked(currentIndex)) { - QString heading = QString("Existing password"); - HbInputDialog::getText(heading, this, SLOT(doDiskAdminUnlockDrive(HbAction*)), QString(), scene()); - } else { - Notifications::showInformationNote(QString("This drive is not locked")); - } -} - -/** - Unlock the selected drive. - */ -void FileBrowserView::doDiskAdminUnlockDrive(HbAction *action) -{ - HbInputDialog *dlg = static_cast(sender()); - if (action == dlg->primaryAction()) - { - QString oldPassword = dlg->value().toString(); - QModelIndex currentIndex = currentItemIndex(); - mEngineWrapper->DiskAdminUnlockDrive(currentIndex, oldPassword); - refreshList(); - } -} - -/** - Open clear password of the selected drive dialog. - */ -void FileBrowserView::diskAdminClearDrivePassword() -{ - QModelIndex currentIndex = currentItemIndex(); - // check if the drive has a password - if (mEngineWrapper->hasDrivePassword(currentIndex)) { - QString heading = QString("Existing password"); - HbInputDialog::getText(heading, this, SLOT(doDiskAdminClearDrivePassword(HbAction*)), QString(), scene()); - } else { - Notifications::showInformationNote(QString("This drive has no password")); - } -} - -/** - Clear password of the selected drive. - */ -void FileBrowserView::doDiskAdminClearDrivePassword(HbAction *action) -{ - HbInputDialog *dlg = static_cast(sender()); - if (action == dlg->primaryAction()) - { - QString oldPassword = dlg->value().toString(); - QModelIndex currentIndex = currentItemIndex(); - mEngineWrapper->DiskAdminClearDrivePassword(currentIndex, oldPassword); - refreshList(); - } -} - - -/** - Question for erase password of the selected drive - */ -void FileBrowserView::diskAdminEraseDrivePassword() -{ - // check if the drive has a password - QModelIndex currentIndex = currentItemIndex(); - if (mEngineWrapper->hasDrivePassword(currentIndex)) { - HbMessageBox::question(QString("Are you sure? All data can be lost!"), this, SLOT(doDiskAdminEraseDrivePassword(HbAction*))); - } else { - Notifications::showInformationNote(QString("This drive has no password")); - } -} - -/** - Erase password of the selected drive - */ -void FileBrowserView::doDiskAdminEraseDrivePassword(HbAction* action) -{ - HbMessageBox *dlg = qobject_cast(sender()); - if (action == dlg->primaryAction()) { - QModelIndex currentIndex = currentItemIndex(); - mEngineWrapper->DiskAdminEraseDrivePassword(currentIndex); - refreshList(); - } -} - -/** - Performs format on the selected drive - */ -void FileBrowserView::diskAdminFormatDrive() -{ - HbMessageBox::question(QString("Are you sure? All data will be lost!"), this, SLOT(doDiskAdminFormatDrive(HbAction*))); -} - -/** - Performs format on the selected drive - */ -void FileBrowserView::doDiskAdminFormatDrive(HbAction* action) -{ - HbMessageBox *dlg = qobject_cast(sender()); - if (action == dlg->primaryAction()) { - QModelIndex currentIndex = currentItemIndex(); - mEngineWrapper->DiskAdminFormatDrive(currentIndex, false); - } -} - -/** - Performs quick format on the selected drive - */ -void FileBrowserView::diskAdminQuickFormatDrive() -{ - HbMessageBox::question(QString("Are you sure? All data will be lost!"), this, SLOT(doDiskAdminQuickFormatDrive(HbAction*))); -} - -/** - Performs quick format on the selected drive - */ -void FileBrowserView::doDiskAdminQuickFormatDrive(HbAction* action) -{ - HbMessageBox *dlg = qobject_cast(sender()); - if (action == dlg->primaryAction()) { - QModelIndex currentIndex = currentItemIndex(); - mEngineWrapper->DiskAdminFormatDrive(currentIndex, true); - } -} - -/** - Checks the disk integrity on the selected drive - */ -void FileBrowserView::diskAdminCheckDisk() -{ - QModelIndex currentIndex = currentItemIndex(); - mEngineWrapper->DiskAdminCheckDisk(currentIndex); -} - -/** - Checks the selected drive for errors and corrects them - */ -void FileBrowserView::diskAdminScanDrive() -{ - HbMessageBox::question(QString("This finds errors on disk and corrects them. Proceed?"), this, SLOT(doDiskAdminScanDrive(HbAction*))); -} - -/** - Checks the selected drive for errors and corrects them - */ -void FileBrowserView::doDiskAdminScanDrive(HbAction* action) -{ - HbMessageBox *dlg = qobject_cast(sender()); - if (action == dlg->primaryAction()) { - QModelIndex currentIndex = currentItemIndex(); - mEngineWrapper->DiskAdminScanDrive(currentIndex); - refreshList(); - } -} - -/** - Open drive name dialog - */ -void FileBrowserView::diskAdminSetDriveName() -{ - QString driveName; - - // get existing drive name - QModelIndex currentIndex = currentItemIndex(); - mEngineWrapper->GetDriveName(currentIndex, driveName); - - QString heading = QString("New name"); - HbInputDialog::getText(heading, this, SLOT(doDiskAdminSetDriveName(HbAction*)), driveName, scene()); -} - -/** - Set drive name. - */ -void FileBrowserView::doDiskAdminSetDriveName(HbAction *action) -{ - HbInputDialog *dlg = static_cast(sender()); - if (action == dlg->primaryAction()) { - QString driveName = dlg->value().toString(); - - QModelIndex currentIndex = currentItemIndex(); - mEngineWrapper->DiskAdminSetDriveName(currentIndex, driveName); - - refreshList(); - } -} - -/** - Open drive volume label dialog - */ -void FileBrowserView::diskAdminSetDriveVolumeLabel() -{ - QString volumeLabel; - - // get existing drive name - QModelIndex currentIndex = currentItemIndex(); - mEngineWrapper->GetDriveVolumeLabel(currentIndex, volumeLabel); - - QString heading = QString("New volume label"); - HbInputDialog::getText(heading, this, SLOT(doDiskAdminSetDriveVolumeLabel(HbAction*)), volumeLabel, scene()); -} - -/** - Set drive volume label. - */ -void FileBrowserView::doDiskAdminSetDriveVolumeLabel(HbAction *action) -{ - HbInputDialog *dlg = static_cast(sender()); - if (action == dlg->primaryAction()) { - QString volumeLabel = dlg->value().toString(); - - QModelIndex currentIndex = currentItemIndex(); - mEngineWrapper->DiskAdminSetDriveVolumeLabel(currentIndex, volumeLabel); - - refreshList(); - } -} - -/** - Eject the selected drive - */ -void FileBrowserView::diskAdminEjectDrive() -{ - QModelIndex currentIndex = currentItemIndex(); - mEngineWrapper->DiskAdminEjectDrive(currentIndex); - refreshList(); -} - -/** - Dismount the selected drive - */ -void FileBrowserView::diskAdminDismountDrive() -{ - HbMessageBox::question(QString("Are you sure you know what are you doing?"), this, SLOT(doDiskAdminDismountDrive(HbAction*))); -} - -void FileBrowserView::doDiskAdminDismountDrive(HbAction* action) -{ - HbMessageBox *dlg = qobject_cast(sender()); - if (action == dlg->primaryAction()) { - QModelIndex currentIndex = currentItemIndex(); - mEngineWrapper->DiskAdminDismountDrive(currentIndex); - refreshList(); - } -} - -/** - Erase Master Boot Record of the selected drive - */ -void FileBrowserView::diskAdminEraseMBR() -{ - // TODO What to do with FB LITE macros? - HbMessageBox::question(QString("Are you sure? Your media driver must support this!"), this, SLOT(doDiskAdminEraseMBR(HbAction*))); -} - -void FileBrowserView::doDiskAdminEraseMBR(HbAction* action) -{ - // TODO What to do with FB LITE macros? - HbMessageBox *dlg = qobject_cast(sender()); - if (action == dlg->primaryAction()){ - HbMessageBox::question(QString("Are you really sure you know what are you doing ?!?"), this, SLOT(doDiskAdminReallyEraseMBR(HbAction*))); - } -} - -void FileBrowserView::doDiskAdminReallyEraseMBR(HbAction* action) -{ - HbMessageBox *dlg = qobject_cast(sender()); - if (action == dlg->primaryAction()) { - QModelIndex currentIndex = currentItemIndex(); - // warn if the selected drive is not detected as removable - if (mEngineWrapper->isDriveRemovable(currentIndex)) { - mEngineWrapper->DiskAdminEraseMBR(currentIndex); - refreshList(); - } else { - HbMessageBox::question(QString("Selected drive is not removable, really continue?"), this, SLOT(doDiskAdminNotRemovableReallyEraseMBR(HbAction*))); - } - } -} - -void FileBrowserView::doDiskAdminNotRemovableReallyEraseMBR(HbAction* action) -{ - HbMessageBox *dlg = qobject_cast(sender()); - if (action == dlg->primaryAction()) { - QModelIndex currentIndex = currentItemIndex(); - mEngineWrapper->DiskAdminEraseMBR(currentIndex); - refreshList(); - } - -} - -/** - Partition the selected drive - */ -void FileBrowserView::diskAdminPartitionDrive() -{ - const QString message("Are you sure? Your media driver must support this!"); - HbMessageBox::question(message, this, SLOT(diskAdminPartitionDriveProceed(HbAction *))); -} - -/** - Partition the selected drive if user is sure - */ -void FileBrowserView::diskAdminPartitionDriveProceed(HbAction *action) -{ - HbMessageBox *dlg = qobject_cast(sender()); - if (action == dlg->primaryAction()) { - const QString message("Are you really sure you know what are you doing ?!?"); - HbMessageBox::question(message, this, SLOT(diskAdminPartitionDriveReallyProceed(HbAction *))); - } -} - -/** - Partition the selected drive if user is really sure - */ -void FileBrowserView::diskAdminPartitionDriveReallyProceed(HbAction *action) -{ - HbMessageBox *dlg = qobject_cast(sender()); - if (action == dlg->primaryAction()) { - QModelIndex currentIndex = currentItemIndex(); - mEraseMBR = false; - // warn if the selected drive is not detected as removable - if (mEngineWrapper->isDriveRemovable(currentIndex)) { - mProceed = true; - } else { - const QString message("Selected drive is not removable, really continue?"); - HbMessageBox::question(message, this, SLOT(diskAdminPartitionDriveIsNotRemovable(HbAction *))); - } - - if (mProceed) { - // query if erase mbr - mEraseMBR = false; - - QString message("Erase MBR first (normally needed)?"); - HbMessageBox::question(message, this, SLOT(diskAdminPartitionDriveEraseMbr(HbAction *))); - - // TODO use HbListDialog - QStringList list; - list << "1" << "2" << "3" << "4"; - openListDialog(list, QString("Partitions?"), this, SLOT(diskAdminPartitionDriveGetCount(HbAction*))); - } - } -} - -/** - Store result of user query about proceeding when drive is not removable. - */ -void FileBrowserView::diskAdminPartitionDriveIsNotRemovable(HbAction *action) -{ - HbMessageBox *dlg = qobject_cast(sender()); - if (action == dlg->primaryAction()) { - mProceed = true; - } else { - mProceed = false; - } -} - -/** - Store result of user query about erase MBR - */ -void FileBrowserView::diskAdminPartitionDriveEraseMbr(HbAction *action) -{ - HbMessageBox *dlg = qobject_cast(sender()); - if (action == dlg->primaryAction()) { - mEraseMBR = true; - } -} - -/** - Partition the selected drive - */ -void FileBrowserView::diskAdminPartitionDriveGetCount(HbAction* action) -{ - HbSelectionDialog *dlg = static_cast(sender()); - if(!action && dlg && dlg->selectedItems().count()){ - int selectionIndex = dlg->selectedItems().at(0).toInt(); - QModelIndex currentIndex = currentItemIndex(); - int amountOfPartitions = selectionIndex + 1; - mEngineWrapper->DiskAdminPartitionDrive(currentIndex, mEraseMBR, amountOfPartitions); - refreshList(); - } -} - -// --------------------------------------------------------------------------- -// tools menu -// --------------------------------------------------------------------------- -void FileBrowserView::toolsAllAppsToTextFile() -{ - -} -void FileBrowserView::toolsAllFilesToTextFile() -{ - -} -void FileBrowserView::toolsAvkonIconCacheEnable() -{ - -} -void FileBrowserView::toolsAvkonIconCacheDisable() -{ - -} - -/** - Disable extended errors - */ -void FileBrowserView::toolsDisableExtendedErrors() -{ - mEngineWrapper->ToolsSetErrRd(false); -} - -void FileBrowserView::toolsDumpMsgStoreWalk() -{ - -} -void FileBrowserView::toolsEditDataTypes() -{ - -} - -/** - Enable extended errors - */ -void FileBrowserView::toolsEnableExtendedErrors() -{ - mEngineWrapper->ToolsSetErrRd(true); -} - -/** - Open simulate leave dialog - */ -void FileBrowserView::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 FileBrowserView::doToolsErrorSimulateLeave(HbAction *action) -{ - HbInputDialog *dlg = static_cast(sender()); - if (action == dlg->primaryAction()) { - bool ok; - int leaveCode = dlg->value().toString().toInt(&ok); - if (leaveCode != 0 || ok) { - mEngineWrapper->ToolsErrorSimulateLeave(leaveCode); - } - } -} - -/** - Open simulate panic dialog. - */ -void FileBrowserView::toolsErrorSimulatePanic() -{ - mPanicCategory = QString ("Test Category"); - QString heading = QString("Panic category"); - HbInputDialog::getText(heading, this, SLOT(doToolsErrorSimulatePanicCode(HbAction*)), mPanicCategory, scene()); -} - -/** - Simulate panic. - */ -void FileBrowserView::doToolsErrorSimulatePanicCode(HbAction *action) -{ - HbInputDialog *dlg = static_cast(sender()); - if (action == dlg->primaryAction()) { - mPanicCategory = dlg->value().toString(); - int panicCode(555); - QString heading = QString("Panic code"); - HbInputDialog::getInteger(heading, this, SLOT(doToolsErrorSimulatePanic(HbAction*)), panicCode, scene()); - } -} - -/** - Simulate panic. - */ -void FileBrowserView::doToolsErrorSimulatePanic(HbAction *action) -{ - HbInputDialog *dlg = static_cast(sender()); - if (action == dlg->primaryAction()) { - bool ok; - int panicCode = dlg->value().toInt(&ok); - if (panicCode != 0 || ok) { - mEngineWrapper->ToolsErrorSimulatePanic(mPanicCategory, panicCode); - } - } -} - -/** - Open simulate exception dialog. - */ -void FileBrowserView::toolsErrorSimulateException() -{ - int exceptionCode = 0; - QString heading = QString("Exception code"); - HbInputDialog::getInteger(heading, this, SLOT(doToolsErrorSimulateException(HbAction*)), exceptionCode, scene()); -} - -/** - Simulate exception. - */ -void FileBrowserView::doToolsErrorSimulateException(HbAction *action) -{ - HbInputDialog *dlg = static_cast(sender()); - if (action == dlg->primaryAction()) { - bool ok; - int exceptionCode = dlg->value().toInt(&ok); - if (exceptionCode != 0 || ok) { - mEngineWrapper->ToolsErrorSimulateException(exceptionCode); - } - } -} - -// void FileBrowserView::toolsLocalConnectivityActivateInfrared() -//{ -// -//} -// void FileBrowserView::toolsLocalConnectivityLaunchBTUI() -//{ -// -//} -// void FileBrowserView::toolsLocalConnectivityLaunchUSBUI() -//{ -// -//} -void FileBrowserView::toolsMessageInbox() -{ - -} -void FileBrowserView::toolsMessageDrafts() -{ - -} -void FileBrowserView::toolsMessageSentItems() -{ - -} -void FileBrowserView::toolsMessageOutbox() -{ - -} -void FileBrowserView::toolsMemoryInfo() -{ - -} -void FileBrowserView::toolsSecureBackStart() -{ - -} -void FileBrowserView::toolsSecureBackRestore() -{ - -} -void FileBrowserView::toolsSecureBackStop() -{ - -} - -/** - Open debug mask dialog - */ -void FileBrowserView::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 FileBrowserView::toolsSetDebugMask(HbAction *action) -{ - HbInputDialog *dlg = static_cast(sender()); - if(action == dlg->primaryAction()) - { - 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 FileBrowserView::toolsShowOpenFilesHere() -{ - -} - -// --------------------------------------------------------------------------- -// main menu items -// --------------------------------------------------------------------------- -void FileBrowserView::selectionModeChanged() -{ - if (mFileViewMenuActions.mSelection->isChecked()) { - activateSelectionMode(); - } else { - deActivateSelectionMode(); - } -} - -/** - Show about note - */ -void FileBrowserView::about() -{ - Notifications::showAboutNote(); -} - -// --------------------------------------------------------------------------- -// End of operations -// --------------------------------------------------------------------------- - -// --------------------------------------------------------------------------- - -/** - Item is selected from list when selection mode is activated from menu - */ -void FileBrowserView::selectionChanged(const QItemSelection &/*selected*/, const QItemSelection &/*deselected*/) -{ - QItemSelectionModel *selectionModel = mListView->selectionModel(); - itemHighlighted(selectionModel->currentIndex()); -} - -/** - An item is highlighted = single-clicked from file/folder list. - */ -void FileBrowserView::itemHighlighted(const QModelIndex& index) -{ - Q_UNUSED(index) -// mItemHighlighted = true; -// mFileInfo = mFileSystemModel->fileInfo(index); -} - - -/** - 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 FileBrowserView::activated(const QModelIndex& index) -{ - if (mFileBrowserModel) { - if (mEngineWrapper->isDriveListViewActive()) { - mEngineWrapper->moveDownToDirectory(index); - populateFolderContent(); - } else if (mEngineWrapper->getFileEntry(index).isDir()) { - // populate new content of changed navigation view. - // mLocationChanged = true; - // mDirectory = filePath; - mEngineWrapper->moveDownToDirectory(index); - populateFolderContent(); - } else { // file item - // mSelectedFilePath = filePath; - FileEntry fileEntry = mEngineWrapper->getFileEntry(index); - 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 FileBrowserView::activateSelectionMode() -{ - QString path; - disconnect(mListView, SIGNAL(activated(QModelIndex)), this, SLOT(activated(QModelIndex))); - mListView->setSelectionMode(HbListView::MultiSelection); - -// if (mDirectory != mInitDirPath.path()) { -// QDir dir(mDirectory); -// path = mDirectory; -// QStringList dirs = dir.entryList(QDir::AllDirs | QDir::System | QDir::Hidden); -// if (dirs.count() > 0) { -// path.append("\\" + dirs.at(0) + "\\"); -// } -// } else { -// path = ("C:\\"); -// } -// 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 FileBrowserView::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; -} - -// ---------------------------------------------------------------------------