summaryrefslogtreecommitdiff
path: root/src/instancemanagerdialog.cpp
diff options
context:
space:
mode:
authorisanae <14251494+isanae@users.noreply.github.com>2020-07-26 21:07:13 -0400
committerisanae <14251494+isanae@users.noreply.github.com>2020-11-03 11:39:06 -0500
commita97638249de0a9a4c17dc28805c35df489a64e26 (patch)
tree3d1beec5e287b2fff45012beef3e62ec24fa08ea /src/instancemanagerdialog.cpp
parentb1e681e129d87cb2f8aab89a734ab7b185975bcd (diff)
moved switch to instance to InstanceManager
double-click an instance to switch to it (disabled for now, not sure I want that)
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());