[gnome-notes] settings-dialog: Show online account details
- From: Isaque Galdino de Araujo <igaldino src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-notes] settings-dialog: Show online account details
- Date: Sat, 21 Jul 2018 02:45:30 +0000 (UTC)
commit aa33a91877b0f9e1c92507f8f3802b7345cb647b
Author: Julius Härtl <jus bitgrid net>
Date: Fri Jul 20 23:29:23 2018 -0300
settings-dialog: Show online account details
This commit adds a label to all NextCloud accounts in the settings
dialog so that users can distinquish between different accounts. The
label shows "user nextcloud-url com".
src/bjb-settings-dialog.c | 29 +++++++++++++++++++++++---
src/libbiji/provider/biji-own-cloud-provider.c | 14 +++++++++++++
2 files changed, 40 insertions(+), 3 deletions(-)
---
diff --git a/src/bjb-settings-dialog.c b/src/bjb-settings-dialog.c
index 2dd001c..855d06e 100644
--- a/src/bjb-settings-dialog.c
+++ b/src/bjb-settings-dialog.c
@@ -85,6 +85,8 @@ typedef struct
const gchar *id;
const char *name;
+ const char *user;
+ const char *domain;
GtkWidget *icon;
gboolean selected;
@@ -228,7 +230,8 @@ add_child (gpointer provider_info, gpointer user_data)
BjbSettingsDialog *self;
const BijiProviderInfo *info;
ProviderChild *child;
- GtkWidget *box, *w;
+ GtkWidget *box, *w, *hbox;
+ g_autofree char *identity = NULL;
self = BJB_SETTINGS_DIALOG (user_data);
info = (const BijiProviderInfo*) provider_info;
@@ -237,6 +240,11 @@ add_child (gpointer provider_info, gpointer user_data)
child->id = info->unique_id;
child->icon = info->icon;
child->name = info->name;
+ child->user = info->user;
+ child->domain = info->domain;
+
+ if (child->user && info->domain)
+ identity = g_strconcat(child->user, "@", child->domain, NULL);
/* Is the provider the primary ? */
if (g_strcmp0 (child->id, bjb_settings_get_default_location (self->settings)) ==0)
@@ -257,10 +265,25 @@ add_child (gpointer provider_info, gpointer user_data)
w = child->icon;
gtk_container_add (GTK_CONTAINER (box), w);
+ hbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 2);
+ gtk_container_add (GTK_CONTAINER (box), hbox);
+
w = gtk_label_new (child->name);
- gtk_label_set_xalign (GTK_LABEL (w), 0.0);
+ gtk_widget_set_halign (w, GTK_ALIGN_START);
+ gtk_widget_set_valign (w, GTK_ALIGN_CENTER);
gtk_widget_set_hexpand (w, TRUE);
- gtk_container_add (GTK_CONTAINER (box), w);
+ gtk_widget_set_vexpand (w, TRUE);
+ gtk_container_add (GTK_CONTAINER (hbox), w);
+
+ if (identity)
+ {
+ w = gtk_label_new (identity);
+ gtk_widget_set_opacity (w, 0.5);
+ gtk_widget_set_halign (w, GTK_ALIGN_START);
+ gtk_widget_set_valign (w, GTK_ALIGN_CENTER);
+ gtk_widget_set_hexpand (w, TRUE);
+ gtk_container_add (GTK_CONTAINER (hbox), w);
+ }
self->children = g_list_prepend (self->children, child);
gtk_widget_show_all (box);
diff --git a/src/libbiji/provider/biji-own-cloud-provider.c b/src/libbiji/provider/biji-own-cloud-provider.c
index f2eea33..e4b6d91 100644
--- a/src/libbiji/provider/biji-own-cloud-provider.c
+++ b/src/libbiji/provider/biji-own-cloud-provider.c
@@ -139,6 +139,8 @@ biji_own_cloud_provider_finalize (GObject *object)
g_clear_pointer (&self->info.name, g_free);
g_clear_pointer (&self->info.datasource, g_free);
+ g_clear_pointer (&self->info.user, g_free);
+ g_clear_pointer (&self->info.domain, g_free);
g_queue_free_full (self->queue, g_object_unref);
g_hash_table_unref (self->notes);
@@ -754,6 +756,7 @@ biji_own_cloud_provider_constructed (GObject *obj)
BijiOwnCloudProvider *self;
GError *error;
GIcon *icon;
+ gchar** identity;
gchar *owncloudclient;
GFile *client;
@@ -777,6 +780,17 @@ biji_own_cloud_provider_constructed (GObject *obj)
self->info.unique_id);
self->info.name = g_strdup (goa_account_get_provider_name (self->account));
+ identity = g_strsplit (goa_account_get_presentation_identity (self->account),
+ "@", 2);
+ if (identity)
+ {
+ self->info.user = g_strdup (identity[0]);
+ if (identity[1])
+ self->info.domain = g_strdup (identity[1]);
+
+ g_strfreev(identity);
+ }
+
error = NULL;
icon = g_icon_new_for_string (goa_account_get_provider_icon (self->account),
&error);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]