Warning, /maui/vvave/src/widgets/FloatingDisk.qml is written in an unsupported language. File is not indexed.
0001 import QtQuick 2.15
0002 import QtQml 2.15
0003 import QtQuick.Controls 2.15
0004
0005 import QtGraphicalEffects 1.0
0006
0007 import org.mauikit.controls 1.3 as Maui
0008
0009 Control
0010 {
0011 id: control
0012
0013 parent: ApplicationWindow.overlay
0014 z: parent.z + 1
0015
0016 Maui.Theme.inherit: false
0017 Maui.Theme.colorSet: Maui.Theme.Complementary
0018
0019 visible: opacity > 0
0020
0021 scale: root.focusView ? 2 : 1
0022
0023 implicitHeight: _mouseArea.implicitHeight + topPadding + bottomPadding
0024 implicitWidth: _mouseArea.implicitWidth + leftPadding + rightPadding
0025
0026 padding: Maui.Style.space.tiny
0027
0028 ToolTip.delay: 1000
0029 ToolTip.timeout: 5000
0030 ToolTip.visible: _mouseArea.containsMouse && !Maui.Handy.isMobile
0031 ToolTip.text: root.title
0032
0033 opacity: root.focusView ? 0 : 1
0034
0035 property int radius: root.focusView ? Maui.Style.radiusV : Math.min(width, height)
0036
0037 Behavior on radius
0038 {
0039 NumberAnimation { duration: 200; easing.type: Easing.OutCubic }
0040 }
0041
0042 Behavior on opacity
0043 {
0044 NumberAnimation { duration: 200; easing.type: Easing.OutCubic }
0045 }
0046
0047 Behavior on scale
0048 {
0049 NumberAnimation { duration: 200; easing.type: Easing.OutCubic }
0050 }
0051
0052 y: root.height - control.implicitHeight - Maui.Style.space.medium - _mainPage.footerContainer.implicitHeight
0053 x: root.width - control.implicitWidth - Maui.Style.space.medium
0054
0055 // Binding on x
0056 // {
0057 // when: !_mouseArea.pressed
0058 // value: control.x
0059 // restoreMode: Binding.RestoreBindingOrValue
0060 // delayed: true
0061 // }
0062
0063 // Binding on y
0064 // {
0065 // when: !_mouseArea.pressed
0066 // value: control.y
0067 // restoreMode: Binding.RestoreBindingOrValue
0068 // delayed: true
0069 // }
0070
0071 background: Rectangle
0072 {
0073 id: diskBg
0074 color: "white"
0075 radius: control.radius
0076
0077 layer.enabled: true
0078 layer.effect: DropShadow
0079 {
0080 horizontalOffset: 0
0081 verticalOffset: 0
0082 radius: _mouseArea.containsPress ? 5.0 :8.0
0083 samples: 17
0084 color: "#80000000"
0085 }
0086 }
0087
0088 contentItem: MouseArea
0089 {
0090 id: _mouseArea
0091
0092 implicitHeight: Maui.Style.iconSizes.large * (_mouseArea.containsPress ? 1.19 : 1.2)
0093 implicitWidth: implicitHeight
0094
0095 hoverEnabled: true
0096
0097 drag.target: control
0098 drag.axis: Drag.XAndYAxis
0099
0100 drag.minimumX: 0
0101 drag.maximumX: root.width - control.width
0102
0103 drag.minimumY: 0
0104 drag.maximumY: root.height - control.height
0105
0106 onClicked: toggleFocusView()
0107 // onPressAndHold: toggleMiniMode()
0108
0109 Image
0110 {
0111 id: miniArtwork
0112 focus: true
0113 anchors.fill: parent
0114 source: "image://artwork/album:"+currentTrack.artist + ":"+ currentTrack.album
0115 fillMode: Image.PreserveAspectFit
0116
0117 layer.enabled: true
0118 layer.effect: OpacityMask
0119 {
0120 maskSource: Rectangle
0121 {
0122 height: miniArtwork.height
0123 width: miniArtwork.width
0124 radius: control.radius
0125 }
0126 }
0127 }
0128 }
0129
0130 RotationAnimator on rotation
0131 {
0132 from: 0
0133 to: 360
0134 duration: 5000
0135 loops: Animation.Infinite
0136 running: isPlaying && Maui.Style.enableEffects
0137 }
0138 }