diff --git a/ui/imports/shared/popups/PopupMenu.qml b/ui/imports/shared/popups/PopupMenu.qml deleted file mode 100644 index 4928bd1436..0000000000 --- a/ui/imports/shared/popups/PopupMenu.qml +++ /dev/null @@ -1,163 +0,0 @@ -import QtQuick 2.13 -import QtQuick.Controls 2.13 -import QtGraphicalEffects 1.13 - -import utils 1.0 -import "../" -import "../panels" - -Menu { - // This is to add icons to submenu items. QML doesn't have a way to add icons to those sadly so this is a workaround - property var subMenuIcons: [] - property int paddingSize: 8 - property bool hasArrow: true - closePolicy: Popup.CloseOnPressOutside | Popup.CloseOnReleaseOutside | Popup.CloseOnEscape - id: popupMenu - topPadding: paddingSize - bottomPadding: paddingSize - - property string overrideTextColor: "" - - delegate: MenuItem { - property color textColor: popupMenu.overrideTextColor !== "" ? popupMenu.overrideTextColor : (this.action.icon.color.toString() !== "#00000000" ? this.action.icon.color : Style.current.textColor) - property color hoverColor: popupMenuItem.action.icon.color === Style.current.danger ? Style.current.buttonWarnBackgroundColor : Style.current.backgroundHover - property int subMenuIndex: { - if (!this.subMenu) { - return -1 - } - - let child; - let index = 0; - for (let i = 0; i < popupMenu.count; i++) { - child = popupMenu.itemAt(i) - if (child.subMenu) { - if (child === this) { - return index - } else { - index++; - } - } - } - return index - } - - enabled: { - if (this.subMenu) { - return this.subMenu.enabled - } - return this.action.enabled - } - action: Action{} // Meant to be overwritten - id: popupMenuItem - implicitWidth: 200 - implicitHeight: 34 - font.pixelSize: 13 - font.weight: checked ? Font.Medium : Font.Normal - icon.color: ((popupMenuItem.action.assetSettings !== undefined) && (popupMenuItem.action.assetSettings.color !== "#00000000")) ? popupMenuItem.action.assetSettings.color : Style.current.blue - icon.source: this.subMenu ? subMenuIcons[subMenuIndex].source : popupMenuItem.action.icon.source - icon.width: this.subMenu ? subMenuIcons[subMenuIndex].width : popupMenuItem.action.icon.width - icon.height: this.subMenu ? subMenuIcons[subMenuIndex].height : popupMenuItem.action.icon.height - visible: enabled - height: visible ? popupMenuItem.implicitHeight : 0 - - arrow: SVGImage { - source: Style.svg("caret") - rotation: -90 - anchors.verticalCenter: parent.verticalCenter - anchors.right: parent.right - anchors.rightMargin: 12 - width: 9 - fillMode: Image.PreserveAspectFit - visible: popupMenuItem.subMenu && popupMenuItem.subMenu.enabled - - ColorOverlay { - anchors.fill: parent - source: parent - color: popupMenuItem.textColor - } - } - - // FIXME the icons looks very pixelated on Linux for some reason. Using smooth, mipmap, etc doesn't fix it - indicator: Item { - visible: !!popupMenuItem.icon.source.toString() - width: !isNaN(popupMenuItem.icon.width) ? popupMenuItem.icon.width : 25 - height: !isNaN(popupMenuItem.icon.height) ? popupMenuItem.icon.height : 25 - anchors.left: parent.left - anchors.leftMargin: Style.current.padding - anchors.verticalCenter: parent.verticalCenter - - Image { - id: menuIcon - source: popupMenuItem.icon.source - visible: false - width: parent.width - height: parent.width - sourceSize.width: width - sourceSize.height: height - } - - ColorOverlay { - anchors.fill: menuIcon - source: menuIcon - smooth: true - color: (popupMenuItem.action.icon.color != "#00000000" ? popupMenuItem.action.icon.color : Style.current.primaryMenuItemHover) - } - } - - contentItem: StyledText { - anchors.left: popupMenuItem.indicator.right - anchors.leftMargin: popupMenu.paddingSize - text: popupMenuItem.text - font: popupMenuItem.font - color: popupMenuItem.textColor - horizontalAlignment: Text.AlignLeft - verticalAlignment: Text.AlignVCenter - opacity: enabled ? 1.0 : 0.3 - elide: Text.ElideRight - } - - background: Rectangle { - implicitWidth: 220 - implicitHeight: enabled ? 24 : 0 - color: popupMenuItem.hovered ? popupMenuItem.hoverColor : "transparent" - } - MouseArea { - cursorShape: Qt.PointingHandCursor - anchors.fill: parent - onPressed: mouse.accepted = false - } - } - - background: Item { - id: bgPopupMenu - implicitWidth: 220 - - Rectangle { - id: bgPopupMenuContent - implicitWidth: bgPopupMenu.width - implicitHeight: bgPopupMenu.height - color: Style.current.modalBackground - radius: 8 - layer.enabled: true - layer.effect: DropShadow{ - width: bgPopupMenuContent.width - height: bgPopupMenuContent.height - x: bgPopupMenuContent.x - visible: bgPopupMenuContent.visible - source: bgPopupMenuContent - horizontalOffset: 0 - verticalOffset: 4 - radius: 12 - samples: 25 - spread: 0.2 - color: "#22000000" - } - } - } -} - -/*##^## -Designer { - D{i:0;autoSize:true;height:480;width:640} -} -##^##*/ diff --git a/ui/imports/shared/popups/qmldir b/ui/imports/shared/popups/qmldir index aee8725b43..2fcddc7773 100644 --- a/ui/imports/shared/popups/qmldir +++ b/ui/imports/shared/popups/qmldir @@ -21,7 +21,6 @@ ModalPopup 1.0 ModalPopup.qml NicknamePopup 1.0 NicknamePopup.qml NoPermissionsToJoinPopup 1.0 NoPermissionsToJoinPopup.qml OutgoingContactVerificationRequestPopup 1.0 OutgoingContactVerificationRequestPopup.qml -PopupMenu 1.0 PopupMenu.qml ProfileDialog 1.0 ProfileDialog.qml RemoveAccountConfirmationPopup 1.0 RemoveAccountConfirmationPopup.qml RemoveContactPopup 1.0 RemoveContactPopup.qml