From 7f6dd61bb3a5a4e53d206a6c17096ee6ad290700 Mon Sep 17 00:00:00 2001 From: Roland Winklmeier Date: Sat, 17 Feb 2018 11:55:28 +0100 Subject: [PATCH] X-Plane menu improvements * Remove start items with DBus details and replace them with a single start * Add an item to toggle the message box --- src/xswiftbus/messages.h | 5 ++++- src/xswiftbus/plugin.cpp | 10 ++++++---- src/xswiftbus/plugin.h | 3 ++- src/xswiftbus/service.h | 3 +++ 4 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/xswiftbus/messages.h b/src/xswiftbus/messages.h index 6828cae81..5e3e0f718 100644 --- a/src/xswiftbus/messages.h +++ b/src/xswiftbus/messages.h @@ -97,10 +97,13 @@ namespace XSwiftBus //! \copydoc XSwiftBus::CMessageBox::maxLineLength int maxLineLength() const { return m_messageBox.maxLineLength(); } + //! Toggles the visibility of the message box + void toggle() { if (m_visible) { hide(); } else { show(); } } + private: void show() { m_messageBox.show(); m_visible = true; } void hide() { m_messageBox.hide(); m_visible = false; } - void toggle() { if (m_visible) { hide(); } else { show(); } } + void scrollUp(); void scrollDown(); void scrollToTop(); diff --git a/src/xswiftbus/plugin.cpp b/src/xswiftbus/plugin.cpp index f989c7ac9..5eb70b7f9 100644 --- a/src/xswiftbus/plugin.cpp +++ b/src/xswiftbus/plugin.cpp @@ -29,14 +29,16 @@ namespace XSwiftBus CPlugin::CPlugin() : m_menu(CMenu::mainMenu().subMenu("XSwiftBus")) { - m_startServerMenuItems.push_back(m_menu.item("Start server on session bus", [this]{ startServer(BlackMisc::CDBusServer::sessionBusAddress()); })); - m_startServerMenuItems.push_back(m_menu.item("Start server on system bus", [this]{ startServer(BlackMisc::CDBusServer::systemBusAddress()); })); - m_startServerMenuItems.push_back(m_menu.item("Start server on localhost P2P", [this]{ startServer(BlackMisc::CDBusServer::p2pAddress("localhost")); })); + m_startServerMenuItem = m_menu.item("Start XSwiftBus", [this]{ startServer(BlackMisc::CDBusServer::sessionBusAddress()); }); + m_toggleMessageWindowMenuItem = m_menu.item("Toggle Message Window", [this] { if(m_service) { m_service->toggleMessageBoxVisibility(); } }); + // m_startServerMenuItems.push_back(m_menu.item("Start server on system bus", [this]{ startServer(BlackMisc::CDBusServer::systemBusAddress()); })); + // m_startServerMenuItems.push_back(m_menu.item("Start server on localhost P2P", [this]{ startServer(BlackMisc::CDBusServer::p2pAddress("localhost")); })); } void CPlugin::startServer(const QString &address) { - for (auto &item : m_startServerMenuItems) { item.setEnabled(false); } + // for (auto &item : m_startServerMenuItems) { item.setEnabled(false); } + m_startServerMenuItem.setEnabled(false); m_service = new CService(this); m_traffic = new CTraffic(this); diff --git a/src/xswiftbus/plugin.h b/src/xswiftbus/plugin.h index 77111f0ba..5ac8483b4 100644 --- a/src/xswiftbus/plugin.h +++ b/src/xswiftbus/plugin.h @@ -58,7 +58,8 @@ namespace XSwiftBus CTraffic *m_traffic = nullptr; CWeather *m_weather = nullptr; CMenu m_menu; - QVector m_startServerMenuItems; + CMenuItem m_startServerMenuItem; + CMenuItem m_toggleMessageWindowMenuItem; void startServer(const QString &address); void tryStartServer(const QString &address); diff --git a/src/xswiftbus/service.h b/src/xswiftbus/service.h index 98c9615c6..ba564f847 100644 --- a/src/xswiftbus/service.h +++ b/src/xswiftbus/service.h @@ -238,6 +238,9 @@ namespace XSwiftBus //! Get the ratio how much the speedbrakes surfaces are extended (0.0 is fully retracted, and 1.0 is fully extended) double getSpeedBrakeRatio() const { return m_speedBrakeRatio.get(); } + //! \copydoc XSwiftBus::CMessageBoxControl::toggle + void toggleMessageBoxVisibility() { m_messages.toggle(); } + private: CMessageBoxControl m_messages { 128, 128, 16 }; BlackMisc::Simulation::XPlane::CNavDataReferenceList m_airports;