diff options
author | Jonathan Bauer | 2015-11-02 15:45:27 +0100 |
---|---|---|
committer | Jonathan Bauer | 2015-11-02 15:45:27 +0100 |
commit | f1f14984351eeba477b92291ee26e42e5f1cdc72 (patch) | |
tree | 5030c3834ab70d77b5167ba9d48c28e3193bf7bc /src/dialog.cpp | |
parent | NULL check on the SessionItem.... (diff) | |
download | vmchooser2-f1f14984351eeba477b92291ee26e42e5f1cdc72.tar.gz vmchooser2-f1f14984351eeba477b92291ee26e42e5f1cdc72.tar.xz vmchooser2-f1f14984351eeba477b92291ee26e42e5f1cdc72.zip |
fix broken auto seletion
Diffstat (limited to 'src/dialog.cpp')
-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() { |