Files
qt5-legatus-legacy/Lts/Application/THP/thpwidgets/thp_building_settings.cpp
T
2026-08-13 18:33:10 +02:00

119 lines
4.4 KiB
C++
Executable File

/**
* @RDE_HEADER@
* HMI Plugin for MeteoDataManagement - Meteo Data Overview Dialog
* $Id$
* $HeadURL$
* $Author$
* Created by Patric Karwat, SLSE, 2016-10-05
*/
#include "thp_building_settings.h"
#include "ui_thp_building_settings.h"
#include <Common/bdv_controller.h>
#include <LtsUtilsSettings/settings.h>
namespace THP
{
static QVariant getSetting(const QString &key, const QVariant &def)
{
return LtsUtils::OperatorSettings::getInstance()->value(QStringLiteral("BgViewer"), key, def);
}
static void setSetting(const QString &key, const QVariant &val)
{
LtsUtils::OperatorSettings::getInstance()->setValue(QStringLiteral("BgViewer"), key, val);
}
BgViewerSettingsView::BgViewerSettingsView(BuildingViewer::BgViewerController *pBgvController,
QWidget *parent)
: QDialog(parent)
, m_ui(new Ui::BgViewerSettingsUI)
, m_pBgvController(pBgvController)
{
m_ui->setupUi(this);
connect(m_ui->m_pCheckBoxGlobalIsoMode, &QCheckBox::clicked, this, &BgViewerSettingsView::onViewModeChanged);
connect(m_ui->m_pCheckBoxUseDotsMode, &QCheckBox::clicked, this, &BgViewerSettingsView::onPlayerDisplayModeChanged);
connect(m_ui->m_pSliderGlobalTransparency, &QSlider::valueChanged, this, &BgViewerSettingsView::onTransparencyChanged);
connect(m_ui->m_pSliderPlayerSymbolSize, &QSlider::valueChanged, this, &BgViewerSettingsView::onSymbolSizeChanged);
connect(m_ui->m_slider_SymbolFlashing, &QSlider::valueChanged, this, &BgViewerSettingsView::onSymbolFireEventFlashingChanged);
connect(m_ui->m_slider_HitlineDuration, &QSlider::valueChanged, this, &BgViewerSettingsView::onHitLineDisplayLengthChanged);
resetValues();
onSymbolFireEventFlashingChanged(m_ui->m_slider_HitlineDuration->value());
onHitLineDisplayLengthChanged(m_ui->m_slider_SymbolFlashing->value());
connect(m_ui->buttonBox, &QDialogButtonBox::accepted, this, &BgViewerSettingsView::accept);
connect(m_ui->buttonBox, &QDialogButtonBox::rejected, this, &BgViewerSettingsView::reject);
}
BgViewerSettingsView::~BgViewerSettingsView()
{
delete m_ui;
}
void BgViewerSettingsView::accept()
{
setSetting(QStringLiteral("GlobalTransparency"), m_ui->m_pSliderGlobalTransparency->value());
setSetting(QStringLiteral("UseIsoMode"), m_ui->m_pCheckBoxGlobalIsoMode->isChecked());
setSetting(QStringLiteral("UseDotsMode"), m_ui->m_pCheckBoxUseDotsMode->isChecked());
setSetting(QStringLiteral("PlayerSymbolSize"), m_ui->m_pSliderPlayerSymbolSize->value());
setSetting(QStringLiteral("maxHitlineDurationTime_s"), m_ui->m_slider_HitlineDuration->value());
setSetting(QStringLiteral("GearFlashTime_s"), m_ui->m_slider_SymbolFlashing->value());
setSetting(QStringLiteral("maxGearFlashTime_s"), m_ui->m_slider_SymbolFlashing->maximum());
QDialog::accept();
}
void BgViewerSettingsView::reject()
{
resetValues();
QDialog::reject();
}
void BgViewerSettingsView::resetValues()
{
m_ui->m_pSliderGlobalTransparency->setValue(getSetting(QStringLiteral("GlobalTransparency"), 75).toInt());
m_ui->m_pCheckBoxGlobalIsoMode->setChecked(getSetting(QStringLiteral("UseIsoMode"), false).toBool());
m_ui->m_pCheckBoxUseDotsMode->setChecked(getSetting(QStringLiteral("UseDotsMode"), false).toBool()) ;
m_ui->m_pSliderPlayerSymbolSize->setValue(getSetting(QStringLiteral("PlayerSymbolSize"), 20).toInt());
m_ui->m_slider_HitlineDuration->setValue(getSetting(QStringLiteral("maxHitlineDurationTime_s"), 10).toInt());
m_ui->m_slider_SymbolFlashing->setValue(getSetting(QStringLiteral("GearFlashTime_s"), 10).toInt());
}
void BgViewerSettingsView::onViewModeChanged()
{
m_pBgvController->excSetGlobalViewMode(m_ui->m_pCheckBoxGlobalIsoMode->isChecked());
}
void BgViewerSettingsView::onPlayerDisplayModeChanged()
{
m_pBgvController->excSetGlobalDotsMode(m_ui->m_pCheckBoxUseDotsMode->isChecked());
}
void BgViewerSettingsView::onSymbolSizeChanged()
{
m_pBgvController->updatePlayerSymbols(m_ui->m_pSliderPlayerSymbolSize->value());
}
void BgViewerSettingsView::onTransparencyChanged()
{
m_pBgvController->excSetGlobalTransparency(m_ui->m_pSliderGlobalTransparency->value());
}
void BgViewerSettingsView::onSymbolFireEventFlashingChanged(int val)
{
// only modified per config setting...
m_ui->m_label_durationSymbolFlashing->setText(tr("%1 sec").arg(val));
}
void BgViewerSettingsView::onHitLineDisplayLengthChanged(int val)
{
m_pBgvController->excSetHitlineDuration(val);
m_ui->m_label_HitlineDuration->setText(tr("%1 sec").arg(val));
}
} // namespace BuildingViewer