106 lines
2.9 KiB
C++
Executable File
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
|