ctai/src/ctaiHistoryTools.cpp
2025-03-09 19:59:23 +08:00

129 lines
5.0 KiB
C++

#include "ctaiHistoryTools.h"
ctaiHistoryTools::ctaiHistoryTools()
{
initLayout();
initConnect();
}
ctaiHistoryTools::~ctaiHistoryTools()
{
}
void ctaiHistoryTools::initLayout()
{
// 消息功能区
header_opts_Layout = new QHBoxLayout();
m_msg_copy = new QPushButton();
m_msg_save = new QPushButton();
m_msg_menu = new QPushButton();
m_msg_fold = new QPushButton();
m_msg_display_combobox = new QComboBox();
m_msg_display_font_size_combobox = new QComboBox();
m_msg_display_font_combobox = new QComboBox();
m_msg_display_font_label = new QLabel("字体:");
m_msg_display_font_size_label = new QLabel("大小:");
m_msg_display_label = new QLabel("模式:");
m_msg_display_label->setObjectName("m_msg_menu_label");
m_msg_display_combobox->setObjectName("m_msg_display_combobox");
m_msg_display_font_size_label->setObjectName("m_msg_font_size_label");
m_msg_display_font_size_combobox->setObjectName("m_msg_font_size_combobox");
m_msg_display_font_label->setObjectName("m_msg_font_label");
m_msg_display_font_combobox->setObjectName("m_msg_font_combobox");
m_msg_copy->setObjectName("m_msg_copy");
m_msg_save->setObjectName("m_msg_save");
m_msg_menu->setObjectName("m_msg_menu");
m_msg_fold->setObjectName("m_msg_fold");
m_msg_fold->setIcon(QIcon(":res/img/btn/btn_info_up.png"));
m_msg_fold->setIconSize(QSize(25, 25));
initDisplayMode();
header_opts_Layout->addItem(sparcer_item);
header_opts_Layout->addWidget(m_msg_display_font_label);
header_opts_Layout->addWidget(m_msg_display_font_combobox);
header_opts_Layout->addWidget(m_msg_display_font_size_label);
header_opts_Layout->addWidget(m_msg_display_font_size_combobox);
header_opts_Layout->addWidget(m_msg_display_label);
header_opts_Layout->addWidget(m_msg_display_combobox);
header_opts_Layout->addWidget(m_msg_copy);
header_opts_Layout->addWidget(m_msg_save);
header_opts_Layout->addWidget(m_msg_menu);
header_opts_Layout->addWidget(m_msg_fold);
header_opts_Layout->addItem(sparcer_item);
header_opts_Layout->setContentsMargins(0, 0, 0, 0);
setLayout(header_opts_Layout);
}
void ctaiHistoryTools::initDisplayMode()
{
for(auto str:ds_mode_str)
{
m_msg_display_combobox->addItem(str);
}
for(auto str:ds_font_size_str)
{
m_msg_display_font_size_combobox->addItem(str);
}
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()
{
connect(m_msg_copy, SIGNAL(clicked()), this, SIGNAL(on_signals_copy()));
connect(m_msg_save, SIGNAL(clicked()), this, SLOT(on_save_menu_slots()));
connect(m_msg_menu, SIGNAL(clicked()), this, SLOT(on_opts_menu_slots()));
connect(m_msg_fold, SIGNAL(clicked()), this, SIGNAL(on_signals_fold()));
connect(m_msg_display_combobox, SIGNAL(currentTextChanged(QString)), this, SIGNAL(on_signals_display_mode(QString)));
connect(m_msg_display_font_size_combobox, SIGNAL(currentTextChanged(QString)), this, SIGNAL(on_signals_display_font_size(QString)));
connect(m_msg_display_font_combobox, SIGNAL(currentTextChanged(QString)), this, SIGNAL(on_signals_display_font(QString)));
}
void ctaiHistoryTools::setFoldIco(QIcon ico)
{
m_msg_fold->setIcon(ico);
}
// save按钮实现功能的槽函数
void ctaiHistoryTools::on_save_menu_slots()
{
if (!m_msg_save_menu)
{
m_msg_save_menu = new QMenu();
}
if (!m_msg_save_text)
{
m_msg_save_text = new QAction(tr("另存为文本"));
connect(m_msg_save_text, SIGNAL(triggered(bool)), this, SIGNAL(on_signals_save_text()));
}
if (!m_msg_save_html)
{
m_msg_save_html = new QAction(tr("另存为HTML"));
connect(m_msg_save_html, SIGNAL(triggered(bool)), this, SIGNAL(on_signals_save_html()));
}
if (!m_msg_save_markdown)
{
m_msg_save_markdown = new QAction(tr("另存为Markdown"));
connect(m_msg_save_markdown, SIGNAL(triggered(bool)), this, SIGNAL(on_signals_save_markdown()));
}
if (!m_msg_save_pdf)
{
m_msg_save_pdf = new QAction(tr("另存为PDF"));
connect(m_msg_save_pdf, SIGNAL(triggered(bool)), this, SIGNAL(on_signals_save_pdf()));
}
m_msg_save_menu->addAction(m_msg_save_text);
m_msg_save_menu->addAction(m_msg_save_html);
m_msg_save_menu->addAction(m_msg_save_markdown);
m_msg_save_menu->addAction(m_msg_save_pdf);
m_msg_save_menu->exec(QCursor::pos());
}
void ctaiHistoryTools::on_opts_menu_slots()
{
QMenu menu(this);
// 添加菜单项
QAction *actCopy = menu.addAction(tr("复制"));
QAction *actSave = menu.addAction(tr("保存"));
menu.addSeparator();
QAction *actDelete = menu.addAction(tr("删除"));
// 显示菜单
QPoint pos = m_msg_menu->mapToGlobal(m_msg_menu->rect().bottomRight());
QAction *act = menu.exec(pos);
}