mirror of
https://github.com/subsurface/subsurface.git
synced 2024-12-01 06:30:26 +00:00
a94c84d598
If we delete dives that were part of a trip, that trip may get deleted as well. So if we undo that operation we need to bring back the trip, too. This also deals with a bug in the original code that did the delete both in calling code (in divelistview.cpp) and in the redo function. Because of the nature of the delete this didn't really matter but it is of course wrong and with the new code it would in fact cause an issue. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
50 lines
1,018 B
C++
50 lines
1,018 B
C++
#ifndef UNDOCOMMANDS_H
|
|
#define UNDOCOMMANDS_H
|
|
|
|
#include <QUndoCommand>
|
|
#include <QMap>
|
|
#include "dive.h"
|
|
|
|
class UndoDeleteDive : public QUndoCommand {
|
|
public:
|
|
UndoDeleteDive(QList<struct dive*> deletedDives);
|
|
virtual void undo();
|
|
virtual void redo();
|
|
|
|
private:
|
|
QList<struct dive*> diveList;
|
|
QList<struct dive_trip*> tripList;
|
|
};
|
|
|
|
class UndoShiftTime : public QUndoCommand {
|
|
public:
|
|
UndoShiftTime(QList<int> changedDives, int amount);
|
|
virtual void undo();
|
|
virtual void redo();
|
|
|
|
private:
|
|
QList<int> diveList;
|
|
int timeChanged;
|
|
};
|
|
|
|
class UndoRenumberDives : public QUndoCommand {
|
|
public:
|
|
UndoRenumberDives(QMap<int, QPair<int, int> > originalNumbers);
|
|
virtual void undo();
|
|
virtual void redo();
|
|
|
|
private:
|
|
QMap<int,QPair<int, int> > oldNumbers;
|
|
};
|
|
|
|
class UndoRemoveDivesFromTrip : public QUndoCommand {
|
|
public:
|
|
UndoRemoveDivesFromTrip(QMap<struct dive*, dive_trip*> removedDives);
|
|
virtual void undo();
|
|
virtual void redo();
|
|
|
|
private:
|
|
QMap<struct dive*, dive_trip*> divesToUndo;
|
|
};
|
|
|
|
#endif // UNDOCOMMANDS_H
|