static void gtk_file_chooser_default_style_updated (GtkWidget *widget);
static void gtk_file_chooser_default_screen_changed (GtkWidget *widget,
GdkScreen *previous_screen);
-static void gtk_file_chooser_default_size_allocate (GtkWidget *widget,
- GtkAllocation *allocation);
static gboolean gtk_file_chooser_default_set_current_folder (GtkFileChooser *chooser,
GFile *folder,
static void update_cell_renderer_attributes (GtkFileChooserDefault *impl);
-static void load_remove_timer (GtkFileChooserDefault *impl);
+static void load_remove_timer (GtkFileChooserDefault *impl, LoadState new_load_state);
static void browse_files_center_selected_row (GtkFileChooserDefault *impl);
static void location_button_toggled_cb (GtkToggleButton *toggle,
widget_class->hierarchy_changed = gtk_file_chooser_default_hierarchy_changed;
widget_class->style_updated = gtk_file_chooser_default_style_updated;
widget_class->screen_changed = gtk_file_chooser_default_screen_changed;
- widget_class->size_allocate = gtk_file_chooser_default_size_allocate;
signals[LOCATION_POPUP] =
g_signal_new_class_handler (I_("location-popup"),
file = bookmarks->data;
- if (impl->local_only && !g_file_is_native (file))
+ if (impl->local_only && !_gtk_file_has_native_path (file))
continue;
if (shortcut_find_position (impl, file) != -1)
if (_gtk_file_system_volume_is_mounted (volume))
{
GFile *base_file;
- gboolean base_is_native = TRUE;
+ gboolean base_has_native_path = FALSE;
base_file = _gtk_file_system_volume_get_root (volume);
if (base_file != NULL)
{
- base_is_native = g_file_is_native (base_file);
+ base_has_native_path = _gtk_file_has_native_path (base_file);
g_object_unref (base_file);
}
- if (!base_is_native)
+ if (!base_has_native_path)
continue;
}
}
}
if (local_only && impl->current_folder &&
- !g_file_is_native (impl->current_folder))
+ !_gtk_file_has_native_path (impl->current_folder))
{
/* If we are pointing to a non-local folder, make an effort to change
* back to a local folder, but it's really up to the app to not cause
pending_select_files_free (impl);
- /* cancel all pending operations */
- if (impl->pending_cancellables)
- {
- for (l = impl->pending_cancellables; l; l = l->next)
- {
- GCancellable *cancellable = G_CANCELLABLE (l->data);
- g_cancellable_cancel (cancellable);
- }
- g_slist_free (impl->pending_cancellables);
- impl->pending_cancellables = NULL;
- }
-
if (impl->reload_icon_cancellables)
{
for (l = impl->reload_icon_cancellables; l; l = l->next)
impl->should_respond_get_info_cancellable = NULL;
}
+ if (impl->file_exists_get_info_cancellable)
+ {
+ g_cancellable_cancel (impl->file_exists_get_info_cancellable);
+ impl->file_exists_get_info_cancellable = NULL;
+ }
+
if (impl->update_from_entry_cancellable)
{
g_cancellable_cancel (impl->update_from_entry_cancellable);
profile_end ("end", NULL);
}
-static void
-gtk_file_chooser_default_size_allocate (GtkWidget *widget,
- GtkAllocation *allocation)
-{
- GTK_WIDGET_CLASS (_gtk_file_chooser_default_parent_class)->size_allocate (widget, allocation);
-}
-
static void
set_sort_column (GtkFileChooserDefault *impl)
{
impl->load_state = LOAD_PRELOAD;
}
-/* Removes the load timeout and switches to the LOAD_FINISHED state */
+/* Removes the load timeout; changes the impl->load_state to the specified value. */
static void
-load_remove_timer (GtkFileChooserDefault *impl)
+load_remove_timer (GtkFileChooserDefault *impl, LoadState new_load_state)
{
if (impl->load_timeout_id != 0)
{
g_source_remove (impl->load_timeout_id);
impl->load_timeout_id = 0;
- impl->load_state = LOAD_EMPTY;
}
else
g_assert (impl->load_state == LOAD_EMPTY ||
impl->load_state == LOAD_LOADING ||
impl->load_state == LOAD_FINISHED);
+
+ g_assert (new_load_state == LOAD_EMPTY ||
+ new_load_state == LOAD_LOADING ||
+ new_load_state == LOAD_FINISHED);
+ impl->load_state = new_load_state;
}
/* Selects the first row in the file list */
gboolean selected_a_file;
GSList *walk;
+ g_assert (impl->load_state == LOAD_FINISHED);
+ g_assert (impl->browse_files_model != NULL);
+
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (impl->browse_files_tree_view));
fsmodel = GTK_FILE_SYSTEM_MODEL (gtk_tree_view_get_model (GTK_TREE_VIEW (impl->browse_files_tree_view)));
+ g_assert (fsmodel == impl->browse_files_model);
+
enabled_hidden = impl->show_hidden;
removed_filters = (impl->current_filter == NULL);
if (impl->load_state == LOAD_PRELOAD)
{
- load_remove_timer (impl);
+ load_remove_timer (impl, LOAD_FINISHED);
load_set_model (impl);
}
else if (impl->load_state == LOAD_LOADING)
stop_loading_and_clear_list_model (GtkFileChooserDefault *impl,
gboolean remove_from_treeview)
{
- load_remove_timer (impl); /* This changes the state to LOAD_EMPTY */
+ load_remove_timer (impl, LOAD_EMPTY);
if (impl->browse_files_model)
{
operation_mode_set (impl, OPERATION_MODE_BROWSE);
- if (impl->local_only && !g_file_is_native (file))
+ if (impl->local_only && !_gtk_file_has_native_path (file))
{
g_set_error_literal (error,
GTK_FILE_CHOOSER_ERROR,