summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Zeuthen <davidz@redhat.com>2011-05-20 14:23:08 -0400
committerDavid Zeuthen <davidz@redhat.com>2011-05-20 14:23:08 -0400
commitee3381207ddc9dc8e42507f9357981adcec297d1 (patch)
tree88ea06ba9a04c57d5a42d8c0328b315272cd0f79
parentbce62e04ed668bc3f7c211f09f3ff9dc4265e9d3 (diff)
Use two lines in the accounts tree-view
http://people.freedesktop.org/~david/online-accounts-new-treeview.png Signed-off-by: David Zeuthen <davidz@redhat.com>
-rw-r--r--src/panel/goapanel.c2
-rw-r--r--src/panel/goapanelaccountsmodel.c28
-rw-r--r--src/panel/goapanelaccountsmodel.h1
3 files changed, 29 insertions, 2 deletions
diff --git a/src/panel/goapanel.c b/src/panel/goapanel.c
index 0aa581d..0c4f38d 100644
--- a/src/panel/goapanel.c
+++ b/src/panel/goapanel.c
@@ -178,7 +178,7 @@ goa_panel_init (GoaPanel *panel)
gtk_tree_view_column_pack_start (column, renderer, FALSE);
gtk_tree_view_column_set_attributes (column,
renderer,
- "markup", GOA_PANEL_ACCOUNTS_MODEL_COLUMN_NAME,
+ "markup", GOA_PANEL_ACCOUNTS_MODEL_COLUMN_MARKUP,
NULL);
renderer = gtk_cell_renderer_pixbuf_new ();
diff --git a/src/panel/goapanelaccountsmodel.c b/src/panel/goapanelaccountsmodel.c
index 65d8106..76393d0 100644
--- a/src/panel/goapanelaccountsmodel.c
+++ b/src/panel/goapanelaccountsmodel.c
@@ -24,6 +24,8 @@
#include <glib/gi18n-lib.h>
+#include <goabackend/goabackend.h>
+
#include "goapanelaccountsmodel.h"
struct _GoaPanelAccountsModel
@@ -135,7 +137,8 @@ goa_panel_accounts_model_constructed (GObject *object)
types[1] = G_TYPE_STRING;
types[2] = GOA_TYPE_OBJECT;
types[3] = G_TYPE_BOOLEAN;
- G_STATIC_ASSERT (4 == GOA_PANEL_ACCOUNTS_MODEL_N_COLUMNS);
+ types[4] = G_TYPE_STRING;
+ G_STATIC_ASSERT (5 == GOA_PANEL_ACCOUNTS_MODEL_N_COLUMNS);
gtk_list_store_set_column_types (GTK_LIST_STORE (model),
GOA_PANEL_ACCOUNTS_MODEL_N_COLUMNS,
types);
@@ -313,14 +316,37 @@ set_values (GoaPanelAccountsModel *model,
GtkTreeIter *iter)
{
GoaAccount *account;
+ GoaProvider *provider;
+ const gchar *type;
+ gchar *provider_name;
+ gchar *markup;
+
account = goa_object_peek_account (object);
+
+ type = goa_account_get_provider_type (account);
+ provider = goa_provider_get_for_provider_type (type);
+ if (provider != NULL)
+ provider_name = g_strdup (goa_provider_get_name (provider));
+ else
+ provider_name = g_strdup_printf (_("Unknown Provider (%s)"), type);
+
+ markup = g_strdup_printf ("<b>%s</b>\n"
+ "<small><span foreground=\"#555555\">%s</span></small>",
+ goa_account_get_name (account),
+ provider_name);
+
gtk_list_store_set (GTK_LIST_STORE (model),
iter,
GOA_PANEL_ACCOUNTS_MODEL_COLUMN_NAME, goa_account_get_name (account),
GOA_PANEL_ACCOUNTS_MODEL_COLUMN_SORT_KEY, goa_account_get_id (account),
GOA_PANEL_ACCOUNTS_MODEL_COLUMN_OBJECT, object,
GOA_PANEL_ACCOUNTS_MODEL_COLUMN_ATTENTION_NEEDED, goa_account_get_attention_needed (account),
+ GOA_PANEL_ACCOUNTS_MODEL_COLUMN_MARKUP, markup,
-1);
+
+ g_free (markup);
+ g_free (provider_name);
+ g_clear_object (&provider);
}
static void
diff --git a/src/panel/goapanelaccountsmodel.h b/src/panel/goapanelaccountsmodel.h
index e97507b..afc4ab5 100644
--- a/src/panel/goapanelaccountsmodel.h
+++ b/src/panel/goapanelaccountsmodel.h
@@ -41,6 +41,7 @@ enum
GOA_PANEL_ACCOUNTS_MODEL_COLUMN_SORT_KEY,
GOA_PANEL_ACCOUNTS_MODEL_COLUMN_OBJECT,
GOA_PANEL_ACCOUNTS_MODEL_COLUMN_ATTENTION_NEEDED,
+ GOA_PANEL_ACCOUNTS_MODEL_COLUMN_MARKUP,
GOA_PANEL_ACCOUNTS_MODEL_N_COLUMNS
};