From f1f14984351eeba477b92291ee26e42e5f1cdc72 Mon Sep 17 00:00:00 2001 From: Jonathan Bauer Date: Mon, 2 Nov 2015 15:45:27 +0100 Subject: fix broken auto seletion --- src/dialog.cpp | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'src/dialog.cpp') diff --git a/src/dialog.cpp b/src/dialog.cpp index cccf3b4..7cf8cd1 100644 --- a/src/dialog.cpp +++ b/src/dialog.cpp @@ -207,8 +207,9 @@ bool Dialog::selectSession(const QString& name) { onTabButtonChanged(tab); // set selection ui->treeView->selectionModel()->clearSelection(); - ui->treeView->selectionModel() - ->setCurrentIndex(index, QItemSelectionModel::ClearAndSelect); + ui->treeView->selectionModel()->clear(); + ui->treeView->selectionModel()->select(index, QItemSelectionModel::Select); + ui->treeView->selectionModel()->setCurrentIndex(index, QItemSelectionModel::Select); return true; } } @@ -218,14 +219,16 @@ bool Dialog::selectSession(const QString& name) { } void Dialog::selectPreviousSession() { - if (!ChooserSettings::getSetting("last-session").isEmpty()) { + if (ChooserSettings::getSetting("last-session").isEmpty()) { + this->onTabButtonChanged(2); + } else { ui->treeView->clearSelection(); if (!selectSession(ChooserSettings::getSetting("last-session"))) { // could not find last session, change to last used tab this->onTabButtonChanged(ChooserSettings::getSetting("last-tab").toInt()); } } - setListModel(this->model_[this->activeTab_]); + //setListModel(this->model_[this->activeTab_]); } void Dialog::startSession(const QString& name) { @@ -347,6 +350,7 @@ void Dialog::addSessionsAfterDownload(QNetworkReply* reply) { void Dialog::treeView_selectionChanged(const QModelIndex& current, const QModelIndex&) { SessionTreeItem* item = static_cast(current.internalPointer()); + if (item == NULL) return; const Session* s(item->session()); if (!s) { @@ -421,8 +425,11 @@ void Dialog::onTabButtonChanged(int tab) { // load the new list setListModel(model_[tab]); this->activeTab_ = tab; + ui->treeView->selectionModel()->clear(); + ui->treeView->selectionModel()->clearSelection(); ui->treeView->selectionModel()->select(ui->treeView->model()->index(0, 0, ui->treeView->rootIndex()), QItemSelectionModel::Select); - treeView_selectionChanged(ui->treeView->model()->index(oldRow_, 0, ui->treeView->rootIndex()), ui->treeView->model()->index(0, 0, ui->treeView->rootIndex())); + ui->treeView->selectionModel()->setCurrentIndex(ui->treeView->model()->index(0, 0, ui->treeView->rootIndex()), QItemSelectionModel::Select); + //treeView_selectionChanged(ui->treeView->model()->index(oldRow_, 0, ui->treeView->rootIndex()), ui->treeView->model()->index(0, 0, ui->treeView->rootIndex())); } void Dialog::on_filterEdit_textChanged() { -- cgit v1.2.3-55-g7522