138 lines
4.4 KiB
C++
Executable File
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
|