mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-23 13:55:36 +08:00
Automatically start XSwiftBus
In the past, XSwiftBus required to be started from the menu. This was a historic behaviour since it made it possible to start it with different DBus connection options. Since those are now moved into a config file, it can be started right away.
This commit is contained in:
committed by
Klaus Basan
parent
bd222f3c97
commit
910b536dee
@@ -29,30 +29,27 @@ namespace XSwiftBus
|
|||||||
CPlugin::CPlugin()
|
CPlugin::CPlugin()
|
||||||
: m_dbusConnection(std::make_shared<CDBusConnection>()), m_menu(CMenu::mainMenu().subMenu("XSwiftBus"))
|
: m_dbusConnection(std::make_shared<CDBusConnection>()), m_menu(CMenu::mainMenu().subMenu("XSwiftBus"))
|
||||||
{
|
{
|
||||||
m_startServerMenuItem = m_menu.item("Start XSwiftBus", [this]{ startServer(CDBusConnection::SessionBus); });
|
// m_startServerMenuItem = m_menu.item("Start XSwiftBus", [this]{ startServer(CDBusConnection::SessionBus); });
|
||||||
|
|
||||||
m_showHideLabelsMenuItem = m_menu.item("Show/Hide Aircraft Labels", [this]
|
m_showHideLabelsMenuItem = m_menu.item("Show/Hide Aircraft Labels", [this]
|
||||||
{
|
{
|
||||||
m_traffic->setDrawingLabels(!m_traffic->isDrawingLabels());
|
m_traffic->setDrawingLabels(!m_traffic->isDrawingLabels());
|
||||||
});
|
});
|
||||||
m_showHideLabelsMenuItem.setEnabled(false);
|
|
||||||
m_messageWindowSubMenu = m_menu.subMenu("Message Window");
|
m_messageWindowSubMenu = m_menu.subMenu("Message Window");
|
||||||
m_toggleMessageWindowMenuItem = m_messageWindowSubMenu.item("Show/Hide", [this]
|
m_toggleMessageWindowMenuItem = m_messageWindowSubMenu.item("Show/Hide", [this]
|
||||||
{
|
{
|
||||||
m_service->toggleMessageBoxVisibility();
|
m_service->toggleMessageBoxVisibility();
|
||||||
});
|
});
|
||||||
m_toggleMessageWindowMenuItem.setEnabled(false);
|
|
||||||
m_popupMessageWindowMenuItem = m_messageWindowSubMenu.checkableItem("Pop up Window on new Nessage", true, [this] (bool checked)
|
m_popupMessageWindowMenuItem = m_messageWindowSubMenu.checkableItem("Pop up Window on new Nessage", true, [this] (bool checked)
|
||||||
{
|
{
|
||||||
m_popupMessageWindowMenuItem.setChecked(!checked);
|
m_popupMessageWindowMenuItem.setChecked(!checked);
|
||||||
m_service->setPopupMessageWindow(!checked);
|
m_service->setPopupMessageWindow(!checked);
|
||||||
});
|
});
|
||||||
m_popupMessageWindowMenuItem.setEnabled(false);
|
|
||||||
m_disappearMessageWindowMenuItem = m_messageWindowSubMenu.checkableItem("Hide Message Window after 5s", true, [this] (bool checked)
|
m_disappearMessageWindowMenuItem = m_messageWindowSubMenu.checkableItem("Hide Message Window after 5s", true, [this] (bool checked)
|
||||||
{
|
{
|
||||||
m_disappearMessageWindowMenuItem.setChecked(!checked);
|
m_disappearMessageWindowMenuItem.setChecked(!checked);
|
||||||
m_service->setDisappearMessageWindow(!checked);
|
m_service->setDisappearMessageWindow(!checked);
|
||||||
});
|
});
|
||||||
m_disappearMessageWindowMenuItem.setEnabled(false);
|
|
||||||
m_planeViewSubMenu = m_menu.subMenu("Follow Plane View");
|
m_planeViewSubMenu = m_menu.subMenu("Follow Plane View");
|
||||||
planeViewOwnAircraftMenuItem = m_planeViewSubMenu.item("Own Aircraft", [this] { switchToOwnAircraftView(); });
|
planeViewOwnAircraftMenuItem = m_planeViewSubMenu.item("Own Aircraft", [this] { switchToOwnAircraftView(); });
|
||||||
|
|
||||||
@@ -67,6 +64,8 @@ namespace XSwiftBus
|
|||||||
});*/
|
});*/
|
||||||
|
|
||||||
XPLMRegisterFlightLoopCallback(flightLoopCallback, -1, this);
|
XPLMRegisterFlightLoopCallback(flightLoopCallback, -1, this);
|
||||||
|
|
||||||
|
startServer();
|
||||||
}
|
}
|
||||||
|
|
||||||
CPlugin::~CPlugin()
|
CPlugin::~CPlugin()
|
||||||
@@ -86,23 +85,14 @@ namespace XSwiftBus
|
|||||||
m_pluginConfig.print();
|
m_pluginConfig.print();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CPlugin::startServer(CDBusConnection::BusType bus)
|
void CPlugin::startServer()
|
||||||
{
|
{
|
||||||
(void) bus;
|
|
||||||
// for (auto &item : m_startServerMenuItems) { item.setEnabled(false); }
|
|
||||||
m_startServerMenuItem.setEnabled(false);
|
|
||||||
|
|
||||||
m_service = std::make_unique<CService>();
|
m_service = std::make_unique<CService>();
|
||||||
m_traffic = std::make_unique<CTraffic>();
|
m_traffic = std::make_unique<CTraffic>();
|
||||||
m_weather = std::make_unique<CWeather>();
|
m_weather = std::make_unique<CWeather>();
|
||||||
|
|
||||||
m_traffic->setPlaneViewMenu(m_planeViewSubMenu);
|
m_traffic->setPlaneViewMenu(m_planeViewSubMenu);
|
||||||
|
|
||||||
m_showHideLabelsMenuItem.setEnabled(true);
|
|
||||||
m_toggleMessageWindowMenuItem.setEnabled(true);
|
|
||||||
m_popupMessageWindowMenuItem.setEnabled(true);
|
|
||||||
m_disappearMessageWindowMenuItem.setEnabled(true);
|
|
||||||
|
|
||||||
if (m_pluginConfig.getDBusMode() == CConfig::DBusP2P)
|
if (m_pluginConfig.getDBusMode() == CConfig::DBusP2P)
|
||||||
{
|
{
|
||||||
m_dbusP2PServer = std::make_unique<CDBusServer>();
|
m_dbusP2PServer = std::make_unique<CDBusServer>();
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ namespace XSwiftBus
|
|||||||
bool m_shouldStop = false;
|
bool m_shouldStop = false;
|
||||||
|
|
||||||
void readConfig();
|
void readConfig();
|
||||||
void startServer(CDBusConnection::BusType bus);
|
void startServer();
|
||||||
void switchToOwnAircraftView();
|
void switchToOwnAircraftView();
|
||||||
|
|
||||||
static float flightLoopCallback(float, float, int, void *refcon);
|
static float flightLoopCallback(float, float, int, void *refcon);
|
||||||
|
|||||||
Reference in New Issue
Block a user