From 9133cb22becc7604efbc050c2728e4f5e7ede819 Mon Sep 17 00:00:00 2001 From: skyjake Date: Tue, 6 Aug 2013 16:37:42 +0300 Subject: [PATCH] Shell|GUI: Log local messages in the active connection window For instance, the possible completions from the command line. --- .../tools/shell/shell-gui/src/linkwindow.cpp | 22 +++++++++++++++++++ .../tools/shell/shell-gui/src/linkwindow.h | 1 + 2 files changed, 23 insertions(+) diff --git a/doomsday/tools/shell/shell-gui/src/linkwindow.cpp b/doomsday/tools/shell/shell-gui/src/linkwindow.cpp index 1fb3df194b..6fb47510c9 100644 --- a/doomsday/tools/shell/shell-gui/src/linkwindow.cpp +++ b/doomsday/tools/shell/shell-gui/src/linkwindow.cpp @@ -95,6 +95,12 @@ DENG2_PIMPL(LinkWindow) #endif } + ~Instance() + { + // Make sure the local sink is removed. + LogBuffer::appBuffer().removeSink(console->log().logSink()); + } + void updateStyle() { if(self.isConnected()) @@ -291,6 +297,22 @@ bool LinkWindow::isConnected() const return d->link && d->link->status() != Link::Disconnected; } +void LinkWindow::changeEvent(QEvent *ev) +{ + if(ev->type() == QEvent::ActivationChange) + { + if(isActiveWindow()) + { + // Log local messages here. + LogBuffer::appBuffer().addSink(d->console->log().logSink()); + } + else + { + LogBuffer::appBuffer().removeSink(d->console->log().logSink()); + } + } +} + void LinkWindow::closeEvent(QCloseEvent *event) { /* diff --git a/doomsday/tools/shell/shell-gui/src/linkwindow.h b/doomsday/tools/shell/shell-gui/src/linkwindow.h index b9f2d1cc8a..511c2987a5 100644 --- a/doomsday/tools/shell/shell-gui/src/linkwindow.h +++ b/doomsday/tools/shell/shell-gui/src/linkwindow.h @@ -38,6 +38,7 @@ class LinkWindow : public QMainWindow bool isConnected() const; // Qt events. + void changeEvent(QEvent *); void closeEvent(QCloseEvent *); signals: