mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Undo: implement undo of rating and visibility rating
This was rather trivial and modeled after the previous edit UndoCommands. Since this is the first time we're editing integers a new constructor instantiation had to be added. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
parent
512a2e6b68
commit
42cfd3f963
5 changed files with 86 additions and 16 deletions
|
@ -342,6 +342,12 @@ void MainTab::divesEdited(const QVector<dive *> &, DiveField field)
|
|||
return;
|
||||
|
||||
switch(field) {
|
||||
case DiveField::RATING:
|
||||
ui.rating->setCurrentStars(current_dive->rating);
|
||||
break;
|
||||
case DiveField::VISIBILITY:
|
||||
ui.visibility->setCurrentStars(current_dive->visibility);
|
||||
break;
|
||||
case DiveField::SUIT:
|
||||
ui.suit->setText(QString(current_dive->suit));
|
||||
break;
|
||||
|
@ -798,10 +804,6 @@ void MainTab::acceptChanges()
|
|||
struct dive *cd = current_dive;
|
||||
// now check if something has changed and if yes, edit the selected dives that
|
||||
// were identical with the master dive shown (and mark the divelist as changed)
|
||||
if (displayed_dive.rating != cd->rating)
|
||||
MODIFY_DIVES(selectedDives, EDIT_VALUE(rating));
|
||||
if (displayed_dive.visibility != cd->visibility)
|
||||
MODIFY_DIVES(selectedDives, EDIT_VALUE(visibility));
|
||||
if (displayed_dive.airtemp.mkelvin != cd->airtemp.mkelvin)
|
||||
MODIFY_DIVES(selectedDives, EDIT_VALUE(airtemp.mkelvin));
|
||||
if (displayed_dive.watertemp.mkelvin != cd->watertemp.mkelvin)
|
||||
|
@ -1378,24 +1380,18 @@ void MainTab::on_notes_editingFinished()
|
|||
|
||||
void MainTab::on_rating_valueChanged(int value)
|
||||
{
|
||||
if (acceptingEdit == true)
|
||||
if (acceptingEdit == true || !current_dive)
|
||||
return;
|
||||
if (displayed_dive.rating != value) {
|
||||
displayed_dive.rating = value;
|
||||
modified = true;
|
||||
enableEdition();
|
||||
}
|
||||
|
||||
Command::editRating(getSelectedDivesCurrentLast(), value, current_dive->rating);
|
||||
}
|
||||
|
||||
void MainTab::on_visibility_valueChanged(int value)
|
||||
{
|
||||
if (acceptingEdit == true)
|
||||
if (acceptingEdit == true || !current_dive)
|
||||
return;
|
||||
if (displayed_dive.visibility != value) {
|
||||
displayed_dive.visibility = value;
|
||||
modified = true;
|
||||
enableEdition();
|
||||
}
|
||||
|
||||
Command::editVisibility(getSelectedDivesCurrentLast(), value, current_dive->visibility);
|
||||
}
|
||||
|
||||
#undef MODIFY_DIVES
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue