summaryrefslogtreecommitdiff
path: root/src/instancemanagerdialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/instancemanagerdialog.cpp')
-rw-r--r--src/instancemanagerdialog.cpp27
1 files changed, 24 insertions, 3 deletions
diff --git a/src/instancemanagerdialog.cpp b/src/instancemanagerdialog.cpp
index 26e8eae1..a038d3c2 100644
--- a/src/instancemanagerdialog.cpp
+++ b/src/instancemanagerdialog.cpp
@@ -92,6 +92,7 @@ InstanceManagerDialog::InstanceManagerDialog(
connect(ui->createNew, &QPushButton::clicked, [&]{ createNew(); });
connect(ui->list, &QListWidget::itemSelectionChanged, [&]{ onSelection(); });
+ //connect(ui->list, &QListWidget::itemActivated, [&]{ openSelectedInstance(); });
}
InstanceManagerDialog::~InstanceManagerDialog() = default;
@@ -106,14 +107,24 @@ void InstanceManagerDialog::select(std::size_t i)
fill(*ii);
}
+void InstanceManagerDialog::openSelectedInstance()
+{
+ const auto i = singleSelection();
+ if (i == NoSelection) {
+ return;
+ }
+
+ InstanceManager::instance().switchToInstance(m_instances[i]->name());
+}
+
void InstanceManagerDialog::onSelection()
{
- const auto sel = ui->list->selectionModel()->selectedIndexes();
- if (sel.size() != 1) {
+ const auto i = singleSelection();
+ if (i == NoSelection) {
return;
}
- select(static_cast<std::size_t>(sel[0].row()));
+ select(i);
}
void InstanceManagerDialog::createNew()
@@ -122,6 +133,16 @@ void InstanceManagerDialog::createNew()
dlg.exec();
}
+std::size_t InstanceManagerDialog::singleSelection() const
+{
+ const auto sel = ui->list->selectionModel()->selectedIndexes();
+ if (sel.size() != 1) {
+ return NoSelection;
+ }
+
+ return static_cast<std::size_t>(sel[0].row());
+}
+
void InstanceManagerDialog::fill(const InstanceInfo& ii)
{
ui->name->setText(ii.name());