chore: Unused PopupMenu removed
This commit is contained in:
parent
3623807f62
commit
affaf6099f
|
@ -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}
|
||||
}
|
||||
##^##*/
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue