[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [plasma-workspace] wallpapers/image/imagepackage/contents/ui: update the wallpaper dialog to the new
From: Marco Martin <null () kde ! org>
Date: 2018-04-16 14:58:39
Message-ID: E1f85aZ-00012c-TG () code ! kde ! org
[Download RAW message or body]
Git commit c66e998d7b6c5928effc2db2b9a96118110bdbcd by Marco Martin.
Committed on 16/04/2018 at 14:58.
Pushed by mart into branch 'master'.
update the wallpaper dialog to the new design
Summary:
update the wallpaper dialog to the same design as the new KCMS
for consistency
Test Plan:
dialog loads with proper wallpaper selected, and both clicking on one
works and the attached toolbuttons work too
Reviewers: #plasma, #vdg, davidedmundson, broulik
Reviewed By: #plasma, broulik
Subscribers: davidedmundson, broulik, abetts, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D12148
M +75 -163 wallpapers/image/imagepackage/contents/ui/WallpaperDelegate.qml
M +14 -64 wallpapers/image/imagepackage/contents/ui/config.qml
https://commits.kde.org/plasma-workspace/c66e998d7b6c5928effc2db2b9a96118110bdbcd
diff --git a/wallpapers/image/imagepackage/contents/ui/WallpaperDelegate.qml \
b/wallpapers/image/imagepackage/contents/ui/WallpaperDelegate.qml index \
dcaf0c7b..f4e8e5b0 100644
--- a/wallpapers/image/imagepackage/contents/ui/WallpaperDelegate.qml
+++ b/wallpapers/image/imagepackage/contents/ui/WallpaperDelegate.qml
@@ -22,190 +22,102 @@ import QtQuick.Controls.Private 1.0
import QtGraphicalEffects 1.0
import org.kde.kquickcontrolsaddons 2.0
import org.kde.plasma.components 2.0 as PlasmaComponents
+import org.kde.kirigami 2.4 as Kirigami
+import org.kde.kcm 1.1 as KCM
-MouseArea {
+KCM.GridDelegate {
id: wallpaperDelegate
- width: wallpapersGrid.cellWidth
- height: wallpapersGrid.cellHeight
-
+
property alias color: backgroundRect.color
property bool selected: (wallpapersGrid.currentIndex == index)
opacity: model.pendingDeletion ? 0.5 : 1
+
+ toolTip: model.author.length > 0 ? i18nd("plasma_applet_org.kde.image", "%1 by \
%2", model.display, model.author) : model.display
hoverEnabled: true
- GridView.onIsCurrentItemChanged: {
- if (GridView.isCurrentItem) {
- cfg_Image = model.path
- }
- }
-
- //note: this *doesn't* use system colors since it represent a
- //skeymorphic photograph rather than a widget
- Rectangle {
- id: background
- color: "white"
- anchors {
- fill: parent
- margins: units.smallSpacing
- }
- opacity: 0.8
- Rectangle {
- id: backgroundRect
- color: cfg_Color
- anchors {
- fill: parent
- margins: units.smallSpacing * 2
- }
- QIconItem {
- anchors.centerIn: parent
- width: units.iconSizes.large
- height: width
- icon: "view-preview"
- visible: !walliePreview.visible
- }
-
- QPixmapItem {
- id: blurBackgroundSource
- visible: cfg_Blur
- anchors.fill: parent
- smooth: true
- pixmap: model.screenshot
- fillMode: QPixmapItem.PreserveAspectCrop
- }
-
- FastBlur {
- visible: cfg_Blur
- anchors.fill: parent
- source: blurBackgroundSource
- radius: 4
- }
-
- QPixmapItem {
- id: walliePreview
- anchors.fill: parent
- visible: model.screenshot != null
- smooth: true
- pixmap: model.screenshot
- fillMode: {
- if (cfg_FillMode == Image.Stretch) {
- return QPixmapItem.Stretch;
- } else if (cfg_FillMode == Image.PreserveAspectFit) {
- return QPixmapItem.PreserveAspectFit;
- } else if (cfg_FillMode == Image.PreserveAspectCrop) {
- return QPixmapItem.PreserveAspectCrop;
- } else if (cfg_FillMode == Image.Tile) {
- return QPixmapItem.Tile;
- } else if (cfg_FillMode == Image.TileVertically) {
- return QPixmapItem.TileVertically;
- } else if (cfg_FillMode == Image.TileHorizontally) {
- return QPixmapItem.TileHorizontally;
- }
- return QPixmapItem.PreserveAspectFit;
- }
- }
- PlasmaComponents.ToolButton {
- anchors {
- top: parent.top
- right: parent.right
- margins: units.smallSpacing
- }
- iconSource: "list-remove"
- tooltip: i18nd("plasma_wallpaper_org.kde.image", "Remove wallpaper")
- flat: false
- visible: model.removable && !model.pendingDeletion
- onClicked: {
- imageWallpaper.wallpaperModel.setPendingDeletion(index, true);
- if (wallpapersGrid.currentIndex === index) {
- wallpapersGrid.currentIndex = (index + 1) % \
wallpapersGrid.count;
- }
- }
- opacity: wallpaperDelegate.containsMouse ? 1 : 0
- Behavior on opacity {
- PropertyAnimation {
- duration: units.longDuration
- easing.type: Easing.OutQuad
- }
- }
- }
-
- PlasmaComponents.ToolButton {
- anchors {
- top: parent.top
- left: parent.left
- margins: units.smallSpacing
- }
- iconSource: "document-open-folder"
- tooltip: i18nd("plasma_wallpaper_org.kde.image", "Open Containing \
Folder")
- flat: false
- onClicked: imageWallpaper.wallpaperModel.openContainingFolder(index)
- opacity: wallpaperDelegate.containsMouse ? 1 : 0
- Behavior on opacity {
- PropertyAnimation {
- duration: units.longDuration
- easing.type: Easing.OutQuad
- }
- }
- }
-
- PlasmaComponents.ToolButton {
- anchors {
- top: parent.top
- right: parent.right
- margins: units.smallSpacing
- }
- iconSource: "edit-undo"
- tooltip: i18nd("plasma_wallpaper_org.kde.image", "Restore \
wallpaper")
- flat: false
- visible: model.pendingDeletion
- onClicked: imageWallpaper.wallpaperModel.setPendingDeletion(index, \
!model.pendingDeletion)
- opacity: wallpaperDelegate.containsMouse ? 1 : 0
- Behavior on opacity {
- PropertyAnimation {
- duration: units.longDuration
- easing.type: Easing.OutQuad
- }
+ actions: [
+ Kirigami.Action {
+ icon.name: "document-open-folder"
+ tooltip: i18nd("plasma_applet_org.kde.image", "Open Containing Folder")
+ onTriggered: imageWallpaper.wallpaperModel.openContainingFolder(index)
+ },
+ Kirigami.Action {
+ icon.name: "edit-undo"
+ visible: model.pendingDeletion
+ tooltip: i18nd("plasma_applet_org.kde.image", "Restore wallpaper")
+ onTriggered: imageWallpaper.wallpaperModel.setPendingDeletion(index, \
!model.pendingDeletion) + },
+ Kirigami.Action {
+ icon.name: "edit-delete"
+ tooltip: i18nd("plasma_applet_org.kde.image", "Remove Wallpaper")
+ visible: model.removable && !model.pendingDeletion
+ onTriggered: {
+ imageWallpaper.wallpaperModel.setPendingDeletion(index, true);
+ if (wallpapersGrid.currentIndex === index) {
+ wallpapersGrid.currentIndex = (index + 1) % \
wallpapersGrid.count; }
}
}
- }
-
- Rectangle {
- opacity: selected ? 1.0 : 0
- anchors.fill: background
- border.width: units.smallSpacing * 2
- border.color: syspal.highlight
- color: "transparent"
- Behavior on opacity {
- PropertyAnimation {
- duration: units.longDuration
- easing.type: Easing.OutQuad
- }
+ ]
+
+ thumbnail: Rectangle {
+ id: backgroundRect
+ color: cfg_Color
+ anchors.fill: parent
+
+ QIconItem {
+ anchors.centerIn: parent
+ width: units.iconSizes.large
+ height: width
+ icon: "view-preview"
+ visible: !walliePreview.visible
}
- }
+ QPixmapItem {
+ id: blurBackgroundSource
+ visible: cfg_Blur
+ anchors.fill: parent
+ smooth: true
+ pixmap: model.screenshot
+ fillMode: QPixmapItem.PreserveAspectCrop
+ }
- Timer {
- interval: 1000 // FIXME TODO: Use platform value for tooltip activation \
delay.
-
- running: wallpaperDelegate.containsMouse && !pressed && model.display
+ FastBlur {
+ visible: cfg_Blur
+ anchors.fill: parent
+ source: blurBackgroundSource
+ radius: 4
+ }
- onTriggered: {
- if (model.author) {
- Tooltip.showText(wallpaperDelegate, \
Qt.point(wallpaperDelegate.mouseX, wallpaperDelegate.mouseY),
- i18nd("plasma_wallpaper_org.kde.image", "%1 by %2", \
model.display, model.author));
- } else {
- Tooltip.showText(wallpaperDelegate, \
Qt.point(wallpaperDelegate.mouseX, wallpaperDelegate.mouseY),
- model.display);
+ QPixmapItem {
+ id: walliePreview
+ anchors.fill: parent
+ visible: model.screenshot != null
+ smooth: true
+ pixmap: model.screenshot
+ fillMode: {
+ if (cfg_FillMode == Image.Stretch) {
+ return QPixmapItem.Stretch;
+ } else if (cfg_FillMode == Image.PreserveAspectFit) {
+ return QPixmapItem.PreserveAspectFit;
+ } else if (cfg_FillMode == Image.PreserveAspectCrop) {
+ return QPixmapItem.PreserveAspectCrop;
+ } else if (cfg_FillMode == Image.Tile) {
+ return QPixmapItem.Tile;
+ } else if (cfg_FillMode == Image.TileVertically) {
+ return QPixmapItem.TileVertically;
+ } else if (cfg_FillMode == Image.TileHorizontally) {
+ return QPixmapItem.TileHorizontally;
+ }
+ return QPixmapItem.PreserveAspectFit;
}
}
}
onClicked: {
- wallpapersGrid.currentIndex = index
+ cfg_Image = model.path;
wallpapersGrid.forceActiveFocus();
}
-
- onExited: Tooltip.hideText()
}
diff --git a/wallpapers/image/imagepackage/contents/ui/config.qml \
b/wallpapers/image/imagepackage/contents/ui/config.qml index 1faf667d..a1332909 \
100644
--- a/wallpapers/image/imagepackage/contents/ui/config.qml
+++ b/wallpapers/image/imagepackage/contents/ui/config.qml
@@ -19,6 +19,7 @@
import QtQuick 2.5
import QtQuick.Controls 1.0 as QtControls
+import QtQuick.Controls 2.3 as QtControls2
import QtQuick.Dialogs 1.1 as QtDialogs
import QtQuick.Layouts 1.0
import QtQuick.Window 2.0 // for Screen
@@ -28,6 +29,7 @@ import org.kde.plasma.wallpapers.image 2.0 as Wallpaper
import org.kde.kquickcontrolsaddons 2.0
import org.kde.kconfig 1.0 // for KAuthorized
import org.kde.draganddrop 2.0 as DragDrop
+import org.kde.kcm 1.1 as KCM
ColumnLayout {
id: root
@@ -249,10 +251,11 @@ ColumnLayout {
text: i18nd("plasma_wallpaper_org.kde.image","Seconds")
}
}
- QtControls.ScrollView {
+ QtControls2.ScrollView {
+ id: foldersScroll
Layout.fillHeight: true;
Layout.fillWidth: true
- frameVisible: true
+ Component.onCompleted: foldersScroll.background.visible = true;
ListView {
id: slidePathsView
anchors.margins: 4
@@ -278,70 +281,17 @@ ColumnLayout {
Component {
id: thumbnailsComponent
- QtControls.ScrollView {
+ KCM.GridView {
+ id: wallpapersGrid
anchors.fill: parent
- frameVisible: true
- highlightOnFocus: true;
-
- Component.onCompleted: {
- //replace the current binding on the scrollbar that makes it visible \
when content doesn't fit
-
- //otherwise we adjust gridSize when we hide the vertical scrollbar \
and
- //due to layouting that can make everything adjust which changes the \
contentWidth/height which
- //changes our scrollbars and we continue being stuck in a loop
-
- //looks better to not have everything resize anyway.
- //BUG: 336301
- __verticalScrollBar.visible = true
- }
-
- GridView {
- id: wallpapersGrid
- model: imageWallpaper.wallpaperModel
- currentIndex: -1
- focus: true
-
- cellWidth: Math.floor(wallpapersGrid.width / \
Math.max(Math.floor(wallpapersGrid.width / (units.gridUnit*12)), 3))
- cellHeight: Math.round(cellWidth / (imageWallpaper.targetSize.width \
/ imageWallpaper.targetSize.height))
-
- anchors.margins: 4
- boundsBehavior: Flickable.StopAtBounds
-
- delegate: WallpaperDelegate {
- color: cfg_Color
- }
-
- onContentHeightChanged: {
- wallpapersGrid.currentIndex = \
imageWallpaper.wallpaperModel.indexOf(cfg_Image);
- wallpapersGrid.positionViewAtIndex(wallpapersGrid.currentIndex, \
GridView.Visible)
- }
-
- Keys.onPressed: {
- if (count < 1) {
- return;
- }
-
- if (event.key == Qt.Key_Home) {
- currentIndex = 0;
- } else if (event.key == Qt.Key_End) {
- currentIndex = count - 1;
- }
- }
-
- Keys.onLeftPressed: moveCurrentIndexLeft()
- Keys.onRightPressed: moveCurrentIndexRight()
- Keys.onUpPressed: moveCurrentIndexUp()
- Keys.onDownPressed: moveCurrentIndexDown()
-
- Connections {
- target: imageWallpaper
- onCustomWallpaperPicked: {
- wallpapersGrid.currentIndex = 0;
- cfg_Image = path;
- }
- }
-
+ //that min is needed as the module will be populated in an async way
+ //and only on demand so we can't ensure it already exists
+ view.currentIndex: \
Math.min(imageWallpaper.wallpaperModel.indexOf(cfg_Image), \
imageWallpaper.wallpaperModel.count-1) + //kill the space for label under \
thumbnails + view.model: imageWallpaper.wallpaperModel
+ view.delegate: WallpaperDelegate {
+ color: cfg_Color
}
}
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic