geopro/src/app/panels/DescriptionPanel.hpp

41 lines
1.3 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#pragma once
#include <QJsonArray>
#include <QWidget>
class QTextEdit;
class QPushButton;
class QToolBar;
namespace geopro::app {
// 数据集描述面板:富文本编辑器 + 格式工具栏 + 保存按钮I14
// 对照原版 webcontourPage.vue的 Quill 编辑器:粗体/斜体/下划线/字色/字号 +
// 有序/无序列表 + 标题。保存时把富文本转 Quill DeltaattachedParameters.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