diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/dialog.cpp | 17 |
1 files changed, 12 insertions, 5 deletions
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<SessionTreeItem*>(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() { |