mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-09-30 02:57:38 +00:00
gtkplacesview: add a loading property
So clients of the view can know if the view is busy. https://bugzilla.gnome.org/show_bug.cgi?id=753786
This commit is contained in:
parent
89a34210cb
commit
036ba25eb1
@ -84,6 +84,7 @@ struct _GtkPlacesViewPrivate
|
||||
guint entry_pulse_timeout_id;
|
||||
guint connecting_to_server : 1;
|
||||
guint fetching_networks : 1;
|
||||
guint loading : 1;
|
||||
};
|
||||
|
||||
static void mount_volume (GtkPlacesView *view,
|
||||
@ -106,6 +107,7 @@ enum {
|
||||
PROP_0,
|
||||
PROP_LOCAL_ONLY,
|
||||
PROP_OPEN_FLAGS,
|
||||
PROP_LOADING,
|
||||
LAST_PROP
|
||||
};
|
||||
|
||||
@ -410,6 +412,10 @@ gtk_places_view_get_property (GObject *object,
|
||||
g_value_set_boolean (value, gtk_places_view_get_local_only (self));
|
||||
break;
|
||||
|
||||
case PROP_LOADING:
|
||||
g_value_set_boolean (value, gtk_places_view_get_loading (self));
|
||||
break;
|
||||
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
}
|
||||
@ -965,6 +971,9 @@ network_enumeration_next_files_finished (GObject *source_object,
|
||||
/* avoid to update widgets if the operation was cancelled in finalize */
|
||||
if (priv->listbox != NULL)
|
||||
update_network_state (view);
|
||||
|
||||
priv->loading = FALSE;
|
||||
g_object_notify_by_pspec (G_OBJECT (view), properties[PROP_LOADING]);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -1045,6 +1054,9 @@ update_places (GtkPlacesView *view)
|
||||
priv->network_placeholder = NULL;
|
||||
priv->network_header_spinner = NULL;
|
||||
|
||||
priv->loading = TRUE;
|
||||
g_object_notify_by_pspec (G_OBJECT (view), properties[PROP_LOADING]);
|
||||
|
||||
/* Add "Computer" row */
|
||||
file = g_file_new_for_path ("/");
|
||||
icon = g_themed_icon_new_with_default_fallbacks ("drive-harddisk");
|
||||
@ -2156,6 +2168,13 @@ gtk_places_view_class_init (GtkPlacesViewClass *klass)
|
||||
FALSE,
|
||||
G_PARAM_READWRITE);
|
||||
|
||||
properties[PROP_LOADING] =
|
||||
g_param_spec_boolean ("loading",
|
||||
P_("Loading"),
|
||||
P_("Whether the view is loading locations"),
|
||||
FALSE,
|
||||
G_PARAM_READABLE);
|
||||
|
||||
properties[PROP_OPEN_FLAGS] =
|
||||
g_param_spec_flags ("open-flags",
|
||||
P_("Open Flags"),
|
||||
@ -2333,6 +2352,26 @@ gtk_places_view_set_search_query (GtkPlacesView *view,
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* gtk_places_view_get_loading:
|
||||
* @view: a #GtkPlacesView
|
||||
*
|
||||
* Returns %TRUE if the view is loading locations.
|
||||
*
|
||||
* Since: 3.18
|
||||
*/
|
||||
gboolean
|
||||
gtk_places_view_get_loading (GtkPlacesView *view)
|
||||
{
|
||||
GtkPlacesViewPrivate *priv;
|
||||
|
||||
g_return_val_if_fail (GTK_IS_PLACES_VIEW (view), FALSE);
|
||||
|
||||
priv = gtk_places_view_get_instance_private (view);
|
||||
|
||||
return priv->loading;
|
||||
}
|
||||
|
||||
/**
|
||||
* gtk_places_view_get_local_only:
|
||||
* @view: a #GtkPlacesView
|
||||
|
@ -85,6 +85,9 @@ GDK_AVAILABLE_IN_3_18
|
||||
void gtk_places_view_set_local_only (GtkPlacesView *view,
|
||||
gboolean local_only);
|
||||
|
||||
GDK_AVAILABLE_IN_3_18
|
||||
gboolean gtk_places_view_get_loading (GtkPlacesView *view);
|
||||
|
||||
GDK_AVAILABLE_IN_3_18
|
||||
GtkWidget * gtk_places_view_new (void);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user