mirror of
https://gitlab.gnome.org/GNOME/nautilus
synced 2024-10-02 14:03:39 +00:00
network-cell: Show spinner while mounting/unmounting
This commit is contained in:
parent
c674046e29
commit
3494cd79df
|
@ -6829,8 +6829,11 @@ file_mount_callback (NautilusFile *file,
|
||||||
gpointer callback_data)
|
gpointer callback_data)
|
||||||
{
|
{
|
||||||
g_autoptr (NautilusFilesView) self = NAUTILUS_FILES_VIEW (callback_data);
|
g_autoptr (NautilusFilesView) self = NAUTILUS_FILES_VIEW (callback_data);
|
||||||
|
NautilusFilesViewPrivate *priv = nautilus_files_view_get_instance_private (self);
|
||||||
|
NautilusViewItem *item = nautilus_view_model_get_item_for_file (priv->model, file);
|
||||||
|
|
||||||
nautilus_file_invalidate_attributes (file, NAUTILUS_FILE_ATTRIBUTE_MOUNT);
|
nautilus_file_invalidate_attributes (file, NAUTILUS_FILE_ATTRIBUTE_MOUNT);
|
||||||
|
nautilus_view_item_set_loading (item, FALSE);
|
||||||
|
|
||||||
if (error != NULL &&
|
if (error != NULL &&
|
||||||
(error->domain != G_IO_ERROR ||
|
(error->domain != G_IO_ERROR ||
|
||||||
|
@ -6855,6 +6858,10 @@ file_unmount_callback (NautilusFile *file,
|
||||||
gpointer callback_data)
|
gpointer callback_data)
|
||||||
{
|
{
|
||||||
g_autoptr (NautilusFilesView) self = NAUTILUS_FILES_VIEW (callback_data);
|
g_autoptr (NautilusFilesView) self = NAUTILUS_FILES_VIEW (callback_data);
|
||||||
|
NautilusFilesViewPrivate *priv = nautilus_files_view_get_instance_private (self);
|
||||||
|
NautilusViewItem *item = nautilus_view_model_get_item_for_file (priv->model, file);
|
||||||
|
|
||||||
|
nautilus_view_item_set_loading (item, FALSE);
|
||||||
|
|
||||||
if (error != NULL &&
|
if (error != NULL &&
|
||||||
(error->domain != G_IO_ERROR ||
|
(error->domain != G_IO_ERROR ||
|
||||||
|
@ -6919,13 +6926,12 @@ action_mount_volume (GSimpleAction *action,
|
||||||
GVariant *state,
|
GVariant *state,
|
||||||
gpointer user_data)
|
gpointer user_data)
|
||||||
{
|
{
|
||||||
|
NautilusFilesView *view = NAUTILUS_FILES_VIEW (user_data);
|
||||||
|
NautilusFilesViewPrivate *priv = nautilus_files_view_get_instance_private (view);
|
||||||
NautilusFile *file;
|
NautilusFile *file;
|
||||||
GList *selection, *l;
|
GList *selection, *l;
|
||||||
NautilusFilesView *view;
|
|
||||||
GMountOperation *mount_op;
|
GMountOperation *mount_op;
|
||||||
|
|
||||||
view = NAUTILUS_FILES_VIEW (user_data);
|
|
||||||
|
|
||||||
selection = nautilus_view_get_selection (NAUTILUS_VIEW (view));
|
selection = nautilus_view_get_selection (NAUTILUS_VIEW (view));
|
||||||
for (l = selection; l != NULL; l = l->next)
|
for (l = selection; l != NULL; l = l->next)
|
||||||
{
|
{
|
||||||
|
@ -6933,6 +6939,9 @@ action_mount_volume (GSimpleAction *action,
|
||||||
|
|
||||||
if (nautilus_file_can_mount (file))
|
if (nautilus_file_can_mount (file))
|
||||||
{
|
{
|
||||||
|
NautilusViewItem *item = nautilus_view_model_get_item_for_file (priv->model, file);
|
||||||
|
|
||||||
|
nautilus_view_item_set_loading (item, TRUE);
|
||||||
mount_op = gtk_mount_operation_new (nautilus_files_view_get_containing_window (view));
|
mount_op = gtk_mount_operation_new (nautilus_files_view_get_containing_window (view));
|
||||||
g_mount_operation_set_password_save (mount_op, G_PASSWORD_SAVE_FOR_SESSION);
|
g_mount_operation_set_password_save (mount_op, G_PASSWORD_SAVE_FOR_SESSION);
|
||||||
nautilus_file_mount (file, mount_op, NULL,
|
nautilus_file_mount (file, mount_op, NULL,
|
||||||
|
@ -6949,12 +6958,11 @@ action_unmount_volume (GSimpleAction *action,
|
||||||
GVariant *state,
|
GVariant *state,
|
||||||
gpointer user_data)
|
gpointer user_data)
|
||||||
{
|
{
|
||||||
|
NautilusFilesView *view = NAUTILUS_FILES_VIEW (user_data);
|
||||||
|
NautilusFilesViewPrivate *priv = nautilus_files_view_get_instance_private (view);
|
||||||
NautilusFile *file;
|
NautilusFile *file;
|
||||||
g_autolist (NautilusFile) selection = NULL;
|
g_autolist (NautilusFile) selection = NULL;
|
||||||
GList *l;
|
GList *l;
|
||||||
NautilusFilesView *view;
|
|
||||||
|
|
||||||
view = NAUTILUS_FILES_VIEW (user_data);
|
|
||||||
|
|
||||||
selection = nautilus_view_get_selection (NAUTILUS_VIEW (view));
|
selection = nautilus_view_get_selection (NAUTILUS_VIEW (view));
|
||||||
|
|
||||||
|
@ -6964,6 +6972,9 @@ action_unmount_volume (GSimpleAction *action,
|
||||||
if (nautilus_file_can_unmount (file))
|
if (nautilus_file_can_unmount (file))
|
||||||
{
|
{
|
||||||
GMountOperation *mount_op;
|
GMountOperation *mount_op;
|
||||||
|
NautilusViewItem *item = nautilus_view_model_get_item_for_file (priv->model, file);
|
||||||
|
|
||||||
|
nautilus_view_item_set_loading (item, TRUE);
|
||||||
mount_op = gtk_mount_operation_new (nautilus_files_view_get_containing_window (view));
|
mount_op = gtk_mount_operation_new (nautilus_files_view_get_containing_window (view));
|
||||||
nautilus_file_unmount (file, mount_op, NULL,
|
nautilus_file_unmount (file, mount_op, NULL,
|
||||||
file_unmount_callback, g_object_ref (view));
|
file_unmount_callback, g_object_ref (view));
|
||||||
|
|
|
@ -87,6 +87,8 @@ nautilus_network_cell_init (NautilusNetworkCell *self)
|
||||||
|
|
||||||
/* Connect automatically to an item. */
|
/* Connect automatically to an item. */
|
||||||
self->item_signal_group = g_signal_group_new (NAUTILUS_TYPE_VIEW_ITEM);
|
self->item_signal_group = g_signal_group_new (NAUTILUS_TYPE_VIEW_ITEM);
|
||||||
|
g_signal_group_connect_swapped (self->item_signal_group, "notify::loading",
|
||||||
|
(GCallback) on_file_changed, self);
|
||||||
g_signal_group_connect_swapped (self->item_signal_group, "file-changed",
|
g_signal_group_connect_swapped (self->item_signal_group, "file-changed",
|
||||||
(GCallback) on_file_changed, self);
|
(GCallback) on_file_changed, self);
|
||||||
g_signal_connect_object (self->item_signal_group, "bind",
|
g_signal_connect_object (self->item_signal_group, "bind",
|
||||||
|
|
|
@ -56,6 +56,20 @@
|
||||||
</child>
|
</child>
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkSpinner" id="spinner">
|
||||||
|
<binding name="spinning">
|
||||||
|
<lookup name="loading">
|
||||||
|
<lookup name="item">NautilusNetworkCell</lookup>
|
||||||
|
</lookup>
|
||||||
|
</binding>
|
||||||
|
<binding name="visible">
|
||||||
|
<lookup name="loading">
|
||||||
|
<lookup name="item">NautilusNetworkCell</lookup>
|
||||||
|
</lookup>
|
||||||
|
</binding>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkButton" id="unmount_button">
|
<object class="GtkButton" id="unmount_button">
|
||||||
<property name="tooltip-text" translatable="yes">Disconnect</property>
|
<property name="tooltip-text" translatable="yes">Disconnect</property>
|
||||||
|
|
Loading…
Reference in a new issue