diff options
author | Dirk Hohndel <dirk@hohndel.org> | 2015-06-16 06:04:34 -0700 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2015-06-16 06:04:34 -0700 |
commit | 0fa0eb2879bf72654a7febf8b977b0ba6f515658 (patch) | |
tree | c5bcdba3579ef86b342cc9671faa71a7ed5bb766 /windowtitleupdate.cpp | |
parent | c593dea119b4c5fa77a8b2cc129d048d7d56afa4 (diff) | |
download | subsurface-0fa0eb2879bf72654a7febf8b977b0ba6f515658.tar.gz |
Code cleanup: implement window title update via signal
This seems quite convoluted to me but I can't seem to make a more straight
forward implementation work. The idea is that core code should never
directly call into the UI.
So instead the core code (this is C code) calls a helper function. That
helper function calls a member function of a class which in return emits a
signal. The UI code connects to that signal and acts accordingly when it
is received.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'windowtitleupdate.cpp')
-rw-r--r-- | windowtitleupdate.cpp | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/windowtitleupdate.cpp b/windowtitleupdate.cpp new file mode 100644 index 000000000..a22fee779 --- /dev/null +++ b/windowtitleupdate.cpp @@ -0,0 +1,31 @@ +#include "windowtitleupdate.h" + +WindowTitleUpdate *WindowTitleUpdate::m_instance = NULL; + +WindowTitleUpdate::WindowTitleUpdate(QObject *parent) : QObject(parent) +{ + Q_ASSERT_X(m_Instance == NULL, "WindowTitleUpdate", "WindowTitleUpdate recreated!"); + + m_instance = this; +} + +WindowTitleUpdate *WindowTitleUpdate::instance() +{ + return m_instance; +} + +WindowTitleUpdate::~WindowTitleUpdate() +{ + m_instance = NULL; +} + +void WindowTitleUpdate::emitSignal() +{ + emit updateTitle(); +} + +extern "C" void updateWindowTitle() +{ + WindowTitleUpdate *wt = WindowTitleUpdate::instance(); + wt->emitSignal(); +} |