Add setting to disable trimming episode title prefix.

This commit is contained in:
auouymous 2022-12-15 03:25:59 -07:00
parent 526c335662
commit 6e29aa12ce
4 changed files with 19 additions and 1 deletions

View File

@ -228,6 +228,10 @@
<attribute name="action">win.viewAlwaysShowNewEpisodes</attribute>
<attribute name="label" translatable="yes">Always show New Episodes</attribute>
</item>
<item>
<attribute name="action">win.viewTrimEpisodeTitlePrefix</attribute>
<attribute name="label" translatable="yes">Trim episode title prefix</attribute>
</item>
<item>
<attribute name="action">win.viewShowEpisodeDescription</attribute>
<attribute name="label" translatable="yes">Episode descriptions</attribute>

View File

@ -168,6 +168,7 @@ defaults = {
'episode_list': {
'view_mode': 1,
'always_show_new': True,
'trim_title_prefix': True,
'descriptions': True,
'ctrl_click_to_sort': False,
'columns': int('110', 2), # bitfield of visible columns

View File

@ -307,6 +307,11 @@ class gPodder(BuilderWidget, dbus.service.Object):
action.connect('activate', self.on_item_view_always_show_new_episodes_toggled)
g.add_action(action)
action = Gio.SimpleAction.new_stateful(
'viewTrimEpisodeTitlePrefix', None, GLib.Variant.new_boolean(self.config.ui.gtk.episode_list.trim_title_prefix))
action.connect('activate', self.on_item_view_trim_episode_title_prefix_toggled)
g.add_action(action)
action = Gio.SimpleAction.new_stateful(
'viewShowEpisodeDescription', None, GLib.Variant.new_boolean(self.config.ui.gtk.episode_list.descriptions))
action.connect('activate', self.on_item_view_show_episode_description_toggled)
@ -1341,6 +1346,7 @@ class gPodder(BuilderWidget, dbus.service.Object):
if name == 'ui.gtk.toolbar':
self.toolbar.set_property('visible', new_value)
elif name in ('ui.gtk.episode_list.descriptions',
'ui.gtk.episode_list.trim_title_prefix',
'ui.gtk.episode_list.always_show_new'):
self.update_episode_list_model()
elif name in ('auto.update.enabled', 'auto.update.frequency'):
@ -3426,6 +3432,11 @@ class gPodder(BuilderWidget, dbus.service.Object):
self.config.ui.gtk.episode_list.always_show_new = not state
action.set_state(GLib.Variant.new_boolean(not state))
def on_item_view_trim_episode_title_prefix_toggled(self, action, param):
state = action.get_state()
self.config.ui.gtk.episode_list.trim_title_prefix = not state
action.set_state(GLib.Variant.new_boolean(not state))
def on_item_view_show_episode_description_toggled(self, action, param):
state = action.get_state()
self.config.ui.gtk.episode_list.descriptions = not state

View File

@ -213,10 +213,12 @@ class EpisodeListModel(Gtk.ListStore):
# Caching config values is faster than accessing them directly from config.ui.gtk.episode_list.*
# and is easier to maintain then threading them through every method call.
self._config_ui_gtk_episode_list_always_show_new = False
self._config_ui_gtk_episode_list_trim_title_prefix = False
self._config_ui_gtk_episode_list_descriptions = False
def cache_config(self, config):
self._config_ui_gtk_episode_list_always_show_new = config.ui.gtk.episode_list.always_show_new
self._config_ui_gtk_episode_list_trim_title_prefix = config.ui.gtk.episode_list.trim_title_prefix
self._config_ui_gtk_episode_list_descriptions = config.ui.gtk.episode_list.descriptions
def _format_filesize(self, episode):
@ -292,7 +294,7 @@ class EpisodeListModel(Gtk.ListStore):
def _format_description(self, episode):
d = []
title = episode.trimmed_title
title = episode.trimmed_title if self._config_ui_gtk_episode_list_trim_title_prefix else episode.title
if episode.state != gpodder.STATE_DELETED and episode.is_new:
d.append('<b>')
d.append(html.escape(title))