diff options
author | Federico Mena Quintero <federico@gnome.org> | 2013-04-11 21:44:21 -0500 |
---|---|---|
committer | Federico Mena Quintero <federico@gnome.org> | 2013-04-11 21:44:21 -0500 |
commit | b0eed8680cd1ee61b6cee6dd2d303b399e9f3f9e (patch) | |
tree | e42acf9122dc8691c56058da26f0e0897d0289cb /gtk/gtkfilechooserdefault.c | |
parent | e2c979799434707902f7ae0642e453d733f40e34 (diff) | |
download | gtk+-b0eed8680cd1ee61b6cee6dd2d303b399e9f3f9e.tar.gz |
Move GtkFileChooserDefault to gtkfilechooserdefault.c
We will move all the fields to a private structure next.
Diffstat (limited to 'gtk/gtkfilechooserdefault.c')
-rw-r--r-- | gtk/gtkfilechooserdefault.c | 168 |
1 files changed, 168 insertions, 0 deletions
diff --git a/gtk/gtkfilechooserdefault.c b/gtk/gtkfilechooserdefault.c index 26ced927ba..e2e903668e 100644 --- a/gtk/gtkfilechooserdefault.c +++ b/gtk/gtkfilechooserdefault.c @@ -146,6 +146,174 @@ _gtk_file_chooser_profile_log (const char *func, int indent, const char *msg1, c #endif +typedef enum { + LOAD_EMPTY, /* There is no model */ + LOAD_PRELOAD, /* Model is loading and a timer is running; model isn't inserted into the tree yet */ + LOAD_LOADING, /* Timeout expired, model is inserted into the tree, but not fully loaded yet */ + LOAD_FINISHED /* Model is fully loaded and inserted into the tree */ +} LoadState; + +typedef enum { + RELOAD_EMPTY, /* No folder has been set */ + RELOAD_HAS_FOLDER /* We have a folder, although it may not be completely loaded yet; no need to reload */ +} ReloadState; + +typedef enum { + LOCATION_MODE_PATH_BAR, + LOCATION_MODE_FILENAME_ENTRY +} LocationMode; + +typedef enum { + OPERATION_MODE_BROWSE, + OPERATION_MODE_SEARCH, + OPERATION_MODE_RECENT +} OperationMode; + +typedef enum { + STARTUP_MODE_RECENT, + STARTUP_MODE_CWD +} StartupMode; + +struct _GtkFileChooserDefault +{ + GtkBox parent_instance; + + GtkFileChooserAction action; + + GtkFileSystem *file_system; + + /* Save mode widgets */ + GtkWidget *save_widgets; + GtkWidget *save_widgets_table; + + GtkWidget *save_folder_label; + + /* The file browsing widgets */ + GtkWidget *browse_widgets_box; + GtkWidget *browse_widgets_hpaned; + GtkWidget *browse_header_box; + GtkWidget *browse_files_tree_view; + GtkWidget *browse_files_popup_menu; + GtkWidget *browse_files_popup_menu_add_shortcut_item; + GtkWidget *browse_files_popup_menu_hidden_files_item; + GtkWidget *browse_files_popup_menu_size_column_item; + GtkWidget *browse_files_popup_menu_copy_file_location_item; + GtkWidget *browse_files_popup_menu_visit_file_item; + GtkWidget *browse_new_folder_button; + GtkWidget *browse_path_bar_hbox; + GtkSizeGroup *browse_path_bar_size_group; + GtkWidget *browse_path_bar; + GtkWidget *browse_special_mode_icon; + GtkWidget *browse_special_mode_label; + GtkWidget *browse_select_a_folder_info_bar; + GtkWidget *browse_select_a_folder_label; + GtkWidget *browse_select_a_folder_icon; + + GtkFileSystemModel *browse_files_model; + char *browse_files_last_selected_name; + + GtkWidget *places_sidebar; + StartupMode startup_mode; + + /* OPERATION_MODE_SEARCH */ + GtkWidget *search_hbox; + GtkWidget *search_entry; + GtkSearchEngine *search_engine; + GtkQuery *search_query; + GtkFileSystemModel *search_model; + + /* OPERATION_MODE_RECENT */ + GtkRecentManager *recent_manager; + GtkFileSystemModel *recent_model; + guint load_recent_id; + + GtkWidget *filter_combo_hbox; + GtkWidget *filter_combo; + GtkWidget *preview_box; + GtkWidget *preview_label; + GtkWidget *preview_widget; + GtkWidget *extra_align; + GtkWidget *extra_widget; + + GtkWidget *location_button; + GtkWidget *location_entry_box; + GtkWidget *location_label; + GtkWidget *location_entry; + LocationMode location_mode; + + /* Handles */ + GSList *loading_shortcuts; + GSList *reload_icon_cancellables; + GCancellable *file_list_drag_data_received_cancellable; + GCancellable *update_current_folder_cancellable; + GCancellable *should_respond_get_info_cancellable; + GCancellable *file_exists_get_info_cancellable; + GCancellable *update_from_entry_cancellable; + GCancellable *shortcuts_activate_iter_cancellable; + + LoadState load_state; + ReloadState reload_state; + guint load_timeout_id; + + OperationMode operation_mode; + + GSList *pending_select_files; + + GtkFileFilter *current_filter; + GSList *filters; + + GtkBookmarksManager *bookmarks_manager; + + int num_volumes; + int num_shortcuts; + int num_bookmarks; + + gulong volumes_changed_id; + gulong bookmarks_changed_id; + + GFile *current_volume_file; + GFile *current_folder; + GFile *preview_file; + char *preview_display_name; + + GtkTreeViewColumn *list_name_column; + GtkCellRenderer *list_name_renderer; + GtkTreeViewColumn *list_mtime_column; + GtkTreeViewColumn *list_size_column; + + GSource *edited_idle; + char *edited_new_text; + + gulong settings_signal_id; + int icon_size; + + GSource *focus_entry_idle; + + gulong toplevel_set_focus_id; + GtkWidget *toplevel_last_focus_widget; + + gint sort_column; + GtkSortType sort_order; + + /* Flags */ + + guint local_only : 1; + guint preview_widget_active : 1; + guint use_preview_label : 1; + guint select_multiple : 1; + guint show_hidden : 1; + guint do_overwrite_confirmation : 1; + guint list_sort_ascending : 1; + guint changing_folder : 1; + guint shortcuts_current_folder_active : 1; + guint has_home : 1; + guint has_desktop : 1; + guint has_search : 1; + guint has_recent: 1; + guint show_size_column : 1; + guint create_folders : 1; +}; + typedef struct _GtkFileChooserDefaultClass GtkFileChooserDefaultClass; |