mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
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:
parent
c593dea119
commit
0fa0eb2879
6 changed files with 63 additions and 6 deletions
31
windowtitleupdate.cpp
Normal file
31
windowtitleupdate.cpp
Normal 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();
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue