swift
Loading...
Searching...
No Matches
settingsswiftplugin.cpp
1// SPDX-FileCopyrightText: Copyright (C) 2017 swift Project Community / Contributors
2// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1
3
5
6#include "ui_settingsswiftplugin.h"
7
8#include "misc/logmessage.h"
9
10using namespace swift::misc;
11using namespace swift::misc::simulation;
12using namespace swift::misc::simulation::settings;
13
15{
17 {
18 ui->setupUi(this);
19 ui->comp_EmulatedSimulatorSelector->setMode(CSimulatorSelector::RadioButtons);
20 this->onSettingsChanged();
21
22 connect(ui->pb_Save, &QPushButton::clicked, this, &CSettingsSwiftPlugin::save);
23 }
24
26
31
32 void CSettingsSwiftPlugin::onSettingsChanged()
33 {
34 const CSwiftPluginSettings settings(m_settings.get());
35 ui->comp_EmulatedSimulatorSelector->setValue(settings.getEmulatedSimulator());
36 ui->lep_OwnModel->setText(settings.getOwnModel().getModelString());
37 ui->lep_DefaultModel->setText(settings.getDefaultModel().getModelString());
38 ui->cb_LogFunctionCalls->setChecked(settings.isLoggingFunctionCalls());
39 }
40
41 void CSettingsSwiftPlugin::save()
42 {
43 const CSwiftPluginSettings settings(this->getSettings());
44 const CStatusMessage msg = m_settings.setAndSave(settings);
45 if (!msg.isEmpty())
46 {
48 }
49 }
50
51 CSwiftPluginSettings CSettingsSwiftPlugin::getSettings() const
52 {
53 CAircraftModel model = ui->lep_OwnModel->getAircraftModel();
54 if (!model.hasModelString())
55 {
56 model.setModelString(ui->lep_OwnModel->text());
57 }
58
59 CSwiftPluginSettings settings;
60 settings.setEmulatedSimulator(ui->comp_EmulatedSimulatorSelector->getValue());
61 settings.setOwnModel(model);
62 settings.setDefaultModel(ui->lep_DefaultModel->getAircraftModel());
63 settings.setLoggingFunctionCalls(ui->cb_LogFunctionCalls->isChecked());
64 return settings;
65 }
66} // namespace swift::gui::components
swift::misc::simulation::settings::CSwiftPluginSettings getPluginSettings() const
Get the plugin settings.
CStatusMessage setAndSave(const T &value, qint64 timestamp=0)
Write and save in the same step. Must be called from the thread in which the owner lives.
Definition valuecache.h:420
T get() const
Get a copy of the current value.
Definition valuecache.h:411
static void preformatted(const CStatusMessage &statusMessage)
Sends a verbatim, preformatted message to the log.
bool isEmpty() const
Message empty.
Streamable status message, e.g.
Aircraft model (used by another pilot, my models on disk).
void setModelString(const QString &modelString)
Model string.
bool hasModelString() const
Non empty model string?
void setOwnModel(const CAircraftModel &ownModel)
Set own model.
void setEmulatedSimulator(const CSimulatorInfo &simulator)
Emulated simualtor.
void setDefaultModel(const CAircraftModel &defaultModel)
Set default model.
High level reusable GUI components.
Free functions in swift::misc.
void clicked(bool checked)
QFrame(QWidget *parent, Qt::WindowFlags f)
QMetaObject::Connection connect(const QObject *sender, PointerToMemberFunction signal, Functor functor)
QObject * parent() const const
QWidget(QWidget *parent, Qt::WindowFlags f)