summaryrefslogtreecommitdiffstats
path: root/core/qthelper.cpp
diff options
context:
space:
mode:
authorGravatar Berthold Stoeger <bstoeger@mail.tuwien.ac.at>2019-05-10 19:51:43 +0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2019-05-12 12:33:55 -0700
commit75767c456a2889d213621866a9f7fbb108f3366d (patch)
tree1f941f73a58718affe6c199c510e08e0eec75f95 /core/qthelper.cpp
parent114b3d9d470e65c25bcb5711daf053478f30e319 (diff)
downloadsubsurface-75767c456a2889d213621866a9f7fbb108f3366d.tar.gz
Turn application state into enum
The application state was encoded in a QByteArray. Thus, there was no compile-time checking. Typos would lead to silent failures. Turn the application state into an enum. Use the enum-class construct, so that the values don't polute the global namespace. Moreover, this makes them strongly typed, i.e. they don't auto-convert to integers. A disadvantage is that the enums now have to be cast to int explicitly when used to index an array. Replace two hash-maps in MainWindow to arrays of fixed sizes. Move the application-state details into their own files. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Diffstat (limited to 'core/qthelper.cpp')
-rw-r--r--core/qthelper.cpp15
1 files changed, 2 insertions, 13 deletions
diff --git a/core/qthelper.cpp b/core/qthelper.cpp
index 3abcec04a..65c55414d 100644
--- a/core/qthelper.cpp
+++ b/core/qthelper.cpp
@@ -12,6 +12,7 @@
#include "divecomputer.h"
#include "time.h"
#include "gettextfromc.h"
+#include "applicationstate.h"
#include "metadata.h"
#include <sys/time.h>
#include "exif.h"
@@ -1362,21 +1363,9 @@ extern "C" void parse_display_units(char *line)
qDebug() << line;
}
-static QByteArray currentApplicationState;
-
-QByteArray getCurrentAppState()
-{
- return currentApplicationState;
-}
-
-void setCurrentAppState(const QByteArray &state)
-{
- currentApplicationState = state;
-}
-
extern "C" bool in_planner()
{
- return currentApplicationState == "PlanDive" || currentApplicationState == "EditPlannedDive";
+ return getAppState() == ApplicationState::PlanDive || getAppState() == ApplicationState::EditPlannedDive;
}
extern "C" enum deco_mode decoMode()