Commit Graph

3319 Commits

Author SHA1 Message Date
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
Teemu Ikonen f533ed395a Replace SimpleMessageArea with GtkInfoBar when resuming
Remove unused SimpleMessageArea code.
2022-08-24 11:54:26 +03:00
Teemu Ikonen 4f360e62f6 Remove download actions from app.py 2022-08-24 11:54:26 +03:00
Teemu Ikonen d7f2943a70 main.py: Fix whitespace 2022-08-24 11:54:26 +03:00
Teemu Ikonen 10250404e8 Adapt in_downloads() to the adaptive version 2022-08-24 11:54:26 +03:00
Teemu Ikonen 9f168c5bda main.py: Detect if we're in downloads by func in_downloads() 2022-08-24 11:54:26 +03:00
Teemu Ikonen 13e25f1c48 Move actions needed in progress window from 'win' to 'app' 2022-08-24 11:54:26 +03:00
Teemu Ikonen d6b18463d3 main.py: Merge missing changes from master branch 2022-08-24 11:54:26 +03:00
Teemu Ikonen 224818e39f Remove context_popover_show() 2022-08-24 11:54:26 +03:00
Teemu Ikonen 596ee8ca61 Rename funcs on_treeview_podcasts_* to on_treeview_channels_* 2022-08-24 11:54:26 +03:00
Teemu Ikonen a420264400 Remove redundant treeview arg from treeview_*_show_context_menu funcs 2022-08-24 11:54:01 +03:00
auouymous 3a4cd026e9 Reset window position if completely off-screen. 2022-08-22 23:49:11 -06:00
Teemu Ikonen 2665bafe62 Disallow all treeview tooltips when context menu is open
Rename treeview_allow_tooltips() to allow_tooltips(). Remove the
treeview arg, and hard code it to enable or disable tooltips on channel
and episode treeviews.
2022-08-22 21:51:52 +03:00
Teemu Ikonen d1047bc739 Popup context menus with a LongPress gestures 2022-08-22 21:51:52 +03:00
Teemu Ikonen 142c0187d7 Replace downloads context GtkMenu with GtkPopover 2022-08-22 21:51:52 +03:00
Teemu Ikonen f69182308e Add actions for downloads context menu items 2022-08-22 21:51:51 +03:00
Teemu Ikonen 7cd9d3ee3a Remove funcs _add_sub_menu and _submenu_item_activate_hack 2022-08-22 21:51:51 +03:00
Teemu Ikonen 1cf9cf6436 Replace episode context GtkMenu with a GtkPopover 2022-08-22 21:51:33 +03:00
Teemu Ikonen b165447426 Add actions for episode context menu items
Disable 'bluetoothEpisodes' action when Bluetooth is not available.
Add episodeNew and episodeLock to set_episode_actions().
2022-08-22 19:20:28 +03:00
Teemu Ikonen f9ecbaddc6 Replace channel context GtkMenu with GtkPopover 2022-08-22 19:15:37 +03:00
Teemu Ikonen c90c8264d3 Add actions for channel context menu items 2022-08-22 19:10:53 +03:00
Teemu Ikonen 06cb0aa451 Add func TreeViewHelper.get_popup_rectangle 2022-08-22 18:56:58 +03:00
Teemu Ikonen dc7ebf494d Fix setting cover image from local file 2022-08-16 17:18:09 +03:00
Teemu Ikonen 93b636b6ca 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-16 17:18:09 +03:00
auouymous fc0c1981ed Add icon to clear URL in the add podcast dialog. 2022-08-13 02:51:15 -06:00
auouymous 932a8e7069 Fix stripping of pasted text when adding podcast URL. 2022-08-13 02:34:45 -06:00
auouymous 8fa11335be Add progress dialogs for long running actions.
Make the find partial downloads progress dialog update itself.

Show a progress dialog when queueing and resuming downloads.
2022-08-13 02:12:13 -06:00
auouymous 8d1acbd3ad Improve cancelling of progress dialog and manually updating it. 2022-08-13 02:09:24 -06:00
auouymous 165a45ac0d Add util.IdleTimeout class to reduce lag when updating progress tab. 2022-08-13 01:55:05 -06:00
auouymous bab023a4db
Merge pull request #1353 from auouymous/fix-hang-when-resuming-thousands-of-episodes
Fix hang when resuming thousands of episodes.
2022-08-13 00:06:28 -07:00
auouymous f20f1b3afd Fix hang when resuming thousands of episodes.
When the number of episodes causes update_downloads_list() to exceed 1.5
seconds, the idle_add callback will never be called and cause gpodder to
hang.

