[gnome-music] view: Fix inconsistent allocations of cell renderers
- From: Vadim Rutkovsky <vrutkovsky src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-music] view: Fix inconsistent allocations of cell renderers
- Date: Thu, 5 Mar 2015 10:35:29 +0000 (UTC)
commit 3924cacbf725cb70e226a41d4de98c05ddf4bbb8
Author: Carlos Garnacho <carlosg gnome org>
Date: Wed Mar 4 23:58:47 2015 +0100
view: Fix inconsistent allocations of cell renderers
GtkTreeView doesn't handle as nicely size allocation between cells in
a column than between columns themselves. Distributing these in several
columns makes it easier to ensure the size stays consistent across tree
validation, which results in no jumping rows afterwards.
https://bugzilla.gnome.org/show_bug.cgi?id=745648
gnomemusic/view.py | 38 ++++++++++++++++++++++++++++----------
1 files changed, 28 insertions(+), 10 deletions(-)
---
diff --git a/gnomemusic/view.py b/gnomemusic/view.py
index cdb3475..b9e5bca 100644
--- a/gnomemusic/view.py
+++ b/gnomemusic/view.py
@@ -463,9 +463,14 @@ class Songs(ViewContainer):
height=48,
ellipsize=Pango.EllipsizeMode.END
)
- list_widget.add_renderer(title_renderer,
- self._on_list_widget_title_render, None)
- cols[0].add_attribute(title_renderer, 'text', 2)
+
+ col = Gtk.TreeViewColumn()
+ col.set_expand(True)
+ col.pack_start(title_renderer, True)
+ col.set_cell_data_func(title_renderer,
+ self._on_list_widget_title_render, None)
+ col.add_attribute(title_renderer, 'text', 2)
+ list_widget.insert_column(col, 1)
self.star_handler._add_star_renderers(list_widget, cols)
@@ -474,25 +479,38 @@ class Songs(ViewContainer):
xalign=1.0
)
duration_renderer.add_class('dim-label')
- list_widget.add_renderer(duration_renderer,
- self._on_list_widget_duration_render, None)
+
+ col = Gtk.TreeViewColumn()
+ col.pack_start(duration_renderer, False)
+ col.set_cell_data_func(duration_renderer,
+ self._on_list_widget_duration_render, None)
+ list_widget.append_column(col)
artist_renderer = Gd.StyledTextRenderer(
xpad=32,
+ width=100,
ellipsize=Pango.EllipsizeMode.END
)
artist_renderer.add_class('dim-label')
- list_widget.add_renderer(artist_renderer,
- self._on_list_widget_artist_render, None)
- cols[0].add_attribute(artist_renderer, 'text', 3)
+
+ col = Gtk.TreeViewColumn()
+ col.set_expand(True)
+ col.pack_start(artist_renderer, True)
+ col.set_cell_data_func(artist_renderer,
+ self._on_list_widget_artist_render, None)
+ col.add_attribute(artist_renderer, 'text', 3)
+ list_widget.append_column(col)
type_renderer = Gd.StyledTextRenderer(
xpad=32,
+ width=100,
ellipsize=Pango.EllipsizeMode.END
)
type_renderer.add_class('dim-label')
- list_widget.add_renderer(type_renderer,
- self._on_list_widget_type_render, None)
+
+ col.pack_end(type_renderer, True)
+ col.set_cell_data_func(type_renderer,
+ self._on_list_widget_type_render, None)
def _on_list_widget_title_render(self, col, cell, model, _iter, data):
pass
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]