/** * @RDE_HEADER@ * ExerciseManangement - Exercise Edit Dialog * $Id$ * $HeadURL$ * $Author$ * Created by Mike Wille, NLSE, 2018-02-09 */ #include "dev_debug_flags_edit_dialog.h" #include "ui_dev_debug_flags_edit_dialog.h" #include #include namespace DeveloperTools { DebugFlagsEditDialog::DebugFlagsEditDialog(QWidget *parent) : LtsWidgets::LtsDialog(parent, LtsWidgets::ButtonCombination::OkApplyCancel) , m_ui(new Ui::DebugFlagsEditDialog) { m_ui->setupUi(this); } DebugFlagsEditDialog::~DebugFlagsEditDialog() { delete m_ui; } bool DebugFlagsEditDialog::init(const QString &flagName) { m_flagName = flagName; if (!m_flagName.isEmpty()) { m_ui->leFlagName->setReadOnly(true); m_ui->leFlagName->setText(m_flagName); LtsSessionData::LtsSessionData *sessionData = LtsSessionData::LtsSessionData::getInstance(); QVariant val = sessionData->debugFlagValue(m_flagName); switch (val.type()) { case QVariant::Bool: { m_ui->rbBool->setChecked(true); m_ui->cbBool->setCurrentIndex(val.toInt()); break; } case QVariant::String: { m_ui->rbString->setChecked(true); m_ui->leString->setText(val.toString()); break; } case QVariant::Int: { m_ui->rbInt->setChecked(true); m_ui->sbInt->setValue(val.toInt()); break; } case QVariant::Double: { m_ui->rbDouble->setChecked(true); m_ui->dsbDouble->setValue(val.toDouble()); break; } default: { LtsWidgets::LtsMessageDialog::showMessage(this, tr("This flag has an unknown value type. Trying to convert to string.")); m_ui->rbString->setChecked(true); m_ui->leString->setText(val.toString()); break; } } } return true; } void DebugFlagsEditDialog::retranslate() { translate(m_ui, m_flagName, (m_flagName.isEmpty()), tr("Flag")); m_uiRequirements->clear(); m_uiRequirements->addRequirement({ m_ui->lblValueType, [this]() { return (m_ui->rbBool->isChecked() || m_ui->rbString->isChecked() || m_ui->rbInt->isChecked() || m_ui->rbDouble->isChecked()); }, tr("Select a value type") }); } bool DebugFlagsEditDialog::apply() { QString flagName = m_ui->leFlagName->text(); LtsSessionData::LtsSessionData *sessionData = LtsSessionData::LtsSessionData::getInstance(); if (m_ui->rbBool->isChecked()) { sessionData->setDebugFlagValue(flagName, m_ui->cbBool->currentIndex() == 1); return true; } if (m_ui->rbString->isChecked()) { sessionData->setDebugFlagValue(flagName, m_ui->leString->text()); return true; } if (m_ui->rbInt->isChecked()) { sessionData->setDebugFlagValue(flagName, m_ui->sbInt->value()); return true; } if (m_ui->rbDouble->isChecked()) { sessionData->setDebugFlagValue(flagName, m_ui->dsbDouble->value()); return true; } return false; } } // namespace DeveloperTools //