diff options
author | David Zeuthen <davidz@redhat.com> | 2011-05-20 14:23:08 -0400 |
---|---|---|
committer | David Zeuthen <davidz@redhat.com> | 2011-05-20 14:23:08 -0400 |
commit | ee3381207ddc9dc8e42507f9357981adcec297d1 (patch) | |
tree | 88ea06ba9a04c57d5a42d8c0328b315272cd0f79 | |
parent | bce62e04ed668bc3f7c211f09f3ff9dc4265e9d3 (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.c | 2 | ||||
-rw-r--r-- | src/panel/goapanelaccountsmodel.c | 28 | ||||
-rw-r--r-- | src/panel/goapanelaccountsmodel.h | 1 |
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 }; |