summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjanrupf <werbung.janrupf@t-online.de>2019-06-17 16:13:52 +0200
committerPetr Mrázek <peterix@gmail.com>2019-06-21 22:38:26 +0200
commit306b98edacab8d1ad819d1b66fa54789b3e0bdea (patch)
tree54a78d6634f1ed2f3713bad31b8816bfc25ab75b
parentce12f1a734e08f1653aa482279a4dc6b6f3667eb (diff)
downloadMultiMC-306b98edacab8d1ad819d1b66fa54789b3e0bdea.tar
MultiMC-306b98edacab8d1ad819d1b66fa54789b3e0bdea.tar.gz
MultiMC-306b98edacab8d1ad819d1b66fa54789b3e0bdea.tar.lz
MultiMC-306b98edacab8d1ad819d1b66fa54789b3e0bdea.tar.xz
MultiMC-306b98edacab8d1ad819d1b66fa54789b3e0bdea.zip
GH-2592 Autoselect newly created instances
-rw-r--r--api/logic/InstanceList.cpp1
-rw-r--r--api/logic/InstanceList.h1
-rw-r--r--application/MainWindow.cpp8
-rw-r--r--application/MainWindow.h2
4 files changed, 12 insertions, 0 deletions
diff --git a/api/logic/InstanceList.cpp b/api/logic/InstanceList.cpp
index afbebc25..dc367e30 100644
--- a/api/logic/InstanceList.cpp
+++ b/api/logic/InstanceList.cpp
@@ -819,6 +819,7 @@ bool InstanceList::commitStagedInstance(const QString& path, const QString& inst
instanceSet.insert(instID);
m_groups.insert(groupName);
emit instancesChanged();
+ emit instanceAdded(instID);
}
saveGroupList();
return true;
diff --git a/api/logic/InstanceList.h b/api/logic/InstanceList.h
index 50b44738..5f92a924 100644
--- a/api/logic/InstanceList.h
+++ b/api/logic/InstanceList.h
@@ -129,6 +129,7 @@ public:
signals:
void dataIsInvalid();
void instancesChanged();
+ void instanceAdded(QString instanceId);
void groupsChanged(QSet<QString> groups);
public slots:
diff --git a/application/MainWindow.cpp b/application/MainWindow.cpp
index bec57c0d..ca98130e 100644
--- a/application/MainWindow.cpp
+++ b/application/MainWindow.cpp
@@ -702,6 +702,9 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new MainWindow
// model reset -> selection is invalid. All the instance pointers are wrong.
connect(MMC->instances().get(), &InstanceList::dataIsInvalid, this, &MainWindow::selectionBad);
+ // handle newly added instances
+ connect(MMC->instances().get(), &InstanceList::instanceAdded, this, &MainWindow::instanceAdded);
+
// When the global settings page closes, we want to know about it and update our state
connect(MMC, &MultiMC::globalSettingsClosed, this, &MainWindow::globalSettingsClosed);
@@ -1836,6 +1839,11 @@ void MainWindow::instanceChanged(const QModelIndex &current, const QModelIndex &
}
}
+void MainWindow::instanceAdded(QString id)
+{
+ setSelectedInstanceById(id);
+}
+
void MainWindow::instanceDataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight)
{
auto current = view->selectionModel()->currentIndex();
diff --git a/application/MainWindow.h b/application/MainWindow.h
index 7691d50e..ea5b9847 100644
--- a/application/MainWindow.h
+++ b/application/MainWindow.h
@@ -152,6 +152,8 @@ private slots:
void instanceChanged(const QModelIndex &current, const QModelIndex &previous);
+ void instanceAdded(QString id);
+
void instanceDataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight);
void selectionBad();