794 Commits

Author SHA1 Message Date
Bart De Vries
c3ca038af7 Implement backend to allow Feed list sort and search
The current list of things to sort on (ascending and descending), includes:
- unplayed episodes
- new episodes
- favorite episodes
- title (alphabetical)
For the first three categories, the value of the sort quantity will be shown
in the upper right corner of the delegate.

BUG: 471012
CCBUG: 459885
2023-07-27 09:24:03 +00:00
Bart De Vries
5c8502718a Implement sorting for queue and episode lists
Also move filter action (menu) from the search bar back into the main toolbar.

BUG: 466855
2023-07-26 08:17:23 +00:00
Emir SARI
5a69783ffb Adopt string casings according to HIG 2023-07-25 17:06:52 +00:00
Bart De Vries
cad8af469e Add missing icons for android build 2023-07-23 16:01:35 +02:00
Bart De Vries
dea35cc271 Port to AlbumMaximizeComponent from kirigami-addons
Replace the custom FullScreenImage component (which was a copy of a
component used in other apps) with the new AlbumMaximizeComponent from
kirigami-addons.
2023-07-22 16:12:32 +02:00
Bart De Vries
a77a312533 Give priority to image embedded in audio file if it exists 2023-07-22 14:09:03 +00:00
Emir SARI
24b8271f8b Adopt string casings according to HIG 2023-07-20 09:35:57 +00:00
Emir SARI
c4cb10b7aa Adopt string casings according to HIG
This commit also improve formatting and style in some places.
2023-07-19 12:30:03 +00:00
Bart De Vries
46fc8904ec Restrict filenames to alphanumeric characters 2023-07-17 14:52:02 +02:00
Eamonn Rea
dc311cac7b Use Entry title to set downloaded file name
Instead of using the MD5 hash of the enclosure download URL, we
create a filename which follows `feedname/entry_title.hash.ext`, where
feedname is a uniquefied feed title (stored in the DB), a truncated version
of the entry title, a shortened hash based on the download URL, and the
original file extension extracted from the download URL.

BUG: 457848
2023-07-17 14:52:02 +02:00
Bart De Vries
319c579ba0 Fix mMedia nullptr dereference in VLC backend metadata call
CCBUG: 470263
2023-06-18 16:35:29 +02:00
Bart De Vries
8b3603eb56 More safeguards for getFeed and getEntry calls 2023-06-18 16:31:42 +02:00
Bart De Vries
b529bfc3ca Fix segfault when trying to remove a non-subscribed podcast
BUG: 471107
2023-06-18 15:12:59 +02:00
Bart De Vries
21952c67e9 Make grace time configurable for marking episodes as played
BUG: 468687
2023-06-09 11:11:42 +00:00
Bart De Vries
0c54ab7edf Refactor to use QNetworkInformation instead of SolidExtras for Qt6
SolidExtras will still be used for the Qt5 version for the time being.
This refactoring makes it trivial to rip out SolidExtras once the jump
to Qt6-only will be made.
2023-06-02 19:11:10 +02:00
Bart De Vries
eac74ecbbb [KMediaSession] Only send MRPIS2 positionChanged signal on seek
Stop spamming the DBus with positionChanged signals if playback is
progressing at the nominal playback rate.  This brings the
implementation in line with the MPRIS2 player spec.  The previous
implementation was causing android battery drain issues with KDEConnect
constantly updating the position (and player details) on the notification
widget.
This implementation will still send the current playback position every
10 seconds to ensure that clients that don't implement the standard
properly or did not receive previous messages, will still get regularly
updated.
This also fixes correct signaling of playback rate changes over DBus.
2023-06-01 10:42:58 +02:00
Bart De Vries
caff8da25f Expand FeedListPage PlaceholderMessage with helpful actions 2023-05-25 18:47:46 +02:00
Bart De Vries
cbf2888754 Also update fullscreen image if chapter image in HeaderBar changes
BUG: 470194
2023-05-25 18:37:39 +02:00
Harry Kaimenas
39f215c897 Add adjustable seek times
Make seek times adjustable. Expose seek time under Playback Settings.
Set min time allowed in seconds to 1 and max time in seconds to 300.

