[tracker] tracker-needle: Use fixed height for detailed view
- From: Martyn James Russell <mr src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker] tracker-needle: Use fixed height for detailed view
- Date: Wed, 16 Feb 2011 12:30:44 +0000 (UTC)
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]