Files
qt-migration-legatus/qt5-before/dlbo/Lts/Viewer/SituationMap/Symbology/property_result.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

138 lines
3.0 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**
* @RDE_HEADER@
* Class PropertyResult
* $Id$
* $HeadURL$
* $Author$
*/
#pragma once
// Own
#include "advanced_symbology_export.h"
#include "symbol_dictionary_types.h"
#include "symbol_properties.h"
#include "result_watcher.h"
#include <SymbologyImpl/advanced_symbology_logging.h>
// Qt
#include <QObject>
// forward
class QUuid;
//----------------------------------------------------------------------------
/**
* Store PropertyResult
*/
namespace AdvancedSymbology
{
using SymbolPropertyList = QList<SymbolProperties>;
/**
* @brief The PropertyResult class
*/
/**
* @brief The PropertyResult class mainly contains a SymbolPropertyList.
* It´s based on the future pattern. So the real result can only be retrieved if
* the asynchron operation has finished (and the result is ready).
* To standardize this you should use a propper watcher: PropertyResultWatcher.
*
* \sa \ref secResultWatcherExample
*/
class ADVANCED_SYMBOLOGY_EXPORT PropertyResult : public QObject
{
Q_OBJECT
/*! \name Construction, Destruction */
//@{
public:
///< Constructor
explicit PropertyResult();
///< Destructor
virtual ~PropertyResult();
//@}
/*! \name Data regarding requested */
//@{
//@}
/*! \name Data regarding processing*/
//@{
/**
* @brief taskId internal taskId
* @return internal taskId
*/
const QUuid &taskId() const;
/*! \name Data regarding result*/
//@{
/**
* @brief Get SymbolPropertyList
* @return SymbolPropertyList
*/
SymbolPropertyList properties() const;
//@}
Q_SIGNALS:
/// This signal is for internal usage only. Use PropertyResultWatcher!
void resultReadyInternal();
protected:
friend class SymbolDictionaryImpl;
void fireResultReady();
friend class ResultWatcher<PropertyResult>;
bool isResultReady() const;
void setTaskId(const QUuid &uuid);
void setProperties(const SymbolPropertyList &properties);
private:
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
};
//------------------------------------------------------------------------------
/**
* @brief The PropertyResultWatcher class takes one PropertyResult using setPropertyResult.
* If the background operation has finished, the signal resultReady is emitted exactly one time.
*
* \sa \ref secResultWatcherExample
*/
class ADVANCED_SYMBOLOGY_EXPORT PropertyResultWatcher : public ResultWatcher<PropertyResult>
{
Q_OBJECT
using BaseClass = ResultWatcher<PropertyResult>;
public:
///< Constructor
explicit PropertyResultWatcher(QObject *parent = nullptr);
///< Destructor
~PropertyResultWatcher() = default;
QSharedPointer<PropertyResult> propertyResult() const;
void setPropertyResult(const QSharedPointer<PropertyResult> &propertyResult);
protected:
LOGGER_T m_logger; ///< Interface of the Logging-Facility
};
} // namespace AdvancedSymbology