summaryrefslogtreecommitdiff
path: root/src/nautilus-properties-window.c
diff options
context:
space:
mode:
authorApoorv Sachan <apoorv.99.sachan@gmail.com>2020-07-02 17:09:37 +0530
committerAntónio Fernandes <antoniojpfernandes@gmail.com>2020-08-05 13:48:10 +0000
commited700c6fc2c5684d7c89ee95cae593d04218e66f (patch)
treec693f10400ba1f033e8899ed6c1f842e0efe767b /src/nautilus-properties-window.c
parentd68a3a65d51e58738db5f14b7b9eed610b8ae803 (diff)
downloadnautilus-ed700c6fc2c5684d7c89ee95cae593d04218e66f.tar.gz
properties-window: Port "Change Permissions..." dialog to GtkBuilder
"Change Permissions of Enclosed Files" dialog is now built using XML UI definition. This is present as a seperate .ui file apart from nautilus-properties-window.ui because a .ui file file containing a widget declared as a template cannot have other external widgets to be built independently from the template. This .ui file is not produced or editable usingg Glade as it doesn't recognize "action" type children as found in GtkDialog. This issue is already reported in https://gitlab.gnome.org/GNOME/glade/-/issues/392
Diffstat (limited to 'src/nautilus-properties-window.c')
-rw-r--r--src/nautilus-properties-window.c67
1 files changed, 26 insertions, 41 deletions
diff --git a/src/nautilus-properties-window.c b/src/nautilus-properties-window.c
index d61db39b5..c691d3a61 100644
--- a/src/nautilus-properties-window.c
+++ b/src/nautilus-properties-window.c
@@ -4518,7 +4518,7 @@ on_change_permissions_response (GtkDialog *dialog,
}
static void
-set_active_from_umask (GtkWidget *combo,
+set_active_from_umask (GtkComboBox *combo,
PermissionType type,
gboolean is_folder)
{
@@ -4613,7 +4613,7 @@ set_active_from_umask (GtkWidget *combo,
}
}
- gtk_combo_box_set_active_id (GTK_COMBO_BOX (combo), id);
+ gtk_combo_box_set_active_id (combo, id);
}
static void
@@ -4621,71 +4621,56 @@ on_change_permissions_clicked (GtkWidget *button,
NautilusPropertiesWindow *window)
{
GtkWidget *dialog;
- GtkWidget *label;
- GtkWidget *combo;
- GtkGrid *grid;
-
- dialog = gtk_dialog_new_with_buttons (_("Change Permissions for Enclosed Files"),
- GTK_WINDOW (window),
- GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT | GTK_DIALOG_USE_HEADER_BAR,
- _("_Cancel"), GTK_RESPONSE_CANCEL,
- _("Change"), GTK_RESPONSE_OK,
- NULL);
+ GtkComboBox *combo;
+ GtkBuilder *change_permissions_builder;
- grid = GTK_GRID (create_grid_with_standard_properties ());
- gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (dialog))),
- GTK_WIDGET (grid),
- TRUE, TRUE, 0);
+ change_permissions_builder = gtk_builder_new_from_resource ("/org/gnome/nautilus/ui/nautilus-file-properties-change-permissions.ui");
- label = gtk_label_new (_("Files"));
- gtk_grid_attach (grid, label, 1, 0, 1, 1);
- label = gtk_label_new (_("Folders"));
- gtk_grid_attach (grid, label, 2, 0, 1, 1);
+ dialog = GTK_WIDGET (gtk_builder_get_object (change_permissions_builder, "change_permissions_dialog"));
+ gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (window));
- label = gtk_label_new (_("Owner:"));
- gtk_label_set_xalign (GTK_LABEL (label), 0);
- gtk_grid_attach (grid, label, 0, 1, 1, 1);
- combo = create_permissions_combo_box (PERMISSION_USER, FALSE);
+ /* Owner Permissions */
+ combo = GTK_COMBO_BOX (gtk_builder_get_object (change_permissions_builder, "file_owner_combo"));
+ setup_permissions_combo_box (combo, PERMISSION_USER, FALSE);
window->change_permission_combos = g_list_prepend (window->change_permission_combos,
combo);
set_active_from_umask (combo, PERMISSION_USER, FALSE);
- gtk_grid_attach (grid, combo, 1, 1, 1, 1);
- combo = create_permissions_combo_box (PERMISSION_USER, TRUE);
+
+ combo = GTK_COMBO_BOX (gtk_builder_get_object (change_permissions_builder, "folder_owner_combo"));
+ setup_permissions_combo_box (combo, PERMISSION_USER, TRUE);
window->change_permission_combos = g_list_prepend (window->change_permission_combos,
combo);
set_active_from_umask (combo, PERMISSION_USER, TRUE);
- gtk_grid_attach (grid, combo, 2, 1, 1, 1);
- label = gtk_label_new (_("Group:"));
- gtk_label_set_xalign (GTK_LABEL (label), 0);
- gtk_grid_attach (grid, label, 0, 2, 1, 1);
- combo = create_permissions_combo_box (PERMISSION_GROUP, FALSE);
+ /* Group Permissions */
+ combo = GTK_COMBO_BOX (gtk_builder_get_object (change_permissions_builder, "file_group_combo"));
+ setup_permissions_combo_box (combo, PERMISSION_GROUP, FALSE);
window->change_permission_combos = g_list_prepend (window->change_permission_combos,
combo);
set_active_from_umask (combo, PERMISSION_GROUP, FALSE);
- gtk_grid_attach (grid, combo, 1, 2, 1, 1);
- combo = create_permissions_combo_box (PERMISSION_GROUP, TRUE);
+
+ combo = GTK_COMBO_BOX (gtk_builder_get_object (change_permissions_builder, "folder_group_combo"));
+ setup_permissions_combo_box (combo, PERMISSION_GROUP, TRUE);
window->change_permission_combos = g_list_prepend (window->change_permission_combos,
combo);
set_active_from_umask (combo, PERMISSION_GROUP, TRUE);
- gtk_grid_attach (grid, combo, 2, 2, 1, 1);
- label = gtk_label_new (_("Others:"));
- gtk_label_set_xalign (GTK_LABEL (label), 0);
- gtk_grid_attach (grid, label, 0, 3, 1, 1);
- combo = create_permissions_combo_box (PERMISSION_OTHER, FALSE);
+ /* Others Permissions */
+ combo = GTK_COMBO_BOX (gtk_builder_get_object (change_permissions_builder, "file_other_combo"));
+ setup_permissions_combo_box (combo, PERMISSION_OTHER, FALSE);
window->change_permission_combos = g_list_prepend (window->change_permission_combos,
combo);
set_active_from_umask (combo, PERMISSION_OTHER, FALSE);
- gtk_grid_attach (grid, combo, 1, 3, 1, 1);
- combo = create_permissions_combo_box (PERMISSION_OTHER, TRUE);
+
+ combo = GTK_COMBO_BOX (gtk_builder_get_object (change_permissions_builder, "folder_other_combo"));
+ setup_permissions_combo_box (combo, PERMISSION_OTHER, TRUE);
window->change_permission_combos = g_list_prepend (window->change_permission_combos,
combo);
set_active_from_umask (combo, PERMISSION_OTHER, TRUE);
- gtk_grid_attach (grid, combo, 2, 3, 1, 1);
g_signal_connect (dialog, "response", G_CALLBACK (on_change_permissions_response), window);
gtk_widget_show_all (dialog);
+ g_object_unref (change_permissions_builder);
}
static void