Initial commit

This commit is contained in:
torsten committed 2026-08-13 18:33:10 +02:00
commit b7d90b9afe
16245 files changed
+3396666

No files matched your search

+68
View File
@@ -0,0 +1,68 @@
#
# $Id$
# $HeadURL$
# $Author$
#
# PlanOverlays Test Application
SET(EXE_SRCS
main.cpp
../plan_overlay_dialog.cpp
../plan_overlay_dialog.h
../plan_overlay_view.cpp
../plan_overlay_view.h
../plan_overlay_model.cpp
../plan_overlay_model.h
log4cxx_planOverlaysTest.props
)
SET(EXE_HDRS
)
SET(EXE_UICS
)
NGL_WRAP_UI(EXE_SRCS ${EXE_UICS})
SET(LOG4CXX_PROPS_FILE log4cxx_planOverlaysTest.props)
NGL_ADD_EXECUTABLE(WS NO_TRANSLATION planOverlaysTest ${EXE_SRCS} ${EXE_HDRS} ${EXE_UICS})
NGL_TARGET_LINK_LIBRARIES(
planOverlaysTest
NGLLogger
LtsSession
LtsSessionData
LtsWidgets
nglapplication
LtsPluginManager
GuiPluginInterface
FlmDataPluginInterface
OpmDataPluginInterface
ExmDataPluginInterface
LtsFileDialog
# ArcGIS::ArcGIS
LtsPluginLoader
LtsUtilsGuiDds
Qt5::Gui
)
IF(TARGET planOverlaysTest)
if(BUILD_PlanEditorCopyConfig)
ADD_CUSTOM_COMMAND( TARGET planOverlaysTest POST_BUILD
COMMAND ${CMAKE_COMMAND}
ARGS -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/${LOG4CXX_PROPS_FILE} $<TARGET_FILE_DIR:planOverlaysTest>/${LOG4CXX_PROPS_FILE}
)
ENDIF()
ENDIF()
IF(MSVC)
# Configure the template file
SET(VS_USER_FILE planOverlaysTest.vcxproj.user)
configure_file( PlanOverlaysTest.vcxproj.user.in ${CMAKE_CURRENT_BINARY_DIR}/${VS_USER_FILE} @ONLY)
ENDIF(MSVC)
NGL_INSTALL_TARGET_DEVEL(planOverlaysTest)
NGL_INSTALL(FILES WS ${CMAKE_CURRENT_SOURCE_DIR}/${LOG4CXX_PROPS_FILE} DESTINATION "bin" COMPONENT Devel)
@@ -0,0 +1,39 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LocalDebuggerEnvironment>PATH=C:\ExtFW\bin;%PATH%</LocalDebuggerEnvironment>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
<LocalDebuggerCommandArguments>
</LocalDebuggerCommandArguments>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='RelWithDebInfo|Win32'">
<LocalDebuggerEnvironment>PATH=C:\ExtFW\bin;%PATH%</LocalDebuggerEnvironment>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LocalDebuggerEnvironment>PATH=C:\ExtFW\bin;%PATH%</LocalDebuggerEnvironment>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='MinSizeRel|Win32'">
<LocalDebuggerEnvironment>PATH=C:\ExtFW\bin;%PATH%</LocalDebuggerEnvironment>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LocalDebuggerEnvironment>PATH=C:\ExtFW\bin;%PATH%</LocalDebuggerEnvironment>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
<LocalDebuggerCommandArguments>
</LocalDebuggerCommandArguments>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'">
<LocalDebuggerEnvironment>PATH=C:\ExtFW\bin;%PATH%</LocalDebuggerEnvironment>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LocalDebuggerEnvironment>PATH=C:\ExtFW\bin;%PATH%</LocalDebuggerEnvironment>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='MinSizeRel|x64'">
<LocalDebuggerEnvironment>PATH=C:\ExtFW\bin;%PATH%</LocalDebuggerEnvironment>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
</PropertyGroup>
</Project>
@@ -0,0 +1,138 @@
log4j.reset=true
log4j.rootLogger=WARN, file
# SituationMap
###########################################################
log4j.logger.PlanEditor=DEBUG
log4j.logger.PlanEditor.SymbolAdjustDialog=TRACE
log4j.logger.SituationMap.SitMapTestApp=ERROR
log4j.logger.SituationMap.SitMap=ERROR
log4j.logger.SituationMap.MapImpl=ERROR
log4j.logger.SituationMap.MapSettings=WARN
log4j.logger.SituationMap.MapInitializer=WARN
log4j.logger.SituationMap.LayerFactoryImpl=ERROR
log4j.logger.SituationMap.CoordTranslationFunctorImpl=ERROR
log4j.logger.SituationMap.GridImpl=ERROR
log4j.logger.SituationMap.ObjectFactory=ERROR
log4j.logger.SituationMap.IdGenerator=ERROR
log4j.logger.SituationMap.ObjectContainer=ERROR
log4j.logger.SituationMap.ObjectContainerCTC=ERROR
log4j.logger.SituationMap.SymbolDictionary=ERROR
log4j.logger.SituationMap.SymbolDictionaryImpl=ERROR
log4j.logger.SituationMap.SymbolDictionaryExtendedImpl=ERROR
log4j.logger.SituationMap.Sidc2525Delta=ERROR
log4j.logger.SituationMap.AbstractMapObjectImpl=ERROR
log4j.logger.SituationMap.AbstractEffectSimulationImpl=ERROR
log4j.logger.SituationMap.OriginTranslated=ERROR
log4j.logger.SituationMap.PositionsTranslated=ERROR
log4j.logger.SituationMap.AbstractMultiPointMapObjectImpl=ERROR
log4j.logger.SituationMap.AbstractSinglePointMapObjectImpl=ERROR
log4j.logger.SituationMap.BasicPathObjectImpl=ERROR
log4j.logger.SituationMap.PolygonImpl=ERROR
log4j.logger.SituationMap.PolylineImpl=ERROR
log4j.logger.SituationMap.TextImpl=ERROR
log4j.logger.SituationMap.AreaFireImpl=ERROR
log4j.logger.SituationMap.BiologicalAgentImpl=ERROR
log4j.logger.SituationMap.BuildingOutlineImpl=ERROR
log4j.logger.SituationMap.ChemicalAgentImpl=ERROR
log4j.logger.SituationMap.DangerAreaImpl=ERROR
log4j.logger.SituationMap.FunctionalAreaImpl=ERROR
log4j.logger.SituationMap.HitLineImpl=ERROR
log4j.logger.SituationMap.MineImpl=ERROR
log4j.logger.SituationMap.ParticipantImpl=ERROR
log4j.logger.SituationMap.SingleFireImpl=ERROR
log4j.logger.SituationMap.IndicationContainer=ERROR
log4j.logger.SituationMap.AbstractGraphicalObject=ERROR
log4j.logger.SituationMap.GraphicalObjectEllipse=ERROR
log4j.logger.SituationMap.GraphicalObjectPath=ERROR
log4j.logger.SituationMap.GraphicalObjectMultiPath=ERROR
log4j.logger.SituationMap.GraphicalObjectPictureMarker=ERROR
log4j.logger.SituationMap.GraphicalObjectRange=ERROR
log4j.logger.SituationMap.GraphicalObjectText=ERROR
log4j.logger.SituationMap.TacticalAppearance=ERROR
log4j.logger.SituationMap.MessageBase=ERROR
log4j.logger.SituationMap.EventDispatcher=ERROR
log4j.logger.SituationMap.RubberbandFactory=DEBUG
# Appnd_File
###########################################################
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.MaxFileSize=1MB
log4j.appender.file.MaxBackupIndex=9
log4j.appender.file.file=${LOG4QT_LOGDIR}/${LOG4QT_USER}_SituationMapTestApp.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d %-5p %c |#| %m (%.50F:%L) %n
# Appnd_Console
###########################################################
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern= %d %-5p %c{1} |#| %m (%-.30F:%L) %n
#log4j.appender.stdout.layout.ConversionPattern= %d %-5p %-30c |#| %m (%-.30F:%L) %n
# Appnd_Syslog
###########################################################
log4j.appender.syslog=org.apache.log4j.SyslogAppender
log4j.appender.syslog.Threshold=ERROR
log4j.appender.syslog.SysLogHost=localhost
log4j.appender.syslog.Facility=LOCAL7
log4j.appender.syslog.layout=org.apache.log4j.PatternLayout
log4j.appender.syslog.layout.ConversionPattern= %-4r %-5p %c %x - %m
log4j.appender.syslog.LevelRangeFilter.AcceptOnMatch=true
log4j.appender.syslog.LevelRangeFilter.LevelMin=FATAL
log4j.appender.syslog.LevelRangeFilter.LevelMax=FATAL
###########################################################
###########################################################
###########################################################
# 1) Available Levels in LOG4CXX Version 0.10.0:
# TRACE,
# DEBUG,
# INFO,
# WARN,
# ERROR
# FATAL
#
# d = date/time
# p = priority (Level)
# c = category/channel
# m = message
# F = file
# L = line
# n = platform dependent line separator character or characters.
# ....
#
# Examples for console:
# a)
# %d %p %c #%m# (%.50F:%L)%n
# date/time
# priority
# category/channel
# #message#
# (Maximal 50Character des Filename von rechts:Line)
# line separator
#
# b)
# %d (%.15F:%L) %-5p %c |#| %m%n
# date/time
# (Maximal 15Character des Filename von rechts:Line)
# priority, Right pad with spaces if the priority name is less than 5 characters long.
# category/channel
# message
# line separator
#
+182
View File
@@ -0,0 +1,182 @@
/**
* @RDE_HEADER@
* main
* $Id$
* $HeadURL$
* $Author$
*/
#include <nglapplication/nglapplication.h>
#include <NGLLogger/INGLLogger.h>
#include "../plan_overlay_dialog.h"
#include "../plan_overlay_model.h"
#include "../plan_overlay_view.h"
#include <LtsWidgets/lts_base_layout_widget.h>
#include <LtsPluginManager/lts_plugin_loader.h>
#include <PluginInterfaces/style_plugin_interface.h>
#include <PluginInterfaces/project_plugin_interface.h>
#include <Plugins/SituationMapPlugin/situation_map_gui_plugin_interface.h>
#include <QtCore/QDir>
#include <QtCore/QPointer>
#include <QtCore/QStandardPaths>
#include <QtGui/QSurface>
#include <QtWidgets/QMainWindow>
#include <QtWidgets/QDesktopWidget>
#include <QtWidgets/QDialog>
#include <QtWidgets/QHBoxLayout>
#include <QtWidgets/QMessageBox>
#include <QtWidgets/QLabel>
#include <iostream>
#include <memory>
// -------------------------------------------------------------------
int main (int argc, char* argv[])
{
// ESRI :
#ifdef Q_OS_WIN
// Force usage of OpenGL ES through ANGLE on Windows
QCoreApplication::setAttribute(Qt::AA_UseOpenGLES);
#endif
// : ESRI
NGLApplication app ( argc, argv );
app.createLogger("planOverlayTest", "log4cxx_planOverlayTest.props");
TRACE_LOG(app.baseLogger()) << LOGFUNCTION << " START";
STARTUP_LOG(app.baseLogger());
app.setOrganizationName(QLatin1String("RME"));
app.setApplicationName(QLatin1String("Plan Overlay Test Application"));
LtsPluginManager::LtsPluginLoader *pluginLoader = LtsPluginManager::LtsPluginLoader::getInstance();
pluginLoader->loadPlugins( LtsPluginManager::PluginType::STYLE , nullptr, QStringList() << QStringLiteral("rme.light") );
pluginLoader->loadPlugins( LtsPluginManager::PluginType::PROJECT, nullptr, QStringList() << QStringLiteral("legatus") );
// .. to keep some compatibility to old resource structure TODO: rm !
QDir::setSearchPaths( QLatin1String( "icon" ), QStringList( QLatin1String( ":/style/icons/" ) ) );
QDir::setSearchPaths( QLatin1String( "icon" ), QStringList( QLatin1String( ":/style/" ) ) ); // FIXME: does qt check for recursion ??
#ifdef BUILD_STATIC_LIBRARIES
// For static linking under windows:
Q_INIT_RESOURCE(lts_resources);
#endif
#define USE_QDIALOG
//#define USE_LTSFRAMELESS
//#define CHECK_ERROR
PlanOverlaysPlugin::PlanOverlayModel * planOverlayModel = new PlanOverlaysPlugin::PlanOverlayModel();
#ifdef USE_QDIALOG
PlanOverlaysPlugin::PlanOverlayDialog<QDialog> * dialog = new PlanOverlaysPlugin::PlanOverlayDialog<QDialog>( nullptr, planOverlayModel, nullptr, nullptr );
#endif
#ifdef USE_LTSFRAMELESS
PlanOverlaysPlugin::PlanOverlayDialog<LtsWidgets::LtsFramelessDialog> * dialog = new PlanOverlaysPlugin::PlanOverlayDialog<LtsWidgets::LtsFramelessDialog>( nullptr, planOverlayModel, nullptr );
#endif
#ifdef CHECK_ERROR
PlanOverlaysPlugin::PlanOverlayDialog<QWidget> * dialog = new PlanOverlaysPlugin::PlanOverlayDialog<QWidget>( nullptr, planOverlayModel, nullptr ); // test static_assert
#endif
unsigned int counter = 1;
auto doReadFile = [dialog,&counter]( int /*selectedFileId*/ )
{
PlanOverlaysPlugin::PlanOverlayModel::PlanItem planItem = dialog->dialogWidget()->planOverlayModel()->planItem(counter++);
planItem.m_folderId = 6;
planItem.m_fileId = 42;
planItem.m_dirPath = QString();
planItem.m_fileName = QStringLiteral("Hugo_%1").arg(planItem.m_fileId);
planItem.m_minScale = 250000;
planItem.m_maxScale = 12000;
planItem.m_opacity = 1;
planItem.m_visibility = true;
dialog->dialogWidget()->planOverlayModel()->updatePlanItem( planItem );
};
auto doReloadPlan = [](unsigned int planId)
{
Q_UNUSED(planId);
QMessageBox::information(nullptr,QObject::tr("Reload Plan"),QObject::tr("doReloadPlan has been called"),QMessageBox::StandardButton::Ok);
};
auto doUnloadPlan = [dialog](unsigned int planId)
{
dialog->dialogWidget()->planOverlayModel()->removeOverlay(planId);
};
dialog->dialogWidget()->initFileManagement( nullptr, nullptr, nullptr, doReadFile, doReloadPlan, doUnloadPlan );
//QDialog * dialog = new QDialog();
//QVBoxLayout * layout = new QVBoxLayout(dialog);
//PlanOverlaysPlugin::PlanOverlayModel * planOverlayModel = new PlanOverlaysPlugin::PlanOverlayModel(nullptr);
//PlanOverlaysPlugin::PlanOverlayView * planOverlayView = new PlanOverlaysPlugin::PlanOverlayView( planOverlayModel, dialog );
//
//PlanOverlaysPlugin::PlanOverlayModel::PlanItem planItem = planOverlayModel->planItem(1);
//
//planItem.m_folderId = 6;
//planItem.m_fileId = 42;
//planItem.m_dirPath = QStringLiteral("");
//planItem.m_fileName = QStringLiteral("Hugo");
//planItem.m_planName = QStringLiteral("Hugo");
//planItem.m_minScale = 250000;
//planItem.m_maxScale = 12000;
//planItem.m_opacity = 1;
//planItem.m_visibilty = true;
//planOverlayModel->updatePlanItem( planItem );
//planItem.m_id = 2;
//planItem.m_fileId = 43;
//planItem.m_fileName = QStringLiteral("Soda");
//planItem.m_planName = QStringLiteral("Soda");
//planOverlayModel->updatePlanItem( planItem );
//planItem.m_id = 3;
//planItem.m_fileId = 44;
//planItem.m_fileName = QStringLiteral("0815");
//planItem.m_planName = QStringLiteral("0815");
//planOverlayModel->updatePlanItem( planItem );
//layout->addWidget(planOverlayView);
dialog->show();
app.setQuitOnLastWindowClosed(true);
int retval = app.exec();
SHUTDOWN_LOG(app.baseLogger());
return retval;
}