70 lines
1.9 KiB
C++
70 lines
1.9 KiB
C++
#ifndef CloudDataDlg_H
|
||
#define CloudDataDlg_H
|
||
|
||
#include <QDialog>
|
||
#include "ui_CloudDataDlg.h"
|
||
#include "formtableitem.h"
|
||
|
||
#pragma execution_character_set("utf-8")
|
||
|
||
class QtProjectWidgets;
|
||
|
||
// 云端导入数据结果
|
||
struct CloudImportResult
|
||
{
|
||
QString id; // 数据ID(metadataId)
|
||
QString dataType; // 数据类型(curveObject/waveObject)
|
||
QString dataName; // 数据名称
|
||
QVector<float> data; // float二进制数组
|
||
};
|
||
|
||
// 云端导入对话框
|
||
class CloudDataDlg : public QDialog
|
||
{
|
||
Q_OBJECT
|
||
|
||
public:
|
||
CloudDataDlg(QWidget *parent = 0);
|
||
~CloudDataDlg();
|
||
|
||
void setProjectWidgets(QtProjectWidgets* projectWidgets);
|
||
|
||
void initTreeProjects(QJsonObject jObj);//加载树图
|
||
void initTreeWells(QJsonObject jObj);//加载树图
|
||
bool initTreeData(QTreeWidgetItem* itemJing, QJsonObject& jObjCi, QJsonObject catObj,
|
||
QString strDataType, QString strIcon1, QString strIcon2);
|
||
void getList();
|
||
void getWells(QString projectId);
|
||
|
||
// ===== 云端数据导入接口 =====
|
||
// 异步获取单个 metadataId 的数据,返回 float 二进制数组
|
||
void fetchCloudData(const QString& metadataId, const QString& dataType, const QString& dataName,
|
||
std::function<void(const CloudImportResult&)> onSuccess,
|
||
std::function<void(const QString&)> onFailed);
|
||
|
||
// 批量异步导入,所有请求完成后回调
|
||
void importCloudData(const QVector<QString>& vecId, const QMap<QString, QVector<QString>>& mapSelect,
|
||
std::function<void(const QVector<CloudImportResult>&)> onAllDone = nullptr);
|
||
|
||
protected:
|
||
virtual void paintEvent(QPaintEvent *pevt);
|
||
|
||
private slots:
|
||
void on_btn_back_clicked();
|
||
void on_btn_import_clicked();
|
||
|
||
void onItemDoubleClicked(QTreeWidgetItem* item, int index);//鼠标双击tree菜单项
|
||
|
||
void OnSelectLineStyleChanged(int ,int);
|
||
void onEnter();
|
||
|
||
private:
|
||
Ui::CloudDataDlg *ui;
|
||
|
||
QtProjectWidgets *m_projectWidgets = NULL;
|
||
|
||
|
||
};
|
||
|
||
#endif // CloudDataDlg_H
|