From 22d5bcbcb79dea84e7aab4e2032ae3638fbca581 Mon Sep 17 00:00:00 2001 From: Arno Date: Fri, 16 Sep 2016 11:07:37 +0200 Subject: Always select and set current first row --- actorwidget.h | 1 + filewidget.cpp | 10 +++++++++- filewidget.h | 1 + shemovcleaner.cpp | 6 ++++-- torrentwidget.cpp | 7 +++++++ torrentwidget.h | 1 + 6 files changed, 23 insertions(+), 3 deletions(-) diff --git a/actorwidget.h b/actorwidget.h index b9819a3..ee73535 100644 --- a/actorwidget.h +++ b/actorwidget.h @@ -26,6 +26,7 @@ class ActorWidget : public QWidget { void setProgressBar(QProgressBar *p) { mProgress = p; } QMenuBar *menuBar() { return mMenuBar; } QToolBar *toolBar() { return mToolBar; } + QTreeView *actorView() { return mActorView; } public slots: void gatherData(); diff --git a/filewidget.cpp b/filewidget.cpp index db3a2c7..6587185 100644 --- a/filewidget.cpp +++ b/filewidget.cpp @@ -278,7 +278,7 @@ void FileWidget::gatherData(){ } readHeaderData(); qApp->restoreOverrideCursor(); - fileSelectionChanged(QItemSelection(), QItemSelection()); + selectFirst(); emit statusMessage(QString(tr("Gathering data... DONE!"))); } @@ -417,6 +417,14 @@ void FileWidget::paste(){ } } +void FileWidget::selectFirst(){ + if(mModel->rowCount() > 0){ + QModelIndex idx = mModel->index(0, 0); + mFileView->setCurrentIndex(idx); + mFileView->selectionModel()->select(idx, QItemSelectionModel::SelectCurrent | QItemSelectionModel::Rows); + } +} + void FileWidget::fileSelectionChanged(const QItemSelection &selected, const QItemSelection &deselected){ Q_UNUSED(selected); diff --git a/filewidget.h b/filewidget.h index b2060fb..b9133e2 100644 --- a/filewidget.h +++ b/filewidget.h @@ -55,6 +55,7 @@ class FileWidget : public QWidget { void copy(); void cut(); void paste(); + void selectFirst(); protected: virtual void keyPressEvent(QKeyEvent *e); diff --git a/shemovcleaner.cpp b/shemovcleaner.cpp index 53cd273..4bc3360 100644 --- a/shemovcleaner.cpp +++ b/shemovcleaner.cpp @@ -70,6 +70,8 @@ ShemovCleaner::ShemovCleaner(QWidget *parent, Qt::WindowFlags f) : QMainWindow(p restoreGeometry(s.value("geometry").toByteArray()); mTorrentTab->torrentFileView()->setFocus(); readSettings(); + mTorrentTab->selectFirst(); + mFileTab->selectFirst(); } ShemovCleaner::~ShemovCleaner(){ @@ -98,11 +100,11 @@ void ShemovCleaner::configure(){ void ShemovCleaner::tabChanged(int idx){ if(idx == Torrents){ - mTorrentTab->fileSelectionChanged(QItemSelection(), QItemSelection()); setDuration("00:00:00"); }else if(idx == Videos){ - mFileTab->fileSelectionChanged(QItemSelection(), QItemSelection()); mFileTab->fileView()->setFocus(); + }else if(idx == Actors){ + mActorTab->actorView()->setFocus(); } } diff --git a/torrentwidget.cpp b/torrentwidget.cpp index f7b51df..bb392d0 100644 --- a/torrentwidget.cpp +++ b/torrentwidget.cpp @@ -326,6 +326,13 @@ void TorrentWidget::fileSelectionChanged(const QItemSelection &selected, const Q emit selectionCountChanged(msg); } +void TorrentWidget::selectFirst(){ + if(mModel->rowCount() > 0){ + QModelIndex idx = mModel->index(0, 0); + mFileView->selectionModel()->select(idx, QItemSelectionModel::SelectCurrent | QItemSelectionModel::Rows); + } +} + void TorrentWidget::readSettings(){ QSettings s; QString dir = s.value("searchdir", QDir::toNativeSeparators(QDir::homePath())).toString(); diff --git a/torrentwidget.h b/torrentwidget.h index 00b4c35..075e6c5 100644 --- a/torrentwidget.h +++ b/torrentwidget.h @@ -43,6 +43,7 @@ class TorrentWidget : public QWidget { void torrentInfo(); void searchFile(); void fileSelectionChanged(const QItemSelection &selected, const QItemSelection &deselected); + void selectFirst(); protected: virtual void keyPressEvent(QKeyEvent *e); -- cgit v1.2.3-70-g09d2