summaryrefslogtreecommitdiffstats
path: root/src/dialog.cpp
diff options
context:
space:
mode:
authorJonathan Bauer2015-11-02 15:45:27 +0100
committerJonathan Bauer2015-11-02 15:45:27 +0100
commitf1f14984351eeba477b92291ee26e42e5f1cdc72 (patch)
tree5030c3834ab70d77b5167ba9d48c28e3193bf7bc /src/dialog.cpp
parentNULL check on the SessionItem.... (diff)
downloadvmchooser2-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.cpp17
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() {