X-Git-Url: https://git.siccegge.de//index.cgi?p=frida%2Ffrida.git;a=blobdiff_plain;f=src%2Fgui%2Fwidgets%2FLogDock.cxx;fp=src%2Fgui%2Fwidgets%2FLogDock.cxx;h=b4efc1d4d5ae6726f4bfe91d8061189def6046bd;hp=b8b92147ccb19158cc4bd6f4ba00654bcd989d8e;hb=ad626cc187f94df0ce811427af717a202ff82e8b;hpb=4979a0a839390713671f3f9756dc6820501d4ad4 diff --git a/src/gui/widgets/LogDock.cxx b/src/gui/widgets/LogDock.cxx index b8b9214..b4efc1d 100644 --- a/src/gui/widgets/LogDock.cxx +++ b/src/gui/widgets/LogDock.cxx @@ -11,10 +11,31 @@ LogDock::LogDock(FridaDock* parent) horizontalHeader()->setStretchLastSection(true); verticalHeader()->setDefaultSectionSize(18); appender = new LogDockAppender; - appender->setTarget(this); + connect(appender, &LogDockAppender::newLogEntry, + this, &LogDock::handleNewLogEntry); log4cxx::BasicConfigurator::configure(appender); } LogDock::~LogDock() { delete appender; } + +void LogDock::handleNewLogEntry(QColor color, QString timestamp, QString level, QString message) { + int rowcount = rowCount(); + insertRow(rowcount); + setItem(rowcount, 0, new QTableWidgetItem(timestamp)); + setItem(rowcount, 1, new QTableWidgetItem(level)); + setItem(rowcount, 2, new QTableWidgetItem(message)); + item(rowcount, 0)->setBackground(color); + item(rowcount, 1)->setBackground(color); + item(rowcount, 2)->setBackground(color); + resizeColumnsToContents(); + + QTimer *timer = new QTimer(this); + timer->setSingleShot(true); + + QObject::connect(timer, &QTimer::timeout, [=]() { + scrollToItem(item(rowcount, 2), QAbstractItemView::PositionAtTop); + }); + timer->start(2); +}