From db95f01cdb220842e031030df86ee56724e72f27 Mon Sep 17 00:00:00 2001 From: Arno Date: Fri, 22 Mar 2013 04:14:56 +0100 Subject: Remember selections on FileModel reset Since can reset the FileView through a time, remember the selections on reset and restore them after. The Timer is stopped when an item is being edited. --- filesystemwidget.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'filesystemwidget.cpp') diff --git a/filesystemwidget.cpp b/filesystemwidget.cpp index 5f462e8..28822fd 100644 --- a/filesystemwidget.cpp +++ b/filesystemwidget.cpp @@ -23,6 +23,7 @@ #include #include #include +#include #include "filesystemwidget.h" #include "filesystemdirproxy.h" @@ -65,16 +66,20 @@ FilesystemWidget::FilesystemWidget(QWidget *parent) : QWidget(parent), mClipboar mFileProxy = new FilesystemFileProxy; mFileProxy->setSourceModel(mFileModel); + mFileView->setModel(mFileProxy); mFileView->setSortingEnabled(true); mFileView->sortByColumn(0, Qt::AscendingOrder); mFileView->setItemsExpandable(false); - mFileView->setSelectionMode(QAbstractItemView::ExtendedSelection); - mFileView->setEditTriggers(QAbstractItemView::NoEditTriggers); + mFileView->setSelectionMode(QAbstractItemView::ExtendedSelection); + mFileView->setSelectionBehavior(QAbstractItemView::SelectRows); + mFileView->setAlternatingRowColors(true); mFileView->setColumnHidden(static_cast(SmDirModel::FullPath), true); mFileProxy->setDynamicSortFilter(true); connect(mFileView->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)), mFileView, SLOT(selectedFilesChanged())); + connect(mFileModel, SIGNAL(modelAboutToBeReset()), mFileView, SLOT(saveSelection())); + connect(mFileModel, SIGNAL(modelReset()), mFileView, SLOT(restoreSelection())); mPicViewer = SmGlobals::instance()->pictureViewer(); @@ -281,6 +286,7 @@ void FilesystemWidget::fromClipboard(){ } void FilesystemWidget::renameFile(){ + mFileModel->refresTimer()->stop(); QModelIndex curIdx = mFileView->currentIndex(); if(curIdx.data().toString() == ".."){ return; -- cgit v1.2.3-70-g09d2