diff options
-rw-r--r-- | filesystemwidget.cpp | 7 | ||||
-rw-r--r-- | filesystemwidget.h | 1 | ||||
-rw-r--r-- | shemov.cpp | 3 |
3 files changed, 10 insertions, 1 deletions
diff --git a/filesystemwidget.cpp b/filesystemwidget.cpp index 60c2d78..5568db0 100644 --- a/filesystemwidget.cpp +++ b/filesystemwidget.cpp @@ -375,7 +375,7 @@ void FilesystemWidget::readSettings(){ QModelIndex diridx = mModel->index(selectedDir); if(diridx.isValid()){ QModelIndex pidx = mDirProxy->mapFromSource(diridx); - mDirView->selectionModel()->setCurrentIndex(pidx, QItemSelectionModel::ClearAndSelect); + mDirView->selectionModel()->setCurrentIndex(pidx, QItemSelectionModel::ClearAndSelect); } } bool expensiveOps = s.value("ui/expensiveops", true).toBool(); @@ -513,6 +513,11 @@ void FilesystemWidget::selectUnpackDir(){ } } +void FilesystemWidget::centerCurrent(){ + QModelIndex curIdx = mDirView->currentIndex(); + mDirView->scrollTo(curIdx, QAbstractItemView::PositionAtCenter); +} + void FilesystemWidget::deleteRecursive(const QFileInfo &start){ if(start.isDir()){ QDir curDir = QDir(start.absoluteFilePath());; diff --git a/filesystemwidget.h b/filesystemwidget.h index 0284fb6..efff13a 100644 --- a/filesystemwidget.h +++ b/filesystemwidget.h @@ -70,6 +70,7 @@ class FilesystemWidget : public QWidget { void preview(); void unpack(); void selectUnpackDir(); + void centerCurrent(); private slots: void dirExpanded(const QModelIndex &idx); @@ -144,6 +144,9 @@ SheMov::SheMov(QWidget *parent, Qt::WindowFlags flags) : QMainWindow(parent, fla mArchiveBrowser->readConfig(); readSettings(); Helper::centerWidget(picViewer); + // craptastic... We can't center until it's painted, + // hence this indirection :( + mFSWidget->centerCurrent(); } void SheMov::closeEvent(QCloseEvent *event){ |