Fixes #1311.
2022-08-13 01:04:33 -06:00
auouymous f05ce1fc0a Switch deprecated GObject functions to GLib. 2022-08-13 00:33:28 -06:00
auouymous fdc2bb2eb9 Remove redundant force_start parameters. 2022-08-12 23:05:23 -06:00
Eric Le Lay a6e4d39fdd
Merge pull request #1355 from auouymous/keep-dialog-open-longer-before-resume-all
Keep 'find partial downloads' dialog open longer.
2022-08-04 23:43:01 +02:00
Thomas Perl 576ae2a762 Remove unneeded shebang lines 2022-08-04 12:39:05 +02:00
Thomas Perl 37e296c629 [shebang] Change /usr/bin/python -> /usr/bin/env python3
This should fix "unusual interpreter" Lintian warnings here:
https://udd.debian.org/lintian/?packages=gpodder
2022-08-04 11:53:08 +02:00
auouymous 97b3aab8de Keep 'find partial downloads' dialog open longer.
It can take a while to populate the list when there are a lot of
downloads to resume. This leaves the list empty and UI, including the
`Resume All` button unresponsive. Keeping the dialog open while Gtk
populates the list prevents this from happening.
2022-08-03 14:03:07 -06:00
Teemu Ikonen 27aed1fbea Merge tag '3.11.0' into dev-adaptive
gPodder 3.11.0 release
2022-08-01 22:04:06 +03:00
auouymous 75969b9111 prepare 3.11.0 release 2022-07-30 22:35:28 -06:00
auouymous 4c1cf5bcb0 Create 'Resume all' button by its clicked handler. 2022-07-18 15:18:36 -06:00
auouymous cf24177462
Merge pull request #1330 from auouymous/inject-extension-preferences
Add/remove extension preferences buttons when loaded/unloaded.
2022-07-13 11:50:32 -07:00
Teemu Ikonen 8ebf566993 sync.py: Don't print traceback on missing libgpod_ctypes and eyed3.mp3 2022-07-12 18:29:31 +03:00
auouymous dc6ac8db12
Merge pull request #1334 from gpodder/thp/ctypes-python312
libgpod_ctypes: Use ctypes.c_time_t on Python 3.12
2022-07-12 01:23:07 -07:00
Thomas Perl a3a6bee1f4 libgpod_ctypes: Use ctypes.c_time_t on Python 3.12 2022-07-12 09:22:34 +02:00
Teemu Ikonen 4212b17bf2 Do not rely on the Extensions page being last in the stack. 2022-07-11 02:08:51 -06:00
auouymous aec5e162cf Add/remove extension preferences buttons when loaded/unloaded.
The user must currently close preferences and reopen to configure
extensions that provide a preferences UI. This is a problem when the
user does not know the extension has preferences, but the sudden
appearance of the button when an extension is enabled might catch the
user's attention.

Furthermore, removing the button when the extension is unloaded prevents
any confusion as to why it is still there.
2022-07-08 16:28:41 -06:00
Teemu Ikonen 6af0035caf util.open_website: Return True to block 'activate-link' default handler 2022-07-05 14:48:26 +03:00
auouymous e2f8c64f1a Change "YoutubeDL" and "Youtubedl" to "youtube-dl". 2022-07-04 14:51:45 -06:00
Teemu Ikonen 2cc1a7614a Merge branch 'master' into dev-adaptive 2022-07-02 23:31:38 +03:00
auouymous 78c2a2df91
Merge pull request #1309 from gpodder/revert-1284-undownload-checkbox
Revert "Fix #864 add undownload checkbox in delete episode confirm dialog"
2022-06-30 00:23:16 -07:00
auouymous 15fa2d4be9 Revert "Fix #864 add undownload checkbox in delete episode confirm dialog (#1284)"
This reverts commit 5eeda318f4.
2022-06-22 14:21:40 -07:00
auouymous 3c62528ec9 Wait for worker threads to finish before quitting.
Closing gpodder while tasks are downloading or pausing causes a hang and
must be killed from task manager or interrupted if launched from command
line. This was introduced in ed5d18e1b0
but only applicable when using python 3.10. The idle_add() callback is
no longer invoked to wake up the dequeue wait_for() condition, likely
due to the main thread terminating early, which didn't happen in older
python versions. Simply waiting for all worker threads to terminate
fixes the issue.

Fixes #1306.
2022-06-22 13:51:23 -06:00
Eric Le Lay b1bd429be0
Merge pull request #1246 from auouymous/ondemand-html-description
Generate HTML episode description only when needed.
2022-06-20 13:25:00 +02:00
Eric Le Lay 0acaee4ef9 get chapters from feedparser 2022-06-19 11:56:12 -06:00
auouymous 0fe74c18d2 Generate HTML episode description only when needed.
PR #1094 generated an HTML description for any episode that lacked one.
That however increased the database size (almost double in worst case)
because it was storing both text and html versions of each description.
This fixes that by storing the episode thumbnail URL in the database and
generating the HTML description only when shownotes are drawn.

