mobile/undo: compile undo commands and call undo command for deletion.

First steps towards full undo on mobile.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Berthold Stoeger 2019-11-14 21:38:30 +01:00 committed by Dirk Hohndel
parent 5601104ba5
commit c0095f690f
4 changed files with 18 additions and 26 deletions

View file

@ -314,6 +314,7 @@ if (SUBSURFACE_TARGET_EXECUTABLE MATCHES "MobileExecutable")
subsurface_mapwidget
subsurface_backend_shared
subsurface_models_mobile
subsurface_commands_mobile
subsurface_corelib
${SUBSURFACE_LINK_LIBRARIES}
)

View file

@ -18,7 +18,7 @@ set(SUBSURFACE_GENERIC_COMMANDS_SRCS
if (SUBSURFACE_TARGET_EXECUTABLE MATCHES "DesktopExecutable")
add_library(subsurface_commands_desktop STATIC ${SUBSURFACE_GENERIC_COMMANDS_SRCS})
target_link_libraries(subsurface_commands_desktop ${QT_LIBRARIES})
#elseif (SUBSURFACE_TARGET_EXECUTABLE MATCHES "MobileExecutable")
# add_library(subsurface_commands_mobile STATIC ${SUBSURFACE_GENERIC_COMMANDS_SRCS})
# target_link_libraries(subsurface_commands_mobile ${QT_LIBRARIES})
elseif (SUBSURFACE_TARGET_EXECUTABLE MATCHES "MobileExecutable")
add_library(subsurface_commands_mobile STATIC ${SUBSURFACE_GENERIC_COMMANDS_SRCS})
target_link_libraries(subsurface_commands_mobile ${QT_LIBRARIES})
endif()

View file

@ -49,7 +49,7 @@
#include "core/worldmap-save.h"
#include "core/uploadDiveLogsDE.h"
#include "core/uploadDiveShare.h"
#include "commands/command.h"
QMLManager *QMLManager::m_instance = NULL;
bool noCloudToCloud = false;
@ -1429,28 +1429,7 @@ void QMLManager::deleteDive(int id)
appendTextToLog("trying to delete non-existing dive");
return;
}
// create the storage for the deleted dive and trip (if applicable)
if (!deletedDive)
deletedDive = alloc_dive();
copy_dive(d, deletedDive);
if (!deletedTrip) {
deletedTrip = alloc_trip();
} else {
free(deletedTrip->location);
free(deletedTrip->notes);
memset(deletedTrip, 0, sizeof(struct dive_trip));
}
// if this is the last dive in that trip, remember the trip as well
if (d->divetrip && d->divetrip->dives.nr == 1) {
*deletedTrip = *d->divetrip;
deletedTrip->location = copy_string(d->divetrip->location);
deletedTrip->notes = copy_string(d->divetrip->notes);
deletedTrip->dives.nr = 0;
deletedDive->divetrip = deletedTrip;
}
DiveListModel::instance()->removeDiveById(id);
delete_single_dive(get_idx_by_uniq_id(id));
DiveListModel::instance()->resetInternalData();
Command::deleteDive(QVector<dive *>{ d });
changesNeedSaving();
}

View file

@ -15,6 +15,12 @@ QTQUICK_COMPILER_SKIPPED_RESOURCES +=
SOURCES += ../../subsurface-mobile-main.cpp \
../../subsurface-helper.cpp \
../../map-widget/qmlmapwidgethelper.cpp \
../../commands/command_base.cpp \
../../commands/command.cpp \
../../commands/command_divelist.cpp \
../../commands/command_divesite.cpp \
../../commands/command_edit.cpp \
../../commands/command_edit_trip.cpp \
../../core/cloudstorage.cpp \
../../core/configuredivecomputerthreads.cpp \
../../core/devicedetails.cpp \
@ -174,6 +180,12 @@ INCLUDEPATH += ../../../install-root/ios/include/ \
/usr/include/libxml2
HEADERS += \
../../commands/command_base.h \
../../commands/command.h \
../../commands/command_divelist.h \
../../commands/command_divesite.h \
../../commands/command_edit.h \
../../commands/command_edit_trip.h \
../../core/libdivecomputer.h \
../../core/cloudstorage.h \
../../core/configuredivecomputerthreads.h \