FEATURE: 468686
2023-05-11 07:26:31 +00:00
Bart De Vries
f69366f6fd Load custom icons through fallbackSearchPaths
BUG: 469567
2023-05-10 14:30:43 +02:00
Bart De Vries
1115f2b686 Update i18n to add context to FeedListPage 2023-04-28 14:13:08 +02:00
Bart De Vries
6865c8c57e Add actionName for SettingsActions (preparation for kf6) 2023-04-26 16:26:46 +02:00
Bart De Vries
e6052dbbba Also handle opening the settings dialog through pushPage() 2023-04-26 16:23:35 +02:00
Bart De Vries
188c1d08e4 Use MenuItem for search field selection in GlobalSearchField 2023-04-26 10:29:27 +02:00
Bart De Vries
cee5ed71fa Small refactorings to prepare for qt6 2023-04-26 10:24:15 +02:00
Bart De Vries
e20509f621 Fix kf6 globaldrawer loading issue 2023-04-25 22:10:06 +02:00
Bart De Vries
ef627c047e Remove custom contextDrawer which is no longer used 2023-04-25 14:34:01 +02:00
Bart De Vries
27f4d6145b Prepare for KF6 change in Page actions 2023-04-25 12:58:31 +02:00
Bart De Vries
ba1cefd5fc Use breeze style on android
The font issues should be solved in qqc2-breeze-style 5.27.4, which is
now used by binary factory.
2023-04-25 12:10:10 +02:00
Bart De Vries
5026b25352 Revert back to MenuItem
Up to now, RadioButton and CheckButton were added to Menus explicitly
because MenuItem would not use the correct delegate (i.e. CheckButton
instead of RadioButton for a selection group).  Since this has been
fixed in qqc2-desktop-style, we can use the proper component again.
2023-04-25 10:51:32 +02:00
Bart De Vries
8a9dc0f22f Also delete partially downloaded played episodes on startup
Previously only fully downloaded episodes that had been played
were deleted on startup.
2023-04-24 14:19:43 +02:00
Bart De Vries
8e04263469 Add missing icons for Android 2023-03-23 19:01:22 +01:00
Bart De Vries
db234722cb Add implementation for favorites
BUG: 459886
2023-03-23 15:45:06 +00:00
Bart De Vries
4d41fc96a3 Fix member array of model not being cleared on refresh 2023-03-21 19:56:32 +01:00
Bart De Vries
97e66aa587 Replace i18n by i18nc in EntryPage 2023-03-21 16:18:25 +01:00
Bart De Vries
0bfd0b919e Make Kasts use the system proxy settings
BUG: 467490
2023-03-19 08:53:57 +00:00
Bart De Vries
3935987705 Re-enable Material style on Android
Breeze style seems to have significant font issues on some Android
devices.
2023-03-16 21:02:33 +01:00
Bart De Vries
02179c72be Add missing document-save icon to android build 2023-03-16 13:40:56 +01:00
Bart De Vries
ffbc064908 Re-enable glyph cache workaround for android 2023-03-16 13:40:56 +01:00
Bart De Vries
45e50e40fb Fix bug with empty feed causing nullptr dereference
If an empty URL was entered (i.e. only whitespace) then that would be
accepted and added to the database as temporary entry to be loaded and
checked later.  However, sqlite will convert this to a NULL entry.  This
would lead to Kasts not being able to retrieve that feed from the DB,
and hence not being able to create a proper object.  This would then
lead to a nullptr dereference down the line.
Note that this is a corner case: other invalid URLs are spotted
correctly and do not cause the application to crash.

BUG: 467394
2023-03-15 15:10:47 +01:00
Bart De Vries
56b30203eb Remove "new" status when starting playback of an episode
Before the introduction of streaming, the "status" would be removed when
an episode was downloaded or marked as played, which made sense.  With
the introduction of streaming it makes sense to also remove the "new"
status when (streaming) playback starts.  At that point in time the
episode should indeed no longer considered to be "new".
2023-03-15 12:52:24 +01:00
Bart De Vries
03d090fd92 Add check for the existence of entry before using entry.title 2023-03-14 16:23:34 +01:00
Bart De Vries
bc658bcbe2 Android style changes
- Remove qtquickcontrols2.conf
- Use glyph cache workaround only on non-Android
2023-03-14 12:08:30 +01:00
Bart De Vries
e45dd71c83 Switch to breeze style on android 2023-03-13 14:10:55 +01:00
Bart De Vries
1d28cdfed5 Prepare for KF6 2023-03-01 10:28:23 +01:00
Bart De Vries
841c43fb09 Remove unneeded import of QtQuick.Dialogs 2023-02-28 16:13:41 +01:00
Bart De Vries
757b88a84d Scroll to item that's opened from GlobalSearchPopup 2023-02-28 16:00:37 +01:00
Bart De Vries
25a22d7bdc Fix filter message being shown for unsubscribed feeds 2023-02-28 15:41:47 +01:00
Bart De Vries
c5f4fd23fc Set database to WAL mode on startup
Using WAL mode avoids having to lock the database for certain
transactions.  Therefore, deadlocks between read/writes from different
threads should not happen anymore.  These were rare, but happened
sometimes on slower hardware or slow storage devices.

BUG: 465110
2023-02-28 14:50:21 +01:00
Bart De Vries
6e998d608c Use FolderDialog for non-flatpak builds
Flatpaks have a problem with FolderDialog from labs: it never returns a
path.  Therefore Kasts was - up to now - using FileDialog from QtQuick1.
However, this was causing problems on Android and Windows.  Now we only
use QtQuick1 FileDialog for flatpak and FolderDialog everywhere else.

CCBUG: 458331
2023-02-28 14:09:10 +01:00