增加渲染方式
This commit is contained in:
parent
8874cf2462
commit
2dde514696
@ -23,6 +23,7 @@ void ctaiHistoryTextEdit::init_layout(msg_type msg_type_mode)
|
||||
main_layout->setSpacing(1);
|
||||
main_layout->setContentsMargins(0, 0, 0, 0);
|
||||
setLayout(main_layout);
|
||||
set_default_opts();
|
||||
connect_signals(msg_type_mode);
|
||||
}
|
||||
void ctaiHistoryTextEdit::init_msg_line()
|
||||
@ -108,6 +109,9 @@ void ctaiHistoryTextEdit::init_msg_header_layout(msg_type msg_type_mode)
|
||||
header_layout->addLayout(header_info_layout);
|
||||
}
|
||||
}
|
||||
void ctaiHistoryTextEdit::set_default_opts(){
|
||||
m_msg_history->setFont(QFont(m_font,m_font_size));
|
||||
}
|
||||
void ctaiHistoryTextEdit::connect_signals(msg_type msg_type_mode)
|
||||
{
|
||||
if (msg_type_mode == SYSTEM)
|
||||
@ -206,11 +210,16 @@ void ctaiHistoryTextEdit::on_display_changed(QString mode)
|
||||
{
|
||||
m_msg_history->setText(m_current_content);
|
||||
}
|
||||
else if (mode == "LaTeX Markdown")
|
||||
else if (mode == "HTML源码")
|
||||
{
|
||||
m_msg_history->setHtml(m_math_convert->replace_tags_svg(m_current_content));
|
||||
|
||||
}else if(mode == "HTML渲染"){
|
||||
|
||||
}else if(mode == "Markdown源码"){
|
||||
|
||||
}else if(mode == "Markdown渲染"){
|
||||
m_msg_history->setMarkdown(m_math_convert->replace_tags_svg(m_current_content,m_font_size));
|
||||
qDebug() << "LaTeX Markdown:" << m_msg_history->toMarkdown();
|
||||
qDebug() << "Html:" << m_msg_history->toHtml();
|
||||
}
|
||||
}
|
||||
// tokens按钮实现功能的槽函数
|
||||
|
||||
@ -80,6 +80,7 @@ signals:
|
||||
|
||||
private:
|
||||
void connect_signals(msg_type msg_type_mode); // 连接信号和槽
|
||||
void set_default_opts();
|
||||
private:
|
||||
ctaiMathConvert *m_math_convert;
|
||||
QFrame *msg_line;
|
||||
@ -118,8 +119,12 @@ private:
|
||||
QString m_msg_sned_id = {};
|
||||
// 本次信息
|
||||
QString m_current_content;
|
||||
QString m_font = "Arial";
|
||||
int m_font_size = 8;
|
||||
//默认字体跟随软件全局字体
|
||||
QString m_font = sui_font_table[sui_config.font];//"Arial";
|
||||
//粗体字
|
||||
bool m_bold=false;
|
||||
//字号大小
|
||||
int m_font_size = 14;
|
||||
QSpacerItem *bottom_spacer = new QSpacerItem(0, 0, QSizePolicy::Fixed, QSizePolicy::Expanding);
|
||||
};
|
||||
|
||||
|
||||
@ -63,6 +63,8 @@ void ctaiHistoryTools::initDisplayMode()
|
||||
for(auto str:sui_font_table){
|
||||
m_msg_display_font_combobox->addItem(str);
|
||||
}
|
||||
m_msg_display_font_size_combobox->setCurrentIndex(5);
|
||||
m_msg_display_font_combobox->setCurrentIndex(sui_config.font);
|
||||
}
|
||||
void ctaiHistoryTools::initConnect()
|
||||
{
|
||||
|
||||
@ -40,7 +40,7 @@ private:
|
||||
QAction *m_msg_save_markdown = {};
|
||||
QAction *m_msg_save_pdf = {};
|
||||
QSpacerItem *sparcer_item = new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Fixed);
|
||||
QStringList ds_mode_str={"原始文本","LaTeX Markdown"};
|
||||
QStringList ds_mode_str={"原始文本","HTML源码","HTML渲染","Markdown源码","Markdown渲染"};
|
||||
QStringList ds_font_size_str={"4","6","8","10","12","14","16","18","20"};
|
||||
|
||||
private:
|
||||
|
||||
@ -69,8 +69,9 @@ QString ctaiMathConvert::clean_latex_for_mula(const QString &formula)
|
||||
return result;
|
||||
}
|
||||
|
||||
QString ctaiMathConvert::replace_tags_svg(const QString &text)
|
||||
QString ctaiMathConvert::replace_tags_svg(const QString &text,int font_size)
|
||||
{
|
||||
m_text_size=font_size;
|
||||
//QString result("4566545646\\[\n f'(a) = \\lim_{h \\to 0} \\frac{f(a + h) - f(a)}{h}\n \\]654564646");
|
||||
QString result=text;
|
||||
// 使用改进的正则表达式模式
|
||||
@ -100,12 +101,12 @@ QString ctaiMathConvert::replace_tags_svg(const QString &text)
|
||||
debug_latex_match(result, match);
|
||||
// 清理和转换公式
|
||||
//QString cleanFormula = clean_latex_for_mula(matchedText);
|
||||
//QString svg_markdown = markdown_base + math_convert_svg(matchedText) + ")";
|
||||
QString svg_html = html_base + math_convert_svg(matchedText) + "/>";
|
||||
QString svg_markdown = markdown_base + math_convert_svg(matchedText) + ")";
|
||||
//QString svg_html = html_base + math_convert_svg(matchedText) + "/>";
|
||||
// 保存替换信息
|
||||
replacements.prepend({match.capturedStart(), match.capturedLength()});
|
||||
//svgResults.prepend(svg_markdown);
|
||||
svgResults.prepend(svg_html);
|
||||
svgResults.prepend(svg_markdown);
|
||||
//svgResults.prepend(svg_html);
|
||||
}
|
||||
|
||||
// 从后向前执行替换,避免位置改变影响
|
||||
|
||||
@ -42,7 +42,7 @@ class ctaiMathConvert :public QObject
|
||||
public:
|
||||
explicit ctaiMathConvert();
|
||||
~ctaiMathConvert();
|
||||
QString replace_tags_svg(const QString &text);
|
||||
QString replace_tags_svg(const QString &text,int font_size);
|
||||
void set_convert_opts();
|
||||
void save_svg(QPixmap& img);
|
||||
|
||||
@ -53,7 +53,7 @@ private:
|
||||
QByteArray svg_to_base64(QPixmap& pix);
|
||||
TexGuard texGuard;
|
||||
//宽度
|
||||
int m_render_width=300;
|
||||
int m_render_width=600;
|
||||
int m_render_height=64;
|
||||
//文本大小
|
||||
int m_text_size=20;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user