mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
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>
This commit is contained in:
parent
114b3d9d47
commit
75767c456a
11 changed files with 100 additions and 75 deletions
|
@ -19,6 +19,7 @@
|
|||
#include "ui_plannerDetails.h"
|
||||
#include "desktop-widgets/notificationwidget.h"
|
||||
#include "desktop-widgets/filterwidget2.h"
|
||||
#include "core/applicationstate.h"
|
||||
#include "core/gpslocation.h"
|
||||
#include "core/dive.h"
|
||||
|
||||
|
@ -56,7 +57,7 @@ public:
|
|||
INFO_MAXIMIZED,
|
||||
PROFILE_MAXIMIZED,
|
||||
LIST_MAXIMIZED,
|
||||
EDIT
|
||||
EDIT,
|
||||
};
|
||||
|
||||
MainWindow();
|
||||
|
@ -75,8 +76,8 @@ public:
|
|||
void setToolButtonsEnabled(bool enabled);
|
||||
void printPlan();
|
||||
void checkSurvey();
|
||||
void setApplicationState(const QByteArray& state);
|
||||
void setStateProperties(const QByteArray& state, const PropertyList& tl, const PropertyList& tr, const PropertyList& bl,const PropertyList& br);
|
||||
void setApplicationState(ApplicationState state);
|
||||
void setStateProperties(ApplicationState state, const PropertyList& tl, const PropertyList& tr, const PropertyList& bl,const PropertyList& br);
|
||||
bool inPlanner();
|
||||
NotificationWidget *getNotificationWidget();
|
||||
void enableDisableCloudActions();
|
||||
|
@ -212,7 +213,7 @@ private:
|
|||
void toggleCollapsible(bool toggle);
|
||||
void showFilterIfEnabled();
|
||||
void updateLastUsedDir(const QString &s);
|
||||
void registerApplicationState(const QByteArray& state, QWidget *topLeft, QWidget *topRight, QWidget *bottomLeft, QWidget *bottomRight);
|
||||
void registerApplicationState(ApplicationState state, QWidget *topLeft, QWidget *topRight, QWidget *bottomLeft, QWidget *bottomRight);
|
||||
void enterState(CurrentState);
|
||||
bool filesAsArguments;
|
||||
UpdateManager *updateManager;
|
||||
|
@ -249,8 +250,8 @@ private:
|
|||
PropertyList bottomRight;
|
||||
};
|
||||
|
||||
QHash<QByteArray, WidgetForQuadrant> applicationState;
|
||||
QHash<QByteArray, PropertiesForQuadrant> stateProperties;
|
||||
WidgetForQuadrant applicationState[(size_t)ApplicationState::Count];
|
||||
PropertiesForQuadrant stateProperties[(size_t)ApplicationState::Count];
|
||||
|
||||
GpsLocation *locationProvider;
|
||||
QMenu *connections;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue