[nautilus/wip/apoos-maximus/gsoc2020: 8/26] properties-window: Add conditional prompt labels to the template




commit f0b5b3f6e77cf7bbdd5ae5474e0a845c72436026
Author: Apoorv Sachan <apoorv 99 sachan gmail com>
Date:   Fri Jun 19 17:01:05 2020 +0530

    properties-window: Add conditional prompt labels to the template
    
    Also document the code generating label text containing file names.

 src/nautilus-properties-window.c               | 28 ++++++++++++------
 src/resources/ui/nautilus-properties-window.ui | 41 +++++++++++++++++++++++++-
 2 files changed, 59 insertions(+), 10 deletions(-)
---
diff --git a/src/nautilus-properties-window.c b/src/nautilus-properties-window.c
index 4f1e71826..61a10e881 100644
--- a/src/nautilus-properties-window.c
+++ b/src/nautilus-properties-window.c
@@ -156,6 +156,11 @@ struct _NautilusPropertiesWindow
     GtkWidget *permissions_box;
     GtkWidget *permissions_grid;
 
+    GtkWidget *bottom_prompt_seperator;
+    GtkWidget *not_the_owner_label;
+
+    GtkWidget *permission_indeterminable_label;
+
     GroupChange *group_change;
     OwnerChange *owner_change;
 
@@ -4603,9 +4608,8 @@ setup_permissions_page (NautilusPropertiesWindow *window)
 
         if (!all_can_set_permissions (file_list))
         {
-            add_prompt_and_separator (
-                window->permissions_box,
-                _("You are not the owner, so you cannot change these permissions."));
+            gtk_widget_show (window->not_the_owner_label);
+            gtk_widget_show (window->bottom_prompt_seperator);
         }
 
         gtk_widget_show (window->permissions_grid);
@@ -4640,19 +4644,22 @@ setup_permissions_page (NautilusPropertiesWindow *window)
     }
     else
     {
+        /*
+         *  This if block only gets executed if its a single file window,
+         *  in which case the label text needs to be different from the
+         *  default label text. The default label text for a multifile
+         *  window is set in nautilus-properties-window.ui so no else block.
+         */
         if (!is_multi_file_window (window))
         {
             file_name = nautilus_file_get_display_name (get_target_file (window));
             prompt_text = g_strdup_printf (_("The permissions of “%s” could not be determined."), file_name);
+            gtk_label_set_text (GTK_LABEL (window->permission_indeterminable_label), prompt_text);
             g_free (file_name);
-        }
-        else
-        {
-            prompt_text = g_strdup (_("The permissions of the selected file could not be determined."));
+            g_free (prompt_text);
         }
 
-        add_prompt (window->permissions_box, prompt_text, TRUE);
-        g_free (prompt_text);
+        gtk_widget_show (window->permission_indeterminable_label);
     }
 }
 
@@ -5709,6 +5716,9 @@ nautilus_properties_window_class_init (NautilusPropertiesWindowClass *klass)
     gtk_widget_class_bind_template_child (widget_class, NautilusPropertiesWindow, file_system_value);
     gtk_widget_class_bind_template_child (widget_class, NautilusPropertiesWindow, permissions_box);
     gtk_widget_class_bind_template_child (widget_class, NautilusPropertiesWindow, permissions_grid);
+    gtk_widget_class_bind_template_child (widget_class, NautilusPropertiesWindow, bottom_prompt_seperator);
+    gtk_widget_class_bind_template_child (widget_class, NautilusPropertiesWindow, not_the_owner_label);
+    gtk_widget_class_bind_template_child (widget_class, NautilusPropertiesWindow, 
permission_indeterminable_label);
 }
 
 static void
diff --git a/src/resources/ui/nautilus-properties-window.ui b/src/resources/ui/nautilus-properties-window.ui
index 523834cb8..409a4e613 100644
--- a/src/resources/ui/nautilus-properties-window.ui
+++ b/src/resources/ui/nautilus-properties-window.ui
@@ -676,6 +676,45 @@
                 <property name="can_focus">False</property>
                 <property name="border_width">12</property>
                 <property name="orientation">vertical</property>
+                <child>
+                  <object class="GtkLabel" id="not_the_owner_label">
+                    <property name="can_focus">False</property>
+                    <property name="label" translatable="yes">You are not the owner, so you cannot change 
these permissions.</property>
+                    <property name="wrap">True</property>
+                    <property name="max_width_chars">40</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="pack_type">end</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkSeparator" id="bottom_prompt_seperator">
+                    <property name="can_focus">False</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="padding">12</property>
+                    <property name="pack_type">end</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="permission_indeterminable_label">
+                    <property name="can_focus">False</property>
+                    <property name="label" translatable="yes">The permissions of the selected file could not 
be determined.</property>
+                    <property name="wrap">True</property>
+                    <property name="max_width_chars">40</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">2</property>
+                  </packing>
+                </child>
                 <child>
                   <object class="GtkGrid" id="permissions_grid">
                     <property name="can_focus">False</property>
@@ -693,7 +732,7 @@
                   <packing>
                     <property name="expand">True</property>
                     <property name="fill">True</property>
-                    <property name="position">0</property>
+                    <property name="position">4</property>
                   </packing>
                 </child>
               </object>


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]