#include "WindowAppLogView.h"
#include "DebugManager.h"
#include "Preferences.h"
WindowAppLogView::WindowAppLogView(const QString& strTitle, QWidget* parent)
: QWidget(parent)
, m_strTitle(strTitle)
{
ui.setupUi(this);
ui.textEdit->setStyleSheet("background-color:#464646;");
//关联Debug信息,显示到文本框
//注意,如果槽函数为lambda或者其他没有接收者的情况,需要保证槽函数中的变量有效性
//因为static变量的生命周期更长,可能槽函数所在模块已经释放资源,最好connect加上接收者
connect(DebugManager::getInstance(), &DebugManager::newDebug,
this, [this](int msgType, const QString& log)
{
Q_UNUSED(msgType);
ui.textEdit->append(log);
ui.textEdit->moveCursor(QTextCursor::End);
});
//关联信号和槽
QObject::connect(ui.logMode, SIGNAL(currentIndexChanged(int)), this, SLOT(ChangeShowMode(int)));
ChangeShowMode(0);
// 窗口禁止软键盘输入
ui.textEdit->setProperty("noinput", true);
}
WindowAppLogView::~WindowAppLogView()
{
}
void WindowAppLogView::ChangeShowMode(int index)
{
ui.textEdit->clear();
for (int i = 0; i < DebugManager::getInstance()->m_AllDebugMsg.size(); i++)
{
DEBUGMSG msg = DebugManager::getInstance()->m_AllDebugMsg[i];
if (msg.msgType == QtDebugMsg && index == 1)
{
ui.textEdit->append(msg.strMsg);
ui.textEdit->moveCursor(QTextCursor::End);
}
if (msg.msgType == QtInfoMsg && index == 2)
{
ui.textEdit->append(msg.strMsg);
ui.textEdit->moveCursor(QTextCursor::End);
}
if (msg.msgType == QtWarningMsg && index == 3)
{
ui.textEdit->append(msg.strMsg);
ui.textEdit->moveCursor(QTextCursor::End);
}
if (msg.msgType == QtCriticalMsg && index == 4)
{
ui.textEdit->append(msg.strMsg);
ui.textEdit->moveCursor(QTextCursor::End);
}
if (msg.msgType == QtFatalMsg && index == 5)
{
ui.textEdit->append(msg.strMsg);
ui.textEdit->moveCursor(QTextCursor::End);
}
if (index == 0)
{
ui.textEdit->append(msg.strMsg);
ui.textEdit->moveCursor(QTextCursor::End);
}
}
}
///
/// 调整大小的消息中改变表格栏的宽度
///
///
void WindowAppLogView::resizeEvent(QResizeEvent* event)
{
Q_UNUSED(event);
//ui.textEdit->resize(this->frameGeometry().size());
ui.textEdit->resize(this->frameGeometry().size());
}