* src/nautilus-sidebar.c: (nautilus_sidebar_initialize_class),
(nautilus_sidebar_size_allocate), (nautilus_sidebar_realize):
Tell X not to clear the window contents when the sidebar is
resized. Since we double buffer its contents, this will reduce
(but not eliminate) flicker in the sidebar.
Fixed bug 795 (help component installs files in nautilus prefix,
but uses gnome-libs prefix to find them later) by expanding the
set of places Nautilus looks for help files.
* components/help/hyperbola-filefmt.c:
(fmt_man_populate_tree_for_subdir): Changed to look in more places
for help files: the help directory in the gnome prefix, the help
directory in the nautilus prefix, and directories in GNOME_PATH.
(fmt_help_populate_tree): New helper function.
(append_help_dir_if_exists): New helper function.
* components/help/Makefile.am: Define DATADIR in compile flags.
* components/help/hyperbola-main.c: Add copyright notice.
This part not reviewed:
* .cvsignore, libnautilus-extensions/.cvsignore: gnore more
things.
* Makefile.am: distribute .in versions of xml-i18n-tools.
Fixed bug 5157 (Nautilus won't display directories for
which it thinks it doesn't have permissions)
I removed the code that prevented Nautilus from even
trying to load a location for which the perceived
permissions didn't allow reading (because the perceived
permissions can be wrong with some file systems). Now
it always tries, and puts up an error dialog only if
it gets an error while actually loading the directory.
* src/file-manager/fm-error-reporting.h:
* src/file-manager/fm-error-reporting.c:
(fm_report_error_loading_directory): New function, currently
only handles GNOME_VFS_ERROR_ACCESS_DENIED and a fallback
default case.
(fm_report_error_renaming_file), (fm_report_error_setting_group),
(fm_report_error_setting_owner),
(fm_report_error_setting_permissions), (rename_callback):
All the report_error functions now take a parent-window
parameter (which is often NULL). Also, they now all use
gnome_vfs_error_result_to_string when whining about
unhandled cases.
* src/file-manager/fm-directory-view.h: Changed comments
and copyright notice only.
* src/file-manager/fm-directory-view.c:
(real_load_error): New function, calls
fm_report_error_loading_directory unless an error has already
been reported for the current directory load operation.
(fm_directory_view_initialize_class): Wire up real_load_error
as default handler for LOAD_ERROR signal.
(activate_callback): Pass parent window to error-reporting call.
(load_directory): Reset the reported_load_error boolean since
we're about to load anew.
* src/file-manager/fm-properties-window.c: (rename_callback),
(group_change_callback), (owner_change_callback),
(permission_change_callback):
Pass parent window to error-reporting-calls. I just passed NULL
if it was not trivial to pass a good window.
* src/nautilus-window-manage-views.c:
(handle_unreadable_location), (open_location): Remove code that
was preventing "unreadable" locations from being loaded.
2001-02-06 Gene Z. Ragan <gzr@eazel.com>
Fixed bug 6375, Certain menu shortcuts don't work when
insertion point is in location bar.
* libnautilus-extensions/nautilus-entry.c:
(nautilus_entry_key_press):
Filter out alt and control keyboard events and don't
allow them to be passed to the parent GtkEntry.
Fixed bug 6365 (Crash at boot if invalid file name given)
* src/nautilus-window-manage-views.c:
(load_new_location_in_all_views): Added some parameter checking
to make future bugs like this even easier to find.
(cancel_location_change): Don't reset to old location when old
location is NULL.
2001-02-05 Pavel Cisler <pavel@eazel.com>
reviewed by: Seth Nickel <seth@eazel.com>
Fix 5930 (Copy dialog often shows "1" as total number of
fields in operation)
* libnautilus-extensions/nautilus-file-operations-progress.c:
(nautilus_file_operations_progress_update),
(nautilus_file_operations_progress_new_file):
* libnautilus-extensions/nautilus-file-operations.c:
(create_transfer_dialog):
Special case the preparing to copy/move phase -- when the
bytes_total is 0, don't display the count.
* libnautilus-extensions/nautilus-file-operations-progress.c:
(nautilus_file_operations_progress_thaw):
Formatting.
* HACKING:
Tiny tweak.
* src/nautilus-window-manage-views.c:
(nautilus_window_content_view_matches_iid): New function, extracted
from load_content_view, checks whether passed iid is the one in
use by this window.
(load_content_view): Now calls extracted function.
(nautilus_window_set_content_view): Bail out early if the
new content view is the old one. This avoids unpleasant crashing
later on.
2001-02-05 Gene Z. Ragan <gzr@eazel.com>
Add code to send the mime type of the file being examined to the
mime type capplet so that the capplet can scroll to the mime type
being examined.
* libnautilus-extensions/nautilus-program-chooser.c:
(repopulate_program_list), (launch_mime_capplet),
(launch_mime_capplet_and_close_dialog),
(nautilus_program_chooser_show_no_choices_message):
Fixed part of bug 6329 (entering "gconf://" as location
crashes Nautilus). After this fix, it still crashes Nautilus,
but in a gconf-specific way.
* src/nautilus-window-manage-views.c:
(load_new_location_in_all_views): Don't try to load
a location in new_content_view if it's NULL.
Fixed bug 6324 (Switching views crashes every time)
* src/nautilus-window-manage-views.c:
(set_to_pending_location_and_selection): Added assert
to make future similar bugs even easier to catch.
(view_loaded_callback): Don't call set_to_pending_location_and_selection
when the content view is changing without the location & selection
changing; just update the one view instead.
* libnautilus-extensions/nautilus-stock-dialogs.c:
Reduced the timed-wait timeout from 3 seconds to 2 after
more investigation of timed-wait-related bugs. 3 seconds
just felt a little too long.
2001-02-05 Rebecca Schulman <rebecka@eazel.com>
reviewed by: Maciej Stachowiak <mjs@eazel.com>
* libnautilus-extensions/nautilus-mime-actions.c:
(nautilus_mime_get_default_component_sort_conditions),
(nautilus_mime_get_default_component_for_file_internal),
(nautilus_mime_get_short_list_components_for_file):
Changes to make sure the short list is sorted
correctly, so the correct default application is chosen.
* librsvg/rsvg.c: (rsvg_render_svp):
fixed bug 6301, bad svg crashes Nautilus, by adding a check
in rsvg_render_svp to make sure a pixbuf has been allocated; if
not, don't try to render.
* components/services/install/lib/Makefile.am:
* components/services/install/lib/eazel-package-system-dpkg.c:
(debpackage_free), (debpackage_fill_packagedata),
(strip_trailing_whitespace), (parse_packages),
(load_package_callback), (eazel_package_system_dpkg_load_package),
(query_callback), (eazel_package_system_dpkg_query),
(eazel_package_system_dpkg_install),
(eazel_package_system_dpkg_uninstall),
(eazel_package_system_dpkg_verify),
(eazel_package_system_dpkg_compare_version),
(eazel_package_system_dpkg_finalize),
(eazel_package_system_dpkg_class_initialize),
(eazel_package_system_dpkg_initialize),
(eazel_package_system_dpkg_get_type),
(eazel_package_system_dpkg_new),
(eazel_package_system_implementation):
* components/services/install/lib/eazel-package-system-dpkg.h:
* components/services/install/lib/eazel-package-system.c:
(eazel_package_system_suggest_id),
(eazel_package_system_load_implementation):
Created a minimal, sub-functional Debian package backend for
libeazelinstall - essentially only enough to allow me to test my
software inventory work on my Debian machines.
* components/services/inventory/Makefile.am:
* components/services/inventory/eazel-inventory-collect-hardware.c:
(add_device_property), (eazel_inventory_collect_pci),
(ide_get_value), (eazel_inventory_collect_ide), (str_has_prefix),
(add_info), (read_proc_info), (eazel_inventory_collect_memory),
(eazel_inventory_collect_cpu), (eazel_inventory_collect_hardware):
* components/services/inventory/eazel-inventory-collect-hardware.h:
* components/services/inventory/eazel-inventory-collect-software.c:
(str_has_prefix), (get_package_list),
(eazel_inventory_collect_packages),
(eazel_inventory_collect_software):
* components/services/inventory/eazel-inventory-collect-software.h:
* components/services/inventory/eazel-inventory-utils.c:
(eazel_create_configuration_metafile):
Moved software inventory code into eazel-inventory-collect-software.c
and hardware inventory code into eazel-inventory-collect-hardware.c.
Added coded to collect PCI and IDE bus information.
* components/services/trilobite/libtrilobite/trilobite-core-distrib
ution.c: (determine_suse_version), (determine_debian_version):
Added version check code for SuSE and Debian.
* indent.sh: Script that calls indent with the right parameters to
get a GNOME coding style (Nautilus subvariant).
* components/help/hyperbola-filefmt.c,
components/help/hyperbola-filefmt.h,
components/help/hyperbola-main.c,
components/help/hyperbola-nav-index.c,
components/help/hyperbola-nav-search.c,
components/help/hyperbola-nav-tree.c,
components/help/hyperbola-nav.h,
components/help/hyperbola-types.h: Run indent.sh on these.
category is poor)
* libnautilus-extensions/nautilus-global-preferences.c:
(global_preferences_install_descriptions),
(global_preferences_create_dialog): Verafied a little text.
2001-02-03 Gene Z. Ragan <gzr@eazel.com>
Do a simple check for NULL instead of using
g_return_if_fail. We don't need the error
reported to the terminal.
* libnautilus-extensions/nautilus-volume-monitor.c:
(get_removable_volumes), (volume_is_removable),
(volume_is_read_only):
* components/services/install/command-line/eazel-alt-install-corba.
c: (tree_helper_helper), (tree_helper):
Added check for PackageBreaks iterators.
* components/services/install/lib/eazel-install-corba-callback.c:
(impl_install_failed):
Leakfix, freeing the list given to the signal handler after
handling.
* components/services/install/lib/eazel-install-corba-types.c:
(empty_hash_table),
(packagedata_tree_from_corba_packagedatastructlist):
Leakfix, now correctly frees the contents of the md5_hashtable and
unrefs the proper objects.
* components/services/install/lib/eazel-install-logic2.c:
(eazel_install_check_existing_packages), (get_softcat_info),
(is_satisfied), (is_satisfied_features),
(check_dependencies_foreach), (check_tree_helper),
(add_file_conflict),
(check_conflicts_against_already_installed_packages),
(check_feature_consistency):
Proper fillflags for some EazelPackageSystem calls.
Nicer log-output when debug is off.
Leak fix, the PackageBreaks "objects".
* components/services/install/lib/eazel-install-problem.c:
(get_detailed_messages_breaks_foreach),
(get_detailed_messages_foreach),
(get_detailed_cases_breaks_foreach), (get_detailed_cases_foreach):
Updated for the new PackageBreaks "objects".
* components/services/install/lib/eazel-package-system-rpm4.c:
(eazel_package_system_rpm4_query_impl):
s/packagedata_destroy/gtk_object_unref/
* components/services/install/lib/eazel-package-system-types.c:
(at_exit_package_data_info), (categorydata_new),
(categorydata_destroy_foreach), (packagedata_finalize),
(packagedata_class_initialize), (packagedata_initialize),
(packagedata_get_readable_name), (packagebreaks_finalize),
(packagebreaks_class_initialize), (packagebreaks_initialize),
(packagefileconflict_finalize),
(packagefileconflict_class_initialize),
(packagefeaturemissing_finalize),
(packagefeaturemissing_class_initialize):
Finally got the destroy crap working for the PackageBreak
"objects".
More leakcheck stuff for various structures.
Again, fixed get_reabable_name.
* components/services/install/lib/eazel-package-system-types.h:
Added finalizes to the "objects".
Removed packagedata_destroy prototype.
* components/services/trilobite/libtrilobite/Makefile.am:
Cleanup and possible tinderbox fix.
* components/services/install/lib/eazel-install-corba-types.c:
(packagedata_tree_from_corba_packagedatastructlist):
Fix small bug in the package tree inflater that caused break
structs to be messed up.
* components/services/install/lib/eazel-softcat.c:
(get_search_url_for_package):
* components/services/install/nautilus-view/nautilus-service-instal
l-view.c: (create_package),
(nautilus_service_install_view_update_from_uri_finish):
Encode and decode suite_id/suite_name/product_id/product_name from
eazel-install: urls and pass through to softcat queries. They are
all treated like variant flavors of suite_id internally (group of
packages with a single id).
* nautilus-installer/src/Makefile:
* nautilus-installer/src/installer.c:
(get_detailed_errors_foreach), (get_detailed_errors),
(eazel_install_preflight), (eazel_installer_set_default_texts),
(eazel_installer_initialize):
Remove eazel-hacking uninstall, since experts claim we no longer
need it. Some changes to sync up with the new world order where
PackageData is now a GTK object.
* nautilus-installer/src/package-tree.c:
(find_package_parents_int), (find_package_parents),
(get_errant_children_int), (get_errant_children),
(package_customizer_fill_dep), (package_customizer_fill),
(jump_to_package_tree_page):
Fix the package customizer to cope with the new world order, where
the package tree is sent across as a directed graph (instead of
tree) and the deps are in 'depends' not 'soft_depends'.
* nautilus-installer/src/prescript:
Up version to 1.0.
Fixed bug 6163 (Need NautilusViewFrame ::
report_location_changed). This is re-adding a feature we also had
long ago, where a view reports a location change, but does not
want the location change to come back to it in the form of a
load_location call.
* src/nautilus-applicable-views.h:
* src/nautilus-applicable-views.c:
(get_view_result_from_gnome_vfs_result), (got_file_info_callback),
(got_minimum_file_info_callback),
(nautilus_determine_initial_view),
(nautilus_determine_initial_view_cancel): Changed this entire file
to have a much easier-to-understand API.
* src/nautilus-view-frame-private.h:
* src/nautilus-view-frame-corba.c: (free_location_plus_callback):
Change existing structure so it can be used for the location-change
case, which includes a title too.
(open_force_new_window): Use new structure.
(report_location_change): Implement new call.
(impl_Nautilus_ViewFrame_open_location_force_new_window): Use new
structure.
(impl_Nautilus_ViewFrame_report_location_change): Implement new
call.
* libnautilus/nautilus-view-component.idl: Add the new call.
* libnautilus/nautilus-view.h:
* libnautilus/nautilus-view.c:
(nautilus_view_report_location_change): Add the new call.
* src/nautilus-view-frame.h:
* src/nautilus-view-frame.c:
(nautilus_view_frame_initialize_class): Add new signal.
(nautilus_view_frame_report_location_change): Implement new call.
* src/nautilus-window-private.h:
* src/nautilus-window-manage-views.h:
* src/nautilus-window-manage-views.c: (update_for_new_location):
Got rid of obsolete assert. Also, no longer clear the selection.
The selection is set properly earlier, and clearing it at this
point serves no purpose.
(location_has_really_changed): Call free_location_change to share
more code. Also no reason to free "pending_ni" any more, because
we don't keep it around in the success case.
(load_new_location_in_one_view): New name.
(load_new_location_in_sidebar_panels): New name. Also take a
parameter of a view to skip.
(load_new_location_in_all_views): New function.
(set_to_pending_location_and_selection): New name, and removed
code to handle the case where there is no pending location, since
that doesn't happen. Also take a parameter of a view to skip. Also
broke out the guts into load_new_location_in_all_views.
(free_location_change): Free things by their new names. There's
also less to free now.
(cancel_location_change): Key off pending_location instead of
pending_ni. Also save code by using new function that skips a
view.
(determined_initial_view_callback): Changed name, and use new
interface. No longer need "end_reached" trick, because the new
interface handles that.
(begin_location_change): Made a static after moving all the
functions that use it in here. Also moved some of the reload
code out into nautilus_window_reload.
(report_location_change_callback): New function. Does all the
steps neede for a location change in place.
(nautilus_window_back_or_forward), (nautilus_window_reload): Moved
these two functions in here from nautilus-window.c so we could
make begin_location_change more private.
* src/nautilus-window.h:
* src/nautilus-window.c: (nautilus_window_go_to): Changed the name.
(nautilus_window_get_location): New function for callers that used
to get the location field directly.
(go_to_callback): Changed name.
* src/nautilus-desktop-window.c: (nautilus_desktop_window_new):
* src/nautilus-location-bar.c: (drag_data_received_callback):
* src/nautilus-shell.c: (open_window), (save_window_states),
(restore_window_states):
* src/nautilus-window-menus.c: (services_button_callback),
(help_menu_nautilus_manual_callback),
(help_menu_nautilus_license_callback),
(help_menu_nautilus_feedback_callback),
(activate_bookmark_in_menu_item):
* src/nautilus-window-service-ui.c: (goto_services_summary),
(goto_online_storage), (goto_software_catalog),
(goto_services_support):
* src/nautilus-window.c: (location_change_at_idle_callback),
(nautilus_window_constructed), (view_as_menu_vfs_method_callback),
(nautilus_window_go_web_search), (nautilus_window_go_home):
Use nautilus_go_to under its new name.
* src/nautilus-shell.c: (restore_window_states): Use
nautilus_istr_has_prefix instead of g_strncasecmp. Also did other
code cleanup.
* libnautilus-extensions/nautilus-gtk-extensions.h: Added a new
marshal function that I needed.
* libnautilus-extensions/nautilus-thumbnails.c: Added a FIXME.
* libnautilus-extensions/nautilus-view-identifier.h:
* libnautilus-extensions/nautilus-view-identifier.c:
(nautilus_view_identifier_copy),
(nautilus_view_identifier_compare): Use const.
* src/nautilus-application.c: (nautilus_application_startup): Only
check for root if we are actually running nautilus, not if we are
just killing off an existing copy.
(confirm_ok_to_run_as_root): Changed name of the function and
improved the wording of the message and button. Also added an
environment variable you can set to get rid of this. (Probably
should have been a preference instead, but I am officially being
lazy about this.)
Fixed bug that was revealed by the change in the loading sequence
I made. John didn't review this part:
* libnautilus-extensions/nautilus-directory-private.h:
* libnautilus-extensions/nautilus-directory-async.c:
(load_directory_state_destroy), (load_directory_done):
Separate out code to free the partly-done state so it can
be used in the cancel case.
(dequeue_pending_idle_callback): Ref the directory object
so that we won't get messed up if the callback destroys it.
(directory_load_cancel): Separated out the old part of
file_list_cancel so that we can cancel the idle part too
when we want to.
(file_list_cancel): Use the new calls to cancel the idle
part of directory loading.
(directory_load_done): Use directory_load_cancel instead of
file_list_cancel.
(nautilus_directory_stop_monitoring_file_list): Use
directory_load_cancel instead of file_list_cancel.
(nautilus_directory_async_state_changed): Added state variables to
protect cases where we re-enter this function.
2001-02-02 Gene Z. Ragan <gzr@eazel.com>
Fixed a small bug where I was assuming a value would be valid
when it could be NULL. Now I check for NULL.
* src/nautilus-application.c: (volume_unmounted_callback):
2001-02-02 Gene Z. Ragan <gzr@eazel.com>
reviewed by: Maciej Stachowiak <mjs@eazel.com>
Fixed bug 5222,
Nautilus allows users to rename .Trash (but not copy or link)
* libnautilus-extensions/nautilus-file-utilities.c:
* libnautilus-extensions/nautilus-file-utilities.h:
(nautilus_uri_is_trash_folder):
Utility function to indentify if the folder is trash based
on a text uri.
* libnautilus-extensions/nautilus-file.c:
(nautilus_file_can_rename):
Call nautilus_uri_is_trash_folder to identify a trash
folder and disallow renaming.
Fixed bug 5749 (bookmarks are untranslated)
* data/static_bookmarks.xml:
An earlier checkin to update the bookmarks stripped off
all the underscores from "_name=" strings, which was what
was causing them to be translated. Fixed by returning the
underscores.
* applets/preferences-applet/nautilus-preferences-applet.c:
(boolean_toggle_button_new), (start_button_clicked_callback),
(main):
Add a Nautilus start button. Also make the fonts smaller to
conserver panel space.
Fix bug 6131 - NautilusLabel does not support proper line wrap.
Its fixed for smooth mode. Theres a bug (6243) for the more
complicated issue of wrapping in non smooth mode.
* libnautilus-extensions/nautilus-label.h:
* libnautilus-extensions/nautilus-label.c:
(nautilus_label_initialize_class), (nautilus_label_set_arg),
(nautilus_label_get_arg), (nautilus_label_size_allocate),
(nautilus_label_set_never_smooth),
(nautilus_label_set_adjust_wrap_on_resize),
(nautilus_label_get_adjust_wrap_on_resize):
Add a boolean attribute 'adjust_wrap_on_resize' that controls
whether the label will automatically update its line wrap width
when its resized.
* components/services/summary/nautilus-view/nautilus-summary-view.c
: (summary_view_item_label_new), (summary_load_location_callback):
No longer need size_allocate hack. Use NautilusLabel's
'adjust_wrap_on_resize' attribute instead.
* test/test-nautilus-label-wrapped.c: (create_nautilus_label),
(create_gtk_label_window), (create_nautilus_label_window), (main):
Update for 'adjust_wrap_on_resize'.
Fix bug 4678 (Clicking on a Nautilus link file in tree view causes
Nautilus cannot handle item type error box).
* components/tree/nautilus-tree-view.c:
(nautilus_tree_view_destroy), (got_activation_uri_callback),
(cancel_possible_activation), (tree_select_row_callback): Activate
activation URI instead of file URI to support Nautilus links
properly. If the link resolves to a "command:" URI, however,
silently ignore it to avoid giving an ugly error message because
per John Sullivan, selecting things in the tree view should not
launch apps.
* components/tree/nautilus-tree-view-private.h: Added
activation_uri_wait_file field to details struct.
* data/top/Computer, data/top/Services: Updated to new nautilus
link format.