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

2172
Commons/Bootstrap.qml Normal file

File diff suppressed because it is too large Load diff

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()
}

View file

@ -10,20 +10,20 @@ Singleton {
// Choose icon based on charge and charging state
function getIcon(percent, charging, isReady) {
if (!isReady) {
return FontService.icons["battery_empty"] // FIXME: find battery error ?
return Bootstrap.icons["battery_empty"] // FIXME: find battery error ?
}
if (charging) {
return FontService.icons["battery_charging"]
return Bootstrap.icons["battery_charging"]
} else {
if (percent >= 85)
return FontService.icons["battery_full"]
return Bootstrap.icons["battery_full"]
if (percent >= 45)
return FontService.icons["battery_half"]
return Bootstrap.icons["battery_half"]
if (percent >= 25)
return FontService.icons["battery_low"]
return Bootstrap.icons["battery_low"]
if (percent >= 0)
return FontService.icons["battery_empty"]
return Bootstrap.icons["battery_empty"]
}
}
}

View file

@ -13,85 +13,6 @@ Singleton {
property ListModel displayFonts: ListModel {}
property bool fontsLoaded: false
property var icons: {
"sunny": "\uF1D2",
"partly_cloudy": "\uF2BE",
"cloud": "\uF2C3",
"foggy": "\uF2A7",
"rainy": "\uF29D",
"snowy": "\uF2BC",
"thunderstorm": "\uF2AC",
"battery_empty": "\uF188",
"battery_low": "\uF911",
"battery_half": "\uF187",
"battery_full": "\uF186",
"battery_charging": "\uF185",
"volume_muted": "\uF60D",
"volume_off": "\uF60F",
"volume_half": "\uF60B",
"volume_full": "\uF611",
"brightness_low": "\uF1D4",
"brightness_high": "\uF1D2",
"wifi_disable": "\uF61B",
"wifi_low": "\uF619",
"wifi_half": "\uF61A",
"wifi_full": "\uF61C",
"power": "\uF4FF",
"gear": "\uF3E5",
"close": "\uF659",
"check": "\uF272",
"panel": "\uF290",
"memory": "\uF2D6",
"trash": "\uF78B",
"video_camera": "\uF21F",
"ethernet": "\uF2EB",
"speed": "\uF66B",
"leaf": "\uF90C",
"microphone": "\uF490",
"microphone_muted": "\uF48F",
"coffee": "\uF2E0",
"refresh": "\uF130",
"image": "\uF226",
"contrast": "\uF288",
"thermometer": "\uF5CD",
"paint_drop": "\uF30C",
"yin_yang": "\uF8E7",
"record": "\uF518",
"pause": "\uF4C1",
"play": "\uF4F2",
"stop": "\uF590",
"prev": "\uF561",
"next": "\uF55B",
"arrow_drop_down": "\uF22C",
"warning": "\uF334",
"info": "\uF26A",
"upload": "\uF296",
"download": "\uF294",
"album": "\uF2FF",
"plus": "\uF64D",
"minus": "\uF63B",
"eyedropper": "\uF342",
"bell": "\uF18A",
"bell_striked": "\uF631",
"drive": "\uF412",
"bluetooth": "\uF682",
"person": "\uF4DA",
"bar": "\uF52B",
"launcher": "\uF843",
"palette": "\uF4B1",
"sunrise": "\uF5A5",
"moon_stars": "\uF496",
"gauge": "\uF580",
"lightning": "\uF46D",
"keyboard": "\uF451",
"paint_brush": "\uEE26",
"link": "\uF470",
"macaron": "\uF154",
"box": "\uF1C8",
"monitor": "\uF302",
// another contrast \uF8F3 \uF8DA
}
// -------------------------------------------
function init() {
Logger.log("Font", "Service started")

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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