Warning, /maui/pix/src/view_models/PixPic.qml is written in an unsupported language. File is not indexed.

0001 import QtQuick 2.14
0002 import QtQuick.Controls 2.14
0003 
0004 import org.mauikit.controls 1.3 as Maui
0005 
0006 Maui.GridBrowserDelegate
0007 {
0008     id: control
0009 
0010     property bool fit : false
0011 
0012     maskRadius: 0
0013     draggable: true
0014 
0015     tooltipText: model.url
0016     iconSizeHint: Maui.Style.iconSizes.small
0017 
0018     label1.text: model.title
0019 
0020     iconSource: "image-x-generic"
0021     imageSource: model.url
0022 
0023     fillMode: control.fit ? Image.PreserveAspectFit : Image.PreserveAspectCrop
0024     template.labelSizeHint: 40
0025     //    template.alignment: Qt.AlignLeft
0026     template.iconComponent: (model.format === "gif" || model.format === "avif" ) && control.hovered ? _animatedComponent :  _iconComponent
0027 
0028 
0029     Rectangle
0030     {
0031         visible: (model.format === "gif" || model.format === "avif" ) && !control.hovered
0032         anchors.centerIn: parent
0033         height: 32
0034         width: 32
0035         color: Maui.Theme.backgroundColor
0036         radius: height/2
0037         Maui.Icon
0038         {
0039             source: "media-playback-start"
0040             color : Maui.Theme.textColor
0041             height: 16
0042             width: 16
0043             anchors.centerIn: parent
0044         }
0045     }
0046 
0047     Component
0048     {
0049         id: _iconComponent
0050         Maui.IconItem
0051         {
0052             id: _iconItem
0053             iconSource: control.iconSource
0054             imageSource: control.imageSource
0055 
0056             highlighted: control.isCurrentItem
0057             hovered: control.hovered
0058             smooth: control.smooth
0059             iconSizeHint: control.iconSizeHint
0060             imageSizeHint: control.imageSizeHint
0061 
0062             fillMode: control.fillMode
0063             maskRadius: control.maskRadius
0064 
0065             imageWidth: control.imageWidth
0066             imageHeight: control.imageHeight
0067 
0068             isMask: true
0069             image.autoTransform: true
0070             Component.onCompleted: control.label2.text =  Qt.binding(function () { return _iconItem.image.implicitWidth + " x " + _iconItem.image.implicitHeight})
0071 
0072         }
0073     }
0074 
0075     Component
0076     {
0077         id: _animatedComponent
0078         AnimatedImage
0079         {
0080             source: control.imageSource
0081             fillMode:  control.fillMode
0082             autoTransform: true
0083             asynchronous: true
0084             onStatusChanged: playing = (status == AnimatedImage.Ready)
0085             horizontalAlignment: Qt.AlignHCenter
0086             verticalAlignment: Qt.AlignVCenter
0087         }
0088     }
0089 }