diff options
-rw-r--r-- | filesystemwidget.cpp | 3 | ||||
-rw-r--r-- | filesystemwidget.h | 1 | ||||
-rw-r--r-- | fileview.cpp | 9 | ||||
-rw-r--r-- | fileview.h | 1 |
4 files changed, 14 insertions, 0 deletions
diff --git a/filesystemwidget.cpp b/filesystemwidget.cpp index 5dbc612..779db2e 100644 --- a/filesystemwidget.cpp +++ b/filesystemwidget.cpp @@ -116,6 +116,7 @@ FilesystemWidget::FilesystemWidget(QWidget *parent) : QWidget(parent), mClipboar connect(mDirEdit, SIGNAL(returnPressed()), this, SLOT(directoryEdited())); connect(mFileView, SIGNAL(delFiles()), this, SLOT(deleteFiles())); connect(mFileView, SIGNAL(editorClosed(QModelIndex)), this, SLOT(fileEditorClosed(QModelIndex))); + connect(this, SIGNAL(upSelected(QString)), mFileView, SLOT(selectItem(QString))); QVBoxLayout *mainLayout = new QVBoxLayout; QSplitter *splitter = new QSplitter; @@ -229,6 +230,8 @@ void FilesystemWidget::parentDir(){ if(idx.parent().isValid()){ mDirView->setCurrentIndex(idx.parent()); } + QString sel = idx.data().toString(); + emit upSelected(sel); } void FilesystemWidget::goBack(){ diff --git a/filesystemwidget.h b/filesystemwidget.h index 82c3b04..0284fb6 100644 --- a/filesystemwidget.h +++ b/filesystemwidget.h @@ -47,6 +47,7 @@ class FilesystemWidget : public QWidget { void windowTitle(const QString &); void statusbarMessage(const QString &); void mounted(bool); + void upSelected(const QString &); public slots: void directoryChanged(const QModelIndex &selected, const QModelIndex &); diff --git a/fileview.cpp b/fileview.cpp index 7280696..72ebf7f 100644 --- a/fileview.cpp +++ b/fileview.cpp @@ -221,6 +221,15 @@ void FileView::properties(){ fpd.exec(); } +void FileView::selectItem(const QString &item){ + QModelIndex start = mProxy->index(0, 0); + QModelIndexList items = mProxy->match(start, Qt::DisplayRole, item, 1, Qt::MatchExactly | Qt::MatchWrap); + if(!items.isEmpty()){ + selectionModel()->select(items.at(0), QItemSelectionModel::Rows | QItemSelectionModel::Select); + scrollTo(items.at(0)); + } +} + void FileView::saveSelection(){ mSelectedFiles.clear(); QModelIndexList selected = selectionModel()->selectedRows(SmDirModel::Name); @@ -50,6 +50,7 @@ class FileView : public SmTreeView { void restoreSelection(); void selectedFilesChanged(); void properties(); + void selectItem(const QString &item); protected slots: virtual void closeEditor(QWidget *editor, QAbstractItemDelegate::EndEditHint hint); |