Improve shift time functionality

In commit 85fab31c71fc ("Shift times of selected dives") we added a dialog
that didn't align its content very well. This change improves the layout
(I hope) and makes the labels in the layout clearer (earlier and later seem
easier to correlate with the direction of the shift).

The original commit also forgets to deal with the consequences of shifting
the dives. The dive list needs to be re-sorted (as the relative order of
dives could have changed) and be marked as changed. And we should try to
maintain the selection across these operations.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Dirk Hohndel 2013-11-18 10:00:39 -08:00
parent 4966336e1d
commit 7d0cc6b337
2 changed files with 21 additions and 16 deletions

View file

@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>229</width>
<height>134</height>
<width>343</width>
<height>226</height>
</rect>
</property>
<property name="windowTitle">
@ -18,7 +18,7 @@
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
<number>14</number>
</property>
<property name="topMargin">
<number>0</number>
@ -35,11 +35,14 @@
<string>Shift times of selected dives by</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
<number>23</number>
</property>
<property name="rightMargin">
<number>0</number>
@ -73,29 +76,25 @@
<day>1</day>
</date>
</property>
<property name="displayFormat">
<string>h:mm</string>
</property>
<property name="timeSpec">
<enum>Qt::LocalTime</enum>
</property>
<property name="time">
<time>
<hour>0</hour>
<minute>0</minute>
<second>0</second>
</time>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="backwards">
<property name="text">
<string>backwards</string>
<string>earlier</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="forward">
<property name="text">
<string>forward</string>
<string>later</string>
</property>
<property name="checked">
<bool>true</bool>

View file

@ -134,9 +134,15 @@ void ShiftTimesDialog::buttonClicked(QAbstractButton* button)
amount = ui.timeEdit->time().hour() * 3600 + ui.timeEdit->time().minute() * 60;
if (ui.backwards->isChecked())
amount *= -1;
shift_times(amount);
mainWindow()->refreshDisplay();
if (amount != 0) {
// DANGER, DANGER - this could get our dive_table unsorted...
shift_times(amount);
sort_table(&dive_table);
mark_divelist_changed(TRUE);
mainWindow()->dive_list()->rememberSelection();
mainWindow()->refreshDisplay();
mainWindow()->dive_list()->restoreSelection();
}
}
}