168 lines
3.3 KiB
C++
Executable File
168 lines
3.3 KiB
C++
Executable File
/**
|
|
* @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 <LtsSession/lts_session_data.h>
|
|
#include <LtsWidgets/lts_message_dialog.h>
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//
|