From a97638249de0a9a4c17dc28805c35df489a64e26 Mon Sep 17 00:00:00 2001 From: isanae <14251494+isanae@users.noreply.github.com> Date: Sun, 26 Jul 2020 21:07:13 -0400 Subject: moved switch to instance to InstanceManager double-click an instance to switch to it (disabled for now, not sure I want that) --- src/instancemanagerdialog.cpp | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) (limited to 'src/instancemanagerdialog.cpp') 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(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(sel[0].row()); +} + void InstanceManagerDialog::fill(const InstanceInfo& ii) { ui->name->setText(ii.name()); -- cgit v1.3.1