mirror of
https://gitlab.gnome.org/GNOME/nautilus
synced 2024-09-29 20:44:17 +00:00
file-properties-change-permissions: Modernize the UI
Use AdwPreferencesPage, AdwPreferencesGroup and AdwComboRow. Also, add mnemonics.
This commit is contained in:
parent
d98967693e
commit
88a941ff74
|
@ -173,7 +173,7 @@ struct _NautilusPropertiesWindow
|
|||
OwnerChange *owner_change;
|
||||
|
||||
GList *permission_rows;
|
||||
GList *change_permission_drop_downs;
|
||||
GList *change_permission_combo_rows;
|
||||
GHashTable *initial_permissions;
|
||||
gboolean has_recursive_apply;
|
||||
|
||||
|
@ -3041,7 +3041,7 @@ update_permission_row (AdwComboRow *row,
|
|||
}
|
||||
|
||||
static void
|
||||
setup_permissions_drop_down (GtkDropDown *drop_down,
|
||||
setup_permissions_combo_row (AdwComboRow *combo_row,
|
||||
PermissionType type,
|
||||
FilterType filter_type)
|
||||
{
|
||||
|
@ -3049,13 +3049,13 @@ setup_permissions_drop_down (GtkDropDown *drop_down,
|
|||
g_autoptr (GtkExpression) expression = NULL;
|
||||
|
||||
store = g_list_store_new (NAUTILUS_TYPE_PERMISSION_ENTRY);
|
||||
gtk_drop_down_set_model (drop_down, G_LIST_MODEL (store));
|
||||
adw_combo_row_set_model (combo_row, G_LIST_MODEL (store));
|
||||
expression = gtk_property_expression_new (NAUTILUS_TYPE_PERMISSION_ENTRY, NULL, "name");
|
||||
gtk_drop_down_set_expression (drop_down, expression);
|
||||
adw_combo_row_set_expression (combo_row, expression);
|
||||
|
||||
|
||||
g_object_set_data (G_OBJECT (drop_down), "filter-type", GINT_TO_POINTER (filter_type));
|
||||
g_object_set_data (G_OBJECT (drop_down), "permission-type", GINT_TO_POINTER (type));
|
||||
g_object_set_data (G_OBJECT (combo_row), "filter-type", GINT_TO_POINTER (filter_type));
|
||||
g_object_set_data (G_OBJECT (combo_row), "permission-type", GINT_TO_POINTER (type));
|
||||
|
||||
if (filter_type == FOLDERS_ONLY)
|
||||
{
|
||||
|
@ -3248,7 +3248,7 @@ on_change_permissions_response_cancel (AdwWindow *dialog,
|
|||
NautilusPropertiesWindow *self =
|
||||
NAUTILUS_PROPERTIES_WINDOW (gtk_window_get_transient_for (GTK_WINDOW (dialog)));
|
||||
|
||||
g_clear_pointer (&self->change_permission_drop_downs, g_list_free);
|
||||
g_clear_pointer (&self->change_permission_combo_rows, g_list_free);
|
||||
gtk_window_destroy (GTK_WINDOW (dialog));
|
||||
}
|
||||
|
||||
|
@ -3268,18 +3268,18 @@ on_change_permissions_response_change (AdwWindow *dialog,
|
|||
int mask;
|
||||
|
||||
/* Simple mode, minus exec checkbox */
|
||||
for (l = self->change_permission_drop_downs; l != NULL; l = l->next)
|
||||
for (l = self->change_permission_combo_rows; l != NULL; l = l->next)
|
||||
{
|
||||
GtkDropDown *drop_down = l->data;
|
||||
NautilusPermissionEntry *selected = gtk_drop_down_get_selected_item (drop_down);
|
||||
AdwComboRow *combo_row = l->data;
|
||||
NautilusPermissionEntry *selected = adw_combo_row_get_selected_item (combo_row);
|
||||
|
||||
if (selected == NULL)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
type = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (drop_down), "permission-type"));
|
||||
filter_type = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (drop_down), "filter-type"));
|
||||
type = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (combo_row), "permission-type"));
|
||||
filter_type = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (combo_row), "filter-type"));
|
||||
|
||||
vfs_new_perm = permission_to_vfs (type, selected->permission_value);
|
||||
|
||||
|
@ -3325,16 +3325,16 @@ on_change_permissions_response_change (AdwWindow *dialog,
|
|||
self);
|
||||
}
|
||||
}
|
||||
g_clear_pointer (&self->change_permission_drop_downs, g_list_free);
|
||||
g_clear_pointer (&self->change_permission_combo_rows, g_list_free);
|
||||
gtk_window_destroy (GTK_WINDOW (dialog));
|
||||
}
|
||||
|
||||
static void
|
||||
set_active_from_umask (GtkDropDown *drop_down,
|
||||
set_active_from_umask (AdwComboRow *combo_row,
|
||||
PermissionType type,
|
||||
FilterType filter_type)
|
||||
{
|
||||
GListModel *model = gtk_drop_down_get_model (drop_down);
|
||||
GListModel *model = adw_combo_row_get_model (combo_row);
|
||||
mode_t initial;
|
||||
mode_t mask;
|
||||
mode_t p;
|
||||
|
@ -3432,7 +3432,7 @@ set_active_from_umask (GtkDropDown *drop_down,
|
|||
|
||||
if (entry->permission_value == perm)
|
||||
{
|
||||
gtk_drop_down_set_selected (drop_down, i);
|
||||
adw_combo_row_set_selected (combo_row, i);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -3452,7 +3452,7 @@ static void
|
|||
on_change_permissions_clicked (NautilusPropertiesWindow *self)
|
||||
{
|
||||
GtkWidget *dialog;
|
||||
GtkDropDown *drop_down;
|
||||
AdwComboRow *combo_row;
|
||||
GtkButton *cancel_button, *change_button;
|
||||
GtkShortcut *esc_shortcut;
|
||||
GtkShortcutAction *cb_action;
|
||||
|
@ -3464,43 +3464,43 @@ on_change_permissions_clicked (NautilusPropertiesWindow *self)
|
|||
gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (self));
|
||||
|
||||
/* Owner Permissions */
|
||||
drop_down = GTK_DROP_DOWN (gtk_builder_get_object (change_permissions_builder, "file_owner_drop_down"));
|
||||
setup_permissions_drop_down (drop_down, PERMISSION_USER, FILES_ONLY);
|
||||
self->change_permission_drop_downs = g_list_prepend (self->change_permission_drop_downs,
|
||||
drop_down);
|
||||
set_active_from_umask (drop_down, PERMISSION_USER, FILES_ONLY);
|
||||
combo_row = ADW_COMBO_ROW (gtk_builder_get_object (change_permissions_builder, "file_owner_combo_row"));
|
||||
setup_permissions_combo_row (combo_row, PERMISSION_USER, FILES_ONLY);
|
||||
self->change_permission_combo_rows = g_list_prepend (self->change_permission_combo_rows,
|
||||
combo_row);
|
||||
set_active_from_umask (combo_row, PERMISSION_USER, FILES_ONLY);
|
||||
|
||||
drop_down = GTK_DROP_DOWN (gtk_builder_get_object (change_permissions_builder, "folder_owner_drop_down"));
|
||||
setup_permissions_drop_down (drop_down, PERMISSION_USER, FOLDERS_ONLY);
|
||||
self->change_permission_drop_downs = g_list_prepend (self->change_permission_drop_downs,
|
||||
drop_down);
|
||||
set_active_from_umask (drop_down, PERMISSION_USER, FOLDERS_ONLY);
|
||||
combo_row = ADW_COMBO_ROW (gtk_builder_get_object (change_permissions_builder, "folder_owner_combo_row"));
|
||||
setup_permissions_combo_row (combo_row, PERMISSION_USER, FOLDERS_ONLY);
|
||||
self->change_permission_combo_rows = g_list_prepend (self->change_permission_combo_rows,
|
||||
combo_row);
|
||||
set_active_from_umask (combo_row, PERMISSION_USER, FOLDERS_ONLY);
|
||||
|
||||
/* Group Permissions */
|
||||
drop_down = GTK_DROP_DOWN (gtk_builder_get_object (change_permissions_builder, "file_group_drop_down"));
|
||||
setup_permissions_drop_down (drop_down, PERMISSION_GROUP, FILES_ONLY);
|
||||
self->change_permission_drop_downs = g_list_prepend (self->change_permission_drop_downs,
|
||||
drop_down);
|
||||
set_active_from_umask (drop_down, PERMISSION_GROUP, FILES_ONLY);
|
||||
combo_row = ADW_COMBO_ROW (gtk_builder_get_object (change_permissions_builder, "file_group_combo_row"));
|
||||
setup_permissions_combo_row (combo_row, PERMISSION_GROUP, FILES_ONLY);
|
||||
self->change_permission_combo_rows = g_list_prepend (self->change_permission_combo_rows,
|
||||
combo_row);
|
||||
set_active_from_umask (combo_row, PERMISSION_GROUP, FILES_ONLY);
|
||||
|
||||
drop_down = GTK_DROP_DOWN (gtk_builder_get_object (change_permissions_builder, "folder_group_drop_down"));
|
||||
setup_permissions_drop_down (drop_down, PERMISSION_GROUP, FOLDERS_ONLY);
|
||||
self->change_permission_drop_downs = g_list_prepend (self->change_permission_drop_downs,
|
||||
drop_down);
|
||||
set_active_from_umask (drop_down, PERMISSION_GROUP, FOLDERS_ONLY);
|
||||
combo_row = ADW_COMBO_ROW (gtk_builder_get_object (change_permissions_builder, "folder_group_combo_row"));
|
||||
setup_permissions_combo_row (combo_row, PERMISSION_GROUP, FOLDERS_ONLY);
|
||||
self->change_permission_combo_rows = g_list_prepend (self->change_permission_combo_rows,
|
||||
combo_row);
|
||||
set_active_from_umask (combo_row, PERMISSION_GROUP, FOLDERS_ONLY);
|
||||
|
||||
/* Others Permissions */
|
||||
drop_down = GTK_DROP_DOWN (gtk_builder_get_object (change_permissions_builder, "file_other_drop_down"));
|
||||
setup_permissions_drop_down (drop_down, PERMISSION_OTHER, FILES_ONLY);
|
||||
self->change_permission_drop_downs = g_list_prepend (self->change_permission_drop_downs,
|
||||
drop_down);
|
||||
set_active_from_umask (drop_down, PERMISSION_OTHER, FILES_ONLY);
|
||||
combo_row = ADW_COMBO_ROW (gtk_builder_get_object (change_permissions_builder, "file_other_combo_row"));
|
||||
setup_permissions_combo_row (combo_row, PERMISSION_OTHER, FILES_ONLY);
|
||||
self->change_permission_combo_rows = g_list_prepend (self->change_permission_combo_rows,
|
||||
combo_row);
|
||||
set_active_from_umask (combo_row, PERMISSION_OTHER, FILES_ONLY);
|
||||
|
||||
drop_down = GTK_DROP_DOWN (gtk_builder_get_object (change_permissions_builder, "folder_other_drop_down"));
|
||||
setup_permissions_drop_down (drop_down, PERMISSION_OTHER, FOLDERS_ONLY);
|
||||
self->change_permission_drop_downs = g_list_prepend (self->change_permission_drop_downs,
|
||||
drop_down);
|
||||
set_active_from_umask (drop_down, PERMISSION_OTHER, FOLDERS_ONLY);
|
||||
combo_row = ADW_COMBO_ROW (gtk_builder_get_object (change_permissions_builder, "folder_other_combo_row"));
|
||||
setup_permissions_combo_row (combo_row, PERMISSION_OTHER, FOLDERS_ONLY);
|
||||
self->change_permission_combo_rows = g_list_prepend (self->change_permission_combo_rows,
|
||||
combo_row);
|
||||
set_active_from_umask (combo_row, PERMISSION_OTHER, FOLDERS_ONLY);
|
||||
|
||||
cancel_button = GTK_BUTTON (gtk_builder_get_object (change_permissions_builder, "cancel_button"));
|
||||
change_button = GTK_BUTTON (gtk_builder_get_object (change_permissions_builder, "change_button"));
|
||||
|
@ -3997,7 +3997,7 @@ real_dispose (GObject *object)
|
|||
|
||||
g_clear_list (&self->permission_rows, NULL);
|
||||
|
||||
g_clear_list (&self->change_permission_drop_downs, NULL);
|
||||
g_clear_list (&self->change_permission_combo_rows, NULL);
|
||||
|
||||
g_clear_pointer (&self->initial_permissions, g_hash_table_destroy);
|
||||
|
||||
|
|
|
@ -5,6 +5,9 @@
|
|||
<property name="title" translatable="yes">Change Permissions for Enclosed Files</property>
|
||||
<property name="modal">True</property>
|
||||
<property name="destroy-with-parent">True</property>
|
||||
<property name="width-request">360</property>
|
||||
<property name="height-request">294</property>
|
||||
<property name="default-width">480</property>
|
||||
<property name="content">
|
||||
<object class="AdwToolbarView">
|
||||
<child type="top">
|
||||
|
@ -29,124 +32,56 @@
|
|||
</object>
|
||||
</child>
|
||||
<property name="content">
|
||||
<object class="GtkGrid" id="change_permissions_grid">
|
||||
<property name="halign">center</property>
|
||||
<property name="margin-top">18</property>
|
||||
<property name="margin-bottom">18</property>
|
||||
<property name="margin-start">18</property>
|
||||
<property name="margin-end">18</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="row_spacing">6</property>
|
||||
<property name="column_spacing">12</property>
|
||||
<object class="AdwPreferencesPage">
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="label" translatable="yes">Files</property>
|
||||
<style>
|
||||
<class name="dim-label"/>
|
||||
</style>
|
||||
<layout>
|
||||
<property name="column">1</property>
|
||||
<property name="row">0</property>
|
||||
</layout>
|
||||
<object class="AdwPreferencesGroup">
|
||||
<property name="title" translatable="yes">Owner</property>
|
||||
<child>
|
||||
<object class="AdwComboRow" id="file_owner_combo_row">
|
||||
<property name="title" translatable="yes">_Files</property>
|
||||
<property name="use-underline">True</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="AdwComboRow" id="folder_owner_combo_row">
|
||||
<property name="title" translatable="yes">F_olders</property>
|
||||
<property name="use-underline">True</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="label" translatable="yes">Folders</property>
|
||||
<style>
|
||||
<class name="dim-label"/>
|
||||
</style>
|
||||
<layout>
|
||||
<property name="column">2</property>
|
||||
<property name="row">0</property>
|
||||
</layout>
|
||||
<object class="AdwPreferencesGroup">
|
||||
<property name="title" translatable="yes">Group</property>
|
||||
<child>
|
||||
<object class="AdwComboRow" id="file_group_combo_row">
|
||||
<property name="title" translatable="yes">Fi_les</property>
|
||||
<property name="use-underline">True</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="AdwComboRow" id="folder_group_combo_row">
|
||||
<property name="title" translatable="yes">Fol_ders</property>
|
||||
<property name="use-underline">True</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="label" translatable="yes">Owner</property>
|
||||
<property name="xalign">1</property>
|
||||
<style>
|
||||
<class name="dim-label"/>
|
||||
</style>
|
||||
<layout>
|
||||
<property name="column">0</property>
|
||||
<property name="row">1</property>
|
||||
</layout>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkDropDown" id="file_owner_drop_down">
|
||||
<layout>
|
||||
<property name="column">1</property>
|
||||
<property name="row">1</property>
|
||||
</layout>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkDropDown" id="folder_owner_drop_down">
|
||||
<layout>
|
||||
<property name="column">2</property>
|
||||
<property name="row">1</property>
|
||||
</layout>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="label" translatable="yes">Group</property>
|
||||
<property name="xalign">1</property>
|
||||
<style>
|
||||
<class name="dim-label"/>
|
||||
</style>
|
||||
<layout>
|
||||
<property name="column">0</property>
|
||||
<property name="row">2</property>
|
||||
</layout>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkDropDown" id="file_group_drop_down">
|
||||
<layout>
|
||||
<property name="column">1</property>
|
||||
<property name="row">2</property>
|
||||
</layout>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkDropDown" id="folder_group_drop_down">
|
||||
<layout>
|
||||
<property name="column">2</property>
|
||||
<property name="row">2</property>
|
||||
</layout>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkDropDown" id="file_other_drop_down">
|
||||
<layout>
|
||||
<property name="column">1</property>
|
||||
<property name="row">3</property>
|
||||
</layout>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkDropDown" id="folder_other_drop_down">
|
||||
<layout>
|
||||
<property name="column">2</property>
|
||||
<property name="row">3</property>
|
||||
</layout>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="label" translatable="yes">Others</property>
|
||||
<property name="xalign">1</property>
|
||||
<style>
|
||||
<class name="dim-label"/>
|
||||
</style>
|
||||
<layout>
|
||||
<property name="column">0</property>
|
||||
<property name="row">3</property>
|
||||
</layout>
|
||||
<object class="AdwPreferencesGroup">
|
||||
<property name="title" translatable="yes">Others</property>
|
||||
<child>
|
||||
<object class="AdwComboRow" id="file_other_combo_row">
|
||||
<property name="title" translatable="yes">Fil_es</property>
|
||||
<property name="use-underline">True</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="AdwComboRow" id="folder_other_combo_row">
|
||||
<property name="title" translatable="yes">Folde_rs</property>
|
||||
<property name="use-underline">True</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
|
|
Loading…
Reference in a new issue