From 39340fc3a24440dd4d42949a7b61be004e31e543 Mon Sep 17 00:00:00 2001 From: Bart De Vries 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 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