From 83c6b62c13dbdcb05919e1d8c0d24a569ab8a0bb Mon Sep 17 00:00:00 2001 From: 28allday Date: Sun, 14 Jun 2026 12:59:28 +0100 Subject: [PATCH] =?UTF-8?q?feat(nosignal):=20finish=20Nerd=20Font=20icon?= =?UTF-8?q?=20remap=20=E2=80=94=20core=20surfaces?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Convert remaining reachable surfaces to NsIcon (launcher, utilities, windowinfo, sidebar, dashboard, notification toast, shared controls IconTextButton/Menu/ SplitButton/ToggleButton/CollapsibleSection/CustomSpinBox, CoverArt). Handles the `sourceComponent: MaterialIcon {` form and icon-via-alias controls. - IconTextButton: alias -> plain `icon` property + bound NsIcon (cross-file alias to a custom property was rejected). - Reverted IconButton `font:` (the controls-wide font->fontStyle sweep wrongly hit ButtonBase, which uses font not fontStyle). - Glyphs map: +31 names (dashboard/utilities/launcher leftovers) — no "?" glyphs. Old collapsed bar + old lock sub-components left as-is (unused, never render). Co-Authored-By: Claude Opus 4.8 (1M context) --- components/ConnectionHeader.qml | 4 +-- components/controls/CollapsibleSection.qml | 4 +-- components/controls/CustomSpinBox.qml | 8 ++--- components/controls/IconTextButton.qml | 5 +-- components/controls/Menu.qml | 8 ++--- components/controls/SplitButton.qml | 8 ++--- components/controls/ToggleButton.qml | 4 +-- components/widgets/CoverArt.qml | 4 +-- modules/dashboard/Media.qml | 4 +-- modules/dashboard/Performance.qml | 4 +-- modules/dashboard/Tabs.qml | 4 +-- modules/dashboard/WeatherTab.qml | 16 ++++----- modules/dashboard/dash/Resources.qml | 6 ++-- modules/dashboard/dash/SmallWeather.qml | 4 +-- modules/dashboard/dash/User.qml | 16 ++++----- modules/dashboard/media/LyricList.qml | 4 +-- modules/dashboard/media/LyricsAndSelector.qml | 4 +-- modules/dashboard/media/LyricsInfo.qml | 4 +-- modules/dashboard/performance/BatteryTank.qml | 8 ++--- modules/dashboard/performance/HeroCard.qml | 8 ++--- modules/dashboard/performance/MemoryCard.qml | 4 +-- modules/dashboard/performance/NetworkCard.qml | 16 ++++----- modules/dashboard/performance/StorageCard.qml | 4 +-- modules/launcher/Content.qml | 8 ++--- modules/launcher/ContentList.qml | 4 +-- modules/launcher/items/ActionItem.qml | 4 +-- modules/launcher/items/AppItem.qml | 4 +-- modules/launcher/items/CalcItem.qml | 8 ++--- modules/launcher/items/SchemeItem.qml | 4 +-- modules/launcher/items/VariantItem.qml | 8 ++--- modules/launcher/items/WallpaperItem.qml | 4 +-- modules/notifications/Notification.qml | 8 ++--- modules/sidebar/NotifActionList.qml | 4 +-- modules/sidebar/NotifGroup.qml | 8 ++--- modules/utilities/cards/IdleInhibit.qml | 4 +-- modules/utilities/cards/Record.qml | 4 +-- modules/utilities/cards/RecordingList.qml | 12 +++---- modules/utilities/toasts/ToastItem.qml | 4 +-- modules/windowinfo/Buttons.qml | 4 +-- modules/windowinfo/Details.qml | 4 +-- modules/windowinfo/Preview.qml | 4 +-- services/Glyphs.qml | 34 ++++++++++++++++++- 42 files changed, 159 insertions(+), 126 deletions(-) diff --git a/components/ConnectionHeader.qml b/components/ConnectionHeader.qml index ff4061b5..f4373e29 100644 --- a/components/ConnectionHeader.qml +++ b/components/ConnectionHeader.qml @@ -12,10 +12,10 @@ ColumnLayout { spacing: Tokens.spacing.medium Layout.alignment: Qt.AlignHCenter - MaterialIcon { + NsIcon { Layout.alignment: Qt.AlignHCenter animate: true - text: root.icon + icon: root.icon fontStyle: Tokens.font.icon.builders.extraLarge.scale(3).weight(Font.Bold).build() } diff --git a/components/controls/CollapsibleSection.qml b/components/controls/CollapsibleSection.qml index 3ab10c7a..22104068 100644 --- a/components/controls/CollapsibleSection.qml +++ b/components/controls/CollapsibleSection.qml @@ -45,8 +45,8 @@ ColumnLayout { Layout.fillWidth: true } - MaterialIcon { - text: "expand_more" + NsIcon { + icon: "expand_more" rotation: root.expanded ? 180 : 0 color: Colours.palette.m3onSurfaceVariant fontStyle: Tokens.font.icon.medium diff --git a/components/controls/CustomSpinBox.qml b/components/controls/CustomSpinBox.qml index b75272f6..dc1cff1b 100644 --- a/components/controls/CustomSpinBox.qml +++ b/components/controls/CustomSpinBox.qml @@ -110,11 +110,11 @@ RowLayout { } } - MaterialIcon { + NsIcon { id: upIcon anchors.centerIn: parent - text: "keyboard_arrow_up" + icon: "keyboard_arrow_up" color: Colours.palette.m3onPrimary } } @@ -145,11 +145,11 @@ RowLayout { onReleased: timer.stop() } - MaterialIcon { + NsIcon { id: downIcon anchors.centerIn: parent - text: "keyboard_arrow_down" + icon: "keyboard_arrow_down" color: Colours.palette.m3onPrimary } } diff --git a/components/controls/IconTextButton.qml b/components/controls/IconTextButton.qml index 6859cb68..105f6f08 100644 --- a/components/controls/IconTextButton.qml +++ b/components/controls/IconTextButton.qml @@ -7,7 +7,7 @@ import qs.services ButtonBase { id: root - property alias icon: iconLabel.text + property string icon property alias text: label.text readonly property alias iconLabel: iconLabel @@ -44,9 +44,10 @@ ButtonBase { anchors.centerIn: parent spacing: Tokens.spacing.small - MaterialIcon { + NsIcon { id: iconLabel + icon: root.icon Layout.alignment: Qt.AlignVCenter Layout.topMargin: Math.round(fontInfo.pointSize * 0.0575) color: root.onColour diff --git a/components/controls/Menu.qml b/components/controls/Menu.qml index db36d128..6bc3fcd1 100644 --- a/components/controls/Menu.qml +++ b/components/controls/Menu.qml @@ -157,9 +157,9 @@ MouseArea { anchors.margins: Tokens.padding.medium spacing: Tokens.spacing.small - MaterialIcon { + NsIcon { Layout.alignment: Qt.AlignVCenter - text: item.modelData?.icon ?? "" + icon: item.modelData?.icon ?? "" color: item.active ? Colours.palette.m3onTertiaryContainer : Colours.palette.m3onSurfaceVariant } @@ -176,8 +176,8 @@ MouseArea { active: item.modelData?.trailingIcon.length > 0 visible: active - sourceComponent: MaterialIcon { - text: item.modelData.trailingIcon + sourceComponent: NsIcon { + icon: item.modelData.trailingIcon color: item.active ? Colours.palette.m3onTertiaryContainer : Colours.palette.m3onSurfaceVariant } } diff --git a/components/controls/SplitButton.qml b/components/controls/SplitButton.qml index 2feaf615..7a73c8e1 100644 --- a/components/controls/SplitButton.qml +++ b/components/controls/SplitButton.qml @@ -64,12 +64,12 @@ Row { anchors.horizontalCenterOffset: Math.floor(root.verticalPadding / 4) spacing: Tokens.spacing.small - MaterialIcon { + NsIcon { id: iconLabel Layout.alignment: Qt.AlignVCenter animate: true - text: root.active?.activeIcon ?? root.fallbackIcon + icon: root.active?.activeIcon ?? root.fallbackIcon color: root.disabled ? root.disabledTextColour : root.textColour fill: 1 } @@ -116,13 +116,13 @@ Row { onClicked: root.expanded = !root.expanded } - MaterialIcon { + NsIcon { id: expandIcon anchors.centerIn: parent anchors.horizontalCenterOffset: root.expanded ? 0 : -Math.floor(root.verticalPadding / 4) - text: "expand_more" + icon: "expand_more" color: root.disabled ? root.disabledTextColour : root.textColour rotation: root.expanded ? 180 : 0 diff --git a/components/controls/ToggleButton.qml b/components/controls/ToggleButton.qml index cd6427a2..5ef947d6 100644 --- a/components/controls/ToggleButton.qml +++ b/components/controls/ToggleButton.qml @@ -54,12 +54,12 @@ StyledRect { anchors.centerIn: parent spacing: Tokens.spacing.medium - MaterialIcon { + NsIcon { id: toggleBtnIcon visible: !!text fill: root.toggled ? 1 : 0 - text: root.icon + icon: root.icon color: root.toggled ? Colours.palette[`m3on${root.accent}`] : Colours.palette[`m3on${root.accent}Container`] fontStyle: Tokens.font.icon.size(root.iconSize).build() diff --git a/components/widgets/CoverArt.qml b/components/widgets/CoverArt.qml index 1c7fbdb0..cfb56b6b 100644 --- a/components/widgets/CoverArt.qml +++ b/components/widgets/CoverArt.qml @@ -57,11 +57,11 @@ Item { } } - MaterialIcon { + NsIcon { anchors.centerIn: parent grade: 200 - text: image.status === Image.Error ? "broken_image" : "art_track" + icon: image.status === Image.Error ? "broken_image" : "art_track" color: Colours.palette.m3onSurfaceVariant fontStyle: Tokens.font.icon.size((parent.width * 0.35) || 1).build() opacity: image.status === Image.Null || image.status === Image.Error ? 1 : 0 diff --git a/modules/dashboard/Media.qml b/modules/dashboard/Media.qml index 2a2f5c2e..3ae5a6fd 100644 --- a/modules/dashboard/Media.qml +++ b/modules/dashboard/Media.qml @@ -102,11 +102,11 @@ Item { CAnim {} } - MaterialIcon { + NsIcon { id: icon anchors.centerIn: parent - text: "queue_music" + icon: "queue_music" fontStyle: Tokens.font.icon.builders.large.scale(2).build() color: Colours.palette.m3onPrimaryContainer } diff --git a/modules/dashboard/Performance.qml b/modules/dashboard/Performance.qml index 3973bdc0..22c2c6d6 100644 --- a/modules/dashboard/Performance.qml +++ b/modules/dashboard/Performance.qml @@ -23,9 +23,9 @@ Item { sourceComponent: ColumnLayout { spacing: Tokens.spacing.medium - MaterialIcon { + NsIcon { Layout.alignment: Qt.AlignHCenter - text: "tune" + icon: "tune" fontStyle: Tokens.font.icon.builders.extraLarge.scale(2).build() color: Colours.palette.m3onSurfaceVariant } diff --git a/modules/dashboard/Tabs.qml b/modules/dashboard/Tabs.qml index e67cfd5e..d95372b6 100644 --- a/modules/dashboard/Tabs.qml +++ b/modules/dashboard/Tabs.qml @@ -153,13 +153,13 @@ Item { onClicked: root.dashState.currentTab = tab.TabBar.index } - MaterialIcon { + NsIcon { id: icon anchors.horizontalCenter: parent.horizontalCenter anchors.bottom: label.top - text: tab.iconName + icon: tab.iconName color: tab.current ? Colours.palette.m3primary : Colours.palette.m3onSurfaceVariant fill: tab.current ? 1 : 0 fontStyle: Tokens.font.icon.medium diff --git a/modules/dashboard/WeatherTab.qml b/modules/dashboard/WeatherTab.qml index b942a8b0..34a715bc 100644 --- a/modules/dashboard/WeatherTab.qml +++ b/modules/dashboard/WeatherTab.qml @@ -76,9 +76,9 @@ Item { anchors.centerIn: parent spacing: Tokens.spacing.largeIncreased - MaterialIcon { + NsIcon { Layout.alignment: Qt.AlignVCenter - text: Weather.icon + icon: Weather.icon fontStyle: Tokens.font.icon.builders.extraLarge.scale(3).build() color: Colours.palette.m3secondary animate: true @@ -180,9 +180,9 @@ Item { color: Colours.palette.m3onSurfaceVariant } - MaterialIcon { + NsIcon { Layout.alignment: Qt.AlignHCenter - text: forecastItem.modelData.icon + icon: forecastItem.modelData.icon fontStyle: Tokens.font.icon.extraLarge color: Colours.palette.m3secondary } @@ -216,8 +216,8 @@ Item { anchors.centerIn: parent spacing: Tokens.spacing.medium - MaterialIcon { - text: detailRoot.icon + NsIcon { + icon: detailRoot.icon color: detailRoot.colour fontStyle: Tokens.font.icon.large anchors.verticalCenter: parent.verticalCenter @@ -252,8 +252,8 @@ Item { spacing: Tokens.spacing.small - MaterialIcon { - text: weatherStat.icon + NsIcon { + icon: weatherStat.icon fontStyle: Tokens.font.icon.extraLarge color: weatherStat.colour } diff --git a/modules/dashboard/dash/Resources.qml b/modules/dashboard/dash/Resources.qml index 898f69a4..e2235cca 100644 --- a/modules/dashboard/dash/Resources.qml +++ b/modules/dashboard/dash/Resources.qml @@ -65,10 +65,10 @@ Item { Anim {} } - MaterialIcon { + NsIcon { anchors.centerIn: parent - text: res.icon - font: Tokens.font.icon.large + icon: res.icon + fontStyle: Tokens.font.icon.large color: res.fgColour } } diff --git a/modules/dashboard/dash/SmallWeather.qml b/modules/dashboard/dash/SmallWeather.qml index cd5f3e40..82ac7d5a 100644 --- a/modules/dashboard/dash/SmallWeather.qml +++ b/modules/dashboard/dash/SmallWeather.qml @@ -13,14 +13,14 @@ Item { Component.onCompleted: Weather.reload() - MaterialIcon { + NsIcon { id: icon anchors.verticalCenter: parent.verticalCenter anchors.left: parent.left animate: true - text: Weather.icon + icon: Weather.icon color: Colours.palette.m3secondary fontStyle: Tokens.font.icon.builders.extraLarge.scale(1.6).build() } diff --git a/modules/dashboard/dash/User.qml b/modules/dashboard/dash/User.qml index d8d56128..04cfabb1 100644 --- a/modules/dashboard/dash/User.qml +++ b/modules/dashboard/dash/User.qml @@ -75,8 +75,8 @@ Item { asynchronous: true active: pfp.status !== Image.Ready - sourceComponent: MaterialIcon { - text: "person_add" + sourceComponent: NsIcon { + icon: "person_add" color: Colours.palette.m3onSurfaceVariant fontStyle: Tokens.font.icon.extraLarge fill: 1 @@ -120,9 +120,9 @@ Item { } } - MaterialIcon { + NsIcon { anchors.centerIn: parent - text: "person_edit" + icon: "person_edit" color: Colours.palette.m3onPrimary fontStyle: Tokens.font.icon.large } @@ -187,9 +187,9 @@ Item { CAnim {} } - MaterialIcon { + NsIcon { anchors.centerIn: parent - text: "clock_arrow_up" + icon: "clock_arrow_up" color: Colours.palette.m3onTertiaryContainer fontStyle: Tokens.font.icon.medium } @@ -251,11 +251,11 @@ Item { anchors.centerIn: parent spacing: Tokens.spacing.extraSmall - MaterialIcon { + NsIcon { id: wmIcon anchors.verticalCenter: parent.verticalCenter - text: "select_window" + icon: "select_window" color: Colours.palette.m3onSecondaryContainer fontStyle: wmText.font } diff --git a/modules/dashboard/media/LyricList.qml b/modules/dashboard/media/LyricList.qml index c7fa7d25..c5b4e45b 100644 --- a/modules/dashboard/media/LyricList.qml +++ b/modules/dashboard/media/LyricList.qml @@ -212,9 +212,9 @@ Item { sourceComponent: ColumnLayout { spacing: Tokens.spacing.small - MaterialIcon { + NsIcon { Layout.alignment: Qt.AlignHCenter - text: "sentiment_sad" + icon: "sentiment_sad" fontStyle: Tokens.font.icon.builders.large.scale(2).build() color: Colours.palette.m3outline } diff --git a/modules/dashboard/media/LyricsAndSelector.qml b/modules/dashboard/media/LyricsAndSelector.qml index 89d7ce5f..11d06069 100644 --- a/modules/dashboard/media/LyricsAndSelector.qml +++ b/modules/dashboard/media/LyricsAndSelector.qml @@ -20,9 +20,9 @@ Item { spacing: Tokens.spacing.medium z: 1 - MaterialIcon { + NsIcon { Layout.topMargin: Math.round(fontInfo.pointSize * 0.12) - text: "lyrics" + icon: "lyrics" fontStyle: Tokens.font.icon.medium } diff --git a/modules/dashboard/media/LyricsInfo.qml b/modules/dashboard/media/LyricsInfo.qml index 4091f05a..1962309d 100644 --- a/modules/dashboard/media/LyricsInfo.qml +++ b/modules/dashboard/media/LyricsInfo.qml @@ -197,11 +197,11 @@ Item { hoverEnabled: true onClicked: root.open = !root.open - MaterialIcon { + NsIcon { id: icon anchors.centerIn: parent - text: "more_vert" + icon: "more_vert" fontStyle: Tokens.font.icon.medium } } diff --git a/modules/dashboard/performance/BatteryTank.qml b/modules/dashboard/performance/BatteryTank.qml index 691405db..5b38ff57 100644 --- a/modules/dashboard/performance/BatteryTank.qml +++ b/modules/dashboard/performance/BatteryTank.qml @@ -65,9 +65,9 @@ StyledClippingRect { spacing: 0 - MaterialIcon { + NsIcon { Layout.leftMargin: -Tokens.padding.extraSmall - text: "battery_full" + icon: "battery_full" color: contents.accentColour fontStyle: Tokens.font.icon.large } @@ -115,8 +115,8 @@ StyledClippingRect { Layout.alignment: Qt.AlignRight spacing: Tokens.spacing.extraSmall - MaterialIcon { - text: "bolt" + NsIcon { + icon: "bolt" color: contents.accentColour fontStyle: Tokens.font.icon.large fill: 1 diff --git a/modules/dashboard/performance/HeroCard.qml b/modules/dashboard/performance/HeroCard.qml index c3805d5e..8cc4fce3 100644 --- a/modules/dashboard/performance/HeroCard.qml +++ b/modules/dashboard/performance/HeroCard.qml @@ -40,11 +40,11 @@ StyledRect { Anim {} } - MaterialIcon { + NsIcon { id: icon anchors.centerIn: parent - text: root.icon + icon: root.icon color: root.accent fontStyle: Tokens.font.icon.medium } @@ -84,9 +84,9 @@ StyledRect { Layout.leftMargin: -Tokens.padding.extraSmall spacing: Tokens.spacing.extraSmall - MaterialIcon { + NsIcon { Layout.topMargin: Math.round(fontInfo.pointSize * 0.08) - text: root.temperature > 90 ? "thermometer_alert" : "thermometer" + icon: root.temperature > 90 ? "thermometer_alert" : "thermometer" color: root.temperature > 90 ? Colours.palette.m3error : root.accent fontStyle: Tokens.font.icon.medium fill: 1 diff --git a/modules/dashboard/performance/MemoryCard.qml b/modules/dashboard/performance/MemoryCard.qml index 5caf4c1e..31266387 100644 --- a/modules/dashboard/performance/MemoryCard.qml +++ b/modules/dashboard/performance/MemoryCard.qml @@ -31,8 +31,8 @@ StyledRect { Layout.leftMargin: -Tokens.padding.extraSmall spacing: Tokens.spacing.small - MaterialIcon { - text: "memory_alt" + NsIcon { + icon: "memory_alt" fill: 1 color: root.accent fontStyle: Tokens.font.icon.builders.medium.weight(Font.DemiBold).build() // DemiBold to fix fill issues diff --git a/modules/dashboard/performance/NetworkCard.qml b/modules/dashboard/performance/NetworkCard.qml index 4eccebe7..68ed3080 100644 --- a/modules/dashboard/performance/NetworkCard.qml +++ b/modules/dashboard/performance/NetworkCard.qml @@ -30,8 +30,8 @@ StyledRect { RowLayout { spacing: Tokens.spacing.small - MaterialIcon { - text: "swap_vert" + NsIcon { + icon: "swap_vert" color: Colours.palette.m3primary fontStyle: Tokens.font.icon.medium } @@ -105,8 +105,8 @@ StyledRect { Layout.fillWidth: true spacing: Tokens.spacing.small - MaterialIcon { - text: "download" + NsIcon { + icon: "download" color: Colours.palette.m3tertiary fontStyle: Tokens.font.icon.medium } @@ -136,8 +136,8 @@ StyledRect { Layout.fillWidth: true spacing: Tokens.spacing.small - MaterialIcon { - text: "upload" + NsIcon { + icon: "upload" color: Colours.palette.m3secondary fontStyle: Tokens.font.icon.medium } @@ -167,8 +167,8 @@ StyledRect { Layout.fillWidth: true spacing: Tokens.spacing.small - MaterialIcon { - text: "history" + NsIcon { + icon: "history" color: Colours.palette.m3onSurfaceVariant fontStyle: Tokens.font.icon.medium } diff --git a/modules/dashboard/performance/StorageCard.qml b/modules/dashboard/performance/StorageCard.qml index f1d5723a..9e1f8693 100644 --- a/modules/dashboard/performance/StorageCard.qml +++ b/modules/dashboard/performance/StorageCard.qml @@ -55,9 +55,9 @@ StyledRect { anchors.centerIn: parent spacing: 0 - MaterialIcon { + NsIcon { Layout.alignment: Qt.AlignHCenter - text: "hard_drive" + icon: "hard_drive" color: root.accent fontStyle: Tokens.font.icon.medium } diff --git a/modules/launcher/Content.qml b/modules/launcher/Content.qml index 1c990388..fea9c25d 100644 --- a/modules/launcher/Content.qml +++ b/modules/launcher/Content.qml @@ -58,14 +58,14 @@ Item { implicitHeight: Math.max(searchIcon.implicitHeight, search.implicitHeight, clearIcon.implicitHeight) - MaterialIcon { + NsIcon { id: searchIcon anchors.verticalCenter: parent.verticalCenter anchors.left: parent.left anchors.leftMargin: root.padding - text: "search" + icon: "search" color: Colours.palette.m3onSurfaceVariant } @@ -145,7 +145,7 @@ Item { } } - MaterialIcon { + NsIcon { id: clearIcon anchors.verticalCenter: parent.verticalCenter @@ -163,7 +163,7 @@ Item { return 1; } - text: "close" + icon: "close" color: Colours.palette.m3onSurfaceVariant MouseArea { diff --git a/modules/launcher/ContentList.qml b/modules/launcher/ContentList.qml index f42087ed..9b4f14fb 100644 --- a/modules/launcher/ContentList.qml +++ b/modules/launcher/ContentList.qml @@ -116,8 +116,8 @@ Item { anchors.horizontalCenter: parent.horizontalCenter anchors.verticalCenter: parent.verticalCenter - MaterialIcon { - text: root.state === "wallpapers" ? "wallpaper_slideshow" : "manage_search" + NsIcon { + icon: root.state === "wallpapers" ? "wallpaper_slideshow" : "manage_search" color: Colours.palette.m3onSurfaceVariant fontStyle: Tokens.font.icon.extraLarge diff --git a/modules/launcher/items/ActionItem.qml b/modules/launcher/items/ActionItem.qml index b7bbebbb..eb7a6a66 100644 --- a/modules/launcher/items/ActionItem.qml +++ b/modules/launcher/items/ActionItem.qml @@ -25,11 +25,11 @@ Item { anchors.rightMargin: Tokens.padding.medium anchors.margins: Tokens.padding.small - MaterialIcon { + NsIcon { id: icon anchors.verticalCenter: parent.verticalCenter - text: root.modelData?.icon ?? "" + icon: root.modelData?.icon ?? "" color: Colours.palette.m3onSurfaceVariant fontStyle: Tokens.font.icon.builders.large.scale(1.3).build() } diff --git a/modules/launcher/items/AppItem.qml b/modules/launcher/items/AppItem.qml index ba6b0aab..7df00e59 100644 --- a/modules/launcher/items/AppItem.qml +++ b/modules/launcher/items/AppItem.qml @@ -79,8 +79,8 @@ Item { anchors.right: parent.right active: root.modelData && Strings.testRegexList(GlobalConfig.launcher.favouriteApps, root.modelData.id) - sourceComponent: MaterialIcon { - text: "favorite" + sourceComponent: NsIcon { + icon: "favorite" fill: 1 color: Colours.palette.m3primary } diff --git a/modules/launcher/items/CalcItem.qml b/modules/launcher/items/CalcItem.qml index 38097123..aa9f851c 100644 --- a/modules/launcher/items/CalcItem.qml +++ b/modules/launcher/items/CalcItem.qml @@ -40,8 +40,8 @@ Item { spacing: Tokens.spacing.medium - MaterialIcon { - text: "function" + NsIcon { + icon: "function" fontStyle: Tokens.font.icon.extraLarge Layout.alignment: Qt.AlignVCenter } @@ -105,14 +105,14 @@ Item { } } - MaterialIcon { + NsIcon { id: icon anchors.verticalCenter: parent.verticalCenter anchors.right: parent.right anchors.rightMargin: Tokens.padding.medium - text: "open_in_new" + icon: "open_in_new" color: Colours.palette.m3onTertiary fontStyle: Tokens.font.icon.large } diff --git a/modules/launcher/items/SchemeItem.qml b/modules/launcher/items/SchemeItem.qml index a2f466cc..bef84915 100644 --- a/modules/launcher/items/SchemeItem.qml +++ b/modules/launcher/items/SchemeItem.qml @@ -92,8 +92,8 @@ Item { active: `${root.modelData?.name} ${root.modelData?.flavour}` === Schemes.currentScheme - sourceComponent: MaterialIcon { - text: "check" + sourceComponent: NsIcon { + icon: "check" color: Colours.palette.m3onSurfaceVariant fontStyle: Tokens.font.icon.large } diff --git a/modules/launcher/items/VariantItem.qml b/modules/launcher/items/VariantItem.qml index fa3fb259..8baf6ea1 100644 --- a/modules/launcher/items/VariantItem.qml +++ b/modules/launcher/items/VariantItem.qml @@ -26,10 +26,10 @@ Item { anchors.rightMargin: Tokens.padding.medium anchors.margins: Tokens.padding.small - MaterialIcon { + NsIcon { id: icon - text: root.modelData?.icon ?? "" + icon: root.modelData?.icon ?? "" fontStyle: Tokens.font.icon.extraLarge anchors.verticalCenter: parent.verticalCenter @@ -68,8 +68,8 @@ Item { active: root.modelData?.variant === Schemes.currentVariant - sourceComponent: MaterialIcon { - text: "check" + sourceComponent: NsIcon { + icon: "check" color: Colours.palette.m3onSurfaceVariant fontStyle: Tokens.font.icon.large } diff --git a/modules/launcher/items/WallpaperItem.qml b/modules/launcher/items/WallpaperItem.qml index 9f87cba7..d57d2c44 100644 --- a/modules/launcher/items/WallpaperItem.qml +++ b/modules/launcher/items/WallpaperItem.qml @@ -57,9 +57,9 @@ Item { implicitWidth: Tokens.sizes.launcher.wallpaperWidth implicitHeight: implicitWidth / 16 * 9 - MaterialIcon { + NsIcon { anchors.centerIn: parent - text: "image" + icon: "image" color: Colours.tPalette.m3outline fontStyle: Tokens.font.icon.builders.extraLarge.scale(2).weight(Font.DemiBold).build() } diff --git a/modules/notifications/Notification.qml b/modules/notifications/Notification.qml index 6a6e63f8..23138102 100644 --- a/modules/notifications/Notification.qml +++ b/modules/notifications/Notification.qml @@ -177,8 +177,8 @@ StyledRect { anchors.centerIn: parent anchors.verticalCenterOffset: 1 - sourceComponent: MaterialIcon { - text: Icons.getNotifIcon(root.modelData.summary, root.modelData.urgency) + sourceComponent: NsIcon { + icon: Icons.getNotifIcon(root.modelData.summary, root.modelData.urgency) color: root.modelData.urgency === NotificationUrgency.Critical ? Colours.palette.m3onError : root.modelData.urgency === NotificationUrgency.Low ? Colours.palette.m3onSurface : Colours.palette.m3onSecondaryContainer fontStyle: Tokens.font.icon.medium } @@ -363,12 +363,12 @@ StyledRect { onClicked: root.expanded = !root.expanded } - MaterialIcon { + NsIcon { id: expandIcon anchors.centerIn: parent anchors.verticalCenterOffset: root.expanded ? -1 : 1 - text: "expand_more" + icon: "expand_more" fontStyle: Tokens.font.icon.medium rotation: root.expanded ? 180 : 0 diff --git a/modules/sidebar/NotifActionList.qml b/modules/sidebar/NotifActionList.qml index ed787b66..66e3acee 100644 --- a/modules/sidebar/NotifActionList.qml +++ b/modules/sidebar/NotifActionList.qml @@ -160,9 +160,9 @@ Item { Component { id: iconBtn - MaterialIcon { + NsIcon { animate: action.modelData.isCopy ?? false - text: action.modelData.isCopy ? "content_copy" : "close" + icon: action.modelData.isCopy ? "content_copy" : "close" color: Colours.palette.m3onSurfaceVariant } } diff --git a/modules/sidebar/NotifGroup.qml b/modules/sidebar/NotifGroup.qml index f75b1d70..5b655587 100644 --- a/modules/sidebar/NotifGroup.qml +++ b/modules/sidebar/NotifGroup.qml @@ -110,8 +110,8 @@ StyledRect { Component { id: materialIconComp - MaterialIcon { - text: Icons.getNotifIcon(root.activeNotifs[0]?.summary, root.urgency) + NsIcon { + icon: Icons.getNotifIcon(root.activeNotifs[0]?.summary, root.urgency) color: root.urgency === NotificationUrgency.Critical ? Colours.palette.m3onError : root.urgency === NotificationUrgency.Low ? Colours.palette.m3onSurface : Colours.palette.m3onSecondaryContainer fontStyle: Tokens.font.icon.medium } @@ -214,9 +214,9 @@ StyledRect { font: Tokens.font.body.small } - MaterialIcon { + NsIcon { Layout.rightMargin: -Tokens.padding.extraSmall / 2 - text: "expand_more" + icon: "expand_more" color: root.urgency === NotificationUrgency.Critical ? Colours.palette.m3onError : Colours.palette.m3onSurfaceVariant rotation: root.expanded ? 180 : 0 Layout.topMargin: root.expanded ? -Math.floor(Tokens.padding.extraSmall) : 0 diff --git a/modules/utilities/cards/IdleInhibit.qml b/modules/utilities/cards/IdleInhibit.qml index c5244c93..3dabeeec 100644 --- a/modules/utilities/cards/IdleInhibit.qml +++ b/modules/utilities/cards/IdleInhibit.qml @@ -33,11 +33,11 @@ StyledRect { radius: Tokens.rounding.full color: IdleInhibitor.enabled ? Colours.palette.m3secondary : Colours.palette.m3secondaryContainer - MaterialIcon { + NsIcon { id: icon anchors.centerIn: parent - text: "coffee" + icon: "coffee" color: IdleInhibitor.enabled ? Colours.palette.m3onSecondary : Colours.palette.m3onSecondaryContainer fontStyle: Tokens.font.icon.large } diff --git a/modules/utilities/cards/Record.qml b/modules/utilities/cards/Record.qml index 2c2cae24..35edf44e 100644 --- a/modules/utilities/cards/Record.qml +++ b/modules/utilities/cards/Record.qml @@ -43,12 +43,12 @@ StyledRect { radius: Tokens.rounding.full color: Recorder.running ? Colours.palette.m3secondary : Colours.palette.m3secondaryContainer - MaterialIcon { + NsIcon { id: icon anchors.centerIn: parent anchors.verticalCenterOffset: 1 - text: "screen_record" + icon: "screen_record" color: Recorder.running ? Colours.palette.m3onSecondary : Colours.palette.m3onSecondaryContainer fontStyle: Tokens.font.icon.large } diff --git a/modules/utilities/cards/RecordingList.qml b/modules/utilities/cards/RecordingList.qml index ab727817..18172193 100644 --- a/modules/utilities/cards/RecordingList.qml +++ b/modules/utilities/cards/RecordingList.qml @@ -29,9 +29,9 @@ ColumnLayout { RowLayout { spacing: Tokens.spacing.medium - MaterialIcon { + NsIcon { Layout.alignment: Qt.AlignVCenter - text: "list" + icon: "list" fontStyle: Tokens.font.icon.large } @@ -165,9 +165,9 @@ ColumnLayout { sourceComponent: ColumnLayout { spacing: Tokens.spacing.small - MaterialIcon { + NsIcon { Layout.alignment: Qt.AlignHCenter - text: "scan_delete" + icon: "scan_delete" color: Colours.palette.m3outline fontStyle: Tokens.font.icon.extraLarge @@ -193,9 +193,9 @@ ColumnLayout { RowLayout { spacing: Tokens.spacing.medium - MaterialIcon { + NsIcon { Layout.alignment: Qt.AlignHCenter - text: "scan_delete" + icon: "scan_delete" color: Colours.palette.m3outline opacity: !root.props.recordingListExpanded ? 1 : 0 diff --git a/modules/utilities/toasts/ToastItem.qml b/modules/utilities/toasts/ToastItem.qml index 93d68937..abca1020 100644 --- a/modules/utilities/toasts/ToastItem.qml +++ b/modules/utilities/toasts/ToastItem.qml @@ -70,11 +70,11 @@ StyledRect { implicitWidth: implicitHeight implicitHeight: icon.implicitHeight + Tokens.padding.large - MaterialIcon { + NsIcon { id: icon anchors.centerIn: parent - text: root.modelData.icon + icon: root.modelData.icon color: { if (root.modelData.type === Toast.Success) return Colours.palette.m3onSuccess; diff --git a/modules/windowinfo/Buttons.qml b/modules/windowinfo/Buttons.qml index bac99280..a06d461a 100644 --- a/modules/windowinfo/Buttons.qml +++ b/modules/windowinfo/Buttons.qml @@ -41,13 +41,13 @@ ColumnLayout { onClicked: root.moveToWsExpanded = !root.moveToWsExpanded } - MaterialIcon { + NsIcon { id: moveToWsIcon anchors.centerIn: parent animate: true - text: root.moveToWsExpanded ? "expand_more" : "keyboard_arrow_right" + icon: root.moveToWsExpanded ? "expand_more" : "keyboard_arrow_right" color: Colours.palette.m3onPrimary fontStyle: Tokens.font.icon.large } diff --git a/modules/windowinfo/Details.qml b/modules/windowinfo/Details.qml index 50babbda..24791883 100644 --- a/modules/windowinfo/Details.qml +++ b/modules/windowinfo/Details.qml @@ -135,11 +135,11 @@ ColumnLayout { spacing: Tokens.spacing.medium - MaterialIcon { + NsIcon { id: icon Layout.alignment: Qt.AlignVCenter - text: detail.icon + icon: detail.icon } StyledText { diff --git a/modules/windowinfo/Preview.qml b/modules/windowinfo/Preview.qml index 4ff03480..0ee5ef64 100644 --- a/modules/windowinfo/Preview.qml +++ b/modules/windowinfo/Preview.qml @@ -40,9 +40,9 @@ Item { sourceComponent: ColumnLayout { spacing: 0 - MaterialIcon { + NsIcon { Layout.alignment: Qt.AlignHCenter - text: "web_asset_off" + icon: "web_asset_off" color: Colours.palette.m3outline fontStyle: Tokens.font.icon.builders.extraLarge.scale(3).build() } diff --git a/services/Glyphs.qml b/services/Glyphs.qml index 42c91c07..14f91913 100644 --- a/services/Glyphs.qml +++ b/services/Glyphs.qml @@ -200,7 +200,39 @@ Singleton { "dock": root.cp(0xf2d1), // lock screen "login": root.cp(0xf090), - "key": root.cp(0xf084) + "key": root.cp(0xf084), + // dashboard / utilities / launcher leftovers + "account_tree": root.cp(0xf0e8), + "android": root.cp(0xf17b), + "category": root.cp(0xf02c), + "clear_all": root.cp(0xf2ed), + "compare": root.cp(0xf362), + "compare_arrows": root.cp(0xf362), + "contrast": root.cp(0xf042), + "delete_forever": root.cp(0xf1f8), + "filter_b_and_w": root.cp(0xf0b0), + "fullscreen": root.cp(0xf065), + "gamepad": root.cp(0xf11b), + "gradient": root.cp(0xf043), + "hard_disk": root.cp(0xf0a0), + "keep": root.cp(0xf08d), + "location_on": root.cp(0xf041), + "location_searching": root.cp(0xf05b), + "looks": root.cp(0xf53f), + "memory": root.cp(0xf2db), + "notifications_off": root.cp(0xf1f6), + "nutrition": root.cp(0xf787), + "page_header": root.cp(0xf036), + "picture_in_picture_center": root.cp(0xf2d0), + "resize": root.cp(0xf065), + "screenshot_region": root.cp(0xf247), + "select_to_speak": root.cp(0xf028), + "sentiment_calm": root.cp(0xf118), + "sentiment_very_dissatisfied": root.cp(0xf119), + "stop": root.cp(0xf04d), + "thermostat": root.cp(0xf2c9), + "water_drop": root.cp(0xf043), + "wb_twilight": root.cp(0xf185) } function get(name: string): string {