在主界面上增加工具箱,同时增加了插件机制

pull/3/head
陈增辉 2025-02-10 02:16:07 +08:00
parent 5528e25c74
commit 673d66dd19
133 changed files with 1592 additions and 76787 deletions

View File

@ -118,6 +118,8 @@
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<LanguageStandard>stdcpp14</LanguageStandard>
<LanguageStandard_C>stdc11</LanguageStandard_C>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
@ -139,12 +141,12 @@
<ProjectReference Include="..\LAMPDataProcessEXE\LAMPDataProcessEXE.vcxproj">
<Project>{4e6e79a3-048c-4fb4-bbb0-43c518a3e6d4}</Project>
</ProjectReference>
<ProjectReference Include="..\LAMPMainWidget\LAMPMainWidget.vcxproj">
<Project>{d50e4f7d-d021-36b9-a36a-7e4442ae70a5}</Project>
</ProjectReference>
<ProjectReference Include="..\LAMPSARProcessProgram\RasterProcessTool.vcxproj">
<Project>{7ef67daa-dbc0-4b7f-80e8-11b4d2cb7ec2}</Project>
</ProjectReference>
<ProjectReference Include="..\RasterMainWidgetGUI\RasterMainWidgetGUI.vcxproj">
<Project>{e56b3878-a3dc-41a4-abf3-b628816d0d64}</Project>
</ProjectReference>
<ProjectReference Include="..\Toolbox\BaseToolbox\BaseToolbox.vcxproj">
<Project>{070c157e-3c30-4e2b-a80c-cbc7b74df03f}</Project>
</ProjectReference>

View File

@ -162,6 +162,8 @@
<EnableParallelCodeGeneration>true</EnableParallelCodeGeneration>
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
<OpenMPSupport>true</OpenMPSupport>
<LanguageStandard>stdcpp14</LanguageStandard>
<LanguageStandard_C>stdc11</LanguageStandard_C>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>

View File

