Files
qt-migration-legatus/qt6-after/qt6-migrated-legatus/Lts/Application/THP/thpwidgets/thp_zoom_slider.h
T
torstenandCopilot 7173785915 Qt6 Migration: Complete migration with DDS/RTI support and build validation
Major Changes:
- Merged latest Qt5 devel content from dlbo (292 files changed, 7 new dirs)
- Consolidated forward-declarations and include folders
- Removed unneeded modules per Niklas' repo check list

Build System Fixes:
- Fixed CMake VERSION_GREATER syntax in ParticipantManagement/CMakeLists.txt
- Added VLC packages (libvlc-dev, vlc-plugin-base) to docker_build.sh
- Added PostgreSQL dev packages (libpq-dev, postgresql-server-dev-all) to Dockerfile
- Fixed locale warnings (ANSI_X3.4-1968 → C.UTF-8)
- Fixed ArcGIS SDK path warnings when BUILD_ARCGIS=OFF

Code Generation Fixes:
- Fixed IDL enum collisions (PortType→CorePortType/DdsutPortType, PdmEventType)
- Fixed Grantlee template svc_translation.cpp.grantlee:
  - Changed {{ idl_enum.name }}_def:: to {{ idl_enum.name }}::
  - Fixed .underlying() calls for C++11 scoped enums (enum class)
- Removed generated files from repo (moc_*, *_dtc.h, *_ftc.h)

Validation:
- BUILD_RTI=ON: SUCCESS
- BUILD_RTI=OFF: SUCCESS
- C++17 standard maintained for RTI 7.7 compatibility
- Ubuntu 26.04 Docker environment verified

Remaining Warnings (expected):
- BgViewer, KDChart, KDReports, Poppler-Qt6 not found (optional features)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-09-15 18:20:26 +00:00

153 lines
3.3 KiB
C++
Executable File

/**
* @RDE_HEADER@
* A special slider for zooming
* $Id$
* $HeadURL$
* $Author$
*/
#pragma once
#include <QWidget>
class QLabel;
class QSlider;
namespace THP
{
/**
* An specialized QSlider
* This slider has a special, fixed range from 0.1 - 100 which is mapped to
* suitable map scales used in the GUEZ.
* The scale is not linear - instead it has a model behind. in smaller scales -
* slider's going to 0.1 - it's resolution is finer than on larger scales -
* slider's going to 100.
* The slider accpets only values within the range 0.1....100. Other values are ignored.
*/
class ZoomSlider : public QWidget
{
Q_OBJECT
Q_PROPERTY(Qt::Orientation Orientation READ getOrientation WRITE setOrientation)
Q_PROPERTY(bool showDescriptionLabel READ getShowDescriptionLabel WRITE setShowDescriptionLabel)
Q_PROPERTY(bool showValueLabel READ getShowValueLabel WRITE setShowValueLabel)
public:
/**
* constructor
*/
explicit ZoomSlider(QWidget *parent = nullptr);
/**
* get the actual Zoom value.
* @return float with the zoom value
*/
double getZoomValue() const;
/**
* Sets the Orientation.
* @param a_orientation The slider's orientation.
*/
void setOrientation(Qt::Orientation a_orientation);
/**
*
*/
Qt::Orientation getOrientation() const;
bool getShowDescriptionLabel() const;
void setShowDescriptionLabel(bool bVisible);
bool getShowValueLabel() const;
void setShowValueLabel(bool bVisible);
/**
* format the given value as it would be shown in the zoom label
*/
QString formatValue(double value) const;
public Q_SLOTS:
/**
* set the slider's actual zoom value. This is a QT-Slot.
* The slider accpet only values within it's range 0.1...100.
* Other values are ignored.
* @param a_zoomValue the new zoom value.
*/
void setZoomValue(double zoomValue);
Q_SIGNALS:
/**
* A QT-Signal which is emitted whenever the slider's value has changed.
* The newly set zoom value is delivered as argument.
*/
void valueChanged(double a_value);
private Q_SLOTS:
/**
* Update the label text
*/
void updateLabel(double newValue);
private:
/**
* Contains the slider's minimum zoom value
*/
const double m_InternalMin;
/**
* Contains the slider's maximum zoom value
*/
const double m_InternalMax;
/**
* Contains the slider's lower threshold value.
* The lower threshold is at 50% of the sliders range.
*/
const int m_LowerThreshold;
/**
* Contains the slider's upper threshold value.
* The upper threshold is at 75% of the sliders range.
*/
const int m_UpperThreshold;
/**
* Contains the slider's range minimum value
*/
const int m_MinRange;
/**
* Contains the slider's range maximum value
*/
const int m_MaxRange;
/**
* The QSlider
*/
QSlider *m_Slider;
/**
* The label for showing the exact slider value.
*/
QLabel *m_lbl;
/**
* The label for showing the 'zoom' text
*/
QLabel *m_text;
/**
* contains the zoom value
*/
double m_ZoomValue;
/**
* The current value of the slider to avoid loops
*/
int m_curSliderVal;
private slots :
/**
* Calculates the zoom value from the slider's position
*/
void calcZoomFromSlider(int a_value);
};
} // namespace THP