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 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)