mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-28 05:00:20 +00:00
Undo: only show warning message if dives were actually edited
The multiple-dives-edited message was shown even if the value was not changed. Notably, when tab-flipping through the dive fields. Therefore, changed the execute_edit() function to return zero when no command was executed. For this, return a boolean from the execute() function indicating whether the command was really executed or trashed. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
parent
944a9aed54
commit
f51e402e04
3 changed files with 10 additions and 8 deletions
|
@ -148,9 +148,8 @@ void purgeUnusedDiveSites()
|
||||||
// Execute an edit-command and return number of edited dives
|
// Execute an edit-command and return number of edited dives
|
||||||
static int execute_edit(EditDivesBase *cmd)
|
static int execute_edit(EditDivesBase *cmd)
|
||||||
{
|
{
|
||||||
int res = cmd->numDives();
|
int count = cmd->numDives();
|
||||||
execute(cmd);
|
return execute(cmd) ? count : 0;
|
||||||
return res;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Dive editing related commands
|
// Dive editing related commands
|
||||||
|
|
|
@ -38,12 +38,15 @@ QAction *redoAction(QObject *parent)
|
||||||
return undoStack.createRedoAction(parent, QCoreApplication::translate("Command", "&Redo"));
|
return undoStack.createRedoAction(parent, QCoreApplication::translate("Command", "&Redo"));
|
||||||
}
|
}
|
||||||
|
|
||||||
void execute(Base *cmd)
|
bool execute(Base *cmd)
|
||||||
{
|
{
|
||||||
if (cmd->workToBeDone())
|
if (cmd->workToBeDone()) {
|
||||||
undoStack.push(cmd);
|
undoStack.push(cmd);
|
||||||
else
|
return true;
|
||||||
|
} else {
|
||||||
delete cmd;
|
delete cmd;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace Command
|
} // namespace Command
|
||||||
|
|
|
@ -168,8 +168,8 @@ public:
|
||||||
|
|
||||||
// Put a command on the undoStack (and take ownership), but test whether there
|
// Put a command on the undoStack (and take ownership), but test whether there
|
||||||
// is something to be done beforehand by calling the workToBeDone() function.
|
// is something to be done beforehand by calling the workToBeDone() function.
|
||||||
// If nothing is to be done, the command will be deleted.
|
// If nothing is to be done, the command will be deleted and false is returned.
|
||||||
void execute(Base *cmd);
|
bool execute(Base *cmd);
|
||||||
|
|
||||||
} // namespace Command
|
} // namespace Command
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue