Swapnil Tripathi
32260be05e
Remove ScrollView
2021-07-06 20:52:18 +00:00
Swapnil Tripathi
fa65447874
Added slowing of playback rate and using OverlaySheet(desktop) and OverlayDrawer(mobile).
2021-07-06 20:52:18 +00:00
Bart De Vries
8cd1237540
Mark another TODO as solved: make a setting for removing played episodes from queue
2021-07-06 22:36:51 +02:00
Bart De Vries
30f694ba09
Add some more settings regarding marking episodes as played
2021-07-06 22:34:26 +02:00
Bart De Vries
fe2a977a6b
Add setting to automatically delete episodes when they're marked as played
...
The 3 possibilities are:
0 = Disabled = Do not delete episodes
1 = Immediately = Delete immediately
2 = OnNextStartup = Delete on next startup (default)
Fixes #14
2021-07-06 22:34:26 +02:00
Bart De Vries
143ff3a2ed
Fix AddFeedSheet battling for focus on startup
2021-07-06 20:33:25 +02:00
Bart De Vries
73b2cf565c
Fix recursive loop when last track finishes playing
2021-07-06 19:21:57 +02:00
Bart De Vries
f9287e94f8
Fix Accessible onPressed actions
2021-07-06 18:29:26 +02:00
Bart De Vries
a5a24fb08c
Use transactions to do database migration
...
This was already implemented for 2 -> 3.
Now also for 1 -> 2.
Additionally, remove unnecessary whitespace in debug statement
2021-07-06 18:29:22 +02:00
Bart De Vries
104cafbd41
Focus text field when adding new podcast + make return key work
2021-07-06 18:29:05 +02:00
Bart De Vries
374a7ef116
Set default page in case lastOpenedPage/getPage cannot be found
2021-07-06 17:04:03 +02:00
Bart De Vries
9731795e62
Solve deadlock in startup between ErrorLogModel and AudioManager
2021-07-06 17:03:25 +02:00
Bart De Vries
d2cee8a066
Add error overlay for Invalid Media
...
This implements a TODO mentioned in the sources.
2021-07-04 16:52:05 +02:00
Bart De Vries
1b3df48ce8
Solve TODO: unload entry from audio player when it's removed from the queue
2021-07-04 16:51:47 +02:00
Bart De Vries
d0bc5b2b26
Add capability to check whether network connection is metered
...
For now this only works with NetworkManager. The related settings are
greyed out on systems not using NetworkManager.
Some details of the implementation:
- Implement settings in the settings menu to enable/disable feed
updates, episode downloads and/ or image downloads on metered
connections. If the option(s) is disabled, an overlay dialog is shown
with options to "not allow", "allow once", or "allow always".
- If the network is down, no attempt is made to download images and the
fallback image will be used until the network is up again.
This also solves an issue where the application hangs when the network
is down and feed images have not been cached yet.
- Next to this, part of the cachedImage implementation in Entry and Feed
has been refactored to re-use code as part of the image() method in
Fetcher.
- In case something unexpected happens, an error will be logged.
2021-07-03 20:20:27 +02:00
Bart De Vries
acef37fa58
Fix database migration by avoiding DROP COLUMN AND ADD COLUMN
2021-06-29 20:52:40 +02:00
Bart De Vries
3a24ea6f65
Avoid RENAME COLUMN to make db migration more robust
...
RENAME COLUMN was only introduced in sqlite 3.25. So it's probably
better to avoid it for the time being to increase compatibility with
older versions.
2021-06-28 08:04:41 +02:00
Bart De Vries
e0154355aa
Fix drawer handle positioning for settings and about Pages
2021-06-27 10:44:43 +02:00
Swapnil Tripathi
17e8e75993
Highlighting the current menu item in the GlobalDrawer.
2021-06-27 03:57:49 +05:30
Bart De Vries
265b3109cb
Make EntryPage close when that entry is deleted from the DownloadListPage
2021-06-24 17:13:04 +02:00
Bart De Vries
bcafb26c8c
Add filesize units to download progress
...
This adds the currently downloaded size and the total enclosure size to
the entry delegate.
2021-06-24 17:12:07 +02:00
Bart De Vries
d7debaaf30
Rework Download list page
...
This page now has section headers, and show Downloading, Partially
Downloaded and Downloaded enclosures with relevant actions for each.
2021-06-24 11:49:24 +02:00
Bart De Vries
f197e6ab02
Implement Enclosure::PartiallyDownloaded status
...
Still to be done:
- Update Download Page to show partial downloads.
- Connect signals to Download Page to update whenever an enclosure
changes status. This is broken by this commit because
downloadCountChanged has been removed.
2021-06-23 23:04:18 +02:00
Bart De Vries
03081edc66
Improve estimate of enclosure download size, also when resuming
2021-06-23 22:29:15 +02:00
Bart De Vries
69a87b1afc
Add icons needed for OverlaySheet on android
2021-06-23 17:17:28 +02:00
Bart De Vries
e86111ed55
Move error list to settings page (as overlaysheet)
2021-06-22 16:26:43 +02:00
Bart De Vries
a331366d41
Replace Audio prepare hack by nicer, asynchronous solution
...
The main bits of this implementation are:
- Start a new track in paused state. We don't care about the actual
media state or player state that QMediaPlayer is reporting. We will
deal with that when the audio actually starts playing.
- If a player position needs to be restored, we set d->m_pendingSeek to
the position that needs to be seeked. We don't actually seek because
we have no idea what state the player is in yet.
- On the positionChanged signal of QMP, and if the media is buffered, we
check if there is pendingSeek value set which is set to a different
value than the current player position. If so, we call
d->m_player.setPosition(). If we have arrived at the correct
position, then we reset d->m_pendingSeek to -1.
- In the position(), duration() and seek() methods, we return sensible
values, even QMP is not. So, we report the duration from the
enclosure, the position from d->m_pendingSeek, and let seek() change
the value of d->m_PendingSeek (if it's not -1) to the new seek
position.
- When there's a pending seek, we set the notifyInterval to shorter
interval to reduce the startup audio glitch as much as possible. We
then reset it to the default of 1000 msec.
This was tested on linux and android.
2021-06-20 19:14:07 +02:00
Bart De Vries
49977adc38
Refactor Error implementation and add Error::Type
...
- This refactoring also includes a cleanup of a lot of header includes to
avoid circular dependencies.
- The error message will now be shown below the info message.
- Add database migration (for Errors)
2021-06-19 17:09:44 +02:00
Bart De Vries
bd738610bc
Small fixes in androidlogging.h
2021-06-19 15:35:56 +02:00
Bart De Vries
14868bf04e
Apply clang-format
2021-06-19 13:29:47 +02:00
Bart De Vries
4d6d8ae940
Add basic logging capabilities on android.
...
This implements debug logging which can be checked through logcat.
2021-06-19 00:26:24 +02:00
Bart De Vries
0c7e5ca63b
Do not try to read enclosure length on entries that don't have an enclosure
2021-06-16 09:25:52 +02:00
Bart De Vries
048f294b2b
Fix inhibit suspend on Gnome
...
The inhibit dbus call to gnome sessionmanager expects flags as input.
Currently the flags are set to 4, which will "Inhibit the session being
marked as idle". This is insufficient to prevent the device from
suspending while playing.
We should also add 8 = "Inhibit suspending the session or computer".
Hence, the updated flags to 12.
This change was tested on phosh/phoc and it properly prevents the
system from suspending. The flags = 12 settings is also what gnome
music players like Lollypop are using (as checked through the gnome
sessionmanager dbus interface).
2021-06-15 13:03:41 +02:00
Bart De Vries
26d3755922
Use debug categories in fetcher.cpp for partial downloads
2021-06-11 20:30:15 +02:00
Bart De Vries
1f35c0a25c
Don't clean up partial downloads, such that they can be resumed
2021-06-11 16:59:03 +02:00
Bart De Vries
a24fb7d731
Get correct enclosure file size as soon as possible when download starts
2021-06-11 16:59:03 +02:00
Bart De Vries
d24b7ed7d0
Write downloads to disk and enable download resume
...
This enables the download method in Fetcher to resume in case a partial
download is already saved to disk.
For full implementation of download resumes, more changes are required,
because the current application will automatically clean up files that
don't match the expected size at startup.
2021-06-11 16:59:03 +02:00
Bart De Vries
6d57a0586b
Explicitly set logo for about page to logo.sv resource file
2021-06-08 15:44:44 +02:00
Bart De Vries
0b8c1856c9
Mark episode as unread when adding to queue
2021-06-08 14:19:50 +02:00
Bart De Vries
4187e05310
Remove filter for <li> and <ul> tags in entry content
2021-06-08 13:33:09 +02:00
Tobias Fella
6a95dfe4ed
Try fixing logo not visible in AboutPage on android
2021-06-08 00:48:34 +02:00
Swapnil Tripathi
20c10d9380
Small Fix.
2021-06-08 02:52:11 +05:30
Bart De Vries
2ed33aa750
Add debugging logging categories
2021-06-05 22:03:22 +02:00
Bart De Vries
8437a44a7b
Remove obsolete timeString method
2021-06-05 11:59:57 +02:00
Bart De Vries
e311a1d1d4
Avoid resizing or re-coloring globaldrawer on mobile
2021-06-04 14:02:28 +02:00
Bart De Vries
05859cdca0
Add missing icon for android build
2021-06-04 09:05:44 +02:00
Swapnil Tripathi
0fd2fca1f1
Updated minimum height and width
2021-06-04 01:30:28 +05:30
Tobias Fella
3f1f3045ec
Port away from KDeclarative
2021-06-03 16:23:06 +02:00
Swapnil Tripathi
2145c58333
Added minimum width and height
2021-06-03 15:13:38 +05:30
Swapnil Tripathi
5dc33049de
Fix heading text elide.
2021-06-02 21:28:59 +00:00
Bart De Vries
a565f6eec1
Disable text wrapping in HeaderBar to avoid nasty binding loops
2021-06-02 22:21:39 +02:00
Mathis Brüchert
f49ace47e3
change the sidebar to the normal page background color for contrast reasons
2021-06-02 22:13:54 +02:00
Bart De Vries
974a078e5f
Set separate bottom spacing for update and error overlay messages
2021-06-02 22:05:24 +02:00
Bart De Vries
121b4b4d08
Make HeaderBar fixed height instead of a fraction of the window height
2021-06-02 22:05:24 +02:00
Swapnil Tripathi
46568fa131
Set title to a max of 2 lines.
2021-06-02 20:00:18 +00:00
Swapnil Tripathi
617a85925c
Added duration labels, fixed header background color and other small fixes.
2021-06-02 20:00:18 +00:00
Swapnil Tripathi
4f02d8676f
Desktop mode updated
2021-06-02 20:00:18 +00:00
Swapnil Tripathi
44bb387b54
Added Header Bar
2021-06-02 20:00:18 +00:00
Bart De Vries
7a19e8f288
Fix fallback image if dark theme is used
...
When using a dark theme, the RSS icon will appear in (nearly) white on a
white background. Let's fix the icon colour to black to always get the
same fallback image.
2021-06-02 20:49:15 +02:00
Bart De Vries
b48270a637
Replace grayed out episode colours by "played" label on delegate
2021-06-01 20:27:43 +02:00
Bart De Vries
9c2d6ecdc0
Align copyright headers with other files in Kasts
2021-06-01 16:47:21 +02:00
Bart De Vries
e81b62839a
Fix app-crashing binding loop in FeedListPage
...
The binding loop occured whenever the vertical scrollbar appears or
disappears. The GUI then gets stuck between solutions: one with a
certain amount of columns and another with one column less or more. It
then keeps alternating between these two until the app freezes the
machine and eventually crashes.
The fix is to calculate the number of columns based on the total width
of the Page itself, rather than the width of the content. By
subtracting enough space for the scrollbar, the cards on the page will
now rescale smoothly and properly.
2021-06-01 16:22:03 +02:00
Bart De Vries
4ecbc0597a
Switch to introspection dbus interface and add licenses
2021-05-31 20:50:00 +02:00
Bart De Vries
8c620e63ac
Remove unnecessary QtMultimedia imports
2021-05-31 11:42:11 +02:00
Bart De Vries
eec54d3095
Move feed update action to header on desktop
...
The refresh buttons currently show up as main action buttons at the
bottom on desktop since they are placed inside SwipeViews/tabs. Move
these actions to the hierarchical parent ScrollablePages so they end up
in the header bar.
2021-05-31 11:32:46 +02:00
Swapnil Tripathi
ea9074ac22
Update EpisodeListPage.qml
2021-05-30 18:25:21 +00:00
Bart De Vries
9d78b5b488
Run clang-format
2021-05-28 23:16:35 +02:00
Bart De Vries
3983e09634
Use qCDebug in AudioManager
2021-05-28 22:55:18 +02:00
Bart De Vries
28b461da07
Consistently capitalize i18n strings
2021-05-28 22:16:14 +02:00
Bart De Vries
9ae93dd064
Properly implement MPRIS Raise() method
2021-05-28 21:51:51 +02:00
Bart De Vries
b776dd22cb
Contextualize singleShots
2021-05-28 16:54:00 +02:00
Bart De Vries
858601aec3
Change from old style connects to function pointers
2021-05-28 16:49:55 +02:00
Bart De Vries
4d4859a698
Replace AudioManager::timeString by KFormat::formatDuration
2021-05-28 16:42:12 +02:00
Bart De Vries
13b59adb29
Move author into i18nc call
2021-05-28 16:21:47 +02:00
Bart De Vries
d45eebf43a
Do not push Settings and About to layers stack
2021-05-27 23:29:14 +02:00
Bart De Vries
df6a15b160
Remove unused m_audio private member in queuemodel.h
2021-05-27 22:57:08 +02:00
Bart De Vries
370b023a3b
Change CMake targets from Qt5::x to Qt::x
2021-05-27 22:46:24 +02:00
Yuri Chornoivan
46916ac2d9
Add i18n()
2021-05-27 18:42:52 +03:00
Mathis Brüchert
afce79ce87
make the sidebar less wide
2021-05-27 17:00:56 +02:00
Bart De Vries
e78965051c
Revert the dependence on wideScreen to avoid app-crashing binding loops
2021-05-27 16:56:15 +02:00
Bart De Vries
04833efa7f
Make sure that globaldrawer doesn't disappear on resize
2021-05-25 21:57:01 +02:00
Mathis Brüchert
76fbfa35a4
add header in sidebar
2021-05-25 21:25:14 +02:00
Bart De Vries
99c1424327
Add setting to continue playback after end of current track
2021-05-23 21:35:38 +02:00
Bart De Vries
086e0ef664
Make sure that globalDrawer is not open on mobile on startup
2021-05-23 21:34:37 +02:00
Mathis Brüchert
4342794ac4
Make GlobalDrawer be a sidebar on desktop
2021-05-23 14:07:34 +00:00
Swapnil Tripathi
21e9d0b9a7
Fix segfault when removing feeds with currently playing entries
2021-05-22 09:05:33 +00:00
Bart De Vries
2eb1092f46
Make AudioManager owned and instantiated by c++
2021-05-20 21:42:13 +02:00
Bart De Vries
eab5d08acd
Fix database storage bug in ErrorLogModel
2021-05-15 20:31:32 +02:00
Bart De Vries
4e34e76ee0
Replace "feed" by "podcast"
2021-05-12 20:57:56 +02:00
Bart De Vries
f1961abe4c
Add Accessibility information to ListDelegates
2021-05-12 20:48:54 +02:00
Bart De Vries
cce0afd3a0
Add setting to show title overlay on FeedListDelegate images
2021-05-12 20:46:48 +02:00
Bart De Vries
0fc8cca3ef
Add missing brackets to if statement body
2021-05-12 13:53:22 +02:00
Tobias Fella
9cbfde6d7c
Add more license information
2021-05-12 13:43:49 +02:00
Anubhav Choudhary
79659c99f0
[cli] Added functionality to add feed through command line
2021-05-12 13:25:25 +02:00
Tobias Fella
4b32d7699a
Set style for windows
2021-05-12 13:02:55 +02:00
Tobias Fella
55e13ab059
Fix height on resized images
2021-05-12 01:28:41 +02:00
Tobias Fella
6cf133d1d6
Replace "Feed" with "Podcast" in user-visible strings
...
Should be more understandable
2021-05-11 13:12:38 +02:00
Tobias Fella
3d2d935307
Update description
2021-05-11 12:58:19 +02:00
Bart De Vries
dbd108ac44
Make PlayerControls buttons scale properly
...
Also reworked some of the spacings and alignments of items on
PlayerControls to better make use of the available space and look
consistent across themes/styles (e.g. Material).
2021-05-10 15:32:58 +02:00
Bart De Vries
687c4ec7d0
Solve anchor issue with InlineMessage
2021-05-08 21:09:21 +02:00
Bart De Vries
33b3685413
Visual alignment of elements and whitespace corrections
2021-05-08 19:09:28 +02:00
Bart De Vries
a7bac204ad
Implement InlineMessage displaying download/update errors
2021-05-08 18:54:29 +02:00
Bart De Vries
506a419aff
Update text on FeedDetailsPage to apply to podcasts rather than RSS feeds
2021-05-08 16:24:15 +02:00
Bart De Vries
53cba484fb
Only show subtitle in header if it's not empty
2021-05-08 16:20:06 +02:00
Bart De Vries
9c83ee08e8
Show BusyIndicator on newly added feeds until they have finished updating
2021-05-08 16:13:28 +02:00
Bart De Vries
3f4eedb8df
Enable setting for automatic feed refreshing on startup
2021-05-07 22:19:14 +02:00
Bart De Vries
236c579bef
Enable setting for automatic download of new episodes
2021-05-07 22:19:02 +02:00
Bart De Vries
d224eb1b24
Add header to QueuePage with remaining episodes and time
2021-05-07 15:33:39 +02:00
Bart De Vries
1461c7e86c
Remove instance() method from AudioManager
...
AudioManager is currently owned by qml, so it's highly confusing to have
this routine, since it would give a pointer to another instance than the
one owned by qml.
2021-05-07 15:28:14 +02:00
Bart De Vries
cfae4a9fa9
Defer resetting the new flag on feeds until everything's been processed
...
Resetting the flag immediately can lead to situations where all entries
of a new feed are marked as new if the initial feed import gets
interrupted somehow. E.g. when the user quits the application while
doing an initial import.
2021-05-07 10:26:58 +02:00
Bart De Vries
372f91f4fb
Fix mistake: loadPageWithProperties should have been loadPage
2021-05-05 21:56:48 +02:00
Bart De Vries
d4d8daa73d
Make sure that initialPage is not triggered on every globaldrawer action
2021-05-05 16:58:43 +02:00
Bart De Vries
ce360f5ff8
Correct fillMode setting in PlayerControls
2021-05-05 16:57:35 +02:00
Bart De Vries
7e29417db7
Add property to ImageWithFallback to handle image fillMode
2021-05-05 15:56:55 +02:00
Bart De Vries
51b007ce95
Remove settings from Alligator which are not used anymore in Kasts
2021-05-05 15:06:38 +02:00
Bart De Vries
97c3fc6e4d
Use ImageWithFallback also in MinimizedPlayerControls and PlayerControls
...
This leverages re-use of code and simplifies having to define fallbacks
everywhere images are displayed. It also gets rid of the dependency of
logo.png (which became problematic after the alligator logo was removed
from this repo).
2021-05-05 14:06:33 +02:00
Bart De Vries
8e3a688ddf
Don't mark any episodes as new when adding new feeds
...
Tobias was right; marking one (or more) episodes as "new" on a new feed
doesn't make a lot of sense. The latest episode from some podcast feeds
can be very old. Besides, it's quite annoying having a lot of episodes
queued automatically...
2021-05-05 14:04:47 +02:00
Bart De Vries
f2efa50b82
Fix build after logo.png was removed
2021-05-05 13:50:35 +02:00
Bart De Vries
1c44e717ae
Renaming alligator to kasts everywhere
2021-05-03 22:31:45 +02:00
Bart De Vries
dd5e10f973
Fix whitespace and inconsistencies in action text
2021-05-03 16:00:05 +02:00
Bart De Vries
0846dd9d9b
Disable DBus as dependency for Android
2021-05-03 12:59:06 +02:00
Bart De Vries
fb1516281e
Avoid double "Add to queue" actions on EntryPage
...
Instead of showing "add to queue" as main action and left action, the main
action will show "delete download", leaving "add to queue" as left
action.
This does mean that "delete download" can be main action or right
action, but this is nevertheless an improvement for now...
2021-05-02 15:03:44 +02:00
Bart De Vries
34c5e5309c
Implement timeString method to create HH:mm:ss strings from qint64
...
This method is now used in all places where a HH:mm:ss string is
required.
2021-05-02 09:42:49 +02:00
Bart De Vries
173b86b85d
Get rid of downloadStatusChanged in Enclosure
...
Instead change the signature on statusChanged so it can pass on all
required information instead of needing two signals with separate
signatures.
2021-05-02 09:05:26 +02:00
Bart De Vries
c9af45f2ce
Change from qmlRegisterSingletonType to qmlRegisterSingletonInstance
2021-05-02 09:04:19 +02:00
Bart De Vries
1b1654d1f4
Apply clang-format
2021-05-01 21:35:37 +02:00
Bart De Vries
e774e09f48
Fix missing pre-compiler directives for android in powermanagementinterface
2021-05-01 21:21:09 +02:00
Bart De Vries
d1618943f5
Update based on review by Tobias Fella
2021-05-01 21:09:07 +02:00
Bart De Vries
4aa2f14eb7
Apply 50 suggestion(s) to 19 file(s)
2021-05-01 18:59:08 +00:00
Bart De Vries
5a9aa35748
Generate dbus sleep inhbit interfaces from XML
2021-04-30 23:12:22 +02:00
Bart De Vries
6edbd91f18
Set setPreventSleep in play() and pause()
...
Making it toggle based on the playerState did not work properly because
the stream is toggling between pause and play several times in the
prepareAudioStream method.
2021-04-30 21:45:11 +02:00
Bart De Vries
cbf0d9c622
Comment out some qDebug() statements
2021-04-30 19:13:43 +02:00
Bart De Vries
2e777630bc
Remove asynchronous loading of Loader in ImageWithFallback
2021-04-30 14:47:13 +02:00
Bart De Vries
8ce5ee0e88
Add dialog-close to icons for Android
2021-04-30 14:46:48 +02:00
Bart De Vries
ead73ac2fe
Safeguard against QMediaPlayer::InvalidMedia
...
In case of the InvalidMedia status, skip to next track and delete the
invalid enclosure.
2021-04-30 11:57:39 +02:00
Bart De Vries
3439d1c34b
Add progress loader symbols to loading images and refreshing feeds
2021-04-29 22:48:43 +02:00
Bart De Vries
b2568e390b
Finish ImageWithFallback and use cachedImage everywhere
2021-04-29 22:48:43 +02:00
Bart De Vries
c35f057a19
Add cachedImage properties to Entry and Feed
...
This property returns the path to the cached image if it's been
downloaded, or return "" if it's not been downloaded yet, or "no-image"
in case the image property does not contain a URL to an image.
2021-04-29 22:48:43 +02:00
Bart De Vries
7e5206a61c
Make ImageWithFallback load images dynamically
2021-04-29 22:48:43 +02:00
Bart De Vries
f0106aceef
Introduce ImageWithFallback
2021-04-29 22:48:43 +02:00
Bart De Vries
f91dfda504
Use native onClicked in FeedListDelegate
2021-04-29 22:48:43 +02:00
Bart De Vries
16a5cfbcf9
Add OverlaySheet with actions on FeedList
2021-04-29 22:48:43 +02:00
Bart De Vries
1ebbafc87f
Work on getting feedList to look like CardsGridView
...
Next up, add actions somehow.
2021-04-29 22:48:43 +02:00
Bart De Vries
cfea2e9ad1
Add close button to AddFeed OverlaySheet
2021-04-29 22:48:43 +02:00
Bart De Vries
184ba72208
Safeguard against downloaded enclosures of 0 size
2021-04-29 22:19:34 +02:00
Bart De Vries
9b7d943a89
Add actions to be able to remove non-podcast entries from queue
2021-04-29 11:32:16 +02:00
Bart De Vries
36ad248e55
Do some additional checks on entry before loading in AudioManager
2021-04-29 11:28:59 +02:00
Bart De Vries
943b66207b
Fix automatic resizing of articles; re-instate custom font sizes
2021-04-27 22:08:19 +02:00
Bart De Vries
9ebc6ecb7e
Fix wonky behaviour of FooterBar when resizing and PlayerControls are open
2021-04-27 21:46:43 +02:00
Bart De Vries
02e92f9a8f
Remove numberNewEpisodes from settings
...
Also clean up the unused allowStreaming setting
2021-04-27 20:58:01 +02:00
Bart De Vries
6938b331c3
Move toggleRemainingTime to general settings group
2021-04-27 20:48:51 +02:00
Bart De Vries
4d526e89c3
Fix incorrect text on actions on EntryPage
2021-04-27 11:21:23 +02:00
Bart De Vries
64ba96fa32
Remove irrelevant commented out line
2021-04-27 10:54:18 +02:00
Bart De Vries
49d7897e97
Rename showRemainingTime to toggleRemainingTime
2021-04-27 10:16:38 +02:00
Bart De Vries
f26c1d5854
Add Bart De Vries as author in AboutData
2021-04-27 10:00:17 +02:00
Bart De Vries
76c30dff87
Fix issues identified in review by Tobias Fella
2021-04-27 09:43:58 +02:00
Bart De Vries
c37ee7c7dd
Apply 17 suggestion(s) to 7 file(s)
2021-04-27 07:31:26 +00:00
Bart De Vries
f2c6c3fae2
Avoid race condition when adding feed
...
When adding a feed and simultaneously starting a feed update, a race
condition could happen where the feed update would catch up with the
feed adding, and start adding and marking old episodes as new before
the original addFeed method would reach them.
2021-04-26 16:58:22 +02:00
Bart De Vries
0d275b8400
Don't show clear error button when there are no errors
...
Also add the icon to the icons to be packed for android.
2021-04-26 10:57:55 +02:00
Bart De Vries
aa5dd6bdbf
Minor fixes for the "Refresh all feeds" actions
2021-04-26 08:05:06 +02:00
Bart De Vries
7d21f5fbe7
Finish basic ErrorListPage implementation
2021-04-25 14:34:14 +02:00
Bart De Vries
3653aa4687
More work on the ErrorListPage delegate
2021-04-25 09:54:15 +02:00
Bart De Vries
5a0972372b
Add ErrorModel, just a placholder GUI for now
2021-04-24 23:32:10 +02:00
Bart De Vries
51db7ea1cf
Only use custom gst-pipeline on linux
...
GStreamer is not used as QMediaPlayer backend on other platforms, so
audio will not start with a custom gst-pipeline on Android and Windows.
Still needs a solution to get rid of the horrible pitch change on
Android and Windows, though.
2021-04-23 10:55:59 +02:00
Bart De Vries
e2d59a69b0
Move audio positioning hack into a separate method
...
This allows the hack to be re-used in the play() method. Apparently on
some systems the stream becomes unresponsive again after pausing. So
probably it's required to ensure that the stream is fully seekable and
buffered before restarting playback.
2021-04-22 16:48:13 +02:00
Bart De Vries
28d6f7f525
Fix compiler warnings
2021-04-22 11:00:17 +02:00
Bart De Vries
a50c8bf001
Add capability to monitor ongoing downloads
2021-04-21 23:09:19 +02:00
Bart De Vries
8c32389b65
Add rounded corners to image on PlayerControls
2021-04-21 22:20:58 +02:00
Bart De Vries
fe66490c8f
Remove settings from SettingsPage which are not yet fully implemented
2021-04-21 20:43:18 +02:00
Bart De Vries
6c7a271970
Use custom gst-pipeline to avoid pitch changes when audio is sped up
2021-04-21 20:25:01 +02:00
Bart De Vries
cbc9f11999
Remove redundant mousearea
2021-04-21 15:41:06 +02:00
Bart De Vries
5a28e48be0
Solve problem with padding in PlayerControls
...
Kirigami.Page is always adding padding around the content items. This
gives visual artifacts with the swipepage on the player controls. Part
of the previous page was still visible because the width of the
swipepage entries is less than the width of the full Kirigami.Page that
they are part of.
2021-04-21 15:27:42 +02:00
Bart De Vries
73c333cf61
Add possibility to delete feed from entrylistpage
2021-04-21 14:53:03 +02:00
Bart De Vries
20b767711a
Add rounding to images in genericentrydelegate
...
Also remove the unused rounding in the feedlistdelegate
2021-04-21 14:53:03 +02:00
Bart De Vries
2b5597cbd6
Redesign feedlistpage and feedlistdelegate
2021-04-21 14:53:03 +02:00
Bart De Vries
3870338e65
Add sourceSize to images
2021-04-21 14:53:03 +02:00
Bart De Vries
d949a357ef
Center countlabel in update notification
2021-04-21 14:53:03 +02:00
Bart De Vries
02340ec362
Overload addFeed
2021-04-21 14:53:03 +02:00
Bart De Vries
21b47effa9
Take tabbar into account when displaying update notification
2021-04-21 14:53:03 +02:00
Bart De Vries
cac0a8b8b6
Adapt signature of error signal
...
This will be needed for future error logging.
2021-04-21 14:53:03 +02:00
Bart De Vries
295b98a903
Refactor import feeds to be able to show progress
2021-04-21 14:53:03 +02:00
Bart De Vries
695baf9cbb
Add fetch function that can take a list of urls
2021-04-21 14:53:03 +02:00
Bart De Vries
28e8051500
Implement update status progress indicator
2021-04-21 14:53:03 +02:00
Bart De Vries
53e2560796
Implement backend for feed update progress
2021-04-21 14:53:03 +02:00
Bart De Vries
3c51ad2052
Remove unnecessary unread tab in episodes
2021-04-21 14:53:03 +02:00
Bart De Vries
6a256baa18
Disable more debug output
...
Disable in fetcher and datamanager
2021-04-21 14:53:03 +02:00
Bart De Vries
6cb062dd9c
Disable debug output in queuemodel
2021-04-21 14:53:03 +02:00
Bart De Vries
1faf092d48
Solve problem with entrypage not scrolling
...
The issue was because of a Connection as final component. That seems to
block the scrolling.
By putting the Connection at the top of the ScrollablePage, all problems
are solved.
Very strange ...
2021-04-21 14:53:03 +02:00
Bart De Vries
3a1c88038a
Make sure that drawer handles don't overlap with bottom tabbars
2021-04-21 14:53:03 +02:00
Bart De Vries
c2e4822e85
Remove double definition of duration property in enclosure
2021-04-21 14:53:03 +02:00
Bart De Vries
68771f4911
Solve problem in logic where it would only fetch the first new episode
2021-04-21 14:53:03 +02:00
Bart De Vries
a45351e1de
Make entry models only update if something really changed
2021-04-21 14:53:03 +02:00
Bart De Vries
0f957841b3
Adapt actions specifically for Downloads page
2021-04-21 14:53:03 +02:00
Bart De Vries
7ebfebe01e
Fix potential issue with processing update of authors
2021-04-21 14:53:03 +02:00
Bart De Vries
ae13eb8cfd
Begin refactoring feed updating routines for speed
...
Make sure that property change signals are only emitted when something
has really changed. So far part "feed" has been done. Entries,
enclosures and entry authors still need to be done.
2021-04-21 14:53:03 +02:00
Bart De Vries
dc3599f49c
Don't make PagePool cache pages
...
This has a dramatic performance impact when refreshing feeds when lots
of pages have already been opened.
2021-04-21 14:53:03 +02:00
Bart De Vries
2b11558279
Mark some signal parameters as unused
2021-04-21 14:53:03 +02:00
Bart De Vries
7be1ed28ec
Disable debug output in audiomanager
2021-04-21 14:53:03 +02:00
Bart De Vries
423409403e
Refactor size property in Enclosure
...
This will make sure that the size is automatically updated in the GUI if
it's corrected based on the real, downloaded audio file.
2021-04-21 14:53:03 +02:00
Bart De Vries
7a900b5921
Update enclosure duration if needed
...
If the duration that is mentioned in the enclosure doesn't correspond to
the real duration then update to the real duration in the database.
2021-04-21 14:53:03 +02:00
Bart De Vries
e9d20ec569
Implement Downloads page
...
This change includes an update to the database, adding a downloaded
column in Enclosures.
2021-04-21 14:53:03 +02:00
Bart De Vries
98bc7ffa61
Add icons to make sure they are available on Android
2021-04-21 14:53:03 +02:00
Bart De Vries
6ae1bf5f87
More work on EpisodeSwipePage
...
Implemented
- unread episodes (still looking for better name)
- mobile and non-mobile tab-views
- i18n and messages when lists are empty
2021-04-21 14:53:03 +02:00
Bart De Vries
29d625e810
First attempt at Swipeable episode list (all, new, unread)
2021-04-21 14:53:03 +02:00
Bart De Vries
e92b02795e
Update Kirigami include version
2021-04-21 14:53:03 +02:00
Bart De Vries
130b10aefb
Add first version of EpisodeListPage
2021-04-21 14:53:03 +02:00
Bart De Vries
62440e8609
Remove unneeded includes in models
2021-04-21 14:53:03 +02:00
Bart De Vries
b8b8a312e9
Set opacity to 0.5 for Entries that have been 'read'
2021-04-21 14:53:03 +02:00
Bart De Vries
4fa45b0075
Save last playing track in database instead of config file
2021-04-21 14:53:03 +02:00
Bart De Vries
ed2d1ee2c8
Remove old, unused code
2021-04-21 14:53:03 +02:00
Bart De Vries
da456a19f9
Fix switch to next track on removing currently playing track from Queue
2021-04-21 14:53:02 +02:00
Bart De Vries
07afc98978
Consolidate all EntryDelegate actions
...
QueueDelegates and EntryListDelegates are now using the same actions
defined in GenericEntryDelegate.
2021-04-21 14:53:02 +02:00
Bart De Vries
1ceb5532b2
Close EntryPage when Entry is opened from Queue and Entry is removed from Queue
2021-04-21 14:53:02 +02:00
Bart De Vries
952dbdea5e
Refactor Queue and EntryList to use a GenericEntryDelegate
...
Still to be done is putting the actions into the GenericEntryDelegate
itself.
2021-04-21 14:53:02 +02:00
Bart De Vries
5026703bdd
Add contextual actions to EntryPage
2021-04-21 14:53:02 +02:00
Bart De Vries
9364a5b88f
Clean up old code in comments
2021-04-21 14:53:02 +02:00
Bart De Vries
05e03d20e3
Close entrypage when removing that item from queue when in queuepage
2021-04-21 14:53:02 +02:00
Bart De Vries
b2dd9961ed
Rework actions on queue, entrylist and entrypage
2021-04-21 14:53:02 +02:00
Bart De Vries
23b6b68500
Make sure that canGoNext is accurate when changing anything in queue
2021-04-21 14:53:02 +02:00
Bart De Vries
ecceb5c0fe
Make header on info page of PlayerControl slightly smaller
2021-04-21 14:53:02 +02:00
Bart De Vries
5f4a24a11d
Refactor adding/removing to queue
...
All adding and removing should now go through the entry itself, using
queueStatus.
2021-04-21 14:53:02 +02:00
Bart De Vries
f681ef0f4f
Change to inline header for EntryPage
...
This includes a minor update to GenericListHeader
2021-04-21 14:53:02 +02:00
Bart De Vries
7a3cd64c6b
Add "addToQueue" action for entry if relevant
2021-04-21 14:53:02 +02:00
Bart De Vries
f5930c8399
Make sure that queue status of items is correct
2021-04-21 14:53:02 +02:00
Bart De Vries
7113b23530
Add title to entry description on PlayerControls
2021-04-21 14:53:02 +02:00
Bart De Vries
5a3a5f40d1
Use header on EntryPage
2021-04-21 14:53:02 +02:00
Bart De Vries
8abbae4772
Refactor to re-usable header for list and details pages
2021-04-21 14:53:02 +02:00
Bart De Vries
97d8e8290a
Change default visible action on EntryListDelegate
2021-04-21 14:53:02 +02:00
Bart De Vries
28b47f6a4b
Refactor addToQueue and change visible actions on EntryListDelegate
2021-04-21 14:53:02 +02:00
Bart De Vries
015851287d
Only enable one visible action on queuedelegate
2021-04-21 14:53:02 +02:00
Bart De Vries
d17b422547
Also add playProgressBar to EntryListDelegate
2021-04-21 14:53:02 +02:00
Bart De Vries
00a9d75c33
Make sure that duration and position labels are readable on resize
2021-04-21 14:53:02 +02:00
Bart De Vries
2e118d9a7e
Make sure that canGoNext status is still accurate when queue items have been moved around
2021-04-21 14:53:02 +02:00
Bart De Vries
401f12c02d
Adapt spacing of controls on PlayerControls
2021-04-21 14:53:02 +02:00
Bart De Vries
4edacbc5e8
Make drawer handles disappear when PlayerControls are opened
2021-04-21 14:53:02 +02:00
Bart De Vries
6eca639ce4
Add button to close PlayerControls
2021-04-21 14:53:02 +02:00
Bart De Vries
97bed3def8
Add playProgress progressbar to entry items in queue
2021-04-21 14:53:02 +02:00
Bart De Vries
c158222d33
Delete old commented code and minor restructuring
2021-04-21 14:53:02 +02:00
Bart De Vries
5edc0b0f3e
Fix drawer handles getting in the way of the miniplayer
2021-04-21 14:53:02 +02:00
Bart De Vries
364dd52f9a
Implement swipe to open/close miniplayer/full player
2021-04-21 14:53:02 +02:00
Bart De Vries
0d778c2a47
Add missing bit for MPRIS taskbar progress (which still doesn't work)
2021-04-21 14:53:02 +02:00
Bart De Vries
49baa7915b
More elegant solution for setting MPRIS2 audio duration when changing tracks
2021-04-21 14:53:02 +02:00
Bart De Vries
a624040ef3
Make player robust against having no track loaded at end of queue
2021-04-21 14:53:02 +02:00
Bart De Vries
8c1295372a
Fix enclosure status
...
Enclosure wasn't checking if file existed on disk. Hence, if the
enclosure was reporting a file size of 0 (which matches the non-existent
file size, then it would set the status incorrectly to Enclosure::Downloaded.
2021-04-21 14:53:02 +02:00
Bart De Vries
65c5a16dc8
Expose duration from Enclosure
2021-04-21 14:53:02 +02:00
Bart De Vries
f85dbd0572
Remove episodes from queue once they've been fully played
2021-04-21 14:53:02 +02:00
Bart De Vries
b2ba953a33
Mark fully played episodes as read
2021-04-21 14:53:02 +02:00
Bart De Vries
2f389e02aa
Move some buttons around to more logical places
2021-04-21 14:53:02 +02:00
Bart De Vries
32f01b03bd
Enable next button in Player
...
This functionality has safeguards built in, including a canGoNext
property.
This can be extended with streaming playing in the future.
2021-04-21 14:53:02 +02:00
Bart De Vries
3cc8eeffb4
Solve problem with MPRIS2 handles not working
...
This only happened when no track was loaded at startup.
According to the MPRIS2 spec, a special "properties changed" signal
needs to be sent.
2021-04-21 14:53:02 +02:00
Bart De Vries
2afc8803f8
Final(?) step of cleaning up MPRIS2 implementation
2021-04-21 14:53:02 +02:00
Bart De Vries
3e79321c90
Solve a few remaining problems with MPRIS2
...
Now the application doesn't crash anymore if no track is loading on
startup.
Seeking through MPRIS2 also works again.
2021-04-21 14:53:02 +02:00
Bart De Vries
60330608ac
Refactor the MPRIS2 MediaPlayer2.Player implementation
...
Changed most items to refer to the underlying AudioManager methods and
signals.
WIP: Still need to check the ProgressOnTaskBar stuff.
2021-04-21 14:53:02 +02:00
Bart De Vries
7c4658db2d
Change implementation of seekable in AudioManager
...
We cannot simply pass on the value from the underlying QMediaPlayer,
since it is not reliable (see hacks concerning restoring startup player
position). Instead we keep track of it ourselves and send out the
signal in the proper places.
2021-04-21 14:53:02 +02:00
Bart De Vries
21feef8ce0
Refactor to use skipForward and skipBackward
...
This is done to make the distinction between skipping time and changing
track.
2021-04-21 14:53:02 +02:00
Bart De Vries
791c25ad19
Use next() and previous() in PlayerControl
...
Also change to std::min and std::max for the implementation of next and
previous.
2021-04-21 14:53:02 +02:00
Bart De Vries
2aa237342c
Minor tweak to let MPRIS2 load the correct track info on startup
...
It's still crashing without a proper track being loaded on startup.
Still needs to be resolved.
2021-04-21 14:53:02 +02:00
Bart De Vries
c7164b3f6b
Refactor audiomanager to be closer to MPRIS2 interface
2021-04-21 14:53:02 +02:00
Bart De Vries
139baba454
Remove unused ifdef
2021-04-21 14:53:02 +02:00
Bart De Vries
8fff1e127e
Remove commented, old qml code
2021-04-21 14:53:02 +02:00
Bart De Vries
48e0e509f7
Switch to using PagePool
2021-04-21 14:53:02 +02:00
Bart De Vries
ed58c4eda7
Do not show insertToQueue button if already added to Queue
2021-04-21 14:53:02 +02:00
Bart De Vries
d9013ede9d
Fix another issue with player startup position recovery
2021-04-21 14:53:02 +02:00
Bart De Vries
569c988962
Enabled MPRIS2 (WIP)
...
Simple play controls are working, but there seems to be quite a bit
missing still.
Proper signals are not triggered for the first track on startup.
2021-04-21 14:53:02 +02:00
Bart De Vries
f626cee7af
Fix saving last playing item when application is shutdown
2021-04-21 14:53:02 +02:00
Bart De Vries
593934bc4f
Initial copy and adaptation of MPRIS2 from elisa (WIP)
...
This MPRIS2 implementation compiles without errors, but is not yet
instantiated within the application itself.
To be continued...
2021-04-21 14:53:02 +02:00
Bart De Vries
7e39d83f90
Restore last playing track on startup
2021-04-21 14:53:02 +02:00
Bart De Vries
f5c20a92e2
Slightly adapt (temporary) debug information from enclosure
2021-04-21 14:53:02 +02:00
Bart De Vries
515064e618
Change enclosure license headers
2021-04-21 14:53:02 +02:00
Bart De Vries
f88fb22153
Finally implement restoring playback positions!
2021-04-21 14:53:02 +02:00
Bart De Vries
129707009c
Implement the framework for custom audio starting position
...
What's still needed is the backend for saving the current position
and making the audio player aware of that position when the entry
is changed.
2021-04-21 14:53:02 +02:00
Bart De Vries
527ed67d4a
Remove "source" property from audiomanager
...
Also rename the internal variables of audiomanager to be aligned
with the naming conventions used elsewhere.
2021-04-21 14:53:02 +02:00
Bart De Vries
d531b892e8
Adapt license headers of audiomanager
2021-04-21 14:53:02 +02:00
Bart De Vries
6b62ba2cf9
Add playbackrate capability to AudioManager
2021-04-21 14:53:02 +02:00
Bart De Vries
33f380e387
Clarify comment about read/new status
2021-04-21 14:53:02 +02:00
Bart De Vries
e722ec29ee
Solve issue with miniplayer not hiding on startup
2021-04-21 14:53:02 +02:00
Bart De Vries
3aa4b836d2
Make PlayerManager work
...
Still one issue with the minimized player opening on startup
2021-04-21 14:53:02 +02:00
Bart De Vries
7d94792872
Add audiomanager and powermanagementinterface
...
Both classes are based on classes taken from Elisa.
The audiomanager class will be adapted to add functionality like saving
and restoring play positions and interfacing with MPRIS2.
2021-04-21 14:53:02 +02:00
Bart De Vries
16c052250c
Make main thread more responsive when updating feeds
2021-04-21 14:53:02 +02:00
Bart De Vries
ee13a29d10
Add playposition tracking in enclosure
2021-04-21 14:53:02 +02:00
Bart De Vries
e174269332
Make time countdown setting in player persistent
2021-04-21 14:53:02 +02:00
Bart De Vries
e1b374e375
Make app restore last playing item
2021-04-21 14:53:02 +02:00
Bart De Vries
218b86807e
Make application remember the last opened main page
2021-04-21 14:53:02 +02:00
Bart De Vries
fbaf084a37
Solve issue with imported feeds being processed twice
2021-04-21 14:53:02 +02:00
Bart De Vries
65ef16017b
Rename AlligatorSettings to SettingsManager
2021-04-21 14:53:02 +02:00
Bart De Vries
7468c35b9a
Enable autoDownload
...
There seems to still be a problem with the images not being fetched for
the newly added queue items.
2021-04-21 14:53:02 +02:00
Bart De Vries
718a9ef734
Delete feed pointer as last action
...
This to ensure that there will not be a dangling pointer when doing all
the other delete operations (entries, enclosures, files and images).
2021-04-21 14:53:02 +02:00
Bart De Vries
20730ccc6f
Add autoQueue option to SettingsPage
2021-04-21 14:53:02 +02:00
Bart De Vries
7232238d7b
Add additional checks after enclosure has been downloaded
...
The file size in the database will be corrected if it doesn't match the
real file size.
The "new" status will be unset once the file has been downloaded.
2021-04-21 14:53:02 +02:00
Bart De Vries
61e3af704b
Add "new" label also to queue entries
2021-04-21 14:53:02 +02:00
Bart De Vries
a8e174739f
Implement "new" episodes feature and autoQueue
2021-04-21 14:53:02 +02:00
Bart De Vries
26986616c7
Only mark episodes as read/new on new feeds, not on existing ones
2021-04-21 14:53:02 +02:00
Bart De Vries
056a7b7835
Fix segmentation fault due to non-existent entry in m_feeds
2021-04-21 14:53:02 +02:00
Bart De Vries
3a4cdbfec0
Implement limited number of new entries for new feed
2021-04-21 14:53:02 +02:00
Bart De Vries
58b5719f71
Minor whitespace correction
2021-04-21 14:53:02 +02:00
Bart De Vries
436e66542a
Change to singleton AlligatorSettings class
2021-04-21 14:53:02 +02:00
Bart De Vries
81c2ad90d1
Add "new" label to entry list items
2021-04-21 14:53:02 +02:00
Bart De Vries
4455545daa
More optimizations of PlayerControls
2021-04-21 14:53:02 +02:00
Bart De Vries
a4dea193ad
Make properties for miniplayer size
2021-04-21 14:53:02 +02:00
Bart De Vries
5d5ca2c58b
Add title and feed name below image in PlayerControls
2021-04-21 14:53:02 +02:00