diff --git a/client/ui/qml/Pages2/PageSettingsApiServerInfo.qml b/client/ui/qml/Pages2/PageSettingsApiServerInfo.qml index 39207486..1fc17218 100644 --- a/client/ui/qml/Pages2/PageSettingsApiServerInfo.qml +++ b/client/ui/qml/Pages2/PageSettingsApiServerInfo.qml @@ -15,61 +15,100 @@ import "../Components" PageType { id: root - FlickableType { - id: fl - anchors.top: parent.top - anchors.bottom: parent.bottom - contentHeight: content.height + property list labelsModel: [ + regionObject, + priceObject, + endDateObject, + speedObject + ] - ColumnLayout { - id: content + QtObject { + id: regionObject - anchors.top: parent.top - anchors.left: parent.left - anchors.right: parent.right + readonly property string title: qsTr("For the region") + readonly property string contentKey: "region" + readonly property string objectImageSource: "qrc:/images/controls/map-pin.svg" + } + QtObject { + id: priceObject + + readonly property string title: qsTr("Price") + readonly property string contentKey: "price" + readonly property string objectImageSource: "qrc:/images/controls/tag.svg" + } + + QtObject { + id: endDateObject + + readonly property string title: qsTr("Valid until") + readonly property string contentKey: "endDate" + readonly property string objectImageSource: "qrc:/images/controls/history.svg" + } + + QtObject { + id: speedObject + + readonly property string title: qsTr("Speed") + readonly property string contentKey: "speed" + readonly property string objectImageSource: "qrc:/images/controls/gauge.svg" + } + + ListView { + id: listView + anchors.fill: parent + + property bool isFocusable: true + + Keys.onTabPressed: { + FocusController.nextKeyTabItem() + } + + Keys.onBacktabPressed: { + FocusController.previousKeyTabItem() + } + + Keys.onUpPressed: { + FocusController.nextKeyUpItem() + } + + Keys.onDownPressed: { + FocusController.nextKeyDownItem() + } + + Keys.onLeftPressed: { + FocusController.nextKeyLeftItem() + } + + Keys.onRightPressed: { + FocusController.nextKeyRightItem() + } + + ScrollBar.vertical: ScrollBarType {} + + model: labelsModel + clip: true + reuseItems: true + + delegate: ColumnLayout { + width: listView.width spacing: 0 LabelWithImageType { Layout.fillWidth: true Layout.margins: 16 - imageSource: "qrc:/images/controls/map-pin.svg" - leftText: qsTr("For the region") - rightText: ApiServicesModel.getSelectedServiceData("region") - } - - LabelWithImageType { - Layout.fillWidth: true - Layout.margins: 16 - - imageSource: "qrc:/images/controls/tag.svg" - leftText: qsTr("Price") - rightText: ApiServicesModel.getSelectedServiceData("price") - } - - LabelWithImageType { - property bool showSubscriptionEndDate: ServersModel.getProcessedServerData("isCountrySelectionAvailable") - - Layout.fillWidth: true - Layout.margins: 16 - - imageSource: "qrc:/images/controls/history.svg" - leftText: showSubscriptionEndDate ? qsTr("Valid until") : qsTr("Work period") - rightText: showSubscriptionEndDate ? ApiServicesModel.getSelectedServiceData("endDate") - : ApiServicesModel.getSelectedServiceData("workPeriod") + imageSource: objectImageSource + leftText: title + rightText: ApiServicesModel.getSelectedServiceData(contentKey) visible: rightText !== "" } + } - LabelWithImageType { - Layout.fillWidth: true - Layout.margins: 16 - - imageSource: "qrc:/images/controls/gauge.svg" - leftText: qsTr("Speed") - rightText: ApiServicesModel.getSelectedServiceData("speed") - } + footer: ColumnLayout { + width: listView.width + spacing: 0 ParagraphTextType { Layout.fillWidth: true @@ -88,6 +127,8 @@ PageType { return text.replace("%1", LanguageModel.getCurrentSiteUrl()) } + visible: text !== "" + MouseArea { anchors.fill: parent acceptedButtons: Qt.NoButton