/** ** ** @RDE_HEADER@ ** Used to manage symbol look up dialog. ** $Id$ ** $HeadURL$ ** $Author$ ** ** ----------------------------------------------------------------------------------------------- ** ** Hardware-Environment: Intel-PC ** Software-Environment: Windows 7, Qt 5.4. ArcGIS 10.2.5 ** ** Language ........: C++ 11 ** ** ----------------------------------------------------------------------------------------------- ** ** Author ...........: Jörg Turla, SPD G, Tel. 3132 ** ** ----------------------------------------------------------------------------------------------- ** ** Notes .........: ** ** 17.08.2016, JT : First edition for use with Qt5 ** ** ----------------------------------------------------------------------------------------------- */ #pragma once #include #include #include #include "logging.h" namespace AdvancedSymbology { class SymbolDictionary; } namespace SituationMap { class Map; } namespace AdvancedSymbology { namespace Gui { class BaseSymbolModel; class BaseSymbolProxyFilter; } } namespace PlanEditor { class PlanEditor; class PlanEditorSession; /** @class LookupSymbolManager @brief Manager class to handle symbol look up dialog and associated data model. */ class LookupSymbolManager : public QObject { Q_OBJECT public: /** @name Construction & Destruction @{ */ explicit LookupSymbolManager(PlanEditor *planEditor , SituationMap::Map *map , const PlanEditorSession &session); virtual ~LookupSymbolManager(); /** @} */ void setParticipantsSidcsInUse(const QSet &sidcs); AdvancedSymbology::SymbolDictionary &symbolDictionary(); bool isParticipantDialog() const; public slots: void onOpenSymbolDialog(); void onOpenParticipantDialog(); void onCloseDialog(); void onUpdateSymbolScopes(const QStringList &scopeList); private slots: void onLookupSymbolDialogBeginDestroy(); void initializeSymbolLookupModelDrag(); void onSymbolDoubleClicked(const QString &baseSymbolCode); signals: /** When scopes are created or removed the signal updateSymbolScopes is emitted with current list of scopes. @param scopeList List of all scope names. */ void addToSymbolFavourites(const QString &scope, const QString &sidc); void readModelFinished(); private: class InternalData; InternalData *m_internal; void openDialog(const QString &title, const QString &widgetId); }; // FavouritesActionManager } // namespace PlanEditor