diff --git a/src/gui/iconutils.cpp b/src/gui/iconutils.cpp index c25adbc76d00d..22ce38f85aabb 100644 --- a/src/gui/iconutils.cpp +++ b/src/gui/iconutils.cpp @@ -108,9 +108,11 @@ QImage createSvgImageWithCustomColor(const QString &fileName, return {}; } + const auto sizeToUse = requestedSize.isValid() || originalSize == nullptr ? requestedSize : *originalSize; + // some icons are present in white or black only, so, we need to check both when needed const auto iconBaseColors = QStringList{QStringLiteral("black"), QStringLiteral("white")}; - const auto customColorImage = findImageWithCustomColor(fileName, customColor, iconBaseColors, requestedSize); + const auto customColorImage = findImageWithCustomColor(fileName, customColor, iconBaseColors, sizeToUse); if (!customColorImage.isNull()) { return customColorImage; @@ -125,7 +127,7 @@ QImage createSvgImageWithCustomColor(const QString &fileName, return {}; } - const auto result = drawSvgWithCustomFillColor(sourceSvg, customColor, originalSize, requestedSize); + const auto result = drawSvgWithCustomFillColor(sourceSvg, customColor, originalSize, sizeToUse); Q_ASSERT(!result.isNull()); if (result.isNull()) { diff --git a/src/gui/tray/AutoSizingMenu.qml b/src/gui/tray/AutoSizingMenu.qml index 5be41907c6780..1d3134b373069 100644 --- a/src/gui/tray/AutoSizingMenu.qml +++ b/src/gui/tray/AutoSizingMenu.qml @@ -8,7 +8,7 @@ Menu { var padding = 0; for (var i = 0; i < count; ++i) { var item = itemAt(i); - result = Math.max(item.contentItem.implicitWidth, result); + result = Math.max(item.implicitWidth, result); padding = Math.max(item.padding, padding); } return result + padding * 2; diff --git a/src/gui/tray/HeaderButton.qml b/src/gui/tray/HeaderButton.qml index ca46a3e1cfb6f..3d16aa3509617 100644 --- a/src/gui/tray/HeaderButton.qml +++ b/src/gui/tray/HeaderButton.qml @@ -18,7 +18,6 @@ import QtQuick 2.15 import QtQuick.Window 2.15 import QtQuick.Controls 2.15 import QtQuick.Layouts 1.15 -import Qt5Compat.GraphicalEffects // Custom qml modules are in /theme (and included by resources.qrc) import Style 1.0 @@ -33,7 +32,6 @@ Button { icon.width: Style.headerButtonIconSize icon.height: Style.headerButtonIconSize - icon.color: palette.brightText Layout.alignment: Qt.AlignRight Layout.preferredWidth: Style.trayWindowHeaderHeight @@ -43,4 +41,20 @@ Button { color: root.hovered || root.visualFocus ? Style.currentUserHeaderTextColor : "transparent" opacity: 0.2 } + + contentItem: Item { + anchors.fill: parent + + Image { + id: internalImage + anchors.centerIn: parent + width: root.icon.width + height: root.icon.height + source: root.icon.source + sourceSize { + width: root.icon.width + height: root.icon.height + } + } + } } diff --git a/src/gui/tray/TrayFoldersMenuButton.qml b/src/gui/tray/TrayFoldersMenuButton.qml index 546ea447b8062..00c878dcc0d84 100644 --- a/src/gui/tray/TrayFoldersMenuButton.qml +++ b/src/gui/tray/TrayFoldersMenuButton.qml @@ -124,7 +124,7 @@ HeaderButton { width: imageWidth height: imageHeight - anchors.verticalCenter: parent + anchors.verticalCenter: parent.verticalCenter } @@ -146,7 +146,7 @@ HeaderButton { cache: true source: "image://svgimage-custom-color/caret-down.svg/" + Style.currentUserHeaderTextColor - sourceSize: { + sourceSize { width: openLocalFolderButtonCaretIconLoader.imageWidth height: openLocalFolderButtonCaretIconLoader.imageHeight } diff --git a/src/gui/tray/UserLine.qml b/src/gui/tray/UserLine.qml index 8b5ebcebe19dc..a546cf5573072 100644 --- a/src/gui/tray/UserLine.qml +++ b/src/gui/tray/UserLine.qml @@ -141,9 +141,6 @@ AbstractButton { Layout.fillHeight: true flat: true - icon.source: "qrc:///client/theme/more.svg" - icon.color: palette.buttonText - Accessible.role: Accessible.ButtonMenu Accessible.name: qsTr("Account actions") Accessible.onPressAction: userMoreButtonMouseArea.clicked() @@ -155,6 +152,12 @@ AbstractButton { color: userMoreButton.hovered || userMoreButton.visualFocus ? palette.highlight : "transparent" } + contentItem: Image { + anchors.fill: parent + source: "image://svgimage-custom-color/more.svg" + "/" + palette.buttonText + fillMode: Image.PreserveAspectFit + } + AutoSizingMenu { id: userMoreButtonMenu closePolicy: Menu.CloseOnPressOutsideParent | Menu.CloseOnEscape diff --git a/src/gui/tray/Window.qml b/src/gui/tray/Window.qml index f14b054f8420b..dd21ccccaf6f5 100644 --- a/src/gui/tray/Window.qml +++ b/src/gui/tray/Window.qml @@ -312,22 +312,6 @@ ApplicationWindow { radius: Style.currentAccountButtonRadius } - contentItem: ScrollView { - id: accMenuScrollView - ScrollBar.horizontal.policy: ScrollBar.AlwaysOff - - data: WheelHandler { - target: accMenuScrollView.contentItem - } - ListView { - implicitHeight: contentHeight - model: accountMenu.contentModel - interactive: true - clip: true - currentIndex: accountMenu.currentIndex - } - } - onClosed: { // HACK: reload account Instantiator immediately by restting it - could be done better I guess // see also onVisibleChanged above @@ -640,7 +624,7 @@ ApplicationWindow { id: trayWindowTalkButton visible: UserModel.currentUser && UserModel.currentUser.serverHasTalk - icon.source: "qrc:///client/theme/white/talk-app.svg" + icon.source: "image://svgimage-custom-color/talk-app.svg" + "/" + Style.currentUserHeaderTextColor icon.color: Style.currentUserHeaderTextColor onClicked: UserModel.openCurrentAccountTalk() @@ -656,8 +640,7 @@ ApplicationWindow { HeaderButton { id: trayWindowAppsButton - icon.source: "qrc:///client/theme/white/more-apps.svg" - icon.color: Style.currentUserHeaderTextColor + icon.source: "image://svgimage-custom-color/more-apps.svg" + "/" + Style.currentUserHeaderTextColor onClicked: { if(appsMenuListView.count <= 0) { diff --git a/src/gui/tray/svgimageprovider.cpp b/src/gui/tray/svgimageprovider.cpp index ab57607004ac3..b8297b27e6f91 100644 --- a/src/gui/tray/svgimageprovider.cpp +++ b/src/gui/tray/svgimageprovider.cpp @@ -45,6 +45,10 @@ namespace Ui { return {}; } + if (size != nullptr && (size->width() <= 0 || size->height() <= 0)) { + *size = QSize(64, 64); + } + return IconUtils::createSvgImageWithCustomColor(pixmapName, pixmapColor, size, requestedSize); } } diff --git a/theme.qrc.in b/theme.qrc.in index e8d88fc8a1b0c..2405e4335afe6 100644 --- a/theme.qrc.in +++ b/theme.qrc.in @@ -238,5 +238,7 @@ theme/delete.svg theme/send.svg theme/call-notification.wav + theme/more-apps.svg + theme/talk-app.svg diff --git a/theme/more-apps.svg b/theme/more-apps.svg new file mode 100644 index 0000000000000..6b1fd877350e4 --- /dev/null +++ b/theme/more-apps.svg @@ -0,0 +1,55 @@ + + diff --git a/theme/talk-app.svg b/theme/talk-app.svg new file mode 100644 index 0000000000000..40e01fe81caea --- /dev/null +++ b/theme/talk-app.svg @@ -0,0 +1,40 @@ + + + + + +