diff --git a/Drone_project b/Drone_project deleted file mode 100755 index 0c0b56f..0000000 Binary files a/Drone_project and /dev/null differ diff --git a/Makefile b/Makefile deleted file mode 100644 index 0d2fa28..0000000 --- a/Makefile +++ /dev/null @@ -1,706 +0,0 @@ -############################################################################# -# Makefile for building: Drone_project -# Generated by qmake (3.1) (Qt 5.15.3) -# Project: drone_ui.pro -# Template: app -# Command: /usr/lib/qt5/bin/qmake -o Makefile drone_ui.pro -############################################################################# - -MAKEFILE = Makefile - -EQ = = - -####### Compiler, tools and options - -CC = gcc -CXX = g++ -DEFINES = -DQT_NO_DEBUG -DQT_WEBENGINEWIDGETS_LIB -DQT_PRINTSUPPORT_LIB -DQT_WIDGETS_LIB -DQT_WEBENGINECORE_LIB -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_QMLMODELS_LIB -DQT_WEBCHANNEL_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_POSITIONING_LIB -DQT_CORE_LIB -CFLAGS = -pipe -O2 -Wall -Wextra -D_REENTRANT -fPIC $(DEFINES) -CXXFLAGS = -pipe -O2 -std=gnu++1z -Wall -Wextra -D_REENTRANT -fPIC $(DEFINES) -INCPATH = -I. -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -QMAKE = /usr/lib/qt5/bin/qmake -DEL_FILE = rm -f -CHK_DIR_EXISTS= test -d -MKDIR = mkdir -p -COPY = cp -f -COPY_FILE = cp -f -COPY_DIR = cp -f -R -INSTALL_FILE = install -m 644 -p -INSTALL_PROGRAM = install -m 755 -p -INSTALL_DIR = cp -f -R -QINSTALL = /usr/lib/qt5/bin/qmake -install qinstall -QINSTALL_PROGRAM = /usr/lib/qt5/bin/qmake -install qinstall -exe -DEL_FILE = rm -f -SYMLINK = ln -f -s -DEL_DIR = rmdir -MOVE = mv -f -TAR = tar -cf -COMPRESS = gzip -9f -DISTNAME = Drone_project1.0.0 -DISTDIR = /home/wangjing/uav/Drone_project/.tmp/Drone_project1.0.0 -LINK = g++ -LFLAGS = -Wl,-O1 -Wl,-rpath-link,/usr/lib/x86_64-linux-gnu -LIBS = $(SUBLIBS) /usr/lib/x86_64-linux-gnu/libQt5WebEngineWidgets.so /usr/lib/x86_64-linux-gnu/libQt5PrintSupport.so /usr/lib/x86_64-linux-gnu/libQt5Widgets.so /usr/lib/x86_64-linux-gnu/libQt5WebEngineCore.so /usr/lib/x86_64-linux-gnu/libQt5Quick.so /usr/lib/x86_64-linux-gnu/libQt5Gui.so /usr/lib/x86_64-linux-gnu/libQt5QmlModels.so /usr/lib/x86_64-linux-gnu/libQt5WebChannel.so /usr/lib/x86_64-linux-gnu/libQt5Qml.so /usr/lib/x86_64-linux-gnu/libQt5Network.so /usr/lib/x86_64-linux-gnu/libQt5Positioning.so /usr/lib/x86_64-linux-gnu/libQt5Core.so -lGL -lpthread -AR = ar cqs -RANLIB = -SED = sed -STRIP = strip - -####### Output directory - -OBJECTS_DIR = ./ - -####### Files - -SOURCES = src/core/main.cpp \ - src/ui/mainwindow.cpp \ - src/models/dronedata.cpp \ - src/models/detectiondata.cpp \ - src/pages/videopage.cpp \ - src/pages/mappage.cpp \ - src/pages/mapbridge.cpp \ - src/pages/datapage.cpp \ - src/pages/taskdata.cpp \ - src/pages/visionmodelpage.cpp \ - src/utils/stylehelper.cpp \ - src/pages/taskdecisionpage.cpp \ - src/pages/dronemanagementpage.cpp \ - src/pages/taskdetailspage.cpp \ - src/utils/config.cpp \ - src/utils/logger.cpp \ - src/utils/errorhandler.cpp qrc_app.cpp \ - moc_mainwindow.cpp \ - moc_dronedata.cpp \ - moc_detectiondata.cpp \ - moc_videopage.cpp \ - moc_mappage.cpp \ - moc_mapbridge.cpp \ - moc_datapage.cpp \ - moc_taskdata.cpp \ - moc_visionmodelpage.cpp \ - moc_taskdecisionpage.cpp \ - moc_dronemanagementpage.cpp \ - moc_taskdetailspage.cpp -OBJECTS = main.o \ - mainwindow.o \ - dronedata.o \ - detectiondata.o \ - videopage.o \ - mappage.o \ - mapbridge.o \ - datapage.o \ - taskdata.o \ - visionmodelpage.o \ - stylehelper.o \ - taskdecisionpage.o \ - dronemanagementpage.o \ - taskdetailspage.o \ - config.o \ - logger.o \ - errorhandler.o \ - qrc_app.o \ - moc_mainwindow.o \ - moc_dronedata.o \ - moc_detectiondata.o \ - moc_videopage.o \ - moc_mappage.o \ - moc_mapbridge.o \ - moc_datapage.o \ - moc_taskdata.o \ - moc_visionmodelpage.o \ - moc_taskdecisionpage.o \ - moc_dronemanagementpage.o \ - moc_taskdetailspage.o -DIST = /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_positioning.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_positioningquick.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_qml.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_qmlmodels.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_qmltest.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_qmlworkerscript.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_quick.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_quickwidgets.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webchannel.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webengine.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webenginecore.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webenginewidgets.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf \ - .qmake.stash \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf \ - drone_ui.pro src/ui/mainwindow.h \ - src/models/dronedata.h \ - src/models/detectiondata.h \ - src/pages/videopage.h \ - src/pages/mappage.h \ - src/pages/mapbridge.h \ - src/pages/datapage.h \ - src/pages/taskdata.h \ - src/pages/visionmodelpage.h \ - src/utils/stylehelper.h \ - src/pages/taskdecisionpage.h \ - src/pages/dronemanagementpage.h \ - src/pages/taskdetailspage.h \ - src/utils/config.h \ - src/utils/logger.h \ - src/utils/errorhandler.h src/core/main.cpp \ - src/ui/mainwindow.cpp \ - src/models/dronedata.cpp \ - src/models/detectiondata.cpp \ - src/pages/videopage.cpp \ - src/pages/mappage.cpp \ - src/pages/mapbridge.cpp \ - src/pages/datapage.cpp \ - src/pages/taskdata.cpp \ - src/pages/visionmodelpage.cpp \ - src/utils/stylehelper.cpp \ - src/pages/taskdecisionpage.cpp \ - src/pages/dronemanagementpage.cpp \ - src/pages/taskdetailspage.cpp \ - src/utils/config.cpp \ - src/utils/logger.cpp \ - src/utils/errorhandler.cpp -QMAKE_TARGET = Drone_project -DESTDIR = -TARGET = Drone_project - - -first: all -####### Build rules - -Drone_project: $(OBJECTS) - $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS) - -Makefile: drone_ui.pro /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_positioning.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_positioningquick.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_qml.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_qmlmodels.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_qmltest.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_qmlworkerscript.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_quick.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_quickwidgets.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webchannel.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webengine.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webenginecore.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webenginewidgets.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf \ - .qmake.stash \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf \ - drone_ui.pro \ - src/resources/app.qrc - $(QMAKE) -o Makefile drone_ui.pro -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_positioning.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_positioningquick.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_qml.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_qmlmodels.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_qmltest.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_qmlworkerscript.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_quick.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_quickwidgets.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webchannel.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webengine.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webenginecore.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webenginewidgets.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf: -.qmake.stash: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf: -drone_ui.pro: -src/resources/app.qrc: -qmake: FORCE - @$(QMAKE) -o Makefile drone_ui.pro - -qmake_all: FORCE - - -all: Makefile Drone_project - -dist: distdir FORCE - (cd `dirname $(DISTDIR)` && $(TAR) $(DISTNAME).tar $(DISTNAME) && $(COMPRESS) $(DISTNAME).tar) && $(MOVE) `dirname $(DISTDIR)`/$(DISTNAME).tar.gz . && $(DEL_FILE) -r $(DISTDIR) - -distdir: FORCE - @test -d $(DISTDIR) || mkdir -p $(DISTDIR) - $(COPY_FILE) --parents $(DIST) $(DISTDIR)/ - $(COPY_FILE) --parents src/resources/app.qrc $(DISTDIR)/ - $(COPY_FILE) --parents /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp $(DISTDIR)/ - $(COPY_FILE) --parents src/ui/mainwindow.h src/models/dronedata.h src/models/detectiondata.h src/pages/videopage.h src/pages/mappage.h src/pages/mapbridge.h src/pages/datapage.h src/pages/taskdata.h src/pages/visionmodelpage.h src/utils/stylehelper.h src/pages/taskdecisionpage.h src/pages/dronemanagementpage.h src/pages/taskdetailspage.h src/utils/config.h src/utils/logger.h src/utils/errorhandler.h $(DISTDIR)/ - $(COPY_FILE) --parents src/core/main.cpp src/ui/mainwindow.cpp src/models/dronedata.cpp src/models/detectiondata.cpp src/pages/videopage.cpp src/pages/mappage.cpp src/pages/mapbridge.cpp src/pages/datapage.cpp src/pages/taskdata.cpp src/pages/visionmodelpage.cpp src/utils/stylehelper.cpp src/pages/taskdecisionpage.cpp src/pages/dronemanagementpage.cpp src/pages/taskdetailspage.cpp src/utils/config.cpp src/utils/logger.cpp src/utils/errorhandler.cpp $(DISTDIR)/ - - -clean: compiler_clean - -$(DEL_FILE) $(OBJECTS) - -$(DEL_FILE) *~ core *.core - - -distclean: clean - -$(DEL_FILE) $(TARGET) - -$(DEL_FILE) .qmake.stash - -$(DEL_FILE) Makefile - - -####### Sub-libraries - -mocclean: compiler_moc_header_clean compiler_moc_objc_header_clean compiler_moc_source_clean - -mocables: compiler_moc_header_make_all compiler_moc_objc_header_make_all compiler_moc_source_make_all - -check: first - -benchmark: first - -compiler_rcc_make_all: qrc_app.cpp -compiler_rcc_clean: - -$(DEL_FILE) qrc_app.cpp -qrc_app.cpp: src/resources/app.qrc \ - /usr/lib/qt5/bin/rcc - /usr/lib/qt5/bin/rcc -name app src/resources/app.qrc -o qrc_app.cpp - -compiler_moc_predefs_make_all: moc_predefs.h -compiler_moc_predefs_clean: - -$(DEL_FILE) moc_predefs.h -moc_predefs.h: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp - g++ -pipe -O2 -std=gnu++1z -Wall -Wextra -dM -E -o moc_predefs.h /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp - -compiler_moc_header_make_all: moc_mainwindow.cpp moc_dronedata.cpp moc_detectiondata.cpp moc_videopage.cpp moc_mappage.cpp moc_mapbridge.cpp moc_datapage.cpp moc_taskdata.cpp moc_visionmodelpage.cpp moc_taskdecisionpage.cpp moc_dronemanagementpage.cpp moc_taskdetailspage.cpp -compiler_moc_header_clean: - -$(DEL_FILE) moc_mainwindow.cpp moc_dronedata.cpp moc_detectiondata.cpp moc_videopage.cpp moc_mappage.cpp moc_mapbridge.cpp moc_datapage.cpp moc_taskdata.cpp moc_visionmodelpage.cpp moc_taskdecisionpage.cpp moc_dronemanagementpage.cpp moc_taskdetailspage.cpp -moc_mainwindow.cpp: src/ui/mainwindow.h \ - src/models/dronedata.h \ - src/models/detectiondata.h \ - src/pages/visionmodelpage.h \ - src/utils/stylehelper.h \ - src/pages/taskdecisionpage.h \ - src/pages/mappage.h \ - src/pages/mapbridge.h \ - src/pages/dronemanagementpage.h \ - src/pages/taskdetailspage.h \ - src/pages/taskdata.h \ - moc_predefs.h \ - /usr/lib/qt5/bin/moc - /usr/lib/qt5/bin/moc $(DEFINES) --include /home/wangjing/uav/Drone_project/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/wangjing/uav/Drone_project -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include src/ui/mainwindow.h -o moc_mainwindow.cpp - -moc_dronedata.cpp: src/models/dronedata.h \ - moc_predefs.h \ - /usr/lib/qt5/bin/moc - /usr/lib/qt5/bin/moc $(DEFINES) --include /home/wangjing/uav/Drone_project/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/wangjing/uav/Drone_project -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include src/models/dronedata.h -o moc_dronedata.cpp - -moc_detectiondata.cpp: src/models/detectiondata.h \ - moc_predefs.h \ - /usr/lib/qt5/bin/moc - /usr/lib/qt5/bin/moc $(DEFINES) --include /home/wangjing/uav/Drone_project/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/wangjing/uav/Drone_project -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include src/models/detectiondata.h -o moc_detectiondata.cpp - -moc_videopage.cpp: src/pages/videopage.h \ - moc_predefs.h \ - /usr/lib/qt5/bin/moc - /usr/lib/qt5/bin/moc $(DEFINES) --include /home/wangjing/uav/Drone_project/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/wangjing/uav/Drone_project -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include src/pages/videopage.h -o moc_videopage.cpp - -moc_mappage.cpp: src/pages/mappage.h \ - src/pages/mapbridge.h \ - moc_predefs.h \ - /usr/lib/qt5/bin/moc - /usr/lib/qt5/bin/moc $(DEFINES) --include /home/wangjing/uav/Drone_project/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/wangjing/uav/Drone_project -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include src/pages/mappage.h -o moc_mappage.cpp - -moc_mapbridge.cpp: src/pages/mapbridge.h \ - moc_predefs.h \ - /usr/lib/qt5/bin/moc - /usr/lib/qt5/bin/moc $(DEFINES) --include /home/wangjing/uav/Drone_project/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/wangjing/uav/Drone_project -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include src/pages/mapbridge.h -o moc_mapbridge.cpp - -moc_datapage.cpp: src/pages/datapage.h \ - moc_predefs.h \ - /usr/lib/qt5/bin/moc - /usr/lib/qt5/bin/moc $(DEFINES) --include /home/wangjing/uav/Drone_project/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/wangjing/uav/Drone_project -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include src/pages/datapage.h -o moc_datapage.cpp - -moc_taskdata.cpp: src/pages/taskdata.h \ - moc_predefs.h \ - /usr/lib/qt5/bin/moc - /usr/lib/qt5/bin/moc $(DEFINES) --include /home/wangjing/uav/Drone_project/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/wangjing/uav/Drone_project -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include src/pages/taskdata.h -o moc_taskdata.cpp - -moc_visionmodelpage.cpp: src/pages/visionmodelpage.h \ - moc_predefs.h \ - /usr/lib/qt5/bin/moc - /usr/lib/qt5/bin/moc $(DEFINES) --include /home/wangjing/uav/Drone_project/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/wangjing/uav/Drone_project -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include src/pages/visionmodelpage.h -o moc_visionmodelpage.cpp - -moc_taskdecisionpage.cpp: src/pages/taskdecisionpage.h \ - src/pages/mappage.h \ - src/pages/mapbridge.h \ - moc_predefs.h \ - /usr/lib/qt5/bin/moc - /usr/lib/qt5/bin/moc $(DEFINES) --include /home/wangjing/uav/Drone_project/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/wangjing/uav/Drone_project -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include src/pages/taskdecisionpage.h -o moc_taskdecisionpage.cpp - -moc_dronemanagementpage.cpp: src/pages/dronemanagementpage.h \ - src/models/dronedata.h \ - moc_predefs.h \ - /usr/lib/qt5/bin/moc - /usr/lib/qt5/bin/moc $(DEFINES) --include /home/wangjing/uav/Drone_project/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/wangjing/uav/Drone_project -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include src/pages/dronemanagementpage.h -o moc_dronemanagementpage.cpp - -moc_taskdetailspage.cpp: src/pages/taskdetailspage.h \ - src/pages/taskdata.h \ - src/models/dronedata.h \ - moc_predefs.h \ - /usr/lib/qt5/bin/moc - /usr/lib/qt5/bin/moc $(DEFINES) --include /home/wangjing/uav/Drone_project/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/wangjing/uav/Drone_project -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include src/pages/taskdetailspage.h -o moc_taskdetailspage.cpp - -compiler_moc_objc_header_make_all: -compiler_moc_objc_header_clean: -compiler_moc_source_make_all: -compiler_moc_source_clean: -compiler_uic_make_all: -compiler_uic_clean: -compiler_yacc_decl_make_all: -compiler_yacc_decl_clean: -compiler_yacc_impl_make_all: -compiler_yacc_impl_clean: -compiler_lex_make_all: -compiler_lex_clean: -compiler_clean: compiler_rcc_clean compiler_moc_predefs_clean compiler_moc_header_clean - -####### Compile - -main.o: src/core/main.cpp src/ui/mainwindow.h \ - src/models/dronedata.h \ - src/models/detectiondata.h \ - src/pages/visionmodelpage.h \ - src/utils/stylehelper.h \ - src/pages/taskdecisionpage.h \ - src/pages/mappage.h \ - src/pages/mapbridge.h \ - src/pages/dronemanagementpage.h \ - src/pages/taskdetailspage.h \ - src/pages/taskdata.h - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o main.o src/core/main.cpp - -mainwindow.o: src/ui/mainwindow.cpp src/ui/mainwindow.h \ - src/models/dronedata.h \ - src/models/detectiondata.h \ - src/pages/visionmodelpage.h \ - src/utils/stylehelper.h \ - src/pages/taskdecisionpage.h \ - src/pages/mappage.h \ - src/pages/mapbridge.h \ - src/pages/dronemanagementpage.h \ - src/pages/taskdetailspage.h \ - src/pages/taskdata.h \ - src/pages/videopage.h \ - src/pages/datapage.h - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o mainwindow.o src/ui/mainwindow.cpp - -dronedata.o: src/models/dronedata.cpp src/models/dronedata.h - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o dronedata.o src/models/dronedata.cpp - -detectiondata.o: src/models/detectiondata.cpp src/models/detectiondata.h - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o detectiondata.o src/models/detectiondata.cpp - -videopage.o: src/pages/videopage.cpp src/pages/videopage.h - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o videopage.o src/pages/videopage.cpp - -mappage.o: src/pages/mappage.cpp src/pages/mappage.h \ - src/pages/mapbridge.h - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o mappage.o src/pages/mappage.cpp - -mapbridge.o: src/pages/mapbridge.cpp src/pages/mapbridge.h - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o mapbridge.o src/pages/mapbridge.cpp - -datapage.o: src/pages/datapage.cpp src/pages/datapage.h \ - src/models/dronedata.h \ - src/models/detectiondata.h - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o datapage.o src/pages/datapage.cpp - -taskdata.o: src/pages/taskdata.cpp src/pages/taskdata.h - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o taskdata.o src/pages/taskdata.cpp - -visionmodelpage.o: src/pages/visionmodelpage.cpp src/pages/visionmodelpage.h - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o visionmodelpage.o src/pages/visionmodelpage.cpp - -stylehelper.o: src/utils/stylehelper.cpp src/utils/stylehelper.h - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o stylehelper.o src/utils/stylehelper.cpp - -taskdecisionpage.o: src/pages/taskdecisionpage.cpp src/pages/taskdecisionpage.h \ - src/pages/mappage.h \ - src/pages/mapbridge.h - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o taskdecisionpage.o src/pages/taskdecisionpage.cpp - -dronemanagementpage.o: src/pages/dronemanagementpage.cpp src/pages/dronemanagementpage.h \ - src/models/dronedata.h - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o dronemanagementpage.o src/pages/dronemanagementpage.cpp - -taskdetailspage.o: src/pages/taskdetailspage.cpp src/pages/taskdetailspage.h \ - src/pages/taskdata.h \ - src/models/dronedata.h - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o taskdetailspage.o src/pages/taskdetailspage.cpp - -config.o: src/utils/config.cpp src/utils/config.h - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o config.o src/utils/config.cpp - -logger.o: src/utils/logger.cpp src/utils/logger.h \ - src/utils/config.h - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o logger.o src/utils/logger.cpp - -errorhandler.o: src/utils/errorhandler.cpp src/utils/errorhandler.h - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o errorhandler.o src/utils/errorhandler.cpp - -qrc_app.o: qrc_app.cpp - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o qrc_app.o qrc_app.cpp - -moc_mainwindow.o: moc_mainwindow.cpp - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_mainwindow.o moc_mainwindow.cpp - -moc_dronedata.o: moc_dronedata.cpp - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_dronedata.o moc_dronedata.cpp - -moc_detectiondata.o: moc_detectiondata.cpp - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_detectiondata.o moc_detectiondata.cpp - -moc_videopage.o: moc_videopage.cpp - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_videopage.o moc_videopage.cpp - -moc_mappage.o: moc_mappage.cpp - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_mappage.o moc_mappage.cpp - -moc_mapbridge.o: moc_mapbridge.cpp - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_mapbridge.o moc_mapbridge.cpp - -moc_datapage.o: moc_datapage.cpp - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_datapage.o moc_datapage.cpp - -moc_taskdata.o: moc_taskdata.cpp - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_taskdata.o moc_taskdata.cpp - -moc_visionmodelpage.o: moc_visionmodelpage.cpp - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_visionmodelpage.o moc_visionmodelpage.cpp - -moc_taskdecisionpage.o: moc_taskdecisionpage.cpp - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_taskdecisionpage.o moc_taskdecisionpage.cpp - -moc_dronemanagementpage.o: moc_dronemanagementpage.cpp - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_dronemanagementpage.o moc_dronemanagementpage.cpp - -moc_taskdetailspage.o: moc_taskdetailspage.cpp - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_taskdetailspage.o moc_taskdetailspage.cpp - -####### Install - -install: FORCE - -uninstall: FORCE - -FORCE: - diff --git a/Src/build.sh b/Src/build.sh new file mode 100755 index 0000000..3c0317c --- /dev/null +++ b/Src/build.sh @@ -0,0 +1,49 @@ +#!/usr/bin/env bash + +# Drone_project 构建脚本(放在 Src 目录),在工程根创建 build 目录(shadow build) +set -e + +echo "=== 构建 Drone_project 项目(Src/build.sh) ===" + +# 解析路径:脚本目录 -> 工程根目录 -> 构建目录 +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +ROOT_DIR="$(cd "${SCRIPT_DIR}/.." && pwd)" +BUILD_DIR="${ROOT_DIR}/build" +PRO_FILE="${ROOT_DIR}/drone_ui.pro" + +# 检查 qmake +if ! command -v qmake >/dev/null 2>&1; then + echo "✗ 未找到系统 qmake。请先安装:sudo apt install -y qtbase5-dev qtwebengine5-dev qtwebchannel5-dev qml-module-qtwebchannel qtpositioning5-dev" + exit 1 +fi +QMAKE_BIN="qmake" +echo "使用 qmake: ${QMAKE_BIN} (from PATH)" + +# 准备构建目录(shadow build,位于工程根) +echo "1. 准备构建目录: ${BUILD_DIR} ..." +mkdir -p "${BUILD_DIR}" || exit 1 +rm -rf "${BUILD_DIR}"/* + +# 生成构建文件 +echo "2. 生成构建文件 (.pro: ${PRO_FILE}) ..." +( + cd "${BUILD_DIR}" && "${QMAKE_BIN}" "${PRO_FILE}" +) || { echo "✗ qmake 失败"; exit 1; } + +# 编译 +echo "3. 编译项目..." +JOBS=4 +if command -v nproc >/dev/null 2>&1; then JOBS="$(nproc)"; fi +( + cd "${BUILD_DIR}" && make -j"${JOBS}" +) || { echo "✗ 编译失败"; exit 1; } + +# 检查生成产物 +if [ -f "${BUILD_DIR}/Drone_project" ]; then + echo "✓ 编译成功!可执行文件位置: ${BUILD_DIR}/Drone_project" +else + echo "✗ 没找到可执行文件 ${BUILD_DIR}/Drone_project" + exit 1 +fi + +echo "=== 构建完成 ===" diff --git a/src/core/main.cpp b/Src/core/main.cpp similarity index 100% rename from src/core/main.cpp rename to Src/core/main.cpp diff --git a/src/models/detectiondata.cpp b/Src/models/detectiondata.cpp similarity index 100% rename from src/models/detectiondata.cpp rename to Src/models/detectiondata.cpp diff --git a/src/models/detectiondata.h b/Src/models/detectiondata.h similarity index 100% rename from src/models/detectiondata.h rename to Src/models/detectiondata.h diff --git a/src/models/dronedata.cpp b/Src/models/dronedata.cpp similarity index 100% rename from src/models/dronedata.cpp rename to Src/models/dronedata.cpp diff --git a/src/models/dronedata.h b/Src/models/dronedata.h similarity index 100% rename from src/models/dronedata.h rename to Src/models/dronedata.h diff --git a/src/pages/datapage.cpp b/Src/pages/datapage.cpp similarity index 100% rename from src/pages/datapage.cpp rename to Src/pages/datapage.cpp diff --git a/src/pages/datapage.h b/Src/pages/datapage.h similarity index 100% rename from src/pages/datapage.h rename to Src/pages/datapage.h diff --git a/src/pages/dronedata.cpp b/Src/pages/dronedata.cpp similarity index 100% rename from src/pages/dronedata.cpp rename to Src/pages/dronedata.cpp diff --git a/src/pages/dronedata.h b/Src/pages/dronedata.h similarity index 100% rename from src/pages/dronedata.h rename to Src/pages/dronedata.h diff --git a/src/pages/dronemanagementpage.cpp b/Src/pages/dronemanagementpage.cpp similarity index 100% rename from src/pages/dronemanagementpage.cpp rename to Src/pages/dronemanagementpage.cpp diff --git a/src/pages/dronemanagementpage.h b/Src/pages/dronemanagementpage.h similarity index 100% rename from src/pages/dronemanagementpage.h rename to Src/pages/dronemanagementpage.h diff --git a/src/pages/mapbridge.cpp b/Src/pages/mapbridge.cpp similarity index 100% rename from src/pages/mapbridge.cpp rename to Src/pages/mapbridge.cpp diff --git a/src/pages/mapbridge.h b/Src/pages/mapbridge.h similarity index 100% rename from src/pages/mapbridge.h rename to Src/pages/mapbridge.h diff --git a/Src/pages/mappage.cpp b/Src/pages/mappage.cpp new file mode 100644 index 0000000..5a04621 --- /dev/null +++ b/Src/pages/mappage.cpp @@ -0,0 +1,2121 @@ +#include "mappage.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "mapbridge.h" +// 新增:A*与容器所需头文件 +#include +#include +#include +#include + +MapPage::MapPage(QWidget *parent) : QWidget(parent), + bridge_(nullptr), + channel_(nullptr), + mapArea_(nullptr), + heightCombo_(nullptr), + downloadMapBtn_(nullptr), + mapView_(nullptr), + setThreatBtn_(nullptr), + pathPlanningBtn_(nullptr), + areaCoverageBtn_(nullptr), + coordInput_(nullptr), + locateBtn_(nullptr), + searchMapBtn_(nullptr), + baseFontSize_(10), + pathOverlayId_("pathOverlay"), + startMarkerId_("startMarker"), + endMarkerId_("endMarker"), + currentPathData_(""), + coverageOverlayId_("coverageOverlay"), + areaOverlayId_("areaOverlay"), + currentCoveragePathData_(""), + isDrawing_(false), + drawingShape_(""), + drawingPoints_(), + threatAreas_(), + threatDialog_(nullptr), + planningDialog_(nullptr), + coverageDialog_(nullptr), + locateDialog_(nullptr) { + setupUI(); + enableGeolocation(); + qDebug() << "MapPage 构造函数完成"; + threatDialog_ = new ThreatAreaDialog(this, this); + planningDialog_ = new PathPlanningDialog(this, this); + coverageDialog_ = new AreaCoverageDialog(this, this); + locateDialog_ = new LocateDialog(this); + CustomWebEnginePage* page = qobject_cast(mapView_->page()); + if (page) { + connect(page, &CustomWebEnginePage::consoleMessage, this, &MapPage::onConsoleMessage); + } +} + +MapPage::~MapPage() {} + +void MapPage::setupUI() { + auto* mainLayout = new QVBoxLayout(this); + mainLayout->setSpacing(8); + mainLayout->setContentsMargins(0, 0, 0, 0); + + auto* title = new QLabel("路径监控"); + title->setProperty("class", "section"); + mainLayout->addWidget(title); + + mainLayout->addWidget(createMapControlsWidget()); + + setupMapArea(); + mainLayout->addWidget(mapArea_, 1); + + setupControlBar(); + mainLayout->addWidget(createControlBarWidget()); +} + +void MapPage::setupMapArea() { + mapArea_ = new QFrame(this); + mapArea_->setMinimumHeight(520); + auto* layout = new QVBoxLayout(mapArea_); + layout->setContentsMargins(0, 0, 0, 0); + + mapView_ = new QWebEngineView(mapArea_); + mapView_->setPage(new CustomWebEnginePage(mapView_)); + layout->addWidget(mapView_); + + // Setup WebChannel and bridge before loading HTML + channel_ = new QWebChannel(this); + bridge_ = new MapBridge(this); + connect(bridge_, &MapBridge::mapClicked, this, &MapPage::handleMapClick); + channel_->registerObject("bridge", bridge_); + mapView_->page()->setWebChannel(channel_); + + qDebug() << "WebChannel and bridge set up before page load"; + + const QString defaultHtml = R"( + + + + + + + 卫星和路网图 + + + + + + + +
+ + + )"; + mapView_->setHtml(defaultHtml, QUrl()); + connect(mapView_->page(), &QWebEnginePage::loadFinished, this, &MapPage::onPageLoaded); +} + +void MapPage::setupControlBar() { + // 控制条设置 +} + +QWidget* MapPage::createControlBarWidget() { + auto* bar = new QWidget(this); + auto* layout = new QHBoxLayout(bar); + layout->setContentsMargins(0, 0, 0, 0); + + auto* heightLabel = new QLabel("航线高度:"); + layout->addWidget(heightLabel); + + heightCombo_ = new QComboBox(); + heightCombo_->addItems({"30.00", "50.00", "80.00"}); + heightCombo_->setFixedWidth(100); + connect(heightCombo_, QOverload::of(&QComboBox::currentTextChanged), + this, &MapPage::onHeightChanged); + layout->addWidget(heightCombo_); + + layout->addStretch(1); + + // 添加地图检索按钮 + searchMapBtn_ = new QPushButton("地图检索"); + searchMapBtn_->setProperty("primary", true); + connect(searchMapBtn_, &QPushButton::clicked, this, &MapPage::onSearchMapClicked); + layout->addWidget(searchMapBtn_); + + + downloadMapBtn_ = new QPushButton("地图下载"); + downloadMapBtn_->setProperty("primary", true); + connect(downloadMapBtn_, &QPushButton::clicked, this, &MapPage::onDownloadMapClicked); + layout->addWidget(downloadMapBtn_); + + // 添加新按钮 - 为了整洁,将它们分组在布局末尾 + setThreatBtn_ = new QPushButton("设置威胁区域"); + setThreatBtn_->setProperty("primary", true); + connect(setThreatBtn_, &QPushButton::clicked, this, &MapPage::onSetThreatClicked); + layout->addWidget(setThreatBtn_); + + pathPlanningBtn_ = new QPushButton("路径规划"); + pathPlanningBtn_->setProperty("primary", true); + connect(pathPlanningBtn_, &QPushButton::clicked, this, &MapPage::onPathPlanningClicked); + layout->addWidget(pathPlanningBtn_); + + areaCoverageBtn_ = new QPushButton("区域覆盖规划"); + areaCoverageBtn_->setProperty("primary", true); + connect(areaCoverageBtn_, &QPushButton::clicked, this, &MapPage::onAreaCoverageClicked); + layout->addWidget(areaCoverageBtn_); + + return bar; +} + +#ifdef INCLUDE_AREA_SEARCH +void MapPage::onAreaSearchClicked() { + searchDialog_->exec(); +} +#endif + +void MapPage::enableGeolocation() { + if (mapView_) { + QWebEngineSettings* settings = mapView_->settings(); + settings->setAttribute(QWebEngineSettings::JavascriptEnabled, true); + settings->setAttribute(QWebEngineSettings::LocalStorageEnabled, true); + + // Set geolocation permission for the map domain + connect(mapView_->page(), &QWebEnginePage::featurePermissionRequested, + [this](const QUrl &securityOrigin, QWebEnginePage::Feature feature) { + if (feature == QWebEnginePage::Geolocation) { + mapView_->page()->setFeaturePermission(securityOrigin, feature, QWebEnginePage::PermissionGrantedByUser); + qDebug() << "Geolocation permission granted for:" << securityOrigin.toString(); + } + }); + + qDebug() << "Geolocation enabled and permission handler set up"; + } +} + +void MapPage::onHeightChanged() { + emit heightChanged(heightCombo_->currentText()); + qDebug() << "航线高度变更为:" << heightCombo_->currentText(); +} + +void MapPage::onDownloadMapClicked() { + emit downloadMapRequested(); + qDebug() << "地图下载请求"; +} + +void MapPage::onSetThreatClicked() { + threatDialog_->exec(); // 打开模态对话框 + // 执行JS添加overlay (示例) + mapView_->page()->runJavaScript("addThreatArea();"); // 假设JS函数 +} + +void MapPage::onPathPlanningClicked() { + if (planningDialog_->exec() == QDialog::Accepted) { + QString pathData = planningDialog_->getPathData(); + if (pathData.isEmpty()) { + qDebug() << "No path data available"; + return; + } + + // Path is already visualized in planPath, but re-visualize if needed + visualizePath(pathData); + } +} + +void MapPage::onAreaCoverageClicked() { + if (coverageDialog_->exec() == QDialog::Accepted) { + QString pathData = coverageDialog_->getCoveragePathData(); + if (pathData.isEmpty()) { + qDebug() << "No coverage path data available"; + return; + } + visualizeCoveragePath(pathData); + } +} + + +void MapPage::runMapJavaScript(const QString& js) { + if (mapView_) { + mapView_->page()->runJavaScript(js); + } +} + +void MapPage::clearPathOverlays() { + QString js = QString(R"( + if (window.map) { + console.log('Clearing all path overlays...'); + + // Remove path polyline + if (window.%1) { + window.map.remove(window.%1); + window.%1 = null; + console.log('Removed path polyline'); + } + + // Remove start marker + if (window.%2) { + window.map.remove(window.%2); + window.%2 = null; + console.log('Removed start marker'); + } + + // Remove end marker + if (window.%3) { + window.map.remove(window.%3); + window.%3 = null; + console.log('Removed end marker'); + } + + // Clear intermediate markers + if (!window.intermediates) { + window.intermediates = []; + } + for (var i = 0; i < window.intermediates.length; i++) { + if (window.intermediates[i]) { + window.map.remove(window.intermediates[i]); + console.log('Removed intermediate marker ' + i); + } + } + window.intermediates = []; + + console.log('All path overlays cleared successfully'); + } else { + console.log('Map not available for clearing'); + } + )").arg(pathOverlayId_, startMarkerId_, endMarkerId_); + runMapJavaScript(js); + qDebug() << "路径覆盖物清除完成"; +} + +void MapPage::visualizeCoveragePath(const QString& pathData) { + QString js = QString(R"( + if (window.map) { + var pathCoords = JSON.parse("%1"); + console.log('Visualizing coverage path with ' + pathCoords.length + ' points'); + + // Remove existing coverage overlay if any + if (window.%2) { + window.map.remove(window.%2); + window.%2 = null; + } + + // Create new polyline for coverage path (green, dashed) + var polyline = new AMap.Polyline({ + path: pathCoords, + strokeColor: "#4CAF50", + strokeOpacity: 0.8, + strokeWeight: 4, + strokeStyle: "dashed", + strokeDasharray: [8, 4], + zIndex: 2 + }); + polyline.setMap(window.map); + window.%2 = polyline; + + // Clear existing coverage intermediates + if (!window.coverageIntermediates) { + window.coverageIntermediates = []; + } + for (var i = 0; i < window.coverageIntermediates.length; i++) { + if (window.coverageIntermediates[i]) { + window.map.remove(window.coverageIntermediates[i]); + } + } + window.coverageIntermediates = []; + + // Add intermediate markers for coverage points + for (var i = 0; i < pathCoords.length; i += 5) { // Every 5th point for visibility + var marker = new AMap.Marker({ + position: pathCoords[i], + content: '
C' + (i/5 + 1) + '
', + zIndex: 15 + }); + marker.setMap(window.map); + window.coverageIntermediates.push(marker); + } + + // Fit view + var allOverlays = [polyline].concat(window.coverageIntermediates); + if (allOverlays.length > 0) { + window.map.setFitView(allOverlays, {padding: [50, 50, 50, 50]}); + } + + console.log('Coverage path visualization completed'); + } + )").arg(pathData, coverageOverlayId_); + runMapJavaScript(js); + currentCoveragePathData_ = pathData; + qDebug() << "区域覆盖路径可视化完成"; +} + +void MapPage::clearCoverageOverlays() { + QString js = QString(R"( + if (window.map) { + console.log('Clearing all coverage overlays...'); + + // Remove coverage polyline + if (window.%1) { + window.map.remove(window.%1); + window.%1 = null; + console.log('Removed coverage polyline'); + } + + // Remove area overlay if exists + if (window.%2) { + window.map.remove(window.%2); + window.%2 = null; + console.log('Removed area overlay'); + } + + // Clear coverage intermediates + if (!window.coverageIntermediates) { + window.coverageIntermediates = []; + } + for (var i = 0; i < window.coverageIntermediates.length; i++) { + if (window.coverageIntermediates[i]) { + window.map.remove(window.coverageIntermediates[i]); + } + } + window.coverageIntermediates = []; + + console.log('All coverage overlays cleared successfully'); + } else { + console.log('Map not available for clearing'); + } + )").arg(coverageOverlayId_, areaOverlayId_); + runMapJavaScript(js); + qDebug() << "区域覆盖覆盖物清除完成"; +} + + +double MapPage::parseLng(const QString& coord) const { + // Handle both "[lng, lat]" and "lng, lat" + QRegExp rx("^\\s*\\[?\\s*([\\d.-]+)\\s*,"); + if (rx.indexIn(coord) != -1) { + return rx.cap(1).toDouble(); + } + return 0.0; +} + +double MapPage::parseLat(const QString& coord) const { + // Handle both "[lng, lat]" and "lng, lat" + QRegExp rx(",\\s*([\\d.-]+)\\s*\\]?\\s*$"); + if (rx.indexIn(coord) != -1) { + return rx.cap(1).toDouble(); + } + return 0.0; +} + +void MapPage::showMarker(double lng, double lat, const QString& label, const QString& color, int index) { + QString markerId = (index == 0) ? startMarkerId_ : endMarkerId_; + QString js = QString(R"( + if (window.map) { + // Only remove if it's a different position + if (window.%1 && (window.%1.getPosition().lng != %2 || window.%1.getPosition().lat != %3)) { + window.map.remove(window.%1); + } + if (!window.%1 || (window.%1.getPosition().lng != %2 || window.%1.getPosition().lat != %3)) { + var marker = new AMap.Marker({ + position: new AMap.LngLat(%2, %3), + content: '
%5
', + zIndex: 100 + (%6 === 0 ? 10 : 5) // Start marker gets higher z-index + }); + marker.setMap(window.map); + window.%1 = marker; + } + } + )").arg(markerId, QString::number(lng), QString::number(lat), color, label, QString::number(index)); + runMapJavaScript(js); +} + +void MapPage::addClickListener() { + QString js = R"( + console.log('Adding click listener...'); + function addListener() { + if (window.map && window.bridge && window.mapReady) { + // Remove existing listener if any + if (window.clickListener) { + window.clickListener.remove(); + console.log('Removed existing listener'); + } + window.clickListener = window.map.on('click', function(e) { + console.log('Map clicked at: ' + e.lnglat.getLng() + ', ' + e.lnglat.getLat()); + window.bridge.onClick(e.lnglat.getLng(), e.lnglat.getLat()); + }); + console.log('Click listener added successfully'); + return true; + } + return false; + } + if (addListener()) { + // Already ready + } else { + console.log('Map or bridge not ready - polling...'); + var attempts = 0; + var maxAttempts = 100; // 10 seconds at 100ms intervals + var interval = setInterval(function() { + attempts++; + if (addListener()) { + clearInterval(interval); + } else if (attempts >= maxAttempts) { + clearInterval(interval); + console.error('Failed to add listener after ' + maxAttempts + ' attempts'); + } + }, 100); + } + )"; + runMapJavaScript(js); +} + +void MapPage::removeClickListener() { + QString js = R"( + if (window.clickListener) { + window.clickListener.remove(); + window.clickListener = null; + } + )"; + runMapJavaScript(js); +} + +void MapPage::visualizePath(const QString& pathData) { + QString js = QString(R"( + if (window.map) { + var pathCoords = JSON.parse("%1"); + console.log('Visualizing path with ' + pathCoords.length + ' points'); + + // Remove existing path overlay if any + if (window.%2) { + window.map.remove(window.%2); + window.%2 = null; + } + + // Create new polyline + var polyline = new AMap.Polyline({ + path: pathCoords, + strokeColor: "#3366FF", + strokeOpacity: 1, + strokeWeight: 5, + strokeStyle: "solid", + strokeDasharray: [10, 5], + zIndex: 1 + }); + polyline.setMap(window.map); + window.%2 = polyline; + + // Clear existing intermediate markers + if (!window.intermediates) { + window.intermediates = []; + } + for (var i = 0; i < window.intermediates.length; i++) { + if (window.intermediates[i]) { + window.map.remove(window.intermediates[i]); + } + } + window.intermediates = []; + + // Add intermediate markers as small dots (excluding start and end) + for (var i = 1; i < pathCoords.length - 1; i++) { + var marker = new AMap.Marker({ + position: pathCoords[i], + content: '
', + zIndex: 10, + offset: new AMap.Pixel(-4, -4) + }); + marker.setMap(window.map); + window.intermediates.push(marker); + } + + // Fit view to show all elements + var allOverlays = []; + if (window.startMarker) allOverlays.push(window.startMarker); + if (window.endMarker) allOverlays.push(window.endMarker); + allOverlays.push(polyline); + allOverlays = allOverlays.concat(window.intermediates); + + if (allOverlays.length > 0) { + window.map.setFitView(allOverlays, {padding: [50, 50, 50, 50]}); + } + + console.log('Path visualization completed with ' + window.intermediates.length + ' intermediate point markers (no labels)'); + } + )").arg(pathData, pathOverlayId_); + runMapJavaScript(js); + qDebug() << "路径可视化完成"; +} + +void MapPage::onPageLoaded(bool ok) { + if (ok) { + qDebug() << "Page loaded successfully"; + + // Ensure bridge is properly registered with WebChannel + if (channel_ && bridge_) { + channel_->registerObject("bridge", bridge_); + qDebug() << "Bridge registered with WebChannel"; + + // Check readiness after a short delay + QTimer::singleShot(500, this, [this]() { + runMapJavaScript("console.log('Readiness check: mapReady=' + !!window.mapReady + ', bridge exists=' + !!window.bridge);"); + // 如果地图已就绪且bridge可用,添加点击监听器(JS侧会处理) + runMapJavaScript("if (window.mapReady && window.bridge) { addClickListener(); } else { console.log('Waiting for map and bridge to be ready...'); }"); + }); + } else { + qDebug() << "ERROR: Channel or bridge is null!"; + } + } else { + qDebug() << "Page load failed"; + } +} + +void MapPage::onSearchMapClicked() { + if (locateDialog_->exec() == QDialog::Accepted) { + double lng = locateDialog_->getLongitude(); + double lat = locateDialog_->getLatitude(); + + // 执行JS移动地图中心(使用window.map以匹配全局变量) + QString js = QString("window.map.setCenter([%1, %2]); window.map.setZoom(15);").arg(lng).arg(lat); + mapView_->page()->runJavaScript(js); + } +} + +// Implement ThreatAreaDialog methods +ThreatAreaDialog::ThreatAreaDialog(QWidget *parent, MapPage* mapPage) : QDialog(parent), mapPage_(mapPage), drawingPoints_() { + setWindowTitle("设置威胁区域"); + setMinimumSize(600, 500); + auto* layout = new QVBoxLayout(this); + layout->setSpacing(15); + layout->setContentsMargins(20, 20, 20, 20); + + // 威胁区域基本信息组 + auto* basicGroup = new QGroupBox("基本信息"); + basicGroup->setStyleSheet("QGroupBox { font-weight: bold; margin-top: 10px; }"); + auto* basicLayout = new QGridLayout(basicGroup); + basicLayout->setSpacing(10); + + // 威胁类型 + basicLayout->addWidget(new QLabel("威胁类型:"), 0, 0); + typeCombo_ = new QComboBox(); + typeCombo_->addItems({"导弹威胁", "雷达干扰", "防空火力", "禁飞区域", "其他"}); + typeCombo_->setStyleSheet("QComboBox { padding: 5px; border: 1px solid #ccc; border-radius: 4px; }"); + basicLayout->addWidget(typeCombo_, 0, 1); + + // 威胁等级 + basicLayout->addWidget(new QLabel("威胁等级:"), 0, 2); + levelCombo_ = new QComboBox(); + levelCombo_->addItems({"高", "中", "低"}); + levelCombo_->setStyleSheet("QComboBox { padding: 5px; border: 1px solid #ccc; border-radius: 4px; }"); + basicLayout->addWidget(levelCombo_, 0, 3); + + layout->addWidget(basicGroup); + + // 添加形状选择 + basicLayout->addWidget(new QLabel("形状:"), 1, 0); + shapeCombo_ = new QComboBox(); + shapeCombo_->addItems({"圆形", "矩形"}); + shapeCombo_->setStyleSheet("QComboBox { padding: 5px; border: 1px solid #ccc; border-radius: 4px; }"); + connect(shapeCombo_, QOverload::of(&QComboBox::currentIndexChanged), this, &ThreatAreaDialog::onShapeChanged); + basicLayout->addWidget(shapeCombo_, 1, 1); + + // 添加颜色选择(假设用于 overlay 颜色) + basicLayout->addWidget(new QLabel("颜色:"), 1, 2); + colorCombo_ = new QComboBox(); + colorCombo_->addItems({"红色", "黄色", "蓝色"}); + basicLayout->addWidget(colorCombo_, 1, 3); + + layout->addWidget(basicGroup); + + // 时间设置组 (保持不变) + auto* timeGroup = new QGroupBox("威胁区域存在时间"); + timeGroup->setStyleSheet("QGroupBox { font-weight: bold; margin-top: 10px; }"); + auto* timeLayout = new QVBoxLayout(timeGroup); + + // 开始时间 + auto* startTimeLayout = new QHBoxLayout(); + startTimeLayout->addWidget(new QLabel("开始时间:")); + startTimeEdit_ = new QDateTimeEdit(QDateTime::currentDateTime()); + startTimeEdit_->setDisplayFormat("yyyy-MM-dd hh:mm:ss"); + startTimeEdit_->setCalendarPopup(true); + startTimeEdit_->setStyleSheet("QDateTimeEdit { padding: 5px; border: 1px solid #ccc; border-radius: 4px; }"); + startTimeLayout->addWidget(startTimeEdit_); + startTimeLayout->addStretch(); + timeLayout->addLayout(startTimeLayout); + + // 结束时间 + auto* endTimeLayout = new QHBoxLayout(); + endTimeLayout->addWidget(new QLabel("结束时间:")); + endTimeEdit_ = new QDateTimeEdit(QDateTime::currentDateTime().addSecs(3600)); // 默认1小时后 + endTimeEdit_->setDisplayFormat("yyyy-MM-dd hh:mm:ss"); + endTimeEdit_->setCalendarPopup(true); + endTimeEdit_->setStyleSheet("QDateTimeEdit { padding: 5px; border: 1px solid #ccc; border-radius: 4px; }"); + endTimeLayout->addWidget(endTimeEdit_); + endTimeLayout->addStretch(); + timeLayout->addLayout(endTimeLayout); + + layout->addWidget(timeGroup); + + // 动态输入 widget + circleInputWidget_ = new QWidget(); + auto* circleLayout = new QFormLayout(circleInputWidget_); + centerLngInput_ = new QLineEdit(); + centerLngInput_->setPlaceholderText("中心经度"); + circleLayout->addRow("中心经度:", centerLngInput_); + centerLatInput_ = new QLineEdit(); + centerLatInput_->setPlaceholderText("中心纬度"); + circleLayout->addRow("中心纬度:", centerLatInput_); + radiusInput_ = new QLineEdit(); + radiusInput_->setPlaceholderText("半径 (米)"); + circleLayout->addRow("半径 (米):", radiusInput_); + layout->addWidget(circleInputWidget_); + + rectangleInputWidget_ = new QWidget(); + auto* rectLayout = new QVBoxLayout(rectangleInputWidget_); + rectPointsTable_ = new QTableWidget(4, 2); + rectPointsTable_->setHorizontalHeaderLabels({"经度", "纬度"}); + for (int i = 0; i < 4; ++i) { + rectPointsTable_->setItem(i, 0, new QTableWidgetItem("")); + rectPointsTable_->setItem(i, 1, new QTableWidgetItem("")); + } + rectLayout->addWidget(rectPointsTable_); + layout->addWidget(rectangleInputWidget_); + rectangleInputWidget_->setVisible(false); + + // 按钮 (保持 drawOnMapBtn_ 等) + auto* buttonLayout = new QHBoxLayout(); + buttonLayout->addStretch(); + + drawOnMapBtn_ = new QPushButton("在地图上绘制"); + drawOnMapBtn_->setStyleSheet("QPushButton { padding: 8px 20px; background: #4CAF50; color: white; border-radius: 4px; }"); + connect(drawOnMapBtn_, &QPushButton::clicked, this, &ThreatAreaDialog::startDrawingThreatArea); + buttonLayout->addWidget(drawOnMapBtn_); + + auto* addBtn = new QPushButton("添加区域"); + addBtn->setProperty("primary", true); + addBtn->setStyleSheet("QPushButton { padding: 8px 20px; background: #2196f3; color: white; border-radius: 4px; }"); + buttonLayout->addWidget(addBtn); + + auto* cancelBtn = new QPushButton("取消"); + cancelBtn->setStyleSheet("QPushButton { padding: 8px 20px; background: #f5f5f5; border: 1px solid #ddd; border-radius: 4px; }"); + buttonLayout->addWidget(cancelBtn); + + layout->addLayout(buttonLayout); + + // 连接信号槽 + connect(addBtn, &QPushButton::clicked, this, &ThreatAreaDialog::addArea); + connect(cancelBtn, &QPushButton::clicked, this, &QDialog::reject); + + // 初始化 areaTable_ + auto* tableGroup = new QGroupBox("已添加威胁区域"); + auto* tableLayout = new QVBoxLayout(tableGroup); + areaTable_ = new QTableWidget(); + areaTable_->setColumnCount(6); + areaTable_->setHorizontalHeaderLabels({"类型", "等级", "开始时间", "结束时间", "形状", "细节"}); + areaTable_->setSelectionBehavior(QAbstractItemView::SelectRows); // 整行选择 + connect(areaTable_, &QTableWidget::itemSelectionChanged, this, [this]() { + auto selected = areaTable_->selectedItems(); + if (!selected.isEmpty()) { + selectedRow_ = selected.first()->row(); + } else { + selectedRow_ = -1; + } + }); + tableLayout->addWidget(areaTable_); + + // 添加编辑/删除按钮 + auto* buttonLayoutTable = new QHBoxLayout(); + editBtn_ = new QPushButton("编辑选中区域"); + connect(editBtn_, &QPushButton::clicked, this, &ThreatAreaDialog::editArea); + buttonLayoutTable->addWidget(editBtn_); + + deleteBtn_ = new QPushButton("删除选中区域"); + connect(deleteBtn_, &QPushButton::clicked, this, &ThreatAreaDialog::deleteArea); + buttonLayoutTable->addWidget(deleteBtn_); + + tableLayout->addLayout(buttonLayoutTable); + layout->addWidget(tableGroup); + + // 填充现有区域 + const auto& areas = mapPage_->getThreatAreas(); + for (const auto& area : areas) { + int row = areaTable_->rowCount(); + areaTable_->insertRow(row); + areaTable_->setItem(row, 0, new QTableWidgetItem(area["type"].toString())); + areaTable_->setItem(row, 1, new QTableWidgetItem(area["level"].toString())); + areaTable_->setItem(row, 2, new QTableWidgetItem(area["startTime"].toString())); + areaTable_->setItem(row, 3, new QTableWidgetItem(area["endTime"].toString())); + areaTable_->setItem(row, 4, new QTableWidgetItem(area["shape"].toString())); + QString details; + if (area["shape"].toString() == "circle") { + details = QString("中心: %1,%2 半径: %3m").arg(area["centerLng"].toDouble()).arg(area["centerLat"].toDouble()).arg(area["radius"].toDouble()); + } else { + details = "矩形点..."; // 简化 + } + areaTable_->setItem(row, 5, new QTableWidgetItem(details)); + } +} + +void ThreatAreaDialog::onShapeChanged(int index) { + currentShape_ = shapeCombo_->currentText(); + circleInputWidget_->setVisible(index == 0); + rectangleInputWidget_->setVisible(index == 1); +} + +void ThreatAreaDialog::startDrawingThreatArea() { + if (!mapPage_) return; + currentShape_ = shapeCombo_->currentText(); + QMessageBox::information(this, "提示", QString("现在在地图上绘制%1。点击添加点。").arg(currentShape_)); + hide(); // 隐藏对话框以允许地图交互 + mapPage_->enableDrawingMode(currentShape_ == "圆形" ? "circle" : "rectangle"); + connect(mapPage_, &MapPage::mapClicked, this, &ThreatAreaDialog::handleDrawingClick); // 临时连接 +} + +void ThreatAreaDialog::handleDrawingClick(double lng, double lat) { + drawingPoints_.append(qMakePair(lng, lat)); + if (currentShape_ == "圆形" && drawingPoints_.size() == 2) { + // 计算中心和半径 + double centerLng = drawingPoints_[0].first; + double centerLat = drawingPoints_[0].second; + double dx = drawingPoints_[1].first - centerLng; + double dy = drawingPoints_[1].second - centerLat; + double radius = sqrt(dx*dx + dy*dy) * 111000; // 粗略转换为米 (1度 ~ 111km) + centerLngInput_->setText(QString::number(centerLng)); + centerLatInput_->setText(QString::number(centerLat)); + radiusInput_->setText(QString::number(radius)); + finishDrawing(); + } else if (currentShape_ == "矩形" && drawingPoints_.size() == 2) { + // 计算矩形四个点 (假设两个对角点) + double minLng = qMin(drawingPoints_[0].first, drawingPoints_[1].first); + double maxLng = qMax(drawingPoints_[0].first, drawingPoints_[1].first); + double minLat = qMin(drawingPoints_[0].second, drawingPoints_[1].second); + double maxLat = qMax(drawingPoints_[0].second, drawingPoints_[1].second); + rectPointsTable_->setItem(0, 0, new QTableWidgetItem(QString::number(minLng))); + rectPointsTable_->setItem(0, 1, new QTableWidgetItem(QString::number(minLat))); + rectPointsTable_->setItem(1, 0, new QTableWidgetItem(QString::number(maxLng))); + rectPointsTable_->setItem(1, 1, new QTableWidgetItem(QString::number(minLat))); + rectPointsTable_->setItem(2, 0, new QTableWidgetItem(QString::number(maxLng))); + rectPointsTable_->setItem(2, 1, new QTableWidgetItem(QString::number(maxLat))); + rectPointsTable_->setItem(3, 0, new QTableWidgetItem(QString::number(minLng))); + rectPointsTable_->setItem(3, 1, new QTableWidgetItem(QString::number(maxLat))); + finishDrawing(); + } +} + +void ThreatAreaDialog::finishDrawing() { + mapPage_->disableDrawingMode(); + disconnect(mapPage_, &MapPage::mapClicked, this, &ThreatAreaDialog::handleDrawingClick); + drawingPoints_.clear(); + show(); + addArea(); // 自动添加绘制结果到表格和地图 + QMessageBox::information(this, "完成", "绘制完成,已自动添加区域。"); +} + +void ThreatAreaDialog::addArea() { + // 验证输入并添加 overlay + QVariantMap params; + params["type"] = typeCombo_->currentText(); + params["level"] = levelCombo_->currentText(); + params["startTime"] = startTimeEdit_->dateTime().toString(); + params["endTime"] = endTimeEdit_->dateTime().toString(); + + // 颜色映射 + QString colorStr = colorCombo_->currentText(); + QString hexColor; + if (colorStr == "红色") hexColor = "#FF0000"; + else if (colorStr == "黄色") hexColor = "#FFFF00"; + else if (colorStr == "蓝色") hexColor = "#0000FF"; + else hexColor = "#FF0000"; // 默认红色 + params["color"] = hexColor; + + params["shape"] = currentShape_; + + bool valid = true; + if (currentShape_ == "圆形") { + bool ok; + params["centerLng"] = centerLngInput_->text().toDouble(&ok); + valid &= ok; + params["centerLat"] = centerLatInput_->text().toDouble(&ok); + valid &= ok; + double radius = radiusInput_->text().toDouble(&ok); + valid &= ok && radius > 0; + params["radius"] = radius; + if (!valid) { + QMessageBox::warning(this, "错误", "无效的圆形参数(经纬度/半径必须是正数)"); + return; + } + mapPage_->addThreatOverlay("circle", params); + } else { + QList points; + for (int i = 0; i < 4; ++i) { + QVariantMap point; + point["lng"] = rectPointsTable_->item(i, 0)->text().toDouble(); + point["lat"] = rectPointsTable_->item(i, 1)->text().toDouble(); + points.append(point); + } + params["points"] = points; + mapPage_->addThreatOverlay("rectangle", params); + } + qDebug() << "添加威胁区域"; + QMessageBox::information(this, "提示", "威胁区域已添加"); + // 插入到表格 + int row = areaTable_->rowCount(); + areaTable_->insertRow(row); + areaTable_->setItem(row, 0, new QTableWidgetItem(params["type"].toString())); + areaTable_->setItem(row, 1, new QTableWidgetItem(params["level"].toString())); + areaTable_->setItem(row, 2, new QTableWidgetItem(params["startTime"].toString())); + areaTable_->setItem(row, 3, new QTableWidgetItem(params["endTime"].toString())); + areaTable_->setItem(row, 4, new QTableWidgetItem(params["shape"].toString())); + QString details; + if (params["shape"].toString() == "圆形") { + details = QString("中心: %1,%2 半径: %3m").arg(params["centerLng"].toDouble()).arg(params["centerLat"].toDouble()).arg(params["radius"].toDouble()); + } else { + details = "矩形点: ..."; // 可以扩展 + } + areaTable_->setItem(row, 5, new QTableWidgetItem(details)); + accept(); +} + +// Implement missing methods +void ThreatAreaDialog::updateThreatStats() { + qDebug() << "更新威胁统计"; +} + +void ThreatAreaDialog::editArea() { + if (selectedRow_ < 0 || selectedRow_ >= mapPage_->getThreatAreas().size()) { + QMessageBox::warning(this, "错误", "请选择一个区域编辑"); + return; + } + auto& area = mapPage_->getThreatAreas()[selectedRow_]; + typeCombo_->setCurrentText(area["type"].toString()); + levelCombo_->setCurrentText(area["level"].toString()); + startTimeEdit_->setDateTime(QDateTime::fromString(area["startTime"].toString())); + endTimeEdit_->setDateTime(QDateTime::fromString(area["endTime"].toString())); + colorCombo_->setCurrentText(area["color"].toString()); + shapeCombo_->setCurrentText(area["shape"].toString()); + + if (area["shape"].toString() == "circle") { + centerLngInput_->setText(QString::number(area["centerLng"].toDouble())); + centerLatInput_->setText(QString::number(area["centerLat"].toDouble())); + radiusInput_->setText(QString::number(area["radius"].toDouble())); + } else { + // 填充矩形表格 + QList points = area["points"].toList(); + for (int i = 0; i < 4 && i < points.size(); ++i) { + QVariantMap p = points[i].toMap(); + rectPointsTable_->setItem(i, 0, new QTableWidgetItem(QString::number(p["lng"].toDouble()))); + rectPointsTable_->setItem(i, 1, new QTableWidgetItem(QString::number(p["lat"].toDouble()))); + } + } + // 更新后,用户可以修改并点击"添加区域"来覆盖(或实现更新逻辑) + QMessageBox::information(this, "提示", "已加载选中区域数据,请修改后点击添加更新。"); +} + +void ThreatAreaDialog::deleteArea() { + if (selectedRow_ < 0 || selectedRow_ >= mapPage_->getThreatAreas().size()) { + QMessageBox::warning(this, "错误", "请选择一个区域删除"); + return; + } + mapPage_->removeThreatOverlay(selectedRow_); + areaTable_->removeRow(selectedRow_); + selectedRow_ = -1; + QMessageBox::information(this, "成功", "已删除选中区域"); +} + +// In MapPage class +void MapPage::removeThreatOverlay(int index) { + if (index < 0 || index >= threatAreas_.size()) return; + QVariantMap area = threatAreas_.at(index); + QString overlayId = area["id"].toString(); + runMapJavaScript(QString("if (window.%1) { window.map.remove(window.%1); window.%1 = null; }").arg(overlayId)); + threatAreas_.removeAt(index); + // 无需 clearMap 和重绘 +} + +PathPlanningDialog::PathPlanningDialog(QWidget *parent, MapPage* mapPage) : QDialog(parent), mapPage_(mapPage), pathData_("") { + setWindowTitle("路径规划"); + setMinimumSize(600, 500); + auto* layout = new QVBoxLayout(this); + layout->setContentsMargins(20, 20, 20, 20); + + auto* formLayout = new QFormLayout(); + + startInput_ = new QLineEdit(); + startInput_->setPlaceholderText("格式: 经度,纬度 或 [经度, 纬度]"); + formLayout->addRow("起点坐标:", startInput_); + + endInput_ = new QLineEdit(); + endInput_->setPlaceholderText("格式: 经度,纬度 或 [经度, 纬度]"); + formLayout->addRow("终点坐标:", endInput_); + + layout->addLayout(formLayout); + + // Selection buttons + auto* selectLayout = new QHBoxLayout(); + selectStartBtn_ = new QPushButton("选择起点"); + connect(selectStartBtn_, &QPushButton::clicked, [this](){ + QMessageBox::information(this, "提示", "现在可以点击地图选择起点。"); + selectingStart_ = true; + selectingEnd_ = false; + mapPage_->addClickListener(); + // 隐藏本对话框,显示地图界面进行点击 + this->hide(); + }); + selectLayout->addWidget(selectStartBtn_); + + selectEndBtn_ = new QPushButton("选择终点"); + connect(selectEndBtn_, &QPushButton::clicked, [this](){ + QMessageBox::information(this, "提示", "现在可以点击地图选择终点。"); + selectingStart_ = false; + selectingEnd_ = true; + mapPage_->addClickListener(); + // 隐藏本对话框,显示地图界面进行点击 + this->hide(); + }); + selectLayout->addWidget(selectEndBtn_); + layout->addLayout(selectLayout); + + // Apply buttons + auto* applyLayout = new QHBoxLayout(); + applyStartBtn_ = new QPushButton("应用起点"); + applyEndBtn_ = new QPushButton("应用终点"); + connect(applyStartBtn_, &QPushButton::clicked, this, &PathPlanningDialog::applyStartPoint); + connect(applyEndBtn_, &QPushButton::clicked, this, &PathPlanningDialog::applyEndPoint); + applyLayout->addWidget(applyStartBtn_); + applyLayout->addWidget(applyEndBtn_); + layout->addLayout(applyLayout); + + // Connect to map click signal + connect(mapPage_, &MapPage::mapClicked, this, &PathPlanningDialog::onMapClick); + + pathTable_ = new QTableWidget(); + pathTable_->setColumnCount(2); + pathTable_->setHorizontalHeaderLabels({"经度", "纬度"}); + layout->addWidget(pathTable_); + + auto* pathButtonsLayout = new QHBoxLayout(); + planBtn_ = new QPushButton("规划路径"); + connect(planBtn_, &QPushButton::clicked, this, &PathPlanningDialog::planPath); + pathButtonsLayout->addWidget(planBtn_); + + clearBtn_ = new QPushButton("清除路径规划"); + connect(clearBtn_, &QPushButton::clicked, this, &PathPlanningDialog::clearPath); + pathButtonsLayout->addWidget(clearBtn_); + layout->addLayout(pathButtonsLayout); + + auto* buttonLayout = new QHBoxLayout(); + buttonLayout->addStretch(); + + auto* confirmBtn = new QPushButton("确认"); + connect(confirmBtn, &QPushButton::clicked, this, &QDialog::accept); + buttonLayout->addWidget(confirmBtn); + + auto* cancelBtn = new QPushButton("取消"); + connect(cancelBtn, &QPushButton::clicked, this, &QDialog::reject); + buttonLayout->addWidget(cancelBtn); + + layout->addLayout(buttonLayout); +} + +void PathPlanningDialog::applyStartPoint() { + if (mapPage_) { + QString coord = startInput_->text(); + if (!coord.isEmpty()) { + double lng = mapPage_->parseLng(coord); + double lat = mapPage_->parseLat(coord); + if (lng != 0.0 && lat != 0.0) { + mapPage_->showMarker(lng, lat, "S", "#4CAF50", 0); + QMessageBox::information(this, "成功", "起点已应用到地图"); + } else { + QMessageBox::warning(this, "错误", "起点坐标格式无效"); + } + } else { + QMessageBox::warning(this, "错误", "未选择起点"); + } + } +} + +void PathPlanningDialog::applyEndPoint() { + if (mapPage_) { + QString coord = endInput_->text(); + if (!coord.isEmpty()) { + double lng = mapPage_->parseLng(coord); + double lat = mapPage_->parseLat(coord); + if (lng != 0.0 && lat != 0.0) { + mapPage_->showMarker(lng, lat, "E", "#FF9800", 1); + QMessageBox::information(this, "成功", "终点已应用到地图"); + } else { + QMessageBox::warning(this, "错误", "终点坐标格式无效"); + } + } else { + QMessageBox::warning(this, "错误", "未选择终点"); + } + } +} + +void PathPlanningDialog::planPath() { + QString start = startInput_->text(); + QString end = endInput_->text(); + if (start.isEmpty()) { + QMessageBox::warning(this, "错误", "未选择起点"); + return; + } + if (end.isEmpty()) { + QMessageBox::warning(this, "错误", "未选择终点"); + return; + } + + double startLng = mapPage_->parseLng(start); + double startLat = mapPage_->parseLat(start); + double endLng = mapPage_->parseLng(end); + double endLat = mapPage_->parseLat(end); + + if (startLng == 0.0 || startLat == 0.0 || endLng == 0.0 || endLat == 0.0) { + QMessageBox::warning(this, "错误", "坐标格式无效"); + return; + } + + // Show start and end markers before planning + mapPage_->showMarker(startLng, startLat, "S", "#4CAF50", 0); + mapPage_->showMarker(endLng, endLat, "E", "#FF9800", 1); + + // 获取威胁区域 + const auto &areas = mapPage_->getThreatAreas(); + + auto straightLinePlan = [&](QList>& pts){ + pts.clear(); + pts.append(qMakePair(startLng, startLat)); + double dx = endLng - startLng; + double dy = endLat - startLat; + for (int i = 1; i < 9; ++i) { + double t = static_cast(i) / 9.0; + double pointLng = startLng + t * dx; + double pointLat = startLat + t * dy; + pts.append(qMakePair(pointLng, pointLat)); + } + pts.append(qMakePair(endLng, endLat)); + }; + + QList> pathPoints; + bool usedAStar = false; + + if (!areas.isEmpty()) { + // 构建包围盒 + double minLng = std::min(startLng, endLng); + double maxLng = std::max(startLng, endLng); + double minLat = std::min(startLat, endLat); + double maxLat = std::max(startLat, endLat); + for (const auto &a : areas) { + QString shape = a.value("shape").toString(); + if (shape == "circle" || shape == "圆形") { + double clng = a.value("centerLng").toDouble(); + double clat = a.value("centerLat").toDouble(); + double r_m = a.value("radius").toDouble(); + // 将米粗略转经纬度范围扩展(1度约111km) + double d = r_m / 111000.0 + 0.002; // 加点缓冲 + minLng = std::min(minLng, clng - d); + maxLng = std::max(maxLng, clng + d); + minLat = std::min(minLat, clat - d); + maxLat = std::max(maxLat, clat + d); + } else { // rectangle / 矩形 + QList pts = a.value("points").toList(); + for (const auto &pv : pts) { + auto p = pv.toMap(); + double lng = p.value("lng").toDouble(); + double lat = p.value("lat").toDouble(); + minLng = std::min(minLng, lng); + maxLng = std::max(maxLng, lng); + minLat = std::min(minLat, lat); + maxLat = std::max(maxLat, lat); + } + } + } + + // 网格参数 + int gridW = 80; // 列数 + int gridH = 80; // 行数 + // 避免经纬度范围过小导致除零 + double spanLng = std::max(1e-6, maxLng - minLng); + double spanLat = std::max(1e-6, maxLat - minLat); + + auto iclamp = [&](int v, int lo, int hi){ return v < lo ? lo : (v > hi ? hi : v); }; + auto lngToX = [&](double lng){ return iclamp(int((lng - minLng) / spanLng * (gridW - 1) + 0.5), 0, gridW - 1); }; + auto latToY = [&](double lat){ return iclamp(int((lat - minLat) / spanLat * (gridH - 1) + 0.5), 0, gridH - 1); }; + auto xToLng = [&](int x){ return minLng + (double(x) / (gridW - 1)) * spanLng; }; + auto yToLat = [&](int y){ return minLat + (double(y) / (gridH - 1)) * spanLat; }; + + // 障碍网格 + std::vector blocked(size_t(gridW * gridH), 0); + + constexpr double PI_VAL = 3.14159265358979323846; + auto haversineMeters = [&](double lat1,double lng1,double lat2,double lng2){ + const double R = 6371000.0; + auto deg2rad = [&](double d){ return d * PI_VAL / 180.0; }; + double dLat = deg2rad(lat2 - lat1); + double dLng = deg2rad(lng2 - lng1); + double a = sin(dLat/2)*sin(dLat/2) + cos(deg2rad(lat1))*cos(deg2rad(lat2))*sin(dLng/2)*sin(dLng/2); + double c = 2 * atan2(sqrt(a), sqrt(1-a)); + return R * c; + }; + + auto inCircle = [&](double lng,double lat,double clng,double clat,double r_m){ + return haversineMeters(lat, lng, clat, clng) <= r_m; + }; + auto inRect = [&](double lng,double lat,const QList& pts){ + // 采用点在矩形外接框内(假设矩形边平行经纬线) + double minx= 1e9, maxx=-1e9, miny=1e9, maxy=-1e9; + for (const auto &pv : pts) { + auto p = pv.toMap(); + minx = std::min(minx, p.value("lng").toDouble()); + maxx = std::max(maxx, p.value("lng").toDouble()); + miny = std::min(miny, p.value("lat").toDouble()); + maxy = std::max(maxy, p.value("lat").toDouble()); + } + return lng >= minx && lng <= maxx && lat >= miny && lat <= maxy; + }; + + // 标记威胁为障碍 + for (int y = 0; y < gridH; ++y) { + for (int x = 0; x < gridW; ++x) { + double lng = xToLng(x); + double lat = yToLat(y); + bool hit = false; + for (const auto &a : areas) { + QString shape = a.value("shape").toString(); + if (shape == "circle" || shape == "圆形") { + if (inCircle(lng, lat, a.value("centerLng").toDouble(), a.value("centerLat").toDouble(), a.value("radius").toDouble())) { hit = true; break; } + } else { + if (inRect(lng, lat, a.value("points").toList())) { hit = true; break; } + } + } + blocked[size_t(y*gridW + x)] = hit ? 1 : 0; + } + } + + // A* + struct Node { int x,y; double g,h; int px,py; }; + auto idx = [&](int x,int y){ return y*gridW + x; }; + std::vector gscore(size_t(gridW*gridH), std::numeric_limits::infinity()); + std::vector parent(size_t(gridW*gridH), -1); + const double SQRT2 = 1.41421356237; + auto heuristic = [&](int x,int y){ + // 八方向栅格的octile启发:dx + dy + (sqrt(2)-2)*min(dx,dy) + double dx = std::abs(x - lngToX(endLng)); + double dy = std::abs(y - latToY(endLat)); + double h = (dx > dy) ? (dx + (SQRT2 - 1.0) * dy) : (dy + (SQRT2 - 1.0) * dx); + return h; + }; + auto cmp = [](const Node &a, const Node &b){ return (a.g + a.h) > (b.g + b.h); }; + std::priority_queue, decltype(cmp)> open(cmp); + + int sx = lngToX(startLng), sy = latToY(startLat); + int ex = lngToX(endLng), ey = latToY(endLat); + if (blocked[size_t(idx(sx,sy))]) { + // 若起点落在障碍,尝试在周围寻找最近可行点 + bool found=false; + for (int r=1; r<5 && !found; ++r) { + for (int dy=-r; dy<=r; ++dy) for (int dx=-r; dx<=r; ++dx) { + int nx = iclamp(sx+dx,0,gridW-1); int ny = iclamp(sy+dy,0,gridH-1); + if (!blocked[size_t(idx(nx,ny))]) { sx=nx; sy=ny; found=true; break; } + } + } + } + if (blocked[size_t(idx(ex,ey))]) { + bool found=false; + for (int r=1; r<5 && !found; ++r) { + for (int dy=-r; dy<=r; ++dy) for (int dx=-r; dx<=r; ++dx) { + int nx = iclamp(ex+dx,0,gridW-1); int ny = iclamp(ey+dy,0,gridH-1); + if (!blocked[size_t(idx(nx,ny))]) { ex=nx; ey=ny; found=true; break; } + } + } + } + + if (!blocked[size_t(idx(sx,sy))] && !blocked[size_t(idx(ex,ey))]) { + gscore[size_t(idx(sx,sy))] = 0.0; + open.push(Node{sx,sy,0.0,heuristic(sx,sy),-1,-1}); + std::vector closed(size_t(gridW*gridH), 0); + const int dirs[8][2] = {{1,0},{-1,0},{0,1},{0,-1},{1,1},{1,-1},{-1,1},{-1,-1}}; + bool found=false; + while (!open.empty()) { + Node cur = open.top(); open.pop(); + int ci = idx(cur.x,cur.y); + if (closed[size_t(ci)]) continue; + closed[size_t(ci)] = 1; + parent[size_t(ci)] = (cur.px<0?-1:idx(cur.px,cur.py)); + if (cur.x == ex && cur.y == ey) { found = true; break; } + for (auto &d : dirs) { + int nx = cur.x + d[0]; int ny = cur.y + d[1]; + if (nx<0||nx>=gridW||ny<0||ny>=gridH) continue; + int ni = idx(nx,ny); + if (blocked[size_t(ni)]) continue; + double step = ((d[0]==0||d[1]==0)?1.0:SQRT2); + // 可选:轻微转弯代价,减少之字路;这里用与前一方向对比(若有父节点) + double turnPenalty = 0.0; + // 简化:不记录方向,这里不加转弯罚;如需更直,可设置 turnPenalty = 0.05 当方向改变时。 + double cost = cur.g + step + turnPenalty; + if (cost < gscore[size_t(ni)]) { + gscore[size_t(ni)] = cost; + open.push(Node{nx,ny,cost,heuristic(nx,ny),cur.x,cur.y}); + } + } + } + + if (found) { + usedAStar = true; + // 回溯路径 + QList> rev; + int cx = ex, cy = ey; + int ci = idx(cx,cy); + rev.append(qMakePair(cx,cy)); + while (parent[size_t(ci)] != -1) { + int pi = parent[size_t(ci)]; + int px = pi % gridW; int py = pi / gridW; + rev.append(qMakePair(px,py)); + ci = pi; cx = px; cy = py; + } + // 采样并转经纬度 + pathPoints.clear(); + for (int i = rev.size()-1; i >= 0; --i) { + int x = rev[i].first; int y = rev[i].second; + pathPoints.append(qMakePair(xToLng(x), yToLat(y))); + } + } + } + } + + if (!usedAStar) { + // 无威胁或寻路失败:回退直线插值 + straightLinePlan(pathPoints); + } + + // 约束可见性平滑:在不穿越威胁的前提下尽量拉直路径 + if (pathPoints.size() > 2) { + // 米制平面近似,保证几何与判交稳定 + double midLat = (pathPoints.first().second + pathPoints.last().second) / 2.0; + constexpr double PI_S = 3.14159265358979323846; + double cosLat = std::cos(midLat * PI_S / 180.0); + double mPerDegLat = 111000.0; + double mPerDegLng = 111000.0 * std::max(0.1, cosLat); + + auto toXY = [&](double lng, double lat){ + double x = (lng - pathPoints.first().first) * mPerDegLng; + double y = (lat - pathPoints.first().second) * mPerDegLat; + return qMakePair(x, y); + }; + + auto segIntersectsCircle = [&](double ax,double ay,double bx,double by,double cx,double cy,double r){ + double dx = bx - ax, dy = by - ay; + if (dx == 0 && dy == 0) { + double ex = ax - cx, ey = ay - cy; return std::sqrt(ex*ex + ey*ey) <= r; + } + double t = ((cx - ax)*dx + (cy - ay)*dy) / (dx*dx + dy*dy); + t = std::max(0.0, std::min(1.0, t)); + double px = ax + t*dx, py = ay + t*dy; + double ex = px - cx, ey = py - cy; return (ex*ex + ey*ey) <= r*r; + }; + auto segIntersectsAABB = [&](double ax,double ay,double bx,double by,double minx,double miny,double maxx,double maxy){ + // Liang–Barsky 裁剪:u1<=u2 则相交;点在盒内也算相交 + auto inside = [&](double x,double y){ return x>=minx && x<=maxx && y>=miny && y<=maxy; }; + if (inside(ax,ay) || inside(bx,by)) return true; + double dx = bx - ax, dy = by - ay; + double p[4] = {-dx, dx, -dy, dy}; + double q[4] = {ax - minx, maxx - ax, ay - miny, maxy - ay}; + double u1 = 0.0, u2 = 1.0; + for (int i=0;i<4;++i){ + if (p[i] == 0) { if (q[i] < 0) return false; } + else { + double r = q[i] / p[i]; + if (p[i] < 0) { u1 = std::max(u1, r); } + else { u2 = std::min(u2, r); } + if (u1 > u2) return false; + } + } + return true; + }; + auto segmentClear = [&](const QPair& A, const QPair& B){ + auto a = toXY(A.first, A.second); + auto b = toXY(B.first, B.second); + for (const auto &t : areas) { + QString shape = t.value("shape").toString(); + if (shape == "circle" || shape == "圆形") { + auto c = toXY(t.value("centerLng").toDouble(), t.value("centerLat").toDouble()); + double r = t.value("radius").toDouble(); + if (segIntersectsCircle(a.first,a.second,b.first,b.second,c.first,c.second,r)) return false; + } else { + // 轴对齐矩形 + double minLng= 1e9, maxLng=-1e9, minLat=1e9, maxLat=-1e9; + QList pts = t.value("points").toList(); + for (const auto &pv : pts) { + auto p = pv.toMap(); + minLng = std::min(minLng, p.value("lng").toDouble()); + maxLng = std::max(maxLng, p.value("lng").toDouble()); + minLat = std::min(minLat, p.value("lat").toDouble()); + maxLat = std::max(maxLat, p.value("lat").toDouble()); + } + auto mn = toXY(minLng, minLat); + auto mx = toXY(maxLng, maxLat); + if (segIntersectsAABB(a.first,a.second,b.first,b.second, std::min(mn.first,mx.first), std::min(mn.second,mx.second), std::max(mn.first,mx.first), std::max(mn.second,mx.second))) return false; + } + } + return true; + }; + + // 贪心可见性“拉直”:每次连接最远可见点 + QList> smooth; + smooth.append(pathPoints.first()); + int i = 0; + while (i < pathPoints.size()-1) { + int j = pathPoints.size()-1; + // 从远到近找最远可见 + for (; j > i+1; --j) { + if (segmentClear(pathPoints[i], pathPoints[j])) break; + } + smooth.append(pathPoints[j]); + i = j; + } + + // 数量范围控制 + const int MIN_POINTS = 2; // 允许无威胁时仅S/E + const int MAX_POINTS = 50; + QList> finalPts; + if ((int)smooth.size() > MAX_POINTS) { + finalPts.append(smooth.first()); + int need = MAX_POINTS - 2; + for (int k = 1; k <= need; ++k) { + double t = double(k) / double(need + 1); + int idx = int(std::round(t * (smooth.size() - 1))); + idx = std::clamp(idx, 1, smooth.size()-2); + finalPts.append(smooth[idx]); + } + finalPts.append(smooth.last()); + } else if ((int)smooth.size() < MIN_POINTS && (int)pathPoints.size() >= MIN_POINTS) { + finalPts = pathPoints; // 极少见,保持原始 + } else { + finalPts = smooth; + } + pathPoints = finalPts; + } + + // 更新表格 + pathTable_->clear(); + pathTable_->setHorizontalHeaderLabels({"经度", "纬度"}); + pathTable_->setRowCount(pathPoints.size()); + for (int i = 0; i < pathPoints.size(); ++i) { + pathTable_->setItem(i, 0, new QTableWidgetItem(QString::number(pathPoints[i].first, 'f', 6))); + pathTable_->setItem(i, 1, new QTableWidgetItem(QString::number(pathPoints[i].second, 'f', 6))); + } + + // 生成 JSON + QString pathData = "["; + for (int i = 0; i < pathPoints.size(); ++i) { + if (i > 0) pathData += ","; + pathData += QString("[%1, %2]").arg(pathPoints[i].first, 0, 'f', 6).arg(pathPoints[i].second, 0, 'f', 6); + } + pathData += "]"; + + // 保存并可视化 + pathData_ = pathData; + if (mapPage_) { + mapPage_->visualizePath(pathData_); + } + + if (usedAStar) + QMessageBox::information(this, "成功", "路径规划完成:已避开威胁区域"); + else + QMessageBox::information(this, "成功", "路径规划完成(未检测到威胁或已回退为直线)"); +} + +QString PathPlanningDialog::getPathData() const { + return pathData_; +} + +// Add clearPath implementation +void PathPlanningDialog::clearPath() { + if (mapPage_) { + mapPage_->clearPathOverlays(); + } + startInput_->clear(); + endInput_->clear(); + pathTable_->setRowCount(0); + pathData_ = ""; + QMessageBox::information(this, "成功", "路径规划已清除"); +} + +void PathPlanningDialog::onMapClick(double lng, double lat) { + QString coord = QString("[%1, %2]").arg(lng, 0, 'f', 6).arg(lat, 0, 'f', 6); + if (selectingStart_) { + startInput_->setText(coord); + mapPage_->showMarker(lng, lat, "S", "#4CAF50", 0); + selectingStart_ = false; + mapPage_->removeClickListener(); + QMessageBox::information(this, "成功", "起点已选择"); + // 选取完成后恢复显示对话框 + this->show(); + } else if (selectingEnd_) { + endInput_->setText(coord); + mapPage_->showMarker(lng, lat, "E", "#FF9800", 1); + selectingEnd_ = false; + mapPage_->removeClickListener(); + QMessageBox::information(this, "成功", "终点已选择"); + // 选取完成后恢复显示对话框 + this->show(); + } +} + +AreaCoverageDialog::AreaCoverageDialog(QWidget* parent, MapPage* mapPage) : QDialog(parent), mapPage_(mapPage), coveragePathData_("") { + setWindowTitle("区域覆盖路径规划"); + setMinimumSize(700, 600); + auto* mainLayout = new QVBoxLayout(this); + mainLayout->setContentsMargins(20, 20, 20, 20); + mainLayout->setSpacing(15); + + // Shape selection + auto* shapeLayout = new QHBoxLayout(); + shapeLayout->addWidget(new QLabel("区域形状:")); + shapeCombo_ = new QComboBox(); + shapeCombo_->addItems({"圆形", "多边形"}); + connect(shapeCombo_, QOverload::of(&QComboBox::currentIndexChanged), this, &AreaCoverageDialog::onShapeChanged); + shapeLayout->addWidget(shapeCombo_); + shapeLayout->addStretch(); + mainLayout->addLayout(shapeLayout); + + // Dynamic inputs based on shape + QWidget* inputWidget = new QWidget(); + auto* inputLayout = new QVBoxLayout(inputWidget); + mainLayout->addWidget(inputWidget); + + // Circle inputs (default) + circleWidget_ = setupCircleInputs(); + inputLayout->addWidget(circleWidget_); + + // Polygon inputs (hidden initially) + polygonWidget_ = setupPolygonInputs(); + inputLayout->addWidget(polygonWidget_); + + // Search mode + auto* modeGroupBox = new QGroupBox("搜索模式"); + auto* modeLayout = new QHBoxLayout(modeGroupBox); + efficiencyRadio_ = new QRadioButton("高效率"); + fullRangeRadio_ = new QRadioButton("全范围"); + efficiencyRadio_->setChecked(true); + modeGroup_ = new QButtonGroup(this); + modeGroup_->addButton(efficiencyRadio_); + modeGroup_->addButton(fullRangeRadio_); + modeLayout->addWidget(efficiencyRadio_); + modeLayout->addWidget(fullRangeRadio_); + modeLayout->addStretch(); + mainLayout->addWidget(modeGroupBox); + + // Drone count + auto* droneLayout = new QHBoxLayout(); + droneLayout->addWidget(new QLabel("无人机数量:")); + droneCountSpin_ = new QSpinBox(); + droneCountSpin_->setRange(1, 10); + droneCountSpin_->setValue(1); + droneLayout->addWidget(droneCountSpin_); + droneLayout->addStretch(); + mainLayout->addLayout(droneLayout); + + // Path table + pathTable_ = new QTableWidget(); + pathTable_->setColumnCount(2); + pathTable_->setHorizontalHeaderLabels({"经度", "纬度"}); + pathTable_->setMinimumHeight(150); + mainLayout->addWidget(pathTable_); + + // Plan buttons + auto* planButtonsLayout = new QHBoxLayout(); + planBtn_ = new QPushButton("规划路径"); + connect(planBtn_, &QPushButton::clicked, this, &AreaCoverageDialog::planCoveragePath); + planButtonsLayout->addWidget(planBtn_); + + clearBtn_ = new QPushButton("清除规划"); + connect(clearBtn_, &QPushButton::clicked, this, &AreaCoverageDialog::clearCoverage); + planButtonsLayout->addWidget(clearBtn_); + planButtonsLayout->addStretch(); + mainLayout->addLayout(planButtonsLayout); + + // Confirm/Cancel + auto* buttonLayout = new QHBoxLayout(); + buttonLayout->addStretch(); + auto* confirmBtn = new QPushButton("确认"); + connect(confirmBtn, &QPushButton::clicked, this, &QDialog::accept); + buttonLayout->addWidget(confirmBtn); + auto* cancelBtn = new QPushButton("取消"); + connect(cancelBtn, &QPushButton::clicked, this, &QDialog::reject); + buttonLayout->addWidget(cancelBtn); + mainLayout->addLayout(buttonLayout); + + // Connect map clicks + connect(mapPage_, &MapPage::mapClicked, this, &AreaCoverageDialog::onMapClick); + + // Connect table selection for polygon + connect(verticesTable_, &QTableWidget::currentCellChanged, this, [this](int currentRow, int currentColumn, int previousRow, int previousColumn) { + Q_UNUSED(currentColumn); + Q_UNUSED(previousRow); + Q_UNUSED(previousColumn); + currentVertexRow_ = currentRow; + }); + + onShapeChanged(0); // Initialize with circle +} + +QWidget* AreaCoverageDialog::setupCircleInputs() { + auto* circleWidget = new QWidget(); + auto* circleLayout = new QFormLayout(circleWidget); + centerLngInput_ = new QLineEdit(); + centerLngInput_->setPlaceholderText("中心经度"); + circleLayout->addRow("中心经度:", centerLngInput_); + centerLatInput_ = new QLineEdit(); + centerLatInput_->setPlaceholderText("中心纬度"); + circleLayout->addRow("中心纬度:", centerLatInput_); + radiusInput_ = new QLineEdit(); + radiusInput_->setPlaceholderText("半径 (km)"); + radiusInput_->setText("1.0"); + circleLayout->addRow("半径 (km):", radiusInput_); + return circleWidget; +} + +QWidget* AreaCoverageDialog::setupPolygonInputs() { + auto* polyWidget = new QWidget(); + auto* polyLayout = new QVBoxLayout(polyWidget); + + verticesTable_ = new QTableWidget(); + verticesTable_->setColumnCount(2); + verticesTable_->setHorizontalHeaderLabels({"经度", "纬度"}); + polyLayout->addWidget(verticesTable_); + + auto* polyButtonsLayout = new QHBoxLayout(); + addVertexBtn_ = new QPushButton("添加顶点"); + connect(addVertexBtn_, &QPushButton::clicked, this, &AreaCoverageDialog::addVertex); + polyButtonsLayout->addWidget(addVertexBtn_); + removeVertexBtn_ = new QPushButton("移除顶点"); + connect(removeVertexBtn_, &QPushButton::clicked, this, &AreaCoverageDialog::removeVertex); + polyButtonsLayout->addWidget(removeVertexBtn_); + selectVertexBtn_ = new QPushButton("地图选择顶点"); + connect(selectVertexBtn_, &QPushButton::clicked, this, &AreaCoverageDialog::selectVertexOnMap); + polyButtonsLayout->addWidget(selectVertexBtn_); + polyButtonsLayout->addStretch(); + polyLayout->addLayout(polyButtonsLayout); + + return polyWidget; +} + +void AreaCoverageDialog::onShapeChanged(int index) { + if (index == 0) { // Circle + circleWidget_->setVisible(true); + polygonWidget_->setVisible(false); + } else { // Polygon + circleWidget_->setVisible(false); + polygonWidget_->setVisible(true); + } +} + +void AreaCoverageDialog::addVertex() { + int row = verticesTable_->rowCount(); + verticesTable_->insertRow(row); + verticesTable_->setItem(row, 0, new QTableWidgetItem("0.000000")); + verticesTable_->setItem(row, 1, new QTableWidgetItem("0.000000")); + vertices_.append(qMakePair(0.0, 0.0)); +} + +void AreaCoverageDialog::removeVertex() { + int row = verticesTable_->currentRow(); + if (row >= 0) { + vertices_.removeAt(row); + verticesTable_->removeRow(row); + } +} + +void AreaCoverageDialog::selectVertexOnMap() { + if (currentVertexRow_ < 0) { + addVertex(); + currentVertexRow_ = verticesTable_->rowCount() - 1; + } + QMessageBox::information(this, "提示", "点击地图选择顶点位置"); + selectingVertex_ = true; + mapPage_->addClickListener(); +} + +void AreaCoverageDialog::onMapClick(double lng, double lat) { + if (selectingVertex_) { + if (currentVertexRow_ >= 0 && currentVertexRow_ < verticesTable_->rowCount()) { + verticesTable_->setItem(currentVertexRow_, 0, new QTableWidgetItem(QString::number(lng, 'f', 6))); + verticesTable_->setItem(currentVertexRow_, 1, new QTableWidgetItem(QString::number(lat, 'f', 6))); + vertices_[currentVertexRow_] = qMakePair(lng, lat); + mapPage_->showMarker(lng, lat, QString::number(currentVertexRow_ + 1), "#2196F3", currentVertexRow_); + selectingVertex_ = false; + mapPage_->removeClickListener(); + QMessageBox::information(this, "成功", "顶点已更新"); + } + } +} + +void AreaCoverageDialog::planCoveragePath() { + // Update vertices from table for polygon + if (shapeCombo_->currentIndex() == 1) { + vertices_.clear(); + for (int i = 0; i < verticesTable_->rowCount(); ++i) { + double lng = verticesTable_->item(i, 0) ? verticesTable_->item(i, 0)->text().toDouble() : 0.0; + double lat = verticesTable_->item(i, 1) ? verticesTable_->item(i, 1)->text().toDouble() : 0.0; + vertices_.append(qMakePair(lng, lat)); + } + } + + // Validate inputs based on shape + if (shapeCombo_->currentIndex() == 0) { // Circle + bool ok1 = centerLngInput_->text().toDouble() != 0.0; + bool ok2 = centerLatInput_->text().toDouble() != 0.0; + bool ok3; + double radiusKm = radiusInput_->text().toDouble(&ok3); + if (!ok1 || !ok2 || !ok3 || radiusKm <= 0) { + QMessageBox::warning(this, "错误", "无效的圆形参数"); + return; + } + // Generate spiral path + generateMockCoveragePath(); // Will use circle params + } else { // Polygon + if (vertices_.size() < 3) { + QMessageBox::warning(this, "错误", "多边形至少需要3个顶点"); + return; + } + // Generate zigzag path + generateMockCoveragePath(); // Will use vertices + } + + // Visualize area first (mock polygon or circle) + // For simplicity, skip detailed area overlay, focus on path + + // Show path in table and store data + pathTable_->setRowCount(0); + // Assume generateMockCoveragePath populates a list of points + // For now, mock some points + QList> mockPath; + double radiusKm = radiusInput_->text().toDouble(); // Define radius + if (shapeCombo_->currentIndex() == 0) { + // Spiral around center + double centerLng = centerLngInput_->text().toDouble(); + double centerLat = centerLatInput_->text().toDouble(); + double r = 0.0; + double step = radiusKm / 20.0; // 20 steps + for (int i = 0; i < 100; ++i) { // 100 points + double angle = i * 0.2; // radians + r += step / 10.0; // Increase radius slowly + double dx = r * cos(angle); + double dy = r * sin(angle); + // Approximate km to degrees: ~1/111 deg per km + double pointLng = centerLng + (dx / 111.0); + double pointLat = centerLat + (dy / 111.0); + mockPath.append(qMakePair(pointLng, pointLat)); + if (r >= radiusKm) break; + } + } else { + // Zigzag along polygon bounding box + double minLng = 180, maxLng = -180, minLat = 90, maxLat = -90; + for (auto& v : vertices_) { + minLng = qMin(minLng, v.first); + maxLng = qMax(maxLng, v.first); + minLat = qMin(minLat, v.second); + maxLat = qMax(maxLat, v.second); + } + double width = maxLng - minLng; + double height = maxLat - minLat; + int numLines = 10; + for (int line = 0; line < numLines; ++line) { + double y = minLat + (height / numLines) * line; + for (double x = minLng; x <= maxLng; x += width / 20.0) { + mockPath.append(qMakePair(x, y)); + } + // Zigzag back + if (line < numLines - 1) { + y = minLat + (height / numLines) * (line + 1); + for (double x = maxLng; x >= minLng; x -= width / 20.0) { + mockPath.append(qMakePair(x, y)); + } + } + } + } + + // Adjust for drone count: divide path into segments + int drones = droneCountSpin_->value(); + if (drones > 1) { + // For mock, just use full path; in real, assign segments + } + + // Populate table (sample first 20 points) + int displayCount = qMin(20, (int)mockPath.size()); + pathTable_->setRowCount(displayCount); + for (int i = 0; i < displayCount; ++i) { + pathTable_->setItem(i, 0, new QTableWidgetItem(QString::number(mockPath[i].first, 'f', 6))); + pathTable_->setItem(i, 1, new QTableWidgetItem(QString::number(mockPath[i].second, 'f', 6))); + } + + // Generate JSON + QString json = "["; + for (int i = 0; i < (int)mockPath.size(); ++i) { + if (i > 0) json += ","; + json += QString("[%1,%2]").arg(mockPath[i].first, 0, 'f', 6).arg(mockPath[i].second, 0, 'f', 6); + } + json += "]"; + coveragePathData_ = json; + + // Visualize immediately + if (mapPage_) { + mapPage_->visualizeCoveragePath(coveragePathData_); + } + + bool isEfficiency = efficiencyRadio_->isChecked(); + QString mode = isEfficiency ? "高效率" : "全范围"; + QMessageBox::information(this, "成功", QString("覆盖路径规划完成 (%1模式, %2架无人机)").arg(mode).arg(drones)); +} + +void AreaCoverageDialog::generateMockCoveragePath() { + // Placeholder: actual generation in planCoveragePath + qDebug() << "生成模拟覆盖路径"; +} + +void AreaCoverageDialog::clearCoverage() { + if (mapPage_) { + mapPage_->clearCoverageOverlays(); + } + pathTable_->setRowCount(0); + coveragePathData_ = ""; + vertices_.clear(); + verticesTable_->setRowCount(0); + centerLngInput_->clear(); + centerLatInput_->clear(); + radiusInput_->clear(); + QMessageBox::information(this, "成功", "覆盖规划已清除"); +} + + +// Implement LocateDialog methods +LocateDialog::LocateDialog(QWidget *parent) : QDialog(parent), lng_(0.0), lat_(0.0) { + setWindowTitle("地图定位"); + setMinimumSize(400, 200); + auto* layout = new QVBoxLayout(this); + layout->setContentsMargins(20, 20, 20, 20); + + auto* formLayout = new QFormLayout(); + + lngInput_ = new QLineEdit(); + lngInput_->setPlaceholderText("请输入经度"); + formLayout->addRow("经度:", lngInput_); + + latInput_ = new QLineEdit(); + latInput_->setPlaceholderText("请输入纬度"); + formLayout->addRow("纬度:", latInput_); + + layout->addLayout(formLayout); + + auto* buttonLayout = new QHBoxLayout(); + buttonLayout->addStretch(); + + auto* confirmBtn = new QPushButton("确认"); + buttonLayout->addWidget(confirmBtn); + + auto* cancelBtn = new QPushButton("取消"); + buttonLayout->addWidget(cancelBtn); + + layout->addLayout(buttonLayout); + + connect(confirmBtn, &QPushButton::clicked, this, &LocateDialog::onConfirm); + connect(cancelBtn, &QPushButton::clicked, this, &QDialog::reject); +} + + +void LocateDialog::onConfirm() { + bool ok1, ok2; + lng_ = lngInput_->text().toDouble(&ok1); + lat_ = latInput_->text().toDouble(&ok2); + + if (ok1 && ok2) { + accept(); + } else { + QMessageBox::warning(this, "错误", "请输入有效的经纬度坐标"); + } +} + +double LocateDialog::getLongitude() const { + return lng_; +} + +double LocateDialog::getLatitude() const { + return lat_; +} + +// 更新 handleMapClick 以支持绘制模式 +void MapPage::handleMapClick(double lng, double lat) { + qDebug() << "Map clicked in C++: lng=" << lng << ", lat=" << lat; + emit mapClicked(lng, lat); // 始终发出信号,dialog 会根据模式处理 + // 如果在绘制模式,可以在这里添加额外逻辑,但由于连接在 dialog 中,保持简单 +} + +// 移除不必要的 handleDrawingClick +// void MapPage::handleDrawingClick(double lng, double lat) { } + +void MapPage::onConsoleMessage(QWebEnginePage::JavaScriptConsoleMessageLevel level, const QString &message, int lineNumber, const QString &sourceID) { + qDebug() << "Console message:" << level << message << "at line" << lineNumber << "source:" << sourceID; +} + +// Implement MapPage missing methods +QWidget* MapPage::createMapControlsWidget() { + auto* widget = new QWidget(this); + auto* layout = new QHBoxLayout(widget); + layout->setContentsMargins(0, 0, 0, 0); + return widget; +} + +// 在 MapPage 中实现 +void MapPage::enableDrawingMode(const QString& shape) { + isDrawing_ = true; + drawingShape_ = shape; + drawingPoints_.clear(); + addClickListener(); +} + +void MapPage::disableDrawingMode() { + isDrawing_ = false; + removeClickListener(); +} + +void MapPage::addThreatOverlay(const QString& shape, const QVariantMap& params) { + QString overlayId = "threat_" + QString::number(threatAreas_.size()); // 唯一 ID + QVariantMap paramsWithId = params; + paramsWithId["id"] = overlayId; + + QString js; + if (shape == "circle") { + js = QString(R"( + var circle = new AMap.Circle({ + center: new AMap.LngLat(%1, %2), + radius: %3, + fillColor: '%4', + fillOpacity: 0.3, + strokeColor: '%4', + strokeWeight: 2 + }); + circle.setMap(window.map); + window.%5 = circle; // 存储以便移除 + window.map.setFitView([circle]); // 缩放到 overlay + )").arg(params["centerLng"].toDouble()).arg(params["centerLat"].toDouble()) + .arg(params["radius"].toDouble()).arg(params["color"].toString()).arg(overlayId); + } else if (shape == "rectangle") { + QString path = "["; + QList points = params["points"].toList(); + for (int i = 0; i < points.size(); ++i) { + QVariantMap p = points[i].toMap(); + if (i > 0) path += ","; + path += QString("[%1,%2]").arg(p["lng"].toDouble()).arg(p["lat"].toDouble()); + } + path += "]"; + js = QString(R"( + var polygon = new AMap.Polygon({ + path: %1, + fillColor: '%2', + fillOpacity: 0.3, + strokeColor: '%2', + strokeWeight: 2 + }); + polygon.setMap(window.map); + window.%5 = polygon; // 存储以便移除 + window.map.setFitView([polygon]); // 缩放到 overlay + )").arg(path).arg(params["color"].toString()).arg(overlayId); + } + runMapJavaScript(js + " console.log('Overlay added: " + overlayId + "'); "); + threatAreas_.append(paramsWithId); // 存储带 ID +} diff --git a/Src/pages/mappage.h b/Src/pages/mappage.h new file mode 100644 index 0000000..4eeb185 --- /dev/null +++ b/Src/pages/mappage.h @@ -0,0 +1,293 @@ +#ifndef MAPPAGE_H +#define MAPPAGE_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "mapbridge.h" + +class CustomWebEnginePage : public QWebEnginePage { + Q_OBJECT +signals: + void consoleMessage(QWebEnginePage::JavaScriptConsoleMessageLevel level, const QString &message, int lineNumber, const QString &sourceID); +public: + CustomWebEnginePage(QObject* parent = nullptr) : QWebEnginePage(parent) {} +protected: + void javaScriptConsoleMessage(JavaScriptConsoleMessageLevel level, const QString& message, int lineNumber, const QString& sourceID) override { + qDebug() << "JS 消息 (级别:" << level << "):" << message << " (行:" << lineNumber << ", 来源:" << sourceID << ")"; + emit consoleMessage(level, message, lineNumber, sourceID); + } +}; + +// 前向声明 +class MapPage; +class ThreatAreaDialog; +class PathPlanningDialog; +class AreaCoverageDialog; + +#ifdef INCLUDE_AREA_SEARCH +class AreaSearchDialog; +#endif + +class ThreatAreaDialog : public QDialog { + Q_OBJECT +public: + ThreatAreaDialog(QWidget* parent = nullptr, MapPage* mapPage = nullptr); +private slots: + void addArea(); + void updateThreatStats(); + void startDrawingThreatArea(); + void onShapeChanged(int index); + void handleDrawingClick(double lng, double lat); + void finishDrawing(); + void editArea(); + void deleteArea(); +private: + QComboBox* typeCombo_; + QDateTimeEdit* startTimeEdit_; + QDateTimeEdit* endTimeEdit_; + QComboBox* shapeCombo_; + QComboBox* colorCombo_; + QTableWidget* areaTable_; + QLineEdit* coordInput_; + QPushButton* drawOnMapBtn_; + + // 新增输入字段 + QWidget* circleInputWidget_; + QWidget* rectangleInputWidget_; + QLineEdit* centerLngInput_; + QLineEdit* centerLatInput_; + QLineEdit* radiusInput_; + QTableWidget* rectPointsTable_; + + MapPage* mapPage_; + QString currentShape_; + QList> drawingPoints_; + QComboBox* levelCombo_; + QPushButton* editBtn_; + QPushButton* deleteBtn_; + int selectedRow_ = -1; +}; + +class MapPage; + +class PathPlanningDialog : public QDialog { + Q_OBJECT +public: + PathPlanningDialog(QWidget* parent = nullptr, MapPage* mapPage = nullptr); + QString getStartCoord() const { return startInput_->text(); } + QString getEndCoord() const { return endInput_->text(); } + QString getPathData() const; +private slots: + void planPath(); + void applyStartPoint(); + void applyEndPoint(); + void onMapClick(double lng, double lat); + void clearPath(); +private: + QLineEdit* startInput_; + QLineEdit* endInput_; + QTableWidget* pathTable_; + QPushButton* planBtn_; + QPushButton* clearBtn_; + QPushButton* applyStartBtn_; + QPushButton* applyEndBtn_; + QPushButton* selectStartBtn_; + QPushButton* selectEndBtn_; + MapPage* mapPage_; + QString pathData_; + bool selectingStart_ = false; + bool selectingEnd_ = false; +}; + +class AreaCoverageDialog : public QDialog { + Q_OBJECT +public: + AreaCoverageDialog(QWidget* parent = nullptr, MapPage* mapPage = nullptr); + QString getCoveragePathData() const { return coveragePathData_; } +private slots: + void onShapeChanged(int index); + void addVertex(); + void removeVertex(); + void selectVertexOnMap(); + void planCoveragePath(); + void clearCoverage(); + void onMapClick(double lng, double lat); +private: + QWidget* setupCircleInputs(); + QWidget* setupPolygonInputs(); + void generateMockCoveragePath(); + QComboBox* shapeCombo_; + QLineEdit* centerLngInput_; + QLineEdit* centerLatInput_; + QLineEdit* radiusInput_; + QTableWidget* verticesTable_; + QPushButton* addVertexBtn_; + QPushButton* removeVertexBtn_; + QPushButton* selectVertexBtn_; + QButtonGroup* modeGroup_; + QRadioButton* efficiencyRadio_; + QRadioButton* fullRangeRadio_; + QSpinBox* droneCountSpin_; + QTableWidget* pathTable_; + QPushButton* planBtn_; + QPushButton* clearBtn_; + QWidget* circleWidget_; + QWidget* polygonWidget_; + MapPage* mapPage_; + QString coveragePathData_; + bool selectingVertex_ = false; + int currentVertexRow_ = -1; + QList> vertices_; +}; + +class LocateDialog : public QDialog { + Q_OBJECT +public: + LocateDialog(QWidget* parent = nullptr); + double getLongitude() const; + double getLatitude() const; +private slots: + void onConfirm(); +private: + QLineEdit* lngInput_; + QLineEdit* latInput_; + double lng_; + double lat_; +}; + +#ifdef INCLUDE_AREA_SEARCH +class AreaSearchDialog : public QDialog { + Q_OBJECT +public: + AreaSearchDialog(QWidget* parent = nullptr); +private slots: + void onConfirm(); +private: + QLineEdit* minLngInput_; + QLineEdit* minLatInput_; + QLineEdit* maxLngInput_; + QLineEdit* maxLatInput_; +}; +#endif + +class MapPage : public QWidget { + Q_OBJECT + +public: + explicit MapPage(QWidget* parent = nullptr); + ~MapPage(); + + QComboBox* getHeightCombo() const { return heightCombo_; } + QPushButton* getDownloadMapBtn() const { return downloadMapBtn_; } + +signals: + void heightChanged(const QString& height); + void downloadMapRequested(); + void setThreatRequested(); + void pathPlanningRequested(); + void areaCoverageRequested(); + void mapClicked(double lng, double lat); + +private slots: + void onHeightChanged(); + void onDownloadMapClicked(); + void onSetThreatClicked(); + void onPathPlanningClicked(); + void onAreaCoverageClicked(); +#ifdef INCLUDE_AREA_SEARCH + void onAreaSearchClicked(); +#endif + void onSearchMapClicked(); + void onConsoleMessage(QWebEnginePage::JavaScriptConsoleMessageLevel level, const QString &message, int lineNumber, const QString &sourceID); + void onPageLoaded(bool ok); + +public slots: + void addClickListener(); + void removeClickListener(); + void handleMapClick(double lng, double lat); + void visualizePath(const QString& pathData); + void clearPathOverlays(); + void runMapJavaScript(const QString& js); + double parseLng(const QString& coord) const; + double parseLat(const QString& coord) const; + void showMarker(double lng, double lat, const QString& label, const QString& color, int index); + void visualizeCoveragePath(const QString& pathData); + void clearCoverageOverlays(); + void enableDrawingMode(const QString& shape); + void disableDrawingMode(); + void addThreatOverlay(const QString& shape, const QVariantMap& params); + void removeThreatOverlay(int index); + +private: + void setupUI(); + void setupMapControls(); + void setupMapArea(); + void setupControlBar(); + void enableGeolocation(); + QWidget* createMapControlsWidget(); + QWidget* createControlBarWidget(); + + QFrame* mapArea_; + QComboBox* heightCombo_; + QPushButton* downloadMapBtn_; + QWebEngineView* mapView_; + QPushButton* setThreatBtn_; + QPushButton* pathPlanningBtn_; + QPushButton* areaCoverageBtn_; +#ifdef INCLUDE_AREA_SEARCH + QPushButton* areaSearchBtn_; +#endif + QLineEdit* coordInput_; + QPushButton* locateBtn_; + QPushButton* searchMapBtn_; + ThreatAreaDialog* threatDialog_; + PathPlanningDialog* planningDialog_; + AreaCoverageDialog* coverageDialog_; + LocateDialog* locateDialog_; +#ifdef INCLUDE_AREA_SEARCH + AreaSearchDialog* searchDialog_; +#endif + int baseFontSize_ = 10; + QString pathOverlayId_ = "pathOverlay"; + QString startMarkerId_ = "startMarker"; + QString endMarkerId_ = "endMarker"; + QString currentPathData_; + MapBridge* bridge_; + QWebChannel* channel_; + QString coverageOverlayId_ = "coverageOverlay"; + QString areaOverlayId_ = "areaOverlay"; + QString currentCoveragePathData_; + bool isDrawing_ = false; + QString drawingShape_; + QList> drawingPoints_; + QList threatAreas_; + +public: + const QList& getThreatAreas() const { return threatAreas_; } +}; + +#endif // MAPPAGE_H diff --git a/src/pages/mappage.cpp b/Src/pages/mappage_remote.cpp similarity index 100% rename from src/pages/mappage.cpp rename to Src/pages/mappage_remote.cpp diff --git a/src/pages/mappage.h b/Src/pages/mappage_remote.h similarity index 100% rename from src/pages/mappage.h rename to Src/pages/mappage_remote.h diff --git a/src/pages/taskdata.cpp b/Src/pages/taskdata.cpp similarity index 100% rename from src/pages/taskdata.cpp rename to Src/pages/taskdata.cpp diff --git a/src/pages/taskdata.h b/Src/pages/taskdata.h similarity index 100% rename from src/pages/taskdata.h rename to Src/pages/taskdata.h diff --git a/src/pages/taskdecisionpage.cpp b/Src/pages/taskdecisionpage.cpp similarity index 100% rename from src/pages/taskdecisionpage.cpp rename to Src/pages/taskdecisionpage.cpp diff --git a/src/pages/taskdecisionpage.h b/Src/pages/taskdecisionpage.h similarity index 100% rename from src/pages/taskdecisionpage.h rename to Src/pages/taskdecisionpage.h diff --git a/src/pages/taskdetailspage.cpp b/Src/pages/taskdetailspage.cpp similarity index 100% rename from src/pages/taskdetailspage.cpp rename to Src/pages/taskdetailspage.cpp diff --git a/src/pages/taskdetailspage.h b/Src/pages/taskdetailspage.h similarity index 100% rename from src/pages/taskdetailspage.h rename to Src/pages/taskdetailspage.h diff --git a/src/pages/videopage.cpp b/Src/pages/videopage.cpp similarity index 100% rename from src/pages/videopage.cpp rename to Src/pages/videopage.cpp diff --git a/src/pages/videopage.h b/Src/pages/videopage.h similarity index 100% rename from src/pages/videopage.h rename to Src/pages/videopage.h diff --git a/src/pages/visionmodelpage.cpp b/Src/pages/visionmodelpage.cpp similarity index 100% rename from src/pages/visionmodelpage.cpp rename to Src/pages/visionmodelpage.cpp diff --git a/src/pages/visionmodelpage.h b/Src/pages/visionmodelpage.h similarity index 100% rename from src/pages/visionmodelpage.h rename to Src/pages/visionmodelpage.h diff --git a/src/resources/app.qrc b/Src/resources/app.qrc similarity index 100% rename from src/resources/app.qrc rename to Src/resources/app.qrc diff --git a/src/ui/mainwindow.cpp b/Src/ui/mainwindow.cpp similarity index 100% rename from src/ui/mainwindow.cpp rename to Src/ui/mainwindow.cpp diff --git a/src/ui/mainwindow.h b/Src/ui/mainwindow.h similarity index 100% rename from src/ui/mainwindow.h rename to Src/ui/mainwindow.h diff --git a/src/utils/config.cpp b/Src/utils/config.cpp similarity index 100% rename from src/utils/config.cpp rename to Src/utils/config.cpp diff --git a/src/utils/config.h b/Src/utils/config.h similarity index 100% rename from src/utils/config.h rename to Src/utils/config.h diff --git a/src/utils/errorhandler.cpp b/Src/utils/errorhandler.cpp similarity index 100% rename from src/utils/errorhandler.cpp rename to Src/utils/errorhandler.cpp diff --git a/src/utils/errorhandler.h b/Src/utils/errorhandler.h similarity index 100% rename from src/utils/errorhandler.h rename to Src/utils/errorhandler.h diff --git a/src/utils/logger.cpp b/Src/utils/logger.cpp similarity index 100% rename from src/utils/logger.cpp rename to Src/utils/logger.cpp diff --git a/src/utils/logger.h b/Src/utils/logger.h similarity index 100% rename from src/utils/logger.h rename to Src/utils/logger.h diff --git a/src/utils/stylehelper.cpp b/Src/utils/stylehelper.cpp similarity index 100% rename from src/utils/stylehelper.cpp rename to Src/utils/stylehelper.cpp diff --git a/src/utils/stylehelper.h b/Src/utils/stylehelper.h similarity index 100% rename from src/utils/stylehelper.h rename to Src/utils/stylehelper.h diff --git a/build.sh b/build.sh deleted file mode 100755 index 562e59e..0000000 --- a/build.sh +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/bash - -# Drone_project项目构建脚本(shadow build,系统 qmake) - -echo "=== 构建Drone_project项目 ===" - -# 仅使用系统 qmake,确保团队环境一致 -if ! command -v qmake >/dev/null 2>&1; then - echo "✗ 未找到系统 qmake。请先安装:sudo apt install -y qtbase5-dev qtwebengine5-dev" - exit 1 -fi -QMAKE_BIN="qmake" -echo "使用 qmake: ${QMAKE_BIN} (from PATH)" - -# 准备构建目录(shadow build) -echo "1. 准备构建目录..." -mkdir -p build || exit 1 -rm -rf build/* - -# 进入构建目录并生成构建文件 -echo "2. 生成构建文件..." -( - cd build && "${QMAKE_BIN}" ../drone_ui.pro -) || { echo "✗ qmake 失败"; exit 1; } - -# 编译项目 -echo "3. 编译项目..." -( - cd build && make -j -) || { echo "✗ 编译失败"; exit 1; } - -# 检查编译结果 -if [ -f "build/Drone_project" ]; then - echo "✓ 编译成功!可执行文件位置: build/Drone_project" -else - echo "✗ 没找到可执行文件 build/Drone_project" - exit 1 -fi - -echo "=== 构建完成 ===" - - - diff --git a/.qmake.stash b/build/.qmake.stash similarity index 100% rename from .qmake.stash rename to build/.qmake.stash diff --git a/build/Drone_project b/build/Drone_project index 0c0b56f..6cbecca 100755 Binary files a/build/Drone_project and b/build/Drone_project differ diff --git a/build/Makefile b/build/Makefile index 8451d75..b6be297 100644 --- a/build/Makefile +++ b/build/Makefile @@ -52,23 +52,23 @@ OBJECTS_DIR = ./ ####### Files -SOURCES = ../src/core/main.cpp \ - ../src/ui/mainwindow.cpp \ - ../src/models/dronedata.cpp \ - ../src/models/detectiondata.cpp \ - ../src/pages/videopage.cpp \ - ../src/pages/mappage.cpp \ - ../src/pages/mapbridge.cpp \ - ../src/pages/datapage.cpp \ - ../src/pages/taskdata.cpp \ - ../src/pages/visionmodelpage.cpp \ - ../src/utils/stylehelper.cpp \ - ../src/pages/taskdecisionpage.cpp \ - ../src/pages/dronemanagementpage.cpp \ - ../src/pages/taskdetailspage.cpp \ - ../src/utils/config.cpp \ - ../src/utils/logger.cpp \ - ../src/utils/errorhandler.cpp qrc_app.cpp \ +SOURCES = ../Src/core/main.cpp \ + ../Src/ui/mainwindow.cpp \ + ../Src/models/dronedata.cpp \ + ../Src/models/detectiondata.cpp \ + ../Src/pages/videopage.cpp \ + ../Src/pages/mappage.cpp \ + ../Src/pages/mapbridge.cpp \ + ../Src/pages/datapage.cpp \ + ../Src/pages/taskdata.cpp \ + ../Src/pages/visionmodelpage.cpp \ + ../Src/utils/stylehelper.cpp \ + ../Src/pages/taskdecisionpage.cpp \ + ../Src/pages/dronemanagementpage.cpp \ + ../Src/pages/taskdetailspage.cpp \ + ../Src/utils/config.cpp \ + ../Src/utils/logger.cpp \ + ../Src/utils/errorhandler.cpp qrc_app.cpp \ moc_mainwindow.cpp \ moc_dronedata.cpp \ moc_detectiondata.cpp \ @@ -180,7 +180,7 @@ DIST = /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf \ - ../../.qmake.stash \ + ../.qmake.stash \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf \ @@ -200,38 +200,38 @@ DIST = /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf \ - ../../drone_ui.pro ../src/ui/mainwindow.h \ - ../src/models/dronedata.h \ - ../src/models/detectiondata.h \ - ../src/pages/videopage.h \ - ../src/pages/mappage.h \ - ../src/pages/mapbridge.h \ - ../src/pages/datapage.h \ - ../src/pages/taskdata.h \ - ../src/pages/visionmodelpage.h \ - ../src/utils/stylehelper.h \ - ../src/pages/taskdecisionpage.h \ - ../src/pages/dronemanagementpage.h \ - ../src/pages/taskdetailspage.h \ - ../src/utils/config.h \ - ../src/utils/logger.h \ - ../src/utils/errorhandler.h ../src/core/main.cpp \ - ../src/ui/mainwindow.cpp \ - ../src/models/dronedata.cpp \ - ../src/models/detectiondata.cpp \ - ../src/pages/videopage.cpp \ - ../src/pages/mappage.cpp \ - ../src/pages/mapbridge.cpp \ - ../src/pages/datapage.cpp \ - ../src/pages/taskdata.cpp \ - ../src/pages/visionmodelpage.cpp \ - ../src/utils/stylehelper.cpp \ - ../src/pages/taskdecisionpage.cpp \ - ../src/pages/dronemanagementpage.cpp \ - ../src/pages/taskdetailspage.cpp \ - ../src/utils/config.cpp \ - ../src/utils/logger.cpp \ - ../src/utils/errorhandler.cpp + ../../drone_ui.pro ../Src/ui/mainwindow.h \ + ../Src/models/dronedata.h \ + ../Src/models/detectiondata.h \ + ../Src/pages/videopage.h \ + ../Src/pages/mappage.h \ + ../Src/pages/mapbridge.h \ + ../Src/pages/datapage.h \ + ../Src/pages/taskdata.h \ + ../Src/pages/visionmodelpage.h \ + ../Src/utils/stylehelper.h \ + ../Src/pages/taskdecisionpage.h \ + ../Src/pages/dronemanagementpage.h \ + ../Src/pages/taskdetailspage.h \ + ../Src/utils/config.h \ + ../Src/utils/logger.h \ + ../Src/utils/errorhandler.h ../Src/core/main.cpp \ + ../Src/ui/mainwindow.cpp \ + ../Src/models/dronedata.cpp \ + ../Src/models/detectiondata.cpp \ + ../Src/pages/videopage.cpp \ + ../Src/pages/mappage.cpp \ + ../Src/pages/mapbridge.cpp \ + ../Src/pages/datapage.cpp \ + ../Src/pages/taskdata.cpp \ + ../Src/pages/visionmodelpage.cpp \ + ../Src/utils/stylehelper.cpp \ + ../Src/pages/taskdecisionpage.cpp \ + ../Src/pages/dronemanagementpage.cpp \ + ../Src/pages/taskdetailspage.cpp \ + ../Src/utils/config.cpp \ + ../Src/utils/logger.cpp \ + ../Src/utils/errorhandler.cpp QMAKE_TARGET = Drone_project DESTDIR = TARGET = Drone_project @@ -312,7 +312,7 @@ Makefile: ../drone_ui.pro /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake. /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf \ - ../.qmake.stash \ + .qmake.stash \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf \ @@ -333,7 +333,7 @@ Makefile: ../drone_ui.pro /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake. /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf \ ../drone_ui.pro \ - ../src/resources/app.qrc + ../Src/resources/app.qrc $(QMAKE) -o Makefile ../drone_ui.pro /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf: @@ -404,7 +404,7 @@ Makefile: ../drone_ui.pro /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake. /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf: -../.qmake.stash: +.qmake.stash: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf: @@ -425,7 +425,7 @@ Makefile: ../drone_ui.pro /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake. /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf: ../drone_ui.pro: -../src/resources/app.qrc: +../Src/resources/app.qrc: qmake: FORCE @$(QMAKE) -o Makefile ../drone_ui.pro @@ -440,10 +440,10 @@ dist: distdir FORCE distdir: FORCE @test -d $(DISTDIR) || mkdir -p $(DISTDIR) $(COPY_FILE) --parents $(DIST) $(DISTDIR)/ - $(COPY_FILE) --parents ../src/resources/app.qrc $(DISTDIR)/ + $(COPY_FILE) --parents ../Src/resources/app.qrc $(DISTDIR)/ $(COPY_FILE) --parents /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp $(DISTDIR)/ - $(COPY_FILE) --parents ../src/ui/mainwindow.h ../src/models/dronedata.h ../src/models/detectiondata.h ../src/pages/videopage.h ../src/pages/mappage.h ../src/pages/mapbridge.h ../src/pages/datapage.h ../src/pages/taskdata.h ../src/pages/visionmodelpage.h ../src/utils/stylehelper.h ../src/pages/taskdecisionpage.h ../src/pages/dronemanagementpage.h ../src/pages/taskdetailspage.h ../src/utils/config.h ../src/utils/logger.h ../src/utils/errorhandler.h $(DISTDIR)/ - $(COPY_FILE) --parents ../src/core/main.cpp ../src/ui/mainwindow.cpp ../src/models/dronedata.cpp ../src/models/detectiondata.cpp ../src/pages/videopage.cpp ../src/pages/mappage.cpp ../src/pages/mapbridge.cpp ../src/pages/datapage.cpp ../src/pages/taskdata.cpp ../src/pages/visionmodelpage.cpp ../src/utils/stylehelper.cpp ../src/pages/taskdecisionpage.cpp ../src/pages/dronemanagementpage.cpp ../src/pages/taskdetailspage.cpp ../src/utils/config.cpp ../src/utils/logger.cpp ../src/utils/errorhandler.cpp $(DISTDIR)/ + $(COPY_FILE) --parents ../Src/ui/mainwindow.h ../Src/models/dronedata.h ../Src/models/detectiondata.h ../Src/pages/videopage.h ../Src/pages/mappage.h ../Src/pages/mapbridge.h ../Src/pages/datapage.h ../Src/pages/taskdata.h ../Src/pages/visionmodelpage.h ../Src/utils/stylehelper.h ../Src/pages/taskdecisionpage.h ../Src/pages/dronemanagementpage.h ../Src/pages/taskdetailspage.h ../Src/utils/config.h ../Src/utils/logger.h ../Src/utils/errorhandler.h $(DISTDIR)/ + $(COPY_FILE) --parents ../Src/core/main.cpp ../Src/ui/mainwindow.cpp ../Src/models/dronedata.cpp ../Src/models/detectiondata.cpp ../Src/pages/videopage.cpp ../Src/pages/mappage.cpp ../Src/pages/mapbridge.cpp ../Src/pages/datapage.cpp ../Src/pages/taskdata.cpp ../Src/pages/visionmodelpage.cpp ../Src/utils/stylehelper.cpp ../Src/pages/taskdecisionpage.cpp ../Src/pages/dronemanagementpage.cpp ../Src/pages/taskdetailspage.cpp ../Src/utils/config.cpp ../Src/utils/logger.cpp ../Src/utils/errorhandler.cpp $(DISTDIR)/ clean: compiler_clean @@ -453,6 +453,7 @@ clean: compiler_clean distclean: clean -$(DEL_FILE) $(TARGET) + -$(DEL_FILE) .qmake.stash -$(DEL_FILE) Makefile @@ -469,9 +470,9 @@ benchmark: first compiler_rcc_make_all: qrc_app.cpp compiler_rcc_clean: -$(DEL_FILE) qrc_app.cpp -qrc_app.cpp: ../src/resources/app.qrc \ +qrc_app.cpp: ../Src/resources/app.qrc \ /usr/lib/qt5/bin/rcc - /usr/lib/qt5/bin/rcc -name app ../src/resources/app.qrc -o qrc_app.cpp + /usr/lib/qt5/bin/rcc -name app ../Src/resources/app.qrc -o qrc_app.cpp compiler_moc_predefs_make_all: moc_predefs.h compiler_moc_predefs_clean: @@ -482,81 +483,81 @@ moc_predefs.h: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp compiler_moc_header_make_all: moc_mainwindow.cpp moc_dronedata.cpp moc_detectiondata.cpp moc_videopage.cpp moc_mappage.cpp moc_mapbridge.cpp moc_datapage.cpp moc_taskdata.cpp moc_visionmodelpage.cpp moc_taskdecisionpage.cpp moc_dronemanagementpage.cpp moc_taskdetailspage.cpp compiler_moc_header_clean: -$(DEL_FILE) moc_mainwindow.cpp moc_dronedata.cpp moc_detectiondata.cpp moc_videopage.cpp moc_mappage.cpp moc_mapbridge.cpp moc_datapage.cpp moc_taskdata.cpp moc_visionmodelpage.cpp moc_taskdecisionpage.cpp moc_dronemanagementpage.cpp moc_taskdetailspage.cpp -moc_mainwindow.cpp: ../src/ui/mainwindow.h \ - ../src/models/dronedata.h \ - ../src/models/detectiondata.h \ - ../src/pages/visionmodelpage.h \ - ../src/utils/stylehelper.h \ - ../src/pages/taskdecisionpage.h \ - ../src/pages/mappage.h \ - ../src/pages/mapbridge.h \ - ../src/pages/dronemanagementpage.h \ - ../src/pages/taskdetailspage.h \ - ../src/pages/taskdata.h \ +moc_mainwindow.cpp: ../Src/ui/mainwindow.h \ + ../Src/models/dronedata.h \ + ../Src/models/detectiondata.h \ + ../Src/pages/visionmodelpage.h \ + ../Src/utils/stylehelper.h \ + ../Src/pages/taskdecisionpage.h \ + ../Src/pages/mappage.h \ + ../Src/pages/mapbridge.h \ + ../Src/pages/dronemanagementpage.h \ + ../Src/pages/taskdetailspage.h \ + ../Src/pages/taskdata.h \ moc_predefs.h \ /usr/lib/qt5/bin/moc - /usr/lib/qt5/bin/moc $(DEFINES) --include /home/wangjing/uav/Drone_project/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/wangjing/uav/Drone_project -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../src/ui/mainwindow.h -o moc_mainwindow.cpp + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/wangjing/uav/Drone_project/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/wangjing/uav/Drone_project -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../Src/ui/mainwindow.h -o moc_mainwindow.cpp -moc_dronedata.cpp: ../src/models/dronedata.h \ +moc_dronedata.cpp: ../Src/models/dronedata.h \ moc_predefs.h \ /usr/lib/qt5/bin/moc - /usr/lib/qt5/bin/moc $(DEFINES) --include /home/wangjing/uav/Drone_project/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/wangjing/uav/Drone_project -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../src/models/dronedata.h -o moc_dronedata.cpp + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/wangjing/uav/Drone_project/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/wangjing/uav/Drone_project -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../Src/models/dronedata.h -o moc_dronedata.cpp -moc_detectiondata.cpp: ../src/models/detectiondata.h \ +moc_detectiondata.cpp: ../Src/models/detectiondata.h \ moc_predefs.h \ /usr/lib/qt5/bin/moc - /usr/lib/qt5/bin/moc $(DEFINES) --include /home/wangjing/uav/Drone_project/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/wangjing/uav/Drone_project -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../src/models/detectiondata.h -o moc_detectiondata.cpp + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/wangjing/uav/Drone_project/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/wangjing/uav/Drone_project -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../Src/models/detectiondata.h -o moc_detectiondata.cpp -moc_videopage.cpp: ../src/pages/videopage.h \ +moc_videopage.cpp: ../Src/pages/videopage.h \ moc_predefs.h \ /usr/lib/qt5/bin/moc - /usr/lib/qt5/bin/moc $(DEFINES) --include /home/wangjing/uav/Drone_project/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/wangjing/uav/Drone_project -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../src/pages/videopage.h -o moc_videopage.cpp + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/wangjing/uav/Drone_project/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/wangjing/uav/Drone_project -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../Src/pages/videopage.h -o moc_videopage.cpp -moc_mappage.cpp: ../src/pages/mappage.h \ - ../src/pages/mapbridge.h \ +moc_mappage.cpp: ../Src/pages/mappage.h \ + ../Src/pages/mapbridge.h \ moc_predefs.h \ /usr/lib/qt5/bin/moc - /usr/lib/qt5/bin/moc $(DEFINES) --include /home/wangjing/uav/Drone_project/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/wangjing/uav/Drone_project -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../src/pages/mappage.h -o moc_mappage.cpp + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/wangjing/uav/Drone_project/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/wangjing/uav/Drone_project -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../Src/pages/mappage.h -o moc_mappage.cpp -moc_mapbridge.cpp: ../src/pages/mapbridge.h \ +moc_mapbridge.cpp: ../Src/pages/mapbridge.h \ moc_predefs.h \ /usr/lib/qt5/bin/moc - /usr/lib/qt5/bin/moc $(DEFINES) --include /home/wangjing/uav/Drone_project/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/wangjing/uav/Drone_project -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../src/pages/mapbridge.h -o moc_mapbridge.cpp + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/wangjing/uav/Drone_project/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/wangjing/uav/Drone_project -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../Src/pages/mapbridge.h -o moc_mapbridge.cpp -moc_datapage.cpp: ../src/pages/datapage.h \ +moc_datapage.cpp: ../Src/pages/datapage.h \ moc_predefs.h \ /usr/lib/qt5/bin/moc - /usr/lib/qt5/bin/moc $(DEFINES) --include /home/wangjing/uav/Drone_project/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/wangjing/uav/Drone_project -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../src/pages/datapage.h -o moc_datapage.cpp + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/wangjing/uav/Drone_project/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/wangjing/uav/Drone_project -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../Src/pages/datapage.h -o moc_datapage.cpp -moc_taskdata.cpp: ../src/pages/taskdata.h \ +moc_taskdata.cpp: ../Src/pages/taskdata.h \ moc_predefs.h \ /usr/lib/qt5/bin/moc - /usr/lib/qt5/bin/moc $(DEFINES) --include /home/wangjing/uav/Drone_project/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/wangjing/uav/Drone_project -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../src/pages/taskdata.h -o moc_taskdata.cpp + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/wangjing/uav/Drone_project/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/wangjing/uav/Drone_project -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../Src/pages/taskdata.h -o moc_taskdata.cpp -moc_visionmodelpage.cpp: ../src/pages/visionmodelpage.h \ +moc_visionmodelpage.cpp: ../Src/pages/visionmodelpage.h \ moc_predefs.h \ /usr/lib/qt5/bin/moc - /usr/lib/qt5/bin/moc $(DEFINES) --include /home/wangjing/uav/Drone_project/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/wangjing/uav/Drone_project -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../src/pages/visionmodelpage.h -o moc_visionmodelpage.cpp + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/wangjing/uav/Drone_project/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/wangjing/uav/Drone_project -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../Src/pages/visionmodelpage.h -o moc_visionmodelpage.cpp -moc_taskdecisionpage.cpp: ../src/pages/taskdecisionpage.h \ - ../src/pages/mappage.h \ - ../src/pages/mapbridge.h \ +moc_taskdecisionpage.cpp: ../Src/pages/taskdecisionpage.h \ + ../Src/pages/mappage.h \ + ../Src/pages/mapbridge.h \ moc_predefs.h \ /usr/lib/qt5/bin/moc - /usr/lib/qt5/bin/moc $(DEFINES) --include /home/wangjing/uav/Drone_project/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/wangjing/uav/Drone_project -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../src/pages/taskdecisionpage.h -o moc_taskdecisionpage.cpp + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/wangjing/uav/Drone_project/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/wangjing/uav/Drone_project -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../Src/pages/taskdecisionpage.h -o moc_taskdecisionpage.cpp -moc_dronemanagementpage.cpp: ../src/pages/dronemanagementpage.h \ - ../src/models/dronedata.h \ +moc_dronemanagementpage.cpp: ../Src/pages/dronemanagementpage.h \ + ../Src/models/dronedata.h \ moc_predefs.h \ /usr/lib/qt5/bin/moc - /usr/lib/qt5/bin/moc $(DEFINES) --include /home/wangjing/uav/Drone_project/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/wangjing/uav/Drone_project -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../src/pages/dronemanagementpage.h -o moc_dronemanagementpage.cpp + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/wangjing/uav/Drone_project/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/wangjing/uav/Drone_project -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../Src/pages/dronemanagementpage.h -o moc_dronemanagementpage.cpp -moc_taskdetailspage.cpp: ../src/pages/taskdetailspage.h \ - ../src/pages/taskdata.h \ - ../src/models/dronedata.h \ +moc_taskdetailspage.cpp: ../Src/pages/taskdetailspage.h \ + ../Src/pages/taskdata.h \ + ../Src/models/dronedata.h \ moc_predefs.h \ /usr/lib/qt5/bin/moc - /usr/lib/qt5/bin/moc $(DEFINES) --include /home/wangjing/uav/Drone_project/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/wangjing/uav/Drone_project -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../src/pages/taskdetailspage.h -o moc_taskdetailspage.cpp + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/wangjing/uav/Drone_project/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/wangjing/uav/Drone_project -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../Src/pages/taskdetailspage.h -o moc_taskdetailspage.cpp compiler_moc_objc_header_make_all: compiler_moc_objc_header_clean: @@ -574,87 +575,87 @@ compiler_clean: compiler_rcc_clean compiler_moc_predefs_clean compiler_moc_heade ####### Compile -main.o: ../src/core/main.cpp ../src/ui/mainwindow.h \ - ../src/models/dronedata.h \ - ../src/models/detectiondata.h \ - ../src/pages/visionmodelpage.h \ - ../src/utils/stylehelper.h \ - ../src/pages/taskdecisionpage.h \ - ../src/pages/mappage.h \ - ../src/pages/mapbridge.h \ - ../src/pages/dronemanagementpage.h \ - ../src/pages/taskdetailspage.h \ - ../src/pages/taskdata.h - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o main.o ../src/core/main.cpp - -mainwindow.o: ../src/ui/mainwindow.cpp ../src/ui/mainwindow.h \ - ../src/models/dronedata.h \ - ../src/models/detectiondata.h \ - ../src/pages/visionmodelpage.h \ - ../src/utils/stylehelper.h \ - ../src/pages/taskdecisionpage.h \ - ../src/pages/mappage.h \ - ../src/pages/mapbridge.h \ - ../src/pages/dronemanagementpage.h \ - ../src/pages/taskdetailspage.h \ - ../src/pages/taskdata.h \ - ../src/pages/videopage.h \ - ../src/pages/datapage.h - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o mainwindow.o ../src/ui/mainwindow.cpp - -dronedata.o: ../src/models/dronedata.cpp ../src/models/dronedata.h - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o dronedata.o ../src/models/dronedata.cpp - -detectiondata.o: ../src/models/detectiondata.cpp ../src/models/detectiondata.h - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o detectiondata.o ../src/models/detectiondata.cpp - -videopage.o: ../src/pages/videopage.cpp ../src/pages/videopage.h - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o videopage.o ../src/pages/videopage.cpp - -mappage.o: ../src/pages/mappage.cpp ../src/pages/mappage.h \ - ../src/pages/mapbridge.h - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o mappage.o ../src/pages/mappage.cpp - -mapbridge.o: ../src/pages/mapbridge.cpp ../src/pages/mapbridge.h - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o mapbridge.o ../src/pages/mapbridge.cpp - -datapage.o: ../src/pages/datapage.cpp ../src/pages/datapage.h \ - ../src/models/dronedata.h \ - ../src/models/detectiondata.h - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o datapage.o ../src/pages/datapage.cpp - -taskdata.o: ../src/pages/taskdata.cpp ../src/pages/taskdata.h - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o taskdata.o ../src/pages/taskdata.cpp - -visionmodelpage.o: ../src/pages/visionmodelpage.cpp ../src/pages/visionmodelpage.h - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o visionmodelpage.o ../src/pages/visionmodelpage.cpp - -stylehelper.o: ../src/utils/stylehelper.cpp ../src/utils/stylehelper.h - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o stylehelper.o ../src/utils/stylehelper.cpp - -taskdecisionpage.o: ../src/pages/taskdecisionpage.cpp ../src/pages/taskdecisionpage.h \ - ../src/pages/mappage.h \ - ../src/pages/mapbridge.h - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o taskdecisionpage.o ../src/pages/taskdecisionpage.cpp - -dronemanagementpage.o: ../src/pages/dronemanagementpage.cpp ../src/pages/dronemanagementpage.h \ - ../src/models/dronedata.h - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o dronemanagementpage.o ../src/pages/dronemanagementpage.cpp - -taskdetailspage.o: ../src/pages/taskdetailspage.cpp ../src/pages/taskdetailspage.h \ - ../src/pages/taskdata.h \ - ../src/models/dronedata.h - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o taskdetailspage.o ../src/pages/taskdetailspage.cpp - -config.o: ../src/utils/config.cpp ../src/utils/config.h - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o config.o ../src/utils/config.cpp - -logger.o: ../src/utils/logger.cpp ../src/utils/logger.h \ - ../src/utils/config.h - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o logger.o ../src/utils/logger.cpp - -errorhandler.o: ../src/utils/errorhandler.cpp ../src/utils/errorhandler.h - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o errorhandler.o ../src/utils/errorhandler.cpp +main.o: ../Src/core/main.cpp ../Src/ui/mainwindow.h \ + ../Src/models/dronedata.h \ + ../Src/models/detectiondata.h \ + ../Src/pages/visionmodelpage.h \ + ../Src/utils/stylehelper.h \ + ../Src/pages/taskdecisionpage.h \ + ../Src/pages/mappage.h \ + ../Src/pages/mapbridge.h \ + ../Src/pages/dronemanagementpage.h \ + ../Src/pages/taskdetailspage.h \ + ../Src/pages/taskdata.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o main.o ../Src/core/main.cpp + +mainwindow.o: ../Src/ui/mainwindow.cpp ../Src/ui/mainwindow.h \ + ../Src/models/dronedata.h \ + ../Src/models/detectiondata.h \ + ../Src/pages/visionmodelpage.h \ + ../Src/utils/stylehelper.h \ + ../Src/pages/taskdecisionpage.h \ + ../Src/pages/mappage.h \ + ../Src/pages/mapbridge.h \ + ../Src/pages/dronemanagementpage.h \ + ../Src/pages/taskdetailspage.h \ + ../Src/pages/taskdata.h \ + ../Src/pages/videopage.h \ + ../Src/pages/datapage.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o mainwindow.o ../Src/ui/mainwindow.cpp + +dronedata.o: ../Src/models/dronedata.cpp ../Src/models/dronedata.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o dronedata.o ../Src/models/dronedata.cpp + +detectiondata.o: ../Src/models/detectiondata.cpp ../Src/models/detectiondata.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o detectiondata.o ../Src/models/detectiondata.cpp + +videopage.o: ../Src/pages/videopage.cpp ../Src/pages/videopage.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o videopage.o ../Src/pages/videopage.cpp + +mappage.o: ../Src/pages/mappage.cpp ../Src/pages/mappage.h \ + ../Src/pages/mapbridge.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o mappage.o ../Src/pages/mappage.cpp + +mapbridge.o: ../Src/pages/mapbridge.cpp ../Src/pages/mapbridge.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o mapbridge.o ../Src/pages/mapbridge.cpp + +datapage.o: ../Src/pages/datapage.cpp ../Src/pages/datapage.h \ + ../Src/models/dronedata.h \ + ../Src/models/detectiondata.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o datapage.o ../Src/pages/datapage.cpp + +taskdata.o: ../Src/pages/taskdata.cpp ../Src/pages/taskdata.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o taskdata.o ../Src/pages/taskdata.cpp + +visionmodelpage.o: ../Src/pages/visionmodelpage.cpp ../Src/pages/visionmodelpage.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o visionmodelpage.o ../Src/pages/visionmodelpage.cpp + +stylehelper.o: ../Src/utils/stylehelper.cpp ../Src/utils/stylehelper.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o stylehelper.o ../Src/utils/stylehelper.cpp + +taskdecisionpage.o: ../Src/pages/taskdecisionpage.cpp ../Src/pages/taskdecisionpage.h \ + ../Src/pages/mappage.h \ + ../Src/pages/mapbridge.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o taskdecisionpage.o ../Src/pages/taskdecisionpage.cpp + +dronemanagementpage.o: ../Src/pages/dronemanagementpage.cpp ../Src/pages/dronemanagementpage.h \ + ../Src/models/dronedata.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o dronemanagementpage.o ../Src/pages/dronemanagementpage.cpp + +taskdetailspage.o: ../Src/pages/taskdetailspage.cpp ../Src/pages/taskdetailspage.h \ + ../Src/pages/taskdata.h \ + ../Src/models/dronedata.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o taskdetailspage.o ../Src/pages/taskdetailspage.cpp + +config.o: ../Src/utils/config.cpp ../Src/utils/config.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o config.o ../Src/utils/config.cpp + +logger.o: ../Src/utils/logger.cpp ../Src/utils/logger.h \ + ../Src/utils/config.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o logger.o ../Src/utils/logger.cpp + +errorhandler.o: ../Src/utils/errorhandler.cpp ../Src/utils/errorhandler.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o errorhandler.o ../Src/utils/errorhandler.cpp qrc_app.o: qrc_app.cpp $(CXX) -c $(CXXFLAGS) $(INCPATH) -o qrc_app.o qrc_app.cpp diff --git a/build/config.o b/build/config.o index 31fdde6..c097f21 100644 Binary files a/build/config.o and b/build/config.o differ diff --git a/build/datapage.o b/build/datapage.o index 40774c0..729bb35 100644 Binary files a/build/datapage.o and b/build/datapage.o differ diff --git a/build/detectiondata.o b/build/detectiondata.o index ce626c6..348c283 100644 Binary files a/build/detectiondata.o and b/build/detectiondata.o differ diff --git a/build/dronedata.o b/build/dronedata.o index 44a9de3..022d65a 100644 Binary files a/build/dronedata.o and b/build/dronedata.o differ diff --git a/build/dronemanagementpage.o b/build/dronemanagementpage.o index df03404..c02529e 100644 Binary files a/build/dronemanagementpage.o and b/build/dronemanagementpage.o differ diff --git a/build/errorhandler.o b/build/errorhandler.o index 1e30954..e7efef2 100644 Binary files a/build/errorhandler.o and b/build/errorhandler.o differ diff --git a/build/logger.o b/build/logger.o index bb69148..16783a0 100644 Binary files a/build/logger.o and b/build/logger.o differ diff --git a/build/main.o b/build/main.o index 08f602f..5abcb35 100644 Binary files a/build/main.o and b/build/main.o differ diff --git a/build/mainwindow.o b/build/mainwindow.o index a397407..9f067a8 100644 Binary files a/build/mainwindow.o and b/build/mainwindow.o differ diff --git a/build/mapbridge.o b/build/mapbridge.o index 886a8c5..3c0d964 100644 Binary files a/build/mapbridge.o and b/build/mapbridge.o differ diff --git a/build/mappage.o b/build/mappage.o index fa716b0..8e5cf3f 100644 Binary files a/build/mappage.o and b/build/mappage.o differ diff --git a/build/moc_datapage.cpp b/build/moc_datapage.cpp index 68e0813..28b2319 100644 --- a/build/moc_datapage.cpp +++ b/build/moc_datapage.cpp @@ -7,7 +7,7 @@ *****************************************************************************/ #include -#include "../src/pages/datapage.h" +#include "../Src/pages/datapage.h" #include #include #if !defined(Q_MOC_OUTPUT_REVISION) diff --git a/build/moc_datapage.o b/build/moc_datapage.o index a29ad7f..a74c65e 100644 Binary files a/build/moc_datapage.o and b/build/moc_datapage.o differ diff --git a/build/moc_detectiondata.cpp b/build/moc_detectiondata.cpp index e10fd2e..edcf2b3 100644 --- a/build/moc_detectiondata.cpp +++ b/build/moc_detectiondata.cpp @@ -7,7 +7,7 @@ *****************************************************************************/ #include -#include "../src/models/detectiondata.h" +#include "../Src/models/detectiondata.h" #include #include #if !defined(Q_MOC_OUTPUT_REVISION) diff --git a/build/moc_detectiondata.o b/build/moc_detectiondata.o index 71d3000..bb58da8 100644 Binary files a/build/moc_detectiondata.o and b/build/moc_detectiondata.o differ diff --git a/build/moc_dronedata.cpp b/build/moc_dronedata.cpp index 3b4da1e..11d23a4 100644 --- a/build/moc_dronedata.cpp +++ b/build/moc_dronedata.cpp @@ -7,7 +7,7 @@ *****************************************************************************/ #include -#include "../src/models/dronedata.h" +#include "../Src/models/dronedata.h" #include #include #if !defined(Q_MOC_OUTPUT_REVISION) diff --git a/build/moc_dronedata.o b/build/moc_dronedata.o index 563cde3..4dda7a5 100644 Binary files a/build/moc_dronedata.o and b/build/moc_dronedata.o differ diff --git a/build/moc_dronemanagementpage.cpp b/build/moc_dronemanagementpage.cpp index d0a9fb2..f320c53 100644 --- a/build/moc_dronemanagementpage.cpp +++ b/build/moc_dronemanagementpage.cpp @@ -7,7 +7,7 @@ *****************************************************************************/ #include -#include "../src/pages/dronemanagementpage.h" +#include "../Src/pages/dronemanagementpage.h" #include #include #if !defined(Q_MOC_OUTPUT_REVISION) diff --git a/build/moc_dronemanagementpage.o b/build/moc_dronemanagementpage.o index ce613b3..77e7852 100644 Binary files a/build/moc_dronemanagementpage.o and b/build/moc_dronemanagementpage.o differ diff --git a/build/moc_mainwindow.cpp b/build/moc_mainwindow.cpp index 67a417e..a826504 100644 --- a/build/moc_mainwindow.cpp +++ b/build/moc_mainwindow.cpp @@ -7,7 +7,7 @@ *****************************************************************************/ #include -#include "../src/ui/mainwindow.h" +#include "../Src/ui/mainwindow.h" #include #include #if !defined(Q_MOC_OUTPUT_REVISION) diff --git a/build/moc_mainwindow.o b/build/moc_mainwindow.o index 3ba44d8..c51301a 100644 Binary files a/build/moc_mainwindow.o and b/build/moc_mainwindow.o differ diff --git a/build/moc_mapbridge.cpp b/build/moc_mapbridge.cpp index e10afd1..f07542b 100644 --- a/build/moc_mapbridge.cpp +++ b/build/moc_mapbridge.cpp @@ -7,7 +7,7 @@ *****************************************************************************/ #include -#include "../src/pages/mapbridge.h" +#include "../Src/pages/mapbridge.h" #include #include #if !defined(Q_MOC_OUTPUT_REVISION) diff --git a/build/moc_mapbridge.o b/build/moc_mapbridge.o index dcd343d..89e5e05 100644 Binary files a/build/moc_mapbridge.o and b/build/moc_mapbridge.o differ diff --git a/build/moc_mappage.cpp b/build/moc_mappage.cpp index 9ca69d2..a679c2a 100644 --- a/build/moc_mappage.cpp +++ b/build/moc_mappage.cpp @@ -7,7 +7,7 @@ *****************************************************************************/ #include -#include "../src/pages/mappage.h" +#include "../Src/pages/mappage.h" #include #include #if !defined(Q_MOC_OUTPUT_REVISION) @@ -138,8 +138,8 @@ void CustomWebEnginePage::consoleMessage(QWebEnginePage::JavaScriptConsoleMessag QMetaObject::activate(this, &staticMetaObject, 0, _a); } struct qt_meta_stringdata_ThreatAreaDialog_t { - QByteArrayData data[4]; - char stringdata0[44]; + QByteArrayData data[13]; + char stringdata0[149]; }; #define QT_MOC_LITERAL(idx, ofs, len) \ Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ @@ -151,10 +151,22 @@ static const qt_meta_stringdata_ThreatAreaDialog_t qt_meta_stringdata_ThreatArea QT_MOC_LITERAL(0, 0, 16), // "ThreatAreaDialog" QT_MOC_LITERAL(1, 17, 7), // "addArea" QT_MOC_LITERAL(2, 25, 0), // "" -QT_MOC_LITERAL(3, 26, 17) // "updateThreatStats" +QT_MOC_LITERAL(3, 26, 17), // "updateThreatStats" +QT_MOC_LITERAL(4, 44, 22), // "startDrawingThreatArea" +QT_MOC_LITERAL(5, 67, 14), // "onShapeChanged" +QT_MOC_LITERAL(6, 82, 5), // "index" +QT_MOC_LITERAL(7, 88, 18), // "handleDrawingClick" +QT_MOC_LITERAL(8, 107, 3), // "lng" +QT_MOC_LITERAL(9, 111, 3), // "lat" +QT_MOC_LITERAL(10, 115, 13), // "finishDrawing" +QT_MOC_LITERAL(11, 129, 8), // "editArea" +QT_MOC_LITERAL(12, 138, 10) // "deleteArea" }, - "ThreatAreaDialog\0addArea\0\0updateThreatStats" + "ThreatAreaDialog\0addArea\0\0updateThreatStats\0" + "startDrawingThreatArea\0onShapeChanged\0" + "index\0handleDrawingClick\0lng\0lat\0" + "finishDrawing\0editArea\0deleteArea" }; #undef QT_MOC_LITERAL @@ -164,7 +176,7 @@ static const uint qt_meta_data_ThreatAreaDialog[] = { 8, // revision 0, // classname 0, 0, // classinfo - 2, 14, // methods + 8, 14, // methods 0, 0, // properties 0, 0, // enums/sets 0, 0, // constructors @@ -172,10 +184,22 @@ static const uint qt_meta_data_ThreatAreaDialog[] = { 0, // signalCount // slots: name, argc, parameters, tag, flags - 1, 0, 24, 2, 0x08 /* Private */, - 3, 0, 25, 2, 0x08 /* Private */, + 1, 0, 54, 2, 0x08 /* Private */, + 3, 0, 55, 2, 0x08 /* Private */, + 4, 0, 56, 2, 0x08 /* Private */, + 5, 1, 57, 2, 0x08 /* Private */, + 7, 2, 60, 2, 0x08 /* Private */, + 10, 0, 65, 2, 0x08 /* Private */, + 11, 0, 66, 2, 0x08 /* Private */, + 12, 0, 67, 2, 0x08 /* Private */, // slots: parameters + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, QMetaType::Int, 6, + QMetaType::Void, QMetaType::Double, QMetaType::Double, 8, 9, + QMetaType::Void, QMetaType::Void, QMetaType::Void, @@ -190,10 +214,15 @@ void ThreatAreaDialog::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int switch (_id) { case 0: _t->addArea(); break; case 1: _t->updateThreatStats(); break; + case 2: _t->startDrawingThreatArea(); break; + case 3: _t->onShapeChanged((*reinterpret_cast< int(*)>(_a[1]))); break; + case 4: _t->handleDrawingClick((*reinterpret_cast< double(*)>(_a[1])),(*reinterpret_cast< double(*)>(_a[2]))); break; + case 5: _t->finishDrawing(); break; + case 6: _t->editArea(); break; + case 7: _t->deleteArea(); break; default: ; } } - (void)_a; } QT_INIT_METAOBJECT const QMetaObject ThreatAreaDialog::staticMetaObject = { { @@ -225,13 +254,13 @@ int ThreatAreaDialog::qt_metacall(QMetaObject::Call _c, int _id, void **_a) if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { - if (_id < 2) + if (_id < 8) qt_static_metacall(this, _c, _id, _a); - _id -= 2; + _id -= 8; } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { - if (_id < 2) + if (_id < 8) *reinterpret_cast(_a[0]) = -1; - _id -= 2; + _id -= 8; } return _id; } @@ -471,100 +500,6 @@ int AreaCoverageDialog::qt_metacall(QMetaObject::Call _c, int _id, void **_a) } return _id; } -struct qt_meta_stringdata_AreaSearchDialog_t { - QByteArrayData data[3]; - char stringdata0[28]; -}; -#define QT_MOC_LITERAL(idx, ofs, len) \ - Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ - qptrdiff(offsetof(qt_meta_stringdata_AreaSearchDialog_t, stringdata0) + ofs \ - - idx * sizeof(QByteArrayData)) \ - ) -static const qt_meta_stringdata_AreaSearchDialog_t qt_meta_stringdata_AreaSearchDialog = { - { -QT_MOC_LITERAL(0, 0, 16), // "AreaSearchDialog" -QT_MOC_LITERAL(1, 17, 9), // "onConfirm" -QT_MOC_LITERAL(2, 27, 0) // "" - - }, - "AreaSearchDialog\0onConfirm\0" -}; -#undef QT_MOC_LITERAL - -static const uint qt_meta_data_AreaSearchDialog[] = { - - // content: - 8, // revision - 0, // classname - 0, 0, // classinfo - 1, 14, // methods - 0, 0, // properties - 0, 0, // enums/sets - 0, 0, // constructors - 0, // flags - 0, // signalCount - - // slots: name, argc, parameters, tag, flags - 1, 0, 19, 2, 0x08 /* Private */, - - // slots: parameters - QMetaType::Void, - - 0 // eod -}; - -void AreaSearchDialog::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) -{ - if (_c == QMetaObject::InvokeMetaMethod) { - auto *_t = static_cast(_o); - (void)_t; - switch (_id) { - case 0: _t->onConfirm(); break; - default: ; - } - } - (void)_a; -} - -QT_INIT_METAOBJECT const QMetaObject AreaSearchDialog::staticMetaObject = { { - QMetaObject::SuperData::link(), - qt_meta_stringdata_AreaSearchDialog.data, - qt_meta_data_AreaSearchDialog, - qt_static_metacall, - nullptr, - nullptr -} }; - - -const QMetaObject *AreaSearchDialog::metaObject() const -{ - return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; -} - -void *AreaSearchDialog::qt_metacast(const char *_clname) -{ - if (!_clname) return nullptr; - if (!strcmp(_clname, qt_meta_stringdata_AreaSearchDialog.stringdata0)) - return static_cast(this); - return QDialog::qt_metacast(_clname); -} - -int AreaSearchDialog::qt_metacall(QMetaObject::Call _c, int _id, void **_a) -{ - _id = QDialog::qt_metacall(_c, _id, _a); - if (_id < 0) - return _id; - if (_c == QMetaObject::InvokeMetaMethod) { - if (_id < 1) - qt_static_metacall(this, _c, _id, _a); - _id -= 1; - } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { - if (_id < 1) - *reinterpret_cast(_a[0]) = -1; - _id -= 1; - } - return _id; -} struct qt_meta_stringdata_LocateDialog_t { QByteArrayData data[3]; char stringdata0[24]; @@ -660,8 +595,8 @@ int LocateDialog::qt_metacall(QMetaObject::Call _c, int _id, void **_a) return _id; } struct qt_meta_stringdata_MapPage_t { - QByteArrayData data[43]; - char stringdata0[595]; + QByteArrayData data[48]; + char stringdata0[662]; }; #define QT_MOC_LITERAL(idx, ofs, len) \ Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ @@ -686,33 +621,38 @@ QT_MOC_LITERAL(12, 149, 20), // "onDownloadMapClicked" QT_MOC_LITERAL(13, 170, 18), // "onSetThreatClicked" QT_MOC_LITERAL(14, 189, 21), // "onPathPlanningClicked" QT_MOC_LITERAL(15, 211, 21), // "onAreaCoverageClicked" -QT_MOC_LITERAL(16, 233, 19), // "onAreaSearchClicked" -QT_MOC_LITERAL(17, 253, 18), // "onSearchMapClicked" -QT_MOC_LITERAL(18, 272, 16), // "onConsoleMessage" -QT_MOC_LITERAL(19, 289, 45), // "QWebEnginePage::JavaScriptCon..." -QT_MOC_LITERAL(20, 335, 5), // "level" -QT_MOC_LITERAL(21, 341, 7), // "message" -QT_MOC_LITERAL(22, 349, 10), // "lineNumber" -QT_MOC_LITERAL(23, 360, 8), // "sourceID" -QT_MOC_LITERAL(24, 369, 12), // "onPageLoaded" -QT_MOC_LITERAL(25, 382, 2), // "ok" -QT_MOC_LITERAL(26, 385, 16), // "addClickListener" -QT_MOC_LITERAL(27, 402, 19), // "removeClickListener" -QT_MOC_LITERAL(28, 422, 14), // "handleMapClick" -QT_MOC_LITERAL(29, 437, 13), // "visualizePath" -QT_MOC_LITERAL(30, 451, 8), // "pathData" -QT_MOC_LITERAL(31, 460, 17), // "clearPathOverlays" -QT_MOC_LITERAL(32, 478, 16), // "runMapJavaScript" -QT_MOC_LITERAL(33, 495, 2), // "js" -QT_MOC_LITERAL(34, 498, 8), // "parseLng" -QT_MOC_LITERAL(35, 507, 5), // "coord" -QT_MOC_LITERAL(36, 513, 8), // "parseLat" -QT_MOC_LITERAL(37, 522, 10), // "showMarker" -QT_MOC_LITERAL(38, 533, 5), // "label" -QT_MOC_LITERAL(39, 539, 5), // "color" -QT_MOC_LITERAL(40, 545, 5), // "index" -QT_MOC_LITERAL(41, 551, 21), // "visualizeCoveragePath" -QT_MOC_LITERAL(42, 573, 21) // "clearCoverageOverlays" +QT_MOC_LITERAL(16, 233, 18), // "onSearchMapClicked" +QT_MOC_LITERAL(17, 252, 16), // "onConsoleMessage" +QT_MOC_LITERAL(18, 269, 45), // "QWebEnginePage::JavaScriptCon..." +QT_MOC_LITERAL(19, 315, 5), // "level" +QT_MOC_LITERAL(20, 321, 7), // "message" +QT_MOC_LITERAL(21, 329, 10), // "lineNumber" +QT_MOC_LITERAL(22, 340, 8), // "sourceID" +QT_MOC_LITERAL(23, 349, 12), // "onPageLoaded" +QT_MOC_LITERAL(24, 362, 2), // "ok" +QT_MOC_LITERAL(25, 365, 16), // "addClickListener" +QT_MOC_LITERAL(26, 382, 19), // "removeClickListener" +QT_MOC_LITERAL(27, 402, 14), // "handleMapClick" +QT_MOC_LITERAL(28, 417, 13), // "visualizePath" +QT_MOC_LITERAL(29, 431, 8), // "pathData" +QT_MOC_LITERAL(30, 440, 17), // "clearPathOverlays" +QT_MOC_LITERAL(31, 458, 16), // "runMapJavaScript" +QT_MOC_LITERAL(32, 475, 2), // "js" +QT_MOC_LITERAL(33, 478, 8), // "parseLng" +QT_MOC_LITERAL(34, 487, 5), // "coord" +QT_MOC_LITERAL(35, 493, 8), // "parseLat" +QT_MOC_LITERAL(36, 502, 10), // "showMarker" +QT_MOC_LITERAL(37, 513, 5), // "label" +QT_MOC_LITERAL(38, 519, 5), // "color" +QT_MOC_LITERAL(39, 525, 5), // "index" +QT_MOC_LITERAL(40, 531, 21), // "visualizeCoveragePath" +QT_MOC_LITERAL(41, 553, 21), // "clearCoverageOverlays" +QT_MOC_LITERAL(42, 575, 17), // "enableDrawingMode" +QT_MOC_LITERAL(43, 593, 5), // "shape" +QT_MOC_LITERAL(44, 599, 18), // "disableDrawingMode" +QT_MOC_LITERAL(45, 618, 16), // "addThreatOverlay" +QT_MOC_LITERAL(46, 635, 6), // "params" +QT_MOC_LITERAL(47, 642, 19) // "removeThreatOverlay" }, "MapPage\0heightChanged\0\0height\0" @@ -721,8 +661,7 @@ QT_MOC_LITERAL(42, 573, 21) // "clearCoverageOverlays" "mapClicked\0lng\0lat\0onHeightChanged\0" "onDownloadMapClicked\0onSetThreatClicked\0" "onPathPlanningClicked\0onAreaCoverageClicked\0" - "onAreaSearchClicked\0onSearchMapClicked\0" - "onConsoleMessage\0" + "onSearchMapClicked\0onConsoleMessage\0" "QWebEnginePage::JavaScriptConsoleMessageLevel\0" "level\0message\0lineNumber\0sourceID\0" "onPageLoaded\0ok\0addClickListener\0" @@ -730,7 +669,9 @@ QT_MOC_LITERAL(42, 573, 21) // "clearCoverageOverlays" "visualizePath\0pathData\0clearPathOverlays\0" "runMapJavaScript\0js\0parseLng\0coord\0" "parseLat\0showMarker\0label\0color\0index\0" - "visualizeCoveragePath\0clearCoverageOverlays" + "visualizeCoveragePath\0clearCoverageOverlays\0" + "enableDrawingMode\0shape\0disableDrawingMode\0" + "addThreatOverlay\0params\0removeThreatOverlay" }; #undef QT_MOC_LITERAL @@ -740,7 +681,7 @@ static const uint qt_meta_data_MapPage[] = { 8, // revision 0, // classname 0, 0, // classinfo - 26, 14, // methods + 29, 14, // methods 0, 0, // properties 0, 0, // enums/sets 0, 0, // constructors @@ -748,34 +689,37 @@ static const uint qt_meta_data_MapPage[] = { 6, // signalCount // signals: name, argc, parameters, tag, flags - 1, 1, 144, 2, 0x06 /* Public */, - 4, 0, 147, 2, 0x06 /* Public */, - 5, 0, 148, 2, 0x06 /* Public */, - 6, 0, 149, 2, 0x06 /* Public */, - 7, 0, 150, 2, 0x06 /* Public */, - 8, 2, 151, 2, 0x06 /* Public */, + 1, 1, 159, 2, 0x06 /* Public */, + 4, 0, 162, 2, 0x06 /* Public */, + 5, 0, 163, 2, 0x06 /* Public */, + 6, 0, 164, 2, 0x06 /* Public */, + 7, 0, 165, 2, 0x06 /* Public */, + 8, 2, 166, 2, 0x06 /* Public */, // slots: name, argc, parameters, tag, flags - 11, 0, 156, 2, 0x08 /* Private */, - 12, 0, 157, 2, 0x08 /* Private */, - 13, 0, 158, 2, 0x08 /* Private */, - 14, 0, 159, 2, 0x08 /* Private */, - 15, 0, 160, 2, 0x08 /* Private */, - 16, 0, 161, 2, 0x08 /* Private */, - 17, 0, 162, 2, 0x08 /* Private */, - 18, 4, 163, 2, 0x08 /* Private */, - 24, 1, 172, 2, 0x08 /* Private */, - 26, 0, 175, 2, 0x0a /* Public */, - 27, 0, 176, 2, 0x0a /* Public */, - 28, 2, 177, 2, 0x0a /* Public */, - 29, 1, 182, 2, 0x0a /* Public */, - 31, 0, 185, 2, 0x0a /* Public */, - 32, 1, 186, 2, 0x0a /* Public */, - 34, 1, 189, 2, 0x0a /* Public */, - 36, 1, 192, 2, 0x0a /* Public */, - 37, 5, 195, 2, 0x0a /* Public */, - 41, 1, 206, 2, 0x0a /* Public */, - 42, 0, 209, 2, 0x0a /* Public */, + 11, 0, 171, 2, 0x08 /* Private */, + 12, 0, 172, 2, 0x08 /* Private */, + 13, 0, 173, 2, 0x08 /* Private */, + 14, 0, 174, 2, 0x08 /* Private */, + 15, 0, 175, 2, 0x08 /* Private */, + 16, 0, 176, 2, 0x08 /* Private */, + 17, 4, 177, 2, 0x08 /* Private */, + 23, 1, 186, 2, 0x08 /* Private */, + 25, 0, 189, 2, 0x0a /* Public */, + 26, 0, 190, 2, 0x0a /* Public */, + 27, 2, 191, 2, 0x0a /* Public */, + 28, 1, 196, 2, 0x0a /* Public */, + 30, 0, 199, 2, 0x0a /* Public */, + 31, 1, 200, 2, 0x0a /* Public */, + 33, 1, 203, 2, 0x0a /* Public */, + 35, 1, 206, 2, 0x0a /* Public */, + 36, 5, 209, 2, 0x0a /* Public */, + 40, 1, 220, 2, 0x0a /* Public */, + 41, 0, 223, 2, 0x0a /* Public */, + 42, 1, 224, 2, 0x0a /* Public */, + 44, 0, 227, 2, 0x0a /* Public */, + 45, 2, 228, 2, 0x0a /* Public */, + 47, 1, 233, 2, 0x0a /* Public */, // signals: parameters QMetaType::Void, QMetaType::QString, 3, @@ -792,20 +736,23 @@ static const uint qt_meta_data_MapPage[] = { QMetaType::Void, QMetaType::Void, QMetaType::Void, - QMetaType::Void, - QMetaType::Void, 0x80000000 | 19, QMetaType::QString, QMetaType::Int, QMetaType::QString, 20, 21, 22, 23, - QMetaType::Void, QMetaType::Bool, 25, + QMetaType::Void, 0x80000000 | 18, QMetaType::QString, QMetaType::Int, QMetaType::QString, 19, 20, 21, 22, + QMetaType::Void, QMetaType::Bool, 24, QMetaType::Void, QMetaType::Void, QMetaType::Void, QMetaType::Double, QMetaType::Double, 9, 10, - QMetaType::Void, QMetaType::QString, 30, + QMetaType::Void, QMetaType::QString, 29, + QMetaType::Void, + QMetaType::Void, QMetaType::QString, 32, + QMetaType::Double, QMetaType::QString, 34, + QMetaType::Double, QMetaType::QString, 34, + QMetaType::Void, QMetaType::Double, QMetaType::Double, QMetaType::QString, QMetaType::QString, QMetaType::Int, 9, 10, 37, 38, 39, + QMetaType::Void, QMetaType::QString, 29, QMetaType::Void, - QMetaType::Void, QMetaType::QString, 33, - QMetaType::Double, QMetaType::QString, 35, - QMetaType::Double, QMetaType::QString, 35, - QMetaType::Void, QMetaType::Double, QMetaType::Double, QMetaType::QString, QMetaType::QString, QMetaType::Int, 9, 10, 38, 39, 40, - QMetaType::Void, QMetaType::QString, 30, + QMetaType::Void, QMetaType::QString, 43, QMetaType::Void, + QMetaType::Void, QMetaType::QString, QMetaType::QVariantMap, 43, 46, + QMetaType::Void, QMetaType::Int, 39, 0 // eod }; @@ -827,23 +774,26 @@ void MapPage::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, voi case 8: _t->onSetThreatClicked(); break; case 9: _t->onPathPlanningClicked(); break; case 10: _t->onAreaCoverageClicked(); break; - case 11: _t->onAreaSearchClicked(); break; - case 12: _t->onSearchMapClicked(); break; - case 13: _t->onConsoleMessage((*reinterpret_cast< QWebEnginePage::JavaScriptConsoleMessageLevel(*)>(_a[1])),(*reinterpret_cast< const QString(*)>(_a[2])),(*reinterpret_cast< int(*)>(_a[3])),(*reinterpret_cast< const QString(*)>(_a[4]))); break; - case 14: _t->onPageLoaded((*reinterpret_cast< bool(*)>(_a[1]))); break; - case 15: _t->addClickListener(); break; - case 16: _t->removeClickListener(); break; - case 17: _t->handleMapClick((*reinterpret_cast< double(*)>(_a[1])),(*reinterpret_cast< double(*)>(_a[2]))); break; - case 18: _t->visualizePath((*reinterpret_cast< const QString(*)>(_a[1]))); break; - case 19: _t->clearPathOverlays(); break; - case 20: _t->runMapJavaScript((*reinterpret_cast< const QString(*)>(_a[1]))); break; - case 21: { double _r = _t->parseLng((*reinterpret_cast< const QString(*)>(_a[1]))); + case 11: _t->onSearchMapClicked(); break; + case 12: _t->onConsoleMessage((*reinterpret_cast< QWebEnginePage::JavaScriptConsoleMessageLevel(*)>(_a[1])),(*reinterpret_cast< const QString(*)>(_a[2])),(*reinterpret_cast< int(*)>(_a[3])),(*reinterpret_cast< const QString(*)>(_a[4]))); break; + case 13: _t->onPageLoaded((*reinterpret_cast< bool(*)>(_a[1]))); break; + case 14: _t->addClickListener(); break; + case 15: _t->removeClickListener(); break; + case 16: _t->handleMapClick((*reinterpret_cast< double(*)>(_a[1])),(*reinterpret_cast< double(*)>(_a[2]))); break; + case 17: _t->visualizePath((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 18: _t->clearPathOverlays(); break; + case 19: _t->runMapJavaScript((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 20: { double _r = _t->parseLng((*reinterpret_cast< const QString(*)>(_a[1]))); if (_a[0]) *reinterpret_cast< double*>(_a[0]) = std::move(_r); } break; - case 22: { double _r = _t->parseLat((*reinterpret_cast< const QString(*)>(_a[1]))); + case 21: { double _r = _t->parseLat((*reinterpret_cast< const QString(*)>(_a[1]))); if (_a[0]) *reinterpret_cast< double*>(_a[0]) = std::move(_r); } break; - case 23: _t->showMarker((*reinterpret_cast< double(*)>(_a[1])),(*reinterpret_cast< double(*)>(_a[2])),(*reinterpret_cast< const QString(*)>(_a[3])),(*reinterpret_cast< const QString(*)>(_a[4])),(*reinterpret_cast< int(*)>(_a[5]))); break; - case 24: _t->visualizeCoveragePath((*reinterpret_cast< const QString(*)>(_a[1]))); break; - case 25: _t->clearCoverageOverlays(); break; + case 22: _t->showMarker((*reinterpret_cast< double(*)>(_a[1])),(*reinterpret_cast< double(*)>(_a[2])),(*reinterpret_cast< const QString(*)>(_a[3])),(*reinterpret_cast< const QString(*)>(_a[4])),(*reinterpret_cast< int(*)>(_a[5]))); break; + case 23: _t->visualizeCoveragePath((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 24: _t->clearCoverageOverlays(); break; + case 25: _t->enableDrawingMode((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 26: _t->disableDrawingMode(); break; + case 27: _t->addThreatOverlay((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< const QVariantMap(*)>(_a[2]))); break; + case 28: _t->removeThreatOverlay((*reinterpret_cast< int(*)>(_a[1]))); break; default: ; } } else if (_c == QMetaObject::IndexOfMethod) { @@ -922,13 +872,13 @@ int MapPage::qt_metacall(QMetaObject::Call _c, int _id, void **_a) if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { - if (_id < 26) + if (_id < 29) qt_static_metacall(this, _c, _id, _a); - _id -= 26; + _id -= 29; } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { - if (_id < 26) + if (_id < 29) *reinterpret_cast(_a[0]) = -1; - _id -= 26; + _id -= 29; } return _id; } diff --git a/build/moc_mappage.o b/build/moc_mappage.o index 618917c..1c5e7fc 100644 Binary files a/build/moc_mappage.o and b/build/moc_mappage.o differ diff --git a/build/moc_taskdata.cpp b/build/moc_taskdata.cpp index 934bf20..f57f40c 100644 --- a/build/moc_taskdata.cpp +++ b/build/moc_taskdata.cpp @@ -7,7 +7,7 @@ *****************************************************************************/ #include -#include "../src/pages/taskdata.h" +#include "../Src/pages/taskdata.h" #include #include #if !defined(Q_MOC_OUTPUT_REVISION) diff --git a/build/moc_taskdata.o b/build/moc_taskdata.o index 2498dfb..a07e500 100644 Binary files a/build/moc_taskdata.o and b/build/moc_taskdata.o differ diff --git a/build/moc_taskdecisionpage.cpp b/build/moc_taskdecisionpage.cpp index a2d51a6..89bc4c2 100644 --- a/build/moc_taskdecisionpage.cpp +++ b/build/moc_taskdecisionpage.cpp @@ -7,7 +7,7 @@ *****************************************************************************/ #include -#include "../src/pages/taskdecisionpage.h" +#include "../Src/pages/taskdecisionpage.h" #include #include #if !defined(Q_MOC_OUTPUT_REVISION) diff --git a/build/moc_taskdecisionpage.o b/build/moc_taskdecisionpage.o index 19f21a3..07e48a9 100644 Binary files a/build/moc_taskdecisionpage.o and b/build/moc_taskdecisionpage.o differ diff --git a/build/moc_taskdetailspage.cpp b/build/moc_taskdetailspage.cpp index 7144db5..d81bd4d 100644 --- a/build/moc_taskdetailspage.cpp +++ b/build/moc_taskdetailspage.cpp @@ -7,7 +7,7 @@ *****************************************************************************/ #include -#include "../src/pages/taskdetailspage.h" +#include "../Src/pages/taskdetailspage.h" #include #include #if !defined(Q_MOC_OUTPUT_REVISION) diff --git a/build/moc_taskdetailspage.o b/build/moc_taskdetailspage.o index f7f23bc..e08b2d3 100644 Binary files a/build/moc_taskdetailspage.o and b/build/moc_taskdetailspage.o differ diff --git a/build/moc_videopage.cpp b/build/moc_videopage.cpp index 3c255c5..5eb9652 100644 --- a/build/moc_videopage.cpp +++ b/build/moc_videopage.cpp @@ -7,7 +7,7 @@ *****************************************************************************/ #include -#include "../src/pages/videopage.h" +#include "../Src/pages/videopage.h" #include #include #if !defined(Q_MOC_OUTPUT_REVISION) diff --git a/build/moc_videopage.o b/build/moc_videopage.o index 9d4ec43..8962613 100644 Binary files a/build/moc_videopage.o and b/build/moc_videopage.o differ diff --git a/build/moc_visionmodelpage.cpp b/build/moc_visionmodelpage.cpp index baafe4f..70e4391 100644 --- a/build/moc_visionmodelpage.cpp +++ b/build/moc_visionmodelpage.cpp @@ -7,7 +7,7 @@ *****************************************************************************/ #include -#include "../src/pages/visionmodelpage.h" +#include "../Src/pages/visionmodelpage.h" #include #include #if !defined(Q_MOC_OUTPUT_REVISION) diff --git a/build/moc_visionmodelpage.o b/build/moc_visionmodelpage.o index c1c41d4..eeaa199 100644 Binary files a/build/moc_visionmodelpage.o and b/build/moc_visionmodelpage.o differ diff --git a/build/qrc_app.o b/build/qrc_app.o index 853f7aa..5294d65 100644 Binary files a/build/qrc_app.o and b/build/qrc_app.o differ diff --git a/build/stylehelper.o b/build/stylehelper.o index d67c70f..1c2fea1 100644 Binary files a/build/stylehelper.o and b/build/stylehelper.o differ diff --git a/build/taskdata.o b/build/taskdata.o index 1c5ce13..00377ab 100644 Binary files a/build/taskdata.o and b/build/taskdata.o differ diff --git a/build/taskdecisionpage.o b/build/taskdecisionpage.o index 49293b3..6d6a6cc 100644 Binary files a/build/taskdecisionpage.o and b/build/taskdecisionpage.o differ diff --git a/build/taskdetailspage.o b/build/taskdetailspage.o index 395b203..4a6eb2a 100644 Binary files a/build/taskdetailspage.o and b/build/taskdetailspage.o differ diff --git a/build/videopage.o b/build/videopage.o index c362875..e3ef047 100644 Binary files a/build/videopage.o and b/build/videopage.o differ diff --git a/build/visionmodelpage.o b/build/visionmodelpage.o index 7dbc4d7..94751fb 100644 Binary files a/build/visionmodelpage.o and b/build/visionmodelpage.o differ diff --git a/drone_ui b/drone_ui deleted file mode 100644 index 9765119..0000000 Binary files a/drone_ui and /dev/null differ diff --git a/drone_ui.pro b/drone_ui.pro index b10c8bf..a668a42 100644 --- a/drone_ui.pro +++ b/drone_ui.pro @@ -1,44 +1,44 @@ -QT += core widgets webenginewidgets positioning +QT += core widgets webenginewidgets positioning webchannel CONFIG += c++17 TEMPLATE = app TARGET = Drone_project SOURCES += \ - src/core/main.cpp \ - src/ui/mainwindow.cpp \ - src/models/dronedata.cpp \ - src/models/detectiondata.cpp \ - src/pages/videopage.cpp \ - src/pages/mappage.cpp \ - src/pages/mapbridge.cpp \ - src/pages/datapage.cpp \ - src/pages/taskdata.cpp \ - src/pages/visionmodelpage.cpp \ - src/utils/stylehelper.cpp \ - src/pages/taskdecisionpage.cpp \ - src/pages/dronemanagementpage.cpp \ - src/pages/taskdetailspage.cpp \ - src/utils/config.cpp \ - src/utils/logger.cpp \ - src/utils/errorhandler.cpp + Src/core/main.cpp \ + Src/ui/mainwindow.cpp \ + Src/models/dronedata.cpp \ + Src/models/detectiondata.cpp \ + Src/pages/videopage.cpp \ + Src/pages/mappage.cpp \ + Src/pages/mapbridge.cpp \ + Src/pages/datapage.cpp \ + Src/pages/taskdata.cpp \ + Src/pages/visionmodelpage.cpp \ + Src/utils/stylehelper.cpp \ + Src/pages/taskdecisionpage.cpp \ + Src/pages/dronemanagementpage.cpp \ + Src/pages/taskdetailspage.cpp \ + Src/utils/config.cpp \ + Src/utils/logger.cpp \ + Src/utils/errorhandler.cpp HEADERS += \ - src/ui/mainwindow.h \ - src/models/dronedata.h \ - src/models/detectiondata.h \ - src/pages/videopage.h \ - src/pages/mappage.h \ - src/pages/mapbridge.h \ - src/pages/datapage.h \ - src/pages/taskdata.h \ - src/pages/visionmodelpage.h \ - src/utils/stylehelper.h \ - src/pages/taskdecisionpage.h \ - src/pages/dronemanagementpage.h \ - src/pages/taskdetailspage.h \ - src/utils/config.h \ - src/utils/logger.h \ - src/utils/errorhandler.h + Src/ui/mainwindow.h \ + Src/models/dronedata.h \ + Src/models/detectiondata.h \ + Src/pages/videopage.h \ + Src/pages/mappage.h \ + Src/pages/mapbridge.h \ + Src/pages/datapage.h \ + Src/pages/taskdata.h \ + Src/pages/visionmodelpage.h \ + Src/utils/stylehelper.h \ + Src/pages/taskdecisionpage.h \ + Src/pages/dronemanagementpage.h \ + Src/pages/taskdetailspage.h \ + Src/utils/config.h \ + Src/utils/logger.h \ + Src/utils/errorhandler.h RESOURCES += \ - src/resources/app.qrc + Src/resources/app.qrc diff --git a/moc_datapage.cpp b/moc_datapage.cpp deleted file mode 100644 index bafa351..0000000 --- a/moc_datapage.cpp +++ /dev/null @@ -1,147 +0,0 @@ -/**************************************************************************** -** Meta object code from reading C++ file 'datapage.h' -** -** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.3) -** -** WARNING! All changes made in this file will be lost! -*****************************************************************************/ - -#include -#include "src/pages/datapage.h" -#include -#include -#if !defined(Q_MOC_OUTPUT_REVISION) -#error "The header file 'datapage.h' doesn't include ." -#elif Q_MOC_OUTPUT_REVISION != 67 -#error "This file was generated using the moc from 5.15.3. It" -#error "cannot be used with the include files from this version of Qt." -#error "(The moc has changed too much.)" -#endif - -QT_BEGIN_MOC_NAMESPACE -QT_WARNING_PUSH -QT_WARNING_DISABLE_DEPRECATED -struct qt_meta_stringdata_DataPage_t { - QByteArrayData data[5]; - char stringdata0[57]; -}; -#define QT_MOC_LITERAL(idx, ofs, len) \ - Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ - qptrdiff(offsetof(qt_meta_stringdata_DataPage_t, stringdata0) + ofs \ - - idx * sizeof(QByteArrayData)) \ - ) -static const qt_meta_stringdata_DataPage_t qt_meta_stringdata_DataPage = { - { -QT_MOC_LITERAL(0, 0, 8), // "DataPage" -QT_MOC_LITERAL(1, 9, 13), // "dataRequested" -QT_MOC_LITERAL(2, 23, 0), // "" -QT_MOC_LITERAL(3, 24, 15), // "updateDroneInfo" -QT_MOC_LITERAL(4, 40, 16) // "updateTargetInfo" - - }, - "DataPage\0dataRequested\0\0updateDroneInfo\0" - "updateTargetInfo" -}; -#undef QT_MOC_LITERAL - -static const uint qt_meta_data_DataPage[] = { - - // content: - 8, // revision - 0, // classname - 0, 0, // classinfo - 3, 14, // methods - 0, 0, // properties - 0, 0, // enums/sets - 0, 0, // constructors - 0, // flags - 1, // signalCount - - // signals: name, argc, parameters, tag, flags - 1, 0, 29, 2, 0x06 /* Public */, - - // slots: name, argc, parameters, tag, flags - 3, 0, 30, 2, 0x0a /* Public */, - 4, 0, 31, 2, 0x0a /* Public */, - - // signals: parameters - QMetaType::Void, - - // slots: parameters - QMetaType::Void, - QMetaType::Void, - - 0 // eod -}; - -void DataPage::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) -{ - if (_c == QMetaObject::InvokeMetaMethod) { - auto *_t = static_cast(_o); - (void)_t; - switch (_id) { - case 0: _t->dataRequested(); break; - case 1: _t->updateDroneInfo(); break; - case 2: _t->updateTargetInfo(); break; - default: ; - } - } else if (_c == QMetaObject::IndexOfMethod) { - int *result = reinterpret_cast(_a[0]); - { - using _t = void (DataPage::*)(); - if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&DataPage::dataRequested)) { - *result = 0; - return; - } - } - } - (void)_a; -} - -QT_INIT_METAOBJECT const QMetaObject DataPage::staticMetaObject = { { - QMetaObject::SuperData::link(), - qt_meta_stringdata_DataPage.data, - qt_meta_data_DataPage, - qt_static_metacall, - nullptr, - nullptr -} }; - - -const QMetaObject *DataPage::metaObject() const -{ - return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; -} - -void *DataPage::qt_metacast(const char *_clname) -{ - if (!_clname) return nullptr; - if (!strcmp(_clname, qt_meta_stringdata_DataPage.stringdata0)) - return static_cast(this); - return QWidget::qt_metacast(_clname); -} - -int DataPage::qt_metacall(QMetaObject::Call _c, int _id, void **_a) -{ - _id = QWidget::qt_metacall(_c, _id, _a); - if (_id < 0) - return _id; - if (_c == QMetaObject::InvokeMetaMethod) { - if (_id < 3) - qt_static_metacall(this, _c, _id, _a); - _id -= 3; - } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { - if (_id < 3) - *reinterpret_cast(_a[0]) = -1; - _id -= 3; - } - return _id; -} - -// SIGNAL 0 -void DataPage::dataRequested() -{ - QMetaObject::activate(this, &staticMetaObject, 0, nullptr); -} -QT_WARNING_POP -QT_END_MOC_NAMESPACE