120 lines
2.2 KiB
C++
120 lines
2.2 KiB
C++
//
|
|
// Created by ricardo on 2022/6/10.
|
|
//
|
|
|
|
#ifndef AUTO_BUS_GUI_CENTRAL_WIDGET_H
|
|
#define AUTO_BUS_GUI_CENTRAL_WIDGET_H
|
|
|
|
#include <QWidget>
|
|
#include "QListWidgetItem"
|
|
#include "string"
|
|
#include "list"
|
|
#include "QMessageBox"
|
|
|
|
#include "mainScene.h"
|
|
#include "queryListItem.h"
|
|
#include "BusStrategyBase.h"
|
|
|
|
QT_BEGIN_NAMESPACE
|
|
namespace Ui
|
|
{
|
|
class CentralWidget;
|
|
}
|
|
QT_END_NAMESPACE
|
|
|
|
class CentralWidget : public QWidget
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
explicit CentralWidget(QWidget *parent = nullptr);
|
|
|
|
~CentralWidget() override;
|
|
|
|
/**
|
|
* 重新设置控制器
|
|
* @param c 控制器指针
|
|
*/
|
|
void SetController(BusStrategyBase *c);
|
|
|
|
signals:
|
|
/**
|
|
* 添加一个请求的信号
|
|
*/
|
|
void AppendQuerySignal(int type, int node);
|
|
|
|
public slots:
|
|
/**
|
|
* 处理添加一个请求的槽函数
|
|
* @param query_type 请求的类型
|
|
* @param node_id 请求指向的站点id
|
|
*/
|
|
void AppendQueryItemSlot(int query_type, int node_id);
|
|
|
|
/**
|
|
* 处理删除一个请求的槽函数
|
|
* @param query 请求指针
|
|
*/
|
|
void DeleteQueryItemSlot(bus_query_t *query);
|
|
|
|
/**
|
|
* 处理点击添加请求按钮的槽函数
|
|
*/
|
|
void AddQueryButtonClicked();
|
|
|
|
private:
|
|
/**
|
|
* UI控件
|
|
*/
|
|
Ui::CentralWidget *ui;
|
|
|
|
/**
|
|
* 画图的场景管理器
|
|
*/
|
|
SceneManager *scene_manager;
|
|
|
|
BusStrategyBase *controller = nullptr;
|
|
|
|
/**
|
|
* 请求列表中的对象
|
|
*/
|
|
std::list<QueryListItem *> query_items;
|
|
|
|
/**
|
|
* 设置同控制器的连接
|
|
*/
|
|
void SetControlConnection();
|
|
|
|
/**
|
|
* 设置同控件的连接
|
|
*/
|
|
void SetWidgetConnection();
|
|
|
|
/**
|
|
* 初始化请求展示列表
|
|
* 展示表头的说明文字
|
|
*/
|
|
void SetupQueryList();
|
|
|
|
/**
|
|
* 清除展示对象占用的内存空间
|
|
*/
|
|
void DeleteQueryList();
|
|
|
|
/**
|
|
* 设置站点选择下拉栏
|
|
*/
|
|
void SetRailsComboBox(int node_num);
|
|
|
|
/**
|
|
* 处理轨道重新生成的槽函数
|
|
* 重绘轨道画面
|
|
* 重新设置站点选择下拉栏
|
|
* @param node_num
|
|
*/
|
|
void SetRailsScene(int node_num);
|
|
};
|
|
|
|
|
|
#endif //AUTO_BUS_GUI_CENTRAL_WIDGET_H
|