mobile/UI: add template for editable combo box

This makes the code easier to read and manage.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Dirk Hohndel 2020-12-30 12:22:18 -08:00
parent 48c3e017d6
commit d6456d490f
3 changed files with 31 additions and 40 deletions

View file

@ -154,14 +154,10 @@ Item {
Layout.alignment: Qt.AlignRight
text: qsTr("Location:")
}
TemplateComboBox {
TemplateEditComboBox {
id: locationBox
editable: true
flat: true
model: diveDetailsListView.currentItem && diveDetailsListView.currentItem.modelData !== null ?
manager.locationList : null
inputMethodHints: Qt.ImhNoPredictiveText
Layout.fillWidth: true
manager.locationList : null
onAccepted: {
focus = false
gpsText = manager.getGpsFromSiteName(editText)
@ -261,20 +257,10 @@ Item {
font.pointSize: subsurfaceTheme.smallPointSize
color: subsurfaceTheme.textColor
}
TemplateComboBox {
TemplateEditComboBox {
id: suitBox
editable: true
flat: true
model: diveDetailsListView.currentItem && diveDetailsListView.currentItem.modelData !== null ?
manager.suitList : null
inputMethodHints: Qt.ImhNoPredictiveText
Layout.fillWidth: true
onActivated: {
focus = false
}
onAccepted: {
focus = false
}
manager.suitList : null
}
Controls.Label {
@ -283,19 +269,10 @@ Item {
font.pointSize: subsurfaceTheme.smallPointSize
color: subsurfaceTheme.textColor
}
TemplateComboBox {
TemplateEditComboBox {
id: buddyBox
editable: true
model: diveDetailsListView.currentItem && diveDetailsListView.currentItem.modelData !== null ?
manager.buddyList : null
inputMethodHints: Qt.ImhNoPredictiveText
Layout.fillWidth: true
onActivated: {
focus = false
}
onAccepted: {
focus = false
}
manager.buddyList : null
}
Controls.Label {
@ -304,19 +281,10 @@ Item {
font.pointSize: subsurfaceTheme.smallPointSize
color: subsurfaceTheme.textColor
}
TemplateComboBox {
TemplateEditComboBox {
id: divemasterBox
editable: true
model: diveDetailsListView.currentItem && diveDetailsListView.currentItem.modelData !== null ?
manager.divemasterList : null
inputMethodHints: Qt.ImhNoPredictiveText
Layout.fillWidth: true
onActivated: {
focus = false
}
onAccepted: {
focus = false
}
manager.divemasterList : null
}
Controls.Label {

View file

@ -0,0 +1,22 @@
// SPDX-License-Identifier: GPL-2.0
import QtQuick 2.11
import QtQuick.Controls 2.4
import QtQuick.Layouts 1.11
import org.kde.kirigami 2.4 as Kirigami
// this reuses our themed combo box, but makes it editable and behave consistently
// for the dive edit page - this reduces redundant code on that page
TemplateComboBox {
id: ecb
editable: true
inputMethodHints: Qt.ImhNoPredictiveText
onActivated: {
focus = false
}
onAccepted: {
focus = false
}
onEditTextChanged: { // this allows us to set the initial text in DiveDetails / startEditMode()
displayText = editText
}
}

View file

@ -4,6 +4,7 @@
<file>TemplateButton.qml</file>
<file>TemplateCheckBox.qml</file>
<file>TemplateComboBox.qml</file>
<file>TemplateEditComboBox.qml</file>
<file>TemplateLabel.qml</file>
<file>TemplateLabelSmall.qml</file>
<file>TemplateLine.qml</file>