subsurface/desktop-widgets/tab-widgets/maintab.h
Berthold Stoeger 00ff63f186 desktop: update date and time fields if user changes format
This was more painful than expected, because we get the "preferences"
changed signal too early when the user switches to system format.
The correct format is set by the preferences-widget, not the preferences
subsystem.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2020-05-22 10:00:43 -07:00

85 lines
2.3 KiB
C++

// SPDX-License-Identifier: GPL-2.0
/*
* maintab.h
*
* header file for the main tab of Subsurface
*
*/
#ifndef MAINTAB_H
#define MAINTAB_H
#include <QTabWidget>
#include <QDialog>
#include <QMap>
#include <QUuid>
#include "ui_maintab.h"
#include "qt-models/completionmodels.h"
#include "qt-models/divelocationmodel.h"
#include "core/dive.h"
#include "core/subsurface-qt/divelistnotifier.h"
class ExtraDataModel;
class DivePictureModel;
class TabBase;
class MainTab : public QTabWidget {
Q_OBJECT
public:
MainTab(QWidget *parent = 0);
void clearTabs();
void reload();
void initialUiSetup();
bool isEditing();
void updateCoordinatesText(qreal lat, qreal lon);
void refreshDisplayedDiveSite();
void nextInputField(QKeyEvent *event);
void stealFocus();
public
slots:
void divesChanged(const QVector<dive *> &dives, DiveField field);
void diveSiteEdited(dive_site *ds, int field);
void tripChanged(dive_trip *trip, TripField field);
void updateDiveInfo();
void updateNotes(const struct dive *d);
void updateDateTime(const struct dive *d);
void updateTripDate(const struct dive_trip *t);
void updateDiveSite(struct dive *d);
void acceptChanges();
void rejectChanges();
void on_location_diveSiteSelected();
void on_locationPopupButton_clicked();
void on_divemaster_editingFinished();
void on_buddy_editingFinished();
void on_diveTripLocation_editingFinished();
void on_notes_editingFinished();
void on_duration_editingFinished();
void on_depth_editingFinished();
void on_dateEdit_editingFinished();
void on_timeEdit_editingFinished();
void on_rating_valueChanged(int value);
void on_tagWidget_editingFinished();
void hideMessage();
void closeMessage();
void closeWarning();
void displayMessage(QString str);
void enableEdition();
void escDetected(void);
void updateDateTimeFields();
private:
Ui::MainTab ui;
bool editMode;
bool ignoreInput; // When computionally editing fields, we have to ignore changed-signals
BuddyCompletionModel buddyModel;
DiveMasterCompletionModel diveMasterModel;
TagCompletionModel tagModel;
bool lastSelectedDive;
int lastTabSelectedDive;
int lastTabSelectedDiveTrip;
dive_trip *currentTrip;
QList<TabBase*> extraWidgets;
void divesEdited(int num); // Opens a warning window if more than one dive was edited
};
#endif // MAINTAB_H