The text description is now cleared for episodes with an HTML
description. This further reduces database size for feeds that provide
both. It also fixes an issue for feeds that provide different text and
HTML descriptions, because the short description would show the text
description and shownotes would show the HTML description. And EQL only
searched the text descriptions, which might not match what the user sees
in the shownotes.
2022-06-19 11:56:12 -06:00
auouymous 97d9459b90 Add episode art URL and chapters to database.
Co-authored-by: Eric Le Lay <elelay@macports.org>
2022-06-19 11:56:12 -06:00
JKAbrams 0a51542ab5
Add download retry without authentication if auth is set (#1300)
* Add download retry without authentification if auth is set
2022-06-16 15:37:30 -07:00
auouymous 4d4ad7f7cb Make the About dialog text selectable to copy version.
Fixes #1302.
2022-06-16 16:27:05 -06:00
auouymous c9ad2b6884 Add setting to disable find-as-you-type.
The new setting defaults to enabled to preserve the current behavior of
opening search fields in channel and episode lists when the user begins
typing. Disabling the feature ignores the keypresses and requires ctrl-f
or ctrl-shift-f to open or focus the search field.
2022-06-10 23:26:09 -06:00
Teemu Ikonen 7019eb8870 Allow marking non-dowloaded episode as deleted 2022-06-08 23:16:18 +03:00
Teemu Ikonen b7b0a87ecd Re-enable update_channel_action after update 2022-06-08 23:16:15 +03:00
auouymous ce6ba8eced Remove space between 'more' and ellipsis character. 2022-06-07 13:37:13 -06:00
auouymous f8d1b22909 Use ellipsis character instead of '...' for deleted titles. 2022-06-07 13:34:15 -06:00
Thomas Perl a9726153c7
iPod support restored using ctypes and libgpod (#1289)
* iPod support restored using ctypes and libgpod
2022-06-02 17:41:42 -07:00
Teemu Ikonen 4996a58475 Fix codestyle (make lint) 2022-06-02 20:59:12 +03:00
Teemu Ikonen 6105ec55e4 preferences: Add a hack to maximize on mobile screen 2022-06-02 20:59:08 +03:00
Teemu Ikonen 223b9fb9a5 Add flap to desktop/preferences.py 2022-06-02 20:58:06 +03:00
Teemu Ikonen b270471c17 Use desktop.preferences dialog 2022-06-02 20:58:06 +03:00
Teemu Ikonen 867fe57185 Require Gdk version 3.0 everywhere 2022-06-02 20:58:06 +03:00
Teemu Ikonen bce111451f Merge branch 'master' into dev-adaptive 2022-05-15 13:55:56 +03:00
Teemu Ikonen 241c656b15 Do not mark episodes streamed from episode selector as played 2022-05-15 13:40:56 +03:00
Teemu Ikonen 40e524b8ab episodeselector: Add a Stream button 2022-05-15 13:40:44 +03:00
auouymous 3e827c771b Recycle forced download tasks when finished.
Using "Start download now" creates a forced task that wasn't recycled
when it finished. This prevented it from being deleted because
can_delete() returns False for tasks in the DONE state.
2022-05-13 20:27:21 -06:00
Eric Le Lay 5eeda318f4
Fix #864 add undownload checkbox in delete episode confirm dialog (#1284)
* Fix #864 add undownload checkbox in delete episode confirm dialog

don't mark episodes new if we don't delete them now

when a mix of downloaded and not downloaded and old episodes
are selected
2022-05-13 01:35:32 -07:00
auouymous 14ea9008fc
Merge pull request #1285 from auouymous/open-episode-download-folder
Add context menu item to open episode download folder.
2022-05-13 00:40:00 -07:00
auouymous b91ea586bc Add open download folder menu item to Episodes menu. 2022-05-13 01:37:13 -06:00
auouymous 741530f5fe
Merge pull request #1287 from auouymous/fix-warnings
Fix warnings
2022-05-13 00:22:08 -07:00
auouymous f6a919759f Remove erroneous logger parameter when failing to get Youtube GDPR URL.
Reported-by: Teemu Ikonen <tpikonen@gmail.com>
2022-05-08 16:09:21 -06:00
Teemu Ikonen 03a6aabf96 Merge branch 'master' into dev-adaptive 2022-04-30 23:48:12 +03:00
auouymous 33aaf2a4eb Close config file after loading it.
Prevents a ResourceWarning when all warnings are enabled.
2022-04-29 02:54:32 -06:00
auouymous 41c312dd68 Change deprecated logger.warn() to logger.warning(). 2022-04-29 02:54:32 -06:00
auouymous 389d096854 Close extension file after reading metadata.
Prevents a ResourceWarning when all warnings are enabled.
2022-04-29 02:54:32 -06:00
auouymous 961f0d72bb
Merge pull request #1274 from tpikonen/narrow-prefs
A narrower preferences dialog
2022-04-29 01:48:13 -07:00
Teemu Ikonen 3a5a8ce990 preferences: Ellipsize playlist folder button label 2022-04-29 11:40:28 +03:00
auouymous 125ee1dfd2 Add context menu item to open episode download folder.
Closes #579.
2022-04-26 04:43:15 -06:00
auouymous f49068311e
Merge pull request #1272 from auouymous/show-episodes-without-enclosures
Show episodes without downloadable content.
2022-04-26 00:12:58 -07:00
Thomas Perl 3cbb36167c Gtk UI: Handle links in HTML shownotes 2022-04-23 13:54:31 +02:00
auouymous 16777ba5eb Enable new status toggle in Episodes menu when any episode is selected.
The menu item was only enabled when the selected episode could be played
or streamed. It was always enabled in the context menu but the keyboard
accelerator could not be used if the episode was not downloaded and not
streamable.

This also forces the play toolbar button to always show the 'open'
label and icon in the progress tab, instead of whatever random state it
was in before.
2022-04-19 04:13:57 -06:00
auouymous 5d304cbf3d Add comments about never unsetting play_or_download() flags once set. 2022-04-19 01:36:03 -06:00
auouymous 3a4b06f3eb
Merge pull request #1269 from auouymous/can-lock
Allow toggling lock of any locked or undeleted episode.
2022-04-19 00:29:10 -07:00
auouymous 1cc7941331 Show episodes without downloadable content.
Non-media RSS feeds only have a textual description and can't be
subscribed to in gpodder. Some media feeds lack downloadable content and
can only be accessed from the website. In both cases, gpodder removes
the episodes without any feedback to the user as to why, making it
appear to be a problem in gpodder.

This patch adds those episodes but prevents automatic download and
displays a proper error when a manual download is attempted. The
episodes also get a web browser icon to indicate they lack downloadable
content. While not downloadable or transferable to media devices,
gpodder can be used to notify the user when new episodes are available
and they can be accessed by clicking through to the website
2022-04-19 01:24:20 -06:00
lexolexo 778f5b708c
Added logic to trim away leading/trailing whitespaces in user-clipboard auto-inputted urls (#1276)
* Added logic to trim away leading/trailing whitespaces in user-inputted
urls. Tested against current gpodder-installe executable for correct/
desired behaviour. simplified receive_clipboard_text method of class
gPodderAddPodcast in addpodcast.py
resolves #520
2022-04-16 22:11:10 -07:00
Teemu Ikonen d6447d1bfb preferences: Enable word wrapping in checkbox labels 2022-04-13 16:28:25 +03:00
Teemu Ikonen 3d85283bac preferences: Allow a narrower Video page
* Replace Grid with FlowBox in Video page
 * Don't set hexpand on ComboBoxes
 * preferences.py: Ellipsize video format selector combobox strings
2022-04-13 16:28:25 +03:00
Teemu Ikonen b1ef6e0859 preferences: Allow a narrower Devices page
* Enable word wrap in labels
 * Replace GtkGrid with two vertical GtkBoxes
 * Add bottom margins to checkbuttons as label wrapping space
 * preferences.py: Ellipsize device button label, replace deprecated
   set_alignment() with set_xalign()
2022-04-13 16:28:25 +03:00
Teemu Ikonen cd15106eac Merge branch 'master' into dev-adaptive 2022-04-12 16:53:23 +03:00
Teemu Ikonen d3ccce258c
preferences: Use GtkStack instead of GtkNotebook (#1261)
* preferences: Use GtkStack instead of GtkNotebook

* Add Separator and ScrolledWindow to StackSwitcher

* Add ScrolledWindow to preferences Stack

Remove ScrolledWindow from Extensions page.
2022-04-10 04:17:53 -07:00
auouymous 8cefb936c5 Allow toggling lock of any locked or undeleted episode.
This allows undownloaded episodes to be locked with both menus and
guarantees both menus remain consistent.
2022-04-10 03:48:59 -06:00
Teemu Ikonen 0ab57fb2b1 Fix 'Mark episodes as old' context menu item 2022-03-25 23:43:18 +02:00
Teemu Ikonen c156e15ed3 Don't use shownotes keyboard callback 2022-03-25 23:43:18 +02:00
Teemu Ikonen 52e631bc73 gPodderShownotesLabel: Double html.escape link titles 2022-03-25 23:43:18 +02:00