Skip to content

Commit ec6d25b

Browse files
committed
Refactor Driver and Monitor Pages for Improved UI and Functionality
- Updated translations in ro-control_tr.ts for better clarity and accuracy. - Enhanced DriverPage.qml with a new driver version status label and refresh button for checking updates. - Improved layout in DriverPage.qml for better visual organization of driver information. - Removed unnecessary labels in MonitorPage.qml and added a refresh button for telemetry data. - Adjusted visibility and conditions for displaying status messages in both DriverPage.qml and MonitorPage.qml.
1 parent f342965 commit ec6d25b

6 files changed

Lines changed: 516 additions & 362 deletions

File tree

i18n/ro-control_de.ts

Lines changed: 103 additions & 74 deletions
Large diffs are not rendered by default.

i18n/ro-control_en.ts

Lines changed: 103 additions & 74 deletions
Large diffs are not rendered by default.

i18n/ro-control_es.ts

Lines changed: 103 additions & 74 deletions
Large diffs are not rendered by default.

i18n/ro-control_tr.ts

Lines changed: 103 additions & 74 deletions
Large diffs are not rendered by default.

src/qml/pages/DriverPage.qml

Lines changed: 67 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@ Item {
2727
readonly property bool driverInstalledLocally: page.nvidiaDetector.driverVersion.length > 0 || page.nvidiaUpdater.currentVersion.length > 0
2828
readonly property string installedVersionLabel: page.nvidiaDetector.driverVersion.length > 0 ? page.nvidiaDetector.driverVersion : page.nvidiaUpdater.currentVersion
2929
readonly property bool catalogAvailable: page.nvidiaUpdater.latestVersion.length > 0 || page.nvidiaUpdater.availableVersions.length > 0
30+
readonly property color driverVersionStatusColor: page.nvidiaUpdater.updateAvailable
31+
? (theme && theme.warning ? theme.warning : page.softTextColor)
32+
: page.softTextColor
3033
readonly property color bgColor: theme && theme.card ? theme.card : "#ffffff"
3134
readonly property color cardColor: theme && theme.cardStrong ? theme.cardStrong : "#f5f8ff"
3235
readonly property color borderColor: theme && theme.border ? theme.border : "#d9e1f0"
@@ -75,6 +78,21 @@ Item {
7578
return qsTr("Driver scan pending");
7679
}
7780

81+
function driverVersionStatusLabel() {
82+
if (page.installedVersionLabel.length > 0 && page.nvidiaUpdater.latestVersion.length > 0) {
83+
if (page.nvidiaUpdater.updateAvailable)
84+
return qsTr("New version available: %1").arg(page.nvidiaUpdater.latestVersion);
85+
return qsTr("Installed version is up to date.");
86+
}
87+
if (page.installedVersionLabel.length > 0)
88+
return qsTr("Installed version detected.");
89+
if (page.nvidiaUpdater.latestVersion.length > 0)
90+
return qsTr("Not installed. Latest available version: %1").arg(page.nvidiaUpdater.latestVersion);
91+
if (page.catalogAvailable)
92+
return qsTr("Driver catalog loaded.");
93+
return qsTr("Checking whether a newer driver is available...");
94+
}
95+
7896
function closedLicenseText() {
7997
const agreement = page.nvidiaInstaller.proprietaryAgreementText || "";
8098
if (agreement.length > 0)
@@ -146,7 +164,44 @@ Item {
146164
anchors.margins: 12
147165
spacing: 6
148166

149-
Label { text: qsTr("Driver Version"); color: page.softTextColor; font.weight: Font.DemiBold; font.pixelSize: Math.round(12 * page.uiScale) }
167+
RowLayout {
168+
width: parent.width
169+
spacing: 8
170+
171+
Label {
172+
Layout.fillWidth: true
173+
text: qsTr("Driver Version")
174+
color: page.softTextColor
175+
font.weight: Font.DemiBold
176+
font.pixelSize: Math.round(12 * page.uiScale)
177+
}
178+
179+
ToolButton {
180+
id: refreshButton
181+
implicitWidth: Math.round(34 * page.uiScale)
182+
implicitHeight: Math.round(34 * page.uiScale)
183+
enabled: !page.nvidiaUpdater.busy && !page.nvidiaInstaller.busy
184+
display: AbstractButton.IconOnly
185+
ToolTip.visible: hovered
186+
ToolTip.text: qsTr("Rescan and check updates")
187+
onClicked: page.refreshDriverState(true)
188+
189+
contentItem: Image {
190+
source: "qrc:/qt/qml/rocontrol/assets/icon-refresh.svg"
191+
sourceSize.width: Math.round(17 * page.uiScale)
192+
sourceSize.height: Math.round(17 * page.uiScale)
193+
fillMode: Image.PreserveAspectFit
194+
}
195+
196+
background: Rectangle {
197+
radius: width / 2
198+
color: refreshButton.down ? page.infoBg : page.bgColor
199+
border.width: 1
200+
border.color: page.borderColor
201+
}
202+
}
203+
}
204+
150205
Label {
151206
text: page.driverVersionMainLabel()
152207
color: page.textColor
@@ -155,6 +210,13 @@ Item {
155210
elide: Text.ElideRight
156211
width: parent.width
157212
}
213+
Label {
214+
width: parent.width
215+
text: page.driverVersionStatusLabel()
216+
color: page.driverVersionStatusColor
217+
wrapMode: Text.Wrap
218+
maximumLineCount: 2
219+
}
158220
}
159221
}
160222

@@ -183,11 +245,10 @@ Item {
183245
}
184246
Label {
185247
width: parent.width
186-
text: page.nvidiaDetector.secureBootKnown
187-
? (page.nvidiaDetector.secureBootEnabled
188-
? qsTr("Kernel module signing may be required.")
189-
: qsTr("No Secure Boot signing requirement detected."))
190-
: qsTr("Secure Boot state could not be verified.")
248+
visible: page.nvidiaDetector.secureBootKnown
249+
text: page.nvidiaDetector.secureBootEnabled
250+
? qsTr("Kernel module signing may be required.")
251+
: qsTr("No Secure Boot signing requirement detected.")
191252
color: page.softTextColor
192253
wrapMode: Text.Wrap
193254
maximumLineCount: 2
@@ -221,27 +282,6 @@ Item {
221282
font.pixelSize: Math.round(18 * page.uiScale)
222283
font.weight: Font.DemiBold
223284
}
224-
225-
ToolButton {
226-
id: refreshButton
227-
implicitWidth: Math.round(38 * page.uiScale)
228-
implicitHeight: Math.round(38 * page.uiScale)
229-
enabled: !page.nvidiaUpdater.busy && !page.nvidiaInstaller.busy
230-
icon.source: "qrc:/qt/qml/rocontrol/assets/icon-refresh.svg"
231-
icon.width: Math.round(18 * page.uiScale)
232-
icon.height: Math.round(18 * page.uiScale)
233-
display: AbstractButton.IconOnly
234-
ToolTip.visible: hovered
235-
ToolTip.text: qsTr("Rescan and check updates")
236-
onClicked: page.refreshDriverState(true)
237-
238-
background: Rectangle {
239-
radius: width / 2
240-
color: refreshButton.down ? page.infoBg : page.bgColor
241-
border.width: 1
242-
border.color: page.borderColor
243-
}
244-
}
245285
}
246286

247287
Label {

src/qml/pages/MonitorPage.qml

Lines changed: 37 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -74,15 +74,6 @@ Item {
7474
Label { text: qsTr("CPU"); color: page.softTextColor; font.weight: Font.DemiBold; font.pixelSize: Math.round(12 * page.uiScale) }
7575
Label { text: page.cpuMonitor ? page.cpuMonitor.usagePercent.toFixed(1) + "%" : "--"; color: page.textColor; font.pixelSize: Math.round(22 * page.uiScale); font.weight: Font.DemiBold }
7676
Label { text: qsTr("Temperature: %1").arg(page.formatTemp(page.cpuMonitor ? page.cpuMonitor.temperatureC : -1)); color: page.softTextColor }
77-
Label {
78-
visible: page.cpuMonitor && page.cpuMonitor.temperatureC <= 0 && page.cpuMonitor.statusMessage.length > 0
79-
text: page.cpuMonitor ? page.cpuMonitor.statusMessage : ""
80-
color: page.softTextColor
81-
elide: Text.ElideRight
82-
wrapMode: Text.Wrap
83-
width: parent.width
84-
maximumLineCount: 2
85-
}
8677
}
8778
}
8879

@@ -103,15 +94,6 @@ Item {
10394
Label { text: qsTr("GPU"); color: page.softTextColor; font.weight: Font.DemiBold; font.pixelSize: Math.round(12 * page.uiScale) }
10495
Label { text: page.gpuMonitor ? page.gpuMonitor.utilizationPercent + "%" : "--"; color: page.textColor; font.pixelSize: Math.round(22 * page.uiScale); font.weight: Font.DemiBold }
10596
Label { text: qsTr("Temperature: %1").arg(page.formatTemp(page.gpuMonitor ? page.gpuMonitor.temperatureC : -1)); color: page.softTextColor }
106-
Label {
107-
visible: page.gpuMonitor && page.gpuMonitor.temperatureC <= 0 && page.gpuMonitor.statusMessage.length > 0
108-
text: page.gpuMonitor ? page.gpuMonitor.statusMessage : ""
109-
color: page.softTextColor
110-
elide: Text.ElideRight
111-
wrapMode: Text.Wrap
112-
width: parent.width
113-
maximumLineCount: 2
114-
}
11597
}
11698
}
11799

@@ -129,7 +111,43 @@ Item {
129111
anchors.margins: 12
130112
spacing: 6
131113

132-
Label { text: qsTr("Memory"); color: page.softTextColor; font.weight: Font.DemiBold; font.pixelSize: Math.round(12 * page.uiScale) }
114+
RowLayout {
115+
width: parent.width
116+
spacing: 8
117+
118+
Label {
119+
Layout.fillWidth: true
120+
text: qsTr("Memory")
121+
color: page.softTextColor
122+
font.weight: Font.DemiBold
123+
font.pixelSize: Math.round(12 * page.uiScale)
124+
}
125+
126+
ToolButton {
127+
id: telemetryRefreshButton
128+
implicitWidth: Math.round(34 * page.uiScale)
129+
implicitHeight: Math.round(34 * page.uiScale)
130+
display: AbstractButton.IconOnly
131+
ToolTip.visible: hovered
132+
ToolTip.text: qsTr("Refresh telemetry")
133+
onClicked: page.refreshTelemetry()
134+
135+
contentItem: Image {
136+
source: "qrc:/qt/qml/rocontrol/assets/icon-refresh.svg"
137+
sourceSize.width: Math.round(17 * page.uiScale)
138+
sourceSize.height: Math.round(17 * page.uiScale)
139+
fillMode: Image.PreserveAspectFit
140+
}
141+
142+
background: Rectangle {
143+
radius: width / 2
144+
color: telemetryRefreshButton.down ? page.infoBg : page.bgColor
145+
border.width: 1
146+
border.color: page.borderColor
147+
}
148+
}
149+
}
150+
133151
Label { text: page.ramMonitor ? page.ramMonitor.usagePercent + "%" : "--"; color: page.textColor; font.pixelSize: Math.round(22 * page.uiScale); font.weight: Font.DemiBold }
134152
Label { text: qsTr("Usage: %1").arg(page.formatRam(page.ramMonitor ? page.ramMonitor.usedMiB : 0, page.ramMonitor ? page.ramMonitor.totalMiB : 0)); color: page.softTextColor }
135153
}
@@ -161,26 +179,6 @@ Item {
161179
font.pixelSize: Math.round(18 * page.uiScale)
162180
font.weight: Font.DemiBold
163181
}
164-
165-
ToolButton {
166-
id: telemetryRefreshButton
167-
implicitWidth: Math.round(42 * page.uiScale)
168-
implicitHeight: Math.round(38 * page.uiScale)
169-
icon.source: "qrc:/qt/qml/rocontrol/assets/icon-refresh.svg"
170-
icon.width: Math.round(18 * page.uiScale)
171-
icon.height: Math.round(18 * page.uiScale)
172-
display: AbstractButton.IconOnly
173-
ToolTip.visible: hovered
174-
ToolTip.text: qsTr("Refresh telemetry")
175-
onClicked: page.refreshTelemetry()
176-
177-
background: Rectangle {
178-
radius: width / 2
179-
color: telemetryRefreshButton.down || telemetryRefreshButton.hovered ? page.infoBg : page.bgColor
180-
border.width: 1
181-
border.color: page.textColor
182-
}
183-
}
184182
}
185183

186184
Label { text: qsTr("CPU"); color: page.softTextColor }

0 commit comments

Comments
 (0)