diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 199c1107..90053bd4 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -164,6 +164,7 @@ if(ANDROID) edit-clear-all edit-select-all edit-select-none + edit-copy download media-playlist-append media-seek-backward diff --git a/src/qml/EntryPage.qml b/src/qml/EntryPage.qml index b2fadc14..b4b3f1e7 100644 --- a/src/qml/EntryPage.qml +++ b/src/qml/EntryPage.qml @@ -89,6 +89,7 @@ Kirigami.ScrollablePage { font.pointSize: SettingsManager && !(SettingsManager.articleFontUseSystem) ? SettingsManager.articleFontSize : Kirigami.Theme.defaultFont.pointSize } ListView { + visible: count !== 0 Layout.fillWidth: true height: contentHeight interactive: false @@ -103,6 +104,36 @@ Kirigami.ScrollablePage { entry: page.entry } } + RowLayout { + Layout.leftMargin: Kirigami.Units.gridUnit + Layout.rightMargin: Kirigami.Units.gridUnit + Layout.bottomMargin: Kirigami.Units.gridUnit + visible: entry.hasEnclosure + spacing: Kirigami.Units.smallSpacing + TextEdit { + readOnly: true + textFormat:TextEdit.RichText + text: i18n("Episode Download URL:") + wrapMode: TextEdit.Wrap + } + TextEdit { + id: enclosureUrl + visible: false + readOnly: true + textFormat:TextEdit.RichText + text: entry.hasEnclosure ? entry.enclosure.url : "" + } + Controls.Button { + height: enclosureUrl.height + width: enclosureUrl.height + icon.name: "edit-copy" + onClicked: { + enclosureUrl.selectAll(); + enclosureUrl.copy(); + enclosureUrl.deselect(); + } + } + } } actions.main: Kirigami.Action { diff --git a/src/qml/FeedDetailsPage.qml b/src/qml/FeedDetailsPage.qml index 63bf5833..a6f09822 100644 --- a/src/qml/FeedDetailsPage.qml +++ b/src/qml/FeedDetailsPage.qml @@ -44,6 +44,7 @@ Kirigami.ScrollablePage { } ColumnLayout { + width: parent.width TextEdit { readOnly: true selectByMouse: !Kirigami.Settings.isMobile @@ -62,22 +63,66 @@ Kirigami.ScrollablePage { wrapMode: Text.WordWrap Layout.fillWidth: true } - TextEdit { - readOnly: true - selectByMouse: true - textFormat:TextEdit.RichText - text: i18n("Podcast URL") + ": %1".arg(feed.url) - wrapMode: Text.WordWrap + Item { Layout.fillWidth: true + Layout.preferredHeight: Math.max(feedUrlLayout.height, feedUrlCopyButton.width) + RowLayout { + id: feedUrlLayout + anchors.left: parent.left + anchors.right: feedUrlCopyButton.left + anchors.verticalCenter: parent.verticalCenter + spacing: Kirigami.Units.smallSpacing + TextEdit { + Layout.alignment: Qt.AlignTop + readOnly: true + textFormat:TextEdit.RichText + text: i18n("Podcast URL:") + wrapMode: TextEdit.Wrap + } + TextEdit { + id: feedUrl + Layout.alignment: Qt.AlignTop + readOnly: true + selectByMouse: !Kirigami.Settings.isMobile + textFormat:TextEdit.RichText + text: "%1".arg(feed.url) + wrapMode: TextEdit.Wrap + Layout.fillWidth: true + } + } + Controls.Button { + anchors.right: parent.right + anchors.top: parent.top + anchors.leftMargin: Kirigami.Units.smallSpacing + id: feedUrlCopyButton + icon.name: "edit-copy" + onClicked: { + feedUrl.selectAll(); + feedUrl.copy(); + feedUrl.deselect(); + } + } } - TextEdit { - readOnly: true - selectByMouse: !Kirigami.Settings.isMobile - textFormat:TextEdit.RichText - text: i18n("Weblink") + ": %1".arg(feed.link) - onLinkActivated: Qt.openUrlExternally(link) - wrapMode: Text.WordWrap - Layout.fillWidth: true + RowLayout { + spacing: Kirigami.Units.smallSpacing + TextEdit { + Layout.alignment: Qt.AlignTop + readOnly: true + textFormat:TextEdit.RichText + text: i18n("Weblink:") + wrapMode: TextEdit.Wrap + } + + TextEdit { + readOnly: true + Layout.alignment: Qt.AlignTop + selectByMouse: !Kirigami.Settings.isMobile + textFormat:TextEdit.RichText + text: "%1".arg(feed.link) + onLinkActivated: Qt.openUrlExternally(link) + wrapMode: Text.WordWrap + Layout.fillWidth: true + } } TextEdit { readOnly: true