/** * @RDE_HEADER@ * Interface * $Id$ * $HeadURL$ * $Author$ */ #pragma once // Own #include "situation_map_export.h" #include // Qt #include //---------------------------------------------------------------------------- namespace SituationMap { //Forward: class Map; class LayerParameter; class mySlider : public QSlider { Q_OBJECT public: mySlider(const QString &layername, int min, int max) : QSlider(), m_layername(layername) { this->setOrientation(Qt::Horizontal); setMinimum(min); setMaximum(max); } public: QString m_layername; }; class SITUATIONMAP_EXPORT LayerControlWidget : public QWidget { Q_OBJECT public: explicit LayerControlWidget(QWidget *parent, Map *map, bool enableLayer, bool enableBasemap, const QString &debugInfo); ~LayerControlWidget(); bool updatePanel(); private: bool updatePanelZoomRotationScales(); bool updatePanelLayer(); bool updatePanelBasemap(); QString generateToolTip(const QString &layername, const LayerParameter &lp); QSlider *generateZoomSlider(); QSlider *generateRotationSlider(); QSlider *generateSymbolSizeSlider(); private slots: protected: void dragMoveEvent(QDragMoveEvent *event) override; void dragEnterEvent(QDragEnterEvent *event) override; void dropEvent(QDropEvent *event) override; private slots: void expandCollapse(bool expanded); void layerOnOff(); void opacity(int); void brightness(int); void contrast(int); void gamma(int); void onLayerParamterChanged(const QString &layername, const LayerParameter &newLayerParameter); void onZoomSliderInit(QSlider *slider); void onZoomSliderValueChanged(); void onRotationSliderValueChanged(); void onRotationOfMapChanged(double rotation); void onSymbolSizeSliderValueChanged(); void onSymbolSizeSliderValueChangedTimeout(); void onSymbolSizeOfMapChanged(double symbolSize); void onBaseMapSelection(); // slots for external signals: void onMapReady(); void onMapExtentChanged(); private: QString layernameAt(const QPoint &pos) const; QStringList newLayerOrder(const QString &draggedLayername, const QString &childLayername); class Private; /** * The private d-pointer to not break BC when changing internals of this class */ Private *d = nullptr; LOGGER_T m_logger; ///< Interface of the Logging-Facility }; } // namespace SituationMap