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