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

View file

@ -39,6 +39,7 @@
#include "usersurvey.h"
#include "divesitehelpers.h"
#include "locationinformation.h"
#include "windowtitleupdate.h"
#ifndef NO_USERMANUAL
#include "usermanual.h"
#endif
@ -148,7 +149,8 @@ MainWindow::MainWindow() : QMainWindow(),
connect(locationInformation, SIGNAL(startEditDiveSite(uint32_t)), globeGps, SLOT(prepareForGetDiveCoordinates()));
connect(locationInformation, SIGNAL(endEditDiveSite()), globeGps, SLOT(prepareForGetDiveCoordinates()));
connect(information(), SIGNAL(diveSiteChanged(uint32_t)), globeGps, SLOT(centerOnDiveSite(uint32_t)));
wtu = new WindowTitleUpdate();
connect(WindowTitleUpdate::instance(), SIGNAL(updateTitle()), this, SLOT(setAutomaticTitle()));
#ifdef NO_PRINTING
plannerDetails->printPlan()->hide();
ui.menuFile->removeAction(ui.actionPrint);
@ -1439,6 +1441,11 @@ QString MainWindow::displayedFilename(QString fullFilename)
return fileName;
}
void MainWindow::setAutomaticTitle()
{
setTitle();
}
void MainWindow::setTitle(enum MainWindowTitleFormat format)
{
switch (format) {