[tracker] tracker-needle: Use fixed height for detailed view



commit 4a21243313fe7db7bb8093f2c7a7f53454fac9d3
Author: Martyn Russell <martyn lanedo com>
Date:   Wed Feb 16 10:11:30 2011 +0000

    tracker-needle: Use fixed height for detailed view

 src/tracker-needle/tracker-cell-renderer-text.vala |   21 ++++++++++++++++++++
 src/tracker-needle/tracker-needle.vala             |    5 ++++
 2 files changed, 26 insertions(+), 0 deletions(-)
---
diff --git a/src/tracker-needle/tracker-cell-renderer-text.vala b/src/tracker-needle/tracker-cell-renderer-text.vala
index a3dbf9c..d4a6562 100644
--- a/src/tracker-needle/tracker-cell-renderer-text.vala
+++ b/src/tracker-needle/tracker-cell-renderer-text.vala
@@ -23,8 +23,10 @@ class Tracker.CellRendererText : Gtk.CellRendererText {
 	public string subtext { get; set; }
 	public bool show_row_hint { get; set; }
 	public bool show_subtext { get; set; }
+	public bool show_fixed_height { get; set; }
 	private bool is_selected;
 	private bool is_valid;
+	private int fixed_height = -1;
 
 	public override void get_size (Gtk.Widget     widget,
 	                               Gdk.Rectangle? cell_area,
@@ -32,6 +34,19 @@ class Tracker.CellRendererText : Gtk.CellRendererText {
 	                               out int        y_offset,
 	                               out int        width,
 	                               out int        height) {
+		// First time only, get the minimum fixed height we can use
+		if (fixed_height == -1) {
+			Pango.Context c = widget.get_pango_context ();
+			Pango.Layout layout = new Pango.Layout (c);
+
+			var style = widget.get_style ();
+			Pango.FontDescription fd = style.font_desc;
+
+			layout.set_text ("Foo\nBar", -1);
+			layout.set_font_description (fd);
+			layout.get_pixel_size (null, out fixed_height);
+		}
+
 		update_text (widget, is_selected);
 
 		base.get_size (widget, cell_area, out x_offset, out y_offset, out width, out height);
@@ -88,6 +103,12 @@ class Tracker.CellRendererText : Gtk.CellRendererText {
 			str = "%s\n%s".printf (text, subtext);
 		}
 
+		// Force all renderers to be the same height so subtext doesn't make some
+		// rows look inconsistent with others height wise.
+		if (show_fixed_height) {
+			this.height = fixed_height;
+		}
+
 		this.visible = true;
 		this.weight = Pango.Weight.NORMAL;
 		this.text = str;
diff --git a/src/tracker-needle/tracker-needle.vala b/src/tracker-needle/tracker-needle.vala
index 6280ba8..a3301b0 100644
--- a/src/tracker-needle/tracker-needle.vala
+++ b/src/tracker-needle/tracker-needle.vala
@@ -252,6 +252,10 @@ public class Tracker.Needle {
 		col.add_attribute (renderer2, "subtext", 5);
 		renderer2.ellipsize = Pango.EllipsizeMode.MIDDLE;
 
+		// FIXME: We should only set this when we have the list view not the
+		// category view and the list view as it is now.
+		renderer2.show_fixed_height = true;
+
 		col.set_title (_("File"));
 		col.set_resizable (true);
 		col.set_expand (true);
@@ -276,6 +280,7 @@ public class Tracker.Needle {
 		col.set_cell_data_func (renderer4, cell_renderer_func);
 		treeview.append_column (col);
 
+		// Setup signals
 		treeview.row_activated.connect (view_row_selected);
 
 		// Setup iconview



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]