subsurface/qt-ui/locationinformation.h
Tomaz Canabrava dee59e5334 Dive site rewrite: fix adding a new dive and chaning notes / description
I had to create an event filter to deal with the missing callbacks from
QPlainTextEdit (it doesn't support editingFinished()).

Also we need to manually create a dive site on a newly added dive if the
user entered one.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-06-26 18:50:23 -07:00

67 lines
1.8 KiB
C++

#ifndef LOCATIONINFORMATION_H
#define LOCATIONINFORMATION_H
#include "ui_locationInformation.h"
#include <stdint.h>
#include <QAbstractListModel>
class LocationInformationWidget : public QGroupBox {
Q_OBJECT
public:
enum mode{CREATE_DIVE_SITE, EDIT_DIVE_SITE};
LocationInformationWidget(QWidget *parent = 0);
protected:
void showEvent(QShowEvent *);
public slots:
void acceptChanges();
void rejectChanges();
void updateGpsCoordinates();
void editDiveSite(uint32_t uuid);
void createDiveSite();
void markChangedWidget(QWidget *w);
void enableEdition();
void resetState();
void resetPallete();
void on_diveSiteCoordinates_textChanged(const QString& text);
void on_diveSiteDescription_textChanged(const QString& text);
void on_diveSiteName_textChanged(const QString& text);
void on_diveSiteNotes_textChanged();
private slots:
void setCurrentDiveSiteByUuid(uint32_t uuid);
signals:
void startEditDiveSite(uint32_t uuid);
void endEditDiveSite();
void informationManagementEnded();
void coordinatesChanged();
void startFilterDiveSite(uint32_t uuid);
void stopFilterDiveSite();
private:
struct dive_site *currentDs;
Ui::LocationInformation ui;
bool modified;
QAction *closeAction, *acceptAction, *rejectAction;
mode current_mode;
};
#include "ui_simpledivesiteedit.h"
class SimpleDiveSiteEditDialog : public QDialog {
Q_OBJECT
public:
SimpleDiveSiteEditDialog(QWidget *parent);
virtual ~SimpleDiveSiteEditDialog();
bool changed_dive_site;
bool eventFilter(QObject *obj, QEvent *ev);
public slots:
void on_diveSiteName_editingFinished();
void on_diveSiteCoordinates_editingFinished();
void diveSiteDescription_editingFinished();
void diveSiteNotes_editingFinished();
protected:
void showEvent(QShowEvent *ev);
private:
Ui::SimpleDiveSiteEditDialog *ui;
};
#endif