[nautilus/wip/antoniof/modernize-properties-dialog: 10/17] properties-window: directly printable user name
- From: António Fernandes <antoniof src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [nautilus/wip/antoniof/modernize-properties-dialog: 10/17] properties-window: directly printable user name
- Date: Sun, 2 Jan 2022 19:23:06 +0000 (UTC)
commit 8f9cffa4af372e603bdf21cc6e8989123132f948
Author: Peter Eisenmann <p3732 getgoogleoff me>
Date: Mon Nov 22 03:56:52 2021 +0100
properties-window: directly printable user name
Use a dash with spaces to separate user names and display names, rather
than line breaks and splitting and recombining the string.
For now the user name is still extracted for each entry, with the
adaption to GListModel this will only be done when needed.
Part of #1326
src/nautilus-file.c | 8 ++++----
src/nautilus-properties-window.c | 26 +++++++++++++-------------
2 files changed, 17 insertions(+), 17 deletions(-)
---
diff --git a/src/nautilus-file.c b/src/nautilus-file.c
index d84befea5..f14b0968b 100644
--- a/src/nautilus-file.c
+++ b/src/nautilus-file.c
@@ -6453,8 +6453,8 @@ nautilus_file_set_owner (NautilusFile *file,
*
* Get a list of user names. For users with a different associated
* "real name", the real name follows the standard user name, separated
- * by a carriage return. The caller is responsible for freeing this list
- * and its contents.
+ * by a dash surrounded by spaces. The caller is responsible for freeing
+ * this list and its contents.
*/
GList *
nautilus_get_user_names (void)
@@ -6470,9 +6470,9 @@ nautilus_get_user_names (void)
while ((user = getpwent ()) != NULL)
{
real_name = get_real_name (user->pw_name, user->pw_gecos);
- if (real_name != NULL)
+ if (real_name != NULL && !g_str_equal (real_name, ""))
{
- name = g_strconcat (user->pw_name, "\n", real_name, NULL);
+ name = g_strconcat (user->pw_name, " – ", real_name, NULL);
}
else
{
diff --git a/src/nautilus-properties-window.c b/src/nautilus-properties-window.c
index 82c6fbac9..4717c2fa9 100644
--- a/src/nautilus-properties-window.c
+++ b/src/nautilus-properties-window.c
@@ -1889,7 +1889,6 @@ synch_user_menu (GtkComboBox *combo_box,
GtkTreeModel *model;
GtkListStore *store;
GtkTreeIter iter;
- char *user_name;
g_autofree char *owner_name = NULL;
g_autofree char *nice_owner_name = NULL;
int user_index;
@@ -1923,27 +1922,28 @@ synch_user_menu (GtkComboBox *combo_box,
for (node = users, user_index = 0; node != NULL; node = node->next, ++user_index)
{
- g_auto (GStrv) name_array = NULL;
- g_autofree char *combo_text = NULL;
+ char *combo_text = (char *) node->data;
+ char *separator_pos = g_strstr_len (combo_text, -1, " – ");
+ char *user_name = combo_text;
- user_name = (char *) node->data;
-
- name_array = g_strsplit (user_name, "\n", 2);
- if (name_array[1] != NULL && *name_array[1] != 0)
- {
- combo_text = g_strdup_printf ("%s - %s", name_array[0], name_array[1]);
- }
- else
+ if (separator_pos != NULL)
{
- combo_text = g_strdup (name_array[0]);
+ /* Has display name, extract user name */
+ guint user_name_length = separator_pos - combo_text;
+ user_name = g_strndup (combo_text, user_name_length);
}
gtk_list_store_append (store, &iter);
gtk_list_store_set (store, &iter,
0, combo_text,
1, user_name,
- 2, name_array[0],
+ 2, user_name,
-1);
+ if (separator_pos != NULL)
+ {
+ // only free if copied
+ g_free (user_name);
+ }
}
g_object_set_data (G_OBJECT (combo_box), "user-hash", GUINT_TO_POINTER (current_user_hash));
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]