* Lots of files:
More GNOME 2 work. We now compile up to libnautilus-private and
I'm working my way through the files in there. Also changed all
the initialize_class and initialize to class_init and init.
Robey Pointer <robey@eazel.com>
Fix bugs 5528 (oaf command-line options show up in main program
section, not a separate section) and 5510 (descriptions of
OAF-specific options in --help are not translated). To do this I
had to change the way the oaf popt options are processed in all
the places that do so.
* components/adapter/main.c: (main):
* components/hardware/main.c: (main):
* components/help/hyperbola-main.c: (main):
* components/image-viewer/Nautilus_View_image.oaf.in:
* components/image-viewer/nautilus-image-view.c:
(init_server_factory):
* components/loser/content/main.c: (main):
* components/loser/sidebar/main.c: (main):
* components/mozilla/main.c: (main):
* components/music/main.c: (main):
* components/notes/nautilus-notes.c: (main):
* components/rpmview/main.c: (main):
* components/services/install/command-line/eazel-alt-install-corba.
c: (main):
* components/services/install/nautilus-view/main.c: (main):
* components/services/login/nautilus-view/main.c: (main):
* components/services/summary/nautilus-view/main.c: (main):
* components/services/time/command-line/main.c: (main):
* components/services/time/nautilus-view/main.c: (main):
* components/services/trilobite/libtrilobite/trilobite-core-utils.c
: (trilobite_init):
* components/shell/shell.c:
* components/text/Nautilus_View_text.oaf.in:
* components/text/main.c: (main):
* components/throbber/main.c: (main):
* components/tree/main.c: (main):
* libnautilus/nautilus-view-standard-main.c:
(nautilus_view_standard_main_multi):
* src/Nautilus_shell.oaf.in:
* src/nautilus-main.c: (main):
* test/test-nautilus-mime-actions-set.c: (main):
* test/test-nautilus-mime-actions.c: (main): Register oaf options
with gnomelib_register_popt_options and move oaf_init call to
before gnome_init to fix the aforementioned bugs.
2001-01-27 Rebecca Schulman <rebecka@eazel.com>
Fix bugs 4094, 4425, 5201 and 4106 about inappopriate
applications being offered to view remote files.
This change filters applications that don't support
a uri scheme from a file's short list.
reviewed by: Pavel Cisler <pavel@eazel.com>
* libnautilus-extensions/nautilus-mime-actions.c:
(nautilus_mime_actions_get_minimum_file_attributes),
(nautilus_mime_get_short_list_applications_for_file),
(application_supports_uri_scheme):
Filter out applications from the short list that do not
support the uri scheme for the file in question.
* libnautilus-extensions/nautilus-program-choosing.c:
(nautilus_launch_application):
Change "can_open_uris" to "expects_uris" to go along with
the gnome vfs change
* test/test-nautilus-mime-actions.c: (append_comma_and_scheme),
(format_supported_uri_schemes_for_display), (print_application):
update the tests similarly to the way the gnome-vfs tests were
updated, so that all of the fields of the GnomeVFSMimeApplication
structure are correctly printed.
* libnautilus-extensions/nautilus-glib-extensions.c:
Correct spelling and naming error in a comment
* libnautilus-extensions/nautilus-directory.c: Got rid of include
of nautilus-wait-until-ready.h.
* libnautilus-extensions/nautilus-file.c: Got rid of
nautilus_file_wait_until_ready.
* libnautilus-extensions/nautilus-mime-actions.c:
(wait_until_ready_callback),
(nautilus_mime_actions_wait_for_full_file_attributes):
Reimplemented so the wait is in here so we can get rid of
nautilus_file_wait_until_ready.
* libnautilus-extensions/nautilus-mime-actions.h: Moved
nautilus_mime_actions_wait_for_full_file_attributes into
nautilus-wait-until-ready.h.
* libnautilus-extensions/nautilus-program-chooser.c: Added include
of nautilus-wait-until-ready.h since this is one of the two files
that still uses the thing.
* libnautilus-extensions/nautilus-program-choosing.c: Added include
of nautilus-wait-until-ready.h since this is one of the two files
that still uses the thing.
* libnautilus-extensions/nautilus-wait-until-ready.h: Removed
nautilsu_file_wait_until_ready and added
nautilus_mime_actions_wait_for_full_file_attributes.
* src/file-manager/fm-directory-view.c:
(switch_location_and_view): Get rid of code that waits for
attributes, because the code guarantees they will already be read
at this point.
(fm_directory_view_destroy): Stop monitoring the file for the open
with menu.
(files_changed_callback): Update the menus whenever a file changes
or our knowledge about it changes.
(create_open_with_gtk_menu): Use the new monitor call to arrange
to get the information about the single selected file that we
need.
(reset_bonobo_open_with_menu): Use the new monitor call to arrange
to get the information about the single selected file that we
need.
(activate_callback): Remove the hack to work around the
wait_until_ready calls. Also remove the wait_until_ready in here
because we now request all the attributes we will be needing in
the call_when_ready call (that already existed).
(fm_directory_view_activate_file): Request all the attributes
needed for determining MIME actions.
(monitor_file_for_open_with): New function to monitor the stuff we
need to know for the Open with menu.
* test/test-nautilus-mime-actions-set.c: (ready_callback), (main):
Use call_when_ready instead of wait_until_ready.
* test/test-nautilus-mime-actions.c: (ready_callback), (main): Use
call_when_ready instead of wait_until_ready.
* po/ui-extract.pl: Checked in new version from Kenneth.
* po/update.pl: Kenneth wanted me to update the license.
(some vestiges of wait_until_ready remain in the farther reaches
of the UI).
* libnautilus-extensions/nautilus-mime-actions.h,
libnautilus-extensions/nautilus-mime-actions.c
(nautilus_mime_actions_check_if_required_attributes_ready,
nautilus_mime_actions_get_required_file_attributes,
nautilus_mime_actions_wait_for_required_file_attributes): New
functions to help with monitoring or waiting for required
attributes for the nautilus mime API.
(nautilus_mime_get_default_action_type_for_file,
nautilus_mime_get_default_action_for_file,
nautilus_mime_get_default_application_for_file_internal,
nautilus_mime_get_default_application_for_file,
nautilus_mime_is_default_application_for_file_user_chosen,
nautilus_mime_get_default_component_for_file_internal,
nautilus_mime_get_default_component_for_file,
nautilus_mime_is_default_component_for_file_user_chosen,
nautilus_mime_get_short_list_applications_for_file,
nautilus_mime_get_short_list_components_for_file,
nautilus_mime_get_short_list_methods_for_file,
nautilus_mime_get_all_applications_for_file,
nautilus_mime_has_any_applications_for_file,
nautilus_mime_get_all_components_for_file,
nautilus_mime_has_any_components_for_file,
nautilus_mime_set_default_action_type_for_file,
nautilus_mime_set_default_application_for_file,
nautilus_mime_set_default_component_for_file,
nautilus_mime_set_short_list_applications_for_file,
nautilus_mime_set_short_list_components_for_file,
nautilus_mime_add_application_to_short_list_for_file,
nautilus_mime_remove_application_from_short_list_for_file,
nautilus_mime_add_component_to_short_list_for_file,
nautilus_mime_remove_component_from_short_list_for_file,
nautilus_mime_extend_all_applications_for_file,
nautilus_mime_remove_from_all_applications_for_file,
mime_type_get_supertype): Don't `nautilus_file_wait_until_ready'
for the required attributes; instead assert (Well, return_if_fail)
that they are available using
`nautilus_file_check_if_ready'. Also, use
`nautilus_file_get_uri_scheme' where possible.
* libnautilus-extensions/nautilus-directory-async.c
(mime_list_callback): Correct some coding mistakes.
* libnautilus-extensions/nautilus-wait-until-ready.h,
libnautilus-extensions/nautilus-directory.c: Remove
`nautilus_directory_wait_until_ready'.
* libnautilus-extensions/nautilus-file.h,
libnautilus-extensions/nautilus-file.c
(nautilus_file_get_uri_scheme): new convenience function.
* libnautilus-extensions/nautilus-program-chooser.c:
(repopulate_program_list, is_application_default_for_file,
is_component_default_for_file,
is_component_in_short_list_for_file,
is_application_in_short_list_for_file,
program_file_pair_is_default_for_file,
program_file_pair_is_in_short_list_for_file,
add_to_short_list_for_file, remove_from_short_list_for_file,
remove_default_for_item, set_default_for_item): wait_until_ready
for required file attributes.
* libnautilus-extensions/nautilus-program-choosing.c:
(any_programs_available_for_file): wait_until_ready for required
file attributes.
* src/file-manager/fm-directory-view.c: (switch_location_and_view,
create_open_with_gtk_menu, reset_bonobo_open_with_menu,
activate_callback): Wait for the right file attributes.
* src/nautilus-applicable-views.c: (got_file_info_callback),
(nautilus_navigation_info_new): Wait for the right file
attributes. (no wait_until_ready).
* src/nautilus-sidebar.c: (nautilus_sidebar_destroy,
nautilus_sidebar_update_buttons, nautilus_sidebar_update_all),
nautilus_sidebar_set_uri): Monitor the file the sidebar is
displaying, and update when it's attributes change.
* src/nautilus-window-manage-views.c
(nautilus_window_set_content_view): Wait for the right file
attributes. (no wait_until_ready).
* src/nautilus-window.c: (nautilus_window_destroy,
view_menu_choose_view_callback, view_menu_vfs_method_callback,
nautilus_window_real_load_content_view_menu,
nautilus_window_load_content_view_menu): Wait for the right
attributes. (no wait_until_ready in this chain).
* test/test-nautilus-mime-actions-set.c (main): Wait for the right attributes.
* test/test-nautilus-mime-actions.c (main): Wait for the right attributes.
* libnautilus-extensions/nautilus-program-choosing.h,
libnautilus-extensions/nautilus-program-choosing.c:
(nautilus_launch_application): Take a GnomeVFSMimeApplication *
instead of a command string; add gnome-terminal -x
(nautilus_launch_application_from_command): Old version that takes
a command string renamed. Also, uses `system' instead of `execlp',
so command-line arguments in the command string work.
* libnautilus-extensions/nautilus-program-chooser.c
(launch_mime_capplet): Adjusted to conform.
* src/file-manager/fm-directory-view.c
(fm_directory_view_launch_application): Likewise.
* src/nautilus-sidebar.c: (command_button_callback,
nautilus_sidebar_chose_application_callback, add_command_buttons):
Likewise.
* test/test-nautilus-mime-actions.c (print_application): Show the
requires_terminal field for applications.
* libnautilus-extensions/nautilus-directory.h,
libnautilus-extensions/nautilus-directory.c:
(nautilus_directory_wait_until_ready): Non-asynchronous equivalent
of `nautilus_directory_call_when_ready'. However, it doesn't block
the UI while waiting.
(nautilus_directory_wait_until_ready_callback): Helper function
for implementing the above.
* libnautilus-extensions/nautilus-mime-actions.c:
(nautilus_mime_get_default_action_type_for_uri,
nautilus_mime_get_default_action_for_uri,
nautilus_mime_get_default_application_for_uri,
nautilus_mime_get_default_component_for_uri): Implemented with
fully with proper metadata checking and interface querying, etc.
(nautilus_mime_get_short_list_applications_for_uri,
nautilus_mime_get_short_list_components_for_uri,
nautilus_mime_get_all_applications_for_uri,
nautilus_mime_get_all_components_for_uri): Adjusted to deal with
the mime type checking function changing names.
(OAF_ServerInfo__copy, extract_prefix_add_suffix,
mime_type_get_supertype, uri_string_get_scheme),
get_explicit_content_view_iids_from_metafile,
make_oaf_query_for_explicit_content_view_iids,
make_oaf_query_with_known_mime_type,
make_oaf_query_with_uri_scheme_only,
file_list_to_mime_type_hash_table, free_key,
mime_type_hash_table_destroy, server_matches_content_requirements,
nautilus_do_component_query): Oodles of helper functions, many cut
& pasted from elswhere and only slightly modified.
get_mime_type_from_uri: Removed `_hack' from the name.
* libnautilus-extensions/nautilus-mime-actions.h: Added prototype
for nautilus_mime_get_default_action_type_for_uri.
* test/test-nautilus-mime-actions.c (main): Call gnome_init.
* src/nautilus-applicable-views.c: Removed a stray comment that no
longer applies.
* test/test-nautilus-mime-actions.c: Simple test program to check
_for_uri nautilus metadata calls in nautilus.
* test/Makefile.am: Build test-nautilus-mime-actions
* Makefile.am, configure.in: add test directory to the build.
* libnautilus-extensions/nautilus-mime-actions.c
(nautilus_mime_get_default_action_for_uri,
nautilus_mime_get_default_application_for_uri,
nautilus_mime_get_default_component_for_uri): Implemented in the
same temporary stub way as the other calls.