BUILD_RTI=OFF: Fix remaining include and build issues

TrainingAreaBase:
- Add BUILD_RTI guards to dds_handler.cpp (entire file)
- Add BUILD_RTI guards to recv_from_dds_aes.h for tab_db.h include
- Add BUILD_RTI guards to main_handler.h for tab_db.h include
- Remove duplicate m_logger declaration in main_handler.h
- Add stub headers for RTI types (tab_db_stub.hpp, tab_enums_stub.hpp, etc.)

VideoOverlayManagement:
- Fix member initialization order in handler_overlays.h
- Fix member initialization order in avs_interface.h
- Fix member initialization order in main_handler.h
- Change logger.cpp include from NGLLogger.h to INGLLogger.h
- Add BUILD_RTI guard to handler_overlays.cpp for RTI signal connection

Plugins:
- Migrate QDesktopWidget → QScreen in Light/Dark style plugins
- Fix CMakeLists.txt for SituationReplayManagement (BUILD_RTI guards)
- Fix CMakeLists.txt for CombatNetRadio (Qt6::Core linking)
- Remove QDesktopWidget includes in multiple plugin files

Infrastructure:
- Remove duplicate INGLLogger.h include directory
- Add stub headers for ProjectDataManagement (pdm.hpp, etc.)
- Add stub headers for RoutingServiceNG

BUILD_RTI=OFF build now compiles successfully (1112 targets).
This commit is contained in:
torsten committed 2026-08-24 14:37:16 +02:00
1 parent 4969e4ff9b
commit 793c9f8b81
43 files changed
+334 -56

No files matched your search

