mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-01 05:53: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),
|
alreadySaving(false),
|
||||||
m_pluggedInDeviceName(""),
|
m_pluggedInDeviceName(""),
|
||||||
m_showNonDiveComputers(false),
|
m_showNonDiveComputers(false),
|
||||||
|
undoAction(Command::undoAction(this)),
|
||||||
m_oldStatus(qPrefCloudStorage::CS_UNKNOWN)
|
m_oldStatus(qPrefCloudStorage::CS_UNKNOWN)
|
||||||
{
|
{
|
||||||
m_instance = this;
|
m_instance = this;
|
||||||
|
@ -1383,24 +1384,10 @@ void QMLManager::saveChangesCloud(bool forceRemoteSync)
|
||||||
git_local_only = glo;
|
git_local_only = glo;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool QMLManager::undoDelete(int id)
|
bool QMLManager::undoDelete(int)
|
||||||
{
|
{
|
||||||
if (!deletedDive || deletedDive->id != id) {
|
undoAction->activate(QAction::Trigger);
|
||||||
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));
|
|
||||||
changesNeedSaving();
|
changesNeedSaving();
|
||||||
deletedDive = NULL;
|
|
||||||
deletedTrip = NULL;
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -19,6 +19,8 @@
|
||||||
#include "core/settings/qPrefCloudStorage.h"
|
#include "core/settings/qPrefCloudStorage.h"
|
||||||
#include "core/subsurface-qt/divelistnotifier.h"
|
#include "core/subsurface-qt/divelistnotifier.h"
|
||||||
|
|
||||||
|
class QAction;
|
||||||
|
|
||||||
class QMLManager : public QObject {
|
class QMLManager : public QObject {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
Q_PROPERTY(QString logText READ logText WRITE setLogText NOTIFY logTextChanged)
|
Q_PROPERTY(QString logText READ logText WRITE setLogText NOTIFY logTextChanged)
|
||||||
|
@ -264,6 +266,7 @@ private:
|
||||||
bool m_showNonDiveComputers;
|
bool m_showNonDiveComputers;
|
||||||
struct dive *m_copyPasteDive = NULL;
|
struct dive *m_copyPasteDive = NULL;
|
||||||
struct dive_components what;
|
struct dive_components what;
|
||||||
|
QAction *undoAction;
|
||||||
|
|
||||||
bool verifyCredentials(QString email, QString password, QString pin);
|
bool verifyCredentials(QString email, QString password, QString pin);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue