Commit Graph

894 Commits

Author SHA1 Message Date
Tobias Fella
6dbe0fd921 Move globaldrawer into own file 2024-01-11 21:52:10 +01:00
Tobias Fella
6fb08350cb Modernize cmake 2024-01-11 21:52:10 +01:00
Bart De Vries
866d111049 Port away from qt5compat graphical effects 2024-01-11 21:52:10 +01:00
Bart De Vries
6fa9f90cdc Fix: add explicit arguments to qml signal handlers 2024-01-05 16:20:29 +01:00
Bart De Vries
5d7ed68544 Fix mobile volume button size
Align with the size of the other buttons on the player controls page.
2024-01-05 16:11:20 +01:00
Bart De Vries
30fadd17d8 Fix taphandler on touchscreen
Taphandler emits NoButton instead of LeftButton on touchscreen
2023-12-28 14:23:38 +00:00
Bart De Vries
9483607a20 Make playPause() also work when player is in stopped state 2023-12-04 13:43:55 +01:00
Bart De Vries
749eb17c56 Fix app silently closing when minimized to tray 2023-12-04 13:42:38 +01:00
Bart De Vries
bce24aa9c6 Fix vertical alignment of text in player controls toolbar 2023-11-28 14:54:44 +01:00
Bart De Vries
74f52e6171 Fix close to tray 2023-11-28 12:58:36 +01:00
Tobias Fella
6f567175b9
Fix windows even more 2023-11-27 13:50:06 +01:00
Tobias Fella
3fef53a355 Fix windows build 2023-11-26 18:22:11 +00:00
Tobias Fella
98806ae6b3
Fix kirigami name 2023-11-14 19:07:00 +01:00
Tobias Fella
60c260b4ac
Adapt apk building to Qt6 2023-11-09 20:07:01 +01:00
Bart De Vries
566780ab49 Fix NavigationTabBar API breakage 2023-11-09 19:02:11 +01:00
Bart De Vries
52a1f08e02 Add a switch to globally enable/disable network status checks
Make error reporting less ambiguous: report either "no connection" or
"not allowed on metered connection".  Also show hint how to disable
network status checking altogether.

BUG: 475400
2023-11-07 21:06:19 +00:00
Carl Schwan
d82fad4547 Port to RoundedItemDelegate
CCBUG: 473945
2023-11-06 15:33:40 +01:00
Bart De Vries
7dd5d33caa Do not use transactions for DB reads
Otherwise this will block the DB for other actions.  SQLITE should
always allow reads regardless of other ongoing actions/transactions (or
at least in WAL mode if I remember correctly).
2023-11-05 10:50:49 +01:00
Bart De Vries
9c79fc131b Fix ListSectionHeaders on DownloadPage
Also remove the workaround for a qt5 bug which apparently is no longer
there with qt6.
2023-11-03 14:59:13 +01:00
Bart De Vries
00d53bc21d Fix streaming button showing up instead of download button
BUG: 476144
2023-10-27 14:07:50 +02:00
Bart De Vries
34f65245bd Speed up feed updates dramatically
Instead of always parsing the entire RSS/atom feed, we keep a hash of
the contents of the feed in the database.  If the hash of the new feed
retrieval matches the hash in the database, we know nothing has changed
and we can skip the detailed parsing of the feed altogether.
2023-10-26 11:19:28 +00:00
Bart De Vries
f6977d2e74 Enable color scheme selection through settings
FEATURE: 460177
2023-10-26 10:25:48 +02:00
Bart De Vries
0e2fbd547a Restructure files: add utils directory 2023-10-26 09:52:23 +02:00
Bart De Vries
1afb62c314 Fix tooltips 2023-10-17 14:16:02 +02:00
Tammes Burghard
cae5571a90 Move VolumeSlider into dedicated file and also use it on mobile 2023-10-03 19:31:29 +00:00
Tobias Fella
f975d0f1ba Make ToolTips more consistent 2023-10-03 15:53:03 +02:00
Bart De Vries
38475c64fe More formal signal handler argument declarations
CCBUG: 475117
2023-10-02 21:42:22 +02:00
Bart De Vries
19dc371084 More formal declaration of arguments in signal handlers 2023-09-28 14:33:14 +02:00
Bart De Vries
fa40d2b4c6 Fix chapter dialog and list highlighting 2023-09-28 14:26:08 +02:00
Bart De Vries
9525bf075a Use formal argument declaration on qml signal handlers 2023-09-28 13:26:31 +02:00
Bart De Vries
184b84f8fd Try to solve issue with image mipmap not applying properly 2023-09-28 13:26:12 +02:00
Bart De Vries
5efc201bd8 Use Settings module from QtCore 2023-09-28 13:25:18 +02:00
Bart De Vries
a46ab103af Rework delegates to use latest kirigami(-addons) features 2023-09-28 09:27:31 +02:00
Tammes Burghard
c5536938be Volume slider: add tooltip and improve wheel action
BUG: 472762
2023-09-27 16:51:16 +02:00
Tobias Fella
53f94dbae0 Port search away from BasicListItem 2023-09-27 14:00:33 +02:00
Alexey Andreyev
735a879cce Port away from BasicListItem
For ChapterListDelegate
2023-09-27 02:08:44 +03:00
Alexey Andreyev
ad96d5a80f Port away from BasicListItem
For ConnectionCheckAction
2023-09-27 02:08:44 +03:00
Alexey Andreyev
adc7339da7 Port away from BasicListItem
For SynchronizationSettingsPage
2023-09-27 02:08:44 +03:00
Alexey Andreyev
51fdaeaddd Port away from BasicListItem
For GlobalSearchField
2023-09-27 02:08:38 +03:00
Jack Hill
d865d3b27d KF6: Port away from manually closing Kirigami.MenuDialog
This is now handled automatically by the dialog itself
2023-09-14 14:36:43 +00:00
Bart De Vries
2a58b3002e Remove all qt5-only code 2023-09-14 16:26:37 +02:00
Tobias Fella
b33222cc68 Remove all QML import versions 2023-09-14 13:04:37 +00:00
Bart De Vries
fbb7cda6f1 More qml/kiragami changes and fixes 2023-09-13 13:09:29 +02:00
Bart De Vries
8c06247e16 Migrate to KF6 Page actions 2023-09-13 13:09:29 +02:00
Tobias Fella
b1414a18f2 Port QML to Qt6 2023-09-13 13:09:29 +02:00
Tobias Fella
a0abb5019b Use AboutPage from KirigamiAddons.FormCard 2023-09-06 10:21:33 +00:00
Carl Schwan
19d0129d01
Adapt to MobileForm -> FormCard renaming
This also simplify some code
2023-08-09 17:07:19 +02:00
Carl Schwan
507e502ebe
settings: Port to new KirigamiAddons.CategorizedSettings 2023-08-09 16:32:59 +02:00
Bart De Vries
376bb6db29 Revert to non-proxied QueueModel
The proxy model was causing issues with item dragging.
The model would reset after each swapped item.  This meant that items
could only be swapped one position at a time.
2023-07-27 16:50:59 +02:00
Bart De Vries
af6e581bee Fix and prevent nullptr dereferences in AudioManager
This would happen when the current track is changed to "no track".
Signals from the backend KMediaSession would still trigger duration()
calls which would try to dereference the pointer to the current track
entry.
2023-07-27 13:33:41 +02:00
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