aboutsummaryrefslogtreecommitdiffstats
path: root/desktop-widgets/undocommands.h
blob: ca7fa7d6f2c9dfb7cae9413f7d5fe68ed14ae2b5 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
// SPDX-License-Identifier: GPL-2.0
#ifndef UNDOCOMMANDS_H
#define UNDOCOMMANDS_H

#include <QUndoCommand>
#include <QMap>

class UndoDeleteDive : public QUndoCommand {
public:
	UndoDeleteDive(QList<struct dive*> deletedDives);
	void undo();
	void redo();

private:
	QList<struct dive*> diveList;
	QList<struct dive_trip*> tripList;
};

class UndoShiftTime : public QUndoCommand {
public:
	UndoShiftTime(QList<int> changedDives, int amount);
	void undo();
	void redo();

private:
	QList<int> diveList;
	int timeChanged;
};

class UndoRenumberDives : public QUndoCommand {
public:
	UndoRenumberDives(QMap<int, QPair<int, int> > originalNumbers);
	void undo();
	void redo();

private:
	QMap<int,QPair<int, int> > oldNumbers;
};

class UndoRemoveDivesFromTrip : public QUndoCommand {
public:
	UndoRemoveDivesFromTrip(QMap<struct dive*, dive_trip*> removedDives);
	void undo();
	void redo();

private:
	QMap<struct dive*, dive_trip*> divesToUndo;
	QList<struct dive_trip*> tripList;
};

#endif // UNDOCOMMANDS_H