@ -1,23 +0,0 @@
|
||||
QMAKE_CXX.QT_COMPILER_STDCXX = 201703L
|
||||
QMAKE_CXX.QMAKE_GCC_MAJOR_VERSION = 11
|
||||
QMAKE_CXX.QMAKE_GCC_MINOR_VERSION = 4
|
||||
QMAKE_CXX.QMAKE_GCC_PATCH_VERSION = 0
|
||||
QMAKE_CXX.COMPILER_MACROS = \
|
||||
QT_COMPILER_STDCXX \
|
||||
QMAKE_GCC_MAJOR_VERSION \
|
||||
QMAKE_GCC_MINOR_VERSION \
|
||||
QMAKE_GCC_PATCH_VERSION
|
||||
QMAKE_CXX.INCDIRS = \
|
||||
/usr/include/c++/11 \
|
||||
/usr/include/x86_64-linux-gnu/c++/11 \
|
||||
/usr/include/c++/11/backward \
|
||||
/usr/lib/gcc/x86_64-linux-gnu/11/include \
|
||||
/usr/local/include \
|
||||
/usr/include/x86_64-linux-gnu \
|
||||
/usr/include
|
||||
QMAKE_CXX.LIBDIRS = \
|
||||
/usr/lib/gcc/x86_64-linux-gnu/11 \
|
||||
/usr/lib/x86_64-linux-gnu \
|
||||
/usr/lib \
|
||||
/lib/x86_64-linux-gnu \
|
||||
/lib
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,95 @@
|
||||
#ifndef DRONEMANAGEMENTPAGE_H
|
||||
#define DRONEMANAGEMENTPAGE_H
|
||||
|
||||
#include <QWidget>
|
||||
#include <QFrame>
|
||||
#include <QGroupBox>
|
||||
#include <QVBoxLayout>
|
||||
#include <QHBoxLayout>
|
||||
#include <QTableWidget>
|
||||
#include <QPushButton>
|
||||
#include <QLineEdit>
|
||||
#include <QLabel>
|
||||
#include <QComboBox>
|
||||
#include <QHeaderView>
|
||||
#include <QMessageBox>
|
||||
#include <QTimer>
|
||||
#include "../models/dronedata.h"
|
||||
|
||||
/**
|
||||
* 无人机管理页面类
|
||||
* 负责无人机连接管理、状态显示、添加删除无人机等功能
|
||||
*/
|
||||
class DroneManagementPage : public QWidget {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit DroneManagementPage(QWidget* parent = nullptr);
|
||||
~DroneManagementPage();
|
||||
|
||||
// 设置无人机管理器
|
||||
void setDroneManager(DroneManager* manager);
|
||||
|
||||
signals:
|
||||
void droneSelected(const QString& droneId);
|
||||
void droneConnectionRequested(const QString& droneId, bool connect);
|
||||
|
||||
private slots:
|
||||
void onAddDroneClicked();
|
||||
void onRemoveDroneClicked();
|
||||
void onConnectDroneClicked();
|
||||
void onDisconnectDroneClicked();
|
||||
void onDroneSelectionChanged();
|
||||
void onRefreshData();
|
||||
void onDroneDataChanged();
|
||||
void onDroneConnectionChanged(bool connected);
|
||||
|
||||
private:
|
||||
void setupUI();
|
||||
void setupDroneTable();
|
||||
void setupControlPanel();
|
||||
void setupStatusPanel();
|
||||
void updateDroneTable();
|
||||
void updateStatusDisplay();
|
||||
void updateControlButtons();
|
||||
void addDroneToTable(DroneData* drone);
|
||||
void removeDroneFromTable(const QString& droneId);
|
||||
void updateDroneRow(DroneData* drone);
|
||||
|
||||
// 获取状态颜色
|
||||
QString getStatusColor(bool connected) const;
|
||||
QString getPositionString(const QVector3D& pos) const;
|
||||
QString getVelocityString(const QVector3D& vel) const;
|
||||
QString getAttitudeString(const QVector3D& att) const;
|
||||
|
||||
// UI组件
|
||||
QFrame* mainFrame_;
|
||||
QTableWidget* droneTable_;
|
||||
QGroupBox* controlGroup_;
|
||||
QGroupBox* statusGroup_;
|
||||
|
||||
// 控制面板组件
|
||||
QLineEdit* droneIdEdit_;
|
||||
QLineEdit* droneNameEdit_;
|
||||
QPushButton* addDroneBtn_;
|
||||
QPushButton* removeDroneBtn_;
|
||||
QPushButton* connectBtn_;
|
||||
QPushButton* disconnectBtn_;
|
||||
QPushButton* refreshBtn_;
|
||||
|
||||
// 状态显示组件
|
||||
QLabel* totalDronesLabel_;
|
||||
QLabel* connectedDronesLabel_;
|
||||
QLabel* selectedDroneLabel_;
|
||||
QLabel* positionLabel_;
|
||||
QLabel* velocityLabel_;
|
||||
QLabel* attitudeLabel_;
|
||||
|
||||
// 数据管理
|
||||
DroneManager* droneManager_;
|
||||
QTimer* refreshTimer_;
|
||||
QString selectedDroneId_;
|
||||
};
|
||||
|
||||
#endif // DRONEMANAGEMENTPAGE_H
|
||||
|
||||
@ -0,0 +1,16 @@
|
||||
#include "mapbridge.h"
|
||||
#include <QDebug>
|
||||
|
||||
MapBridge::MapBridge(QObject *parent)
|
||||
: QObject(parent)
|
||||
{
|
||||
}
|
||||
|
||||
void MapBridge::onClick(double lng, double lat)
|
||||
{
|
||||
emit mapClicked(lng, lat);
|
||||
}
|
||||
|
||||
void MapBridge::onMapReady() {
|
||||
emit mapReady();
|
||||
}
|
||||
@ -0,0 +1,21 @@
|
||||
#ifndef MAPBRIDGE_H
|
||||
#define MAPBRIDGE_H
|
||||
|
||||
#include <QObject>
|
||||
#include <QPointF>
|
||||
|
||||
class MapBridge : public QObject {
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit MapBridge(QObject *parent = nullptr);
|
||||
|
||||
signals:
|
||||
void mapClicked(double lng, double lat);
|
||||
void mapReady();
|
||||
|
||||
public slots:
|
||||
Q_INVOKABLE void onClick(double lng, double lat);
|
||||
void onMapReady();
|
||||
};
|
||||
|
||||
#endif // MAPBRIDGE_H
|
||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,300 @@
|
||||
#ifndef MAPPAGE_H
|
||||
#define MAPPAGE_H
|
||||
|
||||
#include <QWidget>
|
||||
#include <QPushButton>
|
||||
#include <QLabel>
|
||||
#include <QComboBox>
|
||||
#include <QLineEdit>
|
||||
#include <QFrame>
|
||||
#include <QHBoxLayout>
|
||||
#include <QVBoxLayout>
|
||||
#include <QWebEngineView>
|
||||
#include <QWebEnginePage>
|
||||
#include <QDebug>
|
||||
#include <QWebEngineSettings>
|
||||
#include <QDialog>
|
||||
#include <QComboBox>
|
||||
#include <QDateTimeEdit>
|
||||
#include <QPushButton>
|
||||
#include <QTableWidget>
|
||||
#include <QFormLayout>
|
||||
#include <QLineEdit>
|
||||
#include <QMessageBox>
|
||||
#include <QGroupBox>
|
||||
#include <QRadioButton>
|
||||
#include <QSpinBox>
|
||||
#include <QButtonGroup>
|
||||
#include <QList>
|
||||
#include <QPair>
|
||||
#include "mapbridge.h"
|
||||
|
||||
class CustomWebEnginePage : public QWebEnginePage {
|
||||
Q_OBJECT
|
||||
signals:
|
||||
void consoleMessage(QWebEnginePage::JavaScriptConsoleMessageLevel level, const QString &message, int lineNumber, const QString &sourceID);
|
||||
public:
|
||||
CustomWebEnginePage(QObject* parent = nullptr) : QWebEnginePage(parent) {}
|
||||
protected:
|
||||
void javaScriptConsoleMessage(JavaScriptConsoleMessageLevel level, const QString& message, int lineNumber, const QString& sourceID) override {
|
||||
qDebug() << "JS 消息 (级别:" << level << "):" << message << " (行:" << lineNumber << ", 来源:" << sourceID << ")";
|
||||
emit consoleMessage(level, message, lineNumber, sourceID);
|
||||
}
|
||||
};
|
||||
|
||||
// 前向声明
|
||||
class MapPage;
|
||||
class ThreatAreaDialog;
|
||||
class PathPlanningDialog;
|
||||
class AreaCoverageDialog;
|
||||
|
||||
#ifdef INCLUDE_AREA_SEARCH
|
||||
class AreaSearchDialog;
|
||||
#endif
|
||||
|
||||
class ThreatAreaDialog : public QDialog {
|
||||
Q_OBJECT
|
||||
public:
|
||||
ThreatAreaDialog(QWidget* parent = nullptr, MapPage* mapPage = nullptr);
|
||||
private slots:
|
||||
void addArea();
|
||||
void updateThreatStats();
|
||||
void startDrawingThreatArea();
|
||||
void onShapeChanged(int index);
|
||||
void handleDrawingClick(double lng, double lat);
|
||||
void finishDrawing();
|
||||
void editArea();
|
||||
void deleteArea();
|
||||
private:
|
||||
QComboBox* typeCombo_;
|
||||
QDateTimeEdit* startTimeEdit_;
|
||||
QDateTimeEdit* endTimeEdit_;
|
||||
QComboBox* shapeCombo_;
|
||||
QComboBox* colorCombo_;
|
||||
QTableWidget* areaTable_;
|
||||
QLineEdit* coordInput_;
|
||||
QPushButton* drawOnMapBtn_;
|
||||
|
||||
// 新增输入字段
|
||||
QWidget* circleInputWidget_;
|
||||
QWidget* rectangleInputWidget_;
|
||||
QLineEdit* centerLngInput_;
|
||||
QLineEdit* centerLatInput_;
|
||||
QLineEdit* radiusInput_;
|
||||
QTableWidget* rectPointsTable_;
|
||||
|
||||
MapPage* mapPage_;
|
||||
QString currentShape_;
|
||||
QList<QPair<double, double>> drawingPoints_;
|
||||
QComboBox* levelCombo_;
|
||||
QPushButton* editBtn_;
|
||||
QPushButton* deleteBtn_;
|
||||
int selectedRow_ = -1;
|
||||
};
|
||||
|
||||
class MapPage;
|
||||
|
||||
class PathPlanningDialog : public QDialog {
|
||||
Q_OBJECT
|
||||
public:
|
||||
PathPlanningDialog(QWidget* parent = nullptr, MapPage* mapPage = nullptr);
|
||||
QString getStartCoord() const { return startInput_->text(); }
|
||||
QString getEndCoord() const { return endInput_->text(); }
|
||||
QString getPathData() const;
|
||||
private slots:
|
||||
void planPath();
|
||||
void applyStartPoint();
|
||||
void applyEndPoint();
|
||||
void onMapClick(double lng, double lat);
|
||||
void clearPath();
|
||||
private:
|
||||
QLineEdit* startInput_;
|
||||
QLineEdit* endInput_;
|
||||
QTableWidget* pathTable_;
|
||||
QPushButton* planBtn_;
|
||||
QPushButton* clearBtn_;
|
||||
QPushButton* applyStartBtn_;
|
||||
QPushButton* applyEndBtn_;
|
||||
QPushButton* selectStartBtn_;
|
||||
QPushButton* selectEndBtn_;
|
||||
MapPage* mapPage_;
|
||||
QString pathData_;
|
||||
bool selectingStart_ = false;
|
||||
bool selectingEnd_ = false;
|
||||
};
|
||||
|
||||
class AreaCoverageDialog : public QDialog {
|
||||
Q_OBJECT
|
||||
public:
|
||||
AreaCoverageDialog(QWidget* parent = nullptr, MapPage* mapPage = nullptr);
|
||||
QString getCoveragePathData() const { return coveragePathData_; }
|
||||
private slots:
|
||||
void onShapeChanged(int index);
|
||||
void addVertex();
|
||||
void removeVertex();
|
||||
void selectVertexOnMap();
|
||||
void planCoveragePath();
|
||||
void clearCoverage();
|
||||
void onMapClick(double lng, double lat);
|
||||
private:
|
||||
QWidget* setupCircleInputs();
|
||||
QWidget* setupPolygonInputs();
|
||||
void generateMockCoveragePath();
|
||||
QComboBox* shapeCombo_;
|
||||
QLineEdit* centerLngInput_;
|
||||
QLineEdit* centerLatInput_;
|
||||
QLineEdit* radiusInput_;
|
||||
QTableWidget* verticesTable_;
|
||||
QPushButton* addVertexBtn_;
|
||||
QPushButton* removeVertexBtn_;
|
||||
QPushButton* selectVertexBtn_;
|
||||
QButtonGroup* modeGroup_;
|
||||
QRadioButton* efficiencyRadio_;
|
||||
QRadioButton* fullRangeRadio_;
|
||||
QSpinBox* droneCountSpin_;
|
||||
QTableWidget* pathTable_;
|
||||
QPushButton* planBtn_;
|
||||
QPushButton* clearBtn_;
|
||||
QWidget* circleWidget_;
|
||||
QWidget* polygonWidget_;
|
||||
MapPage* mapPage_;
|
||||
QString coveragePathData_;
|
||||
bool selectingVertex_ = false;
|
||||
int currentVertexRow_ = -1;
|
||||
QList<QPair<double, double>> vertices_;
|
||||
};
|
||||
|
||||
class LocateDialog : public QDialog {
|
||||
Q_OBJECT
|
||||
public:
|
||||
LocateDialog(QWidget* parent = nullptr);
|
||||
double getLongitude() const;
|
||||
double getLatitude() const;
|
||||
private slots:
|
||||
void onConfirm();
|
||||
private:
|
||||
QLineEdit* lngInput_;
|
||||
QLineEdit* latInput_;
|
||||
double lng_;
|
||||
double lat_;
|
||||
};
|
||||
|
||||
#ifdef INCLUDE_AREA_SEARCH
|
||||
class AreaSearchDialog : public QDialog {
|
||||
Q_OBJECT
|
||||
public:
|
||||
AreaSearchDialog(QWidget* parent = nullptr);
|
||||
private slots:
|
||||
void onConfirm();
|
||||
private:
|
||||
QLineEdit* minLngInput_;
|
||||
QLineEdit* minLatInput_;
|
||||
QLineEdit* maxLngInput_;
|
||||
QLineEdit* maxLatInput_;
|
||||
};
|
||||
#endif
|
||||
|
||||
class MapPage : public QWidget {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit MapPage(QWidget* parent = nullptr);
|
||||
~MapPage();
|
||||
QWebEngineView* getMapView() const { return mapView_; }
|
||||
|
||||
QComboBox* getHeightCombo() const { return heightCombo_; }
|
||||
QPushButton* getDownloadMapBtn() const { return downloadMapBtn_; }
|
||||
|
||||
signals:
|
||||
void heightChanged(const QString& height);
|
||||
void downloadMapRequested();
|
||||
void setThreatRequested();
|
||||
void pathPlanningRequested();
|
||||
void areaCoverageRequested();
|
||||
void mapClicked(double lng, double lat);
|
||||
void mapReady(); // 新信号:地图初始化完成
|
||||
|
||||
private slots:
|
||||
void onHeightChanged();
|
||||
void onDownloadMapClicked();
|
||||
void onSetThreatClicked();
|
||||
void onPathPlanningClicked();
|
||||
void onAreaCoverageClicked();
|
||||
#ifdef INCLUDE_AREA_SEARCH
|
||||
void onAreaSearchClicked();
|
||||
#endif
|
||||
void onSearchMapClicked();
|
||||
void onConsoleMessage(QWebEnginePage::JavaScriptConsoleMessageLevel level, const QString &message, int lineNumber, const QString &sourceID);
|
||||
void onPageLoaded(bool ok);
|
||||
void loadSavedPath();
|
||||
void onMapReadyFromJS();
|
||||
|
||||
public slots:
|
||||
void addClickListener();
|
||||
void removeClickListener();
|
||||
void handleMapClick(double lng, double lat);
|
||||
void visualizePath(const QString& pathData);
|
||||
void clearPathOverlays();
|
||||
void runMapJavaScript(const QString& js);
|
||||
double parseLng(const QString& coord) const;
|
||||
double parseLat(const QString& coord) const;
|
||||
void showMarker(double lng, double lat, const QString& label, const QString& color, int index);
|
||||
void visualizeCoveragePath(const QString& pathData);
|
||||
void clearCoverageOverlays();
|
||||
void visualizeCoverageAreaCircle(double centerLng, double centerLat, double radiusKm);
|
||||
void visualizeCoverageAreaPolygon(const QList<QPair<double,double>>& vertices);
|
||||
void enableDrawingMode(const QString& shape);
|
||||
void disableDrawingMode();
|
||||
void addThreatOverlay(const QString& shape, const QVariantMap& params);
|
||||
void removeThreatOverlay(int index);
|
||||
|
||||
private:
|
||||
void setupUI();
|
||||
void setupMapControls();
|
||||
void setupMapArea();
|
||||
void setupControlBar();
|
||||
void enableGeolocation();
|
||||
QWidget* createMapControlsWidget();
|
||||
QWidget* createControlBarWidget();
|
||||
|
||||
QFrame* mapArea_;
|
||||
QComboBox* heightCombo_;
|
||||
QPushButton* downloadMapBtn_;
|
||||
QWebEngineView* mapView_;
|
||||
QPushButton* setThreatBtn_;
|
||||
QPushButton* pathPlanningBtn_;
|
||||
QPushButton* areaCoverageBtn_;
|
||||
#ifdef INCLUDE_AREA_SEARCH
|
||||
QPushButton* areaSearchBtn_;
|
||||
#endif
|
||||
QLineEdit* coordInput_;
|
||||
QPushButton* locateBtn_;
|
||||
QPushButton* searchMapBtn_;
|
||||
ThreatAreaDialog* threatDialog_;
|
||||
PathPlanningDialog* planningDialog_;
|
||||
AreaCoverageDialog* coverageDialog_;
|
||||
LocateDialog* locateDialog_;
|
||||
#ifdef INCLUDE_AREA_SEARCH
|
||||
AreaSearchDialog* searchDialog_;
|
||||
#endif
|
||||
int baseFontSize_ = 10;
|
||||
QString pathOverlayId_ = "pathOverlay";
|
||||
QString startMarkerId_ = "startMarker";
|
||||
QString endMarkerId_ = "endMarker";
|
||||
QString currentPathData_;
|
||||
MapBridge* bridge_;
|
||||
QWebChannel* channel_;
|
||||
QString coverageOverlayId_ = "coverageOverlay";
|
||||
QString areaOverlayId_ = "areaOverlay";
|
||||
QString currentCoveragePathData_;
|
||||
bool isDrawing_ = false;
|
||||
QString drawingShape_;
|
||||
QList<QPair<double, double>> drawingPoints_;
|
||||
QList<QVariantMap> threatAreas_;
|
||||
bool isMapReady_ = false; // 跟踪地图就绪状态
|
||||
|
||||
public:
|
||||
const QList<QVariantMap>& getThreatAreas() const { return threatAreas_; }
|
||||
};
|
||||
|
||||
#endif // MAPPAGE_H
|
||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,252 @@
|
||||
#include "taskdata.h"
|
||||
#include <QDebug>
|
||||
|
||||
/**
|
||||
* 任务数据模型实现
|
||||
* 负责管理单个任务的所有状态信息和操作
|
||||
*/
|
||||
|
||||
TaskData::TaskData(const QString& id, const QString& droneId, TaskType type, QObject* parent)
|
||||
: QObject(parent)
|
||||
, id_(id)
|
||||
, droneId_(droneId)
|
||||
, type_(type)
|
||||
, status_(TaskStatus::Pending)
|
||||
, createdTime_(QDateTime::currentDateTime())
|
||||
{
|
||||
}
|
||||
|
||||
void TaskData::setStatus(TaskStatus status) {
|
||||
if (status_ != status) {
|
||||
status_ = status;
|
||||
emit statusChanged(status_);
|
||||
}
|
||||
}
|
||||
|
||||
void TaskData::setDescription(const QString& description) {
|
||||
description_ = description;
|
||||
}
|
||||
|
||||
void TaskData::setStartPosition(const QVector3D& pos) {
|
||||
startPosition_ = pos;
|
||||
}
|
||||
|
||||
void TaskData::setEndPosition(const QVector3D& pos) {
|
||||
endPosition_ = pos;
|
||||
}
|
||||
|
||||
void TaskData::addWaypoint(const QVector3D& waypoint) {
|
||||
waypoints_.append(waypoint);
|
||||
}
|
||||
|
||||
void TaskData::setWaypoints(const QVector<QVector3D>& waypoints) {
|
||||
waypoints_ = waypoints;
|
||||
}
|
||||
|
||||
void TaskData::startTask() {
|
||||
if (status_ == TaskStatus::Pending) {
|
||||
setStatus(TaskStatus::InProgress);
|
||||
startTime_ = QDateTime::currentDateTime();
|
||||
emit taskStarted();
|
||||
}
|
||||
}
|
||||
|
||||
void TaskData::completeTask() {
|
||||
if (status_ == TaskStatus::InProgress) {
|
||||
setStatus(TaskStatus::Completed);
|
||||
endTime_ = QDateTime::currentDateTime();
|
||||
emit taskCompleted();
|
||||
}
|
||||
}
|
||||
|
||||
void TaskData::cancelTask() {
|
||||
if (status_ == TaskStatus::Pending || status_ == TaskStatus::InProgress) {
|
||||
setStatus(TaskStatus::Cancelled);
|
||||
endTime_ = QDateTime::currentDateTime();
|
||||
emit taskCancelled();
|
||||
}
|
||||
}
|
||||
|
||||
void TaskData::failTask(const QString& reason) {
|
||||
if (status_ == TaskStatus::InProgress) {
|
||||
failureReason_ = reason;
|
||||
setStatus(TaskStatus::Failed);
|
||||
endTime_ = QDateTime::currentDateTime();
|
||||
emit taskFailed(reason);
|
||||
}
|
||||
}
|
||||
|
||||
void TaskData::recallTask() {
|
||||
if (status_ == TaskStatus::InProgress) {
|
||||
setStatus(TaskStatus::Recalled);
|
||||
endTime_ = QDateTime::currentDateTime();
|
||||
emit taskRecalled();
|
||||
}
|
||||
}
|
||||
|
||||
int TaskData::getDuration() const {
|
||||
if (startTime_.isValid() && endTime_.isValid()) {
|
||||
return startTime_.secsTo(endTime_);
|
||||
} else if (startTime_.isValid()) {
|
||||
return startTime_.secsTo(QDateTime::currentDateTime());
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
QString TaskData::getStatusString() const {
|
||||
switch (status_) {
|
||||
case TaskStatus::Pending: return "待执行";
|
||||
case TaskStatus::InProgress: return "执行中";
|
||||
case TaskStatus::Completed: return "执行成功";
|
||||
case TaskStatus::Cancelled: return "任务取消";
|
||||
case TaskStatus::Failed: return "执行失败";
|
||||
case TaskStatus::Recalled: return "已召回";
|
||||
default: return "未知状态";
|
||||
}
|
||||
}
|
||||
|
||||
QString TaskData::getTypeString() const {
|
||||
switch (type_) {
|
||||
case TaskType::Patrol: return "巡逻任务";
|
||||
case TaskType::Inspection: return "巡检任务";
|
||||
case TaskType::Delivery: return "配送任务";
|
||||
case TaskType::Search: return "搜索任务";
|
||||
case TaskType::Emergency: return "紧急任务";
|
||||
default: return "未知类型";
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 任务管理器实现
|
||||
* 负责管理多个任务的生命周期和状态
|
||||
*/
|
||||
|
||||
TaskManager::TaskManager(QObject* parent)
|
||||
: QObject(parent)
|
||||
{
|
||||
}
|
||||
|
||||
TaskManager::~TaskManager() {
|
||||
qDeleteAll(tasks_);
|
||||
}
|
||||
|
||||
TaskData* TaskManager::createTask(const QString& droneId, TaskType type, const QString& description) {
|
||||
QString taskId = QString("TASK_%1_%2").arg(droneId).arg(QDateTime::currentDateTime().toString("yyyyMMdd_hhmmss"));
|
||||
|
||||
auto* task = new TaskData(taskId, droneId, type, this);
|
||||
task->setDescription(description);
|
||||
|
||||
tasks_.append(task);
|
||||
|
||||
// 连接信号
|
||||
connect(task, &TaskData::statusChanged, this, [this, taskId](TaskStatus status) {
|
||||
emit taskStatusChanged(taskId, status);
|
||||
});
|
||||
|
||||
emit taskCreated(taskId);
|
||||
return task;
|
||||
}
|
||||
|
||||
void TaskManager::removeTask(const QString& taskId) {
|
||||
for (int i = 0; i < tasks_.size(); ++i) {
|
||||
if (tasks_[i]->getId() == taskId) {
|
||||
tasks_[i]->deleteLater();
|
||||
tasks_.removeAt(i);
|
||||
emit taskRemoved(taskId);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
TaskData* TaskManager::getTask(const QString& taskId) const {
|
||||
for (auto* task : tasks_) {
|
||||
if (task->getId() == taskId) {
|
||||
return task;
|
||||
}
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
QVector<TaskData*> TaskManager::getAllTasks() const {
|
||||
return tasks_;
|
||||
}
|
||||
|
||||
QVector<TaskData*> TaskManager::getTasksByDrone(const QString& droneId) const {
|
||||
QVector<TaskData*> result;
|
||||
for (auto* task : tasks_) {
|
||||
if (task->getDroneId() == droneId) {
|
||||
result.append(task);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
QVector<TaskData*> TaskManager::getTasksByStatus(TaskStatus status) const {
|
||||
QVector<TaskData*> result;
|
||||
for (auto* task : tasks_) {
|
||||
if (task->getStatus() == status) {
|
||||
result.append(task);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
int TaskManager::getTaskCount() const {
|
||||
return tasks_.size();
|
||||
}
|
||||
|
||||
int TaskManager::getTaskCountByStatus(TaskStatus status) const {
|
||||
int count = 0;
|
||||
for (auto* task : tasks_) {
|
||||
if (task->getStatus() == status) {
|
||||
count++;
|
||||
}
|
||||
}
|
||||
return count;
|
||||
}
|
||||
|
||||
int TaskManager::getTaskCountByDrone(const QString& droneId) const {
|
||||
int count = 0;
|
||||
for (auto* task : tasks_) {
|
||||
if (task->getDroneId() == droneId) {
|
||||
count++;
|
||||
}
|
||||
}
|
||||
return count;
|
||||
}
|
||||
|
||||
void TaskManager::startTask(const QString& taskId) {
|
||||
auto* task = getTask(taskId);
|
||||
if (task) {
|
||||
task->startTask();
|
||||
}
|
||||
}
|
||||
|
||||
void TaskManager::completeTask(const QString& taskId) {
|
||||
auto* task = getTask(taskId);
|
||||
if (task) {
|
||||
task->completeTask();
|
||||
}
|
||||
}
|
||||
|
||||
void TaskManager::cancelTask(const QString& taskId) {
|
||||
auto* task = getTask(taskId);
|
||||
if (task) {
|
||||
task->cancelTask();
|
||||
}
|
||||
}
|
||||
|
||||
void TaskManager::failTask(const QString& taskId, const QString& reason) {
|
||||
auto* task = getTask(taskId);
|
||||
if (task) {
|
||||
task->failTask(reason);
|
||||
}
|
||||
}
|
||||
|
||||
void TaskManager::recallTask(const QString& taskId) {
|
||||
auto* task = getTask(taskId);
|
||||
if (task) {
|
||||
task->recallTask();
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,117 @@
|
||||
#ifndef TASKDETAILSPAGE_H
|
||||
#define TASKDETAILSPAGE_H
|
||||
|
||||
#include <QWidget>
|
||||
#include <QFrame>
|
||||
#include <QGroupBox>
|
||||
#include <QVBoxLayout>
|
||||
#include <QHBoxLayout>
|
||||
#include <QTableWidget>
|
||||
#include <QPushButton>
|
||||
#include <QLabel>
|
||||
#include <QComboBox>
|
||||
#include <QHeaderView>
|
||||
#include <QMessageBox>
|
||||
#include <QTimer>
|
||||
#include <QProgressBar>
|
||||
#include "../pages/taskdata.h"
|
||||
#include "../models/dronedata.h"
|
||||
|
||||
/**
|
||||
* 任务执行详情页面类
|
||||
* 负责展示所有任务的执行状态、进度和详细信息
|
||||
*/
|
||||
class TaskDetailsPage : public QWidget {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit TaskDetailsPage(QWidget* parent = nullptr);
|
||||
~TaskDetailsPage();
|
||||
|
||||
// 设置管理器
|
||||
void setTaskManager(TaskManager* taskManager);
|
||||
void setDroneManager(DroneManager* droneManager);
|
||||
|
||||
signals:
|
||||
void taskActionRequested(const QString& taskId, const QString& action);
|
||||
|
||||
private slots:
|
||||
void onRefreshTasks();
|
||||
void onFilterChanged();
|
||||
void onTaskSelectionChanged();
|
||||
void onStartTaskClicked();
|
||||
void onCompleteTaskClicked();
|
||||
void onCancelTaskClicked();
|
||||
void onFailTaskClicked();
|
||||
void onRecallTaskClicked();
|
||||
void onTaskStatusChanged(const QString& taskId, TaskStatus status);
|
||||
void onTaskDataChanged();
|
||||
|
||||
private:
|
||||
void setupUI();
|
||||
void setupTaskTable();
|
||||
void setupControlPanel();
|
||||
void setupStatusPanel();
|
||||
void setupFilterPanel();
|
||||
void updateTaskTable();
|
||||
void updateStatusDisplay();
|
||||
void updateControlButtons();
|
||||
void addTaskToTable(TaskData* task);
|
||||
void updateTaskRow(TaskData* task);
|
||||
void removeTaskFromTable(const QString& taskId);
|
||||
|
||||
// 获取状态颜色和图标
|
||||
QString getStatusColor(TaskStatus status) const;
|
||||
QString getStatusIcon(TaskStatus status) const;
|
||||
QString getTypeColor(TaskType type) const;
|
||||
|
||||
// 格式化显示
|
||||
QString formatDateTime(const QDateTime& dateTime) const;
|
||||
QString formatDuration(int seconds) const;
|
||||
QString formatPosition(const QVector3D& pos) const;
|
||||
|
||||
// UI组件
|
||||
QFrame* mainFrame_;
|
||||
QTableWidget* taskTable_;
|
||||
QGroupBox* filterGroup_;
|
||||
QGroupBox* controlGroup_;
|
||||
QGroupBox* statusGroup_;
|
||||
|
||||
// 筛选面板组件
|
||||
QComboBox* statusFilter_;
|
||||
QComboBox* droneFilter_;
|
||||
QComboBox* typeFilter_;
|
||||
QPushButton* clearFilterBtn_;
|
||||
|
||||
// 控制面板组件
|
||||
QPushButton* startTaskBtn_;
|
||||
QPushButton* completeTaskBtn_;
|
||||
QPushButton* cancelTaskBtn_;
|
||||
QPushButton* failTaskBtn_;
|
||||
QPushButton* recallTaskBtn_;
|
||||
QPushButton* refreshBtn_;
|
||||
|
||||
// 状态显示组件
|
||||
QLabel* totalTasksLabel_;
|
||||
QLabel* pendingTasksLabel_;
|
||||
QLabel* inProgressTasksLabel_;
|
||||
QLabel* completedTasksLabel_;
|
||||
QLabel* failedTasksLabel_;
|
||||
QLabel* cancelledTasksLabel_;
|
||||
QLabel* recalledTasksLabel_;
|
||||
QLabel* selectedTaskLabel_;
|
||||
QProgressBar* progressBar_;
|
||||
|
||||
// 数据管理
|
||||
TaskManager* taskManager_;
|
||||
DroneManager* droneManager_;
|
||||
QTimer* refreshTimer_;
|
||||
QString selectedTaskId_;
|
||||
|
||||
// 筛选条件
|
||||
TaskStatus currentStatusFilter_;
|
||||
QString currentDroneFilter_;
|
||||
TaskType currentTypeFilter_;
|
||||
};
|
||||
|
||||
#endif // TASKDETAILSPAGE_H
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,198 @@
|
||||
/****************************************************************************
|
||||
** Meta object code from reading C++ file 'dronemanagementpage.h'
|
||||
**
|
||||
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.3)
|
||||
**
|
||||
** WARNING! All changes made in this file will be lost!
|
||||
*****************************************************************************/
|
||||
|
||||
#include <memory>
|
||||
#include "../Src/pages/dronemanagementpage.h"
|
||||
#include <QtCore/qbytearray.h>
|
||||
#include <QtCore/qmetatype.h>
|
||||
#if !defined(Q_MOC_OUTPUT_REVISION)
|
||||
#error "The header file 'dronemanagementpage.h' doesn't include <QObject>."
|
||||
#elif Q_MOC_OUTPUT_REVISION != 67
|
||||
#error "This file was generated using the moc from 5.15.3. It"
|
||||
#error "cannot be used with the include files from this version of Qt."
|
||||
#error "(The moc has changed too much.)"
|
||||
#endif
|
||||
|
||||
QT_BEGIN_MOC_NAMESPACE
|
||||
QT_WARNING_PUSH
|
||||
QT_WARNING_DISABLE_DEPRECATED
|
||||
struct qt_meta_stringdata_DroneManagementPage_t {
|
||||
QByteArrayData data[15];
|
||||
char stringdata0[254];
|
||||
};
|
||||
#define QT_MOC_LITERAL(idx, ofs, len) \
|
||||
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
|
||||
qptrdiff(offsetof(qt_meta_stringdata_DroneManagementPage_t, stringdata0) + ofs \
|
||||
- idx * sizeof(QByteArrayData)) \
|
||||
)
|
||||
static const qt_meta_stringdata_DroneManagementPage_t qt_meta_stringdata_DroneManagementPage = {
|
||||
{
|
||||
QT_MOC_LITERAL(0, 0, 19), // "DroneManagementPage"
|
||||
QT_MOC_LITERAL(1, 20, 13), // "droneSelected"
|
||||
QT_MOC_LITERAL(2, 34, 0), // ""
|
||||
QT_MOC_LITERAL(3, 35, 7), // "droneId"
|
||||
QT_MOC_LITERAL(4, 43, 24), // "droneConnectionRequested"
|
||||
QT_MOC_LITERAL(5, 68, 7), // "connect"
|
||||
QT_MOC_LITERAL(6, 76, 17), // "onAddDroneClicked"
|
||||
QT_MOC_LITERAL(7, 94, 20), // "onRemoveDroneClicked"
|
||||
QT_MOC_LITERAL(8, 115, 21), // "onConnectDroneClicked"
|
||||
QT_MOC_LITERAL(9, 137, 24), // "onDisconnectDroneClicked"
|
||||
QT_MOC_LITERAL(10, 162, 23), // "onDroneSelectionChanged"
|
||||
QT_MOC_LITERAL(11, 186, 13), // "onRefreshData"
|
||||
QT_MOC_LITERAL(12, 200, 18), // "onDroneDataChanged"
|
||||
QT_MOC_LITERAL(13, 219, 24), // "onDroneConnectionChanged"
|
||||
QT_MOC_LITERAL(14, 244, 9) // "connected"
|
||||
|
||||
},
|
||||
"DroneManagementPage\0droneSelected\0\0"
|
||||
"droneId\0droneConnectionRequested\0"
|
||||
"connect\0onAddDroneClicked\0"
|
||||
"onRemoveDroneClicked\0onConnectDroneClicked\0"
|
||||
"onDisconnectDroneClicked\0"
|
||||
"onDroneSelectionChanged\0onRefreshData\0"
|
||||
"onDroneDataChanged\0onDroneConnectionChanged\0"
|
||||
"connected"
|
||||
};
|
||||
#undef QT_MOC_LITERAL
|
||||
|
||||
static const uint qt_meta_data_DroneManagementPage[] = {
|
||||
|
||||
// content:
|
||||
8, // revision
|
||||
0, // classname
|
||||
0, 0, // classinfo
|
||||
10, 14, // methods
|
||||
0, 0, // properties
|
||||
0, 0, // enums/sets
|
||||
0, 0, // constructors
|
||||
0, // flags
|
||||
2, // signalCount
|
||||
|
||||
// signals: name, argc, parameters, tag, flags
|
||||
1, 1, 64, 2, 0x06 /* Public */,
|
||||
4, 2, 67, 2, 0x06 /* Public */,
|
||||
|
||||
// slots: name, argc, parameters, tag, flags
|
||||
6, 0, 72, 2, 0x08 /* Private */,
|
||||
7, 0, 73, 2, 0x08 /* Private */,
|
||||
8, 0, 74, 2, 0x08 /* Private */,
|
||||
9, 0, 75, 2, 0x08 /* Private */,
|
||||
10, 0, 76, 2, 0x08 /* Private */,
|
||||
11, 0, 77, 2, 0x08 /* Private */,
|
||||
12, 0, 78, 2, 0x08 /* Private */,
|
||||
13, 1, 79, 2, 0x08 /* Private */,
|
||||
|
||||
// signals: parameters
|
||||
QMetaType::Void, QMetaType::QString, 3,
|
||||
QMetaType::Void, QMetaType::QString, QMetaType::Bool, 3, 5,
|
||||
|
||||
// slots: parameters
|
||||
QMetaType::Void,
|
||||
QMetaType::Void,
|
||||
QMetaType::Void,
|
||||
QMetaType::Void,
|
||||
QMetaType::Void,
|
||||
QMetaType::Void,
|
||||
QMetaType::Void,
|
||||
QMetaType::Void, QMetaType::Bool, 14,
|
||||
|
||||
0 // eod
|
||||
};
|
||||
|
||||
void DroneManagementPage::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
|
||||
{
|
||||
if (_c == QMetaObject::InvokeMetaMethod) {
|
||||
auto *_t = static_cast<DroneManagementPage *>(_o);
|
||||
(void)_t;
|
||||
switch (_id) {
|
||||
case 0: _t->droneSelected((*reinterpret_cast< const QString(*)>(_a[1]))); break;
|
||||
case 1: _t->droneConnectionRequested((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< bool(*)>(_a[2]))); break;
|
||||
case 2: _t->onAddDroneClicked(); break;
|
||||
case 3: _t->onRemoveDroneClicked(); break;
|
||||
case 4: _t->onConnectDroneClicked(); break;
|
||||
case 5: _t->onDisconnectDroneClicked(); break;
|
||||
case 6: _t->onDroneSelectionChanged(); break;
|
||||
case 7: _t->onRefreshData(); break;
|
||||
case 8: _t->onDroneDataChanged(); break;
|
||||
case 9: _t->onDroneConnectionChanged((*reinterpret_cast< bool(*)>(_a[1]))); break;
|
||||
default: ;
|
||||
}
|
||||
} else if (_c == QMetaObject::IndexOfMethod) {
|
||||
int *result = reinterpret_cast<int *>(_a[0]);
|
||||
{
|
||||
using _t = void (DroneManagementPage::*)(const QString & );
|
||||
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&DroneManagementPage::droneSelected)) {
|
||||
*result = 0;
|
||||
return;
|
||||
}
|
||||
}
|
||||
{
|
||||
using _t = void (DroneManagementPage::*)(const QString & , bool );
|
||||
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&DroneManagementPage::droneConnectionRequested)) {
|
||||
*result = 1;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
QT_INIT_METAOBJECT const QMetaObject DroneManagementPage::staticMetaObject = { {
|
||||
QMetaObject::SuperData::link<QWidget::staticMetaObject>(),
|
||||
qt_meta_stringdata_DroneManagementPage.data,
|
||||
qt_meta_data_DroneManagementPage,
|
||||
qt_static_metacall,
|
||||
nullptr,
|
||||
nullptr
|
||||
} };
|
||||
|
||||
|
||||
const QMetaObject *DroneManagementPage::metaObject() const
|
||||
{
|
||||
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
|
||||
}
|
||||
|
||||
void *DroneManagementPage::qt_metacast(const char *_clname)
|
||||
{
|
||||
if (!_clname) return nullptr;
|
||||
if (!strcmp(_clname, qt_meta_stringdata_DroneManagementPage.stringdata0))
|
||||
return static_cast<void*>(this);
|
||||
return QWidget::qt_metacast(_clname);
|
||||
}
|
||||
|
||||
int DroneManagementPage::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
|
||||
{
|
||||
_id = QWidget::qt_metacall(_c, _id, _a);
|
||||
if (_id < 0)
|
||||
return _id;
|
||||
if (_c == QMetaObject::InvokeMetaMethod) {
|
||||
if (_id < 10)
|
||||
qt_static_metacall(this, _c, _id, _a);
|
||||
_id -= 10;
|
||||
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
|
||||
if (_id < 10)
|
||||
*reinterpret_cast<int*>(_a[0]) = -1;
|
||||
_id -= 10;
|
||||
}
|
||||
return _id;
|
||||
}
|
||||
|
||||
// SIGNAL 0
|
||||
void DroneManagementPage::droneSelected(const QString & _t1)
|
||||
{
|
||||
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
|
||||
QMetaObject::activate(this, &staticMetaObject, 0, _a);
|
||||
}
|
||||
|
||||
// SIGNAL 1
|
||||
void DroneManagementPage::droneConnectionRequested(const QString & _t1, bool _t2)
|
||||
{
|
||||
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))), const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t2))) };
|
||||
QMetaObject::activate(this, &staticMetaObject, 1, _a);
|
||||
}
|
||||
QT_WARNING_POP
|
||||
QT_END_MOC_NAMESPACE
|
||||
Binary file not shown.
Binary file not shown.
@ -0,0 +1,166 @@
|
||||
/****************************************************************************
|
||||
** Meta object code from reading C++ file 'mapbridge.h'
|
||||
**
|
||||
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.3)
|
||||
**
|
||||
** WARNING! All changes made in this file will be lost!
|
||||
*****************************************************************************/
|
||||
|
||||
#include <memory>
|
||||
#include "../Src/pages/mapbridge.h"
|
||||
#include <QtCore/qbytearray.h>
|
||||
#include <QtCore/qmetatype.h>
|
||||
#if !defined(Q_MOC_OUTPUT_REVISION)
|
||||
#error "The header file 'mapbridge.h' doesn't include <QObject>."
|
||||
#elif Q_MOC_OUTPUT_REVISION != 67
|
||||
#error "This file was generated using the moc from 5.15.3. It"
|
||||
#error "cannot be used with the include files from this version of Qt."
|
||||
#error "(The moc has changed too much.)"
|
||||
#endif
|
||||
|
||||
QT_BEGIN_MOC_NAMESPACE
|
||||
QT_WARNING_PUSH
|
||||
QT_WARNING_DISABLE_DEPRECATED
|
||||
struct qt_meta_stringdata_MapBridge_t {
|
||||
QByteArrayData data[8];
|
||||
char stringdata0[58];
|
||||
};
|
||||
#define QT_MOC_LITERAL(idx, ofs, len) \
|
||||
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
|
||||
qptrdiff(offsetof(qt_meta_stringdata_MapBridge_t, stringdata0) + ofs \
|
||||
- idx * sizeof(QByteArrayData)) \
|
||||
)
|
||||
static const qt_meta_stringdata_MapBridge_t qt_meta_stringdata_MapBridge = {
|
||||
{
|
||||
QT_MOC_LITERAL(0, 0, 9), // "MapBridge"
|
||||
QT_MOC_LITERAL(1, 10, 10), // "mapClicked"
|
||||
QT_MOC_LITERAL(2, 21, 0), // ""
|
||||
QT_MOC_LITERAL(3, 22, 3), // "lng"
|
||||
QT_MOC_LITERAL(4, 26, 3), // "lat"
|
||||
QT_MOC_LITERAL(5, 30, 8), // "mapReady"
|
||||
QT_MOC_LITERAL(6, 39, 7), // "onClick"
|
||||
QT_MOC_LITERAL(7, 47, 10) // "onMapReady"
|
||||
|
||||
},
|
||||
"MapBridge\0mapClicked\0\0lng\0lat\0mapReady\0"
|
||||
"onClick\0onMapReady"
|
||||
};
|
||||
#undef QT_MOC_LITERAL
|
||||
|
||||
static const uint qt_meta_data_MapBridge[] = {
|
||||
|
||||
// content:
|
||||
8, // revision
|
||||
0, // classname
|
||||
0, 0, // classinfo
|
||||
4, 14, // methods
|
||||
0, 0, // properties
|
||||
0, 0, // enums/sets
|
||||
0, 0, // constructors
|
||||
0, // flags
|
||||
2, // signalCount
|
||||
|
||||
// signals: name, argc, parameters, tag, flags
|
||||
1, 2, 34, 2, 0x06 /* Public */,
|
||||
5, 0, 39, 2, 0x06 /* Public */,
|
||||
|
||||
// slots: name, argc, parameters, tag, flags
|
||||
6, 2, 40, 2, 0x0a /* Public */,
|
||||
7, 0, 45, 2, 0x0a /* Public */,
|
||||
|
||||
// signals: parameters
|
||||
QMetaType::Void, QMetaType::Double, QMetaType::Double, 3, 4,
|
||||
QMetaType::Void,
|
||||
|
||||
// slots: parameters
|
||||
QMetaType::Void, QMetaType::Double, QMetaType::Double, 3, 4,
|
||||
QMetaType::Void,
|
||||
|
||||
0 // eod
|
||||
};
|
||||
|
||||
void MapBridge::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
|
||||
{
|
||||
if (_c == QMetaObject::InvokeMetaMethod) {
|
||||
auto *_t = static_cast<MapBridge *>(_o);
|
||||
(void)_t;
|
||||
switch (_id) {
|
||||
case 0: _t->mapClicked((*reinterpret_cast< double(*)>(_a[1])),(*reinterpret_cast< double(*)>(_a[2]))); break;
|
||||
case 1: _t->mapReady(); break;
|
||||
case 2: _t->onClick((*reinterpret_cast< double(*)>(_a[1])),(*reinterpret_cast< double(*)>(_a[2]))); break;
|
||||
case 3: _t->onMapReady(); break;
|
||||
default: ;
|
||||
}
|
||||
} else if (_c == QMetaObject::IndexOfMethod) {
|
||||
int *result = reinterpret_cast<int *>(_a[0]);
|
||||
{
|
||||
using _t = void (MapBridge::*)(double , double );
|
||||
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&MapBridge::mapClicked)) {
|
||||
*result = 0;
|
||||
return;
|
||||
}
|
||||
}
|
||||
{
|
||||
using _t = void (MapBridge::*)();
|
||||
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&MapBridge::mapReady)) {
|
||||
*result = 1;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
QT_INIT_METAOBJECT const QMetaObject MapBridge::staticMetaObject = { {
|
||||
QMetaObject::SuperData::link<QObject::staticMetaObject>(),
|
||||
qt_meta_stringdata_MapBridge.data,
|
||||
qt_meta_data_MapBridge,
|
||||
qt_static_metacall,
|
||||
nullptr,
|
||||
nullptr
|
||||
} };
|
||||
|
||||
|
||||
const QMetaObject *MapBridge::metaObject() const
|
||||
{
|
||||
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
|
||||
}
|
||||
|
||||
void *MapBridge::qt_metacast(const char *_clname)
|
||||
{
|
||||
if (!_clname) return nullptr;
|
||||
if (!strcmp(_clname, qt_meta_stringdata_MapBridge.stringdata0))
|
||||
return static_cast<void*>(this);
|
||||
return QObject::qt_metacast(_clname);
|
||||
}
|
||||
|
||||
int MapBridge::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
|
||||
{
|
||||
_id = QObject::qt_metacall(_c, _id, _a);
|
||||
if (_id < 0)
|
||||
return _id;
|
||||
if (_c == QMetaObject::InvokeMetaMethod) {
|
||||
if (_id < 4)
|
||||
qt_static_metacall(this, _c, _id, _a);
|
||||
_id -= 4;
|
||||
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
|
||||
if (_id < 4)
|
||||
*reinterpret_cast<int*>(_a[0]) = -1;
|
||||
_id -= 4;
|
||||
}
|
||||
return _id;
|
||||
}
|
||||
|
||||
// SIGNAL 0
|
||||
void MapBridge::mapClicked(double _t1, double _t2)
|
||||
{
|
||||
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))), const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t2))) };
|
||||
QMetaObject::activate(this, &staticMetaObject, 0, _a);
|
||||
}
|
||||
|
||||
// SIGNAL 1
|
||||
void MapBridge::mapReady()
|
||||
{
|
||||
QMetaObject::activate(this, &staticMetaObject, 1, nullptr);
|
||||
}
|
||||
QT_WARNING_POP
|
||||
QT_END_MOC_NAMESPACE
|
||||
Binary file not shown.
Binary file not shown.
@ -0,0 +1,376 @@
|
||||
/****************************************************************************
|
||||
** Meta object code from reading C++ file 'taskdata.h'
|
||||
**
|
||||
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.3)
|
||||
**
|
||||
** WARNING! All changes made in this file will be lost!
|
||||
*****************************************************************************/
|
||||
|
||||
#include <memory>
|
||||
#include "../Src/pages/taskdata.h"
|
||||
#include <QtCore/qbytearray.h>
|
||||
#include <QtCore/qmetatype.h>
|
||||
#if !defined(Q_MOC_OUTPUT_REVISION)
|
||||
#error "The header file 'taskdata.h' doesn't include <QObject>."
|
||||
#elif Q_MOC_OUTPUT_REVISION != 67
|
||||
#error "This file was generated using the moc from 5.15.3. It"
|
||||
#error "cannot be used with the include files from this version of Qt."
|
||||
#error "(The moc has changed too much.)"
|
||||
#endif
|
||||
|
||||
QT_BEGIN_MOC_NAMESPACE
|
||||
QT_WARNING_PUSH
|
||||
QT_WARNING_DISABLE_DEPRECATED
|
||||
struct qt_meta_stringdata_TaskData_t {
|
||||
QByteArrayData data[11];
|
||||
char stringdata0[113];
|
||||
};
|
||||
#define QT_MOC_LITERAL(idx, ofs, len) \
|
||||
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
|
||||
qptrdiff(offsetof(qt_meta_stringdata_TaskData_t, stringdata0) + ofs \
|
||||
- idx * sizeof(QByteArrayData)) \
|
||||
)
|
||||
static const qt_meta_stringdata_TaskData_t qt_meta_stringdata_TaskData = {
|
||||
{
|
||||
QT_MOC_LITERAL(0, 0, 8), // "TaskData"
|
||||
QT_MOC_LITERAL(1, 9, 13), // "statusChanged"
|
||||
QT_MOC_LITERAL(2, 23, 0), // ""
|
||||
QT_MOC_LITERAL(3, 24, 10), // "TaskStatus"
|
||||
QT_MOC_LITERAL(4, 35, 6), // "status"
|
||||
QT_MOC_LITERAL(5, 42, 11), // "taskStarted"
|
||||
QT_MOC_LITERAL(6, 54, 13), // "taskCompleted"
|
||||
QT_MOC_LITERAL(7, 68, 13), // "taskCancelled"
|
||||
QT_MOC_LITERAL(8, 82, 10), // "taskFailed"
|
||||
QT_MOC_LITERAL(9, 93, 6), // "reason"
|
||||
QT_MOC_LITERAL(10, 100, 12) // "taskRecalled"
|
||||
|
||||
},
|
||||
"TaskData\0statusChanged\0\0TaskStatus\0"
|
||||
"status\0taskStarted\0taskCompleted\0"
|
||||
"taskCancelled\0taskFailed\0reason\0"
|
||||
"taskRecalled"
|
||||
};
|
||||
#undef QT_MOC_LITERAL
|
||||
|
||||
static const uint qt_meta_data_TaskData[] = {
|
||||
|
||||
// content:
|
||||
8, // revision
|
||||
0, // classname
|
||||
0, 0, // classinfo
|
||||
6, 14, // methods
|
||||
0, 0, // properties
|
||||
0, 0, // enums/sets
|
||||
0, 0, // constructors
|
||||
0, // flags
|
||||
6, // signalCount
|
||||
|
||||
// signals: name, argc, parameters, tag, flags
|
||||
1, 1, 44, 2, 0x06 /* Public */,
|
||||
5, 0, 47, 2, 0x06 /* Public */,
|
||||
6, 0, 48, 2, 0x06 /* Public */,
|
||||
7, 0, 49, 2, 0x06 /* Public */,
|
||||
8, 1, 50, 2, 0x06 /* Public */,
|
||||
10, 0, 53, 2, 0x06 /* Public */,
|
||||
|
||||
// signals: parameters
|
||||
QMetaType::Void, 0x80000000 | 3, 4,
|
||||
QMetaType::Void,
|
||||
QMetaType::Void,
|
||||
QMetaType::Void,
|
||||
QMetaType::Void, QMetaType::QString, 9,
|
||||
QMetaType::Void,
|
||||
|
||||
0 // eod
|
||||
};
|
||||
|
||||
void TaskData::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
|
||||
{
|
||||
if (_c == QMetaObject::InvokeMetaMethod) {
|
||||
auto *_t = static_cast<TaskData *>(_o);
|
||||
(void)_t;
|
||||
switch (_id) {
|
||||
case 0: _t->statusChanged((*reinterpret_cast< TaskStatus(*)>(_a[1]))); break;
|
||||
case 1: _t->taskStarted(); break;
|
||||
case 2: _t->taskCompleted(); break;
|
||||
case 3: _t->taskCancelled(); break;
|
||||
case 4: _t->taskFailed((*reinterpret_cast< const QString(*)>(_a[1]))); break;
|
||||
case 5: _t->taskRecalled(); break;
|
||||
default: ;
|
||||
}
|
||||
} else if (_c == QMetaObject::IndexOfMethod) {
|
||||
int *result = reinterpret_cast<int *>(_a[0]);
|
||||
{
|
||||
using _t = void (TaskData::*)(TaskStatus );
|
||||
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&TaskData::statusChanged)) {
|
||||
*result = 0;
|
||||
return;
|
||||
}
|
||||
}
|
||||
{
|
||||
using _t = void (TaskData::*)();
|
||||
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&TaskData::taskStarted)) {
|
||||
*result = 1;
|
||||
return;
|
||||
}
|
||||
}
|
||||
{
|
||||
using _t = void (TaskData::*)();
|
||||
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&TaskData::taskCompleted)) {
|
||||
*result = 2;
|
||||
return;
|
||||
}
|
||||
}
|
||||
{
|
||||
using _t = void (TaskData::*)();
|
||||
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&TaskData::taskCancelled)) {
|
||||
*result = 3;
|
||||
return;
|
||||
}
|
||||
}
|
||||
{
|
||||
using _t = void (TaskData::*)(const QString & );
|
||||
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&TaskData::taskFailed)) {
|
||||
*result = 4;
|
||||
return;
|
||||
}
|
||||
}
|
||||
{
|
||||
using _t = void (TaskData::*)();
|
||||
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&TaskData::taskRecalled)) {
|
||||
*result = 5;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
QT_INIT_METAOBJECT const QMetaObject TaskData::staticMetaObject = { {
|
||||
QMetaObject::SuperData::link<QObject::staticMetaObject>(),
|
||||
qt_meta_stringdata_TaskData.data,
|
||||
qt_meta_data_TaskData,
|
||||
qt_static_metacall,
|
||||
nullptr,
|
||||
nullptr
|
||||
} };
|
||||
|
||||
|
||||
const QMetaObject *TaskData::metaObject() const
|
||||
{
|
||||
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
|
||||
}
|
||||
|
||||
void *TaskData::qt_metacast(const char *_clname)
|
||||
{
|
||||
if (!_clname) return nullptr;
|
||||
if (!strcmp(_clname, qt_meta_stringdata_TaskData.stringdata0))
|
||||
return static_cast<void*>(this);
|
||||
return QObject::qt_metacast(_clname);
|
||||
}
|
||||
|
||||
int TaskData::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
|
||||
{
|
||||
_id = QObject::qt_metacall(_c, _id, _a);
|
||||
if (_id < 0)
|
||||
return _id;
|
||||
if (_c == QMetaObject::InvokeMetaMethod) {
|
||||
if (_id < 6)
|
||||
qt_static_metacall(this, _c, _id, _a);
|
||||
_id -= 6;
|
||||
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
|
||||
if (_id < 6)
|
||||
*reinterpret_cast<int*>(_a[0]) = -1;
|
||||
_id -= 6;
|
||||
}
|
||||
return _id;
|
||||
}
|
||||
|
||||
// SIGNAL 0
|
||||
void TaskData::statusChanged(TaskStatus _t1)
|
||||
{
|
||||
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
|
||||
QMetaObject::activate(this, &staticMetaObject, 0, _a);
|
||||
}
|
||||
|
||||
// SIGNAL 1
|
||||
void TaskData::taskStarted()
|
||||
{
|
||||
QMetaObject::activate(this, &staticMetaObject, 1, nullptr);
|
||||
}
|
||||
|
||||
// SIGNAL 2
|
||||
void TaskData::taskCompleted()
|
||||
{
|
||||
QMetaObject::activate(this, &staticMetaObject, 2, nullptr);
|
||||
}
|
||||
|
||||
// SIGNAL 3
|
||||
void TaskData::taskCancelled()
|
||||
{
|
||||
QMetaObject::activate(this, &staticMetaObject, 3, nullptr);
|
||||
}
|
||||
|
||||
// SIGNAL 4
|
||||
void TaskData::taskFailed(const QString & _t1)
|
||||
{
|
||||
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
|
||||
QMetaObject::activate(this, &staticMetaObject, 4, _a);
|
||||
}
|
||||
|
||||
// SIGNAL 5
|
||||
void TaskData::taskRecalled()
|
||||
{
|
||||
QMetaObject::activate(this, &staticMetaObject, 5, nullptr);
|
||||
}
|
||||
struct qt_meta_stringdata_TaskManager_t {
|
||||
QByteArrayData data[8];
|
||||
char stringdata0[80];
|
||||
};
|
||||
#define QT_MOC_LITERAL(idx, ofs, len) \
|
||||
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
|
||||
qptrdiff(offsetof(qt_meta_stringdata_TaskManager_t, stringdata0) + ofs \
|
||||
- idx * sizeof(QByteArrayData)) \
|
||||
)
|
||||
static const qt_meta_stringdata_TaskManager_t qt_meta_stringdata_TaskManager = {
|
||||
{
|
||||
QT_MOC_LITERAL(0, 0, 11), // "TaskManager"
|
||||
QT_MOC_LITERAL(1, 12, 11), // "taskCreated"
|
||||
QT_MOC_LITERAL(2, 24, 0), // ""
|
||||
QT_MOC_LITERAL(3, 25, 6), // "taskId"
|
||||
QT_MOC_LITERAL(4, 32, 11), // "taskRemoved"
|
||||
QT_MOC_LITERAL(5, 44, 17), // "taskStatusChanged"
|
||||
QT_MOC_LITERAL(6, 62, 10), // "TaskStatus"
|
||||
QT_MOC_LITERAL(7, 73, 6) // "status"
|
||||
|
||||
},
|
||||
"TaskManager\0taskCreated\0\0taskId\0"
|
||||
"taskRemoved\0taskStatusChanged\0TaskStatus\0"
|
||||
"status"
|
||||
};
|
||||
#undef QT_MOC_LITERAL
|
||||
|
||||
static const uint qt_meta_data_TaskManager[] = {
|
||||
|
||||
// content:
|
||||
8, // revision
|
||||
0, // classname
|
||||
0, 0, // classinfo
|
||||
3, 14, // methods
|
||||
0, 0, // properties
|
||||
0, 0, // enums/sets
|
||||
0, 0, // constructors
|
||||
0, // flags
|
||||
3, // signalCount
|
||||
|
||||
// signals: name, argc, parameters, tag, flags
|
||||
1, 1, 29, 2, 0x06 /* Public */,
|
||||
4, 1, 32, 2, 0x06 /* Public */,
|
||||
5, 2, 35, 2, 0x06 /* Public */,
|
||||
|
||||
// signals: parameters
|
||||
QMetaType::Void, QMetaType::QString, 3,
|
||||
QMetaType::Void, QMetaType::QString, 3,
|
||||
QMetaType::Void, QMetaType::QString, 0x80000000 | 6, 3, 7,
|
||||
|
||||
0 // eod
|
||||
};
|
||||
|
||||
void TaskManager::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
|
||||
{
|
||||
if (_c == QMetaObject::InvokeMetaMethod) {
|
||||
auto *_t = static_cast<TaskManager *>(_o);
|
||||
(void)_t;
|
||||
switch (_id) {
|
||||
case 0: _t->taskCreated((*reinterpret_cast< const QString(*)>(_a[1]))); break;
|
||||
case 1: _t->taskRemoved((*reinterpret_cast< const QString(*)>(_a[1]))); break;
|
||||
case 2: _t->taskStatusChanged((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< TaskStatus(*)>(_a[2]))); break;
|
||||
default: ;
|
||||
}
|
||||
} else if (_c == QMetaObject::IndexOfMethod) {
|
||||
int *result = reinterpret_cast<int *>(_a[0]);
|
||||
{
|
||||
using _t = void (TaskManager::*)(const QString & );
|
||||
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&TaskManager::taskCreated)) {
|
||||
*result = 0;
|
||||
return;
|
||||
}
|
||||
}
|
||||
{
|
||||
using _t = void (TaskManager::*)(const QString & );
|
||||
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&TaskManager::taskRemoved)) {
|
||||
*result = 1;
|
||||
return;
|
||||
}
|
||||
}
|
||||
{
|
||||
using _t = void (TaskManager::*)(const QString & , TaskStatus );
|
||||
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&TaskManager::taskStatusChanged)) {
|
||||
*result = 2;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
QT_INIT_METAOBJECT const QMetaObject TaskManager::staticMetaObject = { {
|
||||
QMetaObject::SuperData::link<QObject::staticMetaObject>(),
|
||||
qt_meta_stringdata_TaskManager.data,
|
||||
qt_meta_data_TaskManager,
|
||||
qt_static_metacall,
|
||||
nullptr,
|
||||
nullptr
|
||||
} };
|
||||
|
||||
|
||||
const QMetaObject *TaskManager::metaObject() const
|
||||
{
|
||||
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
|
||||
}
|
||||
|
||||
void *TaskManager::qt_metacast(const char *_clname)
|
||||
{
|
||||
if (!_clname) return nullptr;
|
||||
if (!strcmp(_clname, qt_meta_stringdata_TaskManager.stringdata0))
|
||||
return static_cast<void*>(this);
|
||||
return QObject::qt_metacast(_clname);
|
||||
}
|
||||
|
||||
int TaskManager::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
|
||||
{
|
||||
_id = QObject::qt_metacall(_c, _id, _a);
|
||||
if (_id < 0)
|
||||
return _id;
|
||||
if (_c == QMetaObject::InvokeMetaMethod) {
|
||||
if (_id < 3)
|
||||
qt_static_metacall(this, _c, _id, _a);
|
||||
_id -= 3;
|
||||
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
|
||||
if (_id < 3)
|
||||
*reinterpret_cast<int*>(_a[0]) = -1;
|
||||
_id -= 3;
|
||||
}
|
||||
return _id;
|
||||
}
|
||||
|
||||
// SIGNAL 0
|
||||
void TaskManager::taskCreated(const QString & _t1)
|
||||
{
|
||||
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
|
||||
QMetaObject::activate(this, &staticMetaObject, 0, _a);
|
||||
}
|
||||
|
||||
// SIGNAL 1
|
||||
void TaskManager::taskRemoved(const QString & _t1)
|
||||
{
|
||||
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
|
||||
QMetaObject::activate(this, &staticMetaObject, 1, _a);
|
||||
}
|
||||
|
||||
// SIGNAL 2
|
||||
void TaskManager::taskStatusChanged(const QString & _t1, TaskStatus _t2)
|
||||
{
|
||||
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))), const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t2))) };
|
||||
QMetaObject::activate(this, &staticMetaObject, 2, _a);
|
||||
}
|
||||
QT_WARNING_POP
|
||||
QT_END_MOC_NAMESPACE
|
||||
Binary file not shown.
Binary file not shown.
@ -0,0 +1,188 @@
|
||||
/****************************************************************************
|
||||
** Meta object code from reading C++ file 'taskdetailspage.h'
|
||||
**
|
||||
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.3)
|
||||
**
|
||||
** WARNING! All changes made in this file will be lost!
|
||||
*****************************************************************************/
|
||||
|
||||
#include <memory>
|
||||
#include "../Src/pages/taskdetailspage.h"
|
||||
#include <QtCore/qbytearray.h>
|
||||
#include <QtCore/qmetatype.h>
|
||||
#if !defined(Q_MOC_OUTPUT_REVISION)
|
||||
#error "The header file 'taskdetailspage.h' doesn't include <QObject>."
|
||||
#elif Q_MOC_OUTPUT_REVISION != 67
|
||||
#error "This file was generated using the moc from 5.15.3. It"
|
||||
#error "cannot be used with the include files from this version of Qt."
|
||||
#error "(The moc has changed too much.)"
|
||||
#endif
|
||||
|
||||
QT_BEGIN_MOC_NAMESPACE
|
||||
QT_WARNING_PUSH
|
||||
QT_WARNING_DISABLE_DEPRECATED
|
||||
struct qt_meta_stringdata_TaskDetailsPage_t {
|
||||
QByteArrayData data[17];
|
||||
char stringdata0[260];
|
||||
};
|
||||
#define QT_MOC_LITERAL(idx, ofs, len) \
|
||||
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
|
||||
qptrdiff(offsetof(qt_meta_stringdata_TaskDetailsPage_t, stringdata0) + ofs \
|
||||
- idx * sizeof(QByteArrayData)) \
|
||||
)
|
||||
static const qt_meta_stringdata_TaskDetailsPage_t qt_meta_stringdata_TaskDetailsPage = {
|
||||
{
|
||||
QT_MOC_LITERAL(0, 0, 15), // "TaskDetailsPage"
|
||||
QT_MOC_LITERAL(1, 16, 19), // "taskActionRequested"
|
||||
QT_MOC_LITERAL(2, 36, 0), // ""
|
||||
QT_MOC_LITERAL(3, 37, 6), // "taskId"
|
||||
QT_MOC_LITERAL(4, 44, 6), // "action"
|
||||
QT_MOC_LITERAL(5, 51, 14), // "onRefreshTasks"
|
||||
QT_MOC_LITERAL(6, 66, 15), // "onFilterChanged"
|
||||
QT_MOC_LITERAL(7, 82, 22), // "onTaskSelectionChanged"
|
||||
QT_MOC_LITERAL(8, 105, 18), // "onStartTaskClicked"
|
||||
QT_MOC_LITERAL(9, 124, 21), // "onCompleteTaskClicked"
|
||||
QT_MOC_LITERAL(10, 146, 19), // "onCancelTaskClicked"
|
||||
QT_MOC_LITERAL(11, 166, 17), // "onFailTaskClicked"
|
||||
QT_MOC_LITERAL(12, 184, 19), // "onRecallTaskClicked"
|
||||
QT_MOC_LITERAL(13, 204, 19), // "onTaskStatusChanged"
|
||||
QT_MOC_LITERAL(14, 224, 10), // "TaskStatus"
|
||||
QT_MOC_LITERAL(15, 235, 6), // "status"
|
||||
QT_MOC_LITERAL(16, 242, 17) // "onTaskDataChanged"
|
||||
|
||||
},
|
||||
"TaskDetailsPage\0taskActionRequested\0"
|
||||
"\0taskId\0action\0onRefreshTasks\0"
|
||||
"onFilterChanged\0onTaskSelectionChanged\0"
|
||||
"onStartTaskClicked\0onCompleteTaskClicked\0"
|
||||
"onCancelTaskClicked\0onFailTaskClicked\0"
|
||||
"onRecallTaskClicked\0onTaskStatusChanged\0"
|
||||
"TaskStatus\0status\0onTaskDataChanged"
|
||||
};
|
||||
#undef QT_MOC_LITERAL
|
||||
|
||||
static const uint qt_meta_data_TaskDetailsPage[] = {
|
||||
|
||||
// content:
|
||||
8, // revision
|
||||
0, // classname
|
||||
0, 0, // classinfo
|
||||
11, 14, // methods
|
||||
0, 0, // properties
|
||||
0, 0, // enums/sets
|
||||
0, 0, // constructors
|
||||
0, // flags
|
||||
1, // signalCount
|
||||
|
||||
// signals: name, argc, parameters, tag, flags
|
||||
1, 2, 69, 2, 0x06 /* Public */,
|
||||
|
||||
// slots: name, argc, parameters, tag, flags
|
||||
5, 0, 74, 2, 0x08 /* Private */,
|
||||
6, 0, 75, 2, 0x08 /* Private */,
|
||||
7, 0, 76, 2, 0x08 /* Private */,
|
||||
8, 0, 77, 2, 0x08 /* Private */,
|
||||
9, 0, 78, 2, 0x08 /* Private */,
|
||||
10, 0, 79, 2, 0x08 /* Private */,
|
||||
11, 0, 80, 2, 0x08 /* Private */,
|
||||
12, 0, 81, 2, 0x08 /* Private */,
|
||||
13, 2, 82, 2, 0x08 /* Private */,
|
||||
16, 0, 87, 2, 0x08 /* Private */,
|
||||
|
||||
// signals: parameters
|
||||
QMetaType::Void, QMetaType::QString, QMetaType::QString, 3, 4,
|
||||
|
||||
// slots: parameters
|
||||
QMetaType::Void,
|
||||
QMetaType::Void,
|
||||
QMetaType::Void,
|
||||
QMetaType::Void,
|
||||
QMetaType::Void,
|
||||
QMetaType::Void,
|
||||
QMetaType::Void,
|
||||
QMetaType::Void,
|
||||
QMetaType::Void, QMetaType::QString, 0x80000000 | 14, 3, 15,
|
||||
QMetaType::Void,
|
||||
|
||||
0 // eod
|
||||
};
|
||||
|
||||
void TaskDetailsPage::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
|
||||
{
|
||||
if (_c == QMetaObject::InvokeMetaMethod) {
|
||||
auto *_t = static_cast<TaskDetailsPage *>(_o);
|
||||
(void)_t;
|
||||
switch (_id) {
|
||||
case 0: _t->taskActionRequested((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< const QString(*)>(_a[2]))); break;
|
||||
case 1: _t->onRefreshTasks(); break;
|
||||
case 2: _t->onFilterChanged(); break;
|
||||
case 3: _t->onTaskSelectionChanged(); break;
|
||||
case 4: _t->onStartTaskClicked(); break;
|
||||
case 5: _t->onCompleteTaskClicked(); break;
|
||||
case 6: _t->onCancelTaskClicked(); break;
|
||||
case 7: _t->onFailTaskClicked(); break;
|
||||
case 8: _t->onRecallTaskClicked(); break;
|
||||
case 9: _t->onTaskStatusChanged((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< TaskStatus(*)>(_a[2]))); break;
|
||||
case 10: _t->onTaskDataChanged(); break;
|
||||
default: ;
|
||||
}
|
||||
} else if (_c == QMetaObject::IndexOfMethod) {
|
||||
int *result = reinterpret_cast<int *>(_a[0]);
|
||||
{
|
||||
using _t = void (TaskDetailsPage::*)(const QString & , const QString & );
|
||||
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&TaskDetailsPage::taskActionRequested)) {
|
||||
*result = 0;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
QT_INIT_METAOBJECT const QMetaObject TaskDetailsPage::staticMetaObject = { {
|
||||
QMetaObject::SuperData::link<QWidget::staticMetaObject>(),
|
||||
qt_meta_stringdata_TaskDetailsPage.data,
|
||||
qt_meta_data_TaskDetailsPage,
|
||||
qt_static_metacall,
|
||||
nullptr,
|
||||
nullptr
|
||||
} };
|
||||
|
||||
|
||||
const QMetaObject *TaskDetailsPage::metaObject() const
|
||||
{
|
||||
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
|
||||
}
|
||||
|
||||
void *TaskDetailsPage::qt_metacast(const char *_clname)
|
||||
{
|
||||
if (!_clname) return nullptr;
|
||||
if (!strcmp(_clname, qt_meta_stringdata_TaskDetailsPage.stringdata0))
|
||||
return static_cast<void*>(this);
|
||||
return QWidget::qt_metacast(_clname);
|
||||
}
|
||||
|
||||
int TaskDetailsPage::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
|
||||
{
|
||||
_id = QWidget::qt_metacall(_c, _id, _a);
|
||||
if (_id < 0)
|
||||
return _id;
|
||||
if (_c == QMetaObject::InvokeMetaMethod) {
|
||||
if (_id < 11)
|
||||
qt_static_metacall(this, _c, _id, _a);
|
||||
_id -= 11;
|
||||
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
|
||||
if (_id < 11)
|
||||
*reinterpret_cast<int*>(_a[0]) = -1;
|
||||
_id -= 11;
|
||||
}
|
||||
return _id;
|
||||
}
|
||||
|
||||
// SIGNAL 0
|
||||
void TaskDetailsPage::taskActionRequested(const QString & _t1, const QString & _t2)
|
||||
{
|
||||
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))), const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t2))) };
|
||||
QMetaObject::activate(this, &staticMetaObject, 0, _a);
|
||||
}
|
||||
QT_WARNING_POP
|
||||
QT_END_MOC_NAMESPACE
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,19 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "=== 运行Drone_project并捕获所有日志 ==="
|
||||
echo "程序将在15秒后自动停止"
|
||||
echo ""
|
||||
|
||||
# 先运行程序看看所有输出
|
||||
timeout 15s ./build/Drone_project 2>&1 | tee /tmp/drone_output.log
|
||||
|
||||
echo ""
|
||||
echo "=== 查找定位相关日志 ==="
|
||||
grep -E "(🗺️|📍|🔐|🌐|✅|❌|🏠|👂|MapPage|地图|定位|GPS|IP|北京|坐标|JS|INFO|WARN|ERROR|qDebug)" /tmp/drone_output.log || echo "未找到定位相关日志"
|
||||
|
||||
echo ""
|
||||
echo "=== 显示前20行日志 ==="
|
||||
head -20 /tmp/drone_output.log
|
||||
|
||||
echo ""
|
||||
echo "=== 调试完成 ==="
|
||||
@ -1,36 +1,44 @@
|
||||
QT += core widgets webenginewidgets positioning
|
||||
QT += core widgets webenginewidgets positioning webchannel
|
||||
CONFIG += c++17
|
||||
TEMPLATE = app
|
||||
TARGET = Drone_project
|
||||
|
||||
SOURCES += \
|
||||
src/core/main.cpp \
|
||||
src/ui/mainwindow.cpp \
|
||||
src/models/dronedata.cpp \
|
||||
src/models/detectiondata.cpp \
|
||||
src/pages/videopage.cpp \
|
||||
src/pages/mappage.cpp \
|
||||
src/pages/datapage.cpp \
|
||||
src/pages/visionmodelpage.cpp \
|
||||
src/utils/stylehelper.cpp \
|
||||
src/pages/taskdecisionpage.cpp \
|
||||
src/utils/config.cpp \
|
||||
src/utils/logger.cpp \
|
||||
src/utils/errorhandler.cpp
|
||||
Src/core/main.cpp \
|
||||
Src/ui/mainwindow.cpp \
|
||||
Src/models/dronedata.cpp \
|
||||
Src/models/detectiondata.cpp \
|
||||
Src/pages/videopage.cpp \
|
||||
Src/pages/mappage.cpp \
|
||||
Src/pages/mapbridge.cpp \
|
||||
Src/pages/datapage.cpp \
|
||||
Src/pages/taskdata.cpp \
|
||||
Src/pages/visionmodelpage.cpp \
|
||||
Src/utils/stylehelper.cpp \
|
||||
Src/pages/taskdecisionpage.cpp \
|
||||
Src/pages/dronemanagementpage.cpp \
|
||||
Src/pages/taskdetailspage.cpp \
|
||||
Src/utils/config.cpp \
|
||||
Src/utils/logger.cpp \
|
||||
Src/utils/errorhandler.cpp
|
||||
|
||||
HEADERS += \
|
||||
src/ui/mainwindow.h \
|
||||
src/models/dronedata.h \
|
||||
src/models/detectiondata.h \
|
||||
src/pages/videopage.h \
|
||||
src/pages/mappage.h \
|
||||
src/pages/datapage.h \
|
||||
src/pages/visionmodelpage.h \
|
||||
src/utils/stylehelper.h \
|
||||
src/pages/taskdecisionpage.h \
|
||||
src/utils/config.h \
|
||||
src/utils/logger.h \
|
||||
src/utils/errorhandler.h
|
||||
Src/ui/mainwindow.h \
|
||||
Src/models/dronedata.h \
|
||||
Src/models/detectiondata.h \
|
||||
Src/pages/videopage.h \
|
||||
Src/pages/mappage.h \
|
||||
Src/pages/mapbridge.h \
|
||||
Src/pages/datapage.h \
|
||||
Src/pages/taskdata.h \
|
||||
Src/pages/visionmodelpage.h \
|
||||
Src/utils/stylehelper.h \
|
||||
Src/pages/taskdecisionpage.h \
|
||||
Src/pages/dronemanagementpage.h \
|
||||
Src/pages/taskdetailspage.h \
|
||||
Src/utils/config.h \
|
||||
Src/utils/logger.h \
|
||||
Src/utils/errorhandler.h
|
||||
|
||||
RESOURCES += \
|
||||
src/resources/app.qrc
|
||||
Src/resources/app.qrc
|
||||
|
||||
@ -1,271 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE QtCreatorProject>
|
||||
<!-- Written by QtCreator 16.0.1, 2025-09-24T21:35:22. -->
|
||||
<qtcreator>
|
||||
<data>
|
||||
<variable>EnvironmentId</variable>
|
||||
<value type="QByteArray">{d6548bba-c6d9-4cdb-a6a4-a3221e622b53}</value>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.ActiveTarget</variable>
|
||||
<value type="qlonglong">0</value>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.EditorSettings</variable>
|
||||
<valuemap type="QVariantMap">
|
||||
<value type="bool" key="EditorConfiguration.AutoDetect">true</value>
|
||||
<value type="bool" key="EditorConfiguration.AutoIndent">true</value>
|
||||
<value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value>
|
||||
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
|
||||
<value type="QString" key="language">Cpp</value>
|
||||
<valuemap type="QVariantMap" key="value">
|
||||
<value type="QByteArray" key="CurrentPreferences">CppGlobal</value>
|
||||
</valuemap>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
|
||||
<value type="QString" key="language">QmlJS</value>
|
||||
<valuemap type="QVariantMap" key="value">
|
||||
<value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value>
|
||||
</valuemap>
|
||||
</valuemap>
|
||||
<value type="qlonglong" 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="int" key="EditorConfiguration.LineEndingBehavior">0</value>
|
||||
<value type="int" key="EditorConfiguration.MarginColumn">80</value>
|
||||
<value type="bool" key="EditorConfiguration.MouseHiding">true</value>
|
||||
<value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
|
||||
<value type="int" key="EditorConfiguration.PaddingMode">1</value>
|
||||
<value type="int" key="EditorConfiguration.PreferAfterWhitespaceComments">0</value>
|
||||
<value type="bool" key="EditorConfiguration.PreferSingleLineComments">false</value>
|
||||
<value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
|
||||
<value type="bool" key="EditorConfiguration.ShowMargin">false</value>
|
||||
<value type="int" key="EditorConfiguration.SmartBackspaceBehavior">2</value>
|
||||
<value type="bool" key="EditorConfiguration.SmartSelectionChanging">true</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="bool" key="EditorConfiguration.UseIndenter">false</value>
|
||||
<value type="int" key="EditorConfiguration.Utf8BomBehavior">1</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="QString" key="EditorConfiguration.ignoreFileTypes">*.md, *.MD, Makefile</value>
|
||||
<value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
|
||||
<value type="bool" key="EditorConfiguration.skipTrailingWhitespace">true</value>
|
||||
<value type="bool" key="EditorConfiguration.tintMarginArea">true</value>
|
||||
</valuemap>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.PluginSettings</variable>
|
||||
<valuemap type="QVariantMap">
|
||||
<valuemap type="QVariantMap" key="AutoTest.ActiveFrameworks">
|
||||
<value type="bool" key="AutoTest.Framework.Boost">true</value>
|
||||
<value type="bool" key="AutoTest.Framework.CTest">false</value>
|
||||
<value type="bool" key="AutoTest.Framework.Catch">true</value>
|
||||
<value type="bool" key="AutoTest.Framework.GTest">true</value>
|
||||
<value type="bool" key="AutoTest.Framework.QtQuickTest">true</value>
|
||||
<value type="bool" key="AutoTest.Framework.QtTest">true</value>
|
||||
</valuemap>
|
||||
<value type="bool" key="AutoTest.ApplyFilter">false</value>
|
||||
<valuemap type="QVariantMap" key="AutoTest.CheckStates"/>
|
||||
<valuelist type="QVariantList" key="AutoTest.PathFilters"/>
|
||||
<value type="int" key="AutoTest.RunAfterBuild">0</value>
|
||||
<value type="bool" key="AutoTest.UseGlobal">true</value>
|
||||
<valuemap type="QVariantMap" key="ClangTools">
|
||||
<value type="bool" key="ClangTools.AnalyzeOpenFiles">true</value>
|
||||
<value type="bool" key="ClangTools.BuildBeforeAnalysis">true</value>
|
||||
<value type="QString" key="ClangTools.DiagnosticConfig">Builtin.DefaultTidyAndClazy</value>
|
||||
<value type="int" key="ClangTools.ParallelJobs">6</value>
|
||||
<value type="bool" key="ClangTools.PreferConfigFile">true</value>
|
||||
<valuelist type="QVariantList" key="ClangTools.SelectedDirs"/>
|
||||
<valuelist type="QVariantList" key="ClangTools.SelectedFiles"/>
|
||||
<valuelist type="QVariantList" key="ClangTools.SuppressedDiagnostics"/>
|
||||
<value type="bool" key="ClangTools.UseGlobalSettings">true</value>
|
||||
</valuemap>
|
||||
</valuemap>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.Target.0</variable>
|
||||
<valuemap type="QVariantMap">
|
||||
<value type="QString" key="DeviceType">Desktop</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 5.15.2 GCC 64bit</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 5.15.2 GCC 64bit</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.qt5.5152.gcc_64_kit</value>
|
||||
<value type="qlonglong" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
|
||||
<value type="qlonglong" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
|
||||
<value type="qlonglong" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
|
||||
<value type="int" key="EnableQmlDebugging">0</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/wangjing/uav/Drone_project/build/Desktop_Qt_5_15_2_GCC_64bit-Debug</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/home/wangjing/uav/Drone_project/build/Desktop_Qt_5_15_2_GCC_64bit-Debug</value>
|
||||
<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.Id">QtProjectManager.QMakeBuildStep</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
|
||||
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
</valuemap>
|
||||
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">构建</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">构建</value>
|
||||
<value type="QString" 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.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||
</valuemap>
|
||||
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">清除</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">清除</value>
|
||||
<value type="QString" 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.CustomParsers"/>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Debug</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/wangjing/uav/Drone_project/build/Desktop_Qt_5_15_2_GCC_64bit-Release</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/home/wangjing/uav/Drone_project/build/Desktop_Qt_5_15_2_GCC_64bit-Release</value>
|
||||
<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.Id">QtProjectManager.QMakeBuildStep</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
|
||||
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
</valuemap>
|
||||
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">构建</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">构建</value>
|
||||
<value type="QString" 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.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||
</valuemap>
|
||||
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">清除</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">清除</value>
|
||||
<value type="QString" 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.CustomParsers"/>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Release</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
|
||||
<value type="int" key="QtQuickCompiler">0</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
|
||||
<value type="int" key="EnableQmlDebugging">0</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/wangjing/uav/Drone_project/build/Desktop_Qt_5_15_2_GCC_64bit-Profile</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/home/wangjing/uav/Drone_project/build/Desktop_Qt_5_15_2_GCC_64bit-Profile</value>
|
||||
<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.Id">QtProjectManager.QMakeBuildStep</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
|
||||
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
</valuemap>
|
||||
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">构建</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">构建</value>
|
||||
<value type="QString" 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.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||
</valuemap>
|
||||
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">清除</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">清除</value>
|
||||
<value type="QString" 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.CustomParsers"/>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Profile</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
|
||||
<value type="int" key="QtQuickCompiler">0</value>
|
||||
<value type="int" key="SeparateDebugInfo">0</value>
|
||||
</valuemap>
|
||||
<value type="qlonglong" key="ProjectExplorer.Target.BuildConfigurationCount">3</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">部署</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">部署</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
|
||||
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
|
||||
</valuemap>
|
||||
<value type="qlonglong" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
|
||||
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
|
||||
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
|
||||
<value type="int" key="Analyzer.Valgrind.Callgrind.CostFormat">0</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
|
||||
<valuelist type="QVariantList" key="CustomOutputParsers"/>
|
||||
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
|
||||
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
|
||||
<value type="bool" key="PE.EnvironmentAspect.PrintOnRun">false</value>
|
||||
<value type="QString" key="PerfRecordArgsId">-e cpu-cycles --call-graph dwarf,4096 -F 250</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:</value>
|
||||
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">/home/wangjing/uav/Drone_project/drone_ui.pro</value>
|
||||
<value type="bool" key="ProjectExplorer.RunConfiguration.Customized">false</value>
|
||||
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
|
||||
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
|
||||
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
|
||||
<value type="QString" key="RunConfiguration.WorkingDirectory.default">/home/wangjing/uav/Drone_project/build/Desktop_Qt_5_15_2_GCC_64bit-Debug</value>
|
||||
</valuemap>
|
||||
<value type="qlonglong" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
|
||||
</valuemap>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.TargetCount</variable>
|
||||
<value type="qlonglong">1</value>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.Updater.FileVersion</variable>
|
||||
<value type="int">22</value>
|
||||
</data>
|
||||
<data>
|
||||
<variable>Version</variable>
|
||||
<value type="int">22</value>
|
||||
</data>
|
||||
</qtcreator>
|
||||
@ -0,0 +1 @@
|
||||
[[116.352767, 39.881271],[116.348819, 39.905636]]
|
||||
@ -0,0 +1 @@
|
||||
[[116.380526, 39.895891],[116.427218, 39.946445]]
|
||||
Loading…
Reference in new issue