@ -2,7 +2,7 @@
#ifndef QToolAbstract_H_
#define QToolAbstract_H_
#include "BaseConstVariable.h"
#include <QTreeWidgetItem>
#include <QPushButton>
#include <QMessageBox>
@ -13,7 +13,7 @@
// 菱땍屢 QTreeWidgetItem 셨넓잚
class QToolAbstract : public QObject {
class BASECONSTVARIABLEAPI QToolAbstract : public QObject {
Q_OBJECT
public:
QToolAbstract(QObject* parent=nullptr);
@ -31,6 +31,8 @@ public:
/*
// 鬧꿍묏야芎
PluginTool_*.dll
void RegisterPreToolBox(RasterProcessTool* mainWindows);
extern "C" void RegisterPreToolBox(LAMPMainWidget::RasterMainWidget* mainwindows,ToolBoxWidget* toolbox);
*/
#endif // !1

View File

@ -129,6 +129,8 @@
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>NDEBUG;_CONSOLE;GPUBASELIB_API;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<LanguageStandard>stdcpp14</LanguageStandard>
<LanguageStandard_C>stdc11</LanguageStandard_C>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>

View File

@ -62,13 +62,14 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
<IncludePath>..\BaseCommonLibrary;..\BaseCommonLibrary\BaseTool;..\BaseCommonLibrary\ToolAbstract;..\GPUBaseLib\GPUTool;..\LAMPSARProcessProgram;$(VC_IncludePath);$(WindowsSDK_IncludePath)</IncludePath>
<IncludePath>..\BaseCommonLibrary;..\BaseCommonLibrary\BaseTool;..\BaseCommonLibrary\ToolAbstract;..\GPUBaseLib\GPUTool;..\LAMPSARProcessProgram;..\LAMPMainWidget;..\RasterMainWidgetGUI;..\RasterMainWidgetGUI\RasterMainWidget;$(VC_IncludePath);$(WindowsSDK_IncludePath)</IncludePath>
<CopyLocalProjectReference>true</CopyLocalProjectReference>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<EnableParallelCodeGeneration>true</EnableParallelCodeGeneration>
<LanguageStandard_C>stdc11</LanguageStandard_C>
<LanguageStandard>stdcpp14</LanguageStandard>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'" Label="Configuration">
@ -110,9 +111,15 @@
<ProjectReference Include="..\BaseCommonLibrary\BaseCommonLibrary.vcxproj">
<Project>{872ecd6f-30e3-4a1b-b17c-15e87d373ff6}</Project>
</ProjectReference>
<ProjectReference Include="..\GPUBaseLib\GPUBaseLib.vcxproj">
<Project>{b8b40c54-f7fe-4809-b6fb-8bc014570d7b}</Project>
</ProjectReference>
<ProjectReference Include="..\LAMPSARProcessProgram\RasterProcessTool.vcxproj">
<Project>{7ef67daa-dbc0-4b7f-80e8-11b4d2cb7ec2}</Project>
</ProjectReference>
<ProjectReference Include="..\RasterMainWidgetGUI\RasterMainWidgetGUI.vcxproj">
<Project>{e56b3878-a3dc-41a4-abf3-b628816d0d64}</Project>
</ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Condition="Exists('$(QtMsBuild)\qt.targets')">

Binary file not shown.

View File

@ -5,9 +5,12 @@
#include <QFile>
#include <QTextStream>
#include <QDateTime>
#include "RasterProcessTool.h"
#include "LAMPMainWidgetRunProgram.h"
#pragma execution_character_set("utf-8")
// 自定义消息处理器函数
void customMessageHandler(QtMsgType type, const QMessageLogContext& context, const QString& msg)
{
@ -42,7 +45,6 @@ void customMessageHandler(QtMsgType type, const QMessageLogContext& context, con
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
RasterProcessTool w;
w.show();
RasterMainWidgetRun();
return a.exec();
}

View File

@ -1,63 +0,0 @@
###############################################################################
# Set default behavior to automatically normalize line endings.
###############################################################################
* text=auto
###############################################################################
# Set default behavior for command prompt diff.
#
# This is need for earlier builds of msysgit that does not have it on by
# default for csharp files.
# Note: This is only used by command line
###############################################################################
#*.cs diff=csharp
###############################################################################
# Set the merge driver for project and solution files
#
# Merging from the command prompt will add diff markers to the files if there
# are conflicts (Merging from VS is not affected by the settings below, in VS
# the diff markers are never inserted). Diff markers may cause the following
# file extensions to fail to load in VS. An alternative would be to treat
# these files as binary and thus will always conflict and require user
# intervention with every merge. To do so, just uncomment the entries below
###############################################################################
#*.sln merge=binary
#*.csproj merge=binary
#*.vbproj merge=binary
#*.vcxproj merge=binary
#*.vcproj merge=binary
#*.dbproj merge=binary
#*.fsproj merge=binary
#*.lsproj merge=binary
#*.wixproj merge=binary
#*.modelproj merge=binary
#*.sqlproj merge=binary
#*.wwaproj merge=binary
###############################################################################
# behavior for image files
#
# image files are treated as binary by default.
###############################################################################
#*.jpg binary
#*.png binary
#*.gif binary
###############################################################################
# diff behavior for common document formats
#
# Convert binary document formats to text before diffing them. This feature
# is only available from the command line. Turn it on by uncommenting the
# entries below.
###############################################################################
#*.doc diff=astextplain
#*.DOC diff=astextplain
#*.docx diff=astextplain
#*.DOCX diff=astextplain
#*.dot diff=astextplain
#*.DOT diff=astextplain
#*.pdf diff=astextplain
#*.PDF diff=astextplain
#*.rtf diff=astextplain
#*.RTF diff=astextplain

View File

@ -1,464 +0,0 @@
CMakeCache.txt
CMakeFiles
CMakeScripts
Testing
Makefile
cmake_install.cmake
install_manifest.txt
compile_commands.json
CTestTestfile.cmake
/cmake-build-debug
/.idea
/.vs
*.swp
*.stash
*.user
.DS_Store
# ---> C++
# Prerequisites
*.d
# Compiled Object files
*.slo
*.lo
*.o
*.obj
# Precompiled Headers
*.gch
*.pch
# Compiled Dynamic libraries
*.so
*.dylib
*.dll
# Fortran module files
*.mod
*.smod
# Compiled Static libraries
*.lai
*.la
*.a
*.lib
# Executables
*.exe
*.out
*.app
# ---> VisualStudio
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
##
## Get latest from https://github.com/github/gitignore/blob/main/VisualStudio.gitignore
# User-specific files
*.rsuser
*.suo
*.user
*.userosscache
*.sln.docstates
# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs
# Mono auto generated files
mono_crash.*
# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
[Ww][Ii][Nn]32/
[Aa][Rr][Mm]/
[Aa][Rr][Mm]64/
bld/
[Bb]in/
[Oo]bj/
[Ll]og/
[Ll]ogs/
# Visual Studio 2015/2017 cache/options directory
.vs/
# Uncomment if you have tasks that create the project's static files in wwwroot
#wwwroot/
# Visual Studio 2017 auto generated files
Generated\ Files/
# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*
# NUnit
*.VisualState.xml
TestResult.xml
nunit-*.xml
# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c
# Benchmark Results
BenchmarkDotNet.Artifacts/
# .NET Core
project.lock.json
project.fragment.lock.json
artifacts/
# ASP.NET Scaffolding
ScaffoldingReadMe.txt
# StyleCop
StyleCopReport.xml
# Files built by Visual Studio
*_i.c
*_p.c
*_h.h
*.ilk
*.meta
*.obj
*.iobj
*.pch
*.pdb
*.ipdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*_wpftmp.csproj
*.log
*.tlog
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc
# Chutzpah Test files
_Chutzpah*
# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opendb
*.opensdf
*.sdf
*.cachefile
*.VC.db
*.VC.VC.opendb
# Visual Studio profiler
*.psess
*.vsp
*.vspx
*.sap
# Visual Studio Trace Files
*.e2e
# TFS 2012 Local Workspace
$tf/
# Guidance Automation Toolkit
*.gpState
# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user
# TeamCity is a build add-in
_TeamCity*
# DotCover is a Code Coverage Tool
*.dotCover
# AxoCover is a Code Coverage Tool
.axoCover/*
!.axoCover/settings.json
# Coverlet is a free, cross platform Code Coverage Tool
coverage*.json
coverage*.xml
coverage*.info
# Visual Studio code coverage results
*.coverage
*.coveragexml
# NCrunch
_NCrunch_*
.*crunch*.local.xml
nCrunchTemp_*
# MightyMoose
*.mm.*
AutoTest.Net/
# Web workbench (sass)
.sass-cache/
# Installshield output folder
[Ee]xpress/
# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html
# Click-Once directory
publish/
# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
# Note: Comment the next line if you want to checkin your web deploy settings,
# but database connection strings (with potential passwords) will be unencrypted
*.pubxml
*.publishproj
# Microsoft Azure Web App publish settings. Comment the next line if you want to
# checkin your Azure Web App publish settings, but sensitive information contained
# in these scripts will be unencrypted
PublishScripts/
# NuGet Packages
*.nupkg
# NuGet Symbol Packages
*.snupkg
# The packages folder can be ignored because of Package Restore
**/[Pp]ackages/*
# except build/, which is used as an MSBuild target.
!**/[Pp]ackages/build/
# Uncomment if necessary however generally it will be regenerated when needed
#!**/[Pp]ackages/repositories.config
# NuGet v3's project.json files produces more ignorable files
*.nuget.props
*.nuget.targets
# Microsoft Azure Build Output
csx/
*.build.csdef
# Microsoft Azure Emulator
ecf/
rcf/
# Windows Store app package directories and files
AppPackages/
BundleArtifacts/
Package.StoreAssociation.xml
_pkginfo.txt
*.appx
*.appxbundle
*.appxupload
# Visual Studio cache files
# files ending in .cache can be ignored
*.[Cc]ache
# but keep track of directories ending in .cache
!?*.[Cc]ache/
# Others
ClientBin/
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.jfm
*.pfx
*.publishsettings
orleans.codegen.cs
# Including strong name files can present a security risk
# (https://github.com/github/gitignore/pull/2483#issue-259490424)
#*.snk
# Since there are multiple workflows, uncomment next line to ignore bower_components
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
#bower_components/
# RIA/Silverlight projects
Generated_Code/
# Backup & report files from converting an old project file
# to a newer Visual Studio version. Backup files are not needed,
# because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
ServiceFabricBackup/
*.rptproj.bak
# SQL Server files
*.mdf
*.ldf
*.ndf
# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings
*.rptproj.rsuser
*- [Bb]ackup.rdl
*- [Bb]ackup ([0-9]).rdl
*- [Bb]ackup ([0-9][0-9]).rdl
# Microsoft Fakes
FakesAssemblies/
# GhostDoc plugin setting file
*.GhostDoc.xml
# Node.js Tools for Visual Studio
.ntvs_analysis.dat
node_modules/
# Visual Studio 6 build log
*.plg
# Visual Studio 6 workspace options file
*.opt
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
*.vbw
# Visual Studio 6 auto-generated project file (contains which files were open etc.)
*.vbp
# Visual Studio 6 workspace and project file (working project files containing files to include in project)
*.dsw
*.dsp
# Visual Studio 6 technical files
*.ncb
*.aps
# Visual Studio LightSwitch build output
**/*.HTMLClient/GeneratedArtifacts
**/*.DesktopClient/GeneratedArtifacts
**/*.DesktopClient/ModelManifest.xml
**/*.Server/GeneratedArtifacts
**/*.Server/ModelManifest.xml
_Pvt_Extensions
# Paket dependency manager
.paket/paket.exe
paket-files/
# FAKE - F# Make
.fake/
# CodeRush personal settings
.cr/personal
# Python Tools for Visual Studio (PTVS)
__pycache__/
*.pyc
# Cake - Uncomment if you are using it
# tools/**
# !tools/packages.config
# Tabs Studio
*.tss
# Telerik's JustMock configuration file
*.jmconfig
# BizTalk build output
*.btp.cs
*.btm.cs
*.odx.cs
*.xsd.cs
# OpenCover UI analysis results
OpenCover/
# Azure Stream Analytics local run output
ASALocalRun/
# MSBuild Binary and Structured Log
*.binlog
# NVidia Nsight GPU debugger configuration file
*.nvuser
# MFractors (Xamarin productivity tool) working folder
.mfractor/
# Local History for Visual Studio
.localhistory/
# Visual Studio History (VSHistory) files
.vshistory/
# BeatPulse healthcheck temp database
healthchecksdb
# Backup folder for Package Reference Convert tool in Visual Studio 2017
MigrationBackup/
# Ionide (cross platform F# VS Code tools) working folder
.ionide/
# Fody - auto-generated XML schema
FodyWeavers.xsd
# VS Code files for those working on multiple tools
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
*.code-workspace
# Local History for Visual Studio Code
.history/
# Windows Installer files from build outputs
*.cab
*.msi
*.msix
*.msm
*.msp
# JetBrains Rider
*.sln.iml
# ---> VisualStudioCode
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
!.vscode/*.code-snippets
# Local History for Visual Studio Code
.history/
# Built Visual Studio Code Extensions
*.vsix

View File

@ -1,99 +0,0 @@
######################################################################
# Modified by ZLY 2022 01 15 22:08
######################################################################
TEMPLATE = app
TARGET = LAMPMainWidget
QT += core gui
QT += widgets sql
# Input
HEADERS += \
include/crs.h \
include/layerprovider.h \
include/mapcanvas.h \
include/mapcanvasmap.h \
include/maplayer.h \
include/maptool.h \
include/pointxy.h \
include/crs/webmercator.h \
include/gui/mainwindow.h \
include/gui/sponsorwindow.h \
include/gui/taskwindow.h \
include/layer/tmslayer.h \
include/provider/tmsprovider.h \
include/tools/maptoolpan.h \
include/tools/maptoolselect.h \
include/tools/maptoolzoomin.h \
include/tools/maptoolzoomout.h \
include/utils/LAMPMainWidget.h \
include/utils/imgwriter.h \
include/utils/network.h \
include/provider/tms/gaodenormalprovider.h \
include/provider/tms/gaodesatelliteprovider.h \
include/provider/tms/googlechinanormalprovider.h \
include/provider/tms/googlechinasatelliteprovider.h \
include/provider/tms/ostnormalprovider.h \
include/provider/tms/tmsproviderfactory.h \
include/tools/maptooldrawline.h \
maparea.h \
mapautoplane.h \
mapline.h \
include/tools/maptooladdplane.h \
include/tools/maptooldrawarea.h
FORMS += include/gui/mainwindow.ui \
include/gui/sponsorwindow.ui \
include/gui/taskwindow.ui
SOURCES += crs.cpp \
egmain.cpp \
maparea.cpp \
mapautoplane.cpp \
mapcanvas.cpp \
mapcanvasmap.cpp \
maplayer.cpp \
mapline.cpp \
maptool.cpp \
pointxy.cpp \
crs/webmercator.cpp \
gui/mainwindow.cpp \
gui/sponsorwindow.cpp \
gui/taskwindow.cpp \
layer/tmslayer.cpp \
provider/tmsprovider.cpp \
tools/maptooldrawline.cpp \
tools/maptoolpan.cpp \
tools/maptoolselect.cpp \
tools/maptoolzoomin.cpp \
tools/maptoolzoomout.cpp \
tools/maptooldrawarea.cpp \
tools/maptooladdplane.cpp \
utils/imgwriter.cpp \
utils/network.cpp \
provider/tms/gaodenormalprovider.cpp \
provider/tms/ostnormalprovider.cpp \
provider/tms/tmsproviderfactory.cpp
RESOURCES += resources/res.qrc
#LIBS += -LE:/PROJ/lib/ -lproj
#LIBS += -LE:/PROJ/lib/ -lproj_i
#LIBS += -LE:/curl7.80/lib/x64/ -llibcurl
#INCLUDEPATH += E:/curl7.80/include
#DEPENDPATH += E:/curl7.80/include
#INCLUDEPATH += E:/PROJ/include
#DEPENDPATH += E:/PROJ/include
win32: LIBS += -L$$PWD/curl_7.80/lib/x64/ -llibcurl
INCLUDEPATH += $$PWD/curl_7.80/include
DEPENDPATH += $$PWD/curl_7.80/include
win32: LIBS += -L$$PWD/proj4_5.2.0/lib/ -lproj
INCLUDEPATH += $$PWD/proj4_5.2.0/include
DEPENDPATH += $$PWD/proj4_5.2.0/include
win32: LIBS += -L$$PWD/proj4_5.2.0/lib/ -lproj_i
INCLUDEPATH += $$PWD/proj4_5.2.0/include
DEPENDPATH += $$PWD/proj4_5.2.0/include

View File

@ -1,244 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 2.7.2, 2022-01-15T21:57:03. -->
<qtcreator>
<data>
<variable>ProjectExplorer.Project.ActiveTarget</variable>
<value type="int">0</value>
</data>
<data>
<variable>ProjectExplorer.Project.EditorSettings</variable>
<valuemap type="QVariantMap">
<value type="bool" key="EditorConfiguration.AutoIndent">true</value>
<value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value>
<value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value>
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
<value type="QByteArray" key="language">Cpp</value>
<valuemap type="QVariantMap" key="value">
<value type="QString" key="CurrentPreferences">CppGlobal</value>
</valuemap>
</valuemap>
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
<value type="QByteArray" key="language">QmlJS</value>
<valuemap type="QVariantMap" key="value">
<value type="QString" key="CurrentPreferences">QmlJSGlobal</value>
</valuemap>
</valuemap>
<value type="int" key="EditorConfiguration.CodeStyle.Count">2</value>
<value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
<value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
<value type="int" key="EditorConfiguration.IndentSize">4</value>
<value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
<value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
<value type="int" key="EditorConfiguration.PaddingMode">1</value>
<value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
<value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value>
<value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
<value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
<value type="int" key="EditorConfiguration.TabSize">8</value>
<value type="bool" key="EditorConfiguration.UseGlobal">true</value>
<value type="int" key="EditorConfiguration.Utf8BomBehavior">0</value>
<value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
<value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
<value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
<value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.PluginSettings</variable>
<valuemap type="QVariantMap"/>
</data>
<data>
<variable>ProjectExplorer.Project.Target.0</variable>
<valuemap type="QVariantMap">
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 5.1.0 MSVC2010 32bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 5.1.0 MSVC2010 32bit</value>
<value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">qt.510.win32_msvc2010.essentials_kit</value>
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">1</value>
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">true</value>
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">构建</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">清理</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Debug</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
<value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">C:/Users/Administrator/Desktop/%{JS: Util.asciify(&quot;build-LAMPMainWidget-Desktop_Qt_5_1_0_MSVC2010_32bit-Debug&quot;)}</value>
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">true</value>
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">构建</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">清理</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Release</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
<value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">C:/Users/Administrator/Desktop/%{JS: Util.asciify(&quot;build-LAMPMainWidget-Desktop_Qt_5_1_0_MSVC2010_32bit-Release&quot;)}</value>
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">2</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">在本地部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="bool" key="Analyzer.Project.UseGlobal">true</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
<value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
<value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
<value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
<value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
<value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
<value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
<value type="int">0</value>
<value type="int">1</value>
<value type="int">2</value>
<value type="int">3</value>
<value type="int">4</value>
<value type="int">5</value>
<value type="int">6</value>
<value type="int">7</value>
<value type="int">8</value>
<value type="int">9</value>
<value type="int">10</value>
<value type="int">11</value>
<value type="int">12</value>
<value type="int">13</value>
<value type="int">14</value>
</valuelist>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">LAMPMainWidget</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:C:/Users/Administrator/Desktop/LAMPMainWidget-master/LAMPMainWidget.pro</value>
<value type="int" key="Qt4ProjectManager.Qt4RunConfiguration.BaseEnvironmentBase">2</value>
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.CommandLineArguments"></value>
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.ProFile">LAMPMainWidget.pro</value>
<value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseDyldImageSuffix">false</value>
<value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseTerminal">false</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.Qt4RunConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory"></value>
<value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
<value type="bool" key="RunConfiguration.UseCppDebugger">true</value>
<value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.TargetCount</variable>
<value type="int">1</value>
</data>
<data>
<variable>ProjectExplorer.Project.Updater.EnvironmentId</variable>
<value type="QString">{eb13e5e2-0535-44b1-b74d-6dffbc511dad}</value>
</data>
<data>
<variable>ProjectExplorer.Project.Updater.FileVersion</variable>
<value type="int">12</value>
</data>
</qtcreator>

File diff suppressed because one or more lines are too long

View File

@ -1,299 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{D50E4F7D-D021-36B9-A36A-7E4442AE70A5}</ProjectGuid>
<RootNamespace>LAMPMainWidget</RootNamespace>
<Keyword>QtVS_v304</Keyword>
<WindowsTargetPlatformVersion>10.0.22621.0</WindowsTargetPlatformVersion>
<WindowsTargetPlatformMinVersion>10.0.22621.0</WindowsTargetPlatformMinVersion>
<QtMsBuild Condition="'$(QtMsBuild)'=='' OR !Exists('$(QtMsBuild)\qt.targets')">$(MSBuildProjectDirectory)\QtMsBuild</QtMsBuild>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<PlatformToolset>v143</PlatformToolset>
<OutputDirectory>release\</OutputDirectory>
<ATLMinimizesCRunTimeLibraryUsage>false</ATLMinimizesCRunTimeLibraryUsage>
<CharacterSet>NotSet</CharacterSet>
<ConfigurationType>Application</ConfigurationType>
<IntermediateDirectory>release\</IntermediateDirectory>
<PrimaryOutput>LAMPMainWidget</PrimaryOutput>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<PlatformToolset>v141</PlatformToolset>
<OutputDirectory>debug\</OutputDirectory>
<ATLMinimizesCRunTimeLibraryUsage>false</ATLMinimizesCRunTimeLibraryUsage>
<CharacterSet>NotSet</CharacterSet>
<ConfigurationType>Application</ConfigurationType>
<IntermediateDirectory>debug\</IntermediateDirectory>
<PrimaryOutput>LAMPMainWidget</PrimaryOutput>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<Import Project="$(QtMsBuild)\qt_defaults.props" Condition="Exists('$(QtMsBuild)\qt_defaults.props')" />
<PropertyGroup Label="QtSettings" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<QtInstall>tools_qt5</QtInstall>
<QtModules>core;sql;gui;widgets</QtModules>
</PropertyGroup>
<PropertyGroup Label="QtSettings" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<QtInstall>tools_qt5</QtInstall>
<QtModules>core;sql;gui;widgets</QtModules>
</PropertyGroup>
<Target Name="QtMsBuildNotFound" BeforeTargets="CustomBuild;ClCompile" Condition="!Exists('$(QtMsBuild)\qt.targets') OR !Exists('$(QtMsBuild)\Qt.props')">
<Message Importance="High" Text="QtMsBuild: could not locate qt.targets, qt.props; project may not build correctly." />
</Target>
<ImportGroup Label="ExtensionSettings" />
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
<Import Project="$(QtMsBuild)\Qt.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
<Import Project="$(QtMsBuild)\Qt.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(Configuration)\</IntDir>
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectName)</TargetName>
<IgnoreImportLibrary Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</IgnoreImportLibrary>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">debug\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">debug\</IntDir>
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">LAMPMainWidget</TargetName>
<IgnoreImportLibrary Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</IgnoreImportLibrary>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<AdditionalIncludeDirectories>GeneratedFiles\$(ConfigurationName);GeneratedFiles;.;curl_7.80\include;proj4_5.2.0\include;C:\vcpkg\installed\x64-windows\include\qt5;C:\vcpkg\installed\x64-windows\include\qt5\QtWidgets;C:\vcpkg\installed\x64-windows\include\qt5\QtGui;C:\vcpkg\installed\x64-windows\include\qt5\QtSql;C:\vcpkg\installed\x64-windows\include\qt5\QtCore;release;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalOptions>-Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 %(AdditionalOptions)</AdditionalOptions>
<AssemblerListingLocation>release\</AssemblerListingLocation>
<BrowseInformation>false</BrowseInformation>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<DisableSpecificWarnings>4577;4467;%(DisableSpecificWarnings)</DisableSpecificWarnings>
<ExceptionHandling>Sync</ExceptionHandling>
<ObjectFileName>release\</ObjectFileName>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WIN64;NDEBUG;QT_NO_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessToFile>false</PreprocessToFile>
<ProgramDataBaseFileName>
</ProgramDataBaseFileName>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<SuppressStartupBanner>true</SuppressStartupBanner>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<UseFullPaths>false</UseFullPaths>
<WarningLevel>Level3</WarningLevel>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>.\curl_7.80\lib\x64;.\proj4_5.2.0\lib;C:\vcpkg\installed\x64-windows\lib;C:\vcpkg\installed\x64-windows\lib\manual-link;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalOptions>"/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" %(AdditionalOptions)</AdditionalOptions>
<DataExecutionPrevention>true</DataExecutionPrevention>
<GenerateDebugInformation>DebugFull</GenerateDebugInformation>
<IgnoreImportLibrary>true</IgnoreImportLibrary>
<LinkIncremental>false</LinkIncremental>
<OptimizeReferences>true</OptimizeReferences>
<OutputFile>$(OutDir)\LAMPMainWidget.exe</OutputFile>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<SubSystem>Console</SubSystem>
<SuppressStartupBanner>true</SuppressStartupBanner>
</Link>
<Midl>
<DefaultCharType>Unsigned</DefaultCharType>
<EnableErrorChecks>None</EnableErrorChecks>
<WarningLevel>0</WarningLevel>
</Midl>
<ResourceCompile>
<PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WIN64;NDEBUG;QT_NO_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
<QtMoc>
<CompilerFlavor>msvc</CompilerFlavor>
<Include>./$(Configuration)/moc_predefs.h</Include>
<ExecutionDescription>Moc'ing %(Identity)...</ExecutionDescription>
<DynamicSource>output</DynamicSource>
<QtMocDir>$(Configuration)</QtMocDir>
<QtMocFileName>moc_%(Filename).cpp</QtMocFileName>
</QtMoc>
<QtRcc>
<Compression>default</Compression>
<InitFuncName>res</InitFuncName>
<ExecutionDescription>Rcc'ing %(Identity)...</ExecutionDescription>
<QtRccDir>$(Configuration)</QtRccDir>
<QtRccFileName>qrc_%(Filename).cpp</QtRccFileName>
</QtRcc>
<QtUic>
<ExecutionDescription>Uic'ing %(Identity)...</ExecutionDescription>
<QtUicDir>$(ProjectDir)</QtUicDir>
<QtUicFileName>ui_%(Filename).h</QtUicFileName>
</QtUic>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<AdditionalIncludeDirectories>GeneratedFiles\$(ConfigurationName);GeneratedFiles;.;curl_7.80\include;proj4_5.2.0\include;C:\vcpkg\installed\x64-windows\include\qt5;C:\vcpkg\installed\x64-windows\include\qt5\QtWidgets;C:\vcpkg\installed\x64-windows\include\qt5\QtGui;C:\vcpkg\installed\x64-windows\include\qt5\QtSql;C:\vcpkg\installed\x64-windows\include\qt5\QtCore;debug;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalOptions>-Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 %(AdditionalOptions)</AdditionalOptions>
<AssemblerListingLocation>debug\</AssemblerListingLocation>
<BrowseInformation>false</BrowseInformation>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<DisableSpecificWarnings>4577;4467;%(DisableSpecificWarnings)</DisableSpecificWarnings>
<ExceptionHandling>Sync</ExceptionHandling>
<ObjectFileName>debug\</ObjectFileName>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessToFile>false</PreprocessToFile>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<SuppressStartupBanner>true</SuppressStartupBanner>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<UseFullPaths>false</UseFullPaths>
<WarningLevel>Level3</WarningLevel>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<AdditionalDependencies>.\curl_7.80\lib\x64\libcurl.lib;.\proj4_5.2.0\lib\proj.lib;.\proj4_5.2.0\lib\proj_i.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>.\curl_7.80\lib\x64;.\proj4_5.2.0\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalOptions>/DEBUG "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" %(AdditionalOptions)</AdditionalOptions>
<DataExecutionPrevention>true</DataExecutionPrevention>
<GenerateDebugInformation>false</GenerateDebugInformation>
<IgnoreImportLibrary>true</IgnoreImportLibrary>
<OutputFile>$(OutDir)\LAMPMainWidget.exe</OutputFile>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<SubSystem>Windows</SubSystem>
<SuppressStartupBanner>true</SuppressStartupBanner>
</Link>
<Midl>
<DefaultCharType>Unsigned</DefaultCharType>
<EnableErrorChecks>None</EnableErrorChecks>
<WarningLevel>0</WarningLevel>
</Midl>
<ResourceCompile>
<PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WIN64;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
<QtRcc>
<Compression>default</Compression>
<InitFuncName>res</InitFuncName>
<ExecutionDescription>Rcc'ing %(Identity)...</ExecutionDescription>
<QtRccDir>$(Configuration)</QtRccDir>
<QtRccFileName>qrc_%(Filename).cpp</QtRccFileName>
</QtRcc>
<QtMoc>
<CompilerFlavor>msvc</CompilerFlavor>
<Include>./$(Configuration)/moc_predefs.h</Include>
<ExecutionDescription>Moc'ing %(Identity)...</ExecutionDescription>
<DynamicSource>output</DynamicSource>
<QtMocDir>$(Configuration)</QtMocDir>
<QtMocFileName>moc_%(Filename).cpp</QtMocFileName>
</QtMoc>
<QtUic>
<ExecutionDescription>Uic'ing %(Identity)...</ExecutionDescription>
<QtUicDir>$(ProjectDir)</QtUicDir>
<QtUicFileName>ui_%(Filename).h</QtUicFileName>
</QtUic>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="crs.cpp" />
<ClCompile Include="egmain.cpp" />
<ClCompile Include="provider\tms\gaodenormalprovider.cpp" />
<ClCompile Include="utils\imgwriter.cpp" />
<ClCompile Include="gui\mainwindow.cpp" />
<ClCompile Include="maparea.cpp" />
<ClCompile Include="mapautoplane.cpp" />
<ClCompile Include="mapcanvas.cpp" />
<ClCompile Include="mapcanvasmap.cpp" />
<ClCompile Include="maplayer.cpp" />
<ClCompile Include="mapline.cpp" />
<ClCompile Include="maptool.cpp" />
<ClCompile Include="tools\maptooladdplane.cpp" />
<ClCompile Include="tools\maptooldrawarea.cpp" />
<ClCompile Include="tools\maptooldrawline.cpp" />
<ClCompile Include="tools\maptoolpan.cpp" />
<ClCompile Include="tools\maptoolselect.cpp" />
<ClCompile Include="tools\maptoolzoomin.cpp" />
<ClCompile Include="tools\maptoolzoomout.cpp" />
<ClCompile Include="utils\network.cpp" />
<ClCompile Include="provider\tms\ostnormalprovider.cpp" />
<ClCompile Include="pointxy.cpp" />
<ClCompile Include="gui\sponsorwindow.cpp" />
<ClCompile Include="gui\taskwindow.cpp" />
<ClCompile Include="layer\tmslayer.cpp" />
<ClCompile Include="provider\tmsprovider.cpp" />
<ClCompile Include="provider\tms\tmsproviderfactory.cpp" />
<ClCompile Include="crs\webmercator.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="include\crs.h" />
<ClInclude Include="include\utils\LAMPMainWidget.h" />
<QtMoc Include="include\provider\tms\gaodenormalprovider.h" />
<ClInclude Include="include\provider\tms\gaodesatelliteprovider.h" />
<ClInclude Include="include\provider\tms\googlechinanormalprovider.h" />
<ClInclude Include="include\provider\tms\googlechinasatelliteprovider.h" />
<ClInclude Include="include\utils\imgwriter.h" />
<QtMoc Include="include\layerprovider.h" />
<QtMoc Include="include\gui\mainwindow.h" />
<ClInclude Include="maparea.h" />
<ClInclude Include="mapautoplane.h" />
<QtMoc Include="include\mapcanvas.h" />
<ClInclude Include="include\mapcanvasmap.h" />
<ClInclude Include="include\maplayer.h" />
<ClInclude Include="mapline.h" />
<ClInclude Include="include\maptool.h" />
<ClInclude Include="include\tools\maptooladdplane.h" />
<ClInclude Include="include\tools\maptooldrawarea.h" />
<ClInclude Include="include\tools\maptooldrawline.h" />
<ClInclude Include="include\tools\maptoolpan.h" />
<ClInclude Include="include\tools\maptoolselect.h" />
<ClInclude Include="include\tools\maptoolzoomin.h" />
<ClInclude Include="include\tools\maptoolzoomout.h" />
<ClInclude Include="include\utils\network.h" />
<QtMoc Include="include\provider\tms\ostnormalprovider.h" />
<ClInclude Include="include\pointxy.h" />
<QtMoc Include="include\gui\sponsorwindow.h" />
<QtMoc Include="include\gui\taskwindow.h" />
<ClInclude Include="include\layer\tmslayer.h" />
<QtMoc Include="include\provider\tmsprovider.h" />
<ClInclude Include="include\provider\tms\tmsproviderfactory.h" />
<ClInclude Include="include\crs\webmercator.h" />
</ItemGroup>
<ItemGroup>
<CustomBuild Include="debug\moc_predefs.h.cbt">
<FileType>Document</FileType>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\mkspecs\features\data\dummy.cpp;%(AdditionalInputs)</AdditionalInputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">cl -Bx"$(QTDIR)\bin\qmake.exe" -nologo -Zc:wchar_t -FS -Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus -Zi -MDd -W3 -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 -wd4577 -wd4467 -E $(QTDIR)\mkspecs\features\data\dummy.cpp 2&gt;NUL &gt;$(IntDir)\moc_predefs.h</Command>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Generate moc_predefs.h</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)\moc_predefs.h;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="release\moc_predefs.h.cbt">
<FileType>Document</FileType>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\mkspecs\features\data\dummy.cpp;%(AdditionalInputs)</AdditionalInputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">cl -Bx"$(QTDIR)\bin\qmake.exe" -nologo -Zc:wchar_t -FS -Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus -O2 -MD -W3 -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 -wd4577 -wd4467 -E $(QTDIR)\mkspecs\features\data\dummy.cpp 2&gt;NUL &gt;$(IntDir)\moc_predefs.h</Command>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Generate moc_predefs.h</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)\moc_predefs.h;%(Outputs)</Outputs>
</CustomBuild>
</ItemGroup>
<ItemGroup>
<QtUic Include="include\gui\mainwindow.ui" />
<QtUic Include="include\gui\sponsorwindow.ui" />
<QtUic Include="include\gui\taskwindow.ui" />
</ItemGroup>
<ItemGroup>
<None Include="resources\theme\mActionDownload.svg" />
<None Include="resources\theme\mActionPan.svg" />
<None Include="resources\theme\mActionRefresh.svg" />
<None Include="resources\theme\mActionSelect.svg" />
<None Include="resources\theme\mActionZoomIn.svg" />
<None Include="resources\theme\mActionZoomOut.svg" />
<None Include="resources\plane-black.png" />
<None Include="resources\plane-red.png" />
<QtRcc Include="resources\res.qrc" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<Import Project="$(QtMsBuild)\qt.targets" Condition="Exists('$(QtMsBuild)\qt.targets')" />
<ImportGroup Label="ExtensionTargets" />
</Project>

View File

@ -1,281 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Form Files">
<UniqueIdentifier>{99349809-55BA-4b9d-BF79-8FDBB0286EB3}</UniqueIdentifier>
<Extensions>ui</Extensions>
<ParseFiles>false</ParseFiles>
</Filter>
<Filter Include="Form Files">
<UniqueIdentifier>{99349809-55BA-4b9d-BF79-8FDBB0286EB3}</UniqueIdentifier>
<Extensions>ui</Extensions>
<ParseFiles>false</ParseFiles>
</Filter>
<Filter Include="Generated Files">
<UniqueIdentifier>{71ED8ED8-ACB9-4CE9-BBE1-E00B30144E11}</UniqueIdentifier>
<Extensions>cpp;c;cxx;moc;h;def;odl;idl;res;</Extensions>
</Filter>
<Filter Include="Generated Files">
<UniqueIdentifier>{71ED8ED8-ACB9-4CE9-BBE1-E00B30144E11}</UniqueIdentifier>
<Extensions>cpp;c;cxx;moc;h;def;odl;idl;res;</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{D9D6E242-F8AF-46E4-B9FD-80ECBC20BA3E}</UniqueIdentifier>
<Extensions>qrc;*</Extensions>
<ParseFiles>false</ParseFiles>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{D9D6E242-F8AF-46E4-B9FD-80ECBC20BA3E}</UniqueIdentifier>
<Extensions>qrc;*</Extensions>
<ParseFiles>false</ParseFiles>
</Filter>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="crs.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="egmain.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="provider\tms\gaodenormalprovider.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="utils\imgwriter.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="gui\mainwindow.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="maparea.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="mapautoplane.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="mapcanvas.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="mapcanvasmap.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="maplayer.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="mapline.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="maptool.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="tools\maptooladdplane.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="tools\maptooldrawarea.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="tools\maptooldrawline.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="tools\maptoolpan.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="tools\maptoolselect.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="tools\maptoolzoomin.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="tools\maptoolzoomout.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="utils\network.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="provider\tms\ostnormalprovider.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="pointxy.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="gui\sponsorwindow.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="gui\taskwindow.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="layer\tmslayer.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="provider\tmsprovider.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="provider\tms\tmsproviderfactory.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="crs\webmercator.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="include\crs.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="include\utils\LAMPMainWidget.h">
<Filter>Header Files</Filter>
</ClInclude>
<QtMoc Include="include\provider\tms\gaodenormalprovider.h">
<Filter>Header Files</Filter>
</QtMoc>
<ClInclude Include="include\provider\tms\gaodesatelliteprovider.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="include\provider\tms\googlechinanormalprovider.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="include\provider\tms\googlechinasatelliteprovider.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="include\utils\imgwriter.h">
<Filter>Header Files</Filter>
</ClInclude>
<QtMoc Include="include\layerprovider.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="include\gui\mainwindow.h">
<Filter>Header Files</Filter>
</QtMoc>
<ClInclude Include="maparea.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="mapautoplane.h">
<Filter>Header Files</Filter>
</ClInclude>
<QtMoc Include="include\mapcanvas.h">
<Filter>Header Files</Filter>
</QtMoc>
<ClInclude Include="include\mapcanvasmap.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="include\maplayer.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="mapline.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="include\maptool.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="include\tools\maptooladdplane.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="include\tools\maptooldrawarea.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="include\tools\maptooldrawline.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="include\tools\maptoolpan.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="include\tools\maptoolselect.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="include\tools\maptoolzoomin.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="include\tools\maptoolzoomout.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="include\utils\network.h">
<Filter>Header Files</Filter>
</ClInclude>
<QtMoc Include="include\provider\tms\ostnormalprovider.h">
<Filter>Header Files</Filter>
</QtMoc>
<ClInclude Include="include\pointxy.h">
<Filter>Header Files</Filter>
</ClInclude>
<QtMoc Include="include\gui\sponsorwindow.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="include\gui\taskwindow.h">
<Filter>Header Files</Filter>
</QtMoc>
<ClInclude Include="include\layer\tmslayer.h">
<Filter>Header Files</Filter>
</ClInclude>
<QtMoc Include="include\provider\tmsprovider.h">
<Filter>Header Files</Filter>
</QtMoc>
<ClInclude Include="include\provider\tms\tmsproviderfactory.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="include\crs\webmercator.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<CustomBuild Include="debug\moc_predefs.h.cbt">
<Filter>Generated Files</Filter>
</CustomBuild>
<CustomBuild Include="release\moc_predefs.h.cbt">
<Filter>Generated Files</Filter>
</CustomBuild>
</ItemGroup>
<ItemGroup>
<QtUic Include="include\gui\mainwindow.ui">
<Filter>Form Files</Filter>
</QtUic>
<QtUic Include="include\gui\sponsorwindow.ui">
<Filter>Form Files</Filter>
</QtUic>
<QtUic Include="include\gui\taskwindow.ui">
<Filter>Form Files</Filter>
</QtUic>
</ItemGroup>
<ItemGroup>
<None Include="resources\theme\mActionDownload.svg">
<Filter>Resource Files</Filter>
</None>
<None Include="resources\theme\mActionPan.svg">
<Filter>Resource Files</Filter>
</None>
<None Include="resources\theme\mActionRefresh.svg">
<Filter>Resource Files</Filter>
</None>
<None Include="resources\theme\mActionSelect.svg">
<Filter>Resource Files</Filter>
</None>
<None Include="resources\theme\mActionZoomIn.svg">
<Filter>Resource Files</Filter>
</None>
<None Include="resources\theme\mActionZoomOut.svg">
<Filter>Resource Files</Filter>
</None>
<None Include="resources\plane-black.png">
<Filter>Resource Files</Filter>
</None>
<None Include="resources\plane-red.png">
<Filter>Resource Files</Filter>
</None>
<QtRcc Include="resources\res.qrc">
<Filter>Resource Files</Filter>
</QtRcc>
</ItemGroup>
</Project>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@ -1,21 +0,0 @@
#include <QDebug>
#include <QApplication>
#include <QVector>
#include <include/provider/tmsprovider.h>
#include <include/gui/mainwindow.h>
#pragma execution_character_set("utf-8")
using namespace LAMPMainWidget;
int
main(int argc, char **argv) {
qRegisterMetaType<TileInfo>("TileInfo");
qRegisterMetaType<QVector<int>>("QVector<int>");
QApplication app{argc, argv};
MainWindow window{};
window.show();
return QApplication::exec();
}

View File

@ -1,95 +0,0 @@
#pragma once
#include "ui_mainwindow.h"
#include <QMainWindow>
#include <QVector>
#include <QLabel>
#include <QLineEdit>
#include <QWidget>
#include <QActionGroup>
#include <QListWidgetItem>
#include <QHash>
#include <include/mapcanvas.h>
#include <include/maplayer.h>
namespace Ui {
class MainWindow;
}
namespace LAMPMainWidget {
class MainWindow : public QMainWindow {
Q_OBJECT
friend class TaskWindow;
friend class DownloadTask;
public slots:
void changeTaskTable(int row, int col, QString text);
public:
explicit MainWindow(QWidget *parent = nullptr);
~MainWindow() override;
protected:
void setupWindow();
void setupActions();
void setupStatusBar();
void setupLayers();
void setupTaskWindow();
void initMaps();
protected:
/// 各处处理函数
void panHandle(bool checked);
void zoomInHandle(bool checked);
void zoomOutHandle(bool checked);
void drawlineHandle(bool checked);
void tutorialHanle(bool checked);
void srcHandle(bool checked);
void sponsorHandle(bool checked);
void refreshHandle(bool checked);
void selectHandle(bool checked);
void zoomChangedHandle(int zoom);
void clickedHandle(PointXY pos);
void centerChangedHandle(PointXY pos);
void leftTopClickedHandle();
void rightBottomClickedHandle();
void createDownloadTask();
void layerChanged(QListWidgetItem *current, QListWidgetItem *previous);
private:
QWidget *spacerWiget(int width) const;
protected:
static QString tutorialUrl();
static QString srcUrl();
private slots:
void on_drawArea_triggered();
void on_addPlaneaction_triggered();
private:
Ui::MainWindow *mUi;
MapCanvas *mMapConvas;
QLineEdit *mScaleText;
QLabel *mScaleLabel;
QLineEdit *mCenterText;
QLabel *mCenterLabel;
QLineEdit *mZoomText;
QLabel *mZoomLabel;
QActionGroup *mMapActionGroup;
bool mSetLeftTop;
QVector<QListWidgetItem*> mLayerList;
PointXY mLeftTop;
PointXY mRightBottom;
private:
static QHash<QString, MapLayer*> mMaps;
};
}

View File

@ -1,14 +0,0 @@
<RCC>
<qresource prefix="/themes">
<file alias="mActionPan">theme/mActionPan.svg</file>
<file alias="mActionRefresh">theme/mActionRefresh.svg</file>
<file alias="mActionZoomIn">theme/mActionZoomIn.svg</file>
<file alias="mActionZoomOut">theme/mActionZoomOut.svg</file>
<file alias="mActionSelect">theme/mActionSelect.svg</file>
<file alias="mActionDownload">theme/mActionDownload.svg</file>
</qresource>
<qresource prefix="/">
<file>plane-red.png</file>
<file>plane-black.png</file>
</qresource>
</RCC>

View File

@ -1,379 +0,0 @@
/********************************************************************************
** Form generated from reading UI file 'mainwindow.ui'
**
** Created by: Qt User Interface Compiler version 5.15.13
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_MAINWINDOW_H
#define UI_MAINWINDOW_H
#include <QtCore/QVariant>
#include <QtWidgets/QAction>
#include <QtWidgets/QApplication>
#include <QtWidgets/QGridLayout>
#include <QtWidgets/QGroupBox>
#include <QtWidgets/QHeaderView>
#include <QtWidgets/QLineEdit>
#include <QtWidgets/QListWidget>
#include <QtWidgets/QMainWindow>
#include <QtWidgets/QMenu>
#include <QtWidgets/QMenuBar>
#include <QtWidgets/QPushButton>
#include <QtWidgets/QStatusBar>
#include <QtWidgets/QTabWidget>
#include <QtWidgets/QTableWidget>
#include <QtWidgets/QToolBar>
#include <QtWidgets/QWidget>
QT_BEGIN_NAMESPACE
class Ui_MainWindow
{
public:
QAction *tutorialAction;
QAction *srcAction;
QAction *sponsorAction;
QAction *panAction;
QAction *zoomInAction;
QAction *zoomOutAction;
QAction *refreshAction;
QAction *downloadAction;
QAction *selectAction;
QAction *drawlineAction;
QAction *drawArea;
QAction *addPlaneaction;
QWidget *centralwidget;
QWidget *gridLayoutWidget;
QGridLayout *mainLayout;
QTabWidget *tabWidget;
QWidget *mapTab;
QWidget *gridLayoutWidget_2;
QGridLayout *mapCanvasLayout;
QWidget *gridLayoutWidget_3;
QGridLayout *infoLayout;
QGroupBox *layersListGbx;
QGroupBox *layersGbx;
QWidget *gridLayoutWidget_4;
QGridLayout *layersLayout;
QListWidget *layerList;
QGroupBox *downloadGbx;
QLineEdit *leftTopText;
QPushButton *leftTopBtn;
QLineEdit *rightBottomText;
QPushButton *rightBottomBtn;
QWidget *taskTab;
QWidget *gridLayoutWidget_5;
QGridLayout *taskLayout;
QTableWidget *taskTable;
QMenuBar *menubar;
QMenu *projectMenu;
QMenu *editMenu;
QMenu *viewMenu;
QMenu *layersMenu;
QMenu *optionsMenu;
QMenu *toolsMenu;
QMenu *helpMenu;
QStatusBar *statusbar;
QToolBar *toolBar;
void setupUi(QMainWindow *MainWindow)
{
if (MainWindow->objectName().isEmpty())
MainWindow->setObjectName(QString::fromUtf8("MainWindow"));
MainWindow->setEnabled(true);
MainWindow->resize(1450, 1000);
QSizePolicy sizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
sizePolicy.setHorizontalStretch(0);
sizePolicy.setVerticalStretch(0);
sizePolicy.setHeightForWidth(MainWindow->sizePolicy().hasHeightForWidth());
MainWindow->setSizePolicy(sizePolicy);
tutorialAction = new QAction(MainWindow);
tutorialAction->setObjectName(QString::fromUtf8("tutorialAction"));
srcAction = new QAction(MainWindow);
srcAction->setObjectName(QString::fromUtf8("srcAction"));
sponsorAction = new QAction(MainWindow);
sponsorAction->setObjectName(QString::fromUtf8("sponsorAction"));
panAction = new QAction(MainWindow);
panAction->setObjectName(QString::fromUtf8("panAction"));
panAction->setCheckable(true);
QIcon icon;
QString iconThemeName = QString::fromUtf8("default");
if (QIcon::hasThemeIcon(iconThemeName)) {
icon = QIcon::fromTheme(iconThemeName);
} else {
icon.addFile(QString::fromUtf8(":/themes/mActionPan"), QSize(), QIcon::Normal, QIcon::Off);
}
panAction->setIcon(icon);
zoomInAction = new QAction(MainWindow);
zoomInAction->setObjectName(QString::fromUtf8("zoomInAction"));
zoomInAction->setCheckable(true);
QIcon icon1;
iconThemeName = QString::fromUtf8("default");
if (QIcon::hasThemeIcon(iconThemeName)) {
icon1 = QIcon::fromTheme(iconThemeName);
} else {
icon1.addFile(QString::fromUtf8(":/themes/mActionZoomIn"), QSize(), QIcon::Normal, QIcon::Off);
}
zoomInAction->setIcon(icon1);
zoomOutAction = new QAction(MainWindow);
zoomOutAction->setObjectName(QString::fromUtf8("zoomOutAction"));
zoomOutAction->setCheckable(true);
QIcon icon2;
iconThemeName = QString::fromUtf8("default");
if (QIcon::hasThemeIcon(iconThemeName)) {
icon2 = QIcon::fromTheme(iconThemeName);
} else {
icon2.addFile(QString::fromUtf8(":/themes/mActionZoomOut"), QSize(), QIcon::Normal, QIcon::Off);
}
zoomOutAction->setIcon(icon2);
refreshAction = new QAction(MainWindow);
refreshAction->setObjectName(QString::fromUtf8("refreshAction"));
QIcon icon3;
iconThemeName = QString::fromUtf8("default");
if (QIcon::hasThemeIcon(iconThemeName)) {
icon3 = QIcon::fromTheme(iconThemeName);
} else {
icon3.addFile(QString::fromUtf8(":/themes/mActionRefresh"), QSize(), QIcon::Normal, QIcon::Off);
}
refreshAction->setIcon(icon3);
downloadAction = new QAction(MainWindow);
downloadAction->setObjectName(QString::fromUtf8("downloadAction"));
QIcon icon4;
iconThemeName = QString::fromUtf8("default");
if (QIcon::hasThemeIcon(iconThemeName)) {
icon4 = QIcon::fromTheme(iconThemeName);
} else {
icon4.addFile(QString::fromUtf8(":/themes/mActionDownload"), QSize(), QIcon::Normal, QIcon::Off);
}
downloadAction->setIcon(icon4);
selectAction = new QAction(MainWindow);
selectAction->setObjectName(QString::fromUtf8("selectAction"));
selectAction->setCheckable(true);
QIcon icon5;
iconThemeName = QString::fromUtf8("default");
if (QIcon::hasThemeIcon(iconThemeName)) {
icon5 = QIcon::fromTheme(iconThemeName);
} else {
icon5.addFile(QString::fromUtf8(":/themes/mActionSelect"), QSize(), QIcon::Normal, QIcon::Off);
}
selectAction->setIcon(icon5);
drawlineAction = new QAction(MainWindow);
drawlineAction->setObjectName(QString::fromUtf8("drawlineAction"));
drawlineAction->setCheckable(true);
drawlineAction->setChecked(true);
drawArea = new QAction(MainWindow);
drawArea->setObjectName(QString::fromUtf8("drawArea"));
drawArea->setCheckable(true);
addPlaneaction = new QAction(MainWindow);
addPlaneaction->setObjectName(QString::fromUtf8("addPlaneaction"));
addPlaneaction->setCheckable(true);
QIcon icon6;
icon6.addFile(QString::fromUtf8(":/plane-red.png"), QSize(), QIcon::Normal, QIcon::Off);
addPlaneaction->setIcon(icon6);
centralwidget = new QWidget(MainWindow);
centralwidget->setObjectName(QString::fromUtf8("centralwidget"));
gridLayoutWidget = new QWidget(centralwidget);
gridLayoutWidget->setObjectName(QString::fromUtf8("gridLayoutWidget"));
gridLayoutWidget->setGeometry(QRect(0, 0, 1441, 911));
mainLayout = new QGridLayout(gridLayoutWidget);
mainLayout->setObjectName(QString::fromUtf8("mainLayout"));
mainLayout->setContentsMargins(0, 0, 0, 0);
tabWidget = new QTabWidget(gridLayoutWidget);
tabWidget->setObjectName(QString::fromUtf8("tabWidget"));
mapTab = new QWidget();
mapTab->setObjectName(QString::fromUtf8("mapTab"));
gridLayoutWidget_2 = new QWidget(mapTab);
gridLayoutWidget_2->setObjectName(QString::fromUtf8("gridLayoutWidget_2"));
gridLayoutWidget_2->setGeometry(QRect(0, 0, 1241, 881));
mapCanvasLayout = new QGridLayout(gridLayoutWidget_2);
mapCanvasLayout->setObjectName(QString::fromUtf8("mapCanvasLayout"));
mapCanvasLayout->setContentsMargins(0, 0, 0, 0);
gridLayoutWidget_3 = new QWidget(mapTab);
gridLayoutWidget_3->setObjectName(QString::fromUtf8("gridLayoutWidget_3"));
gridLayoutWidget_3->setGeometry(QRect(1250, -1, 191, 881));
infoLayout = new QGridLayout(gridLayoutWidget_3);
infoLayout->setObjectName(QString::fromUtf8("infoLayout"));
infoLayout->setContentsMargins(0, 0, 0, 0);
layersListGbx = new QGroupBox(gridLayoutWidget_3);
layersListGbx->setObjectName(QString::fromUtf8("layersListGbx"));
layersGbx = new QGroupBox(layersListGbx);
layersGbx->setObjectName(QString::fromUtf8("layersGbx"));
layersGbx->setGeometry(QRect(10, 10, 171, 611));
gridLayoutWidget_4 = new QWidget(layersGbx);
gridLayoutWidget_4->setObjectName(QString::fromUtf8("gridLayoutWidget_4"));
gridLayoutWidget_4->setGeometry(QRect(9, 30, 151, 571));
layersLayout = new QGridLayout(gridLayoutWidget_4);
layersLayout->setObjectName(QString::fromUtf8("layersLayout"));
layersLayout->setContentsMargins(0, 0, 0, 0);
layerList = new QListWidget(gridLayoutWidget_4);
layerList->setObjectName(QString::fromUtf8("layerList"));
layersLayout->addWidget(layerList, 0, 0, 1, 1);
downloadGbx = new QGroupBox(layersListGbx);
downloadGbx->setObjectName(QString::fromUtf8("downloadGbx"));
downloadGbx->setGeometry(QRect(10, 650, 171, 221));
leftTopText = new QLineEdit(downloadGbx);
leftTopText->setObjectName(QString::fromUtf8("leftTopText"));
leftTopText->setGeometry(QRect(10, 40, 151, 31));
leftTopText->setReadOnly(true);
leftTopBtn = new QPushButton(downloadGbx);
leftTopBtn->setObjectName(QString::fromUtf8("leftTopBtn"));
leftTopBtn->setGeometry(QRect(10, 80, 151, 25));
rightBottomText = new QLineEdit(downloadGbx);
rightBottomText->setObjectName(QString::fromUtf8("rightBottomText"));
rightBottomText->setGeometry(QRect(12, 140, 151, 31));
rightBottomText->setReadOnly(true);
rightBottomBtn = new QPushButton(downloadGbx);
rightBottomBtn->setObjectName(QString::fromUtf8("rightBottomBtn"));
rightBottomBtn->setGeometry(QRect(10, 180, 151, 25));
infoLayout->addWidget(layersListGbx, 0, 1, 1, 1);
tabWidget->addTab(mapTab, QString());
taskTab = new QWidget();
taskTab->setObjectName(QString::fromUtf8("taskTab"));
gridLayoutWidget_5 = new QWidget(taskTab);
gridLayoutWidget_5->setObjectName(QString::fromUtf8("gridLayoutWidget_5"));
gridLayoutWidget_5->setGeometry(QRect(0, 0, 1431, 871));
taskLayout = new QGridLayout(gridLayoutWidget_5);
taskLayout->setObjectName(QString::fromUtf8("taskLayout"));
taskLayout->setContentsMargins(0, 0, 0, 0);
taskTable = new QTableWidget(gridLayoutWidget_5);
taskTable->setObjectName(QString::fromUtf8("taskTable"));
taskLayout->addWidget(taskTable, 0, 0, 1, 1);
tabWidget->addTab(taskTab, QString());
mainLayout->addWidget(tabWidget, 0, 0, 1, 1);
MainWindow->setCentralWidget(centralwidget);
menubar = new QMenuBar(MainWindow);
menubar->setObjectName(QString::fromUtf8("menubar"));
menubar->setGeometry(QRect(0, 0, 1450, 23));
projectMenu = new QMenu(menubar);
projectMenu->setObjectName(QString::fromUtf8("projectMenu"));
editMenu = new QMenu(menubar);
editMenu->setObjectName(QString::fromUtf8("editMenu"));
viewMenu = new QMenu(menubar);
viewMenu->setObjectName(QString::fromUtf8("viewMenu"));
layersMenu = new QMenu(menubar);
layersMenu->setObjectName(QString::fromUtf8("layersMenu"));
optionsMenu = new QMenu(menubar);
optionsMenu->setObjectName(QString::fromUtf8("optionsMenu"));
toolsMenu = new QMenu(menubar);
toolsMenu->setObjectName(QString::fromUtf8("toolsMenu"));
helpMenu = new QMenu(menubar);
helpMenu->setObjectName(QString::fromUtf8("helpMenu"));
MainWindow->setMenuBar(menubar);
statusbar = new QStatusBar(MainWindow);
statusbar->setObjectName(QString::fromUtf8("statusbar"));
MainWindow->setStatusBar(statusbar);
toolBar = new QToolBar(MainWindow);
toolBar->setObjectName(QString::fromUtf8("toolBar"));
MainWindow->addToolBar(Qt::TopToolBarArea, toolBar);
menubar->addAction(projectMenu->menuAction());
menubar->addAction(editMenu->menuAction());
menubar->addAction(viewMenu->menuAction());
menubar->addAction(layersMenu->menuAction());
menubar->addAction(optionsMenu->menuAction());
menubar->addAction(toolsMenu->menuAction());
menubar->addAction(helpMenu->menuAction());
helpMenu->addAction(tutorialAction);
helpMenu->addAction(srcAction);
helpMenu->addSeparator();
toolBar->addAction(selectAction);
toolBar->addAction(panAction);
toolBar->addAction(zoomInAction);
toolBar->addAction(zoomOutAction);
toolBar->addAction(refreshAction);
toolBar->addAction(drawArea);
toolBar->addAction(drawlineAction);
toolBar->addSeparator();
toolBar->addAction(addPlaneaction);
toolBar->addAction(downloadAction);
toolBar->addSeparator();
retranslateUi(MainWindow);
tabWidget->setCurrentIndex(0);
QMetaObject::connectSlotsByName(MainWindow);
} // setupUi
void retranslateUi(QMainWindow *MainWindow)
{
MainWindow->setWindowTitle(QCoreApplication::translate("MainWindow", "\345\234\260\345\233\276\344\270\213\350\275\275\345\231\250", nullptr));
tutorialAction->setText(QCoreApplication::translate("MainWindow", "\344\275\277\347\224\250\346\225\231\347\250\213", nullptr));
srcAction->setText(QCoreApplication::translate("MainWindow", "\346\272\220\347\240\201", nullptr));
#if QT_CONFIG(tooltip)
srcAction->setToolTip(QCoreApplication::translate("MainWindow", "\346\272\220\347\240\201", nullptr));
#endif // QT_CONFIG(tooltip)
sponsorAction->setText(QCoreApplication::translate("MainWindow", "\346\215\220\350\265\240", nullptr));
panAction->setText(QCoreApplication::translate("MainWindow", "\346\213\226\345\212\250", nullptr));
#if QT_CONFIG(tooltip)
panAction->setToolTip(QCoreApplication::translate("MainWindow", "\346\213\226\345\212\250\345\233\276\345\261\202\357\274\214\346\237\245\347\234\213\344\270\215\345\220\214\345\234\260\346\226\271", nullptr));
#endif // QT_CONFIG(tooltip)
zoomInAction->setText(QCoreApplication::translate("MainWindow", "\346\224\276\345\244\247", nullptr));
#if QT_CONFIG(tooltip)
zoomInAction->setToolTip(QCoreApplication::translate("MainWindow", "\345\242\236\345\244\247zoom\345\200\274", nullptr));
#endif // QT_CONFIG(tooltip)
zoomOutAction->setText(QCoreApplication::translate("MainWindow", "\347\274\251\345\260\217", nullptr));
#if QT_CONFIG(tooltip)
zoomOutAction->setToolTip(QCoreApplication::translate("MainWindow", "\345\207\217\345\260\217zoom\345\200\274", nullptr));
#endif // QT_CONFIG(tooltip)
refreshAction->setText(QCoreApplication::translate("MainWindow", "\345\210\267\346\226\260\345\234\260\345\233\276", nullptr));
#if QT_CONFIG(tooltip)
refreshAction->setToolTip(QCoreApplication::translate("MainWindow", "\345\210\267\346\226\260\345\234\260\345\233\276\346\230\276\347\244\272\345\206\205\345\256\271", nullptr));
#endif // QT_CONFIG(tooltip)
downloadAction->setText(QCoreApplication::translate("MainWindow", "\344\270\213\350\275\275", nullptr));
#if QT_CONFIG(tooltip)
downloadAction->setToolTip(QCoreApplication::translate("MainWindow", "\345\210\233\345\273\272\344\270\213\350\275\275\344\273\273\345\212\241", nullptr));
#endif // QT_CONFIG(tooltip)
selectAction->setText(QCoreApplication::translate("MainWindow", "\351\200\211\346\213\251", nullptr));
#if QT_CONFIG(tooltip)
selectAction->setToolTip(QCoreApplication::translate("MainWindow", "\351\200\211\346\213\251\345\234\260\345\233\276\344\270\255\347\202\271", nullptr));
#endif // QT_CONFIG(tooltip)
drawlineAction->setText(QCoreApplication::translate("MainWindow", "\350\210\252\347\272\277", nullptr));
#if QT_CONFIG(tooltip)
drawlineAction->setToolTip(QCoreApplication::translate("MainWindow", "\347\273\230\345\210\266\350\210\252\347\272\277", nullptr));
#endif // QT_CONFIG(tooltip)
drawArea->setText(QCoreApplication::translate("MainWindow", "\345\214\272\345\237\237", nullptr));
addPlaneaction->setText(QCoreApplication::translate("MainWindow", "\351\243\236\346\234\272", nullptr));
layersListGbx->setTitle(QString());
layersGbx->setTitle(QCoreApplication::translate("MainWindow", "\345\233\276\345\261\202\345\210\227\350\241\250", nullptr));
downloadGbx->setTitle(QCoreApplication::translate("MainWindow", "\344\270\213\350\275\275\345\214\272\345\237\237", nullptr));
#if QT_CONFIG(tooltip)
leftTopBtn->setToolTip(QCoreApplication::translate("MainWindow", "\347\202\271\345\207\273\345\274\200\345\247\213\351\200\211\346\213\251\345\267\246\344\270\212\350\247\222\347\202\271", nullptr));
#endif // QT_CONFIG(tooltip)
leftTopBtn->setText(QCoreApplication::translate("MainWindow", "\351\200\211\346\213\251\345\267\246\344\270\212\350\247\222", nullptr));
#if QT_CONFIG(tooltip)
rightBottomBtn->setToolTip(QCoreApplication::translate("MainWindow", "\347\202\271\345\207\273\345\274\200\345\247\213\351\200\211\346\213\251\345\217\263\344\270\213\350\247\222\347\202\271", nullptr));
#endif // QT_CONFIG(tooltip)
rightBottomBtn->setText(QCoreApplication::translate("MainWindow", "\351\200\211\346\213\251\345\217\263\344\270\213\350\247\222", nullptr));
tabWidget->setTabText(tabWidget->indexOf(mapTab), QCoreApplication::translate("MainWindow", "\345\234\260\345\233\276", nullptr));
tabWidget->setTabText(tabWidget->indexOf(taskTab), QCoreApplication::translate("MainWindow", "\344\273\273\345\212\241", nullptr));
projectMenu->setTitle(QCoreApplication::translate("MainWindow", "\351\241\271\347\233\256", nullptr));
editMenu->setTitle(QCoreApplication::translate("MainWindow", "\347\274\226\350\276\221", nullptr));
viewMenu->setTitle(QCoreApplication::translate("MainWindow", "\350\247\206\345\233\276", nullptr));
layersMenu->setTitle(QCoreApplication::translate("MainWindow", "\345\233\276\345\261\202", nullptr));
optionsMenu->setTitle(QCoreApplication::translate("MainWindow", "\350\256\276\347\275\256", nullptr));
toolsMenu->setTitle(QCoreApplication::translate("MainWindow", "\345\267\245\345\205\267", nullptr));
helpMenu->setTitle(QCoreApplication::translate("MainWindow", "\345\270\256\345\212\251", nullptr));
toolBar->setWindowTitle(QCoreApplication::translate("MainWindow", "toolBar", nullptr));
} // retranslateUi
};
namespace Ui {
class MainWindow: public Ui_MainWindow {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_MAINWINDOW_H

View File

@ -1,85 +0,0 @@
/********************************************************************************
** Form generated from reading UI file 'sponsorwindow.ui'
**
** Created by: Qt User Interface Compiler version 5.15.13
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_SPONSORWINDOW_H
#define UI_SPONSORWINDOW_H
#include <QtCore/QVariant>
#include <QtWidgets/QApplication>
#include <QtWidgets/QDialog>
#include <QtWidgets/QHBoxLayout>
#include <QtWidgets/QLabel>
#include <QtWidgets/QPushButton>
#include <QtWidgets/QSpacerItem>
#include <QtWidgets/QWidget>
QT_BEGIN_NAMESPACE
class Ui_SponsorWindow
{
public:
QLabel *payLbl;
QWidget *horizontalLayoutWidget;
QHBoxLayout *horizontalLayout;
QPushButton *wxPayBtn;
QSpacerItem *horizontalSpacer;
QPushButton *aliPayBtn;
void setupUi(QDialog *SponsorWindow)
{
if (SponsorWindow->objectName().isEmpty())
SponsorWindow->setObjectName(QString::fromUtf8("SponsorWindow"));
SponsorWindow->setWindowModality(Qt::NonModal);
SponsorWindow->resize(283, 338);
SponsorWindow->setContextMenuPolicy(Qt::DefaultContextMenu);
payLbl = new QLabel(SponsorWindow);
payLbl->setObjectName(QString::fromUtf8("payLbl"));
payLbl->setGeometry(QRect(10, 20, 261, 261));
horizontalLayoutWidget = new QWidget(SponsorWindow);
horizontalLayoutWidget->setObjectName(QString::fromUtf8("horizontalLayoutWidget"));
horizontalLayoutWidget->setGeometry(QRect(30, 290, 221, 41));
horizontalLayout = new QHBoxLayout(horizontalLayoutWidget);
horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout"));
horizontalLayout->setContentsMargins(0, 0, 0, 0);
wxPayBtn = new QPushButton(horizontalLayoutWidget);
wxPayBtn->setObjectName(QString::fromUtf8("wxPayBtn"));
horizontalLayout->addWidget(wxPayBtn);
horizontalSpacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
horizontalLayout->addItem(horizontalSpacer);
aliPayBtn = new QPushButton(horizontalLayoutWidget);
aliPayBtn->setObjectName(QString::fromUtf8("aliPayBtn"));
horizontalLayout->addWidget(aliPayBtn);
retranslateUi(SponsorWindow);
QMetaObject::connectSlotsByName(SponsorWindow);
} // setupUi
void retranslateUi(QDialog *SponsorWindow)
{
SponsorWindow->setWindowTitle(QCoreApplication::translate("SponsorWindow", "\350\265\236\345\212\251\344\275\234\350\200\205", nullptr));
payLbl->setText(QCoreApplication::translate("SponsorWindow", "\346\224\257\344\273\230\347\240\201", nullptr));
wxPayBtn->setText(QCoreApplication::translate("SponsorWindow", "\345\276\256\344\277\241\346\224\257\344\273\230", nullptr));
aliPayBtn->setText(QCoreApplication::translate("SponsorWindow", "\346\224\257\344\273\230\345\256\235\346\224\257\344\273\230", nullptr));
} // retranslateUi
};
namespace Ui {
class SponsorWindow: public Ui_SponsorWindow {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_SPONSORWINDOW_H

View File

@ -1,124 +0,0 @@
/********************************************************************************
** Form generated from reading UI file 'taskwindow.ui'
**
** Created by: Qt User Interface Compiler version 5.15.13
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_TASKWINDOW_H
#define UI_TASKWINDOW_H
#include <QtCore/QVariant>
#include <QtWidgets/QApplication>
#include <QtWidgets/QComboBox>
#include <QtWidgets/QDialog>
#include <QtWidgets/QGroupBox>
#include <QtWidgets/QLabel>
#include <QtWidgets/QLineEdit>
#include <QtWidgets/QPushButton>
QT_BEGIN_NAMESPACE
class Ui_TaskWindow
{
public:
QGroupBox *groupBox;
QLineEdit *saveDirText;
QPushButton *saveDirBtn;
QGroupBox *groupBox_2;
QLabel *label;
QLabel *label_2;
QLineEdit *leftTopText;
QLineEdit *rightBottomText;
QLabel *label_5;
QComboBox *zoomValueCbx;
QLabel *label_3;
QLabel *label_4;
QLineEdit *taskNameText;
QPushButton *createBtn;
QPushButton *exitBtn;
void setupUi(QDialog *TaskWindow)
{
if (TaskWindow->objectName().isEmpty())
TaskWindow->setObjectName(QString::fromUtf8("TaskWindow"));
TaskWindow->resize(640, 400);
groupBox = new QGroupBox(TaskWindow);
groupBox->setObjectName(QString::fromUtf8("groupBox"));
groupBox->setGeometry(QRect(10, 10, 621, 311));
saveDirText = new QLineEdit(groupBox);
saveDirText->setObjectName(QString::fromUtf8("saveDirText"));
saveDirText->setGeometry(QRect(100, 40, 391, 30));
saveDirBtn = new QPushButton(groupBox);
saveDirBtn->setObjectName(QString::fromUtf8("saveDirBtn"));
saveDirBtn->setGeometry(QRect(510, 40, 89, 30));
groupBox_2 = new QGroupBox(groupBox);
groupBox_2->setObjectName(QString::fromUtf8("groupBox_2"));
groupBox_2->setGeometry(QRect(20, 130, 581, 161));
label = new QLabel(groupBox_2);
label->setObjectName(QString::fromUtf8("label"));
label->setGeometry(QRect(20, 40, 67, 30));
label_2 = new QLabel(groupBox_2);
label_2->setObjectName(QString::fromUtf8("label_2"));
label_2->setGeometry(QRect(320, 40, 67, 30));
leftTopText = new QLineEdit(groupBox_2);
leftTopText->setObjectName(QString::fromUtf8("leftTopText"));
leftTopText->setEnabled(true);
leftTopText->setGeometry(QRect(100, 40, 141, 30));
leftTopText->setReadOnly(true);
rightBottomText = new QLineEdit(groupBox_2);
rightBottomText->setObjectName(QString::fromUtf8("rightBottomText"));
rightBottomText->setGeometry(QRect(400, 40, 141, 30));
rightBottomText->setReadOnly(true);
label_5 = new QLabel(groupBox_2);
label_5->setObjectName(QString::fromUtf8("label_5"));
label_5->setGeometry(QRect(20, 100, 67, 30));
zoomValueCbx = new QComboBox(groupBox_2);
zoomValueCbx->setObjectName(QString::fromUtf8("zoomValueCbx"));
zoomValueCbx->setGeometry(QRect(100, 100, 441, 30));
label_3 = new QLabel(groupBox);
label_3->setObjectName(QString::fromUtf8("label_3"));
label_3->setGeometry(QRect(20, 40, 67, 30));
label_4 = new QLabel(groupBox);
label_4->setObjectName(QString::fromUtf8("label_4"));
label_4->setGeometry(QRect(20, 90, 67, 30));
taskNameText = new QLineEdit(groupBox);
taskNameText->setObjectName(QString::fromUtf8("taskNameText"));
taskNameText->setGeometry(QRect(100, 90, 391, 30));
createBtn = new QPushButton(TaskWindow);
createBtn->setObjectName(QString::fromUtf8("createBtn"));
createBtn->setGeometry(QRect(420, 350, 89, 30));
exitBtn = new QPushButton(TaskWindow);
exitBtn->setObjectName(QString::fromUtf8("exitBtn"));
exitBtn->setGeometry(QRect(540, 350, 89, 30));
retranslateUi(TaskWindow);
QMetaObject::connectSlotsByName(TaskWindow);
} // setupUi
void retranslateUi(QDialog *TaskWindow)
{
TaskWindow->setWindowTitle(QCoreApplication::translate("TaskWindow", "\345\210\233\345\273\272\344\273\273\345\212\241", nullptr));
groupBox->setTitle(QCoreApplication::translate("TaskWindow", "\344\273\273\345\212\241\344\277\241\346\201\257", nullptr));
saveDirBtn->setText(QCoreApplication::translate("TaskWindow", "\351\200\211\346\213\251\350\267\257\345\276\204", nullptr));
groupBox_2->setTitle(QCoreApplication::translate("TaskWindow", "\344\270\213\350\275\275\345\214\272\345\237\237", nullptr));
label->setText(QCoreApplication::translate("TaskWindow", "\345\267\246\344\270\212\350\247\222", nullptr));
label_2->setText(QCoreApplication::translate("TaskWindow", "\345\217\263\344\270\213\350\247\222", nullptr));
label_5->setText(QCoreApplication::translate("TaskWindow", "Zoom\345\200\274", nullptr));
label_3->setText(QCoreApplication::translate("TaskWindow", "\344\277\235\345\255\230\350\267\257\345\276\204", nullptr));
label_4->setText(QCoreApplication::translate("TaskWindow", "\344\273\273\345\212\241\345\220\215", nullptr));
createBtn->setText(QCoreApplication::translate("TaskWindow", "\345\210\233\345\273\272", nullptr));
exitBtn->setText(QCoreApplication::translate("TaskWindow", "\345\217\226\346\266\210", nullptr));
} // retranslateUi
};
namespace Ui {
class TaskWindow: public Ui_TaskWindow {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_TASKWINDOW_H

View File

@ -1,9 +1,11 @@
#include "QApplicationSettingManager.h"
#include "ui_QApplicationSettingManager.h"
QApplicationSettingManager::QApplicationSettingManager(QWidget *parent)
: QDialog(parent)
: QDialog(parent),ui(new Ui::QApplicationSettingManagerClass)
{
ui.setupUi(this);
ui->setupUi(this);
}
QApplicationSettingManager::~QApplicationSettingManager()

View File

@ -1,9 +1,12 @@
#pragma once
#include "RasterProcessToolWidgetAPI.h"
#include <QDialog>
#include "ui_QApplicationSettingManager.h"
class QApplicationSettingManager : public QDialog
namespace Ui {
class QApplicationSettingManagerClass;
}
class RASTERPROCESSTOOLWIDGET_EXPORT QApplicationSettingManager : public QDialog
{
Q_OBJECT
@ -12,5 +15,5 @@ public:
~QApplicationSettingManager();
private:
Ui::QApplicationSettingManagerClass ui;
Ui::QApplicationSettingManagerClass* ui;
};

View File

@ -1,104 +0,0 @@
#include "RasterProcessTool.h"
#include <QObject>
#include <QPushButton>
#include "QToolAbstract.h"
#include "ui_RasterProcessTool.h"
RasterProcessTool::RasterProcessTool(QWidget *parent)
: ui(new Ui::RasterProcessToolClass), QMainWindow(parent)
{
ui->setupUi(this);
QObject::connect(this, SIGNAL(addBoxToolItemSIGNAL(QToolAbstract*)), this, SLOT(addBoxToolItemSLOT(QToolAbstract*)));
}
RasterProcessTool::~RasterProcessTool()
{}
void RasterProcessTool::addBoxToolItemSLOT(QToolAbstract* item)
{
QVector<QString> xnodepath = item->getToolXpath();
QString toolName = item->getToolName();
QTreeWidgetItem* parentItem = findOrCreateParentItem(xnodepath);
// 检查该父项是否已经绑定了 toolButton
if (parentItem && ui->treeWidgetToolBox->itemWidget(parentItem, 0) == nullptr) {
QTreeWidgetItem* actionItem = new QTreeWidgetItem(parentItem);
parentItem->addChild(actionItem);
QIcon icon(QString::fromUtf8(":/RasterProcessTool/toolicon"));
QPushButton* button = new QPushButton(ui->treeWidgetToolBox);
button->setIcon(icon);
button->setText(toolName);
button->setLayoutDirection(Qt::LeftToRight);
button->setStyleSheet("QPushButton { text-align: left; }");
ui->treeWidgetToolBox->setItemWidget(actionItem, 0, button);
connect(button, SIGNAL(clicked()), item, SLOT(excute()));
item->setParent(ui->treeWidgetToolBox);
qDebug() << "ToolButton bound to parent:" << actionItem->text(0);
}
else {
qDebug() << "ToolButton already bound to parent:" << parentItem->text(0);
}
}
// 根据路径查找或创建父项
QTreeWidgetItem* RasterProcessTool::findOrCreateParentItem( QVector<QString>& path) {
QTreeWidgetItem* currentItem = nullptr;
// 从树的顶层开始查找
for ( QString& nodeName : path) {
if (currentItem == nullptr) {
// 如果是顶级节点
currentItem = findOrCreateTopLevelItem(nodeName);
}
else {
// 如果是子节点,查找当前父项下是否存在该子节点
currentItem = findChildItemByName(currentItem, nodeName);
if (currentItem == nullptr) {
currentItem = new QTreeWidgetItem(currentItem);
currentItem->setText(0, nodeName);
}
}
}
return currentItem;
}
// 查找顶级节点,如果没有找到则创建
QTreeWidgetItem* RasterProcessTool::findOrCreateTopLevelItem( QString& name) {
for (int i = 0; i < ui->treeWidgetToolBox->topLevelItemCount(); ++i) {
QTreeWidgetItem* item = ui->treeWidgetToolBox->topLevelItem(i);
if (item->text(0) == name) {
return item;
}
}
// 如果没有找到,创建新的顶级节点
QTreeWidgetItem* newItem = new QTreeWidgetItem(ui->treeWidgetToolBox);
QIcon icon(QString::fromUtf8(":/RasterProcessTool/toolboxIcon"));
newItem->setIcon(0,icon);
newItem->setTextAlignment(0, Qt::AlignLeft);
newItem->setText(0, name);
return newItem;
}
// 查找子节点,如果没有找到则返回 nullptr
QTreeWidgetItem* RasterProcessTool::findChildItemByName(QTreeWidgetItem* parentItem, QString& name) {
for (int i = 0; i < parentItem->childCount(); ++i) {
QTreeWidgetItem* childItem = parentItem->child(i);
if (childItem->text(0) == name) {
return childItem;
}
}
return nullptr;
}

View File

@ -1,30 +0,0 @@
#pragma once
#include "RasterProcessToolWidgetAPI.h"
#include <QtWidgets/QMainWindow>
#include "QToolAbstract.h"
namespace Ui {
class RasterProcessToolClass;
}
class RASTERPROCESSTOOLWIDGET_EXPORT RasterProcessTool : public QMainWindow
{
Q_OBJECT
public:
RasterProcessTool(QWidget *parent = nullptr);
~RasterProcessTool();
signals:
void addBoxToolItemSIGNAL(QToolAbstract* item);
public slots:
void addBoxToolItemSLOT(QToolAbstract* item);
QTreeWidgetItem* findOrCreateParentItem( QVector<QString>& path);
QTreeWidgetItem* findOrCreateTopLevelItem( QString& name);
QTreeWidgetItem* findChildItemByName(QTreeWidgetItem* parentItem, QString& name);
private:
Ui::RasterProcessToolClass* ui;
};

View File

@ -36,7 +36,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LAMPDataProcessEXE", "..\LA
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GPUBaseLib", "..\GPUBaseLib\GPUBaseLib.vcxproj", "{B8B40C54-F7FE-4809-B6FB-8BC014570D7B}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LAMPMainWidget", "..\LAMPMainWidget\LAMPMainWidget.vcxproj", "{D50E4F7D-D021-36B9-A36A-7E4442AE70A5}"
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RasterMainWidgetGUI", "..\RasterMainWidgetGUI\RasterMainWidgetGUI.vcxproj", "{E56B3878-A3DC-41A4-ABF3-B628816D0D64}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@ -118,14 +118,14 @@ Global
{B8B40C54-F7FE-4809-B6FB-8BC014570D7B}.Release|x64.Build.0 = Release|x64
{B8B40C54-F7FE-4809-B6FB-8BC014570D7B}.Release|x86.ActiveCfg = Release|Win32
{B8B40C54-F7FE-4809-B6FB-8BC014570D7B}.Release|x86.Build.0 = Release|Win32
{D50E4F7D-D021-36B9-A36A-7E4442AE70A5}.Debug|x64.ActiveCfg = Debug|x64
{D50E4F7D-D021-36B9-A36A-7E4442AE70A5}.Debug|x64.Build.0 = Debug|x64
{D50E4F7D-D021-36B9-A36A-7E4442AE70A5}.Debug|x86.ActiveCfg = Debug|x64
{D50E4F7D-D021-36B9-A36A-7E4442AE70A5}.Debug|x86.Build.0 = Debug|x64
{D50E4F7D-D021-36B9-A36A-7E4442AE70A5}.Release|x64.ActiveCfg = Release|x64
{D50E4F7D-D021-36B9-A36A-7E4442AE70A5}.Release|x64.Build.0 = Release|x64
{D50E4F7D-D021-36B9-A36A-7E4442AE70A5}.Release|x86.ActiveCfg = Release|x64
{D50E4F7D-D021-36B9-A36A-7E4442AE70A5}.Release|x86.Build.0 = Release|x64
{E56B3878-A3DC-41A4-ABF3-B628816D0D64}.Debug|x64.ActiveCfg = Debug|x64
{E56B3878-A3DC-41A4-ABF3-B628816D0D64}.Debug|x64.Build.0 = Debug|x64
{E56B3878-A3DC-41A4-ABF3-B628816D0D64}.Debug|x86.ActiveCfg = Debug|x64
{E56B3878-A3DC-41A4-ABF3-B628816D0D64}.Debug|x86.Build.0 = Debug|x64
{E56B3878-A3DC-41A4-ABF3-B628816D0D64}.Release|x64.ActiveCfg = Release|x64
{E56B3878-A3DC-41A4-ABF3-B628816D0D64}.Release|x64.Build.0 = Release|x64
{E56B3878-A3DC-41A4-ABF3-B628816D0D64}.Release|x86.ActiveCfg = Release|x64
{E56B3878-A3DC-41A4-ABF3-B628816D0D64}.Release|x86.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@ -138,7 +138,7 @@ Global
{ED06DFCD-4B9F-41F7-8F25-1823C2398142} = {41B1F23D-9119-47A7-B102-34022AF83CDA}
{8C8CA066-A93A-4098-9A46-B855EFEAADF2} = {41B1F23D-9119-47A7-B102-34022AF83CDA}
{B8B40C54-F7FE-4809-B6FB-8BC014570D7B} = {2768F9D6-D410-4E88-A479-8336DAF97072}
{D50E4F7D-D021-36B9-A36A-7E4442AE70A5} = {6505E2BA-06A2-447B-BC85-8CF1A81359BC}
{E56B3878-A3DC-41A4-ABF3-B628816D0D64} = {6505E2BA-06A2-447B-BC85-8CF1A81359BC}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {179F0A62-C631-4667-AD03-3780ADE09F41}

View File

@ -1,112 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>RasterProcessToolClass</class>
<widget class="QMainWindow" name="RasterProcessToolClass">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>1920</width>
<height>1080</height>
</rect>
</property>
<property name="windowTitle">
<string>RasterProcessTool</string>
</property>
<widget class="QWidget" name="centralWidget">
<layout class="QHBoxLayout" name="horizontalLayout"/>
</widget>
<widget class="QMenuBar" name="menuBar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>1920</width>
<height>23</height>
</rect>
</property>
</widget>
<widget class="QToolBar" name="mainToolBar">
<attribute name="toolBarArea">
<enum>TopToolBarArea</enum>
</attribute>
<attribute name="toolBarBreak">
<bool>false</bool>
</attribute>
</widget>
<widget class="QStatusBar" name="statusBar"/>
<widget class="QDockWidget" name="dockWidget">
<attribute name="dockWidgetArea">
<number>2</number>
</attribute>
<widget class="QWidget" name="dockWidgetContents">
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QTreeWidget" name="treeWidgetToolBox">
<property name="font">
<font>
<family>黑体</family>
<pointsize>16</pointsize>
</font>
</property>
<column>
<property name="text">
<string>工具箱</string>
</property>
<property name="icon">
<iconset resource="RasterProcessTool.qrc">
<normaloff>:/RasterProcessTool/toolboxIcon</normaloff>:/RasterProcessTool/toolboxIcon</iconset>
</property>
</column>
</widget>
</item>
</layout>
</widget>
</widget>
<action name="actionmergeRaster">
<property name="text">
<string>mergeRaster</string>
</property>
</action>
<action name="actionImportGF3Strip">
<property name="text">
<string>ImportGF3Strip</string>
</property>
</action>
<action name="actioncomplex2amporphase">
<property name="text">
<string>complex2amporphase</string>
</property>
</action>
<action name="actionlooktableCreate">
<property name="text">
<string>looktableCreate</string>
</property>
</action>
<action name="actionorthinterpRaster">
<property name="text">
<string>orthinterpRaster</string>
</property>
</action>
<action name="actionSARRFPC">
<property name="text">
<string>SARRFPC</string>
</property>
</action>
<action name="actionSimuSARRFPC">
<property name="text">
<string>SimuSARRFPC</string>
</property>
</action>
<action name="actionSimuBPImage">
<property name="text">
<string>SimuBPImage</string>
</property>
</action>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources>
<include location="RasterProcessTool.qrc"/>
</resources>
<connections/>
</ui>

View File

@ -82,6 +82,8 @@
<EnableParallelCodeGeneration>true</EnableParallelCodeGeneration>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<FavorSizeOrSpeed>Neither</FavorSizeOrSpeed>
<LanguageStandard>stdcpp14</LanguageStandard>
<LanguageStandard_C>stdc11</LanguageStandard_C>
</ClCompile>
<Link>
<LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
@ -125,9 +127,9 @@
<ClCompile Include="QApplicationSettingManager.cpp" />
<QtRcc Include="RasterProcessTool.qrc" />
<QtUic Include="QApplicationSettingManager.ui" />
<QtUic Include="RasterProcessTool.ui" />
<QtMoc Include="RasterProcessTool.h" />
<ClCompile Include="RasterProcessTool.cpp" />
<QtUic Include="ToolBoxWidget.ui" />
<QtMoc Include="ToolBoxWidget.h" />
<ClCompile Include="ToolBoxWidget.cpp" />
</ItemGroup>
<ItemGroup>
<QtMoc Include="QApplicationSettingManager.h" />

View File

@ -29,13 +29,13 @@
<QtRcc Include="RasterProcessTool.qrc">
<Filter>Resource Files</Filter>
</QtRcc>
<QtUic Include="RasterProcessTool.ui">
<QtUic Include="ToolBoxWidget.ui">
<Filter>Form Files</Filter>
</QtUic>
<QtMoc Include="RasterProcessTool.h">
<QtMoc Include="ToolBoxWidget.h">
<Filter>Header Files</Filter>
</QtMoc>
<ClCompile Include="RasterProcessTool.cpp">
<ClCompile Include="ToolBoxWidget.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>

View File

@ -0,0 +1,224 @@
#include "ToolBoxWidget.h"
#include <QObject>
#include <QPushButton>
#include "QToolAbstract.h"
#include <QMenu>
#include "ui_ToolBoxWidget.h"
#include <QStringList>
#include <QDir>
#include <QFileInfo>
#ifdef Q_OS_WIN
#include <windows.h>
#include <WinBase.h>
#endif
#ifdef Q_OS_UNIX
#include <dlfcn.h>
#endif
ToolBoxWidget::ToolBoxWidget(LAMPMainWidget::RasterMainWidget* mainWindows, QWidget *parent)
: QWidget(parent), ui(new Ui::ToolBoxWidget), _mainWindows(mainWindows)
{
ui->setupUi(this);
setContextMenuPolicy(Qt::CustomContextMenu); // 设置右键快捷菜单
QObject::connect(this, SIGNAL(addBoxToolItemSIGNAL(QToolAbstract*)), this, SLOT(addBoxToolItemSLOT(QToolAbstract*)));
}
ToolBoxWidget::~ToolBoxWidget()
{}
void ToolBoxWidget::initMenu()
{
contextmenu = new QMenu(this);
//QAction* action1 = contextmenu->addAction(tr(u8"添加工具箱"));
}
void ToolBoxWidget::initToolbox(QString dlltoolPath)
{
// 读取dll 文件,
QDir dir(dlltoolPath); // 获取当前工作目录
// 设置文件过滤规则,只查找包含 "plugin_" 的 dll 文件
QStringList filters;
filters << "PluginTool_*.dll";
// 获取当前目录下所有符合过滤规则的文件
QFileInfoList files = dir.entryInfoList(filters, QDir::Files);
for (const QFileInfo& fileInfo : files) {
QString plugpath = fileInfo.absoluteFilePath();
qDebug() << "Found DLL:" << plugpath;
//continue;
QString pluginname = fileInfo.fileName();
typedef void (*Reg)(LAMPMainWidget::RasterMainWidget* mainwindows, ToolBoxWidget* toolbox);
Reg fun = nullptr;
if (!pluginname.toLower().startsWith("plugintool_"))
return ;
if (!pluginname.toLower().endsWith(".dll"))
return ;
HMODULE hmodel = LoadLibrary(LPCWSTR(plugpath.utf16()));
qDebug() << "Error Code :" + QString::number(GetLastError());
if (hmodel) {
fun = (Reg)GetProcAddress(hmodel, "RegisterPreToolBox");
if (fun) {
qDebug() << "loading Plugin started!!!";
fun(this->_mainWindows, this);
qDebug() << "loading Plugin finished : " << plugpath;
}
else {
FreeLibrary(hmodel);
qDebug() << "do not find Register function Plugin: " << plugpath;
return ;
}
}
else {
qDebug() << "loading Plugin dll Failure: " << plugpath;
}
}
}
void ToolBoxWidget::addBoxToolItemSLOT(QToolAbstract* item)
{
QVector<QString> xnodepath = item->getToolXpath();
QString toolName = item->getToolName();
QTreeWidgetItem* parentItem = findOrCreateParentItem(xnodepath);
// 检查该父项是否已经绑定了 toolButton
if (parentItem && ui->treeWidgetToolBox->itemWidget(parentItem, 0) == nullptr) {
toollist.append(QToolboxTreeWidgetItem(ui->treeWidgetToolBox,parentItem,item));
//QTreeWidgetItem* actionItem = new QTreeWidgetItem(parentItem);
//parentItem->addChild(actionItem);
//actionItem->setText(0,toolName);
//QIcon icon(QString::fromUtf8(":/ToolBoxWidget/toolicon"));
//QPushButton* button = new QPushButton(ui->treeWidgetToolBox);
//button->setIcon(icon);
//button->setText(toolName);
//button->setLayoutDirection(Qt::LeftToRight);
//button->setStyleSheet("QPushButton { text-align: left; }");
//ui->treeWidgetToolBox->setItemWidget(actionItem, 0, button);
//connect(button, SIGNAL(clicked()), item, SLOT(excute()));
//item->setParent(ui->treeWidgetToolBox);
//qDebug() << "ToolButton bound to parent:" << actionItem->text(0);
}
else {
qDebug() << "ToolButton already bound to parent:" << parentItem->text(0);
}
}
// 根据路径查找或创建父项
QTreeWidgetItem* ToolBoxWidget::findOrCreateParentItem( QVector<QString>& path) {
QTreeWidgetItem* currentItem = nullptr;
// 从树的顶层开始查找
for ( QString& nodeName : path) {
if (currentItem == nullptr) {
// 如果是顶级节点
currentItem = findOrCreateTopLevelItem(nodeName);
}
else {
// 如果是子节点,查找当前父项下是否存在该子节点
currentItem = findChildItemByName(currentItem, nodeName);
if (currentItem == nullptr) {
currentItem = new QTreeWidgetItem(currentItem);
currentItem->setText(0, nodeName);
}
}
}
return currentItem;
}
// 查找顶级节点,如果没有找到则创建
QTreeWidgetItem* ToolBoxWidget::findOrCreateTopLevelItem( QString& name) {
for (int i = 0; i < ui->treeWidgetToolBox->topLevelItemCount(); ++i) {
QTreeWidgetItem* item = ui->treeWidgetToolBox->topLevelItem(i);
if (item->text(0) == name) {
return item;
}
}
// 如果没有找到,创建新的顶级节点
QTreeWidgetItem* newItem = new QTreeWidgetItem(ui->treeWidgetToolBox);
QIcon icon(QString::fromUtf8(":/RasterProcessTool/toolboxIcon"));
newItem->setIcon(0,icon);
newItem->setTextAlignment(0, Qt::AlignLeft);
newItem->setText(0, name);
return newItem;
}
// 查找子节点,如果没有找到则返回 nullptr
QTreeWidgetItem* ToolBoxWidget::findChildItemByName(QTreeWidgetItem* parentItem, QString& name) {
for (int i = 0; i < parentItem->childCount(); ++i) {
QTreeWidgetItem* childItem = parentItem->child(i);
if (childItem->text(0) == name) {
return childItem;
}
}
return nullptr;
}
void ToolBoxWidget::OpenToolboxManagerWidget()
{
}
QToolboxTreeWidgetItem::QToolboxTreeWidgetItem(QTreeWidget* IntreeWidgetToolBox, QTreeWidgetItem* InparentItem, QToolAbstract* Initem)
{
this->parentItem = InparentItem;
this->item = Initem;
this->actionItem = new QTreeWidgetItem(parentItem);
this->button = new QPushButton(IntreeWidgetToolBox);
QString toolName = item->getToolName();
parentItem->addChild(actionItem);
actionItem->setText(0, toolName);
QIcon icon(QString::fromUtf8(":/RasterProcessTool/toolicon.png"));
button->setIcon(icon);
button->setText(toolName);
button->setLayoutDirection(Qt::LeftToRight);
button->setStyleSheet("QPushButton { text-align: left;font-size: 12px; font-weight: normal; }");
IntreeWidgetToolBox->setItemWidget(actionItem, 0, button);
QObject::connect(button, SIGNAL(clicked()), item, SLOT(excute()));
item->setParent(IntreeWidgetToolBox);
qDebug() << "ToolButton bound to parent:" << actionItem->text(0);
}
QToolboxTreeWidgetItem::~QToolboxTreeWidgetItem()
{
}
QTreeWidgetItem* QToolboxTreeWidgetItem::getTreeWidgetItem()
{
return this->actionItem;
}
QPushButton* QToolboxTreeWidgetItem::getPushButton()
{
return this->button;
}
QToolAbstract* QToolboxTreeWidgetItem::getToolAbstract()
{
return this->item;
}
QTreeWidgetItem* QToolboxTreeWidgetItem::getParantTreeWidgetItem()
{
return this->parentItem;
}

View File

@ -0,0 +1,69 @@
#pragma once
#include "RasterProcessToolWidgetAPI.h"
#include <QtWidgets/QMainWindow>
#include "QToolAbstract.h"
#include <QMenu>
namespace Ui {
class ToolBoxWidget;
}
namespace LAMPMainWidget {
class RasterMainWidget;
}
class QToolboxTreeWidgetItem {
public:
QToolboxTreeWidgetItem(QTreeWidget* treeWidgetToolBox,QTreeWidgetItem* parentItem,QToolAbstract* item);
~QToolboxTreeWidgetItem();
private:
QTreeWidgetItem* actionItem=nullptr;
QPushButton* button = nullptr;
QToolAbstract* item = nullptr;
QTreeWidgetItem* parentItem = nullptr;
public:
QTreeWidgetItem* getTreeWidgetItem();
QPushButton* getPushButton();
QToolAbstract* getToolAbstract();
QTreeWidgetItem* getParantTreeWidgetItem();
};
class RASTERPROCESSTOOLWIDGET_EXPORT ToolBoxWidget : public QWidget
{
Q_OBJECT
public:
ToolBoxWidget(LAMPMainWidget::RasterMainWidget* mainWindows=nullptr,QWidget *parent = nullptr);
~ToolBoxWidget();
public:
void initMenu();
void initToolbox(QString dlltoolPath);
private:
QMenu* contextmenu;
QList<QToolboxTreeWidgetItem> toollist;
signals:
void addBoxToolItemSIGNAL(QToolAbstract* item);
public slots:
void addBoxToolItemSLOT(QToolAbstract* item);
QTreeWidgetItem* findOrCreateParentItem( QVector<QString>& path);
QTreeWidgetItem* findOrCreateTopLevelItem( QString& name);
QTreeWidgetItem* findChildItemByName(QTreeWidgetItem* parentItem, QString& name);
public slots:
// 打开工具箱管理界面
void OpenToolboxManagerWidget();
private:
Ui::ToolBoxWidget* ui;
LAMPMainWidget::RasterMainWidget* _mainWindows;//主窗口
};

View File

@ -0,0 +1,83 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>ToolBoxWidget</class>
<widget class="QWidget" name="ToolBoxWidget">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>289</width>
<height>433</height>
</rect>
</property>
<property name="windowTitle">
<string>工具箱</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QTreeWidget" name="treeWidgetToolBox">
<property name="font">
<font>
<family>黑体</family>
<pointsize>12</pointsize>
</font>
</property>
<column>
<property name="text">
<string>工具箱</string>
</property>
<property name="icon">
<iconset resource="RasterProcessTool.qrc">
<normaloff>:/RasterProcessTool/toolboxIcon</normaloff>:/RasterProcessTool/toolboxIcon</iconset>
</property>
</column>
</widget>
</item>
</layout>
<action name="actionmergeRaster">
<property name="text">
<string>mergeRaster</string>
</property>
</action>
<action name="actionImportGF3Strip">
<property name="text">
<string>ImportGF3Strip</string>
</property>
</action>
<action name="actioncomplex2amporphase">
<property name="text">
<string>complex2amporphase</string>
</property>
</action>
<action name="actionlooktableCreate">
<property name="text">
<string>looktableCreate</string>
</property>
</action>
<action name="actionorthinterpRaster">
<property name="text">
<string>orthinterpRaster</string>
</property>
</action>
<action name="actionSARRFPC">
<property name="text">
<string>SARRFPC</string>
</property>
</action>
<action name="actionSimuSARRFPC">
<property name="text">
<string>SimuSARRFPC</string>
</property>
</action>
<action name="actionSimuBPImage">
<property name="text">
<string>SimuBPImage</string>
</property>
</action>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources>
<include location="RasterProcessTool.qrc"/>
</resources>
<connections/>
</ui>

Binary file not shown.

View File

@ -3,6 +3,7 @@
#include <QtCore/QtGlobal>
#include <QtCore/QDebug>
#include <QtCore/QTime>
#include <QRandomGenerator>
namespace LAMPMainWidget {
/*
@ -35,9 +36,11 @@ randomInt(int min, int max) {
return -1;
}
qsrand(static_cast<uint>(QTime{0, 0}.msecsTo(QTime::currentTime())));
return min + qrand() % (max - min);
//qsrand(static_cast<uint>(QTime{0, 0}.msecsTo(QTime::currentTime())));
quint32 seed = static_cast<quint32>(QTime{ 0, 0 }.msecsTo(QTime::currentTime()));
QRandomGenerator seededGenerator(seed);
return min + seededGenerator.bounded(max - min) ;
}
/*

View File

@ -0,0 +1,22 @@
#pragma once
#ifndef LAMPMAINWIDGET_H_
#define LAMPMAINWIDGET_H_
//#include <QtCore/qglobal.h>
//# if defined(LAMPMAINWIDGET_LIB)
//# define LAMPMAINWIDGET_EXPORT Q_DECL_EXPORT
//# else
//# define LAMPMAINWIDGET_EXPORT Q_DECL_IMPORT
//# endif
#ifdef RASTERMAINWIDGETGUI_LIB
#define RASTERMAINWIDGETGUI_EXPORT __declspec(dllexport)
#else
#define RASTERMAINWIDGETGUI_EXPORT __declspec(dllimport)
#endif
#endif // !LAMPMAINWIDGET_H_

View File

@ -0,0 +1,10 @@
#include "LAMPMainWidgetRunProgram.h"
#include "RasterMainWidget.h"
void RasterMainWidgetRun()
{
LAMPMainWidget::RasterMainWidget* w = new LAMPMainWidget::RasterMainWidget;
//RasterProcessTool w;
w->show();
}

View File

@ -0,0 +1,10 @@
#pragma once
#ifndef LAMPMAINWIDGETRUNPROGRAM_H_
#define LAMPMAINWIDGETRUNPROGRAM_H_
#include "LAMPMainWidgetAPI.h"
extern "C" void RASTERMAINWIDGETGUI_EXPORT RasterMainWidgetRun();
#endif

View File

@ -2,29 +2,36 @@
#include <QDesktopServices>
#include <QMessageBox>
#include <QTableWidgetItem>
#include "RasterMainWidget.h"
#include "ui_RasterMainWidget.h"
#include <sponsorwindow.h>
#include <taskwindow.h>
#include <tmslayer.h>
#include <QDockWidget>
#include "ToolBoxWidget.h"
#include "BaseTool.h"
#include "FileOperator.h"
#include <include/gui/mainwindow.h>
#include <include/gui/sponsorwindow.h>
#include <include/gui/taskwindow.h>
#include <include/layer/tmslayer.h>
#pragma execution_character_set("utf-8")
namespace LAMPMainWidget {
QString
MainWindow::tutorialUrl() {
RasterMainWidget::tutorialUrl() {
return QString{R"(https://gitee.com/qizr_admin/LAMPMainWidget)"};
}
QString
MainWindow::srcUrl() {
RasterMainWidget::srcUrl() {
return QString{R"(https://gitee.com/qizr_admin/LAMPMainWidget)"};
}
QHash<QString, MapLayer *>MainWindow::mMaps{};
QHash<QString, MapLayer *>RasterMainWidget::mMaps{};
MainWindow::MainWindow(QWidget *parent)
: mUi(new Ui::MainWindow),
RasterMainWidget::RasterMainWidget(QWidget *parent)
: mUi(new Ui::RasterMainWidget),
mMapConvas(new MapCanvas),
mScaleText(new QLineEdit),
mScaleLabel(new QLabel),
@ -37,18 +44,20 @@ MainWindow::MainWindow(QWidget *parent)
mLayerList(),
mLeftTop(),
mRightBottom() {
mUi->setupUi(dynamic_cast<QMainWindow *>(this));
setupWindow();
setupTaskWindow();
setupLayers();
setupStatusBar();
setupActions();
this->setWindowTitle(tr(u8"LAMP影像处理软件"));
mUi->setupUi(dynamic_cast<QMainWindow*>(this));
setupWindow();
setupTaskWindow();
setupLayers();
setupStatusBar();
setupActions();
setRightToolbox();
mUi->panAction->trigger();
mUi->layerList->setCurrentItem(mLayerList.first());
mUi->panAction->trigger();
mUi->layerList->setCurrentItem(mLayerList.first());
}
MainWindow::~MainWindow() {
RasterMainWidget::~RasterMainWidget() {
delete mUi;
delete mMapConvas;
delete mScaleText;
@ -58,7 +67,7 @@ MainWindow::~MainWindow() {
}
void
MainWindow::setupTaskWindow() {
RasterMainWidget::setupTaskWindow() {
mUi->taskTable->setColumnCount(5);
mUi->taskTable->setHorizontalHeaderLabels(QStringList{
"名称", "范围", "zoom值", "数据源", "进度"
@ -67,7 +76,7 @@ MainWindow::setupTaskWindow() {
}
void
MainWindow::setupActions() {
RasterMainWidget::setupActions() {
mMapActionGroup->addAction(mUi->panAction);
mMapActionGroup->addAction(mUi->zoomInAction);
mMapActionGroup->addAction(mUi->zoomOutAction);
@ -75,32 +84,32 @@ MainWindow::setupActions() {
mUi->selectAction->setEnabled(false);
QObject::connect(mUi->panAction, &QAction::triggered, this, &MainWindow::panHandle);
QObject::connect(mUi->zoomInAction, &QAction::triggered, this, &MainWindow::zoomInHandle);
QObject::connect(mUi->zoomOutAction, &QAction::triggered, this, &MainWindow::zoomOutHandle);
QObject::connect(mUi->tutorialAction, &QAction::triggered, this, &MainWindow::tutorialHanle);
QObject::connect(mUi->srcAction, &QAction::triggered, this, &MainWindow::srcHandle);
QObject::connect(mUi->refreshAction, &QAction::triggered, this, &MainWindow::refreshHandle);
QObject::connect(mUi->sponsorAction, &QAction::triggered, this, &MainWindow::sponsorHandle);
QObject::connect(mUi->selectAction, &QAction::triggered, this, &MainWindow::selectHandle);
QObject::connect(mUi->downloadAction, &QAction::triggered, this, &MainWindow::createDownloadTask);
QObject::connect(mUi->drawlineAction, &QAction::triggered, this, &MainWindow::drawlineHandle);
QObject::connect(mUi->panAction, &QAction::triggered, this, &RasterMainWidget::panHandle);
QObject::connect(mUi->zoomInAction, &QAction::triggered, this, &RasterMainWidget::zoomInHandle);
QObject::connect(mUi->zoomOutAction, &QAction::triggered, this, &RasterMainWidget::zoomOutHandle);
QObject::connect(mUi->tutorialAction, &QAction::triggered, this, &RasterMainWidget::tutorialHanle);
QObject::connect(mUi->srcAction, &QAction::triggered, this, &RasterMainWidget::srcHandle);
QObject::connect(mUi->refreshAction, &QAction::triggered, this, &RasterMainWidget::refreshHandle);
QObject::connect(mUi->sponsorAction, &QAction::triggered, this, &RasterMainWidget::sponsorHandle);
QObject::connect(mUi->selectAction, &QAction::triggered, this, &RasterMainWidget::selectHandle);
QObject::connect(mUi->downloadAction, &QAction::triggered, this, &RasterMainWidget::createDownloadTask);
QObject::connect(mUi->drawlineAction, &QAction::triggered, this, &RasterMainWidget::drawlineHandle);
}
void MainWindow::setupWindow() {
void RasterMainWidget::setupWindow() {
mUi->mapCanvasLayout->addWidget(mMapConvas);
setFixedSize(size());
setWindowFlags(windowFlags() & ~Qt::WindowMaximizeButtonHint);
QObject::connect(mMapConvas, &MapCanvas::zoomChanged, this, &MainWindow::zoomChangedHandle);
QObject::connect(mMapConvas, &MapCanvas::clicked, this, &MainWindow::clickedHandle);
QObject::connect(mMapConvas, &MapCanvas::mapCenterChanged, this, &MainWindow::centerChangedHandle);
QObject::connect(mUi->layerList, &QListWidget::currentItemChanged, this, &MainWindow::layerChanged);
QObject::connect(mUi->leftTopBtn, &QPushButton::clicked, this, &MainWindow::leftTopClickedHandle);
QObject::connect(mUi->rightBottomBtn, &QPushButton::clicked, this, &MainWindow::rightBottomClickedHandle);
QObject::connect(mMapConvas, &MapCanvas::zoomChanged, this, &RasterMainWidget::zoomChangedHandle);
QObject::connect(mMapConvas, &MapCanvas::clicked, this, &RasterMainWidget::clickedHandle);
QObject::connect(mMapConvas, &MapCanvas::mapCenterChanged, this, &RasterMainWidget::centerChangedHandle);
QObject::connect(mUi->layerList, &QListWidget::currentItemChanged, this, &RasterMainWidget::layerChanged);
QObject::connect(mUi->leftTopBtn, &QPushButton::clicked, this, &RasterMainWidget::leftTopClickedHandle);
QObject::connect(mUi->rightBottomBtn, &QPushButton::clicked, this, &RasterMainWidget::rightBottomClickedHandle);
}
void MainWindow::setupStatusBar() {
void RasterMainWidget::setupStatusBar() {
/// 比例尺
mScaleLabel->setText("比例尺");
mScaleText->setText(QString("1cm : %1m").arg(mMapConvas->scale()));
@ -133,7 +142,7 @@ void MainWindow::setupStatusBar() {
mUi->statusbar->addWidget(mCenterText);
}
void MainWindow::setupLayers() {
void RasterMainWidget::setupLayers() {
initMaps();
auto i = mMaps.constBegin();
for (; i != mMaps.constEnd(); ++i) {
@ -142,7 +151,7 @@ void MainWindow::setupLayers() {
}
void
MainWindow::initMaps() {
RasterMainWidget::initMaps() {
if (mMaps.isEmpty()) {
mMaps = QHash<QString, MapLayer *>{
{"Openstreet地图", new TmsLayer(OSTNormalMap, "ostnormalmap", mMapConvas)},
@ -151,7 +160,28 @@ MainWindow::initMaps() {
}
}
QWidget *MainWindow::spacerWiget(int width) const {
void RasterMainWidget::setRightToolbox()
{
this->toolboxDockWidget = new QDockWidget(tr(u8"工具箱"), this);
toolboxDockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
toolBoxWidget = new ToolBoxWidget(this);
toolboxDockWidget->setWidget(toolBoxWidget);
addDockWidget(Qt::LeftDockWidgetArea, toolboxDockWidget);
setDockOptions(QMainWindow::AllowNestedDocks | QMainWindow::AllowTabbedDocks);
this->initToolbox();
}
void RasterMainWidget::initToolbox()
{
QString appPath = QCoreApplication::applicationDirPath();
QString pluginPath = JoinPath(appPath, "Toolbox");
toolBoxWidget->initToolbox(pluginPath);
}
QWidget *RasterMainWidget::spacerWiget(int width) const {
auto spacer = new QWidget{};
spacer->setHidden(true);
spacer->setVisible(true);
@ -161,69 +191,69 @@ QWidget *MainWindow::spacerWiget(int width) const {
}
void
MainWindow::panHandle(bool checked) {
RasterMainWidget::panHandle(bool checked) {
mMapConvas->selectTool(QString{"pan_tool"});
}
void
MainWindow::zoomInHandle(bool checked) {
RasterMainWidget::zoomInHandle(bool checked) {
mMapConvas->selectTool(QString{"zoomin_tool"});
}
void
MainWindow::zoomOutHandle(bool checked) {
RasterMainWidget::zoomOutHandle(bool checked) {
mMapConvas->selectTool(QString{"zoomout_tool"});
}
void MainWindow::drawlineHandle(bool checked)
void RasterMainWidget::drawlineHandle(bool checked)
{
mMapConvas->selectTool("drawline_tool");
}
void
MainWindow::tutorialHanle(bool checked) {
RasterMainWidget::tutorialHanle(bool checked) {
if (!QDesktopServices::openUrl(tutorialUrl())) {
QMessageBox::critical(dynamic_cast<QWidget *>(this), "异常", "未能打开系统浏览器");
}
}
void
MainWindow::srcHandle(bool checked) {
RasterMainWidget::srcHandle(bool checked) {
if (!QDesktopServices::openUrl(srcUrl())) {
QMessageBox::critical(dynamic_cast<QWidget *>(this), "异常", "未能打开系统浏览器");
}
}
void
MainWindow::sponsorHandle(bool checked) {
RasterMainWidget::sponsorHandle(bool checked) {
auto *window = new SponsorWindow(dynamic_cast<QWidget *>(this));
window->exec();
window->deleteLater();
}
void
MainWindow::refreshHandle(bool checked) {
RasterMainWidget::refreshHandle(bool checked) {
mMapConvas->refreshMap();
}
void
MainWindow::selectHandle(bool checked) {
RasterMainWidget::selectHandle(bool checked) {
mMapConvas->selectTool(QString{"select_tool"});
}
void
MainWindow::centerChangedHandle(LAMPMainWidget::PointXY pos) {
RasterMainWidget::centerChangedHandle(LAMPMainWidget::PointXY pos) {
mCenterText->setText(QString("lon:%1, lat:%2").arg(pos.x()).arg(pos.y()));
}
void
MainWindow::zoomChangedHandle(int zoom) {
RasterMainWidget::zoomChangedHandle(int zoom) {
mZoomText->setText(QString("%1").arg(zoom));
mScaleText->setText(QString("1cm:%1m").arg(this->mMapConvas->scale()));
}
void
MainWindow::clickedHandle(LAMPMainWidget::PointXY pos) {
RasterMainWidget::clickedHandle(LAMPMainWidget::PointXY pos) {
QString posText = QString("%1, %2").arg(pos.x()).arg(pos.y());
if (mSetLeftTop) {
mUi->leftTopText->setText(posText);
@ -235,19 +265,19 @@ MainWindow::clickedHandle(LAMPMainWidget::PointXY pos) {
}
void
MainWindow::leftTopClickedHandle() {
RasterMainWidget::leftTopClickedHandle() {
mSetLeftTop = true;
mUi->selectAction->trigger();
}
void
MainWindow::rightBottomClickedHandle() {
RasterMainWidget::rightBottomClickedHandle() {
mSetLeftTop = false;
mUi->selectAction->trigger();
}
void
MainWindow::layerChanged(QListWidgetItem *current, QListWidgetItem *previous) {
RasterMainWidget::layerChanged(QListWidgetItem *current, QListWidgetItem *previous) {
auto mapName = current->text();
if (!mMaps.contains(mapName)) {
qDebug() << mapName << "不支持";
@ -275,29 +305,33 @@ MainWindow::layerChanged(QListWidgetItem *current, QListWidgetItem *previous) {
}
void
MainWindow::createDownloadTask() {
RasterMainWidget::createDownloadTask() {
auto taskWindow = new TaskWindow(dynamic_cast<QWidget *>(this));
taskWindow->exec();
taskWindow->deleteLater();
}
void
MainWindow::changeTaskTable(int row, int col, QString text) {
RasterMainWidget::changeTaskTable(int row, int col, QString text) {
mUi->taskTable->takeItem(row, col);
mUi->taskTable->setItem(row, col, new QTableWidgetItem(text));
}
void MainWindow::on_drawArea_triggered()
void RasterMainWidget::on_drawArea_triggered()
{
mMapConvas->selectTool("drawarea_tool");
}
void MainWindow::on_addPlaneaction_triggered()
void RasterMainWidget::on_addPlaneaction_triggered()
{
mMapConvas->selectTool("addplane_tool");
}
QTableWidget* RasterMainWidget::getTaskTable()
{
return this->mUi->taskTable;
}
}

View File

@ -0,0 +1,109 @@
#pragma once
#include "LAMPMainWidgetAPI.h"
#include <QMainWindow>
#include <QVector>
#include <QLabel>
#include <QLineEdit>
#include <QWidget>
#include <QActionGroup>
#include <QListWidgetItem>
#include <QHash>
#include <QTableWidget>
#include <mapcanvas.h>
#include <maplayer.h>
#include "QApplicationSettingManager.h"
#include "ToolBoxWidget.h"
namespace Ui {
class RasterMainWidget;
}
namespace LAMPMainWidget {
class RasterMainWidget : public QMainWindow {
Q_OBJECT
friend class TaskWindow;
friend class DownloadTask;
public slots:
void changeTaskTable(int row, int col, QString text);
public:
RasterMainWidget(QWidget* parent = nullptr);
~RasterMainWidget() override;
protected:
void setupWindow();
void setupActions();
void setupStatusBar();
void setupLayers();
void setupTaskWindow();
void initMaps();
void setRightToolbox();
void initToolbox();
protected:
/// 各处处理函数
void panHandle(bool checked);
void zoomInHandle(bool checked);
void zoomOutHandle(bool checked);
void drawlineHandle(bool checked);
void tutorialHanle(bool checked);
void srcHandle(bool checked);
void sponsorHandle(bool checked);
void refreshHandle(bool checked);
void selectHandle(bool checked);
void zoomChangedHandle(int zoom);
void clickedHandle(PointXY pos);
void centerChangedHandle(PointXY pos);
void leftTopClickedHandle();
void rightBottomClickedHandle();
void createDownloadTask();
void layerChanged(QListWidgetItem* current, QListWidgetItem* previous);
private:
QWidget* spacerWiget(int width) const;
protected:
static QString tutorialUrl();
static QString srcUrl();
private slots:
void on_drawArea_triggered();
void on_addPlaneaction_triggered();
private:
Ui::RasterMainWidget* mUi;
MapCanvas* mMapConvas;
QLineEdit* mScaleText;
QLabel* mScaleLabel;
QLineEdit* mCenterText;
QLabel* mCenterLabel;
QLineEdit* mZoomText;
QLabel* mZoomLabel;
QActionGroup* mMapActionGroup;
bool mSetLeftTop;
QVector<QListWidgetItem*> mLayerList;
PointXY mLeftTop;
PointXY mRightBottom;
QDockWidget* toolboxDockWidget;
ToolBoxWidget* toolBoxWidget;
private:
static QHash<QString, MapLayer*> mMaps;
public:
QTableWidget* getTaskTable();
};
}

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<class>RasterMainWidget</class>
<widget class="QMainWindow" name="RasterMainWidget">
<property name="enabled">
<bool>true</bool>
</property>
@ -9,8 +9,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>1450</width>
<height>1000</height>
<width>810</width>
<height>637</height>
</rect>
</property>
<property name="sizePolicy">
@ -202,8 +202,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>1450</width>
<height>23</height>
<width>810</width>
<height>22</height>
</rect>
</property>
<widget class="QMenu" name="projectMenu">
@ -298,7 +298,7 @@
<bool>true</bool>
</property>
<property name="icon">
<iconset theme="default" resource="../../resources/res.qrc">
<iconset theme="default" resource="../resource/res.qrc">
<normaloff>:/themes/mActionPan</normaloff>:/themes/mActionPan</iconset>
</property>
<property name="text">
@ -313,7 +313,7 @@
<bool>true</bool>
</property>
<property name="icon">
<iconset theme="default" resource="../../resources/res.qrc">
<iconset theme="default" resource="../resource/res.qrc">
<normaloff>:/themes/mActionZoomIn</normaloff>:/themes/mActionZoomIn</iconset>
</property>
<property name="text">
@ -328,7 +328,7 @@
<bool>true</bool>
</property>
<property name="icon">
<iconset theme="default" resource="../../resources/res.qrc">
<iconset theme="default" resource="../resource/res.qrc">
<normaloff>:/themes/mActionZoomOut</normaloff>:/themes/mActionZoomOut</iconset>
</property>
<property name="text">
@ -340,7 +340,7 @@
</action>
<action name="refreshAction">
<property name="icon">
<iconset theme="default" resource="../../resources/res.qrc">
<iconset theme="default" resource="../resource/res.qrc">
<normaloff>:/themes/mActionRefresh</normaloff>:/themes/mActionRefresh</iconset>
</property>
<property name="text">
@ -352,7 +352,7 @@
</action>
<action name="downloadAction">
<property name="icon">
<iconset theme="default" resource="../../resources/res.qrc">
<iconset theme="default" resource="../resource/res.qrc">
<normaloff>:/themes/mActionDownload</normaloff>:/themes/mActionDownload</iconset>
</property>
<property name="text">
@ -367,7 +367,7 @@
<bool>true</bool>
</property>
<property name="icon">
<iconset theme="default" resource="../../resources/res.qrc">
<iconset theme="default" resource="../resource/res.qrc">
<normaloff>:/themes/mActionSelect</normaloff>:/themes/mActionSelect</iconset>
</property>
<property name="text">
@ -404,7 +404,7 @@
<bool>true</bool>
</property>
<property name="icon">
<iconset resource="../../resources/res.qrc">
<iconset resource="../resource/res.qrc">
<normaloff>:/plane-red.png</normaloff>:/plane-red.png</iconset>
</property>
<property name="text">
@ -413,7 +413,8 @@
</action>
</widget>
<resources>
<include location="../../resources/res.qrc"/>
<include location="../RasterMainWidgetGUI.qrc"/>
<include location="../resource/res.qrc"/>
</resources>
<connections/>
</ui>

View File

@ -1,7 +1,7 @@
//#include <QDebug>
//#include <proj_api.h>
//
//#include <include/crs.h>
//#include <crs.h>
//#pragma execution_character_set("utf-8")
//
//namespace LAMPMainWidget {
@ -81,7 +81,7 @@
#include <QDebug>
#include <proj.h>
#include <include/crs.h>
#include <crs.h>
#pragma execution_character_set("utf-8")
namespace LAMPMainWidget {

View File

@ -3,7 +3,7 @@
#include <QRectF>
#include <QString>
#include <include/pointxy.h>
#include <pointxy.h>
namespace LAMPMainWidget
{

View File

@ -1,5 +1,5 @@
#include <QtCore/QString>
#include <include/provider/tms/gaodenormalprovider.h>
#include <gaodenormalprovider.h>
#pragma execution_character_set("utf-8")
namespace LAMPMainWidget {

View File

@ -3,9 +3,9 @@
#include <QtCore/QSize>
#include <QtCore/QString>
#include <include/pointxy.h>
#include <include/provider/tmsprovider.h>
#include <include/utils/LAMPMainWidget.h>
#include <pointxy.h>
#include <tmsprovider.h>
#include <LAMPMainWidget.h>
namespace LAMPMainWidget {

View File

@ -2,7 +2,7 @@
#include <QPainter>
#include <QSize>
#include <include/utils/imgwriter.h>
#include <imgwriter.h>
#pragma execution_character_set("utf-8")
namespace LAMPMainWidget

View File

@ -1,5 +1,5 @@
#include "maparea.h"
#include "include/maplayer.h"
#include "maplayer.h"
#include <QPainter>
#include <QDateTime>
#pragma execution_character_set("utf-8")

View File

@ -1,5 +1,5 @@
#include "mapautoplane.h"
#include "include/maplayer.h"
#include "maplayer.h"
#include <QRandomGenerator>
#include <QDebug>
#pragma execution_character_set("utf-8")

View File

@ -1,15 +1,15 @@
#include <QDebug>
#include <QTimer>
#include <include/maptool.h>
#include <include/maplayer.h>
#include <include/tools/maptoolpan.h>
#include <include/tools/maptoolselect.h>
#include <include/tools/maptoolzoomin.h>
#include <include/tools/maptoolzoomout.h>
#include <include/tools/maptooldrawline.h>
#include <include/tools/maptooldrawarea.h>
#include <include/tools/maptooladdplane.h>
#include <maptool.h>
#include <maplayer.h>
#include <maptoolpan.h>
#include <maptoolselect.h>
#include <maptoolzoomin.h>
#include <maptoolzoomout.h>
#include <maptooldrawline.h>
#include <maptooldrawarea.h>
#include <maptooladdplane.h>
#include "mapautoplane.h"
#pragma execution_character_set("utf-8")
@ -77,7 +77,7 @@ MapCanvas::mouseReleaseEvent(QMouseEvent *event) {
void
MapCanvas::wheelEvent(QWheelEvent *event) {
int delta = event->delta() / 120;
int delta = event->angleDelta().y() / 120;
int zoom = zoomValue();
zoom += delta;
setZoomValue(zoom);

View File

@ -14,10 +14,10 @@
#include <QMarginsF>
#include <QHash>
#include <include/crs.h>
#include <include/pointxy.h>
#include <include/mapcanvasmap.h>
#include <include/maptool.h>
#include <crs.h>
#include <pointxy.h>
#include <mapcanvasmap.h>
#include <maptool.h>
namespace LAMPMainWidget {
class MapLayer;

View File

@ -2,9 +2,9 @@
#include <QtGui/QPainter>
#include <QtWidgets/QGraphicsSceneMouseEvent>
#include <include/mapcanvasmap.h>
#include <include/mapcanvas.h>
#include <include/maplayer.h>
#include <mapcanvasmap.h>
#include <mapcanvas.h>
#include <maplayer.h>
#include <QDateTime>
#pragma execution_character_set("utf-8")

View File

@ -1,7 +1,7 @@
#include <QObject>
#include <include/maplayer.h>
#include <include/mapcanvas.h>
#include <maplayer.h>
#include <mapcanvas.h>
#include <QDateTime>
#pragma execution_character_set("utf-8")

View File

@ -4,9 +4,9 @@
#include <QtCore/QDebug>
#include <QtCore/QRectF>
#include <include/crs.h>
#include <include/layerprovider.h>
#include <include/mapcanvasmap.h>
#include <crs.h>
#include <layerprovider.h>
#include <mapcanvasmap.h>
namespace LAMPMainWidget {
class MapCanvas;

View File

@ -1,5 +1,5 @@
#include "mapline.h"
#include "include/maplayer.h"
#include "maplayer.h"
#include <QPainter>
#include <QDebug>
#pragma execution_character_set("utf-8")

View File

@ -1,5 +1,5 @@
#include <include/maptool.h>
#include <include/mapcanvas.h>
#include <maptool.h>
#include <mapcanvas.h>
#pragma execution_character_set("utf-8")
namespace LAMPMainWidget {

View File

@ -1,6 +1,6 @@
#include "include/tools/maptooladdplane.h"
#include "include/mapcanvas.h"
#include "include/maplayer.h"
#include "maptooladdplane.h"
#include "mapcanvas.h"
#include "maplayer.h"
#include "mapautoplane.h"
#pragma execution_character_set("utf-8")

View File

@ -1,6 +1,6 @@
#ifndef MAPTOOLADDPLANE_H
#define MAPTOOLADDPLANE_H
#include "include/maptool.h"
#include "maptool.h"
#include <QList>
namespace LAMPMainWidget{
class MapAutoplane;

View File

@ -1,7 +1,7 @@
#include "include/tools/maptooldrawarea.h"
#include "include/mapcanvas.h"
#include "maptooldrawarea.h"
#include "mapcanvas.h"
#include "maparea.h"
#include "include/maplayer.h"
#include "maplayer.h"
#pragma execution_character_set("utf-8")
void LAMPMainWidget::MapToolDrawarea::execute(QMouseEvent *event)

View File

@ -1,6 +1,6 @@
#ifndef MAPTOOLDRAWAREA_H
#define MAPTOOLDRAWAREA_H
#include <include/maptool.h>
#include <maptool.h>
namespace LAMPMainWidget{
class MapCanvas;
class Maparea;

View File

@ -1,9 +1,9 @@
#include "include/tools/maptooldrawline.h"
#include "maptooldrawline.h"
#include <QDebug>
#include "mapline.h"
#include "include/mapcanvas.h"
#include "include/maplayer.h"
#include "mapcanvas.h"
#include "maplayer.h"
#pragma execution_character_set("utf-8")
void LAMPMainWidget::MapToolDrawline::execute(QMouseEvent *event)

View File

@ -2,7 +2,7 @@
#define MAPTOOLDRAWLINE_H
#include <include/maptool.h>
#include <maptool.h>
namespace LAMPMainWidget {
class Mapline;

View File

@ -1,7 +1,7 @@
#include <QtCore/QEvent>
#include <include/tools/maptoolpan.h>
#include <include/mapcanvas.h>
#include <maptoolpan.h>
#include <mapcanvas.h>
#pragma execution_character_set("utf-8")
namespace LAMPMainWidget {

View File

@ -4,8 +4,8 @@
#include <QtGui/QMouseEvent>
#include <QtCore/QString>
#include <include/mapcanvas.h>
#include <include/maptool.h>
#include <mapcanvas.h>
#include <maptool.h>
namespace LAMPMainWidget {
/**

View File

@ -1,6 +1,6 @@
#include <QString>
#include <include/tools/maptoolselect.h>
#include <maptoolselect.h>
#pragma execution_character_set("utf-8")
namespace LAMPMainWidget

View File

@ -4,8 +4,8 @@
#include <QtGui/QMouseEvent>
#include <QtCore/QString>
#include <include/mapcanvas.h>
#include <include/maptool.h>
#include <mapcanvas.h>
#include <maptool.h>
namespace LAMPMainWidget {
/**

View File

@ -1,8 +1,8 @@
#include <QtCore/QString>
#include <QtCore/QEvent>
#include <include/tools/maptoolzoomin.h>
#include <include/tools/maptoolzoomin.h>
#include <maptoolzoomin.h>
#include <maptoolzoomin.h>
#pragma execution_character_set("utf-8")
namespace LAMPMainWidget {

View File

@ -4,8 +4,8 @@
#include <QtGui/QMouseEvent>
#include <QtCore/QString>
#include <include/mapcanvas.h>
#include <include/maptool.h>
#include <mapcanvas.h>
#include <maptool.h>
namespace LAMPMainWidget {
/**

View File

@ -1,7 +1,7 @@
#include <QtCore/QString>
#include <include/tools/maptoolzoomout.h>
#include <include/tools/maptoolzoomout.h>
#include <maptoolzoomout.h>
#include <maptoolzoomout.h>
#pragma execution_character_set("utf-8")
namespace LAMPMainWidget

View File

@ -4,8 +4,8 @@
#include <QtGui/QMouseEvent>
#include <QtCore/QString>
#include <include/mapcanvas.h>
#include <include/maptool.h>
#include <mapcanvas.h>
#include <maptool.h>
namespace LAMPMainWidget {
/**

View File

@ -1,6 +1,6 @@
#include <QtCore/QDebug>
#include <include/utils/network.h>
#include <network.h>
#pragma execution_character_set("utf-8")
namespace LAMPMainWidget {

View File

@ -1,5 +1,5 @@
#include <QtCore/QString>
#include <include/provider/tms/ostnormalprovider.h>
#include <ostnormalprovider.h>
#pragma execution_character_set("utf-8")
namespace LAMPMainWidget {

View File

@ -2,9 +2,9 @@
#include <QtCore/QSize>
#include <include/pointxy.h>
#include <include/provider/tmsprovider.h>
#include <include/utils/LAMPMainWidget.h>
#include <pointxy.h>
#include <tmsprovider.h>
#include <LAMPMainWidget.h>
namespace LAMPMainWidget {

View File

@ -2,8 +2,8 @@
#include <QtCore/QString>
#include <QtCore/QDebug>
#include <include/pointxy.h>
#include <include/utils/LAMPMainWidget.h>
#include <pointxy.h>
#include <LAMPMainWidget.h>
#pragma execution_character_set("utf-8")
namespace LAMPMainWidget {

View File

@ -2,7 +2,7 @@
#include <QtWidgets/QMessageBox>
#include <QtCore/QDebug>
#include <include/gui/sponsorwindow.h>
#include <sponsorwindow.h>
#pragma execution_character_set("utf-8")
SponsorWindow::SponsorWindow(QWidget *parent) :

View File

@ -5,12 +5,14 @@
#include <QHash>
#include <QImage>
#include <QThreadPool>
#include <QTableWidgetItem>
#include "ui_taskwindow.h"
#include <include/gui/taskwindow.h>
#include <include/layer/tmslayer.h>
#include <include/utils/network.h>
#include <include/utils/imgwriter.h>
#include <include/provider/tmsprovider.h>
#include <taskwindow.h>
#include <tmslayer.h>
#include <network.h>
#include <imgwriter.h>
#include <tmsprovider.h>
#pragma execution_character_set("utf-8")
namespace LAMPMainWidget
@ -97,7 +99,7 @@ namespace LAMPMainWidget
TaskWindow::TaskWindow(QWidget* parent)
: mUi(new Ui::TaskWindow),
mParent(dynamic_cast<MainWindow *>(parent)),
mParent(dynamic_cast<RasterMainWidget *>(parent)),
mSavePath(),
QDialog(parent)
{
@ -150,8 +152,11 @@ namespace LAMPMainWidget
auto savePath = QDir::toNativeSeparators(mSavePath);
auto extent = QRectF(QPointF(mParent->mLeftTop.x(), mParent->mLeftTop.y()),
QPointF(mParent->mRightBottom.x(), mParent->mRightBottom.y()));
auto tileInfo = TaskInfo{mTaskName, savePath, extent,
mZoomValue, mParent->mMapConvas->currentLayer(),mParent->mUi->taskTable};
auto tileInfo = TaskInfo{ mTaskName, savePath, extent,
mZoomValue,
mParent->mMapConvas->currentLayer(),
mParent->getTaskTable()
/*mParent->mUi->taskTable*/};
auto task = new DownloadTask(tileInfo);
QThreadPool::globalInstance()->start(task);

View File

@ -1,14 +1,14 @@
#pragma once
#include "LAMPMainWidgetAPI.h"
#include "ui_taskwindow.h"
#include <QDialog>
#include <QWidget>
#include <QString>
#include <QRunnable>
#include <include/gui/mainwindow.h>
#include <include/layerprovider.h>
#include <include/pointxy.h>
#include "RasterMainWidget.h"
#include "layerprovider.h"
#include "pointxy.h"
namespace Ui{
class TaskWindow;
@ -66,7 +66,7 @@ class TaskWindow: public QDialog{
private:
Ui::TaskWindow *mUi;
MainWindow *mParent;
RasterMainWidget *mParent;
QString mSavePath;
QString mTaskName;

View File

@ -3,9 +3,9 @@
#include <QObject>
#include <QHash>
#include <include/layer/tmslayer.h>
#include <include/provider/tmsprovider.h>
#include <include/utils/LAMPMainWidget.h>
#include <tmslayer.h>
#include <tmsprovider.h>
#include <LAMPMainWidget.h>
#pragma execution_character_set("utf-8")
namespace LAMPMainWidget {

View File

@ -3,10 +3,10 @@
#include <QString>
#include <QRectF>
#include <include/maplayer.h>
#include <include/mapcanvas.h>
#include <include/crs/webmercator.h>
#include <include/provider/tms/tmsproviderfactory.h>
#include <maplayer.h>
#include <mapcanvas.h>
#include <webmercator.h>
#include <tmsproviderfactory.h>
namespace LAMPMainWidget
{

View File

@ -5,8 +5,8 @@
#include <QSqlQuery>
#include <QSqlError>
#include <include/provider/tmsprovider.h>
#include <include/utils/network.h>
#include <tmsprovider.h>
#include <network.h>
#pragma execution_character_set("utf-8")
namespace LAMPMainWidget

View File

@ -10,8 +10,8 @@
#include <QObject>
#include <QSqlDatabase>
#include <include/layerprovider.h>
#include <include/pointxy.h>
#include <layerprovider.h>
#include <pointxy.h>
namespace LAMPMainWidget
{

View File

@ -1,6 +1,6 @@
#include <include/provider/tms/tmsproviderfactory.h>
#include <include/provider/tms/ostnormalprovider.h>
#include <include/provider/tms/gaodenormalprovider.h>
#include <tmsproviderfactory.h>
#include <ostnormalprovider.h>
#include <gaodenormalprovider.h>
#pragma execution_character_set("utf-8")
namespace LAMPMainWidget {

View File

@ -2,7 +2,7 @@
#include <QHash>
#include <include/layerprovider.h>
#include <layerprovider.h>
namespace LAMPMainWidget {
/**

View File

@ -1,5 +1,5 @@
#include <include/crs.h>
#include <include/crs/webmercator.h>
#include <crs.h>
#include <webmercator.h>
#pragma execution_character_set("utf-8")
namespace LAMPMainWidget

Some files were not shown because too many files have changed in this diff Show More