subsurface/qt-ui/simplewidgets.h
Dirk Hohndel 0e6345f65b Correctly connect the maintab to dive site management
We now have a working uuid - use it. And populate the fields accordingly.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-02-12 11:19:27 -08:00

244 lines
5 KiB
C++

#ifndef SIMPLEWIDGETS_H
#define SIMPLEWIDGETS_H
class MinMaxAvgWidgetPrivate;
class QAbstractButton;
class QNetworkReply;
#include <QWidget>
#include <QGroupBox>
#include <QDialog>
#include <stdint.h>
#include "ui_renumber.h"
#include "ui_setpoint.h"
#include "ui_shifttimes.h"
#include "ui_shiftimagetimes.h"
#include "ui_divecomponentselection.h"
#include "ui_listfilter.h"
#include "ui_filterwidget.h"
#include "exif.h"
#include <dive.h>
class MinMaxAvgWidget : public QWidget {
Q_OBJECT
Q_PROPERTY(double minimum READ minimum WRITE setMinimum)
Q_PROPERTY(double maximum READ maximum WRITE setMaximum)
Q_PROPERTY(double average READ average WRITE setAverage)
public:
MinMaxAvgWidget(QWidget *parent);
~MinMaxAvgWidget();
double minimum() const;
double maximum() const;
double average() const;
void setMinimum(double minimum);
void setMaximum(double maximum);
void setAverage(double average);
void setMinimum(const QString &minimum);
void setMaximum(const QString &maximum);
void setAverage(const QString &average);
void overrideMinToolTipText(const QString &newTip);
void overrideAvgToolTipText(const QString &newTip);
void overrideMaxToolTipText(const QString &newTip);
void clear();
private:
QScopedPointer<MinMaxAvgWidgetPrivate> d;
};
class RenumberDialog : public QDialog {
Q_OBJECT
public:
static RenumberDialog *instance();
void renumberOnlySelected(bool selected = true);
private
slots:
void buttonClicked(QAbstractButton *button);
private:
explicit RenumberDialog(QWidget *parent);
Ui::RenumberDialog ui;
bool selectedOnly;
};
class SetpointDialog : public QDialog {
Q_OBJECT
public:
static SetpointDialog *instance();
void setpointData(struct divecomputer *divecomputer, int time);
private
slots:
void buttonClicked(QAbstractButton *button);
private:
explicit SetpointDialog(QWidget *parent);
Ui::SetpointDialog ui;
struct divecomputer *dc;
int time;
};
class ShiftTimesDialog : public QDialog {
Q_OBJECT
public:
static ShiftTimesDialog *instance();
void showEvent(QShowEvent *event);
private
slots:
void buttonClicked(QAbstractButton *button);
void changeTime();
private:
explicit ShiftTimesDialog(QWidget *parent);
int64_t when;
Ui::ShiftTimesDialog ui;
};
class ShiftImageTimesDialog : public QDialog {
Q_OBJECT
public:
explicit ShiftImageTimesDialog(QWidget *parent);
time_t amount() const;
void setOffset(time_t offset);
private
slots:
void buttonClicked(QAbstractButton *button);
void syncCameraClicked();
void dcDateTimeChanged(const QDateTime &);
private:
Ui::ShiftImageTimesDialog ui;
time_t m_amount;
time_t dcImageEpoch;
};
class QCalendarWidget;
class DateWidget : public QWidget {
Q_OBJECT
public:
DateWidget(QWidget *parent = 0);
QDate date() const;
public
slots:
void setDate(const QDate &date);
protected:
void paintEvent(QPaintEvent *event);
void mousePressEvent(QMouseEvent *event);
void focusInEvent(QFocusEvent *);
void focusOutEvent(QFocusEvent *);
void keyPressEvent(QKeyEvent *);
void changeEvent(QEvent *);
bool eventFilter(QObject *, QEvent *);
signals:
void dateChanged(const QDate &date);
private:
QDate mDate;
QCalendarWidget *calendarWidget;
};
class DiveComponentSelection : public QDialog {
Q_OBJECT
public:
explicit DiveComponentSelection(QWidget *parent, struct dive *target, struct dive_components *_what);
private
slots:
void buttonClicked(QAbstractButton *button);
private:
Ui::DiveComponentSelectionDialog ui;
struct dive *targetDive;
struct dive_components *what;
};
namespace Ui{
class FilterWidget2;
};
class MultiFilter : public QWidget {
Q_OBJECT
public
slots:
void closeFilter();
void adjustHeight();
void filterFinished();
public:
MultiFilter(QWidget *parent);
Ui::FilterWidget2 ui;
};
class TagFilter : public QWidget {
Q_OBJECT
public:
TagFilter(QWidget *parent = 0);
virtual void showEvent(QShowEvent *);
virtual void hideEvent(QHideEvent *);
private:
Ui::FilterWidget ui;
friend class MultiFilter;
};
class BuddyFilter : public QWidget {
Q_OBJECT
public:
BuddyFilter(QWidget *parent = 0);
virtual void showEvent(QShowEvent *);
virtual void hideEvent(QHideEvent *);
private:
Ui::FilterWidget ui;
};
class SuitFilter : public QWidget {
Q_OBJECT
public:
SuitFilter(QWidget *parent = 0);
virtual void showEvent(QShowEvent *);
virtual void hideEvent(QHideEvent *);
private:
Ui::FilterWidget ui;
};
class LocationFilter : public QWidget {
Q_OBJECT
public:
LocationFilter(QWidget *parent = 0);
virtual void showEvent(QShowEvent *);
virtual void hideEvent(QHideEvent *);
private:
Ui::FilterWidget ui;
};
#include "ui_locationInformation.h"
class LocationInformationWidget : public QGroupBox {
Q_OBJECT
public:
LocationInformationWidget(QWidget *parent = 0);
public slots:
void acceptChanges();
void rejectChanges();
void showEvent(QShowEvent *);
void setLocationId(uint32_t uuid);
signals:
void informationManagementEnded();
private:
struct dive_site *currentDs;
Ui::LocationInformation ui;
};
bool isGnome3Session();
QImage grayImage(const QImage &coloredImg);
#endif // SIMPLEWIDGETS_H