commit:     a49812f111833e93a6c6e8cb4ed8a5139a1a7314
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Wed Mar 26 19:02:29 2025 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Wed Mar 26 19:14:23 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a49812f1

media-sound/kasts: Fix dialog boxes w/ kde-frameworks/kirigami-6.12

See also:
https://mail.kde.org/pipermail/distributions/2025-March/001570.html
KDE-bug: https://bugs.kde.org/show_bug.cgi?id=501876

Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 .../kasts/files/kasts-24.12.3-kirigami-6.12.patch  | 159 +++++++++++++++++++++
 media-sound/kasts/kasts-24.12.3-r1.ebuild          |  53 +++++++
 2 files changed, 212 insertions(+)

diff --git a/media-sound/kasts/files/kasts-24.12.3-kirigami-6.12.patch 
b/media-sound/kasts/files/kasts-24.12.3-kirigami-6.12.patch
new file mode 100644
index 000000000000..c96c921776fe
--- /dev/null
+++ b/media-sound/kasts/files/kasts-24.12.3-kirigami-6.12.patch
@@ -0,0 +1,159 @@
+From 39340fc3a24440dd4d42949a7b61be004e31e543 Mon Sep 17 00:00:00 2001
+From: Bart De Vries <[email protected]>
+Date: Sun, 23 Mar 2025 14:17:37 +0100
+Subject: [PATCH] Fix dialog boxes after recent Kirigami updates
+
+BUG: 501876
+---
+ src/qml/Desktop/DesktopPlayerControls.qml     |  7 +--
+ .../Settings/SynchronizationSettingsPage.qml  | 49 +++++++++++--------
+ src/qml/SyncPasswordOverlay.qml               |  4 +-
+ 3 files changed, 33 insertions(+), 27 deletions(-)
+
+diff --git a/src/qml/Desktop/DesktopPlayerControls.qml 
b/src/qml/Desktop/DesktopPlayerControls.qml
+index 513d33371..35d5ce327 100644
+--- a/src/qml/Desktop/DesktopPlayerControls.qml
++++ b/src/qml/Desktop/DesktopPlayerControls.qml
+@@ -386,6 +386,8 @@ FocusScope {
+ 
+     Kirigami.Dialog {
+         id: chapterOverlay
++        preferredWidth: Kirigami.Units.gridUnit * 30
++        preferredHeight: Kirigami.Units.gridUnit * 25
+ 
+         showCloseButton: false
+ 
+@@ -396,13 +398,8 @@ FocusScope {
+ 
+             currentIndex: -1
+ 
+-            implicitWidth: Kirigami.Units.gridUnit * 30
+-            implicitHeight: Kirigami.Units.gridUnit * 25
+-
+             model: chapterModel
+             delegate: ChapterListDelegate {
+-                id: chapterDelegate
+-                width: chapterList.width
+                 entry: AudioManager.entry ? AudioManager.entry : null
+                 overlay: chapterOverlay
+             }
+diff --git a/src/qml/Settings/SynchronizationSettingsPage.qml 
b/src/qml/Settings/SynchronizationSettingsPage.qml
+index 7bed8a09c..9543bcbde 100644
+--- a/src/qml/Settings/SynchronizationSettingsPage.qml
++++ b/src/qml/Settings/SynchronizationSettingsPage.qml
+@@ -227,37 +227,45 @@ Kirigami.ScrollablePage {
+ 
+         title: i18nc("@label", "Select Sync Provider")
+ 
++        property list<var> providerModel: [
++            {
++                name: i18nc("@label", "gpodder.net"),
++                subtitle: i18nc("@label", "Synchronize with official 
gpodder.net server"),
++                iconName: "gpodder",
++                provider: Sync.GPodderNet
++            },
++            {
++                name: i18nc("@label", "GPodder Nextcloud"),
++                subtitle: i18nc("@label", "Synchronize with GPodder Nextcloud 
app"),
++                iconName: "kaccounts-nextcloud",
++                provider: Sync.GPodderNextcloud
++            }
++        ]
++
+         ColumnLayout {
+             spacing: 0
+ 
+             Repeater {
+                 focus: syncProviderOverlay.visible
+ 
+-                model: ListModel {
+-                    id: providerModel
+-                }
+-                Component.onCompleted: {
+-                    providerModel.append({"name": i18nc("@label", 
"gpodder.net"),
+-                                        "subtitle": i18nc("@label", 
"Synchronize with official gpodder.net server"),
+-                                        "icon": "gpodder",
+-                                        "provider": Sync.GPodderNet});
+-                    providerModel.append({"name": i18nc("@label", "GPodder 
Nextcloud"),
+-                                        "subtitle": i18nc("@label", 
"Synchronize with GPodder Nextcloud app"),
+-                                        "icon": "kaccounts-nextcloud",
+-                                        "provider": Sync.GPodderNextcloud});
+-                }
++                model: syncProviderOverlay.providerModel
++
+                 delegate: Delegates.RoundedItemDelegate {
+                     id: syncProviderRepeaterDelegate
++                    required property string name
++                    required property string iconName
++                    required property string subtitle
++                    required property var provider
+                     Layout.fillWidth: true
+-                    text: model.name
+-                    icon.name: model.icon
++                    text: name
++                    icon.name: iconName
+                     contentItem: Delegates.SubtitleContentItem {
+                         itemDelegate: syncProviderRepeaterDelegate
+-                        subtitle: model.subtitle
++                        subtitle: subtitle
+                     }
+                     Keys.onReturnPressed: clicked()
+                     onClicked: {
+-                        Sync.provider = model.provider;
++                        Sync.provider = provider;
+                         syncProviderOverlay.close();
+                         syncLoginOverlay.open();
+                     }
+@@ -268,7 +276,7 @@ Kirigami.ScrollablePage {
+ 
+     Kirigami.Dialog {
+         id: syncLoginOverlay
+-        preferredWidth: Kirigami.Units.gridUnit * 25
++        maximumWidth: Kirigami.Units.gridUnit * 30
+         padding: Kirigami.Units.largeSpacing
+ 
+         showCloseButton: true
+@@ -288,7 +296,7 @@ Kirigami.ScrollablePage {
+         }
+         onRejected: syncLoginOverlay.close();
+ 
+-        Column {
++        ColumnLayout {
+             spacing: Kirigami.Units.largeSpacing
+             RowLayout {
+                 width: parent.width
+@@ -388,7 +396,8 @@ Kirigami.ScrollablePage {
+ 
+     Kirigami.Dialog {
+         id: syncDeviceOverlay
+-        preferredWidth: Kirigami.Units.gridUnit * 25
++        maximumWidth: Kirigami.Units.gridUnit * 30
++        preferredWidth: Kirigami.Units.gridUnit * 30
+         padding: Kirigami.Units.largeSpacing
+ 
+         showCloseButton: true
+diff --git a/src/qml/SyncPasswordOverlay.qml b/src/qml/SyncPasswordOverlay.qml
+index 8c50ff1ff..82adef13e 100644
+--- a/src/qml/SyncPasswordOverlay.qml
++++ b/src/qml/SyncPasswordOverlay.qml
+@@ -16,7 +16,7 @@ import org.kde.kasts.settings
+ Kirigami.Dialog {
+     id: syncPasswordOverlay
+     padding: Kirigami.Units.largeSpacing
+-    preferredWidth: Kirigami.Units.gridUnit * 20
++    maximumWidth: Kirigami.Units.gridUnit * 25
+     parent: applicationWindow().overlay
+ 
+     showCloseButton: true
+@@ -30,7 +30,7 @@ Kirigami.Dialog {
+     }
+     onRejected: syncPasswordOverlay.close();
+ 
+-    Column {
++    ColumnLayout {
+         spacing: Kirigami.Units.largeSpacing
+         RowLayout {
+             width: parent.width
+-- 
+GitLab
+

diff --git a/media-sound/kasts/kasts-24.12.3-r1.ebuild 
b/media-sound/kasts/kasts-24.12.3-r1.ebuild
new file mode 100644
index 000000000000..3554c0742ee7
--- /dev/null
+++ b/media-sound/kasts/kasts-24.12.3-r1.ebuild
@@ -0,0 +1,53 @@
+# Copyright 2023-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+KFMIN=6.7.0
+QTMIN=6.7.2
+inherit ecm gear.kde.org
+
+DESCRIPTION="Convergent podcast application for desktop and mobile"
+HOMEPAGE="https://apps.kde.org/kasts/";
+
+LICENSE="GPL-2 GPL-2+ GPL-3+ BSD LGPL-3+"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
+IUSE="gstreamer vlc"
+
+DEPEND="
+       dev-libs/kirigami-addons:6
+       >=dev-libs/qtkeychain-0.14.2:=[qt6(+)]
+       >=dev-qt/qtbase-${QTMIN}:6[dbus,gui,network,sql,widgets,xml]
+       >=dev-qt/qtdeclarative-${QTMIN}:6
+       >=dev-qt/qtmultimedia-${QTMIN}:6
+       >=dev-qt/qtsvg-${QTMIN}:6
+       >=kde-frameworks/breeze-icons-${KFMIN}:6
+       >=kde-frameworks/kconfig-${KFMIN}:6
+       >=kde-frameworks/kcoreaddons-${KFMIN}:6
+       >=kde-frameworks/kcrash-${KFMIN}:6
+       >=kde-frameworks/ki18n-${KFMIN}:6
+       >=kde-frameworks/kirigami-${KFMIN}:6
+       >=kde-frameworks/syndication-${KFMIN}:6
+       >=kde-frameworks/threadweaver-${KFMIN}:6
+       media-libs/taglib:=
+       gstreamer? (
+               dev-libs/glib:2
+               media-libs/gstreamer:1.0
+               media-libs/gst-plugins-good:1.0
+       )
+       vlc? ( media-video/vlc:= )
+"
+RDEPEND="${DEPEND}"
+BDEPEND="gstreamer? ( virtual/pkgconfig )"
+
+PATCHES=( "${FILESDIR}/${P}-kirigami-6.12.patch" )
+
+src_configure() {
+       local mycmakeargs=(
+               -DBUILD_EXAMPLE_PLAYER=OFF
+               -DBUILD_GSTREAMER_BACKEND=$(usex gstreamer)
+               $(cmake_use_find_package vlc LIBVLC)
+       )
+       ecm_src_configure
+}

Reply via email to