From 53716c209b72e3299c6eb5a8afc2f2ea6125158a Mon Sep 17 00:00:00 2001 From: deva Date: Wed, 18 Aug 2010 09:15:52 +0000 Subject: Make debug window more responsive. --- client/debug.cc | 25 ++++++++----------------- 1 file changed, 8 insertions(+), 17 deletions(-) (limited to 'client/debug.cc') diff --git a/client/debug.cc b/client/debug.cc index 6eed1ad..066b0bc 100644 --- a/client/debug.cc +++ b/client/debug.cc @@ -27,8 +27,6 @@ */ #include "debug.h" -#include -#include #include #include #include @@ -37,19 +35,6 @@ static const char * const class_str[] = { "debug", "error", "warn", "log" }; -class DebugWindow : public QDialog { -public: - DebugWindow(); - - void log(const char *func, const char *file, const int line, - debug_class cl, const char *ch, QString &msg); -protected: - void closeEvent(QCloseEvent *event); - -private: - QListWidget *lst; -}; - DebugWindow::DebugWindow() { setLayout(new QVBoxLayout()); @@ -62,6 +47,9 @@ DebugWindow::DebugWindow() resize(settings.value("size", QSize(700, 800)).toSize()); move(settings.value("pos", QPoint(0, 0)).toPoint()); settings.endGroup(); + + timer.setSingleShot(true); + connect(&timer, SIGNAL(timeout()), lst, SLOT(scrollToBottom())); } void DebugWindow::closeEvent(QCloseEvent *event) @@ -77,6 +65,8 @@ void DebugWindow::closeEvent(QCloseEvent *event) void DebugWindow::log(const char *func, const char *file, const int line, debug_class cl, const char *ch, QString &msg) { + timer.stop(); + // Remove trailing newlines. while(msg.endsWith("\n")) msg = msg.left(msg.length() - 1); @@ -92,11 +82,12 @@ void DebugWindow::log(const char *func, const char *file, const int line, if(cl == _warn) item->setBackground(QBrush(QColor(200, 200, 230))); if(cl == _log) item->setBackground(QBrush(QColor(200, 230, 200))); + lst->addItem(item); - lst->scrollToBottom(); + // lst->scrollToBottom(); + timer.start(100); } - static DebugWindow* debugwindow = NULL; void dbg_init() -- cgit v1.2.3