diff options
author | Jan Dalheimer <jan@dalheimer.de> | 2014-01-06 10:01:40 +0100 |
---|---|---|
committer | Jan Dalheimer <jan@dalheimer.de> | 2014-01-06 10:01:40 +0100 |
commit | 093143cfef8959261fc4f66a65d2ecc4cdc2e23c (patch) | |
tree | f24e18cefe53dc5074db0db8932a4749eaf6ceae /gui/MainWindow.cpp | |
parent | fcb8612c10ae1bb1d2d8883a762979e9bca1f31e (diff) | |
download | PrismLauncher-093143cfef8959261fc4f66a65d2ecc4cdc2e23c.tar.gz PrismLauncher-093143cfef8959261fc4f66a65d2ecc4cdc2e23c.tar.bz2 PrismLauncher-093143cfef8959261fc4f66a65d2ecc4cdc2e23c.zip |
Fix instances getting deselected after FTB instances are loaded (or whenever the model is reset)
Diffstat (limited to 'gui/MainWindow.cpp')
-rw-r--r-- | gui/MainWindow.cpp | 37 |
1 files changed, 19 insertions, 18 deletions
diff --git a/gui/MainWindow.cpp b/gui/MainWindow.cpp index 968fecb7..905d14cf 100644 --- a/gui/MainWindow.cpp +++ b/gui/MainWindow.cpp @@ -289,24 +289,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWi this, &MainWindow::notificationsChanged); } - const QString currentInstanceId = MMC->settings()->get("SelectedInstance").toString(); - if (!currentInstanceId.isNull()) - { - const QModelIndex index = MMC->instances()->getInstanceIndexById(currentInstanceId); - if (index.isValid()) - { - const QModelIndex mappedIndex = proxymodel->mapFromSource(index); - view->setCurrentIndex(mappedIndex); - } - else - { - view->setCurrentIndex(proxymodel->index(0, 0)); - } - } - else - { - view->setCurrentIndex(proxymodel->index(0, 0)); - } + setSelectedInstanceById(MMC->settings()->get("SelectedInstance").toString()); // removing this looks stupid view->setFocus(); @@ -788,6 +771,20 @@ void MainWindow::updateInstanceToolIcon(QString new_icon) ui->actionChangeInstIcon->setIcon(MMC->icons()->getIcon(m_currentInstIcon)); } +void MainWindow::setSelectedInstanceById(const QString &id) +{ + QModelIndex selectionIndex = proxymodel->index(0, 0); + if (!id.isNull()) + { + const QModelIndex index = MMC->instances()->getInstanceIndexById(id); + if (index.isValid()) + { + selectionIndex = proxymodel->mapFromSource(index); + } + } + view->selectionModel()->setCurrentIndex(selectionIndex, QItemSelectionModel::ClearAndSelect); +} + void MainWindow::on_actionChangeInstGroup_triggered() { if (!m_selectedInstance) @@ -1274,12 +1271,16 @@ void MainWindow::instanceChanged(const QModelIndex ¤t, const QModelIndex & void MainWindow::selectionBad() { + // start by reseting everything... m_selectedInstance = nullptr; statusBar()->clearMessage(); ui->instanceToolBar->setEnabled(false); renameButton->setText(tr("Rename Instance")); updateInstanceToolIcon("infinity"); + + // ...and then see if we can enable the previously selected instance + setSelectedInstanceById(MMC->settings()->get("SelectedInstance").toString()); } void MainWindow::on_actionEditInstNotes_triggered() |