#pragma once #include #include 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