From 32a97e2d2f8f87913d5ff2d35b31b29e8310b87b Mon Sep 17 00:00:00 2001
From: eazzy <1044745821@qq.com>
Date: Fri, 17 May 2024 11:37:43 +0800
Subject: [PATCH] client2
---
src/Client/CasualtySightPlus.pro | 44 ++
src/Client/CasualtySightPlus.pro.user | 268 +++++++++++
src/Client/DogDatabase.cpp | 212 +++++++++
src/Client/DogDatabase.h | 104 +++++
src/Client/InjuryAnalysisUI.cpp | 116 +++++
src/Client/InjuryAnalysisUI.h | 36 ++
src/Client/InjuryAnalysisUI.ui | 236 ++++++++++
src/Client/InjuryDatabase.cpp | 232 ++++++++++
src/Client/InjuryDatabase.h | 98 ++++
src/Client/UAVDatabase.cpp | 212 +++++++++
src/Client/UAVDatabase.h | 110 +++++
.../DogDatabase.cpp.9C248469BABED4FE.idx | Bin 0 -> 8476 bytes
.../index/DogDatabase.h.697AD127290AAE98.idx | Bin 0 -> 2966 bytes
.../index/QScrollArea.BE202BFE73F61A75.idx | Bin 0 -> 214 bytes
.../UAVDatabase.cpp.ACFF5085AE65CCEE.idx | Bin 0 -> 8476 bytes
.../index/UAVDatabase.h.388C4D121CCA039E.idx | Bin 0 -> 3104 bytes
.../index/qscrollarea.h.F2655CAC28E08B21.idx | Bin 0 -> 2928 bytes
.../debug/DogDatabase.o | Bin 0 -> 1242618 bytes
.../debug/UAVDatabase.o | Bin 0 -> 1242618 bytes
src/Client/guidingui.cpp | 265 +++++++++++
src/Client/guidingui.h | 50 +++
src/Client/guidingui.ui | 420 ++++++++++++++++++
src/Client/injurydisiplayui.cpp | 55 +++
src/Client/injurydisiplayui.h | 24 +
src/Client/injurydisiplayui.ui | 19 +
src/Client/main.cpp | 26 ++
src/Client/res.qrc | 37 ++
src/Client/res/html/map.html | 207 +++++++++
src/Client/res/icon/green.png | Bin 0 -> 8162 bytes
src/Client/res/icon/red.png | Bin 0 -> 11321 bytes
src/Client/res/icon/yellow.png | Bin 0 -> 10426 bytes
src/Client/res/image/MapBackGround.png | Bin 0 -> 13557 bytes
src/Client/res/image/UAV.svg | 1 +
src/Client/res/image/health.png | Bin 0 -> 1063 bytes
src/Client/res/image/health.png.svg | 1 +
src/Client/res/image/health.svg | 1 +
src/Client/res/image/info.png | Bin 0 -> 703 bytes
src/Client/res/image/infomation.svg | 1 +
src/Client/res/image/location.png | Bin 0 -> 726 bytes
src/Client/res/image/location.svg | 1 +
src/Client/res/image/logo.png | Bin 0 -> 22372 bytes
src/Client/res/image/logo_backgroundless.png | Bin 0 -> 25036 bytes
src/Client/res/image/map.png | Bin 0 -> 905 bytes
src/Client/res/image/map.svg | 1 +
src/Client/res/image/mapbtn.svg | 1 +
src/Client/res/image/robot.png | Bin 0 -> 1084 bytes
src/Client/res/image/robotbtn.svg | 1 +
src/Client/res/image/soldier.png | Bin 0 -> 1027 bytes
src/Client/res/image/soldier.svg | 1 +
src/Client/res/image/tab.png | Bin 0 -> 299 bytes
src/Client/res/image/tab.svg | 1 +
src/Client/res/image/uav.png | Bin 0 -> 708 bytes
src/Client/res/qml/MAP.qml | 154 +++++++
src/Client/res/qml/MAP2.qml | 38 ++
src/Client/res/qml/MAP3.qml | 375 ++++++++++++++++
src/Client/res/qml/test.qml | 41 ++
56 files changed, 3389 insertions(+)
create mode 100644 src/Client/CasualtySightPlus.pro
create mode 100644 src/Client/CasualtySightPlus.pro.user
create mode 100644 src/Client/DogDatabase.cpp
create mode 100644 src/Client/DogDatabase.h
create mode 100644 src/Client/InjuryAnalysisUI.cpp
create mode 100644 src/Client/InjuryAnalysisUI.h
create mode 100644 src/Client/InjuryAnalysisUI.ui
create mode 100644 src/Client/InjuryDatabase.cpp
create mode 100644 src/Client/InjuryDatabase.h
create mode 100644 src/Client/UAVDatabase.cpp
create mode 100644 src/Client/UAVDatabase.h
create mode 100644 src/Client/build/Desktop_Qt_6_7_0_MinGW_64_bit-Debug/.qtc_clangd/.cache/clangd/index/DogDatabase.cpp.9C248469BABED4FE.idx
create mode 100644 src/Client/build/Desktop_Qt_6_7_0_MinGW_64_bit-Debug/.qtc_clangd/.cache/clangd/index/DogDatabase.h.697AD127290AAE98.idx
create mode 100644 src/Client/build/Desktop_Qt_6_7_0_MinGW_64_bit-Debug/.qtc_clangd/.cache/clangd/index/QScrollArea.BE202BFE73F61A75.idx
create mode 100644 src/Client/build/Desktop_Qt_6_7_0_MinGW_64_bit-Debug/.qtc_clangd/.cache/clangd/index/UAVDatabase.cpp.ACFF5085AE65CCEE.idx
create mode 100644 src/Client/build/Desktop_Qt_6_7_0_MinGW_64_bit-Debug/.qtc_clangd/.cache/clangd/index/UAVDatabase.h.388C4D121CCA039E.idx
create mode 100644 src/Client/build/Desktop_Qt_6_7_0_MinGW_64_bit-Debug/.qtc_clangd/.cache/clangd/index/qscrollarea.h.F2655CAC28E08B21.idx
create mode 100644 src/Client/build/Desktop_Qt_6_7_0_MinGW_64_bit-Debug/debug/DogDatabase.o
create mode 100644 src/Client/build/Desktop_Qt_6_7_0_MinGW_64_bit-Debug/debug/UAVDatabase.o
create mode 100644 src/Client/guidingui.cpp
create mode 100644 src/Client/guidingui.h
create mode 100644 src/Client/guidingui.ui
create mode 100644 src/Client/injurydisiplayui.cpp
create mode 100644 src/Client/injurydisiplayui.h
create mode 100644 src/Client/injurydisiplayui.ui
create mode 100644 src/Client/main.cpp
create mode 100644 src/Client/res.qrc
create mode 100644 src/Client/res/html/map.html
create mode 100644 src/Client/res/icon/green.png
create mode 100644 src/Client/res/icon/red.png
create mode 100644 src/Client/res/icon/yellow.png
create mode 100644 src/Client/res/image/MapBackGround.png
create mode 100644 src/Client/res/image/UAV.svg
create mode 100644 src/Client/res/image/health.png
create mode 100644 src/Client/res/image/health.png.svg
create mode 100644 src/Client/res/image/health.svg
create mode 100644 src/Client/res/image/info.png
create mode 100644 src/Client/res/image/infomation.svg
create mode 100644 src/Client/res/image/location.png
create mode 100644 src/Client/res/image/location.svg
create mode 100644 src/Client/res/image/logo.png
create mode 100644 src/Client/res/image/logo_backgroundless.png
create mode 100644 src/Client/res/image/map.png
create mode 100644 src/Client/res/image/map.svg
create mode 100644 src/Client/res/image/mapbtn.svg
create mode 100644 src/Client/res/image/robot.png
create mode 100644 src/Client/res/image/robotbtn.svg
create mode 100644 src/Client/res/image/soldier.png
create mode 100644 src/Client/res/image/soldier.svg
create mode 100644 src/Client/res/image/tab.png
create mode 100644 src/Client/res/image/tab.svg
create mode 100644 src/Client/res/image/uav.png
create mode 100644 src/Client/res/qml/MAP.qml
create mode 100644 src/Client/res/qml/MAP2.qml
create mode 100644 src/Client/res/qml/MAP3.qml
create mode 100644 src/Client/res/qml/test.qml
diff --git a/src/Client/CasualtySightPlus.pro b/src/Client/CasualtySightPlus.pro
new file mode 100644
index 0000000..85ecb53
--- /dev/null
+++ b/src/Client/CasualtySightPlus.pro
@@ -0,0 +1,44 @@
+QT += core gui
+QT += core gui quickwidgets positioning location
+QT += multimedia
+QT += multimediawidgets
+QT += webenginewidgets webchannel
+QT += sql
+
+greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
+
+CONFIG += c++17
+
+# You can make your code fail to compile if it uses deprecated APIs.
+# In order to do so, uncomment the following line.
+#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
+
+SOURCES += \
+ DogDatabase.cpp \
+ InjuryAnalysisUI.cpp \
+ InjuryDatabase.cpp \
+ UAVDatabase.cpp \
+ injurydisiplayui.cpp \
+ main.cpp \
+ guidingui.cpp
+
+HEADERS += \
+ DogDatabase.h \
+ InjuryAnalysisUI.h \
+ InjuryDatabase.h \
+ UAVDatabase.h \
+ guidingui.h \
+ injurydisiplayui.h
+
+FORMS += \
+ InjuryAnalysisUI.ui \
+ guidingui.ui \
+ injurydisiplayui.ui
+
+# Default rules for deployment.
+qnx: target.path = /tmp/$${TARGET}/bin
+else: unix:!android: target.path = /opt/$${TARGET}/bin
+!isEmpty(target.path): INSTALLS += target
+
+RESOURCES += \
+ res.qrc
diff --git a/src/Client/CasualtySightPlus.pro.user b/src/Client/CasualtySightPlus.pro.user
new file mode 100644
index 0000000..301a142
--- /dev/null
+++ b/src/Client/CasualtySightPlus.pro.user
@@ -0,0 +1,268 @@
+
+
+
+
+
+ EnvironmentId
+ {c17bc554-7aa8-48e6-9607-c4ecd694950b}
+
+
+ ProjectExplorer.Project.ActiveTarget
+ 0
+
+
+ ProjectExplorer.Project.EditorSettings
+
+ true
+ false
+ true
+
+ Cpp
+
+ CppGlobal
+
+
+
+ QmlJS
+
+ QmlJSGlobal
+
+
+ 2
+ UTF-8
+ false
+ 4
+ false
+ 80
+ true
+ true
+ 1
+ 0
+ false
+ true
+ false
+ 2
+ true
+ true
+ 0
+ 8
+ true
+ false
+ 1
+ true
+ true
+ true
+ *.md, *.MD, Makefile
+ false
+ true
+ true
+
+
+
+ ProjectExplorer.Project.PluginSettings
+
+
+ true
+ false
+ true
+ true
+ true
+ true
+
+
+ 0
+ true
+
+ true
+ true
+ Builtin.DefaultTidyAndClazy
+ 6
+ true
+
+
+
+ true
+
+
+
+
+ ProjectExplorer.Project.Target.0
+
+ Desktop
+ Desktop Qt 6.7.0 MSVC2019 64bit
+ Desktop Qt 6.7.0 MSVC2019 64bit
+ qt.qt6.670.win64_msvc2019_64_kit
+ 1
+ 0
+ 0
+
+ 0
+ D:\PROJECT\QT\CasualtySightPlus\build\Desktop_Qt_6_7_0_MSVC2019_64bit-Debug
+ D:/PROJECT/QT/CasualtySightPlus/build/Desktop_Qt_6_7_0_MSVC2019_64bit-Debug
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ 构建
+ 构建
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ 清除
+ 清除
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+ false
+
+ Debug
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 2
+
+
+ D:\PROJECT\QT\CasualtySightPlus\build\Desktop_Qt_6_7_0_MSVC2019_64bit-Release
+ D:/PROJECT/QT/CasualtySightPlus/build/Desktop_Qt_6_7_0_MSVC2019_64bit-Release
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ 构建
+ 构建
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ 清除
+ 清除
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+ false
+
+ Release
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 0
+ 0
+
+
+ 0
+ D:\PROJECT\QT\CasualtySightPlus\build\Desktop_Qt_6_7_0_MSVC2019_64bit-Profile
+ D:/PROJECT/QT/CasualtySightPlus/build/Desktop_Qt_6_7_0_MSVC2019_64bit-Profile
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ 构建
+ 构建
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ 清除
+ 清除
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+ false
+
+ Profile
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 0
+ 0
+ 0
+
+ 3
+
+
+ 0
+ 部署
+ 部署
+ ProjectExplorer.BuildSteps.Deploy
+
+ 1
+
+ false
+ ProjectExplorer.DefaultDeployConfiguration
+
+ 1
+
+ true
+ true
+ 0
+ true
+
+ 2
+
+ false
+ -e cpu-cycles --call-graph "dwarf,4096" -F 250
+
+ Qt4ProjectManager.Qt4RunConfiguration:D:/PROJECT/QT/CasualtySightPlus/CasualtySightPlus.pro
+ D:/PROJECT/QT/CasualtySightPlus/CasualtySightPlus.pro
+ false
+ true
+ true
+ true
+ D:/PROJECT/QT/CasualtySightPlus/build/Desktop_Qt_6_7_0_MSVC2019_64bit-Release
+
+ 1
+
+
+
+ ProjectExplorer.Project.TargetCount
+ 1
+
+
+ ProjectExplorer.Project.Updater.FileVersion
+ 22
+
+
+ Version
+ 22
+
+
diff --git a/src/Client/DogDatabase.cpp b/src/Client/DogDatabase.cpp
new file mode 100644
index 0000000..070966b
--- /dev/null
+++ b/src/Client/DogDatabase.cpp
@@ -0,0 +1,212 @@
+#include "DogDatabase.h"
+
+DogDatabase *DogDatabase::getInstance()
+{
+ static DogDatabase db;
+ return &db;
+}
+
+DogDatabase::~DogDatabase()
+{
+ close();
+}
+
+DogDatabase::DogDatabase()
+{
+ m_sqlDb = QSqlDatabase::addDatabase("QMYSQL");
+}
+
+//添加记录
+bool DogDatabase::add(const Dog &data)
+{
+<<<<<<< HEAD:src/Client2/fly_land/DogDatabase.cpp
+ if(open("fly_land_database","root","684542"))
+=======
+ if(open("fly_land_database","root","MYSQLqwer35257"))
+>>>>>>> master:src/Client/DogDatabase.cpp
+ {
+ beginAddFiled("dogdatabase");
+ addFiled("id");
+ addFiled("state");
+ addFiled("ip");
+ addFiled("port");
+ addFiled("lon");
+ addFiled("lat");
+ endAddFiled();
+
+ beginAddRow();
+ addValue(data.id);
+ addValue(data.state);
+ addValue(data.ip);
+ addValue(data.port);
+ addValue(data.lon);
+ addValue(data.lat);
+ endAddRow();
+
+ m_valueSql = m_valueSql.left(m_valueSql.length()-1);
+ QString sql;
+ sql = m_headerSql + m_valueSql;
+ return exec(sql);
+ }
+ close();
+}
+
+//查询位置信息的记录
+Point DogDatabase::ReturnUAVPosition(QString id)
+{
+<<<<<<< HEAD:src/Client2/fly_land/DogDatabase.cpp
+ if(open("fly_land_database","root","684542"))
+=======
+ if(open("fly_land_database","root","MYSQLqwer35257"))
+>>>>>>> master:src/Client/DogDatabase.cpp
+ {
+ QSqlQuery query(m_sqlDb);
+
+ QString strQuery;
+ strQuery = "SELECT lon, lat FROM ";
+ strQuery += "dogdatabase";
+ strQuery += " WHERE id = ";
+ strQuery += id;
+
+ qDebug()<>>>>>> master:src/Client/DogDatabase.cpp
+ {
+ QSqlQuery query(m_sqlDb);
+
+ QString strQuery;
+ strQuery = "SELECT state FROM ";
+ strQuery += "dogdatabase";
+ strQuery += " WHERE id = ";
+ strQuery += id;
+
+ qDebug()<>>>>>> master:src/Client/DogDatabase.cpp
+
+ return isSuccess;
+}
+
diff --git a/src/Client/DogDatabase.h b/src/Client/DogDatabase.h
new file mode 100644
index 0000000..3a407a9
--- /dev/null
+++ b/src/Client/DogDatabase.h
@@ -0,0 +1,104 @@
+#ifndef DOGDATABASE_H
+#define DOGDATABASE_H
+
+#include
+<<<<<<< HEAD:src/Client2/fly_land/DogDatabase.h
+#include
+#include
+#include
+=======
+#include
+#include
+#include
+>>>>>>> master:src/Client/DogDatabase.h
+#include
+#include
+#include
+#include "UAVDatabase.h"
+
+using namespace std;
+
+
+struct Dog
+{
+ QString id;
+ int state;
+ QString ip;
+ int port;
+ double lon;
+ double lat;
+};
+
+
+class DogDatabase
+{
+ // Q_OBJECT宏用于提供Qt信号槽和元对象系统服务
+ // 它必须限定为私有访问权限
+ //Q_OBJECT
+
+public:
+ static DogDatabase *getInstance();
+ DogDatabase();
+ ~DogDatabase();
+
+ Dog data;
+
+ //返回状态信息
+ int giveInfo(QString id);
+ //添加数据记录
+ bool add(const Dog &data);
+ //查询位置信息数据
+ Point ReturnUAVPosition( QString id);
+
+
+
+private:
+ //打开
+ bool open(const QString &dbName,const QString &userName = QString(),const QString &passwd = QString());
+ //关闭
+ void close();
+ //开始添加字段
+ void beginAddFiled(const QString &tableName);
+
+ //添加字段
+ void addFiled(const QString &filedName);
+
+ //结束添加字段
+ void endAddFiled();
+
+ //开始添加行
+ void beginAddRow();
+
+ //添加字段值
+ void addValue(const QVariant &value);
+
+ //结束添加行
+ void endAddRow();
+
+ //执行
+ bool exec(const QString &sql);
+
+
+private:
+ //数据库
+ QSqlDatabase m_sqlDb;
+
+ //表名
+ QString m_tableName;
+
+ //字段名
+ QStringList m_fieldName;
+
+ //头sql
+ QString m_headerSql;
+
+ //值sql
+ QString m_valueSql;
+
+ //已添加row数
+ int m_fieldAdd = 0;
+
+};
+
+
+#endif // DOGDATABASE_H
diff --git a/src/Client/InjuryAnalysisUI.cpp b/src/Client/InjuryAnalysisUI.cpp
new file mode 100644
index 0000000..836c5ee
--- /dev/null
+++ b/src/Client/InjuryAnalysisUI.cpp
@@ -0,0 +1,116 @@
+#include "InjuryAnalysisUI.h"
+#include "InjuryDatabase.h"
+#include "ui_InjuryAnalysisUI.h"
+#include
+#include
+
+InjuryAnalysisUI::InjuryAnalysisUI(QWidget* parent):
+ QWidget(parent),
+ ui(new Ui::InjuryAnalysisUI)
+{
+ ui->setupUi(this);
+ setWindowTitle("伤情态势分析界面");
+ //resize(600,400);
+
+ InjuryDatabase injurydatabase;
+ QList resultNow;
+ injurydatabase.select_all(resultNow);//获取所有伤员数据
+ result = resultNow;
+
+ //添加一个scrollArea来将信息显示出来
+ ui->scrollArea->setWidgetResizable(false);//可以拖动滚动条
+ //竖滚动条和横滚动条都可以一直显示
+ ui->scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
+ ui->scrollArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+ //设置主界面的实际界面
+ ui->scrollArea->setWidget(ui->scrollAreaWidgetContents);
+ ui->scrollAreaWidgetContents->setGeometry(0, 0, 381, result.length()*20);//实际界面参数
+
+ QLabel *label0=new QLabel(ui->scrollAreaWidgetContents);
+ label0->setText("伤员编号");
+ label0->move(0,0);
+ QLabel *label1=new QLabel(ui->scrollAreaWidgetContents);
+ label1->setText("伤情等级");
+ label1->move(100,0);
+ QLabel *label2=new QLabel(ui->scrollAreaWidgetContents);
+ label2->setText("位置精度");
+ label2->move(200,0);
+ QLabel *label3=new QLabel(ui->scrollAreaWidgetContents);
+ label3->setText("位置维度");
+ label3->move(300,0);
+ for(int i = 0; iscrollAreaWidgetContents);
+ labelID->setText(result[i].id);
+ labelID->move(0,15*(i+2));
+ QLabel *labelRank=new QLabel(ui->scrollAreaWidgetContents);
+ labelRank->setText(QString::number(result[i].rank));
+ labelRank->move(100,15*(i+2));
+ QLabel *labelLon=new QLabel(ui->scrollAreaWidgetContents);
+ labelLon->setText(QString::number(result[i].lon));
+ labelLon->move(200,15*(i+2));
+ QLabel *labelLat=new QLabel(ui->scrollAreaWidgetContents);
+ labelLat->setText(QString::number(result[i].lat));
+ labelLat->move(300,15*(i+2));
+ }
+
+
+ //对信息进行分类统计分析
+ int sum = result.length();
+ ui->sumLabel->setText(QString::number(sum));
+ int rank0Sum = 0;
+ int rank1Sum = 0;
+ int rank2Sum = 0;
+ for(int i = 0; irank0Label->setText(QString::number(rank0Sum));
+ ui->rank1Label->setText(QString::number(rank1Sum));
+ ui->rank2Label->setText(QString::number(rank2Sum));
+
+
+
+}
+
+InjuryAnalysisUI::~InjuryAnalysisUI()
+{
+ delete ui;
+}
+
+void InjuryAnalysisUI::on_searchButton_clicked()
+{
+ QString userInput = ui->searchInput->text();
+ int searchIndex = -1;
+ if(!userInput.isEmpty())
+ {
+ for(int i = 0; i
+
+QT_BEGIN_NAMESPACE
+namespace Ui {
+class InjuryAnalysisUI; //声明ui命名空间下的类
+}
+QT_END_NAMESPACE
+
+class InjuryAnalysisUI : public QWidget
+{
+ // Q_OBJECT宏用于提供Qt信号槽和元对象系统服务
+ // 它必须限定为私有访问权限
+ Q_OBJECT
+
+public:
+ InjuryAnalysisUI(QWidget *parent = nullptr);
+ ~InjuryAnalysisUI();
+ QList result;
+
+
+private slots:
+
+
+ void on_searchButton_clicked();
+
+
+private:
+ // 创建Ui::InjuryAnalysisUI类型的指针,用于操作ui界面及其控件
+ Ui::InjuryAnalysisUI *ui;
+};
+
+#endif // INJURYANALYSISUI_H
diff --git a/src/Client/InjuryAnalysisUI.ui b/src/Client/InjuryAnalysisUI.ui
new file mode 100644
index 0000000..a45c26a
--- /dev/null
+++ b/src/Client/InjuryAnalysisUI.ui
@@ -0,0 +1,236 @@
+
+
+ InjuryAnalysisUI
+
+
+
+ 0
+ 0
+ 679
+ 410
+
+
+
+ Form
+
+
+ background-color: rgb(245, 245, 245);
+font: 11pt "Microsoft YaHei UI";
+
+
+
+
+ 10
+ 0
+ 215
+ 82
+
+
+
+ -
+
+
+
+ 0
+ 100
+
+
+
+
+ 80
+ 80
+
+
+
+
+ 100
+ 100
+
+
+
+ border-image: url(:/image/res/image/logo_backgroundless.png);
+
+
+
+
+
+
+ -
+
+
+ 伤情结果统计:
+
+
+
+
+
+
+
+
+ 10
+ 80
+ 631
+ 291
+
+
+
+ QPushButton {
+background-color: rgba(15, 28, 34, 0);
+ color: rgb(0, 0, 0);
+
+border: none;
+
+padding: 10px 20px; /* 设置内边距 */
+
+border-radius: 5px; /* 设置按钮圆角 */
+
+font-size: 14px; /* 设置文字大小 */
+
+text-align: right; /* 设置字体向右对齐 */
+
+}
+
+QPushButton:hover {
+
+background-color: #0364FF; /* 设置鼠标悬停时按钮背景色 */
+
+}
+
+QPushButton:pressed {
+
+background-color: #398439; /* 设置按钮被按下时背景色 */
+
+}
+
+
+ -
+
+
-
+
+
+ true
+
+
+
+
+ 0
+ 0
+ 365
+ 229
+
+
+
+
+
+ -
+
+
-
+
+
-
+
+
+ 伤员总数:
+
+
+
+ -
+
+
+ TextLabel
+
+
+
+
+
+ -
+
+
-
+
+
+ 伤情轻微的伤员数:
+
+
+
+ -
+
+
+ TextLabel
+
+
+
+
+
+ -
+
+
-
+
+
+ 伤情一般的伤员数:
+
+
+
+ -
+
+
+ TextLabel
+
+
+
+
+
+ -
+
+
-
+
+
+ 伤情严重的伤员数:
+
+
+
+ -
+
+
+ TextLabel
+
+
+
+
+
+
+
+
+
+ -
+
+
-
+
+
+ 输入伤员编号查询伤员信息
+
+
+
+ -
+
+
+
+
+
+
+ -
+
+
+ font: 14pt "Consolas";
+
+
+ 查询
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Client/InjuryDatabase.cpp b/src/Client/InjuryDatabase.cpp
new file mode 100644
index 0000000..22f6ad0
--- /dev/null
+++ b/src/Client/InjuryDatabase.cpp
@@ -0,0 +1,232 @@
+#include "InjuryDatabase.h"
+
+InjuryDatabase *InjuryDatabase::getInstance()
+{
+ static InjuryDatabase db;
+ return &db;
+}
+
+InjuryDatabase::~InjuryDatabase()
+{
+ close();
+}
+
+InjuryDatabase::InjuryDatabase()
+{
+ m_sqlDb = QSqlDatabase::addDatabase("QMYSQL");
+}
+
+//添加记录
+bool InjuryDatabase::add(const Injury &data)
+{
+<<<<<<< HEAD:src/Client2/fly_land/InjuryDatabase.cpp
+ if(open("fly_land_database","root","684542"))
+=======
+ if(open("fly_land_database","root","MYSQLqwer35257"))
+>>>>>>> master:src/Client/InjuryDatabase.cpp
+ {
+ beginAddFiled("injurydatabase");
+ addFiled("id");
+ addFiled("injuryrank");
+ addFiled("lon");
+ addFiled("lat");
+ addFiled("flag");
+ endAddFiled();
+
+ beginAddRow();
+ addValue(data.id);
+ addValue(data.rank);
+ addValue(data.lon);
+ addValue(data.lat);
+ addValue(data.flag);
+ endAddRow();
+
+ m_valueSql = m_valueSql.left(m_valueSql.length()-1);
+ QString sql;
+ sql = m_headerSql + m_valueSql;
+ return exec(sql);
+ }
+ close();
+
+}
+
+
+//查询所有记录
+bool InjuryDatabase::select_all(QList &result)
+{
+<<<<<<< HEAD:src/Client2/fly_land/InjuryDatabase.cpp
+ if(open("fly_land_database","root","684542"))
+=======
+ if(open("fly_land_database","root","MYSQLqwer35257"))
+>>>>>>> master:src/Client/InjuryDatabase.cpp
+ {
+ QSqlQuery query(m_sqlDb);
+
+ QString strQuery;
+ strQuery = "SELECT * FROM ";
+ strQuery += "injurydatabase";
+
+ query.prepare(strQuery);
+
+ bool isSuccess = query.exec();
+ if(isSuccess)
+ {
+ while(query.next())
+ {
+ QString id = query.value(0).toString();
+ int rank = query.value(1).toInt();
+ double lon = query.value(2).toDouble();
+ double lat = query.value(3).toDouble();
+ int flag = query.value(4).toInt();
+
+ Injury data;
+ data.id = id;
+ data.rank = rank;
+ data.lon = lon;
+ data.lat = lat;
+ data.flag = flag;
+ result.append(data);
+ }
+ }
+
+ return isSuccess;
+ }
+ close();
+}
+
+
+//返回有效伤员的信息
+void InjuryDatabase::ReturnInfo(QList result)
+{
+<<<<<<< HEAD:src/Client2/fly_land/InjuryDatabase.cpp
+ if(open("fly_land_database","root","684542"))
+=======
+ if(open("fly_land_database","root","MYSQLqwer35257"))
+>>>>>>> master:src/Client/InjuryDatabase.cpp
+ {
+ select_valid("injurydatabase", result);
+ for(int i = 0; i &result)
+{
+ QSqlQuery query(m_sqlDb);
+
+ QString strQuery;
+ strQuery = "SELECT id, injuryrank, lon, lat FROM ";
+ strQuery += tableName;
+ strQuery += " WHERE flag = 1";
+
+ //qDebug()<
+#include
+#include
+#include
+#include
+#include
+#include
+
+
+using namespace std;
+
+
+struct Injury
+{
+ QString id;
+ int rank;
+ double lon;
+ double lat;
+ int flag;
+};
+
+class InjuryDatabase
+{
+ // Q_OBJECT宏用于提供Qt信号槽和元对象系统服务
+ // 它必须限定为私有访问权限
+ //Q_OBJECT
+
+public:
+ static InjuryDatabase *getInstance();
+ InjuryDatabase();
+ ~InjuryDatabase();
+
+ //打开
+ bool open(const QString &dbName,const QString &userName = QString(),const QString &passwd = QString());
+ //添加数据记录
+ bool add(const Injury &data);
+ //查询所有数据
+ bool select_all(QList &result);
+
+ Injury data;
+ //返回有效信息
+ void ReturnInfo(QList data);
+
+
+private:
+ //查询有效数据
+ bool select_valid(const QString &tableName,QList &result);
+ //关闭
+ void close();
+ //开始添加字段
+ void beginAddFiled(const QString &tableName);
+
+ //添加字段
+ void addFiled(const QString &filedName);
+
+ //结束添加字段
+ void endAddFiled();
+
+ //开始添加行
+ void beginAddRow();
+
+ //添加字段值
+ void addValue(const QVariant &value);
+
+ //结束添加行
+ void endAddRow();
+
+ //执行
+ bool exec(const QString &sql);
+
+
+private:
+ //数据库
+ QSqlDatabase m_sqlDb;
+
+ //表名
+ QString m_tableName;
+
+ //字段名
+ QStringList m_fieldName;
+
+ //头sql
+ QString m_headerSql;
+
+ //值sql
+ QString m_valueSql;
+
+ //已添加row数
+ int m_fieldAdd = 0;
+
+};
+
+
+
+#endif // INJURYDATABASE_H
diff --git a/src/Client/UAVDatabase.cpp b/src/Client/UAVDatabase.cpp
new file mode 100644
index 0000000..15b0d7b
--- /dev/null
+++ b/src/Client/UAVDatabase.cpp
@@ -0,0 +1,212 @@
+#include "UAVDatabase.h"
+
+UAVDatabase *UAVDatabase::getInstance()
+{
+ static UAVDatabase db;
+ return &db;
+}
+
+UAVDatabase::~UAVDatabase()
+{
+ close();
+}
+
+UAVDatabase::UAVDatabase()
+{
+ m_sqlDb = QSqlDatabase::addDatabase("QMYSQL");
+}
+
+//添加记录
+bool UAVDatabase::add(const UAV &data)
+{
+<<<<<<< HEAD:src/Client2/fly_land/UAVDatabase.cpp
+ if(open("fly_land_database","root","684542"))
+=======
+ if(open("fly_land_database","root","MYSQLqwer35257"))
+>>>>>>> master:src/Client/UAVDatabase.cpp
+ {
+ beginAddFiled("uavdatabase");
+ addFiled("id");
+ addFiled("state");
+ addFiled("ip");
+ addFiled("port");
+ addFiled("lon");
+ addFiled("lat");
+ endAddFiled();
+
+ beginAddRow();
+ addValue(data.id);
+ addValue(data.state);
+ addValue(data.ip);
+ addValue(data.port);
+ addValue(data.lon);
+ addValue(data.lat);
+ endAddRow();
+
+ m_valueSql = m_valueSql.left(m_valueSql.length()-1);
+ QString sql;
+ sql = m_headerSql + m_valueSql;
+ return exec(sql);
+ }
+ close();
+}
+
+//查询位置信息的记录
+Point UAVDatabase::ReturnUAVPosition(QString id)
+{
+<<<<<<< HEAD:src/Client2/fly_land/UAVDatabase.cpp
+ if(open("fly_land_database","root","684542"))
+=======
+ if(open("fly_land_database","root","MYSQLqwer35257"))
+>>>>>>> master:src/Client/UAVDatabase.cpp
+ {
+ QSqlQuery query(m_sqlDb);
+
+ QString strQuery;
+ strQuery = "SELECT lon, lat FROM ";
+ strQuery += "uavdatabase";
+ strQuery += " WHERE id = ";
+ strQuery += id;
+
+ qDebug()<>>>>>> master:src/Client/UAVDatabase.cpp
+ {
+ QSqlQuery query(m_sqlDb);
+
+ QString strQuery;
+ strQuery = "SELECT state FROM ";
+ strQuery += "uavdatabase";
+ strQuery += " WHERE id = ";
+ strQuery += id;
+
+ qDebug()<>>>>>> master:src/Client/UAVDatabase.cpp
+
+ return isSuccess;
+}
+
diff --git a/src/Client/UAVDatabase.h b/src/Client/UAVDatabase.h
new file mode 100644
index 0000000..b2f7071
--- /dev/null
+++ b/src/Client/UAVDatabase.h
@@ -0,0 +1,110 @@
+#ifndef UAVDATABASE_H
+#define UAVDATABASE_H
+
+<<<<<<< HEAD:src/Client2/fly_land/UAVDatabase.h
+#include
+#include
+#include
+=======
+#include
+#include
+#include
+>>>>>>> master:src/Client/UAVDatabase.h
+#include
+#include
+#include
+#include
+
+
+using namespace std;
+
+
+struct UAV
+{
+ QString id;
+ int state;
+ QString ip;
+ int port;
+ double lon;
+ double lat;
+};
+
+//存储经纬度信息
+struct Point
+{
+ double lon;
+ double lat;
+};
+
+class UAVDatabase
+{
+ // Q_OBJECT宏用于提供Qt信号槽和元对象系统服务
+ // 它必须限定为私有访问权限
+ //Q_OBJECT
+
+public:
+ static UAVDatabase *getInstance();
+ UAVDatabase();
+ ~UAVDatabase();
+
+ UAV data;
+
+ //返回状态信息
+ int giveInfo(QString id);
+ //添加数据记录
+ bool add(const UAV &data);
+ //查询位置信息数据
+ Point ReturnUAVPosition( QString id);
+
+
+
+private:
+ //打开
+ bool open(const QString &dbName,const QString &userName = QString(),const QString &passwd = QString());
+ //关闭
+ void close();
+ //开始添加字段
+ void beginAddFiled(const QString &tableName);
+
+ //添加字段
+ void addFiled(const QString &filedName);
+
+ //结束添加字段
+ void endAddFiled();
+
+ //开始添加行
+ void beginAddRow();
+
+ //添加字段值
+ void addValue(const QVariant &value);
+
+ //结束添加行
+ void endAddRow();
+
+ //执行
+ bool exec(const QString &sql);
+
+
+private:
+ //数据库
+ QSqlDatabase m_sqlDb;
+
+ //表名
+ QString m_tableName;
+
+ //字段名
+ QStringList m_fieldName;
+
+ //头sql
+ QString m_headerSql;
+
+ //值sql
+ QString m_valueSql;
+
+ //已添加row数
+ int m_fieldAdd = 0;
+
+};
+
+
+#endif // UAVDATABASE_H
diff --git a/src/Client/build/Desktop_Qt_6_7_0_MinGW_64_bit-Debug/.qtc_clangd/.cache/clangd/index/DogDatabase.cpp.9C248469BABED4FE.idx b/src/Client/build/Desktop_Qt_6_7_0_MinGW_64_bit-Debug/.qtc_clangd/.cache/clangd/index/DogDatabase.cpp.9C248469BABED4FE.idx
new file mode 100644
index 0000000000000000000000000000000000000000..ea054392be9977b2a95782922ba0d27c36f80b2a
GIT binary patch
literal 8476
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
LtQ+2JBVYSpbnY(%
literal 0
HcmV?d00001
diff --git a/src/Client/build/Desktop_Qt_6_7_0_MinGW_64_bit-Debug/.qtc_clangd/.cache/clangd/index/DogDatabase.h.697AD127290AAE98.idx b/src/Client/build/Desktop_Qt_6_7_0_MinGW_64_bit-Debug/.qtc_clangd/.cache/clangd/index/DogDatabase.h.697AD127290AAE98.idx
new file mode 100644
index 0000000000000000000000000000000000000000..a346150bf2ac359b186b55ee94f1dd2e1ca5cbb5
GIT binary patch
literal 2966
zcmb7GeQZ-z6u-T^t?l~ucDr_6+1SR|CUXvo-56{l$QW}Y8QBMn3}!~RzI6>Pg}-)Nw;uN?jImVu#p2Q6mz);zsfq;TucAWADqq~!?u+Tu
z*Mv0c@!n{7?egaONGuo+M#9YJ_sd^(Fr*ucW?!gRXYG0*7+wxFc8!s(tRobmsD291
z^ss-@WPB|R^lf?v>!ffM9*?K0!qc#(#~1JNbcXucLcXxyGcCFKUH@fBS>hD`GK_o5
z<}aGRz|$QJ2e!7Am3o5Vj!>^(_cX*;M56Sn(%X9jcf|f*mnJG@_^y4LHitY7B#_|U
zehYpLy?V6oUY#2Cj!4vhPhN5Q;N3c`3;F|kJmzT_UohI#hGTJGxI<@w;1<0$+!xo3;)XToO&Yqao9@O7`-R(zbF!tQ8{4Gb14O;}a$kwMvR9Y+T%rd_D?46O(8;hMb
zjn7e-sI%9(4FP!X;If?yzWX3W8KP0Rw(Re-uZ&6!Zh5%f1
z`q@LTe<2oXJez{2+0rya0RFq~$jz>spDq?W3Bi|HmrVwDH+0V0^UKHU1TO&WwR)4`
z-Cvq*4_({Xn$8OW=P7v!fZI&(hM!*D&~D~bVUdxTVK)S`8bvjUgy;MAU3x0n?ALf6
z1e5z)MP^d{&AJE^vv!{
zy97^wcX3j2CgAV`Z71Kp>f5XFEb?~QT$&*OzqU8F{(Q}22Lw06yWCnn*${)CMT>0n
zP7Mm40=ULnGg%nR?!R6fzA7jz*3+Z0>K0Kn~L@y966K7O;nf^b4rpSrV4Yy
zQL=f>26e>6XCV9>WljqGLj%@L<{igJG=3lD?zA{nLjXSTQPvybXZkN{JdsNW=$po$n?^5qdbSdpNdIQ*j(k81xWi%tGY)UdH3^gcBYRO-yL0wWy
z-a-w^l3MZ=_X(=fCnZH;{bupmQ@?&ScP?3*ET**ak-`|5OKM45Sc9>omUKmIFqL9U
zhQb=BCADNG)L^E`BqSrD##>1mXW~REs>rqFy3iM@ki7;|Rpce)3GBdFN>0)h>T4w{
zjvTu1eZZuOI;Bpa#vm{yCy5Jd5SM~T*5ZU9ELlsU!Wu*+YspergP>$Bi3w{Elhl%s
zP=k;ZM6wa;ZQE}>{$XYH@f20q6}t_@QH4Ws*l@|JD6|*4(f6t-&MMAFuGDf)Zze8*
zc17L?r|s@+&eh(v)39l+s*19#vV0Iv73J>o9Gp)THO`t$97`4TO1%xYpo(Ut*@o6t
zMT^p6Lsxm8OiTXr%Kjm`k|w1o1&xgI&6pTDlO0f?6qr#ZRTMdjT%akr66lLdti+_Ahn!1P!Ak_
zq5JeJUyo6cVx`!MyFvbBEk_WnF@i`fM-S8(J(RbcJ5aNz9`eZ|#iAXtO>$wEV*E+R
tg0V?f(?B;zZp~ZxO<=tx-JRxixKi!RIb|sSRZl!FEEsc4E!|Vge*i`y5A*;4
literal 0
HcmV?d00001
diff --git a/src/Client/build/Desktop_Qt_6_7_0_MinGW_64_bit-Debug/.qtc_clangd/.cache/clangd/index/QScrollArea.BE202BFE73F61A75.idx b/src/Client/build/Desktop_Qt_6_7_0_MinGW_64_bit-Debug/.qtc_clangd/.cache/clangd/index/QScrollArea.BE202BFE73F61A75.idx
new file mode 100644
index 0000000000000000000000000000000000000000..475df3d2831642ee0254441d0b875a7d3ccdd11b
GIT binary patch
literal 214
zcmWIYbaOk$z`)>~;#rZKT9U{DWD5ataY<2TEszF-w9K4TD}8-^7c2e15`8m0b3Ft7
z+|0c6@^~{7{mi`NoYIt3piFpXN_uKZv3_81a#4Oxj$=`3A_Iw93yZ;86MW1E7Z
zVaP)1rUVELOO`lGNE{~xLqkHtX5CGfY|@f++RV<*=Fub#+3D;nB}vmJX?FL&l7HPB
zLI<(idXVRS|M}1VI^X&4FVk<{upuR%<67P3NuMA(DaUaJ_=Lou=c*PSq#vUZ{)x`u
zs30~?Hq<-n>x>id@p=5C6RT=DV_Ub`(r$BfG!HliOs&>_lcTxU4C1~)N3+G!GuS+6
za%`|#S_jQNma@t6CWpf*g8kufQE)iQ%A9^b6P=<^RybK+ULM)k+5=X)%q6)UoOUw2oF)eJFN6p?_?Y#B7Q_g@n{$h&*mOkH19b+nmU
ztnHETKto|$@;}hg+-p*9kc3~${hCk*`V?laQFgTUo0vP6k7#TYhQ~+$pWE$jg%QzSU$wfb#vbM-c(Hr@F7LQoSoHD7mhF9FD+|V`6>$-p
z#l>)9HQzq&xv^bPiZz6&DkK<_?JnkWiXP^_aTML-UeV(d+#cu6=-NDP=pvyTZ?OpC
z1PgAxv0_g^@V9r}Sg)6bJW^)Rv~EhdZ`|XGA&fqs_r_*HsReF@=<&x;0flm`$NjY}
zaO?_MOaYqxqA(hakpy78o4EyVZ0ST)Zz37xhDa(m;q4~;L{uXlVklCKjF8j@#+(5m
zmg>mLF~@!F7AbyN7GoYUU&yfOn~F`Ysub0Y;~BUohAVV~czs(#0l^irPk8*RYK@~6
z6;Zc?jCn&)qSm0`6j{(78gm8(`#qv-5xWB3@sRYfPXwKTfZ&D~)#yZr;B*T?`2cU)
zN}u?rGa*GEeoNV$UMQ7Km=uH1eQkbbbTikuPw>MS1uf1v?%(QX6MmzM`F!E`v!sH;
zK+rkrb3#f=;e<0Nbw(o#M7sY7^z~6c3yB_A$QT-96GoWP1moh{)EE+-(us};!5|A7
zy&j)OY+6}UQzMBcT|(Fhco^|HT|s6X24#rUB`j)6YCa(pa*l#T@Q;dPO_C@G^QR{g
zG-MJ20rMF{Qz23C8OQJ(MnY4N<)o4My;GbKTDd2p!5Mw^b?{3ZgY$HQZz*^;#4A5Z
zWC#i&HXejX+@4@lTVr*fSRFo6cvvJx^{~fZ?SippwA$+#UVK`)nuDC(O{4ztii(xn
zIpZWJZ4Qq?)i?%KTbu7_bBfMkXGo}W1p?Po2@gfpF$_i3RX|NgI1aaDC_K>A*U8a=
z5cpufmXHv=J-o{f(Jwx&Tpb;Ql$*jPSFWtBk>(^xd(`E!e|^5UuUuJG3nSIy+1p)E
z$3Kl3yF?6No|K@R%l|#B>jeMDEng>5oE7^8aXjdU)5Mv9Q=F{wxv`ORy4})egU2g`
zAMS8^#|3U!81?v@QH-dcO>k26TwWFuIKl6ZYDAu;bzxF)aU)=@vAViC29Cw3I>y1+
zW%k3p^}7Ua)U!=6`$rhZV0hxDmDzEjDc|sWgySxMbKP9eXT3}Gsxddm4idvbvOKUh
zer+13j(jUz|LWg8+5Rto5wBNyK;a}YoFuscQ@kk!6@IpM$8YX!es-;11z!=^d15$E
z(gK!vixw5MyLP=dQWWwcC(
z%f6P~D}MWsahF~df@RSlrUe?}8=~g_u&nvaPrv{0QN0R|h9w)4Qv)^eH9YQqRF(e3
zuEI}Xc?6b^5yLT(6<8m?J_!{*zPjSw4%_388dUdyf+|Z@94O5wEyU$tep&J6xasIg
zy$T4-tV!0)K$W^mkISWjXErClx$~@E<%Q)F#Bc)2(-PkjEl*vi_3ATCmLKR(xEWpT@1y4Pqzihx=k&5K&rEV2dFN^*B|
zuG`M(2+tPCtqWuwGH2ZJe6R84_jRzpJf}Pl-SBLly_P;v{;+LyN%Vahz~Sl*#P
zTb6Ap!~$eKy?Nt59m%Ssl~}CE^y!oO-7Ll_;u=-~!J*&(7oM3OLT
zG!JGg6Dk!|k6b~l`llxY-gO`OTflH3tE+_L$#i|T6nWX+whr)5`XGjt{r9fKUylfPW!zq>0QY~)N
zEcQXH(JODiIrXbOr#j)3E7B^`Q4I^KqKu}~OgstASL%CiwPVee-;NJ}Qh~N0dP^xQ
z(iTP0kb8FZ!zF!pf&(3|)1u)YKG(ExrDxur09TKeC!$|KN#)rJlwV#Uql%1*0vSC>
z=!43;c#6
zb4Q_JJ1i`a<^^Ix3%}nsdCW8Wot?mi+qAbS8kRlD9&K3BaCnxwG&KQh$g{eobqSaU
z&umL=37Cf_{N6>je(K%%>^}9#E^xn{-yUtSmw)ljLwT=GOX35BKR}Z3=6+N(_LHK=
zDt5y{z9Bz)XgbH1#9u$&vKQV+)B0&cG%To+eh*RL1(LKtk}=2U(>|}8ewpos9P_pL
zQHE1is4a}57q{)U4`pWD55(3{ouV_
zeUE+j&&aL5^G(x#zkA<7@O+%;kCQZPqgU=Ns=Z*hJOB%aiT*H2#eR#y5lwi?LNegK
zr98`^89Zw7ER$v`P!`Qnplq70Kshu=fpTeX6loSGHgu-B{Q2kBTaq7v;ED`IY3K|a
zBZMXmaHx$Z3u0+-Lviv?Hy&{u>^ue4ZPYgEkPVcr(XLUT%}JY+(E??6CEcY!r-<$p
zNx~*a*;%4HOOmi@S$534KG4oR4Nd1Y@!fXYSx`Dc^he|a;n{;k_aI3@>u41em(gX4i6AnTV)~OiKiTmQ
zEgQ~hdA5SCP+b4o;@V0%ga+E6Xa?3SYd#i(XPeZUlrQaEu}CJoxJqnPpiZ%0Mh8jB
zL1M&sr5AYqF;a#MlB#2vA(@zm)b$K=Bon)y^n%VkPm1vJpd6T&PxGUkfnHAw6sV9E
zDo_zEQlMg5tUx8SB#JbPvpQC-==`!XpM9413@~qspNjUplXqYG;&SGm3(&*r6YG<)
ze3T6thSITM6mEUu1-XNrn11D3%YX1+KZHrNLQ|27ESAof9{DO;=nTxEf#5eZ-R+rq%T0+C5DoyFZbh_f%U$`A3@w}wQCiu
zcO*F!Jf9=FIg*5h))DpZ?|7TPvNN_5Z$Ltm{A4!L`e$E^e)iDn18=6nXjP`G!SpFhkEP3^K~q<|
z7E3&vrGKXQ@JH`1;lo2!zD2vD1Y8JoAV_Ek7GJoF_AO8C%f5v&BVs>e;
z;9sBq9bA?f(lA5T$R{^L%rm4*#&e{2j+9~9mTH^!@BO#m{0~&5yt2F&2`CNrmGh()
z--+;d2(ME*gHX^FN|zo2(y#CjVf%`M-1nA!FiirS%jfovfq2u1z1`ely`%3=(}oRQ
zgS`W)teosy45>@CDQUbqBYsIzvOXa(Jx-^|q%Ey&xp`|#jkh(fXFylbVk6)9Ux(9_Yr55tOV1cn=pPIPJl}It#IMfp@rA;&sE9SFq27S6skFJy
zAM}Jgejg)U{0Squ)D?2Ixq|9Uoe-DXE&i1ruc|4{E^n{O+SE>uuM}pi8vLtSyVp-S
z+?0%|KKGPMSQifJ8nvBuP`VAc7jyc7MSAP*EX@eb9gv9(Si23Oee;3Zq4hFBo$9+Ev!+=~HWb9e(C<
zGfxlmx`hg#OB@3AYD@%eW|Ow>OH(qG>?G&J*toO
z_yZwoSXW48>t?(J#J-6WyT(UHej7T#f@{0mBB;&JytriV^4oQh
zW^RfKx4BYmEVeO2cu{ip^F38RzG^gc32=q6A`Wo-!9A0$otNjzJUxmjZH6{Q6M(-h
z?*Ds3>Cs{{w;;OKSQ`WQ){Y+UlIy-QnWb{3q?l46D0=!NFgK^AoGg+>G?gjLQ_nJ73w{;aQOQw2ems&eCVa0zQ6h@#y&SgRL@u
zglcz6PManGAKUZj)rDvT5lpd4R#_8(=VT^bZd0Cg%RGx<#h}D!0`T4W1N$d7
zIDIlpqod6>&6YI*xVvn9&Ocig44V0TlvZdgoVu9n8C_pz?95#+^VyW#B3WcjAo^6_
z`qq|2`$n11qskjCjdo1{KKJr#LtNdoF_P2!DzQE^E4WWO40bGmi#bZLFTE{QY%b4W%9a^SI3CQu0=*H9-?d{z9FpLT67Hm3b;1
z%x1F5ngIOK_5-7*`rr9d=4k}So8o0n0KSo!`ufXblV@cC#)Lntn3#S%@x(E=UIa?(lov
zpM7xtS|roaizh`TNtzHZp2HYTihI?HH)=x9T{rU>#1|QhWW=+8+7aAM-7?TLKE@-D
zMsP_fTvAwpHl@|7!cMF}89Jjz6&O=c1(^j!zzmAeMQhXmGpK>Q1tq`?N+55+2RPW7
zLyLCae)eQJnRNzTe3+XULzF%`%nbMJl9Fl4w4o6tMNBKo0NWe^5=3%0<)apzQt
zAP8&;f*^0f4#?LWqBuS}_t4&6uOG>l8*@Qz%N~^xr1VWM&r`~Bodx6F1#DcwWV#iQ?%;cpvk5S{a
z=v!jJH^@QPCKwIgATu%xCc~3}#K&nJx+T;s4XphOeeeV!2%r
z2)k1(EGZUB6hbJG%OqizD2sVcVQ}@Dm|rL;9$UFsZTkmPBi@SW;Lqe{8Z;r6rRZMm}QB}=T
z27tquupofuZgvSL>*!TSY!vbtRE2f
z@DvAdBoi3|@WEHE90^S6JIqr&z$V7zVcx&EZ|dddG3`7>101c5_MF!AzIaO|wq4^X
z4Ztx>j2@h8s>ijK-7o6lDIb7inb=T(8yW9EceU5v;HdzB!)&P8(^XH#nDs0{M>jP}h=-t6QNB>1%V=w~P#haUM=;P-9BZR(3^0SuB4zvl)Lx8R%%1d{d2=MFhIY}pw({U_?Q7Mag3Qqc
zSl(~}$Qzlltihc6U0t`=g88+GC5{Q4Bqc0eWE*?G7KMtF3cK5uuf4HY?EJt7)j!w}
z0qx7N!E~?+GS0Ckoyi2MB}h)8%AQsZx~
z@hXz~x1t)1BgXM?6KqDj@JIt*P-kSuqYTUt4Kfdx0VDvK@#uoxSER?)l}Em4L02*a
z6989ME`6}1eNxu05y63ksi&LQt#8NxOha@No`P^w*YOie15&FG3|3T-HrviVD(cE>
zt^4-$9}R7k+sW(m&KG3&=RQP<(I$fBcw&Ot_oLA>_qVM$HKL_J
z03(!l_*KIyLetTSDx;;f{*VEV)zLc73fNLlx1*agfFM&u2Ty3AGcPW2)2NlBen%ldXO16KHLkfiJag$4!dEFBQu`gU`8)U|y=LI;=K_UW89d-XOF-gC?oT3(J?_*W|lqxbgZC2_{x*H4f@3bIE4
zt+cjxF28Z^>|GN2?9RmcV-xlJ9*`giLY5qI6i%r7#mALe^hym68??o`uGtz$QYwb{
E7YJf>RR910
literal 0
HcmV?d00001
diff --git a/src/Client/build/Desktop_Qt_6_7_0_MinGW_64_bit-Debug/debug/DogDatabase.o b/src/Client/build/Desktop_Qt_6_7_0_MinGW_64_bit-Debug/debug/DogDatabase.o
new file mode 100644
index 0000000000000000000000000000000000000000..f925b9b9c28d239f101dbb48d64f53fbeb51083c
GIT binary patch
literal 1242618
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