diff options
-rw-r--r-- | dive.c | 12 | ||||
-rw-r--r-- | dive.h | 1 | ||||
-rw-r--r-- | qt-ui/shifttimes.ui | 46 | ||||
-rw-r--r-- | qt-ui/simplewidgets.cpp | 22 | ||||
-rw-r--r-- | qt-ui/simplewidgets.h | 3 |
5 files changed, 83 insertions, 1 deletions
@@ -2176,3 +2176,15 @@ void shift_times(const timestamp_t amount) dive->when += amount; } } + +timestamp_t get_times() +{ + int i; + struct dive *dive; + + for_each_dive(i, dive) { + if (dive->selected) + break; + } + return dive->when; +} @@ -722,6 +722,7 @@ extern struct zip *subsurface_zip_open_readonly(const char *path, int flags, int extern int subsurface_zip_close(struct zip *zip); extern void shift_times(const timestamp_t amount); +extern timestamp_t get_times(); extern xsltStylesheetPtr get_stylesheet(const char *name); diff --git a/qt-ui/shifttimes.ui b/qt-ui/shifttimes.ui index 55932a2d3..8aaa247ce 100644 --- a/qt-ui/shifttimes.ui +++ b/qt-ui/shifttimes.ui @@ -10,7 +10,7 @@ <x>0</x> <y>0</y> <width>343</width> - <height>177</height> + <height>224</height> </rect> </property> <property name="sizePolicy"> @@ -65,6 +65,38 @@ <number>9</number> </property> <item> + <layout class="QFormLayout" name="formLayout"> + <item row="2" column="0"> + <widget class="QLabel" name="shiftedTimeLabel"> + <property name="text"> + <string>Shifted time:</string> + </property> + </widget> + </item> + <item row="1" column="0"> + <widget class="QLabel" name="currentTimeLabel"> + <property name="text"> + <string>Current time:</string> + </property> + </widget> + </item> + <item row="1" column="1"> + <widget class="QLabel" name="currentTime"> + <property name="text"> + <string>0:0</string> + </property> + </widget> + </item> + <item row="2" column="1"> + <widget class="QLabel" name="shiftedTime"> + <property name="text"> + <string>0:0</string> + </property> + </widget> + </item> + </layout> + </item> + <item> <widget class="QTimeEdit" name="timeEdit"> <property name="date"> <date> @@ -166,5 +198,17 @@ </hint> </hints> </connection> + <connection> + <sender>timeEdit</sender> + <signal>timeChanged(const QTime)</signal> + <receiver>ShiftTimesDialog</receiver> + <slot>changeTime()</slot> + </connection> + <connection> + <sender>backwards</sender> + <signal>toggled(bool)</signal> + <receiver>ShiftTimesDialog</receiver> + <slot>changeTime()</slot> + </connection> </connections> </ui> diff --git a/qt-ui/simplewidgets.cpp b/qt-ui/simplewidgets.cpp index 2ec984b7a..be3add815 100644 --- a/qt-ui/simplewidgets.cpp +++ b/qt-ui/simplewidgets.cpp @@ -18,6 +18,7 @@ #include "../dive.h" #include "../file.h" #include "mainwindow.h" +#include "helpers.h" class MinMaxAvgWidgetPrivate { public: @@ -155,10 +156,31 @@ void ShiftTimesDialog::buttonClicked(QAbstractButton *button) } } +void ShiftTimesDialog::showEvent(QShowEvent * event) +{ + ui.timeEdit->setTime(QTime(0, 0, 0, 0)); + when = get_times();//get time of first selected dive + ui.currentTime->setText(get_dive_date_string(when)); + ui.shiftedTime->setText(get_dive_date_string(when)); +} + +void ShiftTimesDialog::changeTime() +{ + int amount; + + amount = ui.timeEdit->time().hour() * 3600 + ui.timeEdit->time().minute() * 60; + if (ui.backwards->isChecked()) + amount *= -1; + + ui.shiftedTime->setText (get_dive_date_string(amount+when)); +} + ShiftTimesDialog::ShiftTimesDialog(QWidget *parent) : QDialog(parent) { ui.setupUi(this); connect(ui.buttonBox, SIGNAL(clicked(QAbstractButton *)), this, SLOT(buttonClicked(QAbstractButton *))); + connect(ui.timeEdit, SIGNAL(timeChanged(const QTime)), this, SLOT(changeTime())); + connect(ui.backwards, SIGNAL(toggled(bool)), this, SLOT(changeTime())); } void ShiftImageTimesDialog::buttonClicked(QAbstractButton *button) diff --git a/qt-ui/simplewidgets.h b/qt-ui/simplewidgets.h index 6e4166f35..178dfece8 100644 --- a/qt-ui/simplewidgets.h +++ b/qt-ui/simplewidgets.h @@ -52,12 +52,15 @@ 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; }; |