/** * @RDE_HEADER@ * Dialog for selecting (base) symbols * $Id$ * $HeadURL$ * $Author$ * Created by Norbert Thoden, NLE, 12.12.2019 */ #pragma once #include #include #include #include namespace AdvancedSymbology { class SymbolDictionary; namespace Gui { //------------------------------------------------------------------------------ // BaseSymbolLookupDialog //------------------------------------------------------------------------------ class ADVANCEDSYMBOLOGYGUI_EXPORT BaseSymbolLookupDialog : public LtsWidgets::LtsFramelessDialog { Q_OBJECT using BaseClass = LtsWidgets::LtsFramelessDialog; public: static BaseSymbolLookupDialog *showInstance(); static BaseSymbolLookupDialog *createDlg(QWidget *parent = nullptr); explicit BaseSymbolLookupDialog(QWidget *parent = nullptr); ~BaseSymbolLookupDialog(); bool init(SymbolDictionary &symbolDictionary); bool participantMode() const; void setParticipantMode(bool onOff); void setValidBaseSymbolCodes(const QSet &validBaseSymbolCodes); QString getCurrentBaseSymbolCode() const; bool setCurrentSidc(const QString &sidc); Q_SIGNALS: void lookupAppliedBaseSymbolCode(const QString &sidc); void lookupAppliedCompleteSidc(const QString &sidc); protected: void apply(); protected Q_SLOTS: void onSymbolDoubleClicked(const QString &baseSymbolCode, const QString &sidc); void onSymbolClicked(const QString &baseSymbolCode, const QString &sidc); private: SituationMap::LOGGER_T m_logger; struct Private; /** * The private d->pointer to not break BC when changing internals of this class */ Private *d = nullptr; }; // BaseSymbolLookupDialog } // namespace Gui } // namespace AdvancedSymbology