Files
qt5-legatus-legacy/Lts/Viewer/SituationMap/MapImpl/layer_control_widget.h
T
2026-08-13 18:33:10 +02:00

126 lines
2.6 KiB
C++
Executable File

/**
* @RDE_HEADER@
* Interface
* $Id$
* $HeadURL$
* $Author$
*/
#pragma once
// Own
#include "situation_map_export.h"
#include <Common/situation_map_logging.h>
// Qt
#include <QSlider>
//----------------------------------------------------------------------------
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