auouymous
e1fc290ef2
Remove all timer deadlocks by using idle_add priority for them.
...
Add util.idle_timeout_add() to register timers with the same priority as
idle_add(). Change the IdleTimeout to also use the idle_add() priority.
This eliminates the chance of a timer blocking any idle_add from
running.
Change most timeout_add's to idle_timeout_add. Change the timer in
DownloadStatusModel::get_next() back to an idle_add.
2023-01-03 06:01:15 -07:00
auouymous
d2f34d0d87
Disable background operations while progress dialogs are open.
...
Changing task state causes UI to hang while DownloadQueueManager spawns
threads and updates progress tab. And the update_downloads_list() timer
can hang UI for several seconds at a time when thousands of tasks are
queued.
Disabling both of these while a progress dialog is open allows tasks to
be queued faster and the dialog closed sooner.
2023-01-03 06:01:15 -07:00
auouymous
36dbad9c53
Refactor ProgressIndicator.
...
Add on_ticks() and max_ticks to simplify code using progress indicators.
And support final ticks to set progress to 100% before a final long
operation.
Change interval from 100ms to 250ms, to allow more time to be spent on
the operation.
2023-01-03 05:58:42 -07:00
Teemu Ikonen
f00eef5e5c
Merge branch 'master' into dev-adaptive
2022-12-19 23:02:01 +02:00
auouymous
d9f05e666a
Only update downloads list when no tasks were queued.
...
Avoids a double update when there are queued tasks.
2022-12-17 01:54:03 -07:00
auouymous
58e678b33f
Use length of tasks, not episodes, for download progress indicator.
2022-12-16 18:17:09 -07:00
auouymous
9babf0eb44
Set download list state only once after batch queueing tasks.
...
Queueing thousands of tasks happens faster when update_download_list()
is not called for each one.
2022-12-16 16:04:33 -07:00
auouymous
e05ba2e929
Don't show episodes without URLs in "new episodes available" when
...
subscribing.
2022-12-15 06:34:00 -07:00
auouymous
6e38e1b527
Set error icon for episodes with invalid URLs.
2022-12-15 06:08:47 -07:00
auouymous
2e7b1678d4
Don't discard episodes with invalid urls and links.
2022-12-15 05:50:27 -07:00
auouymous
6e29aa12ce
Add setting to disable trimming episode title prefix.
2022-12-15 03:41:01 -07:00
auouymous
526c335662
Rename showEpisodeDescription's internal names to match other items.
2022-12-15 03:34:24 -07:00
auouymous
b842e86101
Organize View menu.
...
And move all-episodes and sections settings from preferences to View
menu.
2022-12-15 02:46:18 -07:00
auouymous
d2253d4acd
Cache episode list config values.
...
Decreases episode list update time by 5% for new episodes.
2022-12-15 00:44:37 -07:00
auouymous
f967fa9bda
Change include_description parameter to required.
...
Nothing made use of the optional parameter, and it should always be set
from the config value.
2022-12-14 06:29:54 -07:00
auouymous
3203a0ef81
Remove gPodderSettings_LegacySupport.
2022-12-08 15:59:17 -07:00
auouymous
7aa649e6d1
episode_list_columns -> ui.gtk.episode_list.columns
2022-12-08 15:57:46 -07:00
auouymous
2daa5e9550
podcast_list_hide_boring -> ui.gtk.podcast_list.hide_empty
2022-12-08 15:56:26 -07:00
auouymous
f62e4294e0
podcast_list_view_mode -> ui.gtk.podcast_list.view_mode
2022-12-08 15:55:08 -07:00
auouymous
fcfb9efe1a
episode_list_view_mode -> ui.gtk.episode_list.view_mode
2022-12-08 15:54:24 -07:00
auouymous
fe969e8c15
podcast_list_sections -> ui.gtk.podcast_list.sections
2022-12-08 15:52:23 -07:00
auouymous
8ca292e5a5
podcast_list_view_all -> ui.gtk.podcast_list.all_episodes
2022-12-08 15:50:56 -07:00
auouymous
ff2c19e186
auto_cleanup_downloads -> ui.gtk.download_list.remove_finished
2022-12-08 15:48:16 -07:00
auouymous
bcf84cbdf7
auto_update_feeds -> auto.update.enabled
2022-12-08 15:47:33 -07:00
auouymous
f19632c426
auto_update_frequency -> auto.update.frequency
2022-12-08 15:46:11 -07:00
auouymous
599682f4f2
auto_download -> ui.gtk.new_episodes
2022-12-08 15:43:51 -07:00
auouymous
816b5c15f3
show_toolbar -> ui.gtk.toolbar
2022-12-08 15:39:34 -07:00
auouymous
b39edcfe83
max_episodes_per_feed -> limit.episodes
2022-12-08 15:37:36 -07:00
auouymous
dd269d7b88
auto_remove_unplayed_episodes -> auto.cleanup.unplayed
2022-12-08 15:35:08 -07:00
auouymous
b812c62775
auto_remove_unfinished_episodes -> auto.cleanup.unfinished
2022-12-08 15:33:35 -07:00
auouymous
0bcfd29d76
auto_remove_played_episodes -> auto.cleanup.played
2022-12-08 15:32:05 -07:00
auouymous
c6695f5b69
episode_old_age -> auto.cleanup.days
2022-12-08 15:25:26 -07:00
auouymous
84c35c76fd
max_downloads -> limit.downloads.concurrent
2022-12-08 14:49:33 -07:00
auouymous
04cb6583da
max_downloads_enabled -> limit.downloads.enabled
2022-12-08 14:47:03 -07:00
auouymous
8eb60b8ccf
limit_rate -> limit.bandwidth.enabled
2022-12-08 14:45:24 -07:00
auouymous
39f0376c81
limit_rate_value -> limit.bandwidth.kbps
2022-12-08 14:41:32 -07:00
auouymous
47aa09199d
Get rid of custom icons for each type of audio and video file.
...
The episode list takes 24% more time to render with this feature. It is
also known to produce incorrect icons for some file types.
Fixes #872 .
2022-12-08 04:46:06 -07:00
auouymous
e8af8603a0
Merge pull request #1435 from auouymous/optimize-episode-list
...
Optimize episode list
2022-12-08 04:39:57 -07:00
auouymous
d64c06fa92
Merge pull request #1434 from auouymous/resync-on-file-size-change
...
Check for size mismatch when syncing and send to device again.
2022-11-18 10:50:25 +00:00
auouymous
0e27494361
Merge pull request #1433 from auouymous/remove-localdepends.py
...
Remove localdepends.py.
2022-11-18 10:44:45 +00:00
auouymous
25991ef8bb
Throw exception if youtube channelId is empty.
...
And try to find it in entries. This prevents description and cover art
from being removed when youtube feed is broken.
2022-11-18 03:09:53 -07:00
Teemu Ikonen
d87ac85506
Fix 'W504 line break after binary operator' flake8 warnings
...
Fixed by running
autopep8 -i -r --select=W504 .
and some hand tuning.
2022-11-14 18:32:09 +02:00
Teemu Ikonen
6bd0bb0530
Remove unused imports and pass statements
...
Fixes flake8 error F401.
Most errors were fixed by running
autoflake -i -r --remove-all-unused-imports .
which also removes unnecessary 'pass' statements, some by hand-editing.
2022-11-14 18:32:09 +02:00
auouymous
1b9ed37064
Merge pull request #1382 from tpikonen/ytdl-rename
...
Fix yt-dlp output file name
2022-11-14 04:08:49 +00:00
auouymous
9bdc9d966e
Merge pull request #1303 from auouymous/setting-to-disable-find-as-you-type
...
Add setting to disable find-as-you-type.
2022-11-09 03:42:05 +00:00
auouymous
3f614a1497
Update episode list in 500ms intervals instead 20ms.
...
The UI is still responsive while performing more work per interval and
updating the list in 90% of the time.
2022-11-08 02:10:21 -07:00
auouymous
57d6f6305c
Optimize get_update_fields() tooltip branching.
...
This can decrease episode list update time by 0.2%.
2022-11-08 02:10:20 -07:00
auouymous
f1357ea149
Don't wrap episode fields in tuples, only to immediately unwrap them.
...
And concatenate episode fields instead of iterating over them.
Simplifies the expression and can decrease episode list update time by
0.2%.
2022-11-08 02:10:19 -07:00
auouymous
f9afa2ccaa
Only query time and filesize once, instead of three times per episode.
...
This can decrease episode list update time by 1.5%.
2022-11-08 02:10:17 -07:00
auouymous
fa27760a3c
Join description while formatting it.
...
This can decrease episode list update time by 0.2%.
2022-11-08 02:10:16 -07:00
auouymous
980ad522a9
Get default icon theme once, instead of for each call.
...
This can decrease episode list update time by 1.7%.
2022-11-08 02:10:12 -07:00
auouymous
5c277639de
Check for size mismatch when syncing and send to device again.
...
An interrupted sync results in a partial file on the device and syncing
again would not finish sending the file. Ideally it could also compare
checksums but that would slow down syncing.
Fixes #1416 .
2022-11-08 01:05:05 -07:00
auouymous
c90c58013d
Remove localdepends.py.
...
As of https://github.com/gpodder/gpodder.github.io/pull/42 , it is now
recommended to use pip to install tools/requirements.txt.
2022-11-07 22:51:07 -07:00
auouymous
98208d4444
Merge pull request #1374 from tpikonen/channel-buttons
...
channel editor: Add buttons next to cover, feed URL, etc.
2022-11-08 04:46:23 +00:00
Teemu Ikonen
44befb77f1
Add can_preview to play_or_download() output
...
Use it to decide if 'Preview' is shown in episode contect menu.
2022-11-07 15:28:54 +02:00
Teemu Ikonen
9690b13a3a
Get preview file name from CustomDownload.partial_filename
...
Add 'custom_downloader' member var to DownloadTask. Use it in
episode.get_playback_url() to get a preview file name.
Also add episode.can_preview() method and use it in ep.can_play().
2022-11-07 15:28:54 +02:00
Teemu Ikonen
7b051d245b
Add 'partial_filename' property to DefaultDownload
...
Derive abstract classes CustomDownload and CustomDownloader from ABC
from the abc module. Decorate abstract methods with @abstractmethod.
Add abstract 'partial_filename' property to CustomDownload and make it
concrete in the derived DefaultDownload class. This property holds the
full path of the temporary file where the episode is being downloaded
or None, if the downloader does not use a previewable temporary file.
2022-11-07 15:28:54 +02:00
Teemu Ikonen
236a4c9966
Replace is_on_mobile_screen() with have_touchscreen()
2022-11-03 15:03:52 +02:00
Teemu Ikonen
46dbc80d8b
Merge branch 'master' into dev-adaptive
2022-10-28 21:59:50 +03:00
Teemu Ikonen
9130f39e8c
Do not hide Progress tab resume infobar on page switch
2022-10-24 11:41:58 +03:00
Teemu Ikonen
70c97522e6
Replace SimpleMessageArea with GtkInfoBar when resuming
...
Remove unused SimpleMessageArea code.
2022-10-24 11:41:51 +03:00
Eric Le Lay
c41ca22e5d
Merge pull request #1404 from auouymous/use-symbolic-toolbar-icons
...
Use symbolic toolbar icons.
2022-10-09 12:18:17 +02:00
auouymous
fbcc72a906
Disable progress spinbuttons if unchecked at startup.
...
They correctly enable/disable when the checkbox is clicked, but have
always defaulted to enabled at startup, even when the checkbox is
unchecked.
2022-10-01 05:39:40 -06:00
auouymous
557229c08c
Update progress widgets when their values are modified via edit config.
2022-09-29 21:20:42 -06:00
auouymous
9a4d5e34cd
Add method to clamp a config value between minimum and maximum values.
2022-09-29 21:19:01 -06:00
auouymous
a75a2e411b
Merge pull request #1398 from auouymous/fix-format-time
...
Fix the format_time() function to display times greater than 24 hours.
2022-09-26 01:20:22 +00:00
Eric Le Lay
5825f51183
Merge pull request #1401 from auouymous/catch-sync-device-open-exceptions
...
Catch unknown sync exceptions when opening device and show error.
2022-09-24 19:20:52 +02:00
Eric Le Lay
1ecdbed0df
Merge pull request #1400 from auouymous/log-unwritable-sync-messages
...
Write to log when sync directory is not writable.
2022-09-24 19:19:43 +02:00
Eric Le Lay
cb59e1e051
Merge pull request #1402 from auouymous/open-logs-folder
...
Add menu item to open logs folder.
2022-09-24 19:17:27 +02:00
auouymous
26ca4e7649
Use symbolic toolbar icons.
...
The preferences-desktop icon is not available for 64x64 and larger icon
sizes, and gtk displays a missing icon instead of falling back to
smaller icons. Switching to preferences-other-symbolic would fix the
issue, but the other toolbar icons should probably be changed to
symbolic to match.
2022-09-23 03:40:07 -06:00
B Horn
4e5168d1ba
Quoting file URIs moved by drag and drop
...
When dragging and dropping a podcast into another program, e.g VLC, some
filenames would cause issues (i.e ones with `#`).
Signed-off-by: B Horn <b@horn.uk>
2022-09-21 14:18:29 +02:00
auouymous
b907183b22
Add menu item to open logs folder.
2022-09-19 23:37:31 -06:00
auouymous
37ad7cac89
Catch unknown sync exceptions when opening device and show error.
...
Some devices lack writable info and gpodder assumes they are writable.
This can lead to an exception being thrown when not writable.
2022-09-19 22:51:53 -06:00
auouymous
e59a25e233
Write to log when sync directory is not writable.
...
The error message told user to check logs but nothing had been written.
2022-09-19 22:10:31 -06:00
auouymous
2659333380
Fix the format_time() function to display times greater than 24 hours.
...
Using datetime converts the seconds value into date and time components.
A value of 86400 generates a 00:00 time on the 2nd of January 1970.
The new code properly increments the hour field to 24 and beyond instead
of wrapping around to zero.
2022-09-17 19:29:24 -06:00
auouymous
b8bbcfa088
Don't use idle_add() for progress dialogs that don't need it.
...
The dialog is created inside the function and can be destroyed there as
well. This prevents the idle_add from being blocked forever by a
timeout_add, and the dialog never closing.
Fixes #1311 .
2022-09-17 00:46:57 -06:00
auouymous
fe83a92286
Remove redundant timeout removal when creating progress dialog.
...
It is somehow possible for source_id to be zero, causing a
g_source_remove assertion warning.
2022-09-16 05:28:14 -06:00
auouymous
5c01b6b036
Fix crash on older versions of python.
...
Older versions of python do not treat None as False. This causes
set_sensitive() to crash when None is returned from can_pause().
Fixes #1394 .
2022-09-12 14:16:31 -06:00
Teemu Ikonen
ce02cf6810
util.sanitize_filename_ext: Return an empty ext, if sanitized_ext is empty
...
Prevents file names with two periods before the extension.
2022-09-03 15:09:57 +03:00
auouymous
b9c356f44b
Set "New episodes available" tooltip for episodes with html descriptions.
...
Episodes with an html description did not have a tooltip because the
description field is always empty for them. The new _text_description
field is computed at runtime and should be used for any code wanting a
text description.
Fixes #1350 .
2022-08-30 21:04:56 -06:00
Teemu Ikonen
abca020c30
Set adaptive release 3.11.0+1 version and date
2022-08-30 10:15:59 +03:00
auouymous
defcc6f5f4
Display 'Queueing' on dialog instead of 'Queued' when queueing downloads.
2022-08-29 05:09:04 -06:00
auouymous
871fb2bcd4
Remove unused 'others' variable.
2022-08-29 03:23:52 -06:00
auouymous
60b3ba6093
Unwrap argument list when calling IdleTimeout function.
...
This prevented update_downloads_list() from cleaning up the download
list when finished, due to can_call_cleanup being set to ().
2022-08-27 04:50:48 -06:00
auouymous
26c0f8dad8
Merge pull request #1368 from auouymous/progress-dialogs
...
Progress dialogs
2022-08-26 03:24:55 -07:00
auouymous
839c85a43e
Merge pull request #1367 from auouymous/idle-timeout
...
Add util.IdleTimeout class to reduce lag when updating progress tab.
2022-08-26 00:07:09 -07:00
Teemu Ikonen
294b047901
Fix 'Invalid episode at path 0' messages on channel change
2022-08-24 11:54:34 +03:00
Teemu Ikonen
8fd6c5eba6
Add a subtitle with statistics to header bar
2022-08-24 11:54:26 +03:00
Teemu Ikonen
da268d4fe2
preferences: Show flap on 'edge-overshot' from top
2022-08-24 11:54:26 +03:00
Teemu Ikonen
a071a1472b
preferences: Reorganize flap code
2022-08-24 11:54:26 +03:00
Teemu Ikonen
3d678927f2
Show a header (pulley) menu on channel list 'edge-overshot'
2022-08-24 11:54:26 +03:00
Teemu Ikonen
b6ac9776d8
Navigate back from shownotes with 'edge-overshot' signal
2022-08-24 11:54:26 +03:00
Teemu Ikonen
f5f607d309
Fix setting cover image from local file
2022-08-24 11:54:26 +03:00
Teemu Ikonen
21797b80a4
channel editor: Add buttons next to cover, feed URL, etc.
...
Remove the cover image context menu and add buttons next to various
items in the channel editor:
* Cover image: Pop-up a menu to change or refresh the cover image
* Feed URL: Copy the URL to clipboard
* Download folder: Open the download folder
2022-08-24 11:54:26 +03:00
Teemu Ikonen
df3a093462
Navigate back from episodes with 'edge-overshot' signal
...
But only do so if on mobile. Compensates for lack of swipes in
TreeViews.
2022-08-24 11:54:26 +03:00
Teemu Ikonen
b685022a8c
Add function is_on_mobile_screen(window)
2022-08-24 11:54:26 +03:00
Teemu Ikonen
9231e16995
Revert "preferences: Add a hack to maximize on mobile screen"
...
This reverts commit 6105ec55e4
.
2022-08-24 11:54:26 +03:00
Teemu Ikonen
dfc0ebc18d
Remove set_transient_for() calls to fix Phosh non-maximization
2022-08-24 11:54:26 +03:00
Teemu Ikonen
2e57489f32
Fix Phosh non-maximization on channel editor
2022-08-24 11:54:26 +03:00
Teemu Ikonen
525ec32802
adaptive/episodeselector.py: Fix Stream button
2022-08-24 11:54:26 +03:00