Warning, /maui/mauikit/src/controls.6/GalleryRollItem.qml is written in an unsupported language. File is not indexed.

0001 import QtQuick
0002 import QtQuick.Controls
0003 
0004 import org.mauikit.controls 1.3 as Maui
0005 import Qt5Compat.GraphicalEffects
0006 
0007 /**
0008  * @inherit GridBrowserDelegate
0009  * @since org.mauikit.controls
0010  *  
0011  *  @brief A custom item to be used as a delegate in the browsing views or as a standalone card. This element presents a group of images in a carousel form.
0012  *  
0013  *  This control inherits all properties from the MauiKit GridBrowserDelegate control. As such, this can have two labels, for a title and a message.
0014  *  @see GridBrowserDelegate#label1
0015  *  @see GridBrowserDelegate#label2
0016  *  
0017  *  The header part of this control, the actual carousel of images, is handled by a GalleryRollTemplate.
0018  *  @see GalleryRollTemplate
0019  *  
0020  *    @image html Delegates/galleryrollitem.png 
0021  * 
0022  *    @code
0023  *    Maui.GridBrowser
0024  *    {
0025  *        anchors.fill: parent
0026  *        model: 30
0027  * 
0028  *        itemSize: 200
0029  * 
0030  *        delegate: Item
0031  *        {
0032  *            width: GridView.view.cellWidth
0033  *            height: GridView.view.cellHeight
0034  * 
0035  *            Maui.GalleryRollItem
0036  *            {
0037  *                anchors.fill: parent
0038  *                anchors.margins: Maui.Style.space.small
0039  * 
0040  *                label1.text: "Demo"
0041  *                label2.text: index
0042  *                images: index %2 === 0 ? ['/home/camiloh/Downloads/street-1234360.jpg', '/home/camiloh/Downloads/flat-coated-retriever-1339154.jpg', '/home/camiloh/Downloads/5911329.jpeg'] : ['/home/camiloh/Downloads/street-1234360.jpg', '/home/camiloh/Downloads/flat-coated-retriever-1339154.jpg', '/home/camiloh/Downloads/5911329.jpeg', '/home/camiloh/Pictures/LastLights_by_Mushcube/LastLightsScreenPreview.png']
0043  *            }
0044  *        }
0045  *    }
0046  *    @endcode
0047  * 
0048  *    <a href="https://invent.kde.org/maui/mauikit/-/blob/qt6-2/examples/GalleryRollItem.qml">You can find a more complete example at this link.</a>
0049  * 
0050  */
0051 Maui.GridBrowserDelegate
0052 {
0053     id: control
0054     
0055     /**
0056      * @brief Whether the images should be saved in the cache, to reduce loading times.
0057      * By default this is set to `true`.
0058      */
0059     property bool cache : true
0060     
0061     
0062     /**
0063      * @brief A list of images to be used. This will be use as the model.
0064      */
0065     property var images : []
0066     
0067     /**
0068      * @brief A callback function to manage what image is positioned. This callback function is called for each image source set in the model `images`, so the final source can be modified. This function should return a - new or modified - image source URL.   
0069      *
0070      * As an example, if the `images` model looks like: `["page1", "page2", "page3"]` - which are not file URLs, this callback function can be use to map each individual source to an actual file URL. 
0071      * @code
0072      * images: ["page1", "page2", "page3"]
0073      * cb : (source) => 
0074      * {
0075      *   return mapSourceToImageFile(source) //here the "page1" could be mapped to "file:///some/path/to/image1.jpg" and return this new source to be use.
0076      * }    
0077      * @endcode
0078      */
0079     property var cb
0080     
0081     /**
0082      * @brief The orientation of the transition of the images. By default this is set to horizontal using `ListView.Horizontal`.
0083      * Possible values are:
0084      * - ListView.Horizontal
0085      * - ListView.Vertical
0086      */
0087     property int orientation : Qt.Horizontal
0088     
0089     label1.font.weight: Font.DemiBold
0090     label1.font.pointSize: Maui.Style.fontSizes.big
0091     template.labelSizeHint: 32
0092     template.alignment: Qt.AlignLeft
0093     
0094     maskRadius: radius
0095     
0096     template.iconComponent: Maui.GalleryRollTemplate
0097     {      
0098         radius: control.radius
0099         cache: control.cache
0100         images: control.images
0101         cb: control.cb
0102         fillMode: control.fillMode
0103         running: !control.hovered && !control.checked
0104         imageWidth: control.imageWidth
0105         imageHeight: control.imageHeight
0106         
0107         corners
0108         {
0109             topLeftRadius: control.radius
0110             topRightRadius: control.radius
0111             bottomLeftRadius: control.radius
0112             bottomRightRadius: control.radius
0113         }
0114     }
0115 }