Commit Graph

28 Commits

Author SHA1 Message Date
Bart De Vries
c061a01c59 Wrap feed update routine in KJob and make it more efficient
The feed update routine which is now spread over several methods
in Fetcher, is now put into a self-contained KJob.  This will allow
to re-use this job later on in e.g. gpodder sync, where it's
required to update feeds before syncing episode statuses.

This also makes the feed update abortable.

Lastly, but most importantly, the feed update procedure has been
optimized to minimize database transactions, resulting in a dramatic
speed-up.  This is especially true for importing new feeds, which
will now be at least 5x faster on slow hardware.
2021-10-01 22:36:42 +02:00
Bart De Vries
4b2da3533c Enable multi-selection and context menus on all lists of entries
This commit adds keyboard navigation to entry lists.
Selection of items can be done through keyboard (shift+up/down), mouse
(left, left+shift, left+ctrl) or touch (long press).
When items are selected, contextual actions will show up on
the page (useful for touch screens), or, alternatively, a context menu
with the same actions can be opened through right mouse click (useful
for desktop).
If a single entry is selected, then only the relevant actions will be
shown (e.g. only "Mark as Played" if the entry has not been played yet).

Additionally, (database) transactions for the actions have been
optimized.  This was necessary to make sure that actions on large
selections of entries finish within an acceptable time.  E.g. actions on
a list of 1000 items should finish within a few seconds (on all but
underpowered hardware).

BUG: 441764
2021-09-19 21:37:10 +02:00
Bart De Vries
bb8cd2807c Refactor EpisodeModel and DownloadModel to make them more performant 2021-09-18 19:07:15 +02:00
Bart De Vries
117f314d0d Move models to dedicated directory 2021-09-18 19:07:15 +02:00
Swapnil Tripathi
95ee97aefe Expanded the model with more roles and designed frontend. 2021-07-07 12:57:45 +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
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
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
1b1654d1f4 Apply clang-format 2021-05-01 21:35:37 +02:00
Bart De Vries
d1618943f5 Update based on review by Tobias Fella 2021-05-01 21:09:07 +02:00
Bart De Vries
73c333cf61 Add possibility to delete feed from entrylistpage 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
295b98a903 Refactor import feeds to be able to show progress 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
130b10aefb Add first version of EpisodeListPage 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
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
28b47f6a4b Refactor addToQueue and change visible actions on EntryListDelegate 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
e1b374e375 Make app restore last playing item 2021-04-21 14:53:02 +02:00
Bart De Vries
ed7f75de13 Send proper signals when adding or removing queue items 2021-04-21 14:53:02 +02:00
Bart De Vries
06bffdb5e3 Add "new" and "playposition" to database
These fields have been added to, respectively, Entries and Enclosures.
2021-04-21 14:53:02 +02:00
Bart De Vries
7e05231b63 Make sure that everything is cleaned up when removing a feed 2021-04-21 14:52:33 +02:00
Bart De Vries
e670a65f6d Finish most of the Queue manipulations 2021-04-21 14:52:33 +02:00
Bart De Vries
5e0772eb63 More work on queuemodel refactoring 2021-04-21 14:52:33 +02:00
Bart De Vries
0808d3b5fe Almost done with complete refactoring (no queue yet) 2021-04-21 14:52:33 +02:00
Bart De Vries
13868709e7 A lot of progress on refactoring with DataManager 2021-04-21 14:52:33 +02:00
Bart De Vries
8035f0fd60 First work on datamanager 2021-04-21 14:52:33 +02:00