mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-01 00:33:24 +00:00
mobile/undo: create undo-action and connect to undo of dive deletion
Still buggy: Removing a dive followed by undo shows the wrong dive in the list. But clicking on it gives the correct dive. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
c0095f690f
commit
9fb52cc45c
2 changed files with 6 additions and 16 deletions
|
@ -155,6 +155,7 @@ QMLManager::QMLManager() : m_locationServiceEnabled(false),
|
|||
alreadySaving(false),
|
||||
m_pluggedInDeviceName(""),
|
||||
m_showNonDiveComputers(false),
|
||||
undoAction(Command::undoAction(this)),
|
||||
m_oldStatus(qPrefCloudStorage::CS_UNKNOWN)
|
||||
{
|
||||
m_instance = this;
|
||||
|
@ -1383,24 +1384,10 @@ void QMLManager::saveChangesCloud(bool forceRemoteSync)
|
|||
git_local_only = glo;
|
||||
}
|
||||
|
||||
bool QMLManager::undoDelete(int id)
|
||||
bool QMLManager::undoDelete(int)
|
||||
{
|
||||
if (!deletedDive || deletedDive->id != id) {
|
||||
appendTextToLog("Trying to undo delete but can't find the deleted dive");
|
||||
return false;
|
||||
}
|
||||
if (deletedTrip)
|
||||
insert_trip(deletedTrip, &trip_table);
|
||||
if (deletedDive->divetrip) {
|
||||
struct dive_trip *trip = deletedDive->divetrip;
|
||||
deletedDive->divetrip = NULL;
|
||||
add_dive_to_trip(deletedDive, trip);
|
||||
}
|
||||
record_dive(deletedDive);
|
||||
DiveListModel::instance()->insertDive(get_idx_by_uniq_id(deletedDive->id));
|
||||
undoAction->activate(QAction::Trigger);
|
||||
changesNeedSaving();
|
||||
deletedDive = NULL;
|
||||
deletedTrip = NULL;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -19,6 +19,8 @@
|
|||
#include "core/settings/qPrefCloudStorage.h"
|
||||
#include "core/subsurface-qt/divelistnotifier.h"
|
||||
|
||||
class QAction;
|
||||
|
||||
class QMLManager : public QObject {
|
||||
Q_OBJECT
|
||||
Q_PROPERTY(QString logText READ logText WRITE setLogText NOTIFY logTextChanged)
|
||||
|
@ -264,6 +266,7 @@ private:
|
|||
bool m_showNonDiveComputers;
|
||||
struct dive *m_copyPasteDive = NULL;
|
||||
struct dive_components what;
|
||||
QAction *undoAction;
|
||||
|
||||
bool verifyCredentials(QString email, QString password, QString pin);
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue