Icons: WIP using a proper mapping table

This commit is contained in:
LemmyCook 2025-09-08 21:05:48 -04:00
parent 8da2cdf430
commit a4107c87c0
41 changed files with 2277 additions and 183 deletions

View file

@ -44,7 +44,7 @@ NPanel {
// Reset button (only show if update failed)
NIconButton {
visible: ArchUpdaterService.updateFailed
icon: FontService.icons["refresh"]
icon: Bootstrap.icons["arrow-repeat"]
tooltipText: "Reset update state"
sizeRatio: 0.8
colorBg: Color.mError
@ -55,7 +55,7 @@ NPanel {
}
NIconButton {
icon: FontService.icons["close"]
icon: Bootstrap.icons["close"]
tooltipText: "Close"
sizeRatio: 0.8
onClicked: root.close()
@ -245,7 +245,7 @@ NPanel {
// Prominent refresh button
NIconButton {
icon: FontService.icons["refresh"]
icon: Bootstrap.icons["arrow-repeat"]
tooltipText: "Try checking again"
sizeRatio: 1.2
colorBg: Color.mPrimary
@ -295,7 +295,7 @@ NPanel {
// Prominent refresh button
NIconButton {
icon: FontService.icons["refresh"]
icon: Bootstrap.icons["arrow-repeat"]
tooltipText: "Refresh and try again"
sizeRatio: 1.2
colorBg: Color.mPrimary
@ -483,7 +483,7 @@ NPanel {
spacing: Style.marginL * scaling
NIconButton {
icon: FontService.icons["refresh"]
icon: Bootstrap.icons["arrow-repeat"]
tooltipText: ArchUpdaterService.aurBusy ? "Checking for updates..." : (!ArchUpdaterService.canPoll ? "Refresh available soon" : "Refresh package lists")
onClicked: {
ArchUpdaterService.forceRefresh()

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -20,7 +20,7 @@ NIconButton {
colorBorder: Color.transparent
colorBorderHover: Color.transparent
icon: FontService.icons["moon_stars"]
icon: Bootstrap.icons["moon-stars"]
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

View file

@ -53,7 +53,7 @@ NIconButton {
}
sizeRatio: 0.8
icon: Settings.data.notifications.doNotDisturb ? FontService.icons["bell_striked"] : FontService.icons["bell"]
icon: Settings.data.notifications.doNotDisturb ? Bootstrap.icons["bell_striked"] : Bootstrap.icons["bell"]
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
colorFg: Color.mOnSurface

View file

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

View file

@ -66,7 +66,7 @@ RowLayout {
NIcon {
id: cpuUsageIcon
text: FontService.icons["speed"]
text: Bootstrap.icons["speed"]
Layout.alignment: Qt.AlignVCenter
}
@ -91,7 +91,7 @@ RowLayout {
visible: showCpuTemp
NIcon {
text: FontService.icons["thermometer"]
text: Bootstrap.icons["thermometer"]
Layout.alignment: Qt.AlignVCenter
}
@ -114,7 +114,7 @@ RowLayout {
visible: showMemoryUsage
NIcon {
text: FontService.icons["memory"]
text: Bootstrap.icons["memory"]
Layout.alignment: Qt.AlignVCenter
}
@ -137,7 +137,7 @@ RowLayout {
visible: showNetworkStats
NIcon {
text: FontService.icons["download"]
text: Bootstrap.icons["download"]
Layout.alignment: Qt.AlignVCenter
}
@ -160,7 +160,7 @@ RowLayout {
visible: showNetworkStats
NIcon {
text: FontService.icons["upload"]
text: Bootstrap.icons["upload"]
Layout.alignment: Qt.AlignVCenter
}

View file

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

View file

@ -23,7 +23,7 @@ NIconButton {
icon: {
try {
if (NetworkService.ethernetConnected) {
return FontService.icons["ethernet"]
return Bootstrap.icons["ethernet"]
}
let connected = false
let signalStrength = 0

View file

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

View file

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

View file

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

View file

@ -31,7 +31,7 @@ NPanel {
spacing: Style.marginM * scaling
NIcon {
text: FontService.icons["bell"]
text: Bootstrap.icons["bell"]
font.pointSize: Style.fontSizeXXL * scaling
color: Color.mPrimary
}
@ -45,21 +45,21 @@ NPanel {
}
NIconButton {
icon: Settings.data.notifications.doNotDisturb ? FontService.icons["bell_striked"] : FontService.icons["bell"]
icon: Settings.data.notifications.doNotDisturb ? Bootstrap.icons["bell_striked"] : Bootstrap.icons["bell"]
tooltipText: Settings.data.notifications.doNotDisturb ? "'Do Not Disturb' is enabled." : "'Do Not Disturb' is disabled."
sizeRatio: 0.8
onClicked: Settings.data.notifications.doNotDisturb = !Settings.data.notifications.doNotDisturb
}
NIconButton {
icon: FontService.icons["trash"]
icon: Bootstrap.icons["trash"]
tooltipText: "Clear history"
sizeRatio: 0.8
onClicked: NotificationService.clearHistory()
}
NIconButton {
icon: FontService.icons["close"]
icon: Bootstrap.icons["close"]
tooltipText: "Close"
sizeRatio: 0.8
onClicked: {
@ -175,7 +175,7 @@ NPanel {
// Delete button
NIconButton {
icon: FontService.icons["trash"]
icon: Bootstrap.icons["trash"]
tooltipText: "Delete notification"
sizeRatio: 0.7
Layout.alignment: Qt.AlignTop

View file

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

View file

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

View file

@ -408,7 +408,7 @@ NPanel {
height: width
NIcon {
text: FontService.icons[modelData.icon]
text: Bootstrap.icons[modelData.icon]
color: tabTextColor
font.pointSize: Style.fontSizeL * scaling
anchors.centerIn: parent
@ -480,7 +480,7 @@ NPanel {
// Close button
NIconButton {
icon: FontService.icons["close"]
icon: Bootstrap.icons["close"]
tooltipText: "Close"
Layout.alignment: Qt.AlignVCenter
onClicked: root.close()

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -55,7 +55,7 @@ NPanel {
}
NIconButton {
icon: FontService.icons["refresh"]
icon: Bootstrap.icons["arrow-repeat"]
tooltipText: "Refresh"
sizeRatio: 0.8
enabled: Settings.data.network.wifiEnabled && !NetworkService.scanning
@ -63,7 +63,7 @@ NPanel {
}
NIconButton {
icon: FontService.icons["close"]
icon: Bootstrap.icons["close"]
tooltipText: "Close"
sizeRatio: 0.8
onClicked: root.close()
@ -105,7 +105,7 @@ NPanel {
}
NIconButton {
icon: FontService.icons["close"]
icon: Bootstrap.icons["close"]
sizeRatio: 0.6
onClicked: NetworkService.lastError = ""
}
@ -377,7 +377,7 @@ NPanel {
&& NetworkService.connectingTo !== modelData.ssid
&& NetworkService.forgettingNetwork !== modelData.ssid
&& NetworkService.disconnectingFrom !== modelData.ssid
icon: FontService.icons["trash"]
icon: Bootstrap.icons["trash"]
tooltipText: "Forget network"
sizeRatio: 0.7
onClicked: expandedSsid = expandedSsid === modelData.ssid ? "" : modelData.ssid
@ -492,7 +492,7 @@ NPanel {
}
NIconButton {
icon: FontService.icons["close"]
icon: Bootstrap.icons["close"]
sizeRatio: 0.8
onClicked: {
passwordSsid = ""
@ -547,7 +547,7 @@ NPanel {
}
NIconButton {
icon: FontService.icons["close"]
icon: Bootstrap.icons["close"]
sizeRatio: 0.8
onClicked: expandedSsid = ""
}
@ -586,7 +586,7 @@ NPanel {
NButton {
text: "Scan again"
icon: FontService.icons["refresh"]
icon: Bootstrap.icons["arrow-repeat"]
Layout.alignment: Qt.AlignHCenter
onClicked: NetworkService.scan()
}