* components/mozilla/Makefile.am:
* configure.in:
* README:
Remove some Mozilla Milestone cruft. Make the Mozilla component
build with the newly released Mozilla 0.9. Update the README with
the latest Mozilla 0.9 support.
* README:
Add new librsvg and eel dependency entries.
* applets/launcher/Makefile.am:
* applets/preferences-applet/Makefile.am:
Add eel library to make it link properly.
* configure.in:
Fix bug 7952 - configure.in reference to mozilla source is wrong.
Update the Url to reflect reality.
* README:
Small tweak to the Mozilla requirements documentation.
2001-02-26 J Shane Culpepper <pepper@eazel.com>
reviewed by: John Sullivan <sullivan@eazel.com>
* README:
Reflecting the need for minimum Mozilla version of 0.8
* components/mozilla/nautilus-mozilla-content-view.c:
(nautilus_mozilla_content_view_initialize),
(mozilla_new_window_callback):
Fixed spelling of Javascript to JavaScript. Removed the
js_status callback because it was only added for debugging
and Ramiro found a bug in it. Finish bug #6885.
* configure.in: Nautilus mozilla component now requires
0.8. Fix for bug #7042.
Finish fixing bug 6286 (need to re-apply optimization where we do
a single directory load):
* src/nautilus-window-manage-views.c: (begin_location_change): Do
the force_reload work in here. We want it on all 4 kinds of
location change (forward, back, new location, reload). Other
browsers don't do reload on back, so we may want to change this at
some point.
(nautilus_window_reload): Remove the old code to invalidate from
here now that it's done in begin_location_change.
* src/file-manager/fm-directory-view.c: (load_location_callback),
(load_directory), (finish_loading), (filtering_changed_callback):
Remove the old code to do force_reload. The NautilusDirectory part
of triggering a reload is now handled by the shell.
* libnautilus-extensions/nautilus-directory.h:
* libnautilus-extensions/nautilus-directory.c:
(nautilus_directory_file_monitor_add): No force_reload parameter
any more.
(nautilus_directory_force_reload): New separate call used to force
a reload. A method call so subclasses can implement.
(nautilus_self_check_directory): Removed the FALSE force_reload
argument to file_monitor_add.
* libnautilus-extensions/nautilus-vfs-directory.c:
(vfs_file_monitor_add): No force_reload parameter any more.
(vfs_force_reload): Call through to
nautilus_directory_force_reload_internal to do the real work.
(nautilus_vfs_directory_initialize_class): Install the new
force_reload function.
* libnautilus-extensions/nautilus-merged-directory.c:
(merged_file_monitor_add): No force_reload parameter any more.
(merged_force_reload): Tell all of the real directories to force a
reload.
(monitor_add_directory): No force_reload to track any more.
(nautilus_merged_directory_initialize_class): Install the new
force_reload function.
* libnautilus-extensions/nautilus-directory-private.h:
* libnautilus-extensions/nautilus-directory-async.c:
(nautilus_directory_force_reload_internal): Change the name of
this function, since there's now a public function that is named
nautilus_directory_force_reload.
* libnautilus-extensions/nautilus-file-private.h:
* libnautilus-extensions/nautilus-file.c:
(nautilus_file_get_all_attributes): Made a separate call so other
parts of the framework can use it.
(nautilus_file_invalidate_all_attributes): Use the new call.
* components/tree/nautilus-tree-model.c:
(nautilus_tree_model_monitor_add),
(nautilus_tree_model_node_begin_monitoring_no_connect): Use the
new force_reload call. The old one had more granularity and thus
forced less to be reloaded, but it's OK to do a little more here.
* libnautilus-extensions/nautilus-trash-monitor.c:
(nautilus_trash_monitor_initialize): Removed the FALSE
force_reload argument to file_monitor_add.
Other stuff:
* libnautilus-extensions/nautilus-directory-metafile.c:
(get_metafile), (nautilus_directory_get_file_metadata),
(nautilus_directory_get_file_metadata_list),
(nautilus_directory_set_file_metadata),
(nautilus_directory_set_file_metadata_list),
(nautilus_directory_copy_file_metadata),
(nautilus_directory_remove_file_metadata),
(nautilus_directory_rename_file_metadata): Moved FIXMEs around.
Pass NULL instead of &ev when calling bonobo_object_release_unref
since we don't really want to do anything different if there's
some kind of error.
* nautilus-installer/install-lib/.cvsignore:
* nautilus-installer/libtrilobite/.cvsignore:
Gotta create these files when you make new directories.
* README: Change xml-i18n-tools to mention the correct branch.
* README: Clarify the fact that Mozilla M18 no longer works.
* components/mozilla/mozilla-components.cpp: Remove obsolete
Mozilla M18 support. M18 no longer works.
* README: Update Mozilla requirements.
* configure.in: Update the Mozilla milestone names to match the
current Mozilla naming scheme. Add a flag indicating whether the
version of Mozilla we use has profiles support.
* components/mozilla/Makefile.am:
* components/mozilla/nautilus-mozilla-content-view.c:
(pre_widget_initialize):
Add better profile support ifdef hackery.
* src/nautilus-applicable-views.c:
(got_minimum_file_info_callback),
(nautilus_determine_initial_view),
(nautilus_determine_initial_view_cancel): Get rid of the code to
monitor the directory. It's now moved up one level to the
manage-views.c code.
* src/nautilus-window-private.h:
* src/nautilus-window-manage-views.c: (free_location_change),
(begin_location_change): Move the code that starts monitoring the
directory up here instead.
* src/nautilus-application.c: (volume_unmounted_callback): Rewrote
this code to not use the viewed_file private field. There's a
public call to get the current location that should work just as
well. Also fix bug where it would ignore the scheme and just look
at the path part.
* libnautilus-extensions/nautilus-directory-metafile.c:
(nautilus_directory_use_self_contained_metafile_factory): Added
check to detect if this is called after using the factory.
(free_factory): Simplified.
(get_factory): New function to simplify get_metafile.
(get_metafile): Simplified.
* src/nautilus-location-bar.c: (try_to_expand_path): Fix storage
leak.
* libnautilus-extensions/nautilus-entry.c:
(nautilus_entry_key_press): Added FIXME after noticing a
particularly lame version of tilde expansion in here. I'm not sure
this is even used to good effect, since the location bar now does
its own tidle expansion.
* README: Fixed many inaccuracies.
* libnautilus-extensions/nautilus-stock-dialogs.c:
(timed_wait_free): Formatting tweaks.
* src/nautilus-theme-selector.c:
(get_theme_description_and_display_name): Formatting tweaks.
* configure.in: Added support for db1 emulation in Berkeley DB3.
DB3 needs --enable-compat185.
* README: Describe solutions of linking errors with mozilla libs
(partially copied from Galeon's FAQ).
Fixed bug 2802 (copy all metadata, not just certain items). There
are still a few loose ends but it's basically there.
Fixed bug 5296 (Hardware overview should be localized).
Fixed bug 5299 (Spacing problems with sizes in bytes).
* libnautilus-extensions/nautilus-directory-metafile.c:
(get_file_node): Used a local variable for the hash table to make
the code more readable because the full expression is too long.
Removed the half-baked attempt at using xmlNode objects to
represent "changes" data, which no longer seems a likely
direction.
(nautilus_directory_metafile_destroy): Local variable for hash
table.
(nautilus_directory_get_file_metadata): Return NULL, not FALSE,
since the function returns char *, not gboolean.
(nautilus_directory_rename_file_metadata): Local variable for hash
table. Also added a FIXME for a case that won't work.
(apply_file_changes): Broke out so it can be used elsewhere.
(apply_one_file_changes): This is now the version that has the
hash table iterator function interface.
(nautilus_directory_get_integer_file_metadata): Use sscanf instead
of atoi so we can do error checking.
(nautilus_directory_copy_file_metadata): Removed the old code that
copied fixed keys and wrote new code that copies all the metadata.
(nautilus_directory_remove_file_metadata): Local variable for hash
table.
* icons/arlo/arlo.xml: Added an explicit H offset of 0 for the
zoom control. It was inheriting the default theme's offset of
-2. This seems to indicate a design problem with the "fall back on
default" approach for themes, but for now it's nice to have the
zoom control looking right again.
* src/nautilus-window-menus.c:
(help_menu_about_nautilus_callback): Use the real copyright
character, not "(C)".
* src/file-manager/fm-desktop-icon-view.c
(find_and_update_home_link), (place_home_directory): Mark the
"darin's Home" string for localization. Needs improvement beyond
this, because just tacking "'s Home" onto the login name is
probably no good.
* components/hardware/nautilus-hardware-view.c: (read_proc_info):
Tweak code style a bit. Use g_string_free (FALSE) instead of
g_strdup and g_string_free (TRUE).
(get_CPU_description): Make this a little more localizable by
adding a strdup format string instead of appending things. Added
FIXMEs about additional problems.
(get_RAM_description): Add a little reality checking on the value
read from the file and make a little more localizable.
(get_IDE_description): Change to use the gnome-vfs file size
formatting functions in the right way. The old code had been
changed to not use them at all, probably because the first cut at
this code was using it wrong and ran into a 32-bit limit. Use
g_string_free (FALSE) instead of g_strdup and g_string_free
(TRUE).
* po/POTFILES.in: Marked nautilus-hardware-view.c as needing
localization.
* components/help/converters/gnome-db2html2/sect-elements.c:
(sect_informaltable_start_element): Fixed a runaway string
literal.
* libnautilus-extensions/nautilus-directory-async.c: Moved the
constants to the top of the file and put the compile-time switches
at the top of the constants section.
* NEWS: Removed out of date news.
* README: Fixed a typo.
* TODO: Removed out of date tasks.
* README:
Blabla about rpm 4 on redhat 7.0
* configure.in:
* nautilus.spec.in:
configure now carves the rpm version found into the spec file as a
requirement.
* nautilus.spec.in:
* README:
Add esound dependency. We've used esound to do sound previews and
in the Music View, but the the dependency was never reflected in
the spec file or documentation.
* libnautilus-extensions/nautilus-file.c: (rename_callback): Since
metadata for the directory itself is now stored under a fixed
name, no need to rename the metadata for self-owned files any
more.
(get_item_count), (get_size), (compare_directories_by_count),
(compare_files_by_size), (compare_by_size): Reimplement compares
by size so they don't use gnome_vfs_file_info_compare -- this
makes them work better for info == NULL cases.
(get_date), (compare_by_modification_date): Reimplement compares
by modification date so they don't use gnome_vfs_file_info_compare
-- this makes them work better for info == NULL cases.
(compare_by_name): Sort files that start with "." or "#" last.
(compare_by_name_and_directory_name): Helper function so that we
always sort by directory name when names are equal.
(nautilus_file_compare_for_sort): Use the new functions above so
we never have to use the gnome_vfs_file_info_compare function.
Because of that, we won't have to keep file names around any more.
This also simplified the logic -- I was able to remove all the
special cases for info == NULL.
(get_metadata_name): Function that returns "." for self-owned
files so the metadata for the directory itself is stored somewhere
that's not affected by renaming.
(nautilus_file_get_metadata), (nautilus_file_get_metadata_list),
(nautilus_file_set_metadata), (nautilus_file_set_metadata_list),
(nautilus_file_get_boolean_metadata),
(nautilus_file_get_integer_metadata),
(nautilus_file_set_boolean_metadata),
(nautilus_file_set_integer_metadata): Use the new
get_metadata_name function.
* src/file-manager/nautilus-directory-view-ui.xml: Changed an old
<menuitem/> to <separator/>.
* po/.cvsignore: Ignore the tmp directory, but no need to ignore
the .headerlock file which is now obsolete.
* README: Minor tweaks.
* libnautilus-extensions/Makefile.am: Resorted lists.
* README: Tell everyone that we are back on bonobo HEAD.
* configure.in: Make sure Nautilus doesn't try to compile with the
old bonobo.
* components/adapter/nautilus-adapter-embed-strategy.c:
(nautilus_adapter_embed_strategy_get):
* components/adapter/nautilus-adapter-load-strategy.c:
(nautilus_adapter_load_strategy_get):
* components/adapter/nautilus-adapter-progressive-load-strategy.c:
(nautilus_adapter_progressive_load_strategy_load_location):
* components/history/nautilus-history-view.c:
(history_view_frame_call_begin):
* libnautilus/nautilus-undo.c: (set_up_bonobo_control):
* libnautilus/nautilus-view.c: (view_frame_call_begin):
* libnautilus/nautilus-zoomable.c:
(nautilus_zoomable_ensure_zoomable_frame):
Fix all the callers of query_interface in CORBA to call it
queryInterface (I used the Bonobo script to do it).
* src/nautilus-window.h:
* src/nautilus-window.c: (nautilus_window_constructed),
(nautilus_window_set_arg), (nautilus_window_get_arg),
(nautilus_window_set_content_view_widget): Update for BonoboWin ->
BonoboWindow change. Once again, the change was done by the Bonobo
script (but I had to undo the spaces it ate after BONOBO_WIN).
* components/services/install/idl/trilobite-eazel-install.idl:
* components/services/time/idl/trilobite-eazel-time-service.idl:
* components/services/trilobite/idl/trilobite-service.idl:
* components/services/trilobite/sample/idl/sample-service.idl:
* libnautilus-adapter/nautilus-adapter-factory.idl:
* libnautilus/nautilus-distributed-undo.idl:
* libnautilus/nautilus-view-component.idl:
Since IDL dependencies don't work, I touched every IDL file to
make the switchover smoother. This only works if people update
before they try to build and fail, otherwise they need to do:
find -name '*.xml' | xargs touch
(Maciej and I want to add dependency support to orbit-idl to make
this problem go away long term).
* src/nautilus-desktop-window.c: (realize):
The script updated this comment to, so I let it.
* user-guide/C/Makefile.am: Took out the botched change I made to
this file. Mathieu did the correct one.
[New Thread 2371]
[New Thread 2372]
2000-10-27 Josh Barrow <josh@eazel.com>
* README:
Add more info to what Robin just checked in.
* nautilus-clean.sh:
Add more things to clean up after.
* README:
Added that we require rpm 3.0.4 if --enable-eazel-service
* components/services/install/lib/eazel-install-types.c:
(packagedata_fill_from_rpm_header):
Fix for older rpm's (although installation will probably still
be borked, should insert #error instead.
* nautilus.spec.in:
nautilus-trilobite requires rpm = 3.0.4
* README:
Update docs for the fact that we now require Mozilla-M18.
* components/mozilla/nautilus-mozilla-content-view.c:
(mozilla_content_view_one_time_happenings),
(nautilus_mozilla_content_view_initialize),
(nautilus_mozilla_content_view_destroy),
(mozilla_load_location_callback), (mozilla_net_state_callback),
(mozilla_dom_mouse_click_callback),
(mozilla_translate_uri_if_needed),
(mozilla_untranslate_uri_if_needed):
Cleanup a bunch of pre Mozilla M18 code. Turn of a rogue printf.
Remove the cut-n-pasted Bonobo merging code. We can add it back
if we ever have something we really need to merge.
* configure.in:
Update for new Mozilla M18 requirement. Bail of detected Mozilla
is not M18.
* nautilus.spec.in:
Add mozilla-m18 dependency to the nautilus-mozilla package.
* README: Changed gnome-print to work at HEAD.
* src/file-manager/fm-icon-view.c: (handle_radio_item): Common
function shared by context menu and Bonobo menu.
(context_menu_layout_radio_item_callback): Use common function.
(append_one_context_menu_layout_item): Change from "verb" to "id".
(update_layout_menus): Set up proper radio button based on ids.
(switch_to_manual_layout): Renamed and changed from a callback to
a normal function.
(handle_ui_event): Signal handler to get Bonobo radio menu
choices.
(fm_icon_view_merge_menus): Connect UI event handler and remove
old code for radio menu items.
* src/file-manager/nautilus-icon-view-ui.xml: Add ids to the radio
menu items.
* src/nautilus-about.c: (nautilus_about_destroy),
(nautilus_about_initialize), (nautilus_about_repaint),
(draw_aa_string), (randomize_authors), (draw_author_list),
(nautilus_about_draw_info), (nautilus_about_update_authors),
(nautilus_about_close), (update_authors_if_necessary): Improve
randomizing algorithm, get rid of fixed maximum number of authors.
* src/nautilus-window.c: Cosmetic changes.
* README: Change required versions.
* libnautilus-extensions/nautilus-bonobo-extensions.h:
* libnautilus-extensions/nautilus-bonobo-extensions.c:
(nautilus_bonobo_set_sensitive):
Added new function that works with the new UI framework.
* libnautilus-extensions/nautilus-druid-page-eazel.h:
* libnautilus-extensions/nautilus-druid.h:
* src/nautilus-shell-ui.xml: Make Select All insensitive.
* src/nautilus-window.c: (nautilus_window_constructed):
Get rid of some more of the old status bar code.
(nautilus_window_allow_back), (nautilus_window_allow_forward),
(nautilus_window_allow_up), (nautilus_window_allow_reload),
(nautilus_window_allow_stop),
(nautilus_window_zoom_level_changed_callback): Set shell
menu item sensitivity with the new API.
* src/nautilus-window.h: Remove status_bar_context_id.
* README: libunicode, libglade, and eog are no longer required.
* components/history/nautilus-history-view.c:
(history_title_changed):
* libnautilus/nautilus-view-component.idl:
* libnautilus/nautilus-view.c: (impl_Nautilus_View_title_changed),
(nautilus_view_initialize_class):
* libnautilus/nautilus-view.h:
* src/nautilus-view-frame.c: (nautilus_view_frame_title_changed):
* src/nautilus-view-frame.h:
Added title parameter for the title_changed function.
* src/nautilus-view-frame.c:
(nautilus_view_frame_report_load_complete): Got rid of extra
emission of report_load_complete, which is handled by
view_frame_loaded now.
* libnautilus-extensions/nautilus-background.c:
(nautilus_background_initialize_class):
* libnautilus-extensions/nautilus-entry.c:
(nautilus_entry_initialize_class):
* libnautilus-extensions/nautilus-icon-text-item.c:
(iti_class_init):
* libnautilus-extensions/nautilus-list.c:
(nautilus_list_initialize_class):
* src/nautilus-bookmark-list.c:
(nautilus_bookmark_list_initialize_class):
* src/nautilus-navigation-bar.c:
(nautilus_navigation_bar_initialize_class):
* src/nautilus-search-bar-criterion.c:
(nautilus_search_bar_criterion_initialize_class):
* src/nautilus-sidebar.c: (nautilus_sidebar_initialize_class):
* src/nautilus-switchable-navigation-bar.c:
(nautilus_switchable_navigation_bar_initialize_class):
Use GTK_RUN_LAST instead of GTK_RUN_FIRST.
* libnautilus-extensions/nautilus-directory-background.c:
* libnautilus-extensions/nautilus-link-set.c:
* libnautilus-extensions/nautilus-link.c:
* src/file-manager/fm-icon-text-window.c:
* src/file-manager/fm-icon-view.c:
* src/file-manager/fm-properties-window.c:
* src/nautilus-complex-search-bar.c:
* src/nautilus-link-set-window.c:
* src/nautilus-simple-search-bar.c:
* src/nautilus-switchable-search-bar.c:
Add includes needed now that the #include <gnome.h> was removed
from nautilus-global-preferences.h.
* libnautilus-extensions/nautilus-string.h:
* libnautilus-extensions/nautilus-string.c:
(nautilus_strcmp_case_breaks_ties): Added function, like
g_strcasecmp, but falls back on strcmp for strings that match
case-insensitive-wise.
(nautilus_istr_compare): Use nautilus_strcmp_case_breaks_ties
instead of nautilus_strcasecmp.
* libnautilus-extensions/nautilus-file.c:
(nautilus_file_compare_by_name): Use
nautilus_strcmp_case_breaks_ties instead of g_strcasecmp.
(nautilus_file_compare_by_directory_name): Use
nautilus_strcmp_case_breaks_ties instead of g_strcasecmp.
(get_automatic_emblems_as_integer): Convert automatic emblems to
integer form for simple sorting.
(prepend_automatic_emblem_names): Separate out the code that puts
on automatic emblem names, and make it put them first, before any
keyword-based emblems.
(nautilus_file_compare_by_emblems): Compare the automatic emblems
first, using the integer form.
(nautilus_file_compare_by_type): Use
nautilus_strcmp_case_breaks_ties instead of nautilus_strcmp.
(nautilus_file_compare_for_sort): Use
nautilus_strcmp_case_breaks_ties instead of g_strcasecmp.
(nautilus_file_compare_name): Use nautilus_strcmp_case_breaks_ties
instead of g_strcasecmp.
(nautilus_file_is_mime_type): Use nautilus_strcasecmp instead of
nautilus_strcmp.
(nautilus_file_get_emblem_names): Use
prepend_automatic_emblem_names.
(sort_keyword_list_and_remove_duplicates): Sort with
nautilus_strcmp_case_breaks_ties instead of
compare_emblem_names. Automatic emblem names are now dealt with
elsewhere.
* libnautilus-extensions/nautilus-icon-container.c:
(compare_icons_by_name): Use nautilus_strcmp_case_breaks_ties
instead of nautilus_strcasecmp.
* libnautilus-extensions/nautilus-glib-extensions.c:
(nautilus_g_str_list_sort): Use nautilus_str_compare.
(nautilus_g_str_list_sort_case_insensitive): Use
nautilus_istr_compare.
* components/services/vault/command-line/main.c: (main):
* test/test-nautilus-mime-actions-set.c: (str_to_action_type):
Use g_strcasecmp, not strcasecmp, for portability.
* libnautilus-extensions/nautilus-global-preferences.h:
* libnautilus-extensions/nautilus-global-preferences.c:
Removed _get_disabled_sidebar_panel_view_identifiers since the
logic now removes any not in the enabled list instead.
* libnautilus-extensions/nautilus-view-identifier.h:
* libnautilus-extensions/nautilus-view-identifier.c:
(nautilus_view_identifier_list_copy): New function.
(nautilus_view_identifier_compare): Now sorts properly instead of
returning 1 for any two identifiers that are !=.
* nautilus-clean.sh: Removed unadorned gconfd now that it's
ancient history and because it makes the script seem to fail all
the time.
* src/nautilus-window-manage-views.h:
* src/nautilus-window-manage-views.c:
(compute_title): Renamed to a shorter name since it's a local function.
(update_title): Renamed to a shorter name since it's a local
function and made it do nothing if the title is already correct.
(nautilus_window_update_internals): Simplified code by using the
new cached title.
(nautilus_window_has_really_changed): Removed sidebar panel logic
that is no longer needed.
(nautilus_window_free_load_info): Remove some unused fields.
(nautilus_window_open_location): Removed unused parameter.
(nautilus_window_open_location_in_new_window): Removed unused
parameter.
(load_content_view): Renamed to shorter name since it's a local
function.
(handle_view_failure), (cancel_location_change),
(load_view_for_new_location), (set_view_location_and_selection):
Broke out big pieces of code used by the state machine. Soon we
won't have a state machine at all, but we'll still need functions
like these.
(nautilus_window_update_state): Removed a lot of the code and
broke the remaining bits into the above functions.
(nautilus_window_set_state_info): Removed sidebar management code
and some now-unused state variables.
(nautilus_window_stop_loading): Moved this function in here and
renamed it so the whole state machine is in one place.
(nautilus_window_set_content_view): Moved this function in here
and renamed it so the whole state machine is in one place.
(compare_view_identifier_with_iid),
(nautilus_window_set_sidebar_panels): Wrote new code to set up the
sidebar panels based on a list of view identifiers, based on the
code that was used before when preferences change. Moved here so
the whole state machine is in one place.
* src/nautilus-window-toolbars.c: (toolbar_stop_callback): Call
the new function nautilus_window_stop_loading.
* src/nautilus-window-private.h:
* src/nautilus-window.h:
* src/nautilus-window.c: (nautilus_window_initialize_class):
Removed the "content_view" argument.
(nautilus_window_goto_uri): Removed the view frame parameter from
the open_location call.
(nautilus_window_constructed): Set up sidebars based on
preferences when the window is created.
(nautilus_window_set_arg): Removed the "content_view" argument.
(nautilus_window_get_arg): Removed the "content_view" argument.
(view_menu_switch_views_callback): Call the new function
nautilus_window_set_content_view.
(chose_component_callback), Call the new function
nautilus_window_set_content_view.
(nautilus_window_open_location_callback): Removed the view frame
parameter from the open_location call.
(nautilus_window_open_location_in_new_window_callback): Removed
the view frame parameter from the open_location_in_new_window
call.
(nautilus_window_connect_view): Don't connect to
report_load_progress any more. The view frame now handles this for
us.
(nautilus_window_set_content_view_widget): Renamed this to avoid
confusion with the new nautilus_window_set_content_view which is
used to change content views, given a new view identifier.
(update_sidebar_panels_from_preferences): Renamed and changed to
use the new nautilus_window_set_sidebar_panels call.
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.
* README: Don't use tabs any more. Spell check.
Add libglade.
* components/tree/nautilus-tree-model.c:
(nautilus_tree_model_monitor_add),
(nautilus_tree_model_monitor_node):
Use file attribute constant instead of hard-coded string. I was
here to make some changes to the monitor API, but I didn't get
to that yet. Next check-in.
* libnautilus-extensions/nautilus-directory-async.c:
(nautilus_directory_monitor_add_internal):
Use "files_added" signal instead of callback. This is the first
step toward removing the callback. I'll remove it tomorrow.
* libnautilus-extensions/nautilus-directory.c:
(nautilus_directory_notify_files_added): Fix directory ref count
leak.
* libnautilus-extensions/nautilus-file.c:
(nautilus_file_get_internal): Fix case where we would not ref
the NautilusFile even though the directory is monitoring it.
This would lead to an early destroy later.
* libnautilus-extensions/nautilus-search-uri.c:
(nautilus_search_uri_to_human): Comment out print statements.
Mathieu can delete them entirely later.
(nautilus_self_check_search_uri): Added a few more tests.
* libnautilus-extensions/nautilus-trash-directory.h:
* libnautilus-extensions/nautilus-trash-directory.c:
(nautilus_trash_directory_initialize), (trash_destroy),
(trash_callback_hash), (trash_callback_equal),
(trash_contains_file), (trash_callback_destroy),
(trash_callback_check_done), (directory_ready_callback),
(trash_callback_connect_directory), (trash_call_when_ready),
(trash_cancel_callback), (trash_file_monitor_add),
(trash_file_monitor_remove), (trash_are_all_files_seen),
(trash_is_not_empty), (nautilus_trash_directory_initialize_class),
(nautilus_trash_directory_add_real_trash_directory),
(nautilus_trash_directory_remove_real_trash_directory),
(remove_all_real_directories): Getting closer on the trash
implementation. Still a ways to go.
* src/file-manager/fm-icon-text-window.c:
(create_attributes_option_menu):
* src/file-manager/fm-icon-view.c: (fm_icon_view_merge_menus): Use
_() instead of calling gettext. It turns out this is the
recommended way to do it, even when the parameter is not a literal
string.