Files
qt5-legatus-legacy/Lts/Plugins/DeveloperTools/Gui/dev_debug_flags_dialog.cpp
T
2026-08-13 18:33:10 +02:00

106 lines
2.9 KiB
C++
Executable File

/**
* @RDE_HEADER@
* ExerciseManangement - Exercise Overview Dialog
* $Id$
* $HeadURL$
* $Author$
* Created by Mike Wille, NLSE, 2018-02-09
*/
#include "dev_debug_flags_dialog.h"
#include "ui_dev_debug_flags_dialog.h"
#include "dev_debug_flags_dialog_model.h"
#include "dev_debug_flags_edit_dialog.h"
#include <Viewer/LtsDataView/lts_data_view.h>
#include <LtsSession/lts_session_data.h>
#include <QDebug>
namespace DeveloperTools
{
DebugFlagsDialog::DebugFlagsDialog(const QString &menuGroup, QWidget *parent)
: LtsWidgets::LtsDialog(parent, LtsWidgets::ButtonCombination::CloseOnly)
, m_model(new DebugFlagsDialogModel(this))
, m_ui(new Ui::DebugFlagsDialog)
, m_menuGroup(menuGroup)
{
m_ui->setupUi(this);
m_buttonBox->connectButton(LtsWidgets::DialogButton::Add, this, &DebugFlagsDialog::onAddFlag);
m_buttonBox->connectButton(LtsWidgets::DialogButton::Edit, this, &DebugFlagsDialog::onEditFlag);
m_buttonBox->connectButton(LtsWidgets::DialogButton::Remove, this, &DebugFlagsDialog::onRemoveFlag);
m_buttonBox->connectButton(LtsWidgets::DialogButton::Load, this, &DebugFlagsDialog::slotRefresh);
connect(m_ui->widget, &LtsDataView::LtsDataView::signalDoubleClicked,
this, &DebugFlagsDialog::onEditFlag);
m_ui->widget->setModel(m_model);
}
DebugFlagsDialog::~DebugFlagsDialog()
{
delete m_ui;
}
void DebugFlagsDialog::retranslate()
{
translate(m_ui, tr("Debug Flags"));
m_buttonBox->getButton(LtsWidgets::DialogButton::Load)->setText(tr("Refresh"));
}
void DebugFlagsDialog::slotRefresh()
{
m_model->refresh();
}
void DebugFlagsDialog::enaDisa()
{
QModelIndexList selectedRows = m_ui->widget->selectedRows();
const int cntSelectedRows = selectedRows.size();
m_buttonBox->setButtonEnabled(LtsWidgets::DialogButton::Edit, cntSelectedRows == 1);
m_buttonBox->setButtonEnabled(LtsWidgets::DialogButton::Remove, cntSelectedRows == 1); // TODO: rm multiple
}
void DebugFlagsDialog::onAddFlag()
{
DebugFlagsEditDialog *d = new DebugFlagsEditDialog();
connect(d, &DebugFlagsEditDialog::destroyed,
this, &DebugFlagsDialog::slotRefresh);
addDialog(LtsWidgets::initDialog(d, QString() /* new flag */), m_menuGroup, QStringLiteral("NewFlag"));
}
void DebugFlagsDialog::onRemoveFlag()
{
QString flagName = m_model->getRowData(m_ui->widget->currentIndex().row()).name;
LtsSessionData::LtsSessionData::getInstance()->removeDebugFlag(flagName);
slotRefresh();
}
void DebugFlagsDialog::onEditFlag()
{
const QModelIndex idx = m_ui->widget->currentIndex();
QString flagName = m_model->getRowData(idx.row()).name;
if (flagName.isEmpty())
return;
DebugFlagsEditDialog *d = new DebugFlagsEditDialog();
connect(d, &DebugFlagsEditDialog::destroyed,
this, &DebugFlagsDialog::slotRefresh);
addDialog(LtsWidgets::initDialog(d, flagName), m_menuGroup, QStringLiteral("EditFlag%1").arg(flagName));
}
} // namespace ExerciseManagement