Move FGSwiftBus settings to own class

This commit is contained in:
Lars Toenning
2023-01-31 22:06:11 +01:00
parent c1dc5b0b06
commit 65b4251a3c
7 changed files with 133 additions and 15 deletions

View File

@@ -334,7 +334,7 @@ namespace BlackSimPlugin::Flightgear
bool CSimulatorFlightgear::connectTo()
{
if (isConnected()) { return true; }
QString dbusAddress = m_fgswiftbusServerSetting.getThreadLocal();
QString dbusAddress = m_fgswiftbusServerSetting.getThreadLocal().getDBusServerAddress();
if (CDBusServer::isSessionOrSystemAddress(dbusAddress))
{
@@ -1060,7 +1060,7 @@ namespace BlackSimPlugin::Flightgear
if (this->isShuttingDown()) { return; }
Q_ASSERT_X(!CThreadUtils::thisIsMainThread(), Q_FUNC_INFO, "Expect to run in background");
QString dbusAddress = m_fgSswiftBusServerSetting.getThreadLocal();
QString dbusAddress = m_fgSswiftBusServerSetting.getThreadLocal().getDBusServerAddress();
if (CDBusServer::isSessionOrSystemAddress(dbusAddress))
{
checkConnectionViaSessionBus();

View File

@@ -6,15 +6,17 @@
* or distributed except according to the terms contained in the LICENSE file.
*/
#include "ui_simulatorflightgearconfigwindow.h"
#include "simulatorflightgearconfigwindow.h"
#include "blackcore/application.h"
#include "ui_simulatorflightgearconfigwindow.h"
#include "blackgui/guiapplication.h"
#include <QComboBox>
#include <QDialogButtonBox>
using namespace BlackGui;
using namespace BlackMisc;
using namespace BlackMisc::Simulation::Settings;
//using namespace BlackMisc::Simulation::Flightgear;
namespace BlackSimPlugin::Flightgear
@@ -25,8 +27,8 @@ namespace BlackSimPlugin::Flightgear
{
ui->setupUi(this);
CGuiUtility::disableMinMaxCloseButtons(this);
ui->comp_SettingsFGSwiftBus->setDefaultP2PAddress(m_fgswiftbusServerSetting.getDefault());
ui->comp_SettingsFGSwiftBus->set(m_fgswiftbusServerSetting.getThreadLocal());
ui->comp_SettingsFGSwiftBus->setDefaultP2PAddress(m_fgswiftbusServerSetting.getDefault().getDBusServerAddress());
ui->comp_SettingsFGSwiftBus->set(m_fgswiftbusServerSetting.getThreadLocal().getDBusServerAddress());
connect(ui->bb_OkCancel, &QDialogButtonBox::accepted, this, &CSimulatorFlightgearConfigWindow::onSettingsAccepted);
connect(ui->bb_OkCancel, &QDialogButtonBox::rejected, this, &CSimulatorFlightgearConfigWindow::close);
@@ -35,13 +37,28 @@ namespace BlackSimPlugin::Flightgear
CSimulatorFlightgearConfigWindow::~CSimulatorFlightgearConfigWindow()
{ }
CFGSwiftBusSettings CSimulatorFlightgearConfigWindow::getSettingsFromUI() const
{
CFGSwiftBusSettings s = m_fgswiftbusServerSetting.getThreadLocal();
s.setDBusServerAddress(ui->comp_SettingsFGSwiftBus->getDBusAddress());
return s;
}
void CSimulatorFlightgearConfigWindow::onSettingsChanged()
{
ui->comp_SettingsFGSwiftBus->set(m_fgswiftbusServerSetting.getThreadLocal().getDBusServerAddress());
}
void CSimulatorFlightgearConfigWindow::onSettingsAccepted()
{
const QString currentAddress = m_fgswiftbusServerSetting.getThreadLocal();
const QString updatedAddress = ui->comp_SettingsFGSwiftBus->getDBusAddress();
if (currentAddress != ui->comp_SettingsFGSwiftBus->getDBusAddress())
if (!sGui || sGui->isShuttingDown()) { return; }
const CFGSwiftBusSettings s = m_fgswiftbusServerSetting.getThreadLocal();
CFGSwiftBusSettings changed = getSettingsFromUI();
if (s != changed)
{
m_fgswiftbusServerSetting.set(updatedAddress);
m_fgswiftbusServerSetting.set(changed);
}
close();
}

View File

@@ -38,8 +38,14 @@ namespace BlackSimPlugin::Flightgear
//! Settings have been accepted
void onSettingsAccepted();
//! Settings changed
void onSettingsChanged();
//! Get settings object with values from UI
BlackMisc::Simulation::Settings::CFGSwiftBusSettings getSettingsFromUI() const;
QScopedPointer<Ui::CSimulatorFlightgearConfigWindow> ui;
BlackMisc::CSetting<BlackMisc::Simulation::Settings::TFGSwiftBusServer> m_fgswiftbusServerSetting { this };
BlackMisc::CSetting<BlackMisc::Simulation::Settings::TFGSwiftBusServer> m_fgswiftbusServerSetting { this, &CSimulatorFlightgearConfigWindow::onSettingsChanged };
};
} // ns