/** * @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 #include 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