aboutsummaryrefslogtreecommitdiffstats
path: root/mail
diff options
context:
space:
mode:
Diffstat (limited to 'mail')
-rw-r--r--mail/em-folder-tree.c63
-rw-r--r--mail/em-folder-tree.h4
2 files changed, 57 insertions, 10 deletions
diff --git a/mail/em-folder-tree.c b/mail/em-folder-tree.c
index 46f08e06fa..15cf4a5f35 100644
--- a/mail/em-folder-tree.c
+++ b/mail/em-folder-tree.c
@@ -114,6 +114,7 @@ struct _EMFolderTreePrivate {
gboolean skip_double_click;
GtkCellRenderer *text_renderer;
+ PangoEllipsizeMode ellipsize;
GtkWidget *selectable; /* an ESelectable, where to pass selectable calls */
@@ -123,6 +124,7 @@ struct _EMFolderTreePrivate {
enum {
PROP_0,
+ PROP_ELLIPSIZE,
PROP_SESSION
};
@@ -724,6 +726,12 @@ folder_tree_set_property (GObject *object,
GParamSpec *pspec)
{
switch (property_id) {
+ case PROP_ELLIPSIZE:
+ em_folder_tree_set_ellipsize (
+ EM_FOLDER_TREE (object),
+ g_value_get_enum (value));
+ return;
+
case PROP_SESSION:
folder_tree_set_session (
EM_FOLDER_TREE (object),
@@ -741,6 +749,13 @@ folder_tree_get_property (GObject *object,
GParamSpec *pspec)
{
switch (property_id) {
+ case PROP_ELLIPSIZE:
+ g_value_set_enum (
+ value,
+ em_folder_tree_get_ellipsize (
+ EM_FOLDER_TREE (object)));
+ return;
+
case PROP_SESSION:
g_value_set_object (
value,
@@ -1035,6 +1050,17 @@ folder_tree_class_init (EMFolderTreeClass *class)
g_object_class_install_property (
object_class,
+ PROP_ELLIPSIZE,
+ g_param_spec_enum (
+ "ellipsize",
+ NULL,
+ NULL,
+ PANGO_TYPE_ELLIPSIZE_MODE,
+ PANGO_ELLIPSIZE_NONE,
+ G_PARAM_READWRITE));
+
+ g_object_class_install_property (
+ object_class,
PROP_SESSION,
g_param_spec_object (
"session",
@@ -1257,10 +1283,6 @@ folder_tree_new (EMFolderTree *folder_tree)
GtkTreeViewColumn *column;
GtkCellRenderer *renderer;
GtkWidget *tree;
- GConfClient *client;
- const gchar *key;
-
- client = gconf_client_get_default ();
/* FIXME Gross hack */
tree = GTK_WIDGET (folder_tree);
@@ -1280,15 +1302,16 @@ folder_tree_new (EMFolderTree *folder_tree)
render_icon, NULL, NULL);
renderer = gtk_cell_renderer_text_new ();
- key = "/apps/evolution/mail/display/no_folder_dots";
- if (!gconf_client_get_bool (client, key, NULL))
- g_object_set (
- renderer, "ellipsize", PANGO_ELLIPSIZE_END, NULL);
gtk_tree_view_column_pack_start (column, renderer, TRUE);
gtk_tree_view_column_set_cell_data_func (
column, renderer, render_display_name, NULL, NULL);
folder_tree->priv->text_renderer = g_object_ref (renderer);
+ g_object_bind_property (
+ folder_tree, "ellipsize",
+ renderer, "ellipsize",
+ G_BINDING_SYNC_CREATE);
+
g_signal_connect_swapped (
renderer, "edited",
G_CALLBACK (folder_tree_cell_edited_cb), folder_tree);
@@ -1302,8 +1325,6 @@ folder_tree_new (EMFolderTree *folder_tree)
gtk_tree_view_set_search_column ((GtkTreeView *)tree, COL_STRING_DISPLAY_NAME);
- g_object_unref (client);
-
return (GtkTreeView *) tree;
}
@@ -1533,6 +1554,28 @@ em_folder_tree_new (EMailSession *session)
EM_TYPE_FOLDER_TREE, "session", session, NULL);
}
+PangoEllipsizeMode
+em_folder_tree_get_ellipsize (EMFolderTree *folder_tree)
+{
+ g_return_val_if_fail (EM_IS_FOLDER_TREE (folder_tree), 0);
+
+ return folder_tree->priv->ellipsize;
+}
+
+void
+em_folder_tree_set_ellipsize (EMFolderTree *folder_tree,
+ PangoEllipsizeMode ellipsize)
+{
+ g_return_if_fail (EM_IS_FOLDER_TREE (folder_tree));
+
+ if (ellipsize == folder_tree->priv->ellipsize)
+ return;
+
+ folder_tree->priv->ellipsize = ellipsize;
+
+ g_object_notify (G_OBJECT (folder_tree), "ellipsize");
+}
+
EMailSession *
em_folder_tree_get_session (EMFolderTree *folder_tree)
{
diff --git a/mail/em-folder-tree.h b/mail/em-folder-tree.h
index 4918bdc984..ecf0ddd29c 100644
--- a/mail/em-folder-tree.h
+++ b/mail/em-folder-tree.h
@@ -90,6 +90,10 @@ struct _EMFolderTreeClass {
GType em_folder_tree_get_type (void);
GtkWidget * em_folder_tree_new (EMailSession *session);
+PangoEllipsizeMode
+ em_folder_tree_get_ellipsize (EMFolderTree *folder_tree);
+void em_folder_tree_set_ellipsize (EMFolderTree *folder_tree,
+ PangoEllipsizeMode ellipsize);
EMailSession * em_folder_tree_get_session (EMFolderTree *folder_tree);
void em_folder_tree_enable_drag_and_drop
(EMFolderTree *folder_tree);