Files
clients/EffectUI/slogwidget.cpp
admin 23021133c6 logic 추가
git-svn-id: svn://192.168.0.12/source@302 8346c931-da38-4b9b-9d4c-e48b93cbd075
2016-10-21 10:01:11 +00:00

55 lines
1.4 KiB
C++

#include "slogwidget.h"
#include <QCoreApplication>
#include <QString>
#include <QListWidget>
#include <QFile>
#include <QTextStream>
#include <QTime>
#include <QVBoxLayout>
SLogWidget::SLogWidget(QWidget *parent):QWidget(parent),
m_plwLog(new QListWidget(this)), m_pLayout(new QVBoxLayout(this))
{
m_pLayout->addWidget(m_plwLog);
setLayout(m_pLayout);
//m_plwLog->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
}
void SLogWidget::writeLog(const QString& _strLog)
{
QTime time = QTime::currentTime();
QString strOut = time.toString("[hh:mm:ss] ") + _strLog;
if(strOut.length() <= 1024)
m_plwLog->addItem(strOut);
else
m_plwLog->addItem(strOut.left(1024));
QDate date = QDate::currentDate();
QFile file(date.toString(Qt::ISODate)+ "_" + QString::number(QCoreApplication::applicationPid())+ ".log");
if (!file.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Append))
return;
QTextStream out(&file);
out << strOut << "\n";
file.close();
if (m_plwLog->count() > 512)
{
m_plwLog->removeItemWidget(m_plwLog->item(0));
QListWidgetItem* item = m_plwLog->takeItem(0);
delete item;
}
m_plwLog->setCurrentRow( m_plwLog->count() - 1 );
m_plwLog->repaint();
}
void SLogWidget::slotWriteLog(const QString& _strLog)
{
writeLog(_strLog);
}