41 lines
1.3 KiB
C++
41 lines
1.3 KiB
C++
#pragma once
|
||
#include <QJsonArray>
|
||
#include <QWidget>
|
||
|
||
class QTextEdit;
|
||
class QPushButton;
|
||
class QToolBar;
|
||
|
||
namespace geopro::app {
|
||
|
||
// 数据集描述面板:富文本编辑器 + 格式工具栏 + 保存按钮(I14)。
|
||
// 对照原版 web(contourPage.vue)的 Quill 编辑器:粗体/斜体/下划线/字色/字号 +
|
||
// 有序/无序列表 + 标题。保存时把富文本转 Quill Delta(attachedParameters.deltaContent)
|
||
// 与纯文本(description)一并提交(组装/请求见 GridDataChartView)。
|
||
// Delta↔QTextDocument 互转见 QuillDelta.{hpp,cpp}(纯函数,可单测)。
|
||
class DescriptionPanel : public QWidget {
|
||
Q_OBJECT
|
||
public:
|
||
explicit DescriptionPanel(QWidget* parent = nullptr);
|
||
|
||
// 用 Quill Delta ops 回填编辑器(无 ops 时回退 setPlainText 兜底)。
|
||
void setDelta(const QJsonArray& ops);
|
||
void setPlainText(const QString& text);
|
||
|
||
// 当前内容导出:Delta ops(与原版 deltaContent 兼容)+ 纯文本(description)。
|
||
QJsonArray delta() const;
|
||
QString plainText() const;
|
||
|
||
// 注入「保存」可用性:无 cmdRepo/dsId 时禁用保存按钮(占位)。
|
||
void setSaveEnabled(bool on);
|
||
signals:
|
||
void saveRequested();
|
||
private:
|
||
void buildToolbar(QToolBar* tb);
|
||
|
||
QTextEdit* edit_;
|
||
QPushButton* saveBtn_;
|
||
};
|
||
|
||
} // namespace geopro::app
|