Add a View menu option to right align the episode released column.

This commit is contained in:
auouymous 2023-04-29 21:41:38 -06:00
parent b0ce535ca9
commit df4195dc5c
3 changed files with 32 additions and 3 deletions

View File

@ -245,6 +245,10 @@
<attribute name="action">win.viewShowEpisodeReleasedTime</attribute>
<attribute name="label" translatable="yes">Show episode released time</attribute>
</item>
<item>
<attribute name="action">win.viewRightAlignEpisodeReleasedColumn</attribute>
<attribute name="label" translatable="yes">Right align episode released column</attribute>
</item>
<item>
<attribute name="action">win.viewCtrlClickToSortEpisodes</attribute>
<attribute name="label" translatable="yes">Require control click to sort episodes</attribute>

View File

@ -172,6 +172,7 @@ defaults = {
'trim_title_prefix': True,
'descriptions': True,
'show_released_time': False,
'right_align_released_column': False,
'ctrl_click_to_sort': False,
'columns': int('110', 2), # bitfield of visible columns
},

View File

@ -194,6 +194,8 @@ class gPodder(BuilderWidget, dbus.service.Object):
self.create_actions()
self.releasecell = None
# Init the treeviews that we use
self.init_podcast_list_treeview()
self.init_episode_list_treeview()
@ -324,6 +326,12 @@ class gPodder(BuilderWidget, dbus.service.Object):
action.connect('activate', self.on_item_view_show_episode_released_time_toggled)
g.add_action(action)
action = Gio.SimpleAction.new_stateful(
'viewRightAlignEpisodeReleasedColumn', None,
GLib.Variant.new_boolean(self.config.ui.gtk.episode_list.right_align_released_column))
action.connect('activate', self.on_item_view_right_align_episode_released_column_toggled)
g.add_action(action)
action = Gio.SimpleAction.new_stateful(
'viewCtrlClickToSortEpisodes', None, GLib.Variant.new_boolean(self.config.ui.gtk.episode_list.ctrl_click_to_sort))
action.connect('activate', self.on_item_view_ctrl_click_to_sort_episodes_toggled)
@ -879,6 +887,14 @@ class gPodder(BuilderWidget, dbus.service.Object):
return False
def align_releasecell(self):
if self.config.ui.gtk.episode_list.right_align_released_column:
self.releasecell.set_property('xalign', 1)
self.releasecell.set_property('alignment', Pango.Alignment.RIGHT)
else:
self.releasecell.set_property('xalign', 0)
self.releasecell.set_property('alignment', Pango.Alignment.LEFT)
def init_episode_list_treeview(self):
self.episode_list_model.set_view_mode(self.config.ui.gtk.episode_list.view_mode)
@ -930,10 +946,11 @@ class gPodder(BuilderWidget, dbus.service.Object):
timecolumn = Gtk.TreeViewColumn(_('Duration'), timecell, text=EpisodeListModel.C_TIME)
timecolumn.set_sort_column_id(EpisodeListModel.C_TOTAL_TIME)
releasecell = Gtk.CellRendererText()
self.releasecell = Gtk.CellRendererText()
self.align_releasecell()
releasecolumn = Gtk.TreeViewColumn(_('Released'))
releasecolumn.pack_start(releasecell, True)
releasecolumn.add_attribute(releasecell, 'markup', EpisodeListModel.C_PUBLISHED_TEXT)
releasecolumn.pack_start(self.releasecell, True)
releasecolumn.add_attribute(self.releasecell, 'markup', EpisodeListModel.C_PUBLISHED_TEXT)
releasecolumn.set_sort_column_id(EpisodeListModel.C_PUBLISHED)
sizetimecell = Gtk.CellRendererText()
@ -3520,6 +3537,13 @@ class gPodder(BuilderWidget, dbus.service.Object):
self.config.ui.gtk.episode_list.show_released_time = not state
action.set_state(GLib.Variant.new_boolean(not state))
def on_item_view_right_align_episode_released_column_toggled(self, action, param):
state = action.get_state()
self.config.ui.gtk.episode_list.right_align_released_column = not state
action.set_state(GLib.Variant.new_boolean(not state))
self.align_releasecell()
self.treeAvailable.queue_draw()
def on_item_view_ctrl_click_to_sort_episodes_toggled(self, action, param):
state = action.get_state()
self.config.ui.gtk.episode_list.ctrl_click_to_sort = not state