From 05250a6eaba5de79786910d103714e174dca0bcd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Iskierko?= <61889657+endulab@users.noreply.github.com> Date: Tue, 12 Jul 2022 11:05:12 +0200 Subject: [PATCH] feat(StatusFontSettings): Add StatusFontSettings component to change StatusMenuItems font attributes (#749) Required by #6090 --- doc/src/statusqcore.qdoc | 1 + sandbox/pages/StatusPopupMenuPage.qml | 23 +++++++++++++++++++ src/StatusQ/Core/StatusFontSettings.qml | 10 ++++++++ src/StatusQ/Core/qmldir | 1 + src/StatusQ/Popups/StatusMenuItem.qml | 2 ++ src/StatusQ/Popups/StatusMenuItemDelegate.qml | 7 +++--- statusq.qrc | 1 + 7 files changed, 42 insertions(+), 3 deletions(-) create mode 100644 src/StatusQ/Core/StatusFontSettings.qml diff --git a/doc/src/statusqcore.qdoc b/doc/src/statusqcore.qdoc index 0c90f020..d7ecaa1d 100644 --- a/doc/src/statusqcore.qdoc +++ b/doc/src/statusqcore.qdoc @@ -12,6 +12,7 @@ \list \li \l{StatusAppNavBarFilterModel} \li \l{StatusBaseText} + \li \l{StatusFontSettings} \li \l{StatusIcon} \li \l{StatusIconBackgroundSettings} \li \l{StatusIconSettings} diff --git a/sandbox/pages/StatusPopupMenuPage.qml b/sandbox/pages/StatusPopupMenuPage.qml index dda229fa..8ddf7ebd 100644 --- a/sandbox/pages/StatusPopupMenuPage.qml +++ b/sandbox/pages/StatusPopupMenuPage.qml @@ -28,6 +28,11 @@ GridLayout { onClicked: customMenu.popup() } + StatusButton { + text: "Menu with custom font settings" + onClicked: differentFontMenu.popup() + } + StatusPopupMenu { id: simpleMenu @@ -147,4 +152,22 @@ CExPynn1gWf9bx498P7/nzPcxEzGExhBdJGYihtAYQlO+tUZvqrPbqeudo5iJGEJjCE15a3VtodH3q2I } } } + + StatusPopupMenu { + id: differentFontMenu + StatusMenuItem { + text: "Bold" + fontSettings.bold: true + } + + StatusMenuItem { + text: "Italic" + fontSettings.italic: true + } + + StatusMenuItem { + text: "16px" + fontSettings.pixelSize: 16 + } + } } diff --git a/src/StatusQ/Core/StatusFontSettings.qml b/src/StatusQ/Core/StatusFontSettings.qml new file mode 100644 index 00000000..1d05394d --- /dev/null +++ b/src/StatusQ/Core/StatusFontSettings.qml @@ -0,0 +1,10 @@ +import QtQuick 2.13 + +QtObject { + id: statusFontSettings + + property bool bold: false + property bool italic: false + property int pixelSize: 13 +} + diff --git a/src/StatusQ/Core/qmldir b/src/StatusQ/Core/qmldir index 966c811e..e0da87df 100644 --- a/src/StatusQ/Core/qmldir +++ b/src/StatusQ/Core/qmldir @@ -1,6 +1,7 @@ module StatusQ.Core StatusBaseText 0.1 StatusBaseText.qml +StatusFontSettings 0.1 StatusFontSettings.qml StatusIcon 0.1 StatusIcon.qml StatusIconSettings 0.1 StatusIconSettings.qml StatusIconBackgroundSettings 0.1 StatusIconBackgroundSettings.qml diff --git a/src/StatusQ/Popups/StatusMenuItem.qml b/src/StatusQ/Popups/StatusMenuItem.qml index 7e3b0c88..5c4c1036 100644 --- a/src/StatusQ/Popups/StatusMenuItem.qml +++ b/src/StatusQ/Popups/StatusMenuItem.qml @@ -22,4 +22,6 @@ Action { background: StatusIconBackgroundSettings {} color: "transparent" } + + property StatusFontSettings fontSettings: StatusFontSettings {} } diff --git a/src/StatusQ/Popups/StatusMenuItemDelegate.qml b/src/StatusQ/Popups/StatusMenuItemDelegate.qml index 9b6eecdd..dbac9edf 100644 --- a/src/StatusQ/Popups/StatusMenuItemDelegate.qml +++ b/src/StatusQ/Popups/StatusMenuItemDelegate.qml @@ -53,14 +53,13 @@ MenuItem { color: { let c = !!statusPopupMenuItem.action.iconSettings && statusPopupMenuItem.action.iconSettings.color || !!statusPopupMenuItem.action && statusPopupMenuItem.action.icon.color - + if (!Qt.colorEqual(c, "transparent")) { return c } switch (statusPopupMenuItem.action.type) { case StatusMenuItem.Type.Danger: return Theme.palette.dangerColor1 - break; default: return Theme.palette.primaryColor1 } @@ -158,7 +157,9 @@ MenuItem { return Theme.palette.directColor1 } } - font.pixelSize: 13 + font.pixelSize: !!statusPopupMenuItem.action.fontSettings ? statusPopupMenuItem.action.fontSettings.pixelSize : 13 + font.bold: !!statusPopupMenuItem.action.fontSettings ? statusPopupMenuItem.action.fontSettings.bold : false + font.italic: !!statusPopupMenuItem.action.fontSettings ? statusPopupMenuItem.action.fontSettings.italic : false elide: Text.ElideRight visible: statusPopupMenuItem.action.enabled } diff --git a/statusq.qrc b/statusq.qrc index d85db052..c279c975 100644 --- a/statusq.qrc +++ b/statusq.qrc @@ -102,6 +102,7 @@ src/StatusQ/Core/StatusBaseText.qml src/StatusQ/Core/StatusIcon.qml src/StatusQ/Core/StatusIconBackgroundSettings.qml + src/StatusQ/Core/StatusFontSettings.qml src/StatusQ/Core/StatusIconSettings.qml src/StatusQ/Core/StatusIdenticonRingSettings.qml src/StatusQ/Core/StatusImageSettings.qml