85 lines
2.6 KiB
C++
85 lines
2.6 KiB
C++
#ifndef DIALOGCONFIGTREE_H
|
|
#define DIALOGCONFIGTREE_H
|
|
|
|
#include <QDialog>
|
|
#include <QTreeWidget>
|
|
#include <QStackedWidget>
|
|
#include "IVrConfig.h"
|
|
#include <IVrEyeDevice.h>
|
|
|
|
// 前向声明
|
|
class GrabBagPresenter;
|
|
|
|
namespace Ui {
|
|
class DialogConfigTree;
|
|
}
|
|
|
|
class DialogConfigTree : public QDialog
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
explicit DialogConfigTree(ConfigResult* configResult,
|
|
const std::vector<std::pair<std::string, IVrEyeDevice*>>& deviceList,
|
|
GrabBagPresenter* presenter,
|
|
QWidget *parent = nullptr);
|
|
~DialogConfigTree();
|
|
|
|
ConfigResult* GetConfigResult() { return m_configResult; }
|
|
|
|
private slots:
|
|
void onTreeItemClicked(QTreeWidgetItem* item, int column);
|
|
void onAddClicked();
|
|
void onDeleteClicked();
|
|
void onSaveClicked();
|
|
void onCancelClicked();
|
|
void onSetDefaultClicked();
|
|
|
|
// 参数编辑槽
|
|
void onCameraLevelClicked();
|
|
void onHandEyeCalibSaveClicked();
|
|
void onHandEyeCalibLoadClicked();
|
|
void onUpdateWpNameClicked();
|
|
void onSavePkgParamClicked();
|
|
|
|
private:
|
|
void displayHandEyeCalibInline();
|
|
void initTree();
|
|
void initConfigPanels();
|
|
void updateConfigPanel(QTreeWidgetItem* item);
|
|
void saveCurrentConfig();
|
|
void saveConfigToFile();
|
|
|
|
// 树节点操作
|
|
void addWorkPosition(const QString& name);
|
|
void addCamera(const QString& wpId, const QString& name, int cameraIndex);
|
|
void addPackage(const QString& wpId, const QString& camId, const QString& name);
|
|
|
|
// 配置面板更新
|
|
void showWorkPositionConfig(const WorkPositionConfig* config);
|
|
void showCameraConfig(const WorkPositionConfig* wpConfig, const CameraConfig* camConfig);
|
|
void showPackageConfig(const WorkPositionConfig* wpConfig,
|
|
const CameraConfig* camConfig,
|
|
const PackageTypeConfig* pkgConfig);
|
|
|
|
// 配置保存
|
|
void saveWorkPositionConfig(WorkPositionConfig* config);
|
|
void saveCameraConfig(WorkPositionConfig* wpConfig, CameraConfig* camConfig);
|
|
void savePackageConfig(WorkPositionConfig* wpConfig,
|
|
CameraConfig* camConfig,
|
|
PackageTypeConfig* pkgConfig);
|
|
|
|
private:
|
|
Ui::DialogConfigTree *ui;
|
|
ConfigResult* m_configResult;
|
|
std::vector<std::pair<std::string, IVrEyeDevice*>> m_deviceList;
|
|
GrabBagPresenter* m_presenter;
|
|
|
|
QTreeWidgetItem* m_currentItem = nullptr;
|
|
WorkPositionConfig* m_currentWorkPos = nullptr;
|
|
CameraConfig* m_currentCamera = nullptr;
|
|
PackageTypeConfig* m_currentPackage = nullptr;
|
|
};
|
|
|
|
#endif // DIALOGCONFIGTREE_H
|