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