aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Subsurface-mobile.pro1
-rw-r--r--core/CMakeLists.txt2
-rw-r--r--core/applicationstate.cpp14
-rw-r--r--core/applicationstate.h26
-rw-r--r--core/qthelper.cpp1
-rw-r--r--desktop-widgets/filterwidget.cpp2
-rw-r--r--desktop-widgets/locationinformation.cpp2
-rw-r--r--desktop-widgets/mainwindow.cpp16
-rw-r--r--desktop-widgets/mainwindow.h17
-rw-r--r--desktop-widgets/statswidget.cpp2
10 files changed, 27 insertions, 56 deletions
diff --git a/Subsurface-mobile.pro b/Subsurface-mobile.pro
index 47b447fa4..598e94e4c 100644
--- a/Subsurface-mobile.pro
+++ b/Subsurface-mobile.pro
@@ -28,7 +28,6 @@ SOURCES += subsurface-mobile-main.cpp \
core/qtserialbluetooth.cpp \
core/plannernotes.c \
core/uemis-downloader.c \
- core/applicationstate.cpp \
core/qthelper.cpp \
core/checkcloudconnection.cpp \
core/color.cpp \
diff --git a/core/CMakeLists.txt b/core/CMakeLists.txt
index 0d400931d..c2103ab71 100644
--- a/core/CMakeLists.txt
+++ b/core/CMakeLists.txt
@@ -37,8 +37,6 @@ endif()
# compile the core library part in C, part in C++
set(SUBSURFACE_CORE_LIB_SRCS
- applicationstate.cpp
- applicationstate.h
checkcloudconnection.cpp
checkcloudconnection.h
cloudstorage.cpp
diff --git a/core/applicationstate.cpp b/core/applicationstate.cpp
deleted file mode 100644
index 05701cd32..000000000
--- a/core/applicationstate.cpp
+++ /dev/null
@@ -1,14 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-#include "applicationstate.h"
-
-static ApplicationState appState = (ApplicationState)-1; // Set to an invalid value
-
-ApplicationState getAppState()
-{
- return appState;
-}
-
-void setAppState(ApplicationState state)
-{
- appState = state;
-}
diff --git a/core/applicationstate.h b/core/applicationstate.h
deleted file mode 100644
index c3a8f360d..000000000
--- a/core/applicationstate.h
+++ /dev/null
@@ -1,26 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-#ifndef APPLICATIONSTATE_H
-#define APPLICATIONSTATE_H
-
-// By using an enum class, the enum entries don't polute the global namespace.
-// Moreover, they are strongly typed. This means that they are not auto-converted
-// to integer types if e.g. used as array-indices.
-enum class ApplicationState {
- Default,
- EditDive,
- PlanDive,
- EditPlannedDive,
- EditDiveSite,
- FilterDive,
- Statistics,
- MapMaximized,
- ProfileMaximized,
- ListMaximized,
- InfoMaximized,
- Count
-};
-
-ApplicationState getAppState();
-void setAppState(ApplicationState state);
-
-#endif
diff --git a/core/qthelper.cpp b/core/qthelper.cpp
index d0a6e36db..702ee965d 100644
--- a/core/qthelper.cpp
+++ b/core/qthelper.cpp
@@ -13,7 +13,6 @@
#include "planner.h"
#include "subsurface-time.h"
#include "gettextfromc.h"
-#include "applicationstate.h"
#include "metadata.h"
#include "exif.h"
#include "file.h"
diff --git a/desktop-widgets/filterwidget.cpp b/desktop-widgets/filterwidget.cpp
index b6a1429fe..5c910ea72 100644
--- a/desktop-widgets/filterwidget.cpp
+++ b/desktop-widgets/filterwidget.cpp
@@ -181,7 +181,7 @@ void FilterWidget::clearFilter()
void FilterWidget::closeFilter()
{
- MainWindow::instance()->setApplicationState(ApplicationState::Default);
+ MainWindow::instance()->setApplicationState(MainWindow::ApplicationState::Default);
}
FilterData FilterWidget::createFilterData() const
diff --git a/desktop-widgets/locationinformation.cpp b/desktop-widgets/locationinformation.cpp
index 780390198..2f5648461 100644
--- a/desktop-widgets/locationinformation.cpp
+++ b/desktop-widgets/locationinformation.cpp
@@ -219,7 +219,7 @@ void LocationInformationWidget::acceptChanges()
MainWindow::instance()->diveList->setEnabled(true);
MainWindow::instance()->setEnabledToolbar(true);
- MainWindow::instance()->setApplicationState(ApplicationState::Default);
+ MainWindow::instance()->setApplicationState(MainWindow::ApplicationState::Default);
DiveFilter::instance()->stopFilterDiveSites();
// Subtlety alert: diveSite must be cleared *after* exiting the dive-site mode.
diff --git a/desktop-widgets/mainwindow.cpp b/desktop-widgets/mainwindow.cpp
index e2fb7368a..2a932d278 100644
--- a/desktop-widgets/mainwindow.cpp
+++ b/desktop-widgets/mainwindow.cpp
@@ -112,6 +112,7 @@ extern "C" void showErrorFromC(char *buf)
}
MainWindow::MainWindow() : QMainWindow(),
+ appState((ApplicationState)-1), // Invalid state
actionNextDive(nullptr),
actionPreviousDive(nullptr),
#ifndef NO_USERMANUAL
@@ -653,8 +654,7 @@ void MainWindow::updateLastUsedDir(const QString &dir)
void MainWindow::on_actionPrint_triggered()
{
#ifndef NO_PRINTING
- bool in_planner = getAppState() == ApplicationState::PlanDive ||
- getAppState() == ApplicationState::EditPlannedDive;
+ bool in_planner = appState == ApplicationState::PlanDive || appState == ApplicationState::EditPlannedDive;
PrintDialog dlg(in_planner, this);
dlg.exec();
@@ -1132,7 +1132,7 @@ void MainWindow::writeSettings()
settings.setValue("geometry", saveGeometry());
settings.setValue("windowState", saveState());
settings.setValue("maximized", isMaximized());
- settings.setValue("lastState", (int)getAppState());
+ settings.setValue("lastState", (int)appState);
saveSplitterSizes();
settings.endGroup();
}
@@ -1562,14 +1562,14 @@ void MainWindow::on_actionFilterTags_triggered()
{
if (!userMayChangeAppState())
return;
- setApplicationState(getAppState() == ApplicationState::FilterDive ? ApplicationState::Default : ApplicationState::FilterDive);
+ setApplicationState(appState == ApplicationState::FilterDive ? ApplicationState::Default : ApplicationState::FilterDive);
}
void MainWindow::on_actionStats_triggered()
{
if (!userMayChangeAppState())
return;
- setApplicationState(getAppState() == ApplicationState::Statistics ? ApplicationState::Default : ApplicationState::Statistics);
+ setApplicationState(appState == ApplicationState::Statistics ? ApplicationState::Default : ApplicationState::Statistics);
}
void MainWindow::registerApplicationState(ApplicationState state, Quadrants q)
@@ -1602,17 +1602,17 @@ void MainWindow::setQuadrantWidgets(QSplitter &splitter, const Quadrant &left, c
bool MainWindow::userMayChangeAppState() const
{
- return applicationState[(int)getAppState()].allowUserChange;
+ return applicationState[(int)appState].allowUserChange;
}
void MainWindow::setApplicationState(ApplicationState state)
{
- if (getAppState() == state)
+ if (appState == state)
return;
saveSplitterSizes();
- setAppState(state);
+ appState = state;
clearSplitter(*topSplitter);
clearSplitter(*bottomSplitter);
diff --git a/desktop-widgets/mainwindow.h b/desktop-widgets/mainwindow.h
index ae8e11740..4b28c0a9e 100644
--- a/desktop-widgets/mainwindow.h
+++ b/desktop-widgets/mainwindow.h
@@ -19,7 +19,6 @@
#include "ui_plannerDetails.h"
#include "desktop-widgets/notificationwidget.h"
#include "desktop-widgets/filterwidget.h"
-#include "core/applicationstate.h"
#include "core/dive.h"
#include "core/subsurface-qt/divelistnotifier.h"
@@ -53,6 +52,21 @@ public:
LocationInformationWidget *locationInformationWidget();
void setTitle();
+ enum class ApplicationState {
+ Default,
+ EditDive,
+ PlanDive,
+ EditPlannedDive,
+ EditDiveSite,
+ FilterDive,
+ Statistics,
+ MapMaximized,
+ ProfileMaximized,
+ ListMaximized,
+ InfoMaximized,
+ Count
+ };
+
void loadFiles(const QStringList files);
void importFiles(const QStringList importFiles);
void setToolButtonsEnabled(bool enabled);
@@ -155,6 +169,7 @@ slots:
void startDiveSiteEdit();
private:
+ ApplicationState appState;
Ui::MainWindow ui;
FilterWidget filterWidget;
std::unique_ptr<QSplitter> topSplitter;
diff --git a/desktop-widgets/statswidget.cpp b/desktop-widgets/statswidget.cpp
index b74a26863..465d5d496 100644
--- a/desktop-widgets/statswidget.cpp
+++ b/desktop-widgets/statswidget.cpp
@@ -157,7 +157,7 @@ void StatsWidget::updateRestrictionLabel()
void StatsWidget::closeStats()
{
- MainWindow::instance()->setApplicationState(ApplicationState::Default);
+ MainWindow::instance()->setApplicationState(MainWindow::ApplicationState::Default);
}
void StatsWidget::chartTypeChanged(int idx)