From a4347e6f8b78596ad92e12759df873f2204198a0 Mon Sep 17 00:00:00 2001 From: Joshua Goins Date: Sat, 25 May 2024 22:43:49 -0400 Subject: [PATCH] Armoury: Add Penumbra actions menu It's now possible to "redraw" manually, and also open the main window. --- apps/armoury/include/penumbraapi.h | 1 + apps/armoury/src/mainwindow.cpp | 12 ++++++++++++ apps/armoury/src/penumbraapi.cpp | 5 +++++ 3 files changed, 18 insertions(+) diff --git a/apps/armoury/include/penumbraapi.h b/apps/armoury/include/penumbraapi.h index cb44d2f..341aab3 100644 --- a/apps/armoury/include/penumbraapi.h +++ b/apps/armoury/include/penumbraapi.h @@ -12,6 +12,7 @@ public: public Q_SLOTS: void redrawAll(); + void openWindow(); private: QNetworkAccessManager *m_mgr = nullptr; diff --git a/apps/armoury/src/mainwindow.cpp b/apps/armoury/src/mainwindow.cpp index 3ee2b9f..aa07122 100644 --- a/apps/armoury/src/mainwindow.cpp +++ b/apps/armoury/src/mainwindow.cpp @@ -107,6 +107,18 @@ void MainWindow::setupAdditionalMenus(QMenuBar *menuBar) fmvMenu->setChecked(fullModelViewer->isVisible()); }); + auto penumbraMenu = menuBar->addMenu(i18nc("@title:menu", "Penumbra")); + + auto redrawAction = penumbraMenu->addAction(i18nc("@action:inmenu", "Redraw All")); + connect(redrawAction, &QAction::triggered, [this] { + m_api->redrawAll(); + }); + + auto openWindowAction = penumbraMenu->addAction(i18nc("@action:inmenu", "Open Window")); + connect(openWindowAction, &QAction::triggered, [this] { + m_api->openWindow(); + }); + auto settingsMenu = menuBar->addMenu(i18nc("@title:menu", "Settings")); auto settingsAction = settingsMenu->addAction(i18nc("@action:inmenu", "Configure Armoury…")); diff --git a/apps/armoury/src/penumbraapi.cpp b/apps/armoury/src/penumbraapi.cpp index bcfe7b3..b811370 100644 --- a/apps/armoury/src/penumbraapi.cpp +++ b/apps/armoury/src/penumbraapi.cpp @@ -13,3 +13,8 @@ void PenumbraApi::redrawAll() { m_mgr->post(QNetworkRequest(QUrl(QStringLiteral("http://localhost:42069/api/redrawAll"))), QByteArray{}); } + +void PenumbraApi::openWindow() +{ + m_mgr->post(QNetworkRequest(QUrl(QStringLiteral("http://localhost:42069/api/openwindow"))), QByteArray{}); +}