summaryrefslogtreecommitdiff
path: root/src/nautilus-view-frame.h
diff options
context:
space:
mode:
authorDarin Adler <darin@src.gnome.org>2000-09-13 18:13:56 +0000
committerDarin Adler <darin@src.gnome.org>2000-09-13 18:13:56 +0000
commita6a23a708e0837f6c09602ca86f74fc5d5767c55 (patch)
treeb33419a29ee4363b4bac0a8e1e948e2cb5e29d7f /src/nautilus-view-frame.h
parent705c763022c031ceabacda81adf77d7e960bc39e (diff)
downloadnautilus-a6a23a708e0837f6c09602ca86f74fc5d5767c55.tar.gz
Fixed bugs in Nautilus link management, some other minor problems
I encountered along the way, and did the first cut at a state machine for NautilusViewFrame based on Maciej's design that can mostly replace the super-complicated one for NautilusWindow. * README: We no longer can use the ORBit that comes with HC1.2 with cvs HEAD, since warnings have been fixed in the code generated by the newer ORBit, so fix that line in the README. * libnautilus-extensions/nautilus-directory.c: (nautilus_directory_new): Use the new nautilus_uri_is_trash function to avoid hard-coding incorrect checks for "trash:". (nautilus_directory_copy_move_metadata_key): Make simple fix for empty metadata. This code gets replaced soon anyway. * libnautilus-extensions/nautilus-drag.c: (nautilus_drag_can_accept_item): Simplify code to get rid of illegal sync. I/O. It's OK to assume all NautilusLink objects point to directories for now, and if we make a change to do something fancier later, we have to do it with async. (nautilus_drag_default_drop_action_for_icons): Use the new nautilus_uri_is_trash function to avoid hard-coding incorrect checks for "trash:". * libnautilus-extensions/nautilus-drag.h: Fixed a typo. * libnautilus-extensions/nautilus-file-operations.c: (get_link_name): Fix unintialized variable warning in a simple way that avoids adding too much code. (get_duplicate_name): Fix unintialized variable warning in a simple way that avoids adding too much code. (nautilus_file_operations_copy_move): Use the new nautilus_uri_is_trash function to avoid hard-coding incorrect checks for "trash:". * libnautilus-extensions/nautilus-file-utilities.h: * libnautilus-extensions/nautilus-file-utilities.c: (nautilus_uri_is_trash): Add new function to avoid hard-coding incorrect checks for "trash:". (nautilus_make_uri_canonical), Use nautilus_uri_is_trash. * libnautilus-extensions/nautilus-icon-container.h: * libnautilus-extensions/nautilus-icon-container.c: Remove nautilus_icon_container_trash_link_is_in_selection for 3 reasons. It doesn't belong in NautilusIconContainer, the use of it in drag code was incorrectly looking at the destination directory's selection, and it used sync. I/O. * libnautilus-extensions/nautilus-icon-dnd.c: (selection_includes_trash), (nautilus_icon_container_receive_dropped_icons): Changed code to actually check selection -- the old code would check the selection in the target window. Unfortunately this still uses sync. I/O, but that's now covered by bug 3020. * libnautilus-extensions/nautilus-icon-factory.c: (nautilus_icon_factory_get_icon_for_file): Change to use new "local" API for links to make it clear that it uses sync. I/O and only works on local files. * libnautilus-extensions/nautilus-link.h: * libnautilus-extensions/nautilus-link.c: (get_tag), (get_link_type): Added functions to handle tags internally as part of getting rid of tag string values from the API. (nautilus_link_local_create): Changed name to local to emphasize this takes a path not a URI and uses sync. I/O. (local_set_root_property): Share code among the set functions. Before there were a lot of copies of the same code. Also made sure that it does no rewrite of the file if called to set a property to the same value it already has. (nautilus_link_local_set_icon), (nautilus_link_local_set_link_uri), (nautilus_link_local_set_type): Changed name to local to emphasize these take a path not a URI and use sync. I/O. Reimplement by calling local_set_root_property. (nautilus_link_local_get_additional_text): Change name to local and make it take a path instead of a URI to make it clear it uses sync. I/O and doesn't work on remote URIs. (nautilus_link_local_get_image_uri): Change name to local and make it take a path instead of a URI to make it clear it uses sync. I/O and doesn't work on remote URIs. (nautilus_link_local_get_link_uri): Change name to local and make it take a path instead of a URI to make it clear it uses sync. I/O and doesn't work on remote URIs. (nautilus_link_local_get_link_type): Change return value to be the NautilusLinkType enum instead of the type tag string to make the interface cleaner. Also changed name to local to make it clear that it takes a path instead of a URI and uses sync. I/O. (nautilus_link_local_is_volume_link), (nautilus_link_local_is_home_link), (nautilus_link_local_is_trash_link): Changed all three of these to take advantage of the new simpler get_link_type, and changed name to local to make it clear that they take a path instead of a URI and use sync. I/O. * src/file-manager/fm-desktop-icon-view.c: (create_mount_link): Use call by new "local" name. (trash_link_is_selection): Call new "local" function, which now requires a path rather than a URI. (fm_desktop_icon_view_trash_state_changed_callback): Use call by new "local" name. (volume_unmounted_callback): Fix bug where the unmounted callback was using a path as a URI without converting. (find_and_update_home_link): Use call by new "local" name. (place_home_directory): Use call by new "local" name. (find_and_rename_trash_link): Use call by new "local" name. (create_or_rename_trash): Use call by new "local" name. (remove_old_mount_links): Use call by new "local" name. (get_sort_category): Use new get_link_type call and a case statement instead of the old one and a list of string compares. * src/file-manager/fm-directory-view.c: (fm_directory_trash_link_in_selection): Wrote a new version of this function. This is similar to what was in NautilusIconContainer, but the one in there didn't belong there, and didn't really work for other callers. Also, the one in there didn't work at all for the list view case. This new function works for either icon or list view. It still has the limitation that it won't recognize a trash link if it's not local. * src/file-manager/fm-icon-view.c: (get_icon_drop_target_uri_callback): Fix to use new local calls, but still does sync. I/O. Bug 3020 reported about that. (get_icon_text_callback): Changed to use new local calls. Still a problem that it works only locally and uses sync. I/O. Bug 2531 was already reported about that. * src/file-manager/fm-properties-window.c: (get_and_ref_file_to_display): Changed to use new local calls and the simpler link type interface. * src/nautilus-view-frame-private.h: Moved some private declarations here since they are for objects used in one file and declared in another. * src/nautilus-view-frame.h: * src/nautilus-view-frame.c: (nautilus_view_frame_destroy_client): Destroy the "check if view is gone" timeout here; makes more sense than the way it was managed before. (nautilus_view_frame_destroy): Don't destroy the timeout here any more. Also, label was moved into details. (nautilus_view_frame_handle_client_gone): Renamed from handle_client_destroy_2. (view_frame_wait), (view_frame_underway), (view_frame_wait_is_over), (view_frame_loaded), (view_frame_failed): Added functions to implement view frame state machine transitions. (check_if_view_is_gone): Moved code to check if view is gone here; it's now activated automatically without requiring an explicit call to turn it on, since all callers were turning it on at load_client time. (nautilus_view_frame_load_client): Add state management. Moved the code to turn on the object check timeout here. (nautilus_view_frame_load_location): Add state management. (nautilus_view_frame_open_location): Add state management. (nautilus_view_frame_open_location_in_new_window): Add state management. (nautilus_view_frame_open_in_new_window_and_select): Add state management. (nautilus_view_frame_report_location_change): Add state management. (nautilus_view_frame_report_selection_change): Add state management. (nautilus_view_frame_report_status): Add state management. (nautilus_view_frame_report_load_underway): Add state management. (nautilus_view_frame_report_load_progress): Add state management. (nautilus_view_frame_report_load_complete): Add state management. (nautilus_view_frame_report_load_failed): Add state management. (nautilus_view_frame_set_title): Add state management. (nautilus_view_frame_zoom_level_changed): Add state management., (nautilus_view_frame_get_label), (nautilus_view_frame_set_label): Moved label into details structure. * src/nautilus-window-manage-views.c: (nautilus_window_load_sidebar_panel): Fixed code structure a bit (fixes bug 2463) and got rid of call to old nautilus_view_frame_set_active_errors function, which is no longer needed. (nautilus_window_load_content_view): Got rid of call to old nautilus_view_frame_set_active_errors function, which is no longer needed. * src/nautilus-window.c: (window_update_sidebar_panels_from_preferences): Got rid of call to old nautilus_view_frame_set_active_errors function, which is no longer needed.
Diffstat (limited to 'src/nautilus-view-frame.h')
-rw-r--r--src/nautilus-view-frame.h87
1 files changed, 36 insertions, 51 deletions
diff --git a/src/nautilus-view-frame.h b/src/nautilus-view-frame.h
index a7dcb8c1d..dd1dd828b 100644
--- a/src/nautilus-view-frame.h
+++ b/src/nautilus-view-frame.h
@@ -64,13 +64,6 @@ typedef struct {
Nautilus_Zoomable zoomable;
NautilusViewComponentType *component_class;
gpointer component_data;
-
- guint construct_arg_count;
-
- guint timer_id;
- guint checking;
-
- char *label;
} NautilusViewFrame;
typedef struct {
@@ -102,63 +95,55 @@ typedef struct {
* this class, so we no longer have one signal for each CORBA
* signal.
*/
- void (* title_changed) (NautilusViewFrame *view);
+ void (* title_changed) (NautilusViewFrame *view);
/* Part of Nautilus::ZoomableFrame CORBA interface. */
- void (* zoom_level_changed) (NautilusViewFrame *view,
- double zoom_level);
+ void (* zoom_level_changed) (NautilusViewFrame *view,
+ double zoom_level);
/* Error handling for when client goes away. */
- void (* client_gone) (NautilusViewFrame *view);
+ void (* client_gone) (NautilusViewFrame *view);
/* Get a CORBA copy of the history list */
Nautilus_HistoryList *
- (* get_history_list) (NautilusViewFrame *view);
+ (* get_history_list) (NautilusViewFrame *view);
} NautilusViewFrameClass;
-GtkType nautilus_view_frame_get_type (void);
-NautilusViewFrame *nautilus_view_frame_new (BonoboUIHandler *ui_handler,
- NautilusUndoManager *undo_manager);
-gboolean nautilus_view_frame_load_client (NautilusViewFrame *view,
- const char *iid);
-const char * nautilus_view_frame_get_iid (NautilusViewFrame *view);
-CORBA_Object nautilus_view_frame_get_client_objref (NautilusViewFrame *view);
-BonoboObject * nautilus_view_frame_get_control_frame (NautilusViewFrame *view);
-CORBA_Object nautilus_view_frame_get_objref (NautilusViewFrame *view);
-char * nautilus_view_frame_get_title (NautilusViewFrame *view);
-
-/* These functions correspond to methods of the Nautilus:View CORBAinterface. */
-void nautilus_view_frame_load_location (NautilusViewFrame *view,
- const char *location);
-void nautilus_view_frame_stop_loading (NautilusViewFrame *view);
-void nautilus_view_frame_selection_changed (NautilusViewFrame *view,
- GList *selection);
+GtkType nautilus_view_frame_get_type (void);
+NautilusViewFrame * nautilus_view_frame_new (BonoboUIHandler *ui_handler,
+ NautilusUndoManager *undo_manager);
+gboolean nautilus_view_frame_load_client (NautilusViewFrame *view,
+ const char *iid);
+const char * nautilus_view_frame_get_iid (NautilusViewFrame *view);
+char * nautilus_view_frame_get_title (NautilusViewFrame *view);
+
+/* Nautilus:View */
+void nautilus_view_frame_load_location (NautilusViewFrame *view,
+ const char *location);
+void nautilus_view_frame_stop_loading (NautilusViewFrame *view);
+void nautilus_view_frame_selection_changed (NautilusViewFrame *view,
+ GList *selection);
/* Nautilus:Zoomable */
-gboolean nautilus_view_frame_is_zoomable (NautilusViewFrame *view);
-gdouble nautilus_view_frame_get_zoom_level (NautilusViewFrame *view);
-void nautilus_view_frame_set_zoom_level (NautilusViewFrame *view,
- double zoom_level);
-gdouble nautilus_view_frame_get_min_zoom_level (NautilusViewFrame *view);
-gdouble nautilus_view_frame_get_max_zoom_level (NautilusViewFrame *view);
-gboolean nautilus_view_frame_get_is_continuous (NautilusViewFrame *view);
-GList * nautilus_view_frame_get_preferred_zoom_levels
- (NautilusViewFrame *view);
-void nautilus_view_frame_zoom_in (NautilusViewFrame *view);
-void nautilus_view_frame_zoom_out (NautilusViewFrame *view);
-void nautilus_view_frame_zoom_to_fit (NautilusViewFrame *view);
+gboolean nautilus_view_frame_is_zoomable (NautilusViewFrame *view);
+gdouble nautilus_view_frame_get_zoom_level (NautilusViewFrame *view);
+void nautilus_view_frame_set_zoom_level (NautilusViewFrame *view,
+ double zoom_level);
+gdouble nautilus_view_frame_get_min_zoom_level (NautilusViewFrame *view);
+gdouble nautilus_view_frame_get_max_zoom_level (NautilusViewFrame *view);
+gboolean nautilus_view_frame_get_is_continuous (NautilusViewFrame *view);
+GList * nautilus_view_frame_get_preferred_zoom_levels (NautilusViewFrame *view);
+void nautilus_view_frame_zoom_in (NautilusViewFrame *view);
+void nautilus_view_frame_zoom_out (NautilusViewFrame *view);
+void nautilus_view_frame_zoom_to_fit (NautilusViewFrame *view);
/* Other. */
-void nautilus_view_frame_set_active_errors (NautilusViewFrame *view,
- gboolean enabled);
-char * nautilus_view_frame_get_label (NautilusViewFrame *view);
-void nautilus_view_frame_set_label (NautilusViewFrame *view,
- const char *label);
-void nautilus_view_frame_activate (NautilusViewFrame *view);
-Nautilus_HistoryList * nautilus_view_frame_get_history_list (NautilusViewFrame *view);
-
-void nautilus_view_frame_title_changed (NautilusViewFrame *view);
-
+char * nautilus_view_frame_get_label (NautilusViewFrame *view);
+void nautilus_view_frame_set_label (NautilusViewFrame *view,
+ const char *label);
+void nautilus_view_frame_activate (NautilusViewFrame *view);
+Nautilus_HistoryList *nautilus_view_frame_get_history_list (NautilusViewFrame *view);
+void nautilus_view_frame_title_changed (NautilusViewFrame *view);
#endif /* NAUTILUS_VIEW_FRAME_H */