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>
This commit is contained in:
Dirk Hohndel 2015-06-16 06:04:34 -07:00
parent c593dea119
commit 0fa0eb2879
6 changed files with 63 additions and 6 deletions

31
windowtitleupdate.cpp Normal file
View file

@ -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();
}