diff options
author | deva <deva> | 2010-08-18 09:15:52 +0000 |
---|---|---|
committer | deva <deva> | 2010-08-18 09:15:52 +0000 |
commit | 53716c209b72e3299c6eb5a8afc2f2ea6125158a (patch) | |
tree | 0ec7da044a847844470666ac48834f265fc697b2 /client/debug.cc | |
parent | d2295ad23ed22af07addc93b71e36f7bb688d534 (diff) |
Make debug window more responsive.
Diffstat (limited to 'client/debug.cc')
-rw-r--r-- | client/debug.cc | 25 |
1 files changed, 8 insertions, 17 deletions
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 <QDialog> -#include <QListWidget> #include <QVBoxLayout> #include <QCloseEvent> #include <QSettings> @@ -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() |