Warning, /plasma/plasma-workspace/wallpapers/image/imagepackage/contents/ui/WallpaperDelegate.qml is written in an unsupported language. File is not indexed.
0001 /* 0002 SPDX-FileCopyrightText: 2013 Marco Martin <mart@kde.org> 0003 SPDX-FileCopyrightText: 2014 Sebastian Kügler <sebas@kde.org> 0004 0005 SPDX-License-Identifier: GPL-2.0-or-later 0006 */ 0007 0008 import QtQuick 0009 import QtQuick.Controls as QtControls2 0010 import Qt5Compat.GraphicalEffects 0011 0012 import org.kde.kirigami as Kirigami 0013 import org.kde.kquickcontrolsaddons 0014 import org.kde.kcmutils as KCM 0015 0016 KCM.GridDelegate { 0017 id: wallpaperDelegate 0018 0019 property alias color: backgroundRect.color 0020 opacity: model.pendingDeletion ? 0.5 : 1 0021 scale: index, 1 // Workaround for https://bugreports.qt.io/browse/QTBUG-107458 0022 0023 text: model.display 0024 subtitle: model.author 0025 0026 hoverEnabled: true 0027 0028 actions: [ 0029 Kirigami.Action { 0030 icon.name: "document-open-folder" 0031 tooltip: i18nd("plasma_wallpaper_org.kde.image", "Open Containing Folder") 0032 onTriggered: imageModel.openContainingFolder(index) 0033 }, 0034 Kirigami.Action { 0035 icon.name: "edit-undo" 0036 visible: model.pendingDeletion 0037 tooltip: i18nd("plasma_wallpaper_org.kde.image", "Restore wallpaper") 0038 onTriggered: model.pendingDeletion = false 0039 }, 0040 Kirigami.Action { 0041 icon.name: "edit-delete" 0042 tooltip: i18nd("plasma_wallpaper_org.kde.image", "Remove Wallpaper") 0043 visible: model.removable && !model.pendingDeletion && configDialog.currentWallpaper == "org.kde.image" 0044 onTriggered: { 0045 model.pendingDeletion = true; 0046 0047 if (wallpapersGrid.view.currentIndex === index) { 0048 const newIndex = (index + 1) % (imageModel.count - 1); 0049 wallpapersGrid.view.itemAtIndex(newIndex).clicked(); 0050 } 0051 root.configurationChanged(); // BUG 438585 0052 } 0053 } 0054 ] 0055 0056 thumbnail: Rectangle { 0057 id: backgroundRect 0058 color: cfg_Color 0059 anchors.fill: parent 0060 0061 Kirigami.Icon { 0062 anchors.centerIn: parent 0063 width: Kirigami.Units.iconSizes.large 0064 height: width 0065 source: "view-preview" 0066 visible: !walliePreview.visible 0067 } 0068 0069 QPixmapItem { 0070 id: blurBackgroundSource 0071 visible: cfg_Blur 0072 anchors.fill: parent 0073 smooth: true 0074 pixmap: model.screenshot 0075 fillMode: QPixmapItem.PreserveAspectCrop 0076 } 0077 0078 FastBlur { 0079 visible: cfg_Blur 0080 anchors.fill: parent 0081 source: blurBackgroundSource 0082 radius: 4 0083 } 0084 0085 QPixmapItem { 0086 id: walliePreview 0087 anchors.fill: parent 0088 visible: model.screenshot !== null 0089 smooth: true 0090 pixmap: model.screenshot 0091 fillMode: { 0092 if (cfg_FillMode === Image.Stretch) { 0093 return QPixmapItem.Stretch; 0094 } else if (cfg_FillMode === Image.PreserveAspectFit) { 0095 return QPixmapItem.PreserveAspectFit; 0096 } else if (cfg_FillMode === Image.PreserveAspectCrop) { 0097 return QPixmapItem.PreserveAspectCrop; 0098 } else if (cfg_FillMode === Image.Tile) { 0099 return QPixmapItem.Tile; 0100 } else if (cfg_FillMode === Image.TileVertically) { 0101 return QPixmapItem.TileVertically; 0102 } else if (cfg_FillMode === Image.TileHorizontally) { 0103 return QPixmapItem.TileHorizontally; 0104 } 0105 return QPixmapItem.PreserveAspectFit; 0106 } 0107 } 0108 QtControls2.CheckBox { 0109 visible: configDialog.currentWallpaper === "org.kde.slideshow" 0110 anchors.right: parent.right 0111 anchors.top: parent.top 0112 checked: visible ? model.checked : false 0113 onToggled: model.checked = checked 0114 } 0115 0116 Behavior on color { 0117 ColorAnimation { 0118 duration: Kirigami.Units.longDuration 0119 easing.type: Easing.InOutQuad 0120 } 0121 } 0122 } 0123 0124 Behavior on opacity { 0125 OpacityAnimator { 0126 duration: Kirigami.Units.longDuration 0127 easing.type: Easing.InOutQuad 0128 } 0129 } 0130 0131 onClicked: { 0132 if (configDialog.currentWallpaper === "org.kde.image") { 0133 cfg_Image = model.packageName || model.path; 0134 if (typeof wallpaper !== "undefined") { 0135 wallpaper.configuration.PreviewImage = cfg_Image; 0136 } 0137 } 0138 GridView.currentIndex = index; 0139 } 0140 }