swift
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 
4 #include "settingsswiftplugin.h"
5 
6 #include "ui_settingsswiftplugin.h"
7 
8 #include "misc/logmessage.h"
9 
10 using namespace swift::misc;
11 using namespace swift::misc::simulation;
12 using namespace swift::misc::simulation::settings;
13 
14 namespace swift::gui::components
15 {
16  CSettingsSwiftPlugin::CSettingsSwiftPlugin(QWidget *parent) : QFrame(parent), ui(new Ui::CSettingsSwiftPlugin)
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 
28  {
29  return m_settings.get();
30  }
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()) { CLogMessage::preformatted(msg); }
46  }
47 
48  CSwiftPluginSettings CSettingsSwiftPlugin::getSettings() const
49  {
50  CAircraftModel model = ui->lep_OwnModel->getAircraftModel();
51  if (!model.hasModelString()) { model.setModelString(ui->lep_OwnModel->text()); }
52 
53  CSwiftPluginSettings settings;
54  settings.setEmulatedSimulator(ui->comp_EmulatedSimulatorSelector->getValue());
55  settings.setOwnModel(model);
56  settings.setDefaultModel(ui->lep_DefaultModel->getAircraftModel());
57  settings.setLoggingFunctionCalls(ui->cb_LogFunctionCalls->isChecked());
58  return settings;
59  }
60 } // namespace swift::gui::components
Settings for the swift pseudo driver.
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:417
T get() const
Get a copy of the current value.
Definition: valuecache.h:408
bool isEmpty() const
Message empty.
Streamable status message, e.g.
Aircraft model (used by another pilot, my models on disk)
Definition: aircraftmodel.h:71
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.
Definition: aboutdialog.cpp:13
Free functions in swift::misc.