Icons: huge cleanup

This commit is contained in:
LemmyCook 2025-09-08 22:05:57 -04:00
parent ccdb4e0664
commit 1f8c55d581
53 changed files with 155 additions and 174 deletions

View file

@ -8,8 +8,6 @@ import qs.Commons
Singleton { Singleton {
id: root id: root
// "brightness_low": "\uF1D4",
// "brightness_high": "\uF1D2",
// "wifi_disable": "\uF61B", // "wifi_disable": "\uF61B",
// "wifi_low": "\uF619", // "wifi_low": "\uF619",
// "wifi_half": "\uF61A", // "wifi_half": "\uF61A",
@ -31,9 +29,6 @@ Singleton {
// "refresh": "\uF130", // "refresh": "\uF130",
// "image": "\uF226", // "image": "\uF226",
// "contrast": "\uF288", // "contrast": "\uF288",
// "thermometer": "\uF5CD",
// "paint_drop": "\uF30C",
// "yin_yang": "\uF8E7",
// "record": "\uF518", // "record": "\uF518",
// "pause": "\uF4C1", // "pause": "\uF4C1",
// "play": "\uF4F2", // "play": "\uF4F2",
@ -46,10 +41,8 @@ Singleton {
// "upload": "\uF296", // "upload": "\uF296",
// "download": "\uF294", // "download": "\uF294",
// "album": "\uF2FF", // "album": "\uF2FF",
// "minus": "\uF63B",
// "eyedropper": "\uF342", // "eyedropper": "\uF342",
// "bell": "\uF18A",
// "bell_striked": "\uF631",
// "drive": "\uF412", // "drive": "\uF412",
// "person": "\uF4DA", // "person": "\uF4DA",
@ -60,11 +53,7 @@ Singleton {
// "moon_stars": "\uF496", // "moon_stars": "\uF496",
// "gauge": "\uF580", // "gauge": "\uF580",
// "lightning": "\uF46D", // "lightning": "\uF46D",
// "keyboard": "\uF451",
// "link": "\uF470",
// "macaron": "\uF154",
// "box": "\uF1C8",
// "monitor": "\uF302"
// // another contrast \uF8F3 \uF8DA // // another contrast \uF8F3 \uF8DA
// } // }
property var icons: { property var icons: {

View file

@ -27,8 +27,7 @@ NPanel {
Layout.fillWidth: true Layout.fillWidth: true
spacing: Style.marginM * scaling spacing: Style.marginM * scaling
NIcon { NIcon { icon: "system_update_alt"
text: "system_update_alt"
font.pointSize: Style.fontSizeXXL * scaling font.pointSize: Style.fontSizeXXL * scaling
color: Color.mPrimary color: Color.mPrimary
} }
@ -44,7 +43,7 @@ NPanel {
// Reset button (only show if update failed) // Reset button (only show if update failed)
NIconButton { NIconButton {
visible: ArchUpdaterService.updateFailed visible: ArchUpdaterService.updateFailed
icon: Bootstrap.icons["arrow-repeat"] icon: "arrow-repeat"
tooltipText: "Reset update state" tooltipText: "Reset update state"
sizeRatio: 0.8 sizeRatio: 0.8
colorBg: Color.mError colorBg: Color.mError
@ -55,7 +54,7 @@ NPanel {
} }
NIconButton { NIconButton {
icon: Bootstrap.icons["x-lg"] icon: "x-lg"
tooltipText: "Close" tooltipText: "Close"
sizeRatio: 0.8 sizeRatio: 0.8
onClicked: root.close() onClicked: root.close()
@ -102,8 +101,7 @@ NPanel {
Layout.fillHeight: true Layout.fillHeight: true
} // Spacer } // Spacer
NIcon { NIcon { icon: "hourglass_empty"
text: "hourglass_empty"
font.pointSize: Style.fontSizeXXXL * scaling font.pointSize: Style.fontSizeXXXL * scaling
color: Color.mPrimary color: Color.mPrimary
Layout.alignment: Qt.AlignHCenter Layout.alignment: Qt.AlignHCenter
@ -143,7 +141,7 @@ NPanel {
spacing: Style.marginM * scaling spacing: Style.marginM * scaling
NIcon { NIcon {
text: "terminal" icon: "terminal"
font.pointSize: Style.fontSizeXXXL * scaling font.pointSize: Style.fontSizeXXXL * scaling
color: Color.mError color: Color.mError
Layout.alignment: Qt.AlignHCenter Layout.alignment: Qt.AlignHCenter
@ -181,7 +179,7 @@ NPanel {
spacing: Style.marginM * scaling spacing: Style.marginM * scaling
NIcon { NIcon {
text: "package" icon: "package"
font.pointSize: Style.fontSizeXXXL * scaling font.pointSize: Style.fontSizeXXXL * scaling
color: Color.mError color: Color.mError
Layout.alignment: Qt.AlignHCenter Layout.alignment: Qt.AlignHCenter
@ -219,7 +217,7 @@ NPanel {
spacing: Style.marginM * scaling spacing: Style.marginM * scaling
NIcon { NIcon {
text: "error" icon: "error"
font.pointSize: Style.fontSizeXXXL * scaling font.pointSize: Style.fontSizeXXXL * scaling
color: Color.mError color: Color.mError
Layout.alignment: Qt.AlignHCenter Layout.alignment: Qt.AlignHCenter
@ -245,7 +243,7 @@ NPanel {
// Prominent refresh button // Prominent refresh button
NIconButton { NIconButton {
icon: Bootstrap.icons["arrow-repeat"] icon: "arrow-repeat"
tooltipText: "Try checking again" tooltipText: "Try checking again"
sizeRatio: 1.2 sizeRatio: 1.2
colorBg: Color.mPrimary colorBg: Color.mPrimary
@ -270,7 +268,7 @@ NPanel {
spacing: Style.marginM * scaling spacing: Style.marginM * scaling
NIcon { NIcon {
text: "error_outline" icon: "error_outline"
font.pointSize: Style.fontSizeXXXL * scaling font.pointSize: Style.fontSizeXXXL * scaling
color: Color.mError color: Color.mError
Layout.alignment: Qt.AlignHCenter Layout.alignment: Qt.AlignHCenter
@ -295,7 +293,7 @@ NPanel {
// Prominent refresh button // Prominent refresh button
NIconButton { NIconButton {
icon: Bootstrap.icons["arrow-repeat"] icon: "arrow-repeat"
tooltipText: "Refresh and try again" tooltipText: "Refresh and try again"
sizeRatio: 1.2 sizeRatio: 1.2
colorBg: Color.mPrimary colorBg: Color.mPrimary
@ -323,7 +321,7 @@ NPanel {
spacing: Style.marginM * scaling spacing: Style.marginM * scaling
NIcon { NIcon {
text: "check_circle" icon: "check_circle"
font.pointSize: Style.fontSizeXXXL * scaling font.pointSize: Style.fontSizeXXXL * scaling
color: Color.mPrimary color: Color.mPrimary
Layout.alignment: Qt.AlignHCenter Layout.alignment: Qt.AlignHCenter
@ -483,7 +481,7 @@ NPanel {
spacing: Style.marginL * scaling spacing: Style.marginL * scaling
NIconButton { NIconButton {
icon: Bootstrap.icons["arrow-repeat"] icon: "arrow-repeat"
tooltipText: ArchUpdaterService.aurBusy ? "Checking for updates..." : (!ArchUpdaterService.canPoll ? "Refresh available soon" : "Refresh package lists") tooltipText: ArchUpdaterService.aurBusy ? "Checking for updates..." : (!ArchUpdaterService.canPoll ? "Refresh available soon" : "Refresh package lists")
onClicked: { onClicked: {
ArchUpdaterService.forceRefresh() ArchUpdaterService.forceRefresh()

View file

@ -20,7 +20,7 @@ NIconButton {
colorBorder: Color.transparent colorBorder: Color.transparent
colorBorderHover: Color.transparent colorBorderHover: Color.transparent
icon: Bootstrap.icons["bluetooth"] icon: "bluetooth"
tooltipText: "Bluetooth" tooltipText: "Bluetooth"
onClicked: PanelService.getPanel("bluetoothPanel")?.toggle(screen, this) onClicked: PanelService.getPanel("bluetoothPanel")?.toggle(screen, this)
} }

View file

@ -46,7 +46,7 @@ Item {
function getIcon() { function getIcon() {
var monitor = getMonitor() var monitor = getMonitor()
var brightness = monitor ? monitor.brightness : 0 var brightness = monitor ? monitor.brightness : 0
return brightness <= 0.5 ? Bootstrap.icons["brightness_low"] : Bootstrap.icons["brightness_high"] return brightness <= 0.5 ? "brightness-low" : "brightness-high"
} }
// Connection used to open the pill when brightness changes // Connection used to open the pill when brightness changes

View file

@ -9,7 +9,7 @@ NIconButton {
property ShellScreen screen property ShellScreen screen
property real scaling: 1.0 property real scaling: 1.0
icon: Bootstrap.icons["contrast"] icon: "contrast"
tooltipText: "Toggle light/dark mode" tooltipText: "Toggle light/dark mode"
sizeRatio: 0.8 sizeRatio: 0.8

View file

@ -13,7 +13,7 @@ NIconButton {
sizeRatio: 0.8 sizeRatio: 0.8
icon: Bootstrap.icons["coffee"] icon: "coffee"
tooltipText: IdleInhibitorService.isInhibited ? "Disable keep awake" : "Enable keep awake" tooltipText: IdleInhibitorService.isInhibited ? "Disable keep awake" : "Enable keep awake"
colorBg: Color.mSurfaceVariant colorBg: Color.mSurfaceVariant
colorFg: IdleInhibitorService.isInhibited ? Color.mPrimary : Color.mOnSurface colorFg: IdleInhibitorService.isInhibited ? Color.mPrimary : Color.mOnSurface

View file

@ -24,7 +24,7 @@ Item {
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
rightOpen: BarWidgetRegistry.getNPillDirection(root) rightOpen: BarWidgetRegistry.getNPillDirection(root)
icon: Bootstrap.icons["keyboard"] icon: "keyboard"
iconCircleColor: Color.mPrimary iconCircleColor: Color.mPrimary
collapsedIconColor: Color.mOnSurface collapsedIconColor: Color.mOnSurface
autoHide: false // Important to be false so we can hover as long as we want autoHide: false // Important to be false so we can hover as long as we want

View file

@ -134,7 +134,7 @@ RowLayout {
NIcon { NIcon {
id: windowIcon id: windowIcon
text: MediaService.isPlaying ? Bootstrap.icons["pause"] : Bootstrap.icons["play"] text: MediaService.isPlaying ? "pause" : "play"
font.pointSize: Style.fontSizeL * scaling font.pointSize: Style.fontSizeL * scaling
verticalAlignment: Text.AlignVCenter verticalAlignment: Text.AlignVCenter
Layout.alignment: Qt.AlignVCenter Layout.alignment: Qt.AlignVCenter
@ -154,7 +154,7 @@ RowLayout {
id: trackArt id: trackArt
anchors.fill: parent anchors.fill: parent
imagePath: MediaService.trackArtUrl imagePath: MediaService.trackArtUrl
fallbackIcon: MediaService.isPlaying ? Bootstrap.icons["pause"] : Bootstrap.icons["play"] fallbackIcon: MediaService.isPlaying ? "pause" : "play"
fallbackIconSize: 10 * scaling fallbackIconSize: 10 * scaling
borderWidth: 0 borderWidth: 0
border.color: Color.transparent border.color: Color.transparent

View file

@ -43,9 +43,9 @@ Item {
function getIcon() { function getIcon() {
if (AudioService.inputMuted) { if (AudioService.inputMuted) {
return "mic_off" return "mic-mute"
} }
return AudioService.inputVolume <= Number.EPSILON ? "mic_off" : (AudioService.inputVolume < 0.33 ? "mic" : "mic") return AudioService.inputVolume <= Number.EPSILON ? "mic-mute" : (AudioService.inputVolume < 0.33 ? "mic" : "mic")
} }
// Connection used to open the pill when input volume changes // Connection used to open the pill when input volume changes

View file

@ -20,7 +20,7 @@ NIconButton {
colorBorder: Color.transparent colorBorder: Color.transparent
colorBorderHover: Color.transparent colorBorderHover: Color.transparent
icon: Bootstrap.icons["moon-stars"] icon: "moon-stars"
tooltipText: `Night light: ${Settings.data.nightLight.enabled ? "enabled." : "disabled."}\nLeft click to toggle.\nRight click to access settings.` tooltipText: `Night light: ${Settings.data.nightLight.enabled ? "enabled." : "disabled."}\nLeft click to toggle.\nRight click to access settings.`
onClicked: Settings.data.nightLight.enabled = !Settings.data.nightLight.enabled onClicked: Settings.data.nightLight.enabled = !Settings.data.nightLight.enabled

View file

@ -53,7 +53,7 @@ NIconButton {
} }
sizeRatio: 0.8 sizeRatio: 0.8
icon: Settings.data.notifications.doNotDisturb ? Bootstrap.icons["bell-slash"] : Bootstrap.icons["bell"] icon: Settings.data.notifications.doNotDisturb ? "bell-slash" : "bell"
tooltipText: Settings.data.notifications.doNotDisturb ? "Notification history.\nRight-click to disable 'Do Not Disturb'." : "Notification history.\nRight-click to enable 'Do Not Disturb'." tooltipText: Settings.data.notifications.doNotDisturb ? "Notification history.\nRight-click to disable 'Do Not Disturb'." : "Notification history.\nRight-click to enable 'Do Not Disturb'."
colorBg: Color.mSurfaceVariant colorBg: Color.mSurfaceVariant
colorFg: Color.mOnSurface colorFg: Color.mOnSurface

View file

@ -19,13 +19,13 @@ NIconButton {
function profileIcon() { function profileIcon() {
if (!hasPP) if (!hasPP)
return Bootstrap.icons["yin-yang"] return "yin-yang"
if (powerProfiles.profile === PowerProfile.Performance) if (powerProfiles.profile === PowerProfile.Performance)
return Bootstrap.icons["speedometer2"] return "speedometer2"
if (powerProfiles.profile === PowerProfile.Balanced) if (powerProfiles.profile === PowerProfile.Balanced)
return Bootstrap.icons["yin-yang"] return "yin-yang"
if (powerProfiles.profile === PowerProfile.PowerSaver) if (powerProfiles.profile === PowerProfile.PowerSaver)
return Bootstrap.icons["leaf"] return "leaf"
} }
function profileName() { function profileName() {

View file

@ -11,7 +11,7 @@ NIconButton {
property real scaling: 1.0 property real scaling: 1.0
visible: ScreenRecorderService.isRecording visible: ScreenRecorderService.isRecording
icon: "videocam" icon: "camera-video"
tooltipText: "Screen recording is active\nClick to stop recording" tooltipText: "Screen recording is active\nClick to stop recording"
sizeRatio: 0.8 sizeRatio: 0.8
colorBg: Color.mPrimary colorBg: Color.mPrimary

View file

@ -33,7 +33,7 @@ NIconButton {
readonly property bool useDistroLogo: (widgetSettings.useDistroLogo readonly property bool useDistroLogo: (widgetSettings.useDistroLogo
!== undefined) ? widgetSettings.useDistroLogo : widgetMetadata.useDistroLogo !== undefined) ? widgetSettings.useDistroLogo : widgetMetadata.useDistroLogo
icon: useDistroLogo ? "" : Bootstrap.icons["layout-sidebar-inset-reverse"] icon: useDistroLogo ? "" :"layout-sidebar-inset-reverse"
tooltipText: "Open side panel." tooltipText: "Open side panel."
sizeRatio: 0.8 sizeRatio: 0.8

View file

@ -64,14 +64,12 @@ RowLayout {
Layout.alignment: Qt.AlignVCenter Layout.alignment: Qt.AlignVCenter
visible: showCpuUsage visible: showCpuUsage
NIcon { NIcon { icon: "speedometer2"
id: cpuUsageIcon font.pointSize: Style.fontSizeM * scaling
text: Bootstrap.icons["speedometer2"]
Layout.alignment: Qt.AlignVCenter Layout.alignment: Qt.AlignVCenter
} }
NText { NText {
id: cpuUsageText
text: `${SystemStatService.cpuUsage}%` text: `${SystemStatService.cpuUsage}%`
font.family: Settings.data.ui.fontFixed font.family: Settings.data.ui.fontFixed
font.pointSize: Style.fontSizeS * scaling font.pointSize: Style.fontSizeS * scaling
@ -89,8 +87,8 @@ RowLayout {
Layout.alignment: Qt.AlignVCenter Layout.alignment: Qt.AlignVCenter
visible: showCpuTemp visible: showCpuTemp
NIcon { NIcon { icon: "fire"
text: Bootstrap.icons["fire"] font.pointSize: Style.fontSizeM * scaling
Layout.alignment: Qt.AlignVCenter Layout.alignment: Qt.AlignVCenter
} }
@ -112,8 +110,8 @@ RowLayout {
Layout.alignment: Qt.AlignVCenter Layout.alignment: Qt.AlignVCenter
visible: showMemoryUsage visible: showMemoryUsage
NIcon { NIcon { icon: "memory"
text: Bootstrap.icons["memory"] font.pointSize: Style.fontSizeM * scaling
Layout.alignment: Qt.AlignVCenter Layout.alignment: Qt.AlignVCenter
} }
@ -135,8 +133,8 @@ RowLayout {
Layout.alignment: Qt.AlignVCenter Layout.alignment: Qt.AlignVCenter
visible: showNetworkStats visible: showNetworkStats
NIcon { NIcon { icon: "download"
text: Bootstrap.icons["download"] font.pointSize: Style.fontSizeM * scaling
Layout.alignment: Qt.AlignVCenter Layout.alignment: Qt.AlignVCenter
} }
@ -158,8 +156,8 @@ RowLayout {
Layout.alignment: Qt.AlignVCenter Layout.alignment: Qt.AlignVCenter
visible: showNetworkStats visible: showNetworkStats
NIcon { NIcon { icon: "upload"
text: Bootstrap.icons["upload"] font.pointSize: Style.fontSizeM * scaling
Layout.alignment: Qt.AlignVCenter Layout.alignment: Qt.AlignVCenter
} }

View file

@ -43,11 +43,11 @@ Item {
function getIcon() { function getIcon() {
if (AudioService.muted) { if (AudioService.muted) {
return Bootstrap.icons["volume-mute"] return "volume-mute"
} }
return AudioService.volume return AudioService.volume
<= Number.EPSILON ? Bootstrap.icons["volume-off"] : (AudioService.volume <= Number.EPSILON ? "volume-off" : (AudioService.volume
< 0.5 ? Bootstrap.icons["volume-down"] : Bootstrap.icons["volume-up"]) < 0.5 ? "volume-down" : "volume-up")
} }
// Connection used to open the pill when volume changes // Connection used to open the pill when volume changes

View file

@ -23,7 +23,7 @@ NIconButton {
icon: { icon: {
try { try {
if (NetworkService.ethernetConnected) { if (NetworkService.ethernetConnected) {
return Bootstrap.icons["ethernet"] return "ethernet"
} }
let connected = false let connected = false
let signalStrength = 0 let signalStrength = 0
@ -34,7 +34,7 @@ NIconButton {
break break
} }
} }
return connected ? NetworkService.signalIcon(signalStrength) : "wifi_find" return connected ? NetworkService.signalIcon(signalStrength) : "wifi-off"
} catch (error) { } catch (error) {
Logger.error("Wi-Fi", "Error getting icon:", error) Logger.error("Wi-Fi", "Error getting icon:", error)
return "signal_wifi_bad" return "signal_wifi_bad"

View file

@ -65,8 +65,7 @@ ColumnLayout {
Layout.alignment: Qt.AlignVCenter Layout.alignment: Qt.AlignVCenter
// One device BT icon // One device BT icon
NIcon { NIcon { icon: BluetoothService.getDeviceIcon(modelData)
text: BluetoothService.getDeviceIcon(modelData)
font.pointSize: Style.fontSizeXXL * scaling font.pointSize: Style.fontSizeXXL * scaling
color: getContentColor(Color.mOnSurface) color: getContentColor(Color.mOnSurface)
Layout.alignment: Qt.AlignVCenter Layout.alignment: Qt.AlignVCenter

View file

@ -27,8 +27,7 @@ NPanel {
Layout.fillWidth: true Layout.fillWidth: true
spacing: Style.marginM * scaling spacing: Style.marginM * scaling
NIcon { NIcon { icon: "bluetooth"
text: Bootstrap.icons["bluetooth"]
font.pointSize: Style.fontSizeXXL * scaling font.pointSize: Style.fontSizeXXL * scaling
color: Color.mPrimary color: Color.mPrimary
} }
@ -43,7 +42,7 @@ NPanel {
NIconButton { NIconButton {
icon: BluetoothService.adapter icon: BluetoothService.adapter
&& BluetoothService.adapter.discovering ? Bootstrap.icons["stop"] : Bootstrap.icons["arrow-repeat"] && BluetoothService.adapter.discovering ? "stop" : "arrow-repeat"
tooltipText: "Refresh Devices" tooltipText: "Refresh Devices"
sizeRatio: 0.8 sizeRatio: 0.8
onClicked: { onClicked: {
@ -54,7 +53,7 @@ NPanel {
} }
NIconButton { NIconButton {
icon: Bootstrap.icons["x-lg"] icon: "x-lg"
tooltipText: "Close" tooltipText: "Close"
sizeRatio: 0.8 sizeRatio: 0.8
onClicked: { onClicked: {

View file

@ -328,7 +328,7 @@ Loader {
width: 100 * scaling width: 100 * scaling
height: 100 * scaling height: 100 * scaling
imagePath: Settings.data.general.avatarImage imagePath: Settings.data.general.avatarImage
fallbackIcon: Bootstrap.icons["person"] fallbackIcon: "person"
} }
MouseArea { MouseArea {

View file

@ -294,7 +294,7 @@ Variants {
// Close button positioned absolutely // Close button positioned absolutely
NIconButton { NIconButton {
icon: Bootstrap.icons["x-lg"] icon: "x-lg"
tooltipText: "Close" tooltipText: "Close"
sizeRatio: 0.6 sizeRatio: 0.6
anchors.top: parent.top anchors.top: parent.top

View file

@ -30,8 +30,7 @@ NPanel {
Layout.fillWidth: true Layout.fillWidth: true
spacing: Style.marginM * scaling spacing: Style.marginM * scaling
NIcon { NIcon { icon: "bell"
text: Bootstrap.icons["bell"]
font.pointSize: Style.fontSizeXXL * scaling font.pointSize: Style.fontSizeXXL * scaling
color: Color.mPrimary color: Color.mPrimary
} }
@ -45,21 +44,21 @@ NPanel {
} }
NIconButton { NIconButton {
icon: Settings.data.notifications.doNotDisturb ? Bootstrap.icons["bell-slash"] : Bootstrap.icons["bell"] icon: Settings.data.notifications.doNotDisturb ? "bell-slash" : "bell"
tooltipText: Settings.data.notifications.doNotDisturb ? "'Do Not Disturb' is enabled." : "'Do Not Disturb' is disabled." tooltipText: Settings.data.notifications.doNotDisturb ? "'Do Not Disturb' is enabled." : "'Do Not Disturb' is disabled."
sizeRatio: 0.8 sizeRatio: 0.8
onClicked: Settings.data.notifications.doNotDisturb = !Settings.data.notifications.doNotDisturb onClicked: Settings.data.notifications.doNotDisturb = !Settings.data.notifications.doNotDisturb
} }
NIconButton { NIconButton {
icon: Bootstrap.icons["trash"] icon: "trash"
tooltipText: "Clear history" tooltipText: "Clear history"
sizeRatio: 0.8 sizeRatio: 0.8
onClicked: NotificationService.clearHistory() onClicked: NotificationService.clearHistory()
} }
NIconButton { NIconButton {
icon: Bootstrap.icons["x-lg"] icon: "x-lg"
tooltipText: "Close" tooltipText: "Close"
sizeRatio: 0.8 sizeRatio: 0.8
onClicked: { onClicked: {
@ -84,8 +83,7 @@ NPanel {
Layout.fillHeight: true Layout.fillHeight: true
} }
NIcon { NIcon { icon: "bell-slash"
text: Bootstrap.icons["bell-slash"]
font.pointSize: 64 * scaling font.pointSize: 64 * scaling
color: Color.mOnSurfaceVariant color: Color.mOnSurfaceVariant
Layout.alignment: Qt.AlignHCenter Layout.alignment: Qt.AlignHCenter
@ -175,7 +173,7 @@ NPanel {
// Delete button // Delete button
NIconButton { NIconButton {
icon: Bootstrap.icons["trash"] icon: "trash"
tooltipText: "Delete notification" tooltipText: "Delete notification"
sizeRatio: 0.7 sizeRatio: 0.7
Layout.alignment: Qt.AlignTop Layout.alignment: Qt.AlignTop

View file

@ -85,7 +85,7 @@ NBox {
} }
NIconButton { NIconButton {
icon: Bootstrap.icons["plus-lg"] icon: "plus-lg"
colorBg: Color.mPrimary colorBg: Color.mPrimary
colorFg: Color.mOnPrimary colorFg: Color.mOnPrimary
@ -170,7 +170,7 @@ NBox {
Loader { Loader {
active: BarWidgetRegistry.widgetHasUserSettings(modelData.id) active: BarWidgetRegistry.widgetHasUserSettings(modelData.id)
sourceComponent: NIconButton { sourceComponent: NIconButton {
icon: Bootstrap.icons["gear"] icon: "gear"
sizeRatio: 0.6 sizeRatio: 0.6
colorBorder: Qt.alpha(Color.mOutline, Style.opacityLight) colorBorder: Qt.alpha(Color.mOutline, Style.opacityLight)
colorBg: Color.mOnSurface colorBg: Color.mOnSurface
@ -210,7 +210,7 @@ NBox {
} }
NIconButton { NIconButton {
icon: Bootstrap.icons["x-lg"] icon: "x-lg"
sizeRatio: 0.6 sizeRatio: 0.6
colorBorder: Qt.alpha(Color.mOutline, Style.opacityLight) colorBorder: Qt.alpha(Color.mOutline, Style.opacityLight)
colorBg: Color.mOnSurface colorBg: Color.mOnSurface

View file

@ -84,7 +84,7 @@ Popup {
} }
NIconButton { NIconButton {
icon: Bootstrap.icons["x-lg"] icon: "x-lg"
onClicked: settingsPopup.close() onClicked: settingsPopup.close()
} }
} }
@ -121,7 +121,7 @@ Popup {
NButton { NButton {
text: "Apply" text: "Apply"
icon: Bootstrap.icons["check"] icon: "check-lg"
onClicked: { onClicked: {
if (settingsLoader.item && settingsLoader.item.saveSettings) { if (settingsLoader.item && settingsLoader.item.saveSettings) {
var newSettings = settingsLoader.item.saveSettings() var newSettings = settingsLoader.item.saveSettings()

View file

@ -472,7 +472,7 @@ NPanel {
// Close button // Close button
NIconButton { NIconButton {
icon: Bootstrap.icons["x-lg"] icon: "x-lg"
tooltipText: "Close" tooltipText: "Close"
Layout.alignment: Qt.AlignVCenter Layout.alignment: Qt.AlignVCenter
onClicked: root.close() onClicked: root.close()

View file

@ -172,7 +172,7 @@ ColumnLayout {
imagePath: modelData.avatar_url || "" imagePath: modelData.avatar_url || ""
anchors.fill: parent anchors.fill: parent
anchors.margins: Style.marginXS * scaling anchors.margins: Style.marginXS * scaling
fallbackIcon: Bootstrap.icons["person"] fallbackIcon: "person"
borderColor: contributorArea.containsMouse ? Color.mOnTertiary : Color.mPrimary borderColor: contributorArea.containsMouse ? Color.mOnTertiary : Color.mPrimary
borderWidth: Math.max(1, Style.borderM * scaling) borderWidth: Math.max(1, Style.borderM * scaling)

View file

@ -272,7 +272,7 @@ ColumnLayout {
// Button aligned to the center of the actual input field // Button aligned to the center of the actual input field
NIconButton { NIconButton {
icon: Bootstrap.icons["plus-lg"] icon: "plus-lg"
Layout.alignment: Qt.AlignBottom Layout.alignment: Qt.AlignBottom
Layout.bottomMargin: blacklistInput.description ? Style.marginS * scaling : 0 Layout.bottomMargin: blacklistInput.description ? Style.marginS * scaling : 0
onClicked: { onClicked: {
@ -322,7 +322,7 @@ ColumnLayout {
} }
NIconButton { NIconButton {
icon: Bootstrap.icons["x-lg"] icon: "x-lg"
sizeRatio: 0.8 sizeRatio: 0.8
Layout.alignment: Qt.AlignVCenter Layout.alignment: Qt.AlignVCenter
Layout.rightMargin: Style.marginXS * scaling Layout.rightMargin: Style.marginXS * scaling

View file

@ -181,7 +181,7 @@ ColumnLayout {
} }
NIconButton { NIconButton {
icon: Bootstrap.icons["arrow-repeat"] icon: "arrow-repeat"
tooltipText: "Reset scaling" tooltipText: "Reset scaling"
onClicked: ScalingService.setScreenScale(modelData, 1.0) onClicked: ScalingService.setScreenScale(modelData, 1.0)
} }

View file

@ -19,7 +19,7 @@ ColumnLayout {
width: 108 * scaling width: 108 * scaling
height: 108 * scaling height: 108 * scaling
imagePath: Settings.data.general.avatarImage imagePath: Settings.data.general.avatarImage
fallbackIcon: Bootstrap.icons["person"] fallbackIcon: "person"
borderColor: Color.mPrimary borderColor: Color.mPrimary
borderWidth: Math.max(1, Style.borderM * scaling) borderWidth: Math.max(1, Style.borderM * scaling)
Layout.alignment: Qt.AlignTop Layout.alignment: Qt.AlignTop

View file

@ -59,7 +59,7 @@ ColumnLayout {
anchors.fill: parent anchors.fill: parent
anchors.margins: Style.marginXS * scaling anchors.margins: Style.marginXS * scaling
imagePath: currentWallpaper imagePath: currentWallpaper
fallbackIcon: Bootstrap.icons["image"] fallbackIcon: "image"
imageRadius: Style.radiusM * scaling imageRadius: Style.radiusM * scaling
borderColor: Color.mSecondary borderColor: Color.mSecondary
borderWidth: Style.borderL * 2 * scaling borderWidth: Style.borderL * 2 * scaling
@ -96,7 +96,7 @@ ColumnLayout {
} }
NIconButton { NIconButton {
icon: Bootstrap.icons["arrow-repeat"] icon: "arrow-repeat"
tooltipText: "Refresh wallpaper list" tooltipText: "Refresh wallpaper list"
onClicked: { onClicked: {
WallpaperService.refreshWallpapersList() WallpaperService.refreshWallpapersList()
@ -181,7 +181,7 @@ ColumnLayout {
visible: isSelected visible: isSelected
NIcon { NIcon {
text: Bootstrap.icons["check"] icon: "check-lg"
font.pointSize: Style.fontSizeM * scaling font.pointSize: Style.fontSizeM * scaling
font.weight: Style.fontWeightBold font.weight: Style.fontWeightBold
color: Color.mOnSecondary color: Color.mOnSecondary

View file

@ -31,7 +31,7 @@ NBox {
} }
NIcon { NIcon {
text: Bootstrap.icons["album"] text: "album"
font.pointSize: Style.fontSizeXXXL * 2.5 * scaling font.pointSize: Style.fontSizeXXXL * 2.5 * scaling
color: Color.mPrimary color: Color.mPrimary
Layout.alignment: Qt.AlignHCenter Layout.alignment: Qt.AlignHCenter
@ -89,7 +89,7 @@ NBox {
indicator: NIcon { indicator: NIcon {
x: playerSelector.width - width x: playerSelector.width - width
y: playerSelector.topPadding + (playerSelector.availableHeight - height) / 2 y: playerSelector.topPadding + (playerSelector.availableHeight - height) / 2
text: Bootstrap.icons["arrow_drop_down"] text: "arrow_drop_down"
font.pointSize: Style.fontSizeXXL * scaling font.pointSize: Style.fontSizeXXL * scaling
color: Color.mOnSurface color: Color.mOnSurface
horizontalAlignment: Text.AlignRight horizontalAlignment: Text.AlignRight
@ -162,14 +162,14 @@ NBox {
anchors.fill: parent anchors.fill: parent
anchors.margins: Style.marginXS * scaling anchors.margins: Style.marginXS * scaling
imagePath: MediaService.trackArtUrl imagePath: MediaService.trackArtUrl
fallbackIcon: Bootstrap.icons["album"] fallbackIcon: "album"
borderColor: Color.mOutline borderColor: Color.mOutline
borderWidth: Math.max(1, Style.borderS * scaling) borderWidth: Math.max(1, Style.borderS * scaling)
} }
// Fallback icon when no album art available // Fallback icon when no album art available
NIcon { NIcon {
text: Bootstrap.icons["album"] icon: "album"
color: Color.mPrimary color: Color.mPrimary
font.pointSize: Style.fontSizeL * 12 * scaling font.pointSize: Style.fontSizeL * 12 * scaling
visible: !trackArt.visible visible: !trackArt.visible
@ -307,7 +307,7 @@ NBox {
// Previous button // Previous button
NIconButton { NIconButton {
icon: Bootstrap.icons["prev"] icon: "skip-start"
tooltipText: "Previous Media" tooltipText: "Previous Media"
visible: MediaService.canGoPrevious visible: MediaService.canGoPrevious
onClicked: MediaService.canGoPrevious ? MediaService.previous() : {} onClicked: MediaService.canGoPrevious ? MediaService.previous() : {}
@ -315,7 +315,7 @@ NBox {
// Play/Pause button // Play/Pause button
NIconButton { NIconButton {
icon: MediaService.isPlaying ? Bootstrap.icons["pause"] : Bootstrap.icons["play"] icon: MediaService.isPlaying ? "pause" : "play"
tooltipText: MediaService.isPlaying ? "Pause" : "Play" tooltipText: MediaService.isPlaying ? "Pause" : "Play"
visible: (MediaService.canPlay || MediaService.canPause) visible: (MediaService.canPlay || MediaService.canPause)
onClicked: (MediaService.canPlay || MediaService.canPause) ? MediaService.playPause() : {} onClicked: (MediaService.canPlay || MediaService.canPause) ? MediaService.playPause() : {}
@ -323,7 +323,7 @@ NBox {
// Next button // Next button
NIconButton { NIconButton {
icon: Bootstrap.icons["next"] icon: "skip-end"
tooltipText: "Next media" tooltipText: "Next media"
visible: MediaService.canGoNext visible: MediaService.canGoNext
onClicked: MediaService.canGoNext ? MediaService.next() : {} onClicked: MediaService.canGoNext ? MediaService.next() : {}

View file

@ -28,7 +28,7 @@ NBox {
} }
// Performance // Performance
NIconButton { NIconButton {
icon: Bootstrap.icons["speedometer2"] icon: "speedometer2"
tooltipText: "Set performance power profile." tooltipText: "Set performance power profile."
enabled: hasPP enabled: hasPP
opacity: enabled ? Style.opacityFull : Style.opacityMedium opacity: enabled ? Style.opacityFull : Style.opacityMedium
@ -42,7 +42,7 @@ NBox {
} }
// Balanced // Balanced
NIconButton { NIconButton {
icon: Bootstrap.icons["yin-yang"] icon: "yin-yang"
tooltipText: "Set balanced power profile." tooltipText: "Set balanced power profile."
enabled: hasPP enabled: hasPP
opacity: enabled ? Style.opacityFull : Style.opacityMedium opacity: enabled ? Style.opacityFull : Style.opacityMedium
@ -56,7 +56,7 @@ NBox {
} }
// Eco // Eco
NIconButton { NIconButton {
icon: Bootstrap.icons["leaf"] icon: "leaf"
tooltipText: "Set eco power profile." tooltipText: "Set eco power profile."
enabled: hasPP enabled: hasPP
opacity: enabled ? Style.opacityFull : Style.opacityMedium opacity: enabled ? Style.opacityFull : Style.opacityMedium

View file

@ -32,7 +32,7 @@ NBox {
width: Style.baseWidgetSize * 1.25 * scaling width: Style.baseWidgetSize * 1.25 * scaling
height: Style.baseWidgetSize * 1.25 * scaling height: Style.baseWidgetSize * 1.25 * scaling
imagePath: Settings.data.general.avatarImage imagePath: Settings.data.general.avatarImage
fallbackIcon: Bootstrap.icons["person"] fallbackIcon: "person"
borderColor: Color.mPrimary borderColor: Color.mPrimary
borderWidth: Math.max(1, Style.borderM * scaling) borderWidth: Math.max(1, Style.borderM * scaling)
} }
@ -58,7 +58,7 @@ NBox {
Layout.fillWidth: true Layout.fillWidth: true
} }
NIconButton { NIconButton {
icon: Bootstrap.icons["gear"] icon: "gear"
tooltipText: "Open settings." tooltipText: "Open settings."
onClicked: { onClicked: {
settingsPanel.requestedTab = SettingsPanel.Tab.General settingsPanel.requestedTab = SettingsPanel.Tab.General
@ -68,7 +68,7 @@ NBox {
NIconButton { NIconButton {
id: powerButton id: powerButton
icon: Bootstrap.icons["power"] icon: "power"
tooltipText: "Power menu." tooltipText: "Power menu."
onClicked: { onClicked: {
powerPanel.open(screen) powerPanel.open(screen)
@ -78,7 +78,7 @@ NBox {
NIconButton { NIconButton {
id: closeButton id: closeButton
icon: Bootstrap.icons["x-lg"] icon: "x-lg"
tooltipText: "Close side panel." tooltipText: "Close side panel."
onClicked: { onClicked: {
sidePanel.close() sidePanel.close()

View file

@ -24,7 +24,7 @@ NBox {
NCircleStat { NCircleStat {
value: SystemStatService.cpuUsage value: SystemStatService.cpuUsage
icon: Bootstrap.icons["speedometer2"] icon: "speedometer2"
flat: true flat: true
contentScale: 0.8 contentScale: 0.8
width: 72 * scaling width: 72 * scaling
@ -33,7 +33,7 @@ NBox {
NCircleStat { NCircleStat {
value: SystemStatService.cpuTemp value: SystemStatService.cpuTemp
suffix: "°C" suffix: "°C"
icon: Bootstrap.icons["fire"] icon: "fire"
flat: true flat: true
contentScale: 0.8 contentScale: 0.8
width: 72 * scaling width: 72 * scaling
@ -41,7 +41,7 @@ NBox {
} }
NCircleStat { NCircleStat {
value: SystemStatService.memPercent value: SystemStatService.memPercent
icon: Bootstrap.icons["memory"] icon: "memory"
flat: true flat: true
contentScale: 0.8 contentScale: 0.8
width: 72 * scaling width: 72 * scaling
@ -49,7 +49,7 @@ NBox {
} }
NCircleStat { NCircleStat {
value: SystemStatService.diskPercent value: SystemStatService.diskPercent
icon: Bootstrap.icons["drive"] icon: "hdd"
flat: true flat: true
contentScale: 0.8 contentScale: 0.8
width: 72 * scaling width: 72 * scaling

View file

@ -25,7 +25,7 @@ NBox {
} }
// Screen Recorder // Screen Recorder
NIconButton { NIconButton {
icon: Bootstrap.icons["camera-video"] icon: "camera-video"
tooltipText: ScreenRecorderService.isRecording ? "Stop screen recording." : "Start screen recording." tooltipText: ScreenRecorderService.isRecording ? "Stop screen recording." : "Start screen recording."
colorBg: ScreenRecorderService.isRecording ? Color.mPrimary : Color.mSurfaceVariant colorBg: ScreenRecorderService.isRecording ? Color.mPrimary : Color.mSurfaceVariant
colorFg: ScreenRecorderService.isRecording ? Color.mOnPrimary : Color.mPrimary colorFg: ScreenRecorderService.isRecording ? Color.mOnPrimary : Color.mPrimary
@ -41,7 +41,7 @@ NBox {
// Idle Inhibitor // Idle Inhibitor
NIconButton { NIconButton {
icon: Bootstrap.icons["cup-hot"] icon: "cup-hot"
tooltipText: IdleInhibitorService.isInhibited ? "Disable keep awake." : "Enable keep awake." tooltipText: IdleInhibitorService.isInhibited ? "Disable keep awake." : "Enable keep awake."
colorBg: IdleInhibitorService.isInhibited ? Color.mPrimary : Color.mSurfaceVariant colorBg: IdleInhibitorService.isInhibited ? Color.mPrimary : Color.mSurfaceVariant
colorFg: IdleInhibitorService.isInhibited ? Color.mOnPrimary : Color.mPrimary colorFg: IdleInhibitorService.isInhibited ? Color.mOnPrimary : Color.mPrimary
@ -53,7 +53,7 @@ NBox {
// Wallpaper // Wallpaper
NIconButton { NIconButton {
visible: Settings.data.wallpaper.enabled visible: Settings.data.wallpaper.enabled
icon: Bootstrap.icons["image"] icon: "image"
tooltipText: "Left click: Open wallpaper selector.\nRight click: Set random wallpaper." tooltipText: "Left click: Open wallpaper selector.\nRight click: Set random wallpaper."
onClicked: { onClicked: {
var settingsPanel = PanelService.getPanel("settingsPanel") var settingsPanel = PanelService.getPanel("settingsPanel")

View file

@ -98,7 +98,7 @@ NBox {
color: Color.mOnSurface color: Color.mOnSurface
} }
NIcon { NIcon {
text: LocationService.weatherSymbolFromCode(LocationService.data.weather.daily.weathercode[index]) icon: LocationService.weatherSymbolFromCode(LocationService.data.weather.daily.weathercode[index])
font.pointSize: Style.fontSizeXXL * scaling font.pointSize: Style.fontSizeXXL * scaling
color: Color.mPrimary color: Color.mPrimary
} }

View file

@ -33,8 +33,7 @@ NPanel {
Layout.fillWidth: true Layout.fillWidth: true
spacing: Style.marginM * scaling spacing: Style.marginM * scaling
NIcon { NIcon { icon: Settings.data.network.wifiEnabled ? "wifi" : "wifi-off"
text: Settings.data.network.wifiEnabled ? "wifi" : "wifi_off"
font.pointSize: Style.fontSizeXXL * scaling font.pointSize: Style.fontSizeXXL * scaling
color: Settings.data.network.wifiEnabled ? Color.mPrimary : Color.mOnSurfaceVariant color: Settings.data.network.wifiEnabled ? Color.mPrimary : Color.mOnSurfaceVariant
} }
@ -55,7 +54,7 @@ NPanel {
} }
NIconButton { NIconButton {
icon: Bootstrap.icons["arrow-repeat"] icon: "arrow-repeat"
tooltipText: "Refresh" tooltipText: "Refresh"
sizeRatio: 0.8 sizeRatio: 0.8
enabled: Settings.data.network.wifiEnabled && !NetworkService.scanning enabled: Settings.data.network.wifiEnabled && !NetworkService.scanning
@ -63,7 +62,7 @@ NPanel {
} }
NIconButton { NIconButton {
icon: Bootstrap.icons["x-lg"] icon: "x-lg"
tooltipText: "Close" tooltipText: "Close"
sizeRatio: 0.8 sizeRatio: 0.8
onClicked: root.close() onClicked: root.close()
@ -91,7 +90,7 @@ NPanel {
spacing: Style.marginS * scaling spacing: Style.marginS * scaling
NIcon { NIcon {
text: "error" icon: "error"
font.pointSize: Style.fontSizeL * scaling font.pointSize: Style.fontSizeL * scaling
color: Color.mError color: Color.mError
} }
@ -105,7 +104,7 @@ NPanel {
} }
NIconButton { NIconButton {
icon: Bootstrap.icons["x-lg"] icon: "x-lg"
sizeRatio: 0.6 sizeRatio: 0.6
onClicked: NetworkService.lastError = "" onClicked: NetworkService.lastError = ""
} }
@ -129,7 +128,7 @@ NPanel {
} }
NIcon { NIcon {
text: "wifi_off" icon: "wifi-off"
font.pointSize: 64 * scaling font.pointSize: 64 * scaling
color: Color.mOnSurfaceVariant color: Color.mOnSurfaceVariant
Layout.alignment: Qt.AlignHCenter Layout.alignment: Qt.AlignHCenter
@ -377,7 +376,7 @@ NPanel {
&& NetworkService.connectingTo !== modelData.ssid && NetworkService.connectingTo !== modelData.ssid
&& NetworkService.forgettingNetwork !== modelData.ssid && NetworkService.forgettingNetwork !== modelData.ssid
&& NetworkService.disconnectingFrom !== modelData.ssid && NetworkService.disconnectingFrom !== modelData.ssid
icon: Bootstrap.icons["trash"] icon: "trash"
tooltipText: "Forget network" tooltipText: "Forget network"
sizeRatio: 0.7 sizeRatio: 0.7
onClicked: expandedSsid = expandedSsid === modelData.ssid ? "" : modelData.ssid onClicked: expandedSsid = expandedSsid === modelData.ssid ? "" : modelData.ssid
@ -492,7 +491,7 @@ NPanel {
} }
NIconButton { NIconButton {
icon: Bootstrap.icons["x-lg"] icon: "x-lg"
sizeRatio: 0.8 sizeRatio: 0.8
onClicked: { onClicked: {
passwordSsid = "" passwordSsid = ""
@ -547,7 +546,7 @@ NPanel {
} }
NIconButton { NIconButton {
icon: Bootstrap.icons["x-lg"] icon: "x-lg"
sizeRatio: 0.8 sizeRatio: 0.8
onClicked: expandedSsid = "" onClicked: expandedSsid = ""
} }
@ -571,7 +570,7 @@ NPanel {
} }
NIcon { NIcon {
text: "wifi_find" icon: "search"
font.pointSize: 64 * scaling font.pointSize: 64 * scaling
color: Color.mOnSurfaceVariant color: Color.mOnSurfaceVariant
Layout.alignment: Qt.AlignHCenter Layout.alignment: Qt.AlignHCenter
@ -586,7 +585,7 @@ NPanel {
NButton { NButton {
text: "Scan again" text: "Scan again"
icon: Bootstrap.icons["arrow-repeat"] icon: "arrow-repeat"
Layout.alignment: Qt.AlignHCenter Layout.alignment: Qt.AlignHCenter
onClicked: NetworkService.scan() onClicked: NetworkService.scan()
} }

View file

@ -11,20 +11,20 @@ Singleton {
// Choose icon based on charge and charging state // Choose icon based on charge and charging state
function getIcon(percent, charging, isReady) { function getIcon(percent, charging, isReady) {
if (!isReady) { if (!isReady) {
return Bootstrap.icons["exclamation-diamond"] return "exclamation-diamond"
} }
if (charging) { if (charging) {
return Bootstrap.icons["battery-charging"] return "battery-charging"
} else { } else {
if (percent >= 85) if (percent >= 85)
return Bootstrap.icons["battery-full"] return "battery-full"
if (percent >= 45) if (percent >= 45)
return Bootstrap.icons["battery-half"] return "battery-half"
if (percent >= 25) if (percent >= 25)
return Bootstrap.icons["battery-low"] return "battery-low"
if (percent >= 0) if (percent >= 0)
return Bootstrap.icons["battery"] return "battery"
} }
} }
} }

View file

@ -51,36 +51,36 @@ Singleton {
function getDeviceIcon(device) { function getDeviceIcon(device) {
if (!device) { if (!device) {
return Bootstrap.icons["bluetooth"] return "bluetooth"
} }
var name = (device.name || device.deviceName || "").toLowerCase() var name = (device.name || device.deviceName || "").toLowerCase()
var icon = (device.icon || "").toLowerCase() var icon = (device.icon || "").toLowerCase()
if (icon.includes("headset") || icon.includes("audio") || name.includes("headphone") || name.includes("airpod") if (icon.includes("headset") || icon.includes("audio") || name.includes("headphone") || name.includes("airpod")
|| name.includes("headset") || name.includes("arctis")) { || name.includes("headset") || name.includes("arctis")) {
return Bootstrap.icons["headset"] return "headset"
} }
if (icon.includes("mouse") || name.includes("mouse")) { if (icon.includes("mouse") || name.includes("mouse")) {
return Bootstrap.icons["mouse-2"] return "mouse-2"
} }
if (icon.includes("keyboard") || name.includes("keyboard")) { if (icon.includes("keyboard") || name.includes("keyboard")) {
return Bootstrap.icons["keyboard"] return "keyboard"
} }
if (icon.includes("phone") || name.includes("phone") || name.includes("iphone") || name.includes("android") if (icon.includes("phone") || name.includes("phone") || name.includes("iphone") || name.includes("android")
|| name.includes("samsung")) { || name.includes("samsung")) {
return Bootstrap.icons["phone"] return "phone"
} }
if (icon.includes("watch") || name.includes("watch")) { if (icon.includes("watch") || name.includes("watch")) {
return Bootstrap.icons["smartwatch"] return "smartwatch"
} }
if (icon.includes("speaker") || name.includes("speaker")) { if (icon.includes("speaker") || name.includes("speaker")) {
return Bootstrap.icons["speaker"] return "speaker"
} }
if (icon.includes("display") || name.includes("tv")) { if (icon.includes("display") || name.includes("tv")) {
return Bootstrap.icons["tv"] return "tv"
} }
return Bootstrap.icons["bluetooth"] return "bluetooth"
} }
function canConnect(device) { function canConnect(device) {

View file

@ -231,24 +231,24 @@ Singleton {
// -------------------------------- // --------------------------------
function weatherSymbolFromCode(code) { function weatherSymbolFromCode(code) {
if (code === 0) if (code === 0)
return Bootstrap.icons["sun"] return "sun"
if (code === 1 || code === 2) if (code === 1 || code === 2)
return Bootstrap.icons["cloud-sun"] return "cloud-sun"
if (code === 3) if (code === 3)
return Bootstrap.icons["cloud"] return "cloud"
if (code >= 45 && code <= 48) if (code >= 45 && code <= 48)
return Bootstrap.icons["cloud-haze"] return "cloud-haze"
if (code >= 51 && code <= 67) if (code >= 51 && code <= 67)
return Bootstrap.icons["cloud-rain"] return "cloud-rain"
if (code >= 71 && code <= 77) if (code >= 71 && code <= 77)
return Bootstrap.icons["cloud-snow"] return "cloud-snow"
if (code >= 71 && code <= 77) if (code >= 71 && code <= 77)
return Bootstrap.icons["cloud-snow"] return "cloud-snow"
if (code >= 85 && code <= 86) if (code >= 85 && code <= 86)
return Bootstrap.icons["cloud-snow"] return "cloud-snow"
if (code >= 95 && code <= 99) if (code >= 95 && code <= 99)
return Bootstrap.icons["cloud-lightning"] return "cloud-lightning"
return Bootstrap.icons["cloud"] return "cloud"
} }
// -------------------------------- // --------------------------------

View file

@ -202,14 +202,12 @@ Singleton {
// Helper functions // Helper functions
function signalIcon(signal) { function signalIcon(signal) {
if (signal >= 80) if (signal >= 80)
return "network_wifi" return "wifi"
if (signal >= 60) if (signal >= 50)
return "network_wifi_3_bar" return "wifi-2"
if (signal >= 40)
return "network_wifi_2_bar"
if (signal >= 20) if (signal >= 20)
return "network_wifi_1_bar" return "wifi-1"
return "signal_wifi_0_bar" return "dot"
} }
function isSecured(security) { function isSecured(security) {

View file

@ -83,7 +83,7 @@ Rectangle {
NIcon { NIcon {
Layout.alignment: Qt.AlignVCenter Layout.alignment: Qt.AlignVCenter
visible: root.icon !== "" visible: root.icon !== ""
text: root.icon icon: root.icon
font.pointSize: root.iconSize font.pointSize: root.iconSize
color: { color: {
if (!root.enabled) if (!root.enabled)

View file

@ -57,7 +57,7 @@ RowLayout {
NIcon { NIcon {
visible: root.checked visible: root.checked
anchors.centerIn: parent anchors.centerIn: parent
text: "check" icon: "check-lg"
color: root.activeOnColor color: root.activeOnColor
font.pointSize: Math.max(Style.fontSizeS, root.baseSize * 0.7) * scaling font.pointSize: Math.max(Style.fontSizeS, root.baseSize * 0.7) * scaling
} }

View file

@ -99,7 +99,7 @@ Rectangle {
NIcon { NIcon {
anchors.centerIn: parent anchors.centerIn: parent
text: root.icon icon: root.icon
font.pointSize: Style.fontSizeLargeXL * scaling * contentScale font.pointSize: Style.fontSizeLargeXL * scaling * contentScale
color: Color.mOnSurface color: Color.mOnSurface
horizontalAlignment: Text.AlignHCenter horizontalAlignment: Text.AlignHCenter

View file

@ -59,7 +59,7 @@ Rectangle {
} }
NIcon { NIcon {
text: Bootstrap.icons["eyedropper"] icon: "paint-bucket"
color: Color.mOnSurfaceVariant color: Color.mOnSurfaceVariant
} }
} }

View file

@ -130,7 +130,7 @@ Popup {
spacing: Style.marginS * scaling spacing: Style.marginS * scaling
NIcon { NIcon {
text: Bootstrap.icons["eyedropper"] icon: "eyedropper"
font.pointSize: Style.fontSizeXXL * scaling font.pointSize: Style.fontSizeXXL * scaling
color: Color.mPrimary color: Color.mPrimary
} }
@ -148,7 +148,7 @@ Popup {
} }
NIconButton { NIconButton {
icon: Bootstrap.icons["x-lg"] icon: "x-lg"
onClicked: root.close() onClicked: root.close()
} }
} }
@ -492,7 +492,7 @@ Popup {
NButton { NButton {
id: cancelButton id: cancelButton
text: "Cancel" text: "Cancel"
icon: Bootstrap.icons["x-lg"] icon: "x-lg"
outlined: cancelButton.hovered ? false : true outlined: cancelButton.hovered ? false : true
customHeight: 36 * scaling customHeight: 36 * scaling
customWidth: 100 * scaling customWidth: 100 * scaling
@ -503,7 +503,7 @@ Popup {
NButton { NButton {
text: "Apply" text: "Apply"
icon: Bootstrap.icons["check"] icon: "check-lg"
customHeight: 36 * scaling customHeight: 36 * scaling
customWidth: 100 * scaling customWidth: 100 * scaling
onClicked: { onClicked: {

View file

@ -85,7 +85,7 @@ RowLayout {
indicator: NIcon { indicator: NIcon {
x: combo.width - width - Style.marginM * scaling x: combo.width - width - Style.marginM * scaling
y: combo.topPadding + (combo.availableHeight - height) / 2 y: combo.topPadding + (combo.availableHeight - height) / 2
text: Bootstrap.icons["chevron-down"] icon: "chevron-down"
font.pointSize: Style.fontSizeL * scaling font.pointSize: Style.fontSizeL * scaling
} }

View file

@ -4,6 +4,9 @@ import qs.Commons
import qs.Widgets import qs.Widgets
Text { Text {
property string icon: "balloon"
text: Bootstrap.icons[icon]
font.family: "bootstrap-icons" font.family: "bootstrap-icons"
font.pointSize: Style.fontSizeL * scaling font.pointSize: Style.fontSizeL * scaling
color: Color.mOnSurface color: Color.mOnSurface

View file

@ -39,7 +39,7 @@ Rectangle {
border.width: Math.max(1, Style.borderS * scaling) border.width: Math.max(1, Style.borderS * scaling)
NIcon { NIcon {
text: root.icon icon: root.icon
font.pointSize: Style.fontSizeM * scaling font.pointSize: Style.fontSizeM * scaling
color: root.hovering ? colorFgHover : colorFg color: root.hovering ? colorFgHover : colorFg
// Center horizontally // Center horizontally

View file

@ -14,7 +14,7 @@ RowLayout {
property string placeholderText: "" property string placeholderText: ""
property string text: "" property string text: ""
property string actionButtonText: "Test" property string actionButtonText: "Test"
property string actionButtonIcon: Bootstrap.icons["play"] property string actionButtonIcon: "play"
property bool actionButtonEnabled: text !== "" property bool actionButtonEnabled: text !== ""
// Signals // Signals

View file

@ -117,7 +117,7 @@ Item {
} }
NIcon { NIcon {
text: root.icon icon: root.icon
font.pointSize: Style.fontSizeM * scaling font.pointSize: Style.fontSizeM * scaling
// When forced shown, use pill text color; otherwise accent color when hovered // When forced shown, use pill text color; otherwise accent color when hovered
color: forceOpen ? textColor : (showPill ? iconTextColor : Color.mOnSurface) color: forceOpen ? textColor : (showPill ? iconTextColor : Color.mOnSurface)

View file

@ -95,7 +95,7 @@ RowLayout {
NIcon { NIcon {
anchors.centerIn: parent anchors.centerIn: parent
text: Bootstrap.icons["dash-lg"] text: "dash-lg"
font.pointSize: Style.fontSizeS * scaling font.pointSize: Style.fontSizeS * scaling
color: decreaseArea.containsMouse ? Color.mOnPrimary : Color.mPrimary color: decreaseArea.containsMouse ? Color.mOnPrimary : Color.mPrimary
} }
@ -130,7 +130,7 @@ RowLayout {
NIcon { NIcon {
anchors.centerIn: parent anchors.centerIn: parent
text: Bootstrap.icons["plus-lg"] text: "plus-lg"
font.pointSize: Style.fontSizeS * scaling font.pointSize: Style.fontSizeS * scaling
color: increaseArea.containsMouse ? Color.mOnPrimary : Color.mPrimary color: increaseArea.containsMouse ? Color.mOnPrimary : Color.mPrimary
} }

View file

@ -118,7 +118,7 @@ Item {
// Icon // Icon
NIcon { NIcon {
id: icon id: icon
text: (root.type == "warning") ? Bootstrap.icons["warning"] : Bootstrap.icons["info"] text: (root.type == "warning") ? "warning" : "info"
color: { color: {
switch (root.type) { switch (root.type) {
case "warning": case "warning":
@ -162,7 +162,7 @@ Item {
// Close button (only if persistent or manual dismiss needed) // Close button (only if persistent or manual dismiss needed)
NIconButton { NIconButton {
icon: Bootstrap.icons["x-lg"] icon: "x-lg"
visible: root.persistent || root.duration === 0 visible: root.persistent || root.duration === 0
colorBg: Color.mSurfaceVariant colorBg: Color.mSurfaceVariant