git.iko.soy/maciek134/podphoenix
on main help sign in
8 files changed+325−276
since splitsnapshots
unifiedsplit
.github/workflows/build.yaml+10−13 app/podcasts.js+12 app/settings/About.qml+3−3 app/settings/Credits.qml+2 app/ui/EpisodesPage.qml+173−1 app/ui/SearchPage.qml+9 manifest.json.in+2−2 po/soy.iko.podphoenix.pot+114−257
.github/workflows/build.yaml+10−13
@@ -2,9 +2,9 @@ name: CI
22
33on:
44 push:
5− branches: ["master"]
5+ branches: ["main"]
66 pull_request:
7− branches: ["master"]
7+ branches: ["main"]
88
99jobs:
1010 build:
@@ -17,20 +17,17 @@ jobs:
1717 runs-on: ubuntu-latest
1818
1919 steps:
20− - uses: actions/checkout@v3
20+ - uses: actions/checkout@v5
2121 with:
2222 submodules: recursive
2323
24− - name: Install clickable
25− run: |
26− sudo apt install adb git python3 python3-pip python3-setuptools
27− pip3 install --user clickable-ut --upgrade
28− echo 'export PATH="$PATH:$HOME/.local/bin"' >> ~/.bashrc
29−
30− - name: Build
31− run: clickable build --arch=${{ matrix.arch }} --output dist-${{ matrix.arch }}
24+ - uses: addnab/docker-run-action@v3
25+ with:
26+ image: clickable/ci-20.04-${{ matrix.arch }}
27+ options: -v ${{ github.workspace }}:/work
28+ run: cd /work && clickable build --arch=${{ matrix.arch }} --output=dist-${{ matrix.arch }} --container-mode
3229
33− - uses: actions/upload-artifact@v3
30+ - uses: actions/upload-artifact@v7
3431 with:
35− name: podhoenix-${{ matrix.arch }}
32+ name: podphoenix-${{ matrix.arch }}
3633 path: dist-${{ matrix.arch }}/*
app/podcasts.js+12
@@ -239,6 +239,18 @@ function updateEpisodes(refreshModel) {
239239 xhr[i].open("GET", url);
240240 xhr[i].onreadystatechange = function() {
241241 if (xhr[i].readyState === XMLHttpRequest.DONE) {
242+ const location = xhr[i].getResponseHeader('Location');
243+ if (location) {
244+ // for some reason a 302 will also include anything that was
245+ // returned in the original redirect in the body, breaking XML
246+ // just re-launch the request with the new location
247+ const newXhr = new XMLHttpRequest();
248+ newXhr.open("GET", location);
249+ newXhr.onreadystatechange = xhr[i].onreadystatechange;
250+ newXhr.send();
251+ xhr[i] = newXhr;
252+ return;
253+ }
242254 xhrComplete[i] = true;
243255
244256 try {
app/settings/About.qml+3−3
@@ -89,7 +89,7 @@ Page {
8989 width: parent.width
9090 horizontalAlignment: Text.AlignHCenter
9191 // TRANSLATORS: Podphoenix version number e.g Version 0.8
92− text: i18n.tr("Version %1").arg("0.8")
92+ text: i18n.tr("Version %1").arg("0.1.2.2")
9393 }
9494 }
9595
@@ -103,7 +103,7 @@ Page {
103103 width: parent.width
104104 wrapMode: Text.WordWrap
105105 horizontalAlignment: Text.AlignHCenter
106− text: "(C) 2015 Podphoenix Team"
106+ text: "(C) 2026 Podphoenix Team"
107107 }
108108 Label {
109109 textSize: Label.Small
@@ -120,7 +120,7 @@ Page {
120120 textSize: Label.Small
121121 horizontalAlignment: Text.AlignHCenter
122122 linkColor: podphoenix.appTheme.linkText
123− text: i18n.tr("Source code available on %1").arg("<a href=\"https://github.com/ilyakooo0/podphoenix\">github.com</a>")
123+ text: i18n.tr("Source code available on %1").arg("<a href=\"https://github.com/maciek134/podphoenix\">github.com</a>")
124124 onLinkActivated: Qt.openUrlExternally(link)
125125 }
126126 }
app/settings/Credits.qml+2
@@ -31,6 +31,8 @@ Item {
3131 creditsModel.append({ name: i18n.tr("%1 (Creator)").arg("Michael Sheldon"), title: i18n.tr("Developers"), url: "http://blog.mikeasoft.com" })
3232 creditsModel.append({ name: "Nekhelesh Ramananthan", title: i18n.tr("Developers"), url: "https://launchpad.net/~nik90" })
3333 creditsModel.append({ name: "Ilia Kostiuchenko", title: i18n.tr("Developers"), url: "https://github.com/ilyakooo0" })
34+ creditsModel.append({ name: "Maciej Sopyło", title: i18n.tr("Developers"), url: "https://gitlab.com/klhio" })
35+ creditsModel.append({ name: "Kugi Eusebio", title: i18n.tr("Developers"), url: "https://github.com/kugiigi" })
3436 creditsModel.append({ name: "Kevin Feyder", title: i18n.tr("Designer"), url: "https://feyder.design/" })
3537 creditsModel.append({ name: "Ubuntu Translators Community", title: i18n.tr("Translators"), url: "https://discourse.ubuntu.com/t/translations/32" })
3638 }
app/ui/EpisodesPage.qml+173−1
@@ -22,12 +22,20 @@ import Ubuntu.Components 1.3
2222import QtQuick.LocalStorage 2.0
2323import Ubuntu.DownloadManager 1.2
2424import Ubuntu.Components.Popups 1.3
25+import Lomiri.Components.Pickers 1.3
2526import "../podcasts.js" as Podcasts
2627import "../components"
2728
2829Page {
2930 id: episodesPage
3031
32+ enum DateFilter {
33+ None,
34+ EarlierThan,
35+ LaterThan,
36+ Between
37+ }
38+
3139 visible: false
3240
3341 property string episodeName
@@ -36,6 +44,10 @@ Page {
3644 property string episodeImage
3745 property string tempGuid: "NULL"
3846 property string mode: "listened"
47+ property bool sortAscending: false
48+ property int dateFilter: EpisodesPage.DateFilter.None
49+ property date publishedDateFilter: new Date()
50+ property date publishedDateFilterTo: new Date()
3951
4052 Component.onCompleted: {
4153 loadEpisodes(episodeId, episodeArtist, episodeImage)
@@ -54,7 +66,23 @@ Page {
5466 backgroundColor: podphoenix.appTheme.background
5567 }
5668
69+ trailingActionBar.numberOfSlots: 4
5770 trailingActionBar.actions: [
71+ Action {
72+ iconName: episodesPage.sortAscending ? "down" : "up"
73+ text: episodesPage.sortAscending ? i18n.tr("Ascending") : i18n.tr("Descending")
74+ onTriggered: {
75+ episodesPage.sortAscending = !episodesPage.sortAscending;
76+ episodesPage.refreshModel();
77+ }
78+ },
79+ Action {
80+ iconName: episodesPage.dateFilter === EpisodesPage.DateFilter.None ? "filters" : "filter"
81+ text: i18n.tr("Sort & Filter")
82+ onTriggered: {
83+ PopupUtils.open(sortFilterDialogComponent, episodesPage);
84+ }
85+ },
5886 Action {
5987 iconName: "search"
6088 text: i18n.tr("Search Episode")
@@ -294,6 +322,112 @@ Page {
294322 }
295323 }
296324
325+ Component {
326+ id: sortFilterDialogComponent
327+ Dialog {
328+ id: sortFilterDialog
329+
330+ title: i18n.tr("Sort & Filter")
331+
332+ Component.onCompleted: {
333+ // WORKAROUND: Avoid UI glitch in OptionSelector when initially selecting 1+ index
334+
335+ sortSelector.selectedIndex = episodesPage.sortAscending ? 0 : 1;
336+
337+ let currentDateFilter = filterSelector.model.findIndex(obj => {
338+ return obj.value === episodesPage.dateFilter;
339+ })
340+ filterSelector.selectedIndex = currentDateFilter;
341+ }
342+
343+ OptionSelector {
344+ id: sortSelector
345+ text: i18n.tr("Sort by date")
346+ model: [
347+ i18n.tr("Ascending"),
348+ i18n.tr("Descending")
349+ ]
350+ }
351+
352+ Label {
353+ text: i18n.tr("Filter by date")
354+ }
355+
356+ OptionSelector {
357+ id: filterSelector
358+ model: [
359+ { name: i18n.tr("None"), value: EpisodesPage.DateFilter.None },
360+ { name: i18n.tr("Earlier than"), value: EpisodesPage.DateFilter.EarlierThan },
361+ { name: i18n.tr("Later than"), value: EpisodesPage.DateFilter.LaterThan },
362+ { name: i18n.tr("Between"), value: EpisodesPage.DateFilter.Between }
363+ ]
364+ delegate: filterSelectorDelegate
365+ }
366+
367+ Component {
368+ id: filterSelectorDelegate
369+ OptionSelectorDelegate { text: modelData.name}
370+ }
371+
372+ Label {
373+ visible: filterSelector.model[filterSelector.selectedIndex].value === EpisodesPage.DateFilter.Between
374+ text: i18n.tr("From:")
375+ }
376+
377+ DatePicker {
378+ id: datePicker
379+ visible: filterSelector.model[filterSelector.selectedIndex].value !== EpisodesPage.DateFilter.None
380+ date: episodesPage.publishedDateFilter
381+ minimum: {
382+ let d = new Date();
383+ d.setFullYear(d.getFullYear() - 40);
384+ return d;
385+ }
386+ maximum: new Date()
387+ }
388+
389+ Label {
390+ visible: filterSelector.model[filterSelector.selectedIndex].value === EpisodesPage.DateFilter.Between
391+ text: i18n.tr("To:")
392+ }
393+
394+ DatePicker {
395+ id: datePickerTo
396+ visible: filterSelector.model[filterSelector.selectedIndex].value === EpisodesPage.DateFilter.Between
397+ date: episodesPage.publishedDateFilterTo
398+ minimum: datePicker.date
399+ maximum: new Date()
400+ }
401+
402+ Button {
403+ text: i18n.tr("Apply")
404+ color: podphoenix.appTheme.positiveActionButton
405+ onClicked: {
406+ episodesPage.sortAscending = sortSelector.selectedIndex === 0;
407+ let date = datePicker.date;
408+ date.setHours(0,0,0,0);
409+ episodesPage.publishedDateFilter = date;
410+
411+ if (filterSelector.model[filterSelector.selectedIndex].value === EpisodesPage.DateFilter.Between) {
412+ let dateTo = datePickerTo.date;
413+ dateTo.setHours(0,0,0,0);
414+ episodesPage.publishedDateFilterTo = dateTo;
415+ }
416+ episodesPage.dateFilter = filterSelector.model[filterSelector.selectedIndex].value;
417+ episodesPage.refreshModel();
418+ PopupUtils.close(sortFilterDialog);
419+ }
420+ }
421+ Button {
422+ text: i18n.tr("Cancel")
423+ color: podphoenix.appTheme.neutralActionButton
424+ onClicked: {
425+ PopupUtils.close(sortFilterDialog);
426+ }
427+ }
428+ }
429+ }
430+
297431 Component {
298432 id: confirmDeleteDialog
299433 Dialog {
@@ -736,7 +870,45 @@ Page {
736870
737871 var db = Podcasts.init();
738872 db.transaction(function (tx) {
739− var rs = tx.executeSql("SELECT rowid, * FROM Episode WHERE podcast=? ORDER BY published DESC", [pid]);
873+ var order = episodesPage.sortAscending ? "ASC" : "DESC";
874+ var dateFilter = episodesPage.dateFilter;
875+ var filterDate = episodesPage.publishedDateFilter;
876+ var filterDateTo = episodesPage.publishedDateFilterTo;
877+ var dateCompare = "";
878+ switch (dateFilter) {
879+ case EpisodesPage.DateFilter.LaterThan:
880+ dateCompare = ">";
881+ break;
882+ case EpisodesPage.DateFilter.Between:
883+ dateCompare = ">=";
884+ break;
885+ case EpisodesPage.DateFilter.EarlierThan:
886+ default:
887+ dateCompare = "<";
888+ break;
889+ }
890+ var dateFilterStatement = "";
891+ if (episodesPage.dateFilter !== EpisodesPage.DateFilter.None) {
892+ dateFilterStatement = " AND datetime(published / 1000, 'unixepoch') " + dateCompare + " datetime(?)";
893+ }
894+
895+ if (episodesPage.dateFilter === EpisodesPage.DateFilter.Between) {
896+ dateFilterStatement += " AND datetime(published / 1000, 'unixepoch') <= datetime(?)";
897+ }
898+
899+ var formattedFilterDate = Qt.formatDateTime(filterDate, "yyyy-MM-dd HH:mm:ss.zzz");
900+ var formattedFilterDateTo = Qt.formatDateTime(filterDateTo, "yyyy-MM-dd HH:mm:ss.zzz");
901+ var selectStatement = "SELECT rowid, * FROM Episode";
902+ var whereStatement = " WHERE podcast=? " + dateFilterStatement;
903+ var orderStatement = " ORDER BY published " + order;
904+ var bindValues = [pid];
905+ if (episodesPage.dateFilter === EpisodesPage.DateFilter.Between) {
906+ bindValues = [pid, formattedFilterDate, formattedFilterDateTo];
907+ } else if (episodesPage.dateFilter !== EpisodesPage.DateFilter.None) {
908+ bindValues = [pid, formattedFilterDate];
909+ }
910+
911+ var rs = tx.executeSql(selectStatement + whereStatement + orderStatement, bindValues);
740912 for(i = 0; i < rs.rows.length; i++) {
741913 episode = rs.rows.item(i);
742914 if (!episode.listened) {
app/ui/SearchPage.qml+9
@@ -394,6 +394,15 @@ Page {
394394 xhr.open("GET", feedUrl);
395395 xhr.onreadystatechange = function() {
396396 if (xhr.readyState === XMLHttpRequest.DONE) {
397+ const location = xhr.getResponseHeader('Location');
398+ if (location) {
399+ // for some reason a 302 will also include anything that was
400+ // returned in the original redirect in the body, breaking XML
401+ // just re-launch the request with the new location
402+ getPodcastDescription(location, index);
403+ return;
404+ }
405+
397406 var e = xhr.responseXML.documentElement;
398407 for(var h = 0; h < e.childNodes.length; h++) {
399408 if(e.childNodes[h].nodeName === "channel") {
manifest.json.in+2−2
@@ -9,7 +9,7 @@
99 "desktop": "Podphoenix.desktop"
1010 }
1111 },
12− "version": "0.1.2.0",
13− "maintainer": "Ilia Kostiuchenko <mail@iko.soy>",
12+ "version": "0.1.2.2",
13+ "maintainer": "Maciej Sopyło <me@klh.io>",
1414 "framework": "@CLICK_FRAMEWORK@"
1515}
po/soy.iko.podphoenix.pot+114−257
@@ -8,7 +8,7 @@ msgid ""
88msgstr ""
99"Project-Id-Version: \n"
1010"Report-Msgid-Bugs-To: \n"
11−"POT-Creation-Date: 2023-02-05 08:26+0000\n"
11+"POT-Creation-Date: 2026-08-20 06:27+0000\n"
1212"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
1313"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1414"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -19,97 +19,74 @@ msgstr ""
1919"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
2020
2121#: ../app/components/TabsList.qml:28 ../app/ui/EpisodesTab.qml:47
22−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/components/TabsList.qml:28
23−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/EpisodesTab.qml:47
2422msgid "Episodes"
2523msgstr ""
2624
2725#: ../app/components/TabsList.qml:37 ../app/ui/SearchPage.qml:43
28−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/components/TabsList.qml:37
29−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SearchPage.qml:43
3026msgid "Add New Podcasts"
3127msgstr ""
3228
3329#: ../app/components/TabsList.qml:46 ../app/ui/PodcastsTab.qml:40
34−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/components/TabsList.qml:46
35−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/PodcastsTab.qml:40
3630msgid "Podcasts"
3731msgstr ""
3832
3933#: ../app/components/TabsList.qml:55 ../app/ui/SettingsPage.qml:34
40−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/components/TabsList.qml:55
41−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SettingsPage.qml:34
4234msgid "Settings"
4335msgstr ""
4436
4537#: ../app/components/Walkthrough.qml:89
46−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/components/Walkthrough.qml:89
4738msgid "Skip"
4839msgstr ""
4940
50−#: ../app/podcasts.js:359
51−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/podcasts.js:359
41+#: ../app/podcasts.js:371
5242#, no-c-format, qt-format
5343msgid "%1 hr %2 min"
5444msgstr ""
5545
56−#: ../app/podcasts.js:368
57−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/podcasts.js:368
46+#: ../app/podcasts.js:380
5847#, no-c-format, qt-format
5948msgid "%1 hr"
6049msgstr ""
6150
62−#: ../app/podcasts.js:376
63−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/podcasts.js:376
51+#: ../app/podcasts.js:388
6452#, no-c-format, qt-format
6553msgid "%1 min"
6654msgstr ""
6755
6856#. TRANSLATORS: About as in information about the app
6957#: ../app/settings/About.qml:28 ../app/settings/About.qml:46
70−#: ../app/ui/SettingsPage.qml:394
71−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/settings/About.qml:28
72−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/settings/About.qml:46
73−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SettingsPage.qml:394
58+#: ../app/ui/SettingsPage.qml:411
7459msgid "About"
7560msgstr ""
7661
7762#: ../app/settings/About.qml:46
78−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/settings/About.qml:46
7963msgid "Credits"
8064msgstr ""
8165
8266#. TRANSLATORS: Podphoenix version number e.g Version 0.8
8367#: ../app/settings/About.qml:92
84−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/settings/About.qml:92
8568#, qt-format
8669msgid "Version %1"
8770msgstr ""
8871
8972#: ../app/settings/About.qml:113
90−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/settings/About.qml:113
9173msgid "Released under the terms of the GNU GPL v3"
9274msgstr ""
9375
9476#: ../app/settings/About.qml:123
95−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/settings/About.qml:123
9677#, qt-format
9778msgid "Source code available on %1"
9879msgstr ""
9980
10081#: ../app/settings/CleanSetting.qml:29
101−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/settings/CleanSetting.qml:29
10282msgid "Delete older than"
10383msgstr ""
10484
10585#: ../app/settings/CleanSetting.qml:40 ../app/settings/DownloadSetting.qml:40
106−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/settings/CleanSetting.qml:40
107−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/settings/DownloadSetting.qml:40
10886msgid "Never"
10987msgstr ""
11088
11189#: ../app/settings/CleanSetting.qml:41
112−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/settings/CleanSetting.qml:41
11390#, qt-format
11491msgid "%1 day"
11592msgid_plural "%1 days"
@@ -118,9 +95,6 @@ msgstr[1] ""
11895
11996#: ../app/settings/CleanSetting.qml:42 ../app/settings/CleanSetting.qml:43
12097#: ../app/settings/CleanSetting.qml:44
121−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/settings/CleanSetting.qml:42
122−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/settings/CleanSetting.qml:43
123−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/settings/CleanSetting.qml:44
12498#, qt-format
12599msgid "%1 month"
126100msgid_plural "%1 months"
@@ -128,7 +102,6 @@ msgstr[0] ""
128102msgstr[1] ""
129103
130104#: ../app/settings/CleanSetting.qml:45
131−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/settings/CleanSetting.qml:45
132105#, qt-format
133106msgid "%1 year"
134107msgid_plural "%1 years"
@@ -137,31 +110,24 @@ msgstr[1] ""
137110
138111#. TRANSLATORS: The first argument is the name of creator of Podphoenix (Michael Sheldon)
139112#: ../app/settings/Credits.qml:31
140−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/settings/Credits.qml:31
141113#, qt-format
142114msgid "%1 (Creator)"
143115msgstr ""
144116
145117#: ../app/settings/Credits.qml:31 ../app/settings/Credits.qml:32
146118#: ../app/settings/Credits.qml:33
147−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/settings/Credits.qml:31
148−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/settings/Credits.qml:32
149−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/settings/Credits.qml:33
150119msgid "Developers"
151120msgstr ""
152121
153122#: ../app/settings/Credits.qml:34
154−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/settings/Credits.qml:34
155123msgid "Designer"
156124msgstr ""
157125
158126#: ../app/settings/Credits.qml:35
159−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/settings/Credits.qml:35
160127msgid "Translators"
161128msgstr ""
162129
163130#: ../app/settings/DownloadSetting.qml:29
164−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/settings/DownloadSetting.qml:29
165131msgid "Download at most"
166132msgstr ""
167133
@@ -169,10 +135,6 @@ msgstr ""
169135#: ../app/settings/DownloadSetting.qml:42
170136#: ../app/settings/DownloadSetting.qml:43
171137#: ../app/settings/DownloadSetting.qml:44
172−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/settings/DownloadSetting.qml:41
173−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/settings/DownloadSetting.qml:42
174−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/settings/DownloadSetting.qml:43
175−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/settings/DownloadSetting.qml:44
176138#, qt-format
177139msgid "%1 episode"
178140msgid_plural "%1 episodes"
@@ -180,363 +142,321 @@ msgstr[0] ""
180142msgstr[1] ""
181143
182144#: ../app/settings/ThemeSetting.qml:29 ../app/ui/SettingsPage.qml:181
183−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/settings/ThemeSetting.qml:29
184−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SettingsPage.qml:181
185145msgid "Theme"
186146msgstr ""
187147
188148#. TRANSLATORS: Light Theme
189149#: ../app/settings/ThemeSetting.qml:41 ../app/ui/SettingsPage.qml:182
190−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/settings/ThemeSetting.qml:41
191−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SettingsPage.qml:182
192150msgid "Light"
193151msgstr ""
194152
195153#. TRANSLATORS: Dark Theme
196154#: ../app/settings/ThemeSetting.qml:43 ../app/ui/SettingsPage.qml:182
197−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/settings/ThemeSetting.qml:43
198−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SettingsPage.qml:182
199155msgid "Dark"
200156msgstr ""
201157
202−#: ../app/ui/EpisodesPage.qml:50
203−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/EpisodesPage.qml:50
158+#: ../app/ui/EpisodesPage.qml:62
204159msgid "Podcast"
205160msgstr ""
206161
207−#: ../app/ui/EpisodesPage.qml:60 ../app/ui/EpisodesTab.qml:61
208−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/EpisodesPage.qml:60
209−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/EpisodesTab.qml:61
162+#: ../app/ui/EpisodesPage.qml:73 ../app/ui/EpisodesPage.qml:347
163+msgid "Ascending"
164+msgstr ""
165+
166+#: ../app/ui/EpisodesPage.qml:73 ../app/ui/EpisodesPage.qml:348
167+msgid "Descending"
168+msgstr ""
169+
170+#: ../app/ui/EpisodesPage.qml:81 ../app/ui/EpisodesPage.qml:330
171+msgid "Sort & Filter"
172+msgstr ""
173+
174+#: ../app/ui/EpisodesPage.qml:88 ../app/ui/EpisodesTab.qml:61
210175msgid "Search Episode"
211176msgstr ""
212177
213−#: ../app/ui/EpisodesPage.qml:68 ../app/ui/EpisodesPage.qml:304
178+#: ../app/ui/EpisodesPage.qml:96 ../app/ui/EpisodesPage.qml:438
214179#: ../app/ui/SearchPage.qml:288
215−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/EpisodesPage.qml:68
216−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/EpisodesPage.qml:304
217−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SearchPage.qml:288
218180msgid "Unsubscribe"
219181msgstr ""
220182
221183#. TRANSLATORS: This is the page title. Keep it short. Otherwise it will just be elided.
222−#: ../app/ui/EpisodesPage.qml:108 ../app/ui/EpisodesTab.qml:127
223−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/EpisodesPage.qml:108
224−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/EpisodesTab.qml:127
184+#: ../app/ui/EpisodesPage.qml:136 ../app/ui/EpisodesTab.qml:127
225185#, qt-format
226186msgid "%1 item selected"
227187msgid_plural "%1 items selected"
228188msgstr[0] ""
229189msgstr[1] ""
230190
231−#: ../app/ui/EpisodesPage.qml:123 ../app/ui/EpisodesTab.qml:142
191+#: ../app/ui/EpisodesPage.qml:151 ../app/ui/EpisodesTab.qml:142
232192#: ../app/ui/NowPlayingPage.qml:42
233−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/EpisodesPage.qml:123
234−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/EpisodesTab.qml:142
235−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/NowPlayingPage.qml:42
236193msgid "Back"
237194msgstr ""
238195
239−#: ../app/ui/EpisodesPage.qml:135 ../app/ui/EpisodesTab.qml:154
240−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/EpisodesPage.qml:135
241−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/EpisodesTab.qml:154
196+#: ../app/ui/EpisodesPage.qml:163 ../app/ui/EpisodesTab.qml:154
242197msgid "Mark Listened"
243198msgstr ""
244199
245−#: ../app/ui/EpisodesPage.qml:154 ../app/ui/EpisodesTab.qml:172
246−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/EpisodesPage.qml:154
247−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/EpisodesTab.qml:172
200+#: ../app/ui/EpisodesPage.qml:182 ../app/ui/EpisodesTab.qml:172
248201msgid "Download episode(s)"
249202msgstr ""
250203
251−#: ../app/ui/EpisodesPage.qml:182 ../app/ui/EpisodesTab.qml:200
252−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/EpisodesPage.qml:182
253−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/EpisodesTab.qml:200
204+#: ../app/ui/EpisodesPage.qml:210 ../app/ui/EpisodesTab.qml:200
254205msgid "Delete episode(s)"
255206msgstr ""
256207
257−#: ../app/ui/EpisodesPage.qml:205 ../app/ui/EpisodesTab.qml:223
258−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/EpisodesPage.qml:205
259−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/EpisodesTab.qml:223
208+#: ../app/ui/EpisodesPage.qml:233 ../app/ui/EpisodesTab.qml:223
260209msgid "Favourite episode(s)"
261210msgstr ""
262211
263−#: ../app/ui/EpisodesPage.qml:227 ../app/ui/EpisodesTab.qml:269
264−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/EpisodesPage.qml:227
265−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/EpisodesTab.qml:269
212+#: ../app/ui/EpisodesPage.qml:255 ../app/ui/EpisodesTab.qml:269
266213msgid "Add to queue"
267214msgstr ""
268215
269−#: ../app/ui/EpisodesPage.qml:256 ../app/ui/EpisodesTab.qml:119
270−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/EpisodesPage.qml:256
271−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/EpisodesTab.qml:119
216+#: ../app/ui/EpisodesPage.qml:284 ../app/ui/EpisodesTab.qml:119
272217msgid "Search episode"
273218msgstr ""
274219
275−#: ../app/ui/EpisodesPage.qml:301
276−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/EpisodesPage.qml:301
277−msgid "Unsubscribe Confirmation"
220+#: ../app/ui/EpisodesPage.qml:345
221+msgid "Sort by date"
278222msgstr ""
279223
280−#: ../app/ui/EpisodesPage.qml:302
281−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/EpisodesPage.qml:302
282−#, qt-format
283−msgid "Are you sure you want to unsubscribe from <b>%1</b>?"
224+#: ../app/ui/EpisodesPage.qml:353
225+msgid "Filter by date"
226+msgstr ""
227+
228+#: ../app/ui/EpisodesPage.qml:359
229+msgid "None"
230+msgstr ""
231+
232+#: ../app/ui/EpisodesPage.qml:360
233+msgid "Earlier than"
234+msgstr ""
235+
236+#: ../app/ui/EpisodesPage.qml:361
237+msgid "Later than"
238+msgstr ""
239+
240+#: ../app/ui/EpisodesPage.qml:362
241+msgid "Between"
242+msgstr ""
243+
244+#: ../app/ui/EpisodesPage.qml:374
245+msgid "From:"
246+msgstr ""
247+
248+#: ../app/ui/EpisodesPage.qml:391
249+msgid "To:"
250+msgstr ""
251+
252+#: ../app/ui/EpisodesPage.qml:403
253+msgid "Apply"
284254msgstr ""
285255
286−#: ../app/ui/EpisodesPage.qml:321 ../app/ui/SearchPage.qml:143
287−#: ../app/ui/SettingsPage.qml:85 ../app/ui/SettingsPage.qml:120
288−#: ../app/ui/SettingsPage.qml:155
289−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/EpisodesPage.qml:321
290−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SearchPage.qml:143
291−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SettingsPage.qml:85
292−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SettingsPage.qml:120
293−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SettingsPage.qml:155
256+#: ../app/ui/EpisodesPage.qml:422 ../app/ui/EpisodesPage.qml:455
257+#: ../app/ui/SearchPage.qml:143 ../app/ui/SettingsPage.qml:85
258+#: ../app/ui/SettingsPage.qml:120 ../app/ui/SettingsPage.qml:155
294259msgid "Cancel"
295260msgstr ""
296261
297−#: ../app/ui/EpisodesPage.qml:343 ../app/ui/EpisodesTab.qml:406
298−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/EpisodesPage.qml:343
299−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/EpisodesTab.qml:406
262+#: ../app/ui/EpisodesPage.qml:435
263+msgid "Unsubscribe Confirmation"
264+msgstr ""
265+
266+#: ../app/ui/EpisodesPage.qml:436
267+#, qt-format
268+msgid "Are you sure you want to unsubscribe from <b>%1</b>?"
269+msgstr ""
270+
271+#: ../app/ui/EpisodesPage.qml:477 ../app/ui/EpisodesTab.qml:406
300272msgid "Episode Description"
301273msgstr ""
302274
303−#: ../app/ui/EpisodesPage.qml:354 ../app/ui/EpisodesTab.qml:417
304−#: ../app/ui/SearchPage.qml:192 ../app/ui/SettingsPage.qml:376
305−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/EpisodesPage.qml:354
306−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/EpisodesTab.qml:417
307−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SearchPage.qml:192
308−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SettingsPage.qml:376
275+#: ../app/ui/EpisodesPage.qml:488 ../app/ui/EpisodesTab.qml:417
276+#: ../app/ui/SearchPage.qml:192 ../app/ui/SettingsPage.qml:393
309277msgid "Close"
310278msgstr ""
311279
312−#: ../app/ui/EpisodesPage.qml:382
313−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/EpisodesPage.qml:382
280+#: ../app/ui/EpisodesPage.qml:516
314281msgid "No episodes found"
315282msgstr ""
316283
317−#: ../app/ui/EpisodesPage.qml:383
318−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/EpisodesPage.qml:383
284+#: ../app/ui/EpisodesPage.qml:517
319285msgid "No episodes found matching the search term."
320286msgstr ""
321287
322−#: ../app/ui/EpisodesPage.qml:500
323−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/EpisodesPage.qml:500
288+#: ../app/ui/EpisodesPage.qml:634
324289msgid "Unheard"
325290msgstr ""
326291
327−#: ../app/ui/EpisodesPage.qml:517
328−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/EpisodesPage.qml:517
292+#: ../app/ui/EpisodesPage.qml:651
329293msgid "Listened"
330294msgstr ""
331295
332−#: ../app/ui/EpisodesPage.qml:536
333−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/EpisodesPage.qml:536
296+#: ../app/ui/EpisodesPage.qml:670
334297msgid "Downloaded"
335298msgstr ""
336299
337−#: ../app/ui/EpisodesPage.qml:603
338−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/EpisodesPage.qml:603
300+#: ../app/ui/EpisodesPage.qml:737
339301msgid "Mark as unheard"
340302msgstr ""
341303
342−#: ../app/ui/EpisodesPage.qml:603
343−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/EpisodesPage.qml:603
304+#: ../app/ui/EpisodesPage.qml:737
344305msgid "Mark as listened"
345306msgstr ""
346307
347−#: ../app/ui/EpisodesPage.qml:619
348−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/EpisodesPage.qml:619
308+#: ../app/ui/EpisodesPage.qml:753
349309msgid "Delete downloaded file"
350310msgstr ""
351311
352−#: ../app/ui/EpisodesPage.qml:619
353−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/EpisodesPage.qml:619
312+#: ../app/ui/EpisodesPage.qml:753
354313msgid "Queued"
355314msgstr ""
356315
357−#: ../app/ui/EpisodesPage.qml:619
358−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/EpisodesPage.qml:619
316+#: ../app/ui/EpisodesPage.qml:753
359317msgid "Download"
360318msgstr ""
361319
362−#: ../app/ui/EpisodesPage.qml:644
363−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/EpisodesPage.qml:644
320+#: ../app/ui/EpisodesPage.qml:778
364321msgid "Add to playlist"
365322msgstr ""
366323
367−#: ../app/ui/EpisodesPage.qml:653
368−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/EpisodesPage.qml:653
324+#: ../app/ui/EpisodesPage.qml:787
369325msgid "Unfavourite"
370326msgstr ""
371327
372−#: ../app/ui/EpisodesPage.qml:653
373−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/EpisodesPage.qml:653
328+#: ../app/ui/EpisodesPage.qml:787
374329msgid "Favourite"
375330msgstr ""
376331
377−#: ../app/ui/EpisodesPage.qml:668
378−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/EpisodesPage.qml:668
332+#: ../app/ui/EpisodesPage.qml:802
379333msgid "Show episode description"
380334msgstr ""
381335
382336#: ../app/ui/EpisodesTab.qml:81
383−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/EpisodesTab.qml:81
384337msgid "Recent"
385338msgstr ""
386339
387340#: ../app/ui/EpisodesTab.qml:81
388−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/EpisodesTab.qml:81
389341msgid "Downloads"
390342msgstr ""
391343
392344#: ../app/ui/EpisodesTab.qml:81
393−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/EpisodesTab.qml:81
394345msgid "Favourites"
395346msgstr ""
396347
397348#: ../app/ui/EpisodesTab.qml:246
398−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/EpisodesTab.qml:246
399349msgid "Unfavourite episode(s)"
400350msgstr ""
401351
402352#: ../app/ui/EpisodesTab.qml:309
403−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/EpisodesTab.qml:309
404353msgid "No New Episodes"
405354msgstr ""
406355
407356#: ../app/ui/EpisodesTab.qml:311
408−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/EpisodesTab.qml:311
409357msgid "No Downloaded Episodes"
410358msgstr ""
411359
412360#: ../app/ui/EpisodesTab.qml:313
413−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/EpisodesTab.qml:313
414361msgid "No Favourited Episodes"
415362msgstr ""
416363
417364#: ../app/ui/EpisodesTab.qml:315
418−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/EpisodesTab.qml:315
419365msgid "No Episodes Found"
420366msgstr ""
421367
422368#: ../app/ui/EpisodesTab.qml:321
423−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/EpisodesTab.qml:321
424369msgid "No more episodes to listen to!"
425370msgstr ""
426371
427372#: ../app/ui/EpisodesTab.qml:323
428−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/EpisodesTab.qml:323
429373msgid "No episodes have been downloaded for offline listening"
430374msgstr ""
431375
432376#: ../app/ui/EpisodesTab.qml:325
433−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/EpisodesTab.qml:325
434377msgid "No episodes have been favourited."
435378msgstr ""
436379
437380#: ../app/ui/EpisodesTab.qml:327
438−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/EpisodesTab.qml:327
439381msgid "No Episodes found matching the search term."
440382msgstr ""
441383
442384#: ../app/ui/EpisodesTab.qml:456
443−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/EpisodesTab.qml:456
444385msgid "Downloads in progress"
445386msgstr ""
446387
447388#: ../app/ui/EpisodesTab.qml:496
448−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/EpisodesTab.qml:496
449389msgid "Downloaded episodes"
450390msgstr ""
451391
452392#: ../app/ui/EpisodesTab.qml:506
453−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/EpisodesTab.qml:506
454393msgid "Today"
455394msgstr ""
456395
457396#: ../app/ui/EpisodesTab.qml:510
458−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/EpisodesTab.qml:510
459397msgid "Yesterday"
460398msgstr ""
461399
462400#: ../app/ui/EpisodesTab.qml:514
463−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/EpisodesTab.qml:514
464401msgid "Older"
465402msgstr ""
466403
467404#. TRANSLATORS: The string shown in the UI is -15s to denote the number of seconds that the podcast playback will skip backward.
468405#: ../app/ui/FullPlayingView.qml:241
469−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/FullPlayingView.qml:241
470406#, no-c-format, qt-format
471407msgid "-%1s"
472408msgstr ""
473409
474410#. TRANSLATORS: The string shown in the UI is +15s to denote the number of seconds that the podcast playback will skip forward.
475411#: ../app/ui/FullPlayingView.qml:302
476−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/FullPlayingView.qml:302
477412#, no-c-format, qt-format
478413msgid "+%1s"
479414msgstr ""
480415
481416#: ../app/ui/ImportPage.qml:18
482−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/ImportPage.qml:18
483417msgid "Choose"
484418msgstr ""
485419
486420#: ../app/ui/NowPlayingPage.qml:34
487−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/NowPlayingPage.qml:34
488421msgid "Now Playing"
489422msgstr ""
490423
491424#: ../app/ui/NowPlayingPage.qml:73
492−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/NowPlayingPage.qml:73
493425msgid "Full view"
494426msgstr ""
495427
496428#: ../app/ui/NowPlayingPage.qml:73
497−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/NowPlayingPage.qml:73
498429msgid "Queue"
499430msgstr ""
500431
501432#: ../app/ui/PodcastsTab.qml:55 ../app/ui/SearchPage.qml:57
502433#: ../app/ui/SearchPage.qml:174
503−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/PodcastsTab.qml:55
504−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SearchPage.qml:57
505−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SearchPage.qml:174
506434msgid "Search Podcast"
507435msgstr ""
508436
509437#: ../app/ui/PodcastsTab.qml:95
510−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/PodcastsTab.qml:95
511438msgid "Search podcast"
512439msgstr ""
513440
514441#: ../app/ui/PodcastsTab.qml:125
515−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/PodcastsTab.qml:125
516442msgid "No Podcast Subscriptions"
517443msgstr ""
518444
519445#: ../app/ui/PodcastsTab.qml:125 ../app/ui/SearchPage.qml:220
520−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/PodcastsTab.qml:125
521−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SearchPage.qml:220
522446msgid "No Podcasts Found"
523447msgstr ""
524448
525449#: ../app/ui/PodcastsTab.qml:126
526−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/PodcastsTab.qml:126
527450msgid ""
528451"You haven't subscribed to any podcasts yet, visit the 'Add New Podcasts' "
529452"page to add some."
530453msgstr ""
531454
532455#: ../app/ui/PodcastsTab.qml:127 ../app/ui/SearchPage.qml:222
533−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/PodcastsTab.qml:127
534−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SearchPage.qml:222
535456msgid "No podcasts found matching the search term."
536457msgstr ""
537458
538459#: ../app/ui/PodcastsTab.qml:213
539−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/PodcastsTab.qml:213
540460#, qt-format
541461msgid "%1 unheard episode"
542462msgid_plural "%1 unheard episodes"
@@ -544,55 +464,45 @@ msgstr[0] ""
544464msgstr[1] ""
545465
546466#: ../app/ui/SearchPage.qml:65
547−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SearchPage.qml:65
548467msgid "Add Podcast"
549468msgstr ""
550469
551470#: ../app/ui/SearchPage.qml:73
552−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SearchPage.qml:73
553471msgid "Import Podcasts"
554472msgstr ""
555473
556474#: ../app/ui/SearchPage.qml:135
557−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SearchPage.qml:135
558475msgid "Save Podcast"
559476msgstr ""
560477
561478#: ../app/ui/SearchPage.qml:162
562−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SearchPage.qml:162
563479msgid "Feed URL"
564480msgstr ""
565481
566482#: ../app/ui/SearchPage.qml:189
567−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SearchPage.qml:189
568483msgid "Unable to subscribe"
569484msgstr ""
570485
571486#: ../app/ui/SearchPage.qml:190
572−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SearchPage.qml:190
573487msgid "Please check the URL and try again"
574488msgstr ""
575489
576490#: ../app/ui/SearchPage.qml:220
577−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SearchPage.qml:220
578491msgid "Looking to add a new podcast?"
579492msgstr ""
580493
581494#: ../app/ui/SearchPage.qml:221
582−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SearchPage.qml:221
583495msgid ""
584496"Click the 'magnifier' at the top to search or the 'plus' button to add by URL"
585497msgstr ""
586498
587499#: ../app/ui/SearchPage.qml:288
588−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SearchPage.qml:288
589500msgid "Subscribe"
590501msgstr ""
591502
592503#. TRANSLATORS: The first argument here is the date of when the podcast was last updated followed by
593504#. the podcast description.
594505#: ../app/ui/SearchPage.qml:326
595−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SearchPage.qml:326
596506#, qt-format
597507msgid ""
598508"Last Updated: %1\n"
@@ -600,70 +510,51 @@ msgid ""
600510msgstr ""
601511
602512#: ../app/ui/SearchPage.qml:383
603−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SearchPage.qml:383
604513msgid "Not Available"
605514msgstr ""
606515
607−#: ../app/ui/SearchPage.qml:499
608−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SearchPage.qml:499
516+#: ../app/ui/SearchPage.qml:508
609517msgid "Please wait"
610518msgstr ""
611519
612−#: ../app/ui/SearchPage.qml:500
613−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SearchPage.qml:500
520+#: ../app/ui/SearchPage.qml:509
614521msgid "Importing podcasts..."
615522msgstr ""
616523
617−#: ../app/ui/SearchPage.qml:518
618−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SearchPage.qml:518
524+#: ../app/ui/SearchPage.qml:527
619525msgid "imported"
620526msgstr ""
621527
622528#. TRANSLATORS: This strings refers to the seeking of the episode playback. Users can set how far they
623529#. want to seek forward when pressing on this button.
624530#: ../app/ui/SettingsPage.qml:65 ../app/ui/SettingsPage.qml:206
625−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SettingsPage.qml:65
626−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SettingsPage.qml:206
627531msgid "Skip forward"
628532msgstr ""
629533
630534#: ../app/ui/SettingsPage.qml:72 ../app/ui/SettingsPage.qml:107
631535#: ../app/ui/SettingsPage.qml:207 ../app/ui/SettingsPage.qml:214
632−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SettingsPage.qml:72
633−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SettingsPage.qml:107
634−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SettingsPage.qml:207
635−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SettingsPage.qml:214
636536#, qt-format
637537msgid "%1 seconds"
638538msgstr ""
639539
640540#: ../app/ui/SettingsPage.qml:77 ../app/ui/SettingsPage.qml:112
641541#: ../app/ui/SettingsPage.qml:147
642−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SettingsPage.qml:77
643−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SettingsPage.qml:112
644−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SettingsPage.qml:147
645542msgid "OK"
646543msgstr ""
647544
648545#. TRANSLATORS: This strings refers to the seeking of the episode playback. Users can set how far they
649546#. want to seek backward when pressing on this button.
650547#: ../app/ui/SettingsPage.qml:100 ../app/ui/SettingsPage.qml:213
651−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SettingsPage.qml:100
652−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SettingsPage.qml:213
653548msgid "Skip back"
654549msgstr ""
655550
656551#. TRANSLATORS: This strings refers to refreshing podcasts. Users can set how often they
657552#. want to check for new episodes.
658553#: ../app/ui/SettingsPage.qml:135 ../app/ui/SettingsPage.qml:238
659−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SettingsPage.qml:135
660−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SettingsPage.qml:238
661554msgid "Refresh podcasts after"
662555msgstr ""
663556
664557#: ../app/ui/SettingsPage.qml:142 ../app/ui/SettingsPage.qml:239
665−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SettingsPage.qml:142
666−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SettingsPage.qml:239
667558#, qt-format
668559msgid "%1 hours"
669560msgstr ""
@@ -671,105 +562,93 @@ msgstr ""
671562#. TRANSLATORS: Shortened form of "Miscellaneous" which is shown to denote other setting options
672563#. that doesn't fit into any other category.
673564#: ../app/ui/SettingsPage.qml:176
674−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SettingsPage.qml:176
675565msgid "General Settings"
676566msgstr ""
677567
678568#: ../app/ui/SettingsPage.qml:189
679−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SettingsPage.qml:189
680569msgid "Displays podcasts in a list view"
681570msgstr ""
682571
683572#: ../app/ui/SettingsPage.qml:201
684−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SettingsPage.qml:201
685573msgid "Playback Settings"
686574msgstr ""
687575
688576#: ../app/ui/SettingsPage.qml:221
689−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SettingsPage.qml:221
690577msgid "Continue where stopped"
691578msgstr ""
692579
693580#: ../app/ui/SettingsPage.qml:233
694−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SettingsPage.qml:233
695581msgid "Podcast Episode Settings"
696582msgstr ""
697583
698584#: ../app/ui/SettingsPage.qml:246
699−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SettingsPage.qml:246
700585msgid "Automatically delete old episodes"
701586msgstr ""
702587
703588#: ../app/ui/SettingsPage.qml:248
704−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SettingsPage.qml:248
705589msgid ""
706590"Delete episodes that are older than a given number of days for each podcast"
707591msgstr ""
708592
709593#: ../app/ui/SettingsPage.qml:260
710−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SettingsPage.qml:260
711594msgid "Automatically download new episodes"
712595msgstr ""
713596
714597#: ../app/ui/SettingsPage.qml:262
715−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SettingsPage.qml:262
716598msgid "Default number of new episodes to download for each podcast"
717599msgstr ""
718600
719601#: ../app/ui/SettingsPage.qml:274
720−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SettingsPage.qml:274
721−msgid "Only download over WiFi"
602+msgid "Automatically delete listened episodes"
722603msgstr ""
723604
724605#: ../app/ui/SettingsPage.qml:276
725−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SettingsPage.qml:276
606+msgid "Automatically delete listened episodes on application start"
607+msgstr ""
608+
609+#: ../app/ui/SettingsPage.qml:291
610+msgid "Only download over WiFi"
611+msgstr ""
612+
613+#: ../app/ui/SettingsPage.qml:293
726614msgid "Download episodes only when the device is using WiFi"
727615msgstr ""
728616
729−#: ../app/ui/SettingsPage.qml:296
730−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SettingsPage.qml:296
617+#: ../app/ui/SettingsPage.qml:313
731618msgid "Refresh podcast artwork"
732619msgstr ""
733620
734−#: ../app/ui/SettingsPage.qml:298
735−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SettingsPage.qml:298
621+#: ../app/ui/SettingsPage.qml:315
736622msgid "Update all podcasts artwork and fix missing ones"
737623msgstr ""
738624
739−#: ../app/ui/SettingsPage.qml:327
740−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SettingsPage.qml:327
625+#: ../app/ui/SettingsPage.qml:344
741626msgid "Storage Settings"
742627msgstr ""
743628
744−#: ../app/ui/SettingsPage.qml:338
745−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SettingsPage.qml:338
629+#: ../app/ui/SettingsPage.qml:355
746630msgid "Delete orphaned files and links"
747631msgstr ""
748632
749−#: ../app/ui/SettingsPage.qml:340
750−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SettingsPage.qml:340
633+#: ../app/ui/SettingsPage.qml:357
751634msgid "Free space by removing orphaned downloaded files and links"
752635msgstr ""
753636
754−#: ../app/ui/SettingsPage.qml:370
755−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SettingsPage.qml:370
637+#: ../app/ui/SettingsPage.qml:387
756638msgid "Removed orphaned files and links"
757639msgstr ""
758640
759−#: ../app/ui/SettingsPage.qml:370
760−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SettingsPage.qml:370
641+#: ../app/ui/SettingsPage.qml:387
761642msgid "No orphans found!"
762643msgstr ""
763644
764−#: ../app/ui/SettingsPage.qml:371
765−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SettingsPage.qml:371
645+#: ../app/ui/SettingsPage.qml:388
766646msgid ""
767647"All orphaned files have been deleted to recover disk space. Orphaned links "
768648"pointing at invalid files have also been cleaned up."
769649msgstr ""
770650
771−#: ../app/ui/SettingsPage.qml:373
772−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SettingsPage.qml:373
651+#: ../app/ui/SettingsPage.qml:390
773652msgid ""
774653"No orphaned files have been found to recover disk space. Podphoenix database "
775654"is clean."
@@ -777,23 +656,19 @@ msgstr ""
777656
778657#. TRANSLATORS: Shortened form of "Miscellaneous" which is shown to denote other setting options
779658#. that doesn't fit into any other category.
780−#: ../app/ui/SettingsPage.qml:388
781−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SettingsPage.qml:388
659+#: ../app/ui/SettingsPage.qml:405
782660msgid "Misc."
783661msgstr ""
784662
785−#: ../app/ui/SettingsPage.qml:404
786−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/ui/SettingsPage.qml:404
663+#: ../app/ui/SettingsPage.qml:421
787664msgid "Report Bug"
788665msgstr ""
789666
790667#: ../app/welcomewizard/Slide1.qml:42
791−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/welcomewizard/Slide1.qml:42
792668msgid "Welcome to Podphoenix"
793669msgstr ""
794670
795671#: ../app/welcomewizard/Slide1.qml:53
796−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/welcomewizard/Slide1.qml:53
797672msgid ""
798673"Enjoy your favourite shows with Podphoenix, the chirpiest podcast manager "
799674"for Ubuntu.\n"
@@ -802,29 +677,24 @@ msgid ""
802677msgstr ""
803678
804679#: ../app/welcomewizard/Slide1.qml:82
805−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/welcomewizard/Slide1.qml:82
806680msgid "Swipe to move between pages"
807681msgstr ""
808682
809683#: ../app/welcomewizard/Slide2.qml:45
810−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/welcomewizard/Slide2.qml:45
811684msgid "Discover New Podcasts"
812685msgstr ""
813686
814687#: ../app/welcomewizard/Slide2.qml:62
815−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/welcomewizard/Slide2.qml:62
816688msgid ""
817689"Podphoenix uses the iTunes® database to provide access to a huge collection "
818690"of podcasts. You can also add podcasts by their URL."
819691msgstr ""
820692
821693#: ../app/welcomewizard/Slide3.qml:45
822−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/welcomewizard/Slide3.qml:45
823694msgid "Smart Settings"
824695msgstr ""
825696
826697#: ../app/welcomewizard/Slide3.qml:62
827−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/welcomewizard/Slide3.qml:62
828698msgid ""
829699"Podphoenix can optionally download new episodes and clean up old episodes "
830700"automatically, this can be enabled from the settings page."
@@ -834,12 +704,10 @@ msgstr ""
834704#. For instance, if the app was in english, then it is appropriate to set this string as
835705#. Hallo or Bonjour etc to symbolize the internationalization feature in podphoenix.
836706#: ../app/welcomewizard/Slide4.qml:48
837−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/welcomewizard/Slide4.qml:48
838707msgid "Hallo! Bonjour!"
839708msgstr ""
840709
841710#: ../app/welcomewizard/Slide4.qml:67
842−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/welcomewizard/Slide4.qml:67
843711#, qt-format
844712msgid ""
845713"Podphoenix is available in over 15 languages and is translated by the %1 "
@@ -847,12 +715,10 @@ msgid ""
847715msgstr ""
848716
849717#: ../app/welcomewizard/Slide5.qml:45
850−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/welcomewizard/Slide5.qml:45
851718msgid "Touch Gestures"
852719msgstr ""
853720
854721#: ../app/welcomewizard/Slide5.qml:64
855−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/welcomewizard/Slide5.qml:64
856722msgid ""
857723"Episodes can be swiped left to reveal more actions (or right click if you're "
858724"using a mouse). You can also multi-select them by long-pressing on an "
@@ -860,13 +726,11 @@ msgid ""
860726msgstr ""
861727
862728#: ../app/welcomewizard/Slide6.qml:45
863−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/welcomewizard/Slide6.qml:45
864729msgid "Support"
865730msgstr ""
866731
867732#. TRANSLATORS: The %1 points to a url defined in html format <a href=\link\>Link</a>.
868733#: ../app/welcomewizard/Slide6.qml:65
869−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/welcomewizard/Slide6.qml:65
870734#, qt-format
871735msgid ""
872736"If you find any bugs or have any feature requests, let us know on our "
@@ -874,28 +738,21 @@ msgid ""
874738msgstr ""
875739
876740#: ../app/welcomewizard/Slide7.qml:45
877−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/welcomewizard/Slide7.qml:45
878741msgid "Enjoy"
879742msgstr ""
880743
881744#: ../app/welcomewizard/Slide7.qml:62
882−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/welcomewizard/Slide7.qml:62
883745msgid "We hope you enjoy using Podphoenix!"
884746msgstr ""
885747
886748#: ../app/welcomewizard/Slide7.qml:75
887−#: ../build/x86_64-linux-gnu/app/install/share/qml/podphoenix/welcomewizard/Slide7.qml:75
888749msgid "Finish"
889750msgstr ""
890751
891−#: ../build/aarch64-linux-gnu/app/po/Podphoenix.desktop.in.h:1
892−#: ../build/x86_64-linux-gnu/app/po/Podphoenix.desktop.in.h:1
893−#: /home/iko/Developer/podphoenix/build/aarch64-linux-gnu/app/po/Podphoenix.desktop.in.h:1
752+#: /home/kugiigi/Documents/Development/Podphoenix/podphoenix/build/x86_64-linux-gnu/app/po/Podphoenix.desktop.in.h:1
894753msgid "The chirpiest podcast manager for Ubuntu"
895754msgstr ""
896755
897−#: ../build/aarch64-linux-gnu/app/po/Podphoenix.desktop.in.h:2
898−#: ../build/x86_64-linux-gnu/app/po/Podphoenix.desktop.in.h:2
899−#: /home/iko/Developer/podphoenix/build/aarch64-linux-gnu/app/po/Podphoenix.desktop.in.h:2
756+#: /home/kugiigi/Documents/Development/Podphoenix/podphoenix/build/x86_64-linux-gnu/app/po/Podphoenix.desktop.in.h:2
900757msgid "podcast;audio;itunes;broadcast;digital;stream;podcatcher;video;vodcast;"
901758msgstr ""