Cleanup: Turn widget accessor-functions into simple pointers

The keeps track of different sub widgets needed by other parts
of the code, notably:
	MainTab
	PlannerDetails
	PlannerSettingsWidget
	ProfileWidget2
	DivePlannerWidget
	DiveListView
Access to these widgets was provided with accessor functions.
Now these functions were very weird: instead of simply returning
pointers that were stored in the class, they accessed a data
structure which describes the different application states.
But this data structure was "duck-typed", so there was an
implicit agreement at which position the pointers to the
widgets were put inside. The widgets were then down-cast by
the accessor functions. This might make sense if the individual
widgets could for some reason be replaced by other widgets
[dynamic plugins?], but even then it would be strange, as one
would expect to get a pointer to some base class.

Therefore, directly store the properly typed pointers to the
widgets and simply remove the accessor functions. Why bother?

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
Berthold Stoeger 2018-10-12 15:07:40 +02:00 committed by Dirk Hohndel
parent 11a211fb02
commit 78e2560296
14 changed files with 175 additions and 201 deletions

View file

@ -59,14 +59,10 @@ public:
MainWindow();
~MainWindow();
static MainWindow *instance();
MainTab *information();
void loadRecentFiles();
void updateRecentFiles();
void updateRecentFilesMenu();
void addRecentFile(const QString &file, bool update);
DiveListView *dive_list();
DivePlannerWidget *divePlannerWidget();
PlannerSettingsWidget *divePlannerSettingsWidget();
LocationInformationWidget *locationInformationWidget();
void setTitle();
@ -74,8 +70,6 @@ public:
void importFiles(const QStringList importFiles);
void cleanUpEmpty();
void setToolButtonsEnabled(bool enabled);
ProfileWidget2 *graphics() const;
PlannerDetails *plannerDetails() const;
void printPlan();
void checkSurvey();
void setApplicationState(const QByteArray& state);
@ -87,6 +81,12 @@ public:
void enterEditState();
void exitEditState();
MainTab *information;
PlannerDetails *plannerDetails;
PlannerSettingsWidget *divePlannerSettingsWidget;
ProfileWidget2 *graphics;
DivePlannerWidget *divePlannerWidget;
DiveListView *dive_list;
private
slots:
/* file menu action */