6import QGroundControl.Controls
7import QGroundControl.FactControls
10 Layout.fillWidth: true
11 heading: qsTr("Mountpoint")
12 visible: _ntrip.ntripMountpoint.userVisible
14 QGCPalette { id: qgcPal }
16 property var _ntrip: QGroundControl.settingsManager.ntripSettings
17 property var _ntripMgr: QGroundControl.ntripManager
18 property bool _isActive: _ntrip.ntripServerConnectEnabled.rawValue
19 property bool _hasHost: _ntrip.ntripServerHostAddress.rawValue !== ""
20 property real _textFieldWidth: ScreenTools.defaultFontPixelWidth * 30
23 Layout.fillWidth: true
24 spacing: ScreenTools.defaultFontPixelWidth
26 LabelledFactTextField {
27 Layout.fillWidth: true
28 textFieldPreferredWidth: _textFieldWidth
29 label: fact.shortDescription
30 fact: _ntrip.ntripMountpoint
36 enabled: !_isActive && _hasHost &&
37 _ntripMgr.mountpointFetchStatus !== NTRIPManager.FetchInProgress
38 onClicked: _ntripMgr.fetchMountpoints()
43 Layout.fillWidth: true
44 visible: _ntripMgr.mountpointFetchStatus === NTRIPManager.FetchInProgress
45 text: qsTr("Fetching mountpoints…")
46 color: qgcPal.colorOrange
50 Layout.fillWidth: true
51 visible: _ntripMgr.mountpointFetchStatus === NTRIPManager.FetchError
52 text: _ntripMgr.mountpointFetchError
53 color: qgcPal.colorRed
54 wrapMode: Text.WordWrap
58 Layout.fillWidth: true
59 Layout.preferredHeight: Math.min(contentHeight, ScreenTools.defaultFontPixelHeight * 20)
60 visible: _ntripMgr.mountpointModel && _ntripMgr.mountpointModel.count > 0
61 model: _ntripMgr.mountpointModel
62 spacing: ScreenTools.defaultFontPixelHeight * 0.25
65 required property int index
66 required property var object
68 width: ListView.view.width
69 height: mountRow.height + ScreenTools.defaultFontPixelHeight * 0.5
70 radius: ScreenTools.defaultFontPixelHeight * 0.25
72 if (object.mountpoint === _ntrip.ntripMountpoint.rawValue)
73 return qgcPal.buttonHighlight
74 return index % 2 === 0 ? qgcPal.windowShade : qgcPal.window
79 anchors.left: parent.left
80 anchors.right: parent.right
81 anchors.verticalCenter: parent.verticalCenter
82 anchors.margins: ScreenTools.defaultFontPixelWidth
85 Layout.fillWidth: true
89 spacing: ScreenTools.defaultFontPixelWidth
92 text: object.mountpoint
94 color: object.mountpoint === _ntrip.ntripMountpoint.rawValue
95 ? qgcPal.buttonHighlightText : qgcPal.text
98 visible: object.mountpoint === _ntrip.ntripMountpoint.rawValue
99 text: qsTr("(selected)")
100 font.pointSize: ScreenTools.smallFontPointSize
101 color: qgcPal.buttonHighlightText
108 if (object.format) parts.push(object.format)
109 if (object.navSystem) parts.push(object.navSystem)
110 if (object.country) parts.push(object.country)
111 if (object.bitrate > 0) parts.push(object.bitrate + " bps")
112 if (object.distanceKm >= 0) parts.push(object.distanceKm.toFixed(1) + " km")
113 return parts.join(" · ")
115 font.pointSize: ScreenTools.smallFontPointSize
116 color: object.mountpoint === _ntrip.ntripMountpoint.rawValue
117 ? qgcPal.buttonHighlightText : qgcPal.colorGrey
122 text: object.mountpoint === _ntrip.ntripMountpoint.rawValue
123 ? qsTr("Selected") : qsTr("Select")
124 enabled: object.mountpoint !== _ntrip.ntripMountpoint.rawValue
125 onClicked: _ntripMgr.selectMountpoint(object.mountpoint)