Add current time and adjusted time to gui when adjusting dive's timestamp

This patch adds the current dive time and the adjusted time to the time
shift window. I added a function to dive.c to get the timestamp of the
first selected dive.

This will view the time of the first selected dive only even when multi
dives are selected but it does change the times for multiple dives
properly.

Signed-off-by: Gehad elrobey <gehadelrobey@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Gehad 2014-03-20 22:57:49 +02:00 committed by Dirk Hohndel
parent cc2369c5f9
commit 8ca4437624
5 changed files with 83 additions and 1 deletions

12
dive.c
View file

@ -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;
}

1
dive.h
View file

@ -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);

View file

@ -10,7 +10,7 @@
<x>0</x>
<y>0</y>
<width>343</width>
<height>177</height>
<height>224</height>
</rect>
</property>
<property name="sizePolicy">
@ -64,6 +64,38 @@
<property name="bottomMargin">
<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">
@ -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>

View file

@ -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)

View file

@ -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;
};