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>
203 lines
3.5 KiB
C++
203 lines
3.5 KiB
C++
/**
|
|
* @RDE_HEADER@
|
|
*
|
|
* Widgets that change from QLabel to Q* if clicked (and not read only)
|
|
*
|
|
* $Id$
|
|
* $HeadURL$
|
|
* $Author$
|
|
*/
|
|
|
|
#pragma once
|
|
#include <QWidget>
|
|
#include <QLabel>
|
|
#include <QStackedWidget>
|
|
#include <QMap>
|
|
|
|
class QSpinBox;
|
|
class QDoubleSpinBox;
|
|
class QCheckBox;
|
|
class QLineEdit;
|
|
class QComboBox;
|
|
|
|
namespace LtsWidgets {
|
|
class LtsBitfieldWidget;
|
|
}
|
|
|
|
enum class RwMode {
|
|
ReadOnly,
|
|
WriteOnly,
|
|
ReadWrite
|
|
};
|
|
|
|
class MyLabel : public QLabel
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
using QLabel::QLabel;
|
|
|
|
signals:
|
|
void clicked();
|
|
|
|
protected:
|
|
void mousePressEvent(QMouseEvent *ev);
|
|
|
|
};
|
|
|
|
class ResizableStackedWidget : public QStackedWidget
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
explicit ResizableStackedWidget(QWidget *parent = nullptr);
|
|
|
|
int addWigdet(QWidget *widget);
|
|
int insertWidget(int index, QWidget *widget);
|
|
|
|
private slots:
|
|
void onCurrentChanged(int index);
|
|
|
|
};
|
|
|
|
class RWWidget : public QWidget
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
explicit RWWidget(QWidget *parent = nullptr);
|
|
|
|
void setToolTip(const QString &string);
|
|
|
|
public slots:
|
|
void onSetWritable();
|
|
|
|
private slots:
|
|
void onSetWritablePrivate();
|
|
|
|
signals:
|
|
void writableRequested();
|
|
|
|
protected:
|
|
MyLabel *m_label;
|
|
ResizableStackedWidget *m_stackedWidget;
|
|
QWidget *m_editableWidget;
|
|
|
|
};
|
|
|
|
class RWSpinBox : public RWWidget
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
explicit RWSpinBox(RwMode readOnly = RwMode::ReadWrite, QWidget *parent = nullptr);
|
|
|
|
void setMinimum(int min);
|
|
void setMaximum(int max);
|
|
|
|
void setValue(int val);
|
|
int value() const;
|
|
|
|
private:
|
|
QSpinBox *m_spinBox;
|
|
|
|
};
|
|
|
|
class RWDoubleSpinBox : public RWWidget
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
explicit RWDoubleSpinBox(RwMode readOnly = RwMode::ReadWrite, QWidget *parent = nullptr);
|
|
|
|
void setMinimum(double min);
|
|
void setMaximum(double max);
|
|
void setDecimals(int prec);
|
|
|
|
void setValue(double val);
|
|
double value() const;
|
|
|
|
signals:
|
|
void valueChanged();
|
|
private:
|
|
QDoubleSpinBox *m_doubleSpinBox;
|
|
int m_precision;
|
|
|
|
};
|
|
|
|
class RWCheckBox : public RWWidget
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
explicit RWCheckBox(RwMode readOnly = RwMode::ReadWrite, QWidget *parent = nullptr);
|
|
|
|
void setChecked(bool val);
|
|
bool isChecked() const;
|
|
|
|
private:
|
|
QCheckBox *m_checkBox;
|
|
|
|
};
|
|
|
|
class RWLineEdit : public RWWidget
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
explicit RWLineEdit(RwMode readOnly = RwMode::ReadWrite, QWidget *parent = nullptr);
|
|
|
|
void setMaxLength(int length);
|
|
|
|
void setText(const QString &text);
|
|
QString text() const;
|
|
|
|
private:
|
|
QLineEdit *m_lineEdit;
|
|
|
|
};
|
|
|
|
class RWComboBox : public RWWidget
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
explicit RWComboBox(RwMode readOnly = RwMode::ReadWrite, QWidget *parent = nullptr);
|
|
|
|
void addItem(const QString &text, int ordinal = -1);
|
|
void insertItem(int index, const QString &text, int ordinal = -1);
|
|
int count() const;
|
|
// int currentIndex() const; //Shouldn't be used...
|
|
int currentValue() const;
|
|
QString currentText() const;
|
|
// void setCurrentIndex(int index); //Shouldn't be used...
|
|
void setCurrentValue(int ordinal);
|
|
|
|
|
|
private:
|
|
QComboBox *m_comboBox;
|
|
QMap<int, QString> m_values; // For ReadOnly without ComboBox
|
|
|
|
};
|
|
|
|
class RWBitfieldWidget : public RWWidget
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
explicit RWBitfieldWidget(RwMode readOnly = RwMode::ReadWrite, QWidget *parent = nullptr);
|
|
|
|
void setValue(quint8 val);
|
|
quint8 value();
|
|
|
|
void setHasCaption(bool option);
|
|
bool hasCaption();
|
|
|
|
signals:
|
|
void valueChanged(quint8 newValue);
|
|
void hasCaptionChanged(bool option);
|
|
|
|
private:
|
|
LtsWidgets::LtsBitfieldWidget *m_bitfield;
|
|
};
|