summaryrefslogtreecommitdiff
path: root/client/debug.cc
diff options
context:
space:
mode:
authordeva <deva>2010-08-18 09:15:52 +0000
committerdeva <deva>2010-08-18 09:15:52 +0000
commit53716c209b72e3299c6eb5a8afc2f2ea6125158a (patch)
tree0ec7da044a847844470666ac48834f265fc697b2 /client/debug.cc
parentd2295ad23ed22af07addc93b71e36f7bb688d534 (diff)
Make debug window more responsive.
Diffstat (limited to 'client/debug.cc')
-rw-r--r--client/debug.cc25
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()