mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-01 07:43:23 +00:00
QML-UI: make dive edit almost sort of work
So this has a lot of caveats: - right now it only works for buddy, divemaster and suit - you have to actually exit the field with your cursor or the change doesn't take - that's ridiculous, there must be a far more clever way to do this - because I use the onEditingFinished handler I can't do this for the Notes (so here's another reason why I KNOW that this is the wrong way to do this) But it shows in principle how this could be done and once someone who actually knows what they are doing gets their hands on the code I'm optimistic that this can be morphed into something much more useful. It does tie together the changes made in the previous commits so that both clicking around on the dive list gives the expected results and synching the data back to the cloud actually works. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
9e6991a0e1
commit
8baae6a3b6
3 changed files with 21 additions and 2 deletions
|
@ -49,6 +49,9 @@ MobileComponents.Page {
|
||||||
checkable: true
|
checkable: true
|
||||||
iconName: checked ? "view-readermode" : "document-edit"
|
iconName: checked ? "view-readermode" : "document-edit"
|
||||||
onTriggered: {
|
onTriggered: {
|
||||||
|
if (diveDetailsWindow.state == "edit") {
|
||||||
|
manager.commitChanges(dive_id, suit, buddy, divemaster, notes);
|
||||||
|
}
|
||||||
diveDetailsWindow.state = checked ? "edit" : "view";
|
diveDetailsWindow.state = checked ? "edit" : "view";
|
||||||
contextDrawer.close();
|
contextDrawer.close();
|
||||||
// close drawer?
|
// close drawer?
|
||||||
|
|
|
@ -65,6 +65,9 @@ Item {
|
||||||
id: txtSuit
|
id: txtSuit
|
||||||
text: suit
|
text: suit
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
onEditingFinished: {
|
||||||
|
suit = text;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
MobileComponents.Label {
|
MobileComponents.Label {
|
||||||
|
@ -75,6 +78,9 @@ Item {
|
||||||
id: txtBuddy
|
id: txtBuddy
|
||||||
text: buddy
|
text: buddy
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
onEditingFinished: {
|
||||||
|
buddy = text;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
MobileComponents.Label {
|
MobileComponents.Label {
|
||||||
|
@ -85,6 +91,9 @@ Item {
|
||||||
id: txtDiveMaster
|
id: txtDiveMaster
|
||||||
text: divemaster
|
text: divemaster
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
onEditingFinished: {
|
||||||
|
divemaster = text;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
MobileComponents.Label {
|
MobileComponents.Label {
|
||||||
|
@ -100,6 +109,11 @@ Item {
|
||||||
Layout.minimumHeight: MobileComponents.Units.gridUnit * 6
|
Layout.minimumHeight: MobileComponents.Units.gridUnit * 6
|
||||||
selectByMouse: true
|
selectByMouse: true
|
||||||
wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere
|
wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere
|
||||||
|
// there is no onEditingFinished signal... not sure how to get the value
|
||||||
|
// out of this field when we're done editing
|
||||||
|
// onEditingFinished: {
|
||||||
|
// diveDetailsWindow.notes = text;
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Item {
|
Item {
|
||||||
|
@ -107,4 +121,4 @@ Item {
|
||||||
width: height // just to make sure the spacer doesn't produce scrollbars, but also isn't null
|
width: height // just to make sure the spacer doesn't produce scrollbars, but also isn't null
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -250,8 +250,10 @@ void QMLManager::commitChanges(QString diveId, QString suit, QString buddy, QStr
|
||||||
free(d->notes);
|
free(d->notes);
|
||||||
d->notes = strdup(notes.toUtf8().data());
|
d->notes = strdup(notes.toUtf8().data());
|
||||||
}
|
}
|
||||||
if (diveChanged)
|
if (diveChanged) {
|
||||||
|
DiveListModel::instance()->updateDive(d);
|
||||||
mark_divelist_changed(true);
|
mark_divelist_changed(true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void QMLManager::saveChanges()
|
void QMLManager::saveChanges()
|
||||||
|
|
Loading…
Add table
Reference in a new issue