[evolution] Bug 739030 - Prevailing space in Subject column
- From: Milan Crha <mcrha src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution] Bug 739030 - Prevailing space in Subject column
- Date: Tue, 11 Nov 2014 14:20:20 +0000 (UTC)
commit 275275dacc7a81ce65905b7e28489c8f8b3acd12
Author: Milan Crha <mcrha redhat com>
Date: Tue Nov 11 15:19:40 2014 +0100
Bug 739030 - Prevailing space in Subject column
e-util/e-cell-tree.c | 29 ++++++++++++++++++++++++-----
e-util/e-cell-tree.h | 4 ++++
e-util/e-tree.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++
e-util/e-tree.h | 4 ++++
mail/message-list.c | 2 ++
5 files changed, 84 insertions(+), 5 deletions(-)
---
diff --git a/e-util/e-cell-tree.c b/e-util/e-cell-tree.c
index ce470ea..507d850 100644
--- a/e-util/e-cell-tree.c
+++ b/e-util/e-cell-tree.c
@@ -109,10 +109,12 @@ offset_of_node (ETableModel *table_model,
{
ETreeModel *tree_model = e_cell_tree_get_tree_model (table_model, row);
ETreePath path = e_cell_tree_get_node (table_model, row);
+ gint visible_depth;
- if (visible_depth_of_node (table_model, row) >= 0 ||
+ visible_depth = visible_depth_of_node (table_model, row);
+ if (visible_depth >= 0 ||
e_tree_model_node_is_expandable (tree_model, path)) {
- return (visible_depth_of_node (table_model, row) + 1) * INDENT_AMOUNT;
+ return (MAX (visible_depth, 1)) * INDENT_AMOUNT;
} else {
return 0;
}
@@ -280,12 +282,12 @@ ect_draw (ECellView *ecell_view,
ETreeTableAdapter *tree_table_adapter = e_cell_tree_get_tree_table_adapter
(ecell_view->e_table_model, row);
ETreePath node;
GdkRectangle rect;
- gint offset, subcell_offset;
+ gint offset, subcell_offset = 0;
cairo_save (cr);
/* only draw the tree effects if we're the active sort */
- if (/* XXX */ TRUE) {
+ if (E_CELL_TREE (tree_view->cell_view.ecell)->grouped_view) {
tree_view->prelit = FALSE;
node = e_cell_tree_get_node (ecell_view->e_table_model, row);
@@ -668,7 +670,7 @@ ect_print (ECellView *ecell_view,
cairo_save (cr);
- if (/* XXX only if we're the active sort */ TRUE) {
+ if (E_CELL_TREE (tree_view->cell_view.ecell)->grouped_view) {
ETreeModel *tree_model = e_cell_tree_get_tree_model (ecell_view->e_table_model, row);
ETreeTableAdapter *tree_table_adapter = e_cell_tree_get_tree_table_adapter
(ecell_view->e_table_model, row);
ETreePath node = e_cell_tree_get_node (ecell_view->e_table_model, row);
@@ -831,6 +833,7 @@ e_cell_tree_construct (ECellTree *ect,
g_object_ref_sink (subcell);
ect->draw_lines = draw_lines;
+ ect->grouped_view = TRUE;
}
/**
@@ -858,3 +861,19 @@ e_cell_tree_new (gboolean draw_lines,
return (ECell *) ect;
}
+gboolean
+e_cell_tree_get_grouped_view (ECellTree *cell_tree)
+{
+ g_return_val_if_fail (E_IS_CELL_TREE (cell_tree), FALSE);
+
+ return cell_tree->grouped_view;
+}
+
+void
+e_cell_tree_set_grouped_view (ECellTree *cell_tree,
+ gboolean grouped_view)
+{
+ g_return_if_fail (E_IS_CELL_TREE (cell_tree));
+
+ cell_tree->grouped_view = grouped_view;
+}
diff --git a/e-util/e-cell-tree.h b/e-util/e-cell-tree.h
index cd0c13d..14490a2 100644
--- a/e-util/e-cell-tree.h
+++ b/e-util/e-cell-tree.h
@@ -66,6 +66,7 @@ struct _ECellTree {
ECell parent;
gboolean draw_lines;
+ gboolean grouped_view;
ECell *subcell;
};
@@ -82,6 +83,9 @@ void e_cell_tree_construct (ECellTree *ect,
ECell *subcell);
ECellView * e_cell_tree_view_get_subcell_view
(ECellView *ect);
+gboolean e_cell_tree_get_grouped_view (ECellTree *cell_tree);
+void e_cell_tree_set_grouped_view (ECellTree *cell_tree,
+ gboolean grouped_view);
G_END_DECLS
diff --git a/e-util/e-tree.c b/e-util/e-tree.c
index ce50221..9d10773 100644
--- a/e-util/e-tree.c
+++ b/e-util/e-tree.c
@@ -36,6 +36,7 @@
#include "e-canvas-background.h"
#include "e-canvas-utils.h"
#include "e-canvas.h"
+#include "e-cell-tree.h"
#include "e-table-column-specification.h"
#include "e-table-header-item.h"
#include "e-table-header.h"
@@ -205,6 +206,8 @@ struct _ETreePrivate {
guint state_change_freeze;
gboolean is_dragging;
+
+ gboolean grouped_view;
};
static guint signals[LAST_SIGNAL];
@@ -659,6 +662,7 @@ e_tree_init (ETree *tree)
tree->priv->state_change_freeze = 0;
tree->priv->is_dragging = FALSE;
+ tree->priv->grouped_view = TRUE;
}
/* Grab_focus handler for the ETree */
@@ -1528,6 +1532,28 @@ et_table_rows_deleted (ETableModel *table_model,
}
static void
+e_tree_update_full_header_grouped_view (ETree *tree)
+{
+ gint ii, sz;
+
+ g_return_if_fail (E_IS_TREE (tree));
+
+ if (!tree->priv->full_header)
+ return;
+
+ sz = e_table_header_count (tree->priv->full_header);
+ for (ii = 0; ii < sz; ii++) {
+ ETableCol *col;
+
+ col = e_table_header_get_column (tree->priv->full_header, ii);
+ if (!col || !E_IS_CELL_TREE (col->ecell))
+ continue;
+
+ e_cell_tree_set_grouped_view (E_CELL_TREE (col->ecell), tree->priv->grouped_view);
+ }
+}
+
+static void
et_connect_to_etta (ETree *tree)
{
tree->priv->table_model_change_id = g_signal_connect (
@@ -1571,6 +1597,8 @@ et_real_construct (ETree *tree,
tree->priv->cursor_mode = specification->cursor_mode;
tree->priv->full_header = e_table_spec_to_full_header (specification, ete);
+ e_tree_update_full_header_grouped_view (tree);
+
connect_header (tree, state);
tree->priv->horizontal_scrolling = specification->horizontal_scrolling;
@@ -3279,3 +3307,25 @@ e_tree_is_editing (ETree *tree)
return tree->priv->item && e_table_item_is_editing (E_TABLE_ITEM (tree->priv->item));
}
+
+void
+e_tree_set_grouped_view (ETree *tree,
+ gboolean grouped_view)
+{
+ g_return_if_fail (E_IS_TREE (tree));
+
+ if ((tree->priv->grouped_view ? 1 : 0) == (grouped_view ? 1 : 0))
+ return;
+
+ tree->priv->grouped_view = grouped_view;
+
+ e_tree_update_full_header_grouped_view (tree);
+}
+
+gboolean
+e_tree_get_grouped_view (ETree *tree)
+{
+ g_return_val_if_fail (E_IS_TREE (tree), FALSE);
+
+ return tree->priv->grouped_view;
+}
diff --git a/e-util/e-tree.h b/e-util/e-tree.h
index a3fa7ae..a10ea95 100644
--- a/e-util/e-tree.h
+++ b/e-util/e-tree.h
@@ -253,6 +253,10 @@ void e_tree_thaw_state_change (ETree *tree);
gboolean e_tree_is_editing (ETree *tree);
+gboolean e_tree_get_grouped_view (ETree *tree);
+void e_tree_set_grouped_view (ETree *tree,
+ gboolean grouped_view);
+
G_END_DECLS
#endif /* E_TREE_H */
diff --git a/mail/message-list.c b/mail/message-list.c
index a47e6ff..4455fad 100644
--- a/mail/message-list.c
+++ b/mail/message-list.c
@@ -3421,6 +3421,7 @@ message_list_init (MessageList *message_list)
message_list->priv->mail_settings = g_settings_new ("org.gnome.evolution.mail");
message_list->priv->re_prefixes = NULL;
+ message_list->priv->group_by_threads = TRUE;
}
static void
@@ -4536,6 +4537,7 @@ message_list_set_group_by_threads (MessageList *message_list,
return;
message_list->priv->group_by_threads = group_by_threads;
+ e_tree_set_grouped_view (E_TREE (message_list), group_by_threads);
g_object_notify (G_OBJECT (message_list), "group-by-threads");
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]