mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
mobile UI: use undo-command for adding dive.
Instead of using the model, copy the code we have in the desktop version which manually creates a 15m/40min dive and passes that to the addDive undo command. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
2ad7b26f4b
commit
5493e7cbf6
3 changed files with 21 additions and 13 deletions
|
@ -228,9 +228,6 @@ Kirigami.Page {
|
||||||
}
|
}
|
||||||
|
|
||||||
function endEditMode() {
|
function endEditMode() {
|
||||||
// if we were adding a dive, we need to remove it
|
|
||||||
if (state === "add")
|
|
||||||
manager.addDiveAborted(dive_id)
|
|
||||||
// just cancel the edit/add state
|
// just cancel the edit/add state
|
||||||
state = "view";
|
state = "view";
|
||||||
focus = false;
|
focus = false;
|
||||||
|
|
|
@ -1557,16 +1557,28 @@ void QMLManager::cancelDownloadDC()
|
||||||
import_thread_cancelled = true;
|
import_thread_cancelled = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString QMLManager::addDive()
|
int QMLManager::addDive()
|
||||||
{
|
{
|
||||||
appendTextToLog("Adding new dive.");
|
// TODO: Duplicate code with desktop-widgets/mainwindow.cpp
|
||||||
return DiveListModel::instance()->startAddDive();
|
// create a dive an hour from now with a default depth (15m/45ft) and duration (40 minutes)
|
||||||
}
|
// as a starting point for the user to edit
|
||||||
|
struct dive d = { 0 };
|
||||||
|
int diveId = d.id = dive_getUniqID();
|
||||||
|
d.when = QDateTime::currentMSecsSinceEpoch() / 1000L + gettimezoneoffset() + 3600;
|
||||||
|
d.dc.duration.seconds = 40 * 60;
|
||||||
|
d.dc.maxdepth.mm = M_OR_FT(15, 45);
|
||||||
|
d.dc.meandepth.mm = M_OR_FT(13, 39); // this creates a resonable looking safety stop
|
||||||
|
d.dc.model = strdup("manually added dive"); // don't translate! this is stored in the XML file
|
||||||
|
fake_dc(&d.dc);
|
||||||
|
fixup_dive(&d);
|
||||||
|
|
||||||
void QMLManager::addDiveAborted(int id)
|
// addDive takes over the dive and clears out the structure passed in
|
||||||
{
|
Command::addDive(&d, autogroup, true);
|
||||||
DiveListModel::instance()->removeDiveById(id);
|
|
||||||
delete_single_dive(get_idx_by_uniq_id(id));
|
if (verbose)
|
||||||
|
appendTextToLog(QString("Adding new dive with id '%1'").arg(diveId));
|
||||||
|
// the QML UI uses the return value to set up the edit screen
|
||||||
|
return diveId;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString QMLManager::getCurrentPosition()
|
QString QMLManager::getCurrentPosition()
|
||||||
|
|
|
@ -200,8 +200,7 @@ public slots:
|
||||||
bool toggleCylinders(bool toggle);
|
bool toggleCylinders(bool toggle);
|
||||||
bool toggleWeights(bool toggle);
|
bool toggleWeights(bool toggle);
|
||||||
void undoDelete(int id);
|
void undoDelete(int id);
|
||||||
QString addDive();
|
int addDive();
|
||||||
void addDiveAborted(int id);
|
|
||||||
void applyGpsData();
|
void applyGpsData();
|
||||||
void populateGpsData();
|
void populateGpsData();
|
||||||
void cancelDownloadDC();
|
void cancelDownloadDC();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue