Files
qt-migration-legatus/qt5-before/dlbo/Lts/Common/LtsWidgets/lts_angle_edit.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

78 lines
2.5 KiB
C++

/**
* LtsAngleEdit
* $Id$
* $HeadURL$
* $Author$
*
* Created by Steve Kemayou, ESZS, 2024-10-16
*/
#pragma once
#include <QWidget>
#include <QDoubleSpinBox>
#include <QSet>
#include <LtsWidgets/lts_widgets_export.h>
class Ui_LtsAngleEdit;
namespace LtsWidgets
{
class LTSWIDGETS_EXPORT LtsAngleEdit : public QWidget
{
Q_OBJECT
public:
explicit LtsAngleEdit(QWidget *parent = nullptr);
~LtsAngleEdit();
enum class AngleUnitType : unsigned int
{
Deg = 0,
Mil = 1,
Rad = 2
};
Q_ENUM(AngleUnitType)
enum LimTuple : int
{
AngleMin,
AngleMax,
DecimalPlace,
SingleStep
};
const QString spinBoxName = QStringLiteral("sboxAngleValue");
QString toString(AngleUnitType t);
void setAngleUnit(const AngleUnitType &type);
void setValue(const double value, unsigned int dboxIndex=0); /// set value of spinbox with index. index start from 0. Counting from Left to right.
void setValue(const double value, AngleUnitType valueUnit); /// set value with current unit of given angle and convert it to current defined unit in combobox unit
void setValue(const double value, AngleUnitType valueUnit, unsigned int dboxIndex);
void hideUnits(const QVector<AngleUnitType> &list); /// list of units that will not be displayed in cbox
void showUnits(const QVector<AngleUnitType> &list); /// list of units to be displayed in cbox
LtsAngleEdit::AngleUnitType getAngleCurrentUnit() const; /// get cbox current unit
void initAngleEditWidget(const unsigned int sboxCount); /// this method initialize the angle edit widget. sboxCount give number of spinbox to be created
double getAngle(unsigned int sboxIndex = 0) const; /// sboxIndex default index value is 0; also when more than one dbox is created
double getAngleConverted(const double angle, LtsAngleEdit::AngleUnitType newAngleUnit, LtsAngleEdit::AngleUnitType oldAngleUnit);
void setEnable(int sbIndex, bool enabled); /// set spinbox at index enabled or disabled
void showSpinbox(int sbIndex, bool visible); /// show spinBox of specific index. Indexes start from 0.
protected:
void setCboxUnit(); /// fill combobox with units
private Q_SLOTS:
void onCBoxAngleUnitChanged();
private:
Ui_LtsAngleEdit *m_ui;
QMap<int, QSharedPointer<QDoubleSpinBox>> m_sBoxMap; /// Map<sbindex, sbWidget>
QMap<AngleUnitType, std::tuple<int,int,int,int>> m_dboxLimitMap; /// minAngle, maxAngle, decimal place, single step
AngleUnitType m_currAngleUnit;
QSet<int> m_hiddenUnits;
};
}//namespace LtsAngleEdit