Files
qt5-legatus-legacy/Lts/Viewer/SituationMap/SymbologyGui/symbol_modification_dialog.cpp
T
2026-08-13 18:33:10 +02:00

138 lines
4.4 KiB
C++
Executable File

/**
* @RDE_HEADER@
* symbol_modification_dialog for sidc configuration
* $Id$
* $HeadURL$
* $Author$
* Created by Karwat, SLSE, 2017-09-07
*/
#include "symbol_modification_dialog.h"
#include "symbol_modification_widget.h"
#include <QtWidgets/QVBoxLayout>
namespace AdvancedSymbology
{
namespace Gui
{
//Dialog
SymbolModificationDialog::SymbolModificationDialog(SituationMap::Map *map, bool isParticipant, QWidget *parent)
: LtsWidgets::LtsDialog(parent, LtsWidgets::ButtonCombination::OkCancel)
{
initLayout(map, isParticipant);
}
/*
* TODO: FIXME: Warum ist das ein OkCancel Dialog aber Ok wird gehided und Cancel dann wieder zu close umbenannt?
* Warum ist das nicht gleich ein CloseONly Dialog?
*/
void SymbolModificationDialog::removeOkAndApplyButtons()
{
m_buttonBox->getButton(LtsWidgets::DialogButton::Ok)->setVisible(false);
m_buttonBox->getButton(LtsWidgets::DialogButton::Apply)->setVisible(false);
m_buttonBox->getButton(LtsWidgets::DialogButton::Close)->setText(tr("Close"));
}
void SymbolModificationDialog::initLayout(SituationMap::Map *map, bool isParticipant)
{
QVBoxLayout *layout = new QVBoxLayout(this);
m_symbolModificationWidget = new SymbolModificationWidget(map, isParticipant, map->symbolDictionary(), this);
connect(m_symbolModificationWidget, &SymbolModificationWidget::changed, this, &SymbolModificationDialog::changed);
connect(m_symbolModificationWidget, &SymbolModificationWidget::changed, this, &SymbolModificationDialog::slotChangesMade);
m_buttonBox->connectButton(LtsWidgets::DialogButton::No, m_symbolModificationWidget, &SymbolModificationWidget::onRevert);
m_buttonBox->setText(LtsWidgets::DialogButton::No, tr("Revert"));
layout->addWidget(m_symbolModificationWidget, 2);
}
void SymbolModificationDialog::aboutToClose() { emit signalAboutToClose(); }
bool SymbolModificationDialog::apply()
{
//const QString & sidc = getCurrentSidc();
//if (sidc.isEmpty()) return false;
//emit lookupApplied( sidc );
return true;
} // SymbolModificationDialog::apply()
void SymbolModificationDialog::retranslate()
{
// lupdate doesn't like translate(tr("foo")) ...
const QString txt(tr("Symbol Modification"));
translate(txt);
} // SymbolModificationDialog::retranslate()
//Frameless
SymbolModificationDialogFrameless::SymbolModificationDialogFrameless(SituationMap::Map *map, bool isParticipant, QWidget *parent)
: LtsWidgets::LtsFramelessDialog(parent)
, m_buttonBox(nullptr)
{
initLayout(map, isParticipant, map->symbolDictionary());
}
SymbolModificationDialogFrameless::SymbolModificationDialogFrameless(SymbolDictionary &symbolDictionary, bool isParticipant, QWidget *parent)
: LtsWidgets::LtsFramelessDialog(parent)
, m_buttonBox(nullptr)
{
initLayout(nullptr, isParticipant, symbolDictionary);
}
void SymbolModificationDialogFrameless::initLayout(SituationMap::Map *map, bool isParticipant, SymbolDictionary &symbolDictionary)
{
QVBoxLayout *layout = new QVBoxLayout(this);
m_buttonBox = new LtsWidgets::LtsDialogButtonBox(this);
m_symbolModificationWidget = new SymbolModificationWidget(map, isParticipant, symbolDictionary, this);
connect(m_symbolModificationWidget, &SymbolModificationWidget::changed, this, &SymbolModificationDialogFrameless::sidcChanged);
layout->addWidget(m_symbolModificationWidget, 2);
layout->addWidget(m_buttonBox);
connect(m_buttonBox->getButton(LtsWidgets::DialogButton::Ok), &QPushButton::clicked, this, &SymbolModificationDialogFrameless::apply);
connect(m_buttonBox->getButton(LtsWidgets::DialogButton::Close), &QPushButton::clicked, this, &SymbolModificationDialogFrameless::onClose);
m_buttonBox->connectButton(LtsWidgets::DialogButton::No, m_symbolModificationWidget, &SymbolModificationWidget::onRevert);
m_buttonBox->setText(LtsWidgets::DialogButton::No, tr("Revert"));
setMinimumWidth(800);
setMinimumHeight(300);
resize(minimumHeight(), minimumWidth());
}
void SymbolModificationDialogFrameless::setSidc(const QString &sidc)
{
m_symbolModificationWidget->setSidc(sidc);
m_oldSidc = sidc;
}
void SymbolModificationDialogFrameless::apply()
{
emit sidcOnClose(m_newSidc);
close();
}
void SymbolModificationDialogFrameless::onClose()
{
emit sidcOnClose(m_oldSidc);
close();
}
void SymbolModificationDialogFrameless::sidcChanged()
{
const QString &newSidc = m_symbolModificationWidget->modifiedSidc();
m_newSidc = newSidc;
emit changed();
}
} // namespace Gui
} // namespace AdvancedSymbology