diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -48,7 +48,7 @@ URL "https://commits.kde.org/attica" TYPE REQUIRED ) -find_package(KF5Kirigami2 2.1.0) +find_package(KF5Kirigami2 2.12.0) set_package_properties(KF5Kirigami2 PROPERTIES DESCRIPTION "KDE's lightweight user interface framework for mobile and convergent applications" URL "https://techbase.kde.org/Kirigami" diff --git a/src/qtquick/qml/private/EntryScreenshots.qml b/src/qtquick/qml/private/EntryScreenshots.qml --- a/src/qtquick/qml/private/EntryScreenshots.qml +++ b/src/qtquick/qml/private/EntryScreenshots.qml @@ -23,7 +23,7 @@ import QtQuick.Layouts 1.11 import QtGraphicalEffects 1.11 -import org.kde.kirigami 2.5 as Kirigami +import org.kde.kirigami 2.12 as Kirigami Flickable { id: root @@ -103,6 +103,8 @@ id: screenshotsLayout height: root.contentHeight spacing: Kirigami.Units.largeSpacing + leftPadding: spacing + rightPadding: spacing focus: overlay.visible Keys.onLeftPressed: if (leftAction.visible) leftAction.trigger() @@ -114,8 +116,9 @@ delegate: MouseArea { readonly property url imageSource: modelData readonly property real proportion: thumbnail.sourceSize.width>1 ? thumbnail.sourceSize.height/thumbnail.sourceSize.width : 1 + anchors.verticalCenter: parent.verticalCenter width: Math.max(50, height/proportion) - height: screenshotsLayout.height + height: screenshotsLayout.height - 2 * Kirigami.Units.largeSpacing hoverEnabled: true cursorShape: Qt.PointingHandCursor @@ -125,15 +128,16 @@ overlay.open() } - DropShadow { - source: thumbnail + Kirigami.ShadowedRectangle { anchors.fill: thumbnail - verticalOffset: Kirigami.Units.largeSpacing - horizontalOffset: 0 - radius: 12.0 - samples: 25 - color: Kirigami.Theme.disabledTextColor - cached: true + width: thumbnail.width; + height: thumbnail.height; + Kirigami.Theme.inherit: false + Kirigami.Theme.colorSet: Kirigami.Theme.View + shadow.xOffset: 0 + shadow.yOffset: 0 + shadow.size: Kirigami.Units.largeSpacing + shadow.color: Qt.rgba(0, 0, 0, 0.3) } BusyIndicator { diff --git a/src/qtquick/qml/private/GridTileDelegate.qml b/src/qtquick/qml/private/GridTileDelegate.qml --- a/src/qtquick/qml/private/GridTileDelegate.qml +++ b/src/qtquick/qml/private/GridTileDelegate.qml @@ -23,7 +23,7 @@ import QtQuick.Layouts 1.11 import QtGraphicalEffects 1.11 -import org.kde.kirigami 2.2 as Kirigami +import org.kde.kirigami 2.12 as Kirigami /** * Base delegate for KControlmodules based on Grid views of thumbnails @@ -71,15 +71,20 @@ height: GridView.view.cellHeight hoverEnabled: true - Rectangle { + Kirigami.ShadowedRectangle { id: tile anchors.centerIn: parent width: Kirigami.Settings.isMobile ? delegate.width - Kirigami.Units.gridUnit : Math.min(delegate.GridView.view.implicitCellWidth, delegate.width - Kirigami.Units.gridUnit) height: Math.min(delegate.GridView.view.implicitCellHeight, delegate.height - Kirigami.Units.gridUnit) radius: Kirigami.Units.smallSpacing Kirigami.Theme.inherit: false Kirigami.Theme.colorSet: Kirigami.Theme.View + shadow.xOffset: 0 + shadow.yOffset: 2 + shadow.size: 10 + shadow.color: Qt.rgba(0, 0, 0, 0.3) + color: { if (delegate.GridView.isCurrentItem) { return Kirigami.Theme.highlightColor; @@ -149,10 +154,7 @@ icon.name: modelData.iconName text: modelData.text activeFocusOnTab: focus || delegate.focus - onClicked: { - delegate.clicked() - modelData.trigger() - } + onClicked: modelData.trigger() enabled: modelData.enabled visible: modelData.visible //NOTE: there aren't any global settings where to take "official" tooltip timeouts @@ -165,15 +167,6 @@ } } } - // Bug 397367: explicitly using "delegate" as otherwise it crashes when switching between KCMs - layer.enabled: delegate.GraphicsInfo.api === GraphicsInfo.OpenGL - layer.effect: DropShadow { - horizontalOffset: 0 - verticalOffset: 2 - radius: 10 - samples: 32 - color: Qt.rgba(0, 0, 0, 0.3) - } } Controls.ToolTip.delay: 1000 diff --git a/src/qtquick/qml/private/entrygriddelegates/BigPreviewDelegate.qml b/src/qtquick/qml/private/entrygriddelegates/BigPreviewDelegate.qml --- a/src/qtquick/qml/private/entrygriddelegates/BigPreviewDelegate.qml +++ b/src/qtquick/qml/private/entrygriddelegates/BigPreviewDelegate.qml @@ -24,7 +24,7 @@ import QtQuick.Layouts 1.11 as QtLayouts import QtGraphicalEffects 1.11 as QtEffects -import org.kde.kirigami 2.7 as Kirigami +import org.kde.kirigami 2.12 as Kirigami import org.kde.newstuff 1.62 as NewStuff @@ -102,22 +102,24 @@ QtLayouts.Layout.fillWidth: true QtLayouts.Layout.minimumHeight: width / 1.8 QtLayouts.Layout.maximumHeight: width / 1.8 + Kirigami.ShadowedRectangle { + anchors.centerIn: bigPreview; + width: Math.min(bigPreview.paintedWidth, bigPreview.width); + height: Math.min(bigPreview.paintedHeight, bigPreview.height); + Kirigami.Theme.inherit: false + Kirigami.Theme.colorSet: Kirigami.Theme.View + shadow.xOffset: 0 + shadow.yOffset: 0 + shadow.size: 10 + shadow.color: Qt.rgba(0, 0, 0, 0.3) + } Image { id: bigPreview asynchronous: true; fillMode: Image.PreserveAspectCrop; source: thumbnailAvailable ? model.previews[0] : ""; anchors.fill: parent } - QtEffects.DropShadow { - anchors.fill: bigPreview - horizontalOffset: 0 - verticalOffset: 0 - radius: Kirigami.Units.largeSpacing - samples: radius * 2 - color: "#80000000" - source: bigPreview - } Kirigami.Icon { id: updateAvailableBadge; opacity: (model.status == NewStuff.ItemsModel.UpdateableStatus) ? 1 : 0; diff --git a/src/qtquick/qml/private/entrygriddelegates/TileDelegate.qml b/src/qtquick/qml/private/entrygriddelegates/TileDelegate.qml --- a/src/qtquick/qml/private/entrygriddelegates/TileDelegate.qml +++ b/src/qtquick/qml/private/entrygriddelegates/TileDelegate.qml @@ -24,7 +24,7 @@ import QtQuick.Layouts 1.11 as QtLayouts import QtGraphicalEffects 1.11 as QtEffects -import org.kde.kirigami 2.7 as Kirigami +import org.kde.kirigami 2.12 as Kirigami import org.kde.newstuff 1.62 as NewStuff @@ -112,6 +112,17 @@ QtLayouts.Layout.fillWidth: true QtLayouts.Layout.minimumHeight: width QtLayouts.Layout.maximumHeight: width + Kirigami.ShadowedRectangle { + anchors.centerIn: tilePreview; + width: Math.min(tilePreview.paintedWidth, tilePreview.width); + height: Math.min(tilePreview.paintedHeight, tilePreview.height); + Kirigami.Theme.inherit: false + Kirigami.Theme.colorSet: Kirigami.Theme.View + shadow.xOffset: 0 + shadow.yOffset: 0 + shadow.size: 10 + shadow.color: Qt.rgba(0, 0, 0, 0.3) + } Image { id: tilePreview asynchronous: true; @@ -123,15 +134,6 @@ } verticalAlignment: Image.AlignTop } - QtEffects.DropShadow { - anchors.fill: tilePreview - horizontalOffset: 0 - verticalOffset: 0 - radius: Kirigami.Units.largeSpacing - samples: radius * 2 - color: "#80000000" - source: tilePreview - } Kirigami.Icon { id: updateAvailableBadge; opacity: (model.status == NewStuff.ItemsModel.UpdateableStatus) ? 1 : 0;