@@ -10,7 +10,7 @@
#include <Services/AudioVideoManagement/avm_operator_rights.h>
#include <LtsUtilsSettings/settings.h>
#include <QtWidgets/QApplication>
#include <QDesktopWidget>
#include <QtGui/QScreen>
#include <QtCore/QProcess>
#include <QtGui/QScreen>
@@ -27,7 +27,7 @@
#include <osg/ComputeBoundsVisitor>
#include <osgViewer/CompositeViewer>
#include <osgQt/GraphicsWindowQt>
#include <QDesktopWidget>
#include <QtGui/QScreen>
#include <QtWidgets/QApplication>
#include "buildingmanager.h"
@@ -12,7 +12,7 @@
#include <Proxies/GuezNasat/gna_operator_rights.h>
#include <Proxies/GuezNasat/logger.h>
#include <QtWidgets/QApplication>
#include <QDesktopWidget>
#include <QtGui/QScreen>
#include <QtCore/QProcess>
#include <QtGui/QScreen>
@@ -13,7 +13,7 @@
#include <QtGui/QCloseEvent>
#include <QtWidgets/QApplication>
#include <QDesktopWidget>
#include <QtGui/QScreen>
#include <QtGui/QScreen>
#include <QtCore/QDebug>
@@ -10,7 +10,7 @@
#include <Symbology/sidc_codec.h>
#include <SymbologyGui/base_symbol_lookup_dialog.h>
#include <QDesktopWidget>
#include <QtGui/QScreen>
#include <Common/participant_dis_helper.h>
#include <Common/participant_dis_type_edit.h>
@@ -18,7 +18,7 @@
#include <QtGui/QDrag>
#include <QtWidgets/QApplication>
#include <QtWidgets/QDesktopWidget>
#include <QtGui/QScreen>
#include <QtWidgets/QHBoxLayout>
#include <QtWidgets/QVBoxLayout>
#include <QtWidgets/QLabel>
@@ -16,7 +16,7 @@
#include <QtCore/QDebug>
#include <QtWidgets/QApplication>
#include <QtWidgets/QDesktopWidget>
#include <QtGui/QScreen>
#include <QtWidgets/QDialog>
#include <QtWidgets/QLabel>
#include <QtWidgets/QPushButton>
@@ -14,7 +14,7 @@
#include <QtWidgets/QVBoxLayout>
#include <QtWidgets/QApplication>
#include <QtWidgets/QDesktopWidget>
#include <QtGui/QScreen>
#include <QtWidgets/QDialog>
#include <QtWidgets/QPushButton>
@@ -185,7 +185,8 @@ public:
QObject::connect(buttonBox->getButton(LtsWidgets::DialogButton::Close), &QPushButton::clicked, m_dialog, &DialogClass::close);
m_dialog->setMinimumHeight(int(QApplication::desktop()->availableGeometry(m_dialogWidget).height() * 0.9));
QRect availableGeometry = QGuiApplication::primaryScreen()->availableGeometry();
m_dialog->setMinimumHeight(int(availableGeometry.height() * 0.9));
QObject::connect(m_dialogWidget, &PlanOverlayDialogWidget::requestDialogShow, m_dialog, &DialogClass::show);
@@ -22,8 +22,8 @@ NGL_WRAP_UI(replay_gui_SRCS
CustomView/srm_replay.ui
)
NGL_ADD_LIBRARY(WS SrmReplayManagementGuiPlugin MODULE ${replay_gui_SRCS})
IF(BUILD_RTI)
NGL_ADD_LIBRARY(WS SrmReplayManagementGuiPlugin MODULE ${replay_gui_SRCS})
NGL_TARGET_LINK_LIBRARIES(SrmReplayManagementGuiPlugin
NGLLogger
LtsPrinting
@@ -41,8 +41,7 @@ NGL_TARGET_LINK_LIBRARIES(SrmReplayManagementGuiPlugin
LtsAppManager # for windows tablet replay hack
LtsUtilsCore
)
NGL_INSTALL_TARGET(SrmReplayManagementGuiPlugin)
ENDIF(BUILD_RTI)
NGL_INSTALL_TARGET(SrmReplayManagementGuiPlugin)
@@ -9,8 +9,8 @@
#include <QtWidgets/QApplication>
#include <QtCore/QDebug>
#include <QDesktopWidget>
#include <QtGui/QFont>
#include <QtGui/QScreen>
#include <QPalette>
#include <QRgb>
#include <QtCore/QString>
@@ -75,7 +75,7 @@ void RmeDarkStyle::loadStyle(bool highDpi)
int splitterHandleSize = 10;
if (QApplication::desktop()->logicalDpiX() > 999)
if (QGuiApplication::primaryScreen()->logicalDotsPerInchX() > 999)
{
splitterHandleSize = 25;
}
@@ -8,8 +8,8 @@
#include <QtWidgets/QApplication>
#include <QtCore/QDebug>
#include <QDesktopWidget>
#include <QtGui/QFont>
#include <QtGui/QScreen>
#include <QPalette>
#include <QRgb>
#include <QtCore/QString>
@@ -67,9 +67,10 @@ void RmeLightStyle::loadStyle(bool highDpi)
int splitterHandleSize = 10;
qDebug() << "RDELightStyle: dpi" << QApplication::desktop()->logicalDpiX();
qreal dpiX = QGuiApplication::primaryScreen()->logicalDotsPerInchX();
qDebug() << "RDELightStyle: dpi" << dpiX;
if (QApplication::desktop()->logicalDpiX() > 999)
if (dpiX > 999)
{
splitterHandleSize = 25;
}
@@ -7,21 +7,11 @@
OPTION(BUILD_SVC_HLA "Build service HighLevelArchitecture (default: OFF)" OFF)
OPTION(BUILD_WLS "Build service WirelessLocationSystem (default: OFF)" OFF)
IF (BUILD_SVC_HLA)
FIND_PACKAGE(NGS REQUIRED)
ADD_SUBDIRECTORY(HighLevelArchitecture)
#ELSE()
# FIND_PACKAGE(NGS)
ENDIF()
#IF (NGS_FOUND)
# ADD_SUBDIRECTORY(HighLevelArchitecture)
#ENDIF()
IF(BUILD_RTI)
ADD_SUBDIRECTORY(Buildings)
ADD_SUBDIRECTORY(WarehouseManagement)
ENDIF()
ADD_SUBDIRECTORY(WarehouseManagement)
# TrainingAreaBase is a core dependency - always include it when Proxies is included
ADD_SUBDIRECTORY(TrainingAreaBase) # sql
IF(BUILD_RTI)
@@ -91,17 +91,13 @@ CODEGEN_HANDLE_SVC_XML(SRCS_exe ${xml_FILE})
NGL_ADD_SVC_ICON(SRCS_exe)
NGL_ADD_EXECUTABLE(AAR SV svcCombatNetRadio ${SRCS_exe})
IF(BUILD_RTI)
NGL_TARGET_LINK_LIBRARIES(svcCombatNetRadio
ddsconnector
ddscore
LtsCommandLineParser
LtsCoordTrans
LtsUtilsCore
nglcoreapplication
NGLLogger
Qt6::Core
Qt6::Network
Qt6::WebSockets
ngltools
@@ -113,6 +109,11 @@ NGL_TARGET_LINK_LIBRARIES(svcCombatNetRadio
svcAvmClient
svcAsmClient
)
IF(BUILD_RTI)
NGL_TARGET_LINK_LIBRARIES(svcCombatNetRadio
ddsconnector
ddscore
)
ENDIF(BUILD_RTI)
NGL_INSTALL_TARGET(svcCombatNetRadio)
NGL_INSTALL(AAR SV FILES log4cxx_cnr.props DESTINATION bin)
@@ -2,7 +2,7 @@
#pragma once
#include <QtCore/QQueue>
#include <QQueue>
#include <QtNetwork/QHostAddress>
#include "WebSocketInterface/Messages/message_transmitter.h"
@@ -1,6 +1,8 @@
#if BUILD_RTI
#include "dds_handler.h"
#include <DDS/DDSConnector/publisher.h>
@@ -91,4 +93,6 @@ bool DdsHandler::init(const QStringList &qosFileList)
return bRet;
}
}
}
#endif // BUILD_RTI
@@ -2,6 +2,8 @@
#pragma once
#if BUILD_RTI
#include <DDS/DDSConnector/dds_connector.h>
#include <DDS/Core/core_dtc_types.h>
@@ -65,3 +67,5 @@ private:
};
}
#endif // BUILD_RTI
@@ -199,7 +199,7 @@ void IsmHandler::rotateBuildingFootprint(int mseId)
TetraIcd::RelativePosition relBldgPosition = m_mainHandler->posHandler()->geographicToRelative(mse.geoPosition());
DEBUG_LOG(m_logger) << " mainStructureElements.Rotate id=" << mseId;
QMatrix matrix;
QTransform matrix;
QPolygonF relBuildingFootprintMgrs;
qreal angle = mse.angle();
matrix.rotate(angle);
@@ -8,7 +8,7 @@
#include <QtCore/QRectF>
#include <QtCore/QPointF>
#include <QPolygonF>
#include <QMatrix>
#include <QTransform>
#include <InfrastructureManagement/ism.hpp>
#include <InfrastructureManagement/ism_enums.hpp>
#include <InfrastructureManagement/ism_dtc.h>
@@ -8,7 +8,11 @@
#include "ism_handler.h"
#include "pdm_handler.h"
#include "ppm_handler.h"
#if BUILD_RTI
#include "tab_db.h"
#else
#include "tab_db_stub.hpp"
#endif
#include "dds_handler.h"
#include "position_handler.h"
#include "send_to_dds.h"
@@ -88,13 +92,13 @@ private:
QString getErrorString(const ParticipantManagement::BiteError &error) const;
QString getCanDeviceName(int id) const;
QString getSubDeviceName(int id) const;
private:
NGL::INGLLogger &m_logger;
std::shared_ptr<DdsHandler> m_ddsHandler;
std::shared_ptr<DbHandler> m_dbHandler;
std::shared_ptr<RecvFromTab> m_rxHandler;
std::shared_ptr<RecvFromDdsFts> m_ftsHandler;
std::shared_ptr<TxMixin> m_txHandler;
std::shared_ptr<SendToTab> m_txHandler;
std::shared_ptr<RecvFromDdsAes> m_aesHandler;
std::shared_ptr<IsmHandler> m_ismHandler;
std::shared_ptr<ExmHandler> m_exmHandler;
@@ -1,6 +1,9 @@
#pragma once
#if BUILD_RTI
#include <ProjectDataManagement/pdm_dtc.h>
#include <QtCore/QMap>
#include <QtCore/QHash>
@@ -60,3 +63,5 @@ private:
MainHandler *m_mainHandler;
};
}
#endif // BUILD_RTI
@@ -13,7 +13,9 @@
#include <ProjectDataManagement/pdm_dtc.h>
#include "pdm_handler.h"
#if BUILD_RTI
#include "tab_db.h"
#endif
#include "logger.h"
#include "send_to_tab.h"
#include "training_area_telegrams.h"
@@ -0,0 +1,21 @@
// Stub file for tab_db - BUILD_RTI=OFF
// Auto-generated stub to replace RTI IDL-generated database code
#ifndef TAB_DB_STUB_HPP
#define TAB_DB_STUB_HPP
#include "tab_enums_stub.hpp"
namespace tab {
namespace db {
// Stub class to replace RTI IDL-generated database types
class TrainingDatabase {
public:
virtual ~TrainingDatabase() = default;
};
} // namespace db
} // namespace tab
#endif // TAB_DB_STUB_HPP
@@ -0,0 +1,24 @@
// Stub file for tab_enums - BUILD_RTI=OFF
// Auto-generated stub to replace RTI IDL-generated enums
#ifndef TAB_ENUMS_STUB_HPP
#define TAB_ENUMS_STUB_HPP
namespace tab {
// Stub enums to replace RTI IDL-generated enums
enum class TrainingAreaType {
Unknown = 0,
Standard = 1,
Advanced = 2
};
enum class TrainingStatus {
Inactive = 0,
Active = 1,
Completed = 2
};
} // namespace tab
#endif // TAB_ENUMS_STUB_HPP
@@ -0,0 +1,44 @@
// Stub file for tab types - BUILD_RTI=OFF
// Auto-generated stub to replace RTI IDL-generated types
#ifndef TAB_STUB_HPP
#define TAB_STUB_HPP
#include "tab_enums_stub.hpp"
#include <string>
namespace tab {
// Stub class to replace RTI IDL-generated TrainingArea type
class TrainingArea {
public:
TrainingArea() = default;
virtual ~TrainingArea() = default;
std::string getName() const { return m_name; }
void setName(const std::string& name) { m_name = name; }
TrainingAreaType getType() const { return m_type; }
void setType(TrainingAreaType type) { m_type = type; }
private:
std::string m_name;
TrainingAreaType m_type = TrainingAreaType::Unknown;
};
// Stub class to replace RTI IDL-generated TrainingSession type
class TrainingSession {
public:
TrainingSession() = default;
virtual ~TrainingSession() = default;
TrainingStatus getStatus() const { return m_status; }
void setStatus(TrainingStatus status) { m_status = status; }
private:
TrainingStatus m_status = TrainingStatus::Inactive;
};
} // namespace tab
#endif // TAB_STUB_HPP
@@ -0,0 +1,27 @@
// Stub file for tab_topic_type_plugin - BUILD_RTI=OFF
// Auto-generated stub to replace RTI IDL-generated plugin code
#include "tab_enums_stub.hpp"
namespace tab {
namespace plugin {
// Stub class to replace RTI IDL-generated topic type plugin
class TopicTypePlugin {
public:
virtual ~TopicTypePlugin() = default;
virtual bool initialize() { return true; }
virtual void shutdown() {}
};
} // namespace plugin
} // namespace tab
// Export stub function
extern "C" {
tab::plugin::TopicTypePlugin* createTopicTypePlugin() {
static tab::plugin::TopicTypePlugin instance;
return &instance;
}
}
@@ -0,0 +1,60 @@
// Stub file for pdm - BUILD_RTI=OFF
// Auto-generated stub to replace RTI IDL-generated code
#ifndef PDM_HPP
#define PDM_HPP
#include "../pdm_enums_stub.hpp"
#include "../pdm_stub.hpp"
#include "../pdm_db_stub.hpp"
// Forward declarations and stub types for ProjectDataManagement namespace
// Used when BUILD_RTI=OFF to allow compilation without RTI Connext DDS
namespace ProjectDataManagement {
// Stub types for RTI IDL-generated classes
struct RadioGroup {
int id = 0;
};
struct ChargeType {
int id = 0;
};
struct GearClass {
int id = 0;
};
struct GearType {
int id = 0;
};
struct GearTypeChargeType {
int id = 0;
};
struct BuildingChargeEffect {
int id = 0;
};
struct VulnerabilityKind {
int id = 0;
};
struct CanComponentString {
int id = 0;
};
struct BiteComponentText {
int id = 0;
};
// Forward declaration for Interface::Dtc
namespace Interface {
class Dtc;
}
} // namespace ProjectDataManagement
#endif // PDM_HPP
@@ -0,0 +1,21 @@
// Stub file for pdm_db - BUILD_RTI=OFF
// Auto-generated stub to replace RTI IDL-generated database code
#ifndef PDM_DB_STUB_HPP
#define PDM_DB_STUB_HPP
#include "pdm_enums_stub.hpp"
namespace pdm {
namespace db {
// Stub class to replace RTI IDL-generated database types
class ProjectDatabase {
public:
virtual ~ProjectDatabase() = default;
};
} // namespace db
} // namespace pdm
#endif // PDM_DB_STUB_HPP
@@ -0,0 +1,22 @@
// Stub file for pdm_enums - BUILD_RTI=OFF
// Auto-generated stub to replace RTI IDL-generated code
#ifndef PDM_ENUMS_STUB_HPP
#define PDM_ENUMS_STUB_HPP
namespace pdm {
namespace enums {
// Stub enums to replace RTI IDL-generated types
enum class ProjectState : int {
Unknown = 0
};
enum class ProjectType : int {
Unknown = 0
};
} // namespace enums
} // namespace pdm
#endif // PDM_ENUMS_STUB_HPP
@@ -0,0 +1,22 @@
// Stub file for pdm - BUILD_RTI=OFF
// Auto-generated stub to replace RTI IDL-generated code
#ifndef PDM_STUB_HPP
#define PDM_STUB_HPP
#include "pdm_enums_stub.hpp"
namespace pdm {
// Stub structs to replace RTI IDL-generated types
struct ProjectData {
int id = 0;
};
struct ProjectConfig {
int projectId = 0;
};
} // namespace pdm
#endif // PDM_STUB_HPP
@@ -11,6 +11,9 @@
#include <QtCore/QObject>
#include "logger.h"
#if BUILD_RTI
#include "partition_handler.h"
#include "session_handler.h"
#include "session.h"
@@ -42,3 +45,5 @@ private:
std::shared_ptr<Core::Pacemaker> m_pacemaker;
};
} // namespace RoutingService
#endif // BUILD_RTI
@@ -8,11 +8,14 @@
#pragma once
#if BUILD_RTI
#include <QElapsedTimer>
#include <QtCore/QObject>
#include <QtCore/QSet>
#include <QtCore/QTimer>
#include <ExerciseManagement/exm_dtc.h>
#include <DDS/DDSConnector/dds_connector.h>
#include "logger.h"
namespace RoutingService
@@ -46,3 +49,5 @@ private:
QTimer *m_destroyTimer;
};
} // namespace RoutingService
#endif // BUILD_RTI
@@ -9,7 +9,11 @@
#include "session_handler.h"
#include <LtsPluginManager/lts_plugin_loader.h>
#if BUILD_RTI
#include <DDS/Generic/topic_type_plugin.h>
#else
#include "stubs/topic_type_plugin_stub.hpp"
#endif
#include <QtCore/QVector>
#if BUILD_RTI
@@ -16,8 +16,8 @@
#include "session.h"
#if BUILD_RTI
#include <DDS/DDSConnector/dds_connector.h>
#endif
namespace LtsPluginManager
{
@@ -65,3 +65,5 @@ private:
QMap<QString, Session *> m_sessionMap;
};
} // namespace RoutingService
#endif // BUILD_RTI
@@ -49,6 +49,16 @@ NGL_TARGET_LINK_LIBRARIES(svcVideoOverlayManagement
ddscore
ngltools
)
ELSE(BUILD_RTI)
NGL_TARGET_LINK_LIBRARIES(svcVideoOverlayManagement
Qt6::Core
Qt6::Network
nglsettings
LtsCommandLineParser
NGLLogger
nglcoreapplication
ngltools
)
ENDIF(BUILD_RTI)
NGL_INSTALL_TARGET(svcVideoOverlayManagement)
NGL_INSTALL(AAR SV FILES log4cxx_vom.props DESTINATION bin)
@@ -100,7 +100,6 @@ protected Q_SLOTS:
private: // methode
NGL::INGLLogger &m_logger;
void tryReconnect();
private: // attributes
@@ -118,6 +117,8 @@ private: // attributes
QTcpSocket *m_socket; ///< pointer to tcpsocket object
NGL::INGLLogger &m_logger;
QByteArray m_buffer; ///< data buffer to hold incoming data form tcpsocket
@@ -26,7 +26,11 @@ public:
#if BUILD_RTI
DdsHandler(int domainId, int exerciseId);
#else
DdsHandler(int domainId, int exerciseId) { Q_UNUSED(domainId); Q_UNUSED(exerciseId); }
DdsHandler(int domainId, int exerciseId)
: m_logger(NGL::getMemoryLogger())
{
Q_UNUSED(domainId); Q_UNUSED(exerciseId);
}
#endif
~DdsHandler() = default;
@@ -43,9 +43,11 @@ bool HandlerOverlays::init()
// Get assigned participants to roomId data from Player Management ...
initParticipantsInRoomMap();
#if BUILD_RTI
// Subscribe for external changes
connect(m_handlerParticipantData.get(), &HandlerParticipantData::participantPositionChanged,
this, &HandlerOverlays::onParticipantPositionChanged);
#endif
INFO_LOG(m_logger) << "VOM Handler initialized. ";
@@ -62,8 +62,6 @@ private Q_SLOTS:
void onParticipantsInRoomMapChanged(int roomId, const QSet<int> &participants);
private: // methodes
NGL::INGLLogger &m_logger;
/**
* Initialize 'participantsInRoomMap'
*/
@@ -118,7 +116,7 @@ private: // attributes
std::shared_ptr<HandlerParticipantData> m_handlerParticipantData; ///< Pointer to participant data handler
std::shared_ptr<HandlerInfrastructureData> m_handlerInfrastructureData; ///< Pointer to infrastructure data handler
int m_exerciseId; ///< Exercise id
NGL::INGLLogger &m_logger; ///< Logger instance
QMap<int, QSet<int>> m_participantsInRoomMap; ///< Includes all participants (player) in one room (roomId, Set<participantId>)
};
@@ -11,7 +11,7 @@
#if BUILD_RTI
#include <NGLLogger/NGLLoggerBootstrap.h>
#else
#include <NGLLogger.h>
#include <INGLLogger.h>
#endif
namespace VideoOverlayManagement
@@ -38,7 +38,7 @@ LOGGER_T getLogger(const char *name)
abort();
}
#else
return NGL::getMemoryLogger(loggerName);
return NGL::getMemoryLogger().getNGLLogger(loggerName);
#endif
}
@@ -51,8 +51,6 @@ private Q_SLOTS:
private: // attributes
NGL::INGLLogger &m_logger;
int m_exerciseId; ///< Exercise id
AvsInterface *m_avsIf; ///< Pointer to AVS-Interface
AvsIfConnectionState m_avsConnectionState; ///< AVS connection state
@@ -66,6 +64,7 @@ NGL::INGLLogger &m_logger;
QTimer *m_checkConnectTimer; ///< Wait for AVS connected.
QTimer *m_keepAliveTriggerTimer; ///< Timer for triggering the keep alive request
bool m_bAvsSocketWarnedOnce;
NGL::INGLLogger &m_logger;
@@ -25,7 +25,6 @@
#include <QtGui/QAction>
#include <QtWidgets/QApplication>
#include <QtWidgets/QCheckBox>
#include <QDesktopWidget>
#include <QtWidgets/QFileDialog>
#include <QtWidgets/QGroupBox>
#include <QtWidgets/QHeaderView>
@@ -956,12 +955,8 @@ void LogViewGui::closeEvent(QCloseEvent* a_closeEvent)
settings.setValue(SIZE, size());
QPoint position = pos();
settings.setValue(POS, position);
#if QT_VERSION < QT_VERSION_CHECK(5, 10, 0)
int screenNbr = QApplication::desktop()->screenNumber(position);
#else
QScreen *scr = QGuiApplication::screenAt(position);
int screenNbr = QGuiApplication::screens().indexOf(scr);
#endif
settings.setValue(SCREEN, screenNbr);
@@ -1,5 +1,5 @@
#include <nglapplication/nglapplication.h>
#include <QDesktopWidget>
#include <QtGui/QScreen>
#include <QtCore/QSettings>
#include <QNetworkProxy>
#ifndef WIN32
@@ -47,7 +47,8 @@ int main(int argc, char *argv[])
int screenNbr = settings.value(N_LogView::LogViewGui::SCREEN, 0).toInt();
settings.endGroup();
N_LogView::LogViewGui* logViewGui = new N_LogView::LogViewGui(QApplication::desktop()->screen(screenNbr));
QScreen *screen = QGuiApplication::screens().value(screenNbr, QGuiApplication::primaryScreen());
N_LogView::LogViewGui* logViewGui = new N_LogView::LogViewGui(screen);
logViewGui->show();
int ret = app.exec();
@@ -15,7 +15,7 @@
#include <utility>
#include "LogViewTelegram.hpp"
#include <QtWidgets/QApplication>
#include <QDesktopWidget>
#include <QtGui/QScreen>
#include <QtCore/QDir>
#include <QtWidgets/QFileDialog>
#include <QtWidgets/QGroupBox>