2002-03-13 Alexander Larsson <alla@lysator.liu.se>
* libnautilus-private/nautilus-directory-async.c:
(link_info_done): After loading the link info with the new display
name, clear the old cached display name.
* libnautilus-private/nautilus-file-private.h:
(NautilusFileDetails): Add cached utf-8 display name and the
collation key for the display name.
(nautilus_file_clear_cached_display_name): New function
* libnautilus-private/nautilus-file.c:
(finalize): Free cached display name and collation key.
(update_info_internal, nautilus_file_update_name): clear
cached display name when filename changes.
(compare_by_display_name): Use nautilus_file_get_display_name_nocopy()
to avoid copy. Use nautilus_file_get_display_name_collation_key() to
avoid repeating expensive collation.
(nautilus_file_clear_cached_display_name): New function to clear
the cached display name and collation key.
(nautilus_file_get_display_name_collation_key): Cache the
value of g_utf8_collate_key() in order to do fast sorting on the
display name.
(nautilus_file_get_display_name_nocopy, nautilus_file_get_display_name):
Cache the final display_name utf-8 value. Don't call g_utf8_validate()
twice.
* libnautilus-private/nautilus-icon-container.c:
Remove assert that was showing up g_list_first() in my profiles.
2002-03-13 Anders Carlsson <andersca@gnu.org>
* src/nautilus-window-menus.c
(help_menu_about_nautilus_callback):
Call gtk_window_set_transient_for on the about dialog.
2002-03-12 Alexander Larsson <alla@lysator.liu.se>
* components/music/nautilus-music-view.c:
(music_view_set_selected_song_title,nautilus_music_view_update):
Escape text that is parsed as markup that could
have ampersands etc. in it.
(fetch_song_info): Use display filename for title when
the title is missing. This handles nice conversion to
utf8.
2002-03-10 Diego González <dggonz@yahoo.com>
* components/music/nautilus-music-vew.c (read_id_tag): convert
title, comments, artist and album to UTF-8
2002-03-11 Diego González <dggonz@yahoo.com>
* components/music/nautilus-music-view.c (go_to_next_track):
Fix a crash where the music view would crash after playing the
last song of a list. Correct indentation.
2002-03-11 Anders Carlsson <andersca@gnu.org>
* libnautilus-private/nautilus-file-operations-progress-icons.h:
* libnautilus-private/nautilus-file-operations-progress.c:
(nautilus_file_operations_progress_update_icon),
(nautilus_file_operations_progress_update),
(nautilus_file_operations_progress_init),
(nautilus_file_operations_progress_class_init):
Add progress jar feature; the progress dialog icon now looks like
a jar that fills up as the files is copied. This idea was suggested
by Tuomas Kuosmanen.
2002-03-11 Michael Meeks <michael@ximian.com>
* libnautilus/nautilus-clipboard.c
(select_all_callback): use g_object_weak_ref
instead of the "destroy" signal which is mostly
useless.
(idle_source_destroy_callback): impl.
2002-03-11 James Henstridge <james@daa.com.au>
* configure.in: build fix: get rid of unneeded semicolons which
cause compile errors with newer versions of autoconf (this doesn't
break older versions).
2002-03-11 Anders Carlsson <andersca@gnu.org>
* icons/Makefile.am:
* icons/nautilus-launch-icon.png:
Re-add nautilus-launch-icon.
* src/nautilus-window.c: (set_up_default_icon_list):
Use nautilus_pixmap_file to get the full path to the icons used.
(nautilus_window_class_init):
Remove nautilus_window_realize function, it only contained
stuff we don't need to do these days.
2002-03-11 Anders Carlsson <andersca@gnu.org>
* src/nautilus-window.c: (nautilus_window_set_up_sidebar),
(nautilus_window_tear_down_sidebar), (nautilus_window_constructed),
(nautilus_window_hide_sidebar), (nautilus_window_show_sidebar),
(nautilus_window_sidebar_showing):
Only create the sidebar if the "Display sidebar in new windows"
preference is turned on, otherwise create it when user activates
"Show sidebar" and destroy it when user activates "Hide sidebar".
This fixes#72595.
2002-03-10 Alexander Larsson <alla@lysator.liu.se>
* libnautilus-private/nautilus-file.c: (have_broken_filenames),
(nautilus_file_rename), (nautilus_file_get_display_name):
Cache the value of getenv("G_BROKEN_FILENAMES"), as this getenv
showed up as 3.6% and nr 2 in profiles.
2002-03-10 Alexander Larsson <alla@lysator.liu.se>
* src/nautilus-property-browser.c (element_clicked_callback):
Pass event->event to gtk_drag_begin in order get the right time
for the grab. This avoids a race with the ungrab that could lead
to stuck grabs.
* components/tree/nautilus-tree-model.c:
(tree_node_has_dummy_child): Add new "inserted_first_child"
boolean so we can insert new children and get rid of the "empty"
node.
(insert_node): Handle the case where we insert the first child,
and the empty node goes away.
(start_monitoring_directory): Set the "done loading" state a bit
earlier.
(nautilus_tree_model_ref_node): Make the "done loading" state be
false if there are no children, so we see "Loading" rather than
"Empty" until we are sure it's empty.
* icons/default/default.xml:
* icons/gnome/gnome.xml:
* icons/sierra/sierra.xml:
* icons/tahoe/tahoe.xml:
Vertical offset of "-1" looks right.
* src/Makefile.am: Remove run-nautilus.
* src/run-nautilus: Remove.
2002-03-08 Michael Meeks <michael@ximian.com>
* src/nautilus-window.c
(nautilus_window_constructed): create a UI component for
the status, that is separate from the shell UI component.
(nautilus_window_finalize): release the status_ui.
(nautilus_window_clear_status): remove fixme #43597
(nautilus_window_set_status): upd.
* components/adapter/main.c: (main): Use gdk_get_display, not
getenv ("DISPLAY").
* components/loser/content/main.c: (main): Ditto.
* components/loser/sidebar/main.c: (main): Ditto.
* components/tree/nautilus-tree-model.c:
(stop_monitoring_directory): Rename back from
stop_monitoring_directory_without_reporting. This no longer
changes the state of "done_loading".
(set_done_loading): New, handles a state change in either
direction.
(done_loading_callback): Moved most of the guts of this into the
new set_done_loading.
(start_monitoring_directory): Call set_done_loading explicitly.
Before, this had to use an idle function, but this is no longer
necessary since we use an idle function at the next level up.
* libnautilus-private/nautilus-directory-metafile.c:
(free_factory):
* libnautilus-private/nautilus-metafile.c:
(corba_register_monitor):
* libnautilus-private/nautilus-undo-context.c:
(nautilus_undo_context_new), (finalize):
* libnautilus/nautilus-undo-transaction.c:
(nautilus_undo_transaction_finalize),
(nautilus_undo_transaction_add_to_undo_manager):
* libnautilus/nautilus-undo.c: (nautilus_undo_share_undo_manager):
* libnautilus/nautilus-view.c: (forget_cached_view_frame):
* src/nautilus-component-adapter-factory.c: (release_factory):
* src/nautilus-view-frame.c: (destroy_view):
Clean up code by not bothering with an ev for CORBA_Object_release
and CORBA_Object_duplicate.
* src/nautilus-shell-ui.xml: Remove "Feedback" menu item.
2002-03-08 Michael Meeks <michael@ximian.com>
* src/nautilus-main.c (main): do a bonobo_ui_init,
we shouldn't need it but libgnomeui has escaped from
doing this for some reason.
Remove eel_setenv DISPLAY chicanery
* libnautilus/nautilus-view-standard-main.c
(nautilus_view_standard_main_multi): remove double
bonobo_ui_init.
* components/tree/nautilus-tree-model.h:
* components/tree/nautilus-tree-model.c:
(stop_monitoring_directory_without_reporting): Rename old
stop_monitoring_directory function.
(stop_monitoring_directory): New function that handles changes
caused by stopping monitoring.
(destroy_children_by_function): New.
(destroy_by_function): New.
(should_show_file): New.
(update_node): Call should_show_file instead of
nautilus_file_is_gone to decide whether a given file should show
up.
(process_file_change): Ditto.
(start_monitoring_directory): Pass through flags for whether to
monitor invisible or backup files, rather than just TRUE, TRUE.
(nautilus_tree_model_get_value): Use PANGO_STYLE_ITALIC instead of
PANGO_STYLE_OBLIQUE. Both will fall back to the other if not
available, but if we have both, we'd prefer italic.
(stop_monitoring_directory_and_children): New.
(stop_monitoring): New.
(nautilus_tree_model_set_show_hidden_files): New.
(nautilus_tree_model_set_show_backup_files): New.
(file_is_not_directory): New.
(nautilus_tree_model_set_show_only_directories): New.
* components/tree/nautilus-tree-view.c:
(update_filtering_from_preferences): Call functions to change
settings on model rather than storing these settings here.
(tree_activate_callback),
(filtering_changed_callback): Call
update_filtering_from_preferences to set filtering for the newly
created tree.
(nautilus_tree_view_instance_init): Don't call
update_filtering_from_preferences here, because we don't have a
tree model yet.
* libnautilus-private/nautilus-theme.c: Formatting tweaks.
* libnautilus/nautilus-view-standard-main.c: Formatting tweak.
* src/nautilus-window-toolbars.c: Formatting tweaks, and remove
some unnecessary localized strings.
* src/nautilus-zoom-control.h: Remove extern "C" stuff. If we need
this, we'll do G_BEGIN_DECLS, and it's silly to use it for private
headers that are never going to be used from C++.
* libnautilus-private/nautilus-bonobo-extensions.c:
(nautilus_bonobo_activation_register_for_display): Temporarily
re-disable per-display registration since it doesn't work at all
on my machine. I'll turn it back on after talking to Michael
Meeks.
* icons/crux_eggplant/crux_eggplant.xml:
* icons/crux_teal/crux_teal.xml:
* icons/default/default.xml:
* icons/gnome/gnome.xml:
* icons/sierra/sierra.xml:
* icons/tahoe/tahoe.xml:
Tweaked the zoom control specifications to match the new nicer
rules.
* src/nautilus-zoom-control.c: (draw_number):
Removed a lot of strangeness and fudge factors from this function.
* Tons of files:
Because lots of recent bugs were due to "signal handler called after
object gone" problems, switched many calls of g_signal_connect and
g_signal_connect_swapped to use g_signal_connect_object instead.
Also did other signal-related cleanup and changed some destroys to
finalizes.
* libnautilus/nautilus-view-standard-main.h:
We no longer need to include nautilus-view.h in here. So include it
in the files that use this instead.
Did merges from stable branch:
2001-10-25 Darin Adler <darin@bentspoon.com>
* libnautilus-private/nautilus-directory.c:
(call_files_changed_common), (call_files_changed_free_list),
(call_files_changed_unref_free_list),
(nautilus_directory_notify_files_changed): Move call to
nautilus_directory_add_file_to_work_queue into a better
bottleneck; now it catches all the notify cases, not just changed.
Also tell it to re-get top-left text and link info too when we get
a changed notice.
* src/file-manager/fm-directory-view.c: (queue_pending_files):
Don't use the timeout (and the hysteresis) when queuing files once
the initial directory load is complete. Doing this was causing
delays processing changes that came in later, which we don't want.
* src/nautilus-sidebar-title.c: (item_count_ready), (monitor_add),
(update_all), (nautilus_sidebar_title_set_file): Monitor the
directory count once we get it the first time. This makes sure
that changes in the directory count get reflected in the sidebar
without creating a race with the main view to see who calculates
it first.
2001-10-25 Alex Larsson <alexl@redhat.com>
* libnautilus-private/nautilus-directory.c
(nautilus_directory_notify_files_changed): Call
nautilus_directory_add_file_to_work_queue() when file_info is
invalidated. Otherwise it will not be read again.
2002-03-07 Michael Meeks <michael@ximian.com>
* libnautilus-private/nautilus-horizontal-splitter.c
(nautilus_horizontal_splitter_size_allocate): impl. to
cope with having a paned with no child2, without doing
lots of bogus size re-allocation.
(nautilus_horizontal_splitter_class_init): upd.
(nautilus_horizontal_splitter_pack2): impl, since
gtkpaned relies on the re-size to generate an expose
to re-render it's splitter grabber thing.a
* src/nautilus-sidebar.c
(nautilus_sidebar_set_width): impl. moving all sidebar
preferences here,
(nautilus_sidebar_init): move auto value setup
here from class_init to save possible re-enterancy
issue. Request the size we want for the sidebar,
the pane will under-allocate if neccessary.
Set the old_width to the correct size so we don't
re-render the paned lots as it swiches about.
* src/nautilus-window.c
(nautilus_window_constructed): reflow to simplify,
call sidebar_set_width.
(nautilus_window_set_content_view_widget): use
nautilus_..._pack2 instead of gtk_paned to fix rendering.
2002-03-06 Michael Meeks <michael@ximian.com>
* components/notes/nautilus-notes.c
(make_notes_view): upd.
* components/news/nautilus-news.c
(rss_read_done_callback): parse the RTF, but don't spew
warnings everywhere.
(make_news_view): upd.
* components/throbber/main.c
(cb_create_throbber): impl.
(throbber_object_destroyed, throbber_make_object):
axe cut & paste.
* libnautilus/nautilus-view-standard-main.c
(nautilus_view_create_from_get_type_function):
widen from NautilusView to BonoboObject, this
code has a much wider application.
(make_object): ditto.
* components/hardware/nautilus-hardware-view.c
(nautilus_hardware_view_get_nautilus_view): upd.
* components/throbber/nautilus-throbber.c
(nautilus_throbber_new): kill.
* libnautilus/nautilus-view-standard-main.c
(nautilus_view_standard_main_multi): use gdk_get_display.
* libnautilus-private/nautilus-bonobo-extensions.c
(nautilus_bonobo_activation_register_for_display): impl.
* src/nautilus-application.c
(nautilus_application_startup): use it.
* src/nautilus-window-toolbars.c
(location_change_at_idle_callback),
(throbber_callback): move from nautilus-window.c
(nautilus_window_allow_stop): move this here,
prune redundant sets, simplify property bag
extraction.
* src/nautilus-window.c
(nautilus_window_constructed): move throbber
location changed code out of here.
(nautilus_window_unrealize): no explicit removal
from remote property bag neccessary & upd.
* libnautilus-private/nautilus-metafile-factory.c
(corba_open): reduce complexity.
2002-03-07 Anders Carlsson <andersca@gnu.org>
* configure.in: Require eel 1.1.7
* src/nautilus-preferences-dialog.c:
Use EEL_PREFERENCE_ITEM_EDITABLE_PASSWORD_STRING for
the proxy dialog. Fixes#69387.
2002-03-06 Alexander Larsson <alla@lysator.liu.se>
(merges from stable):
* libnautilus-private/nautilus-monitor.c:
(process_fam_notifications): Tweak comment.
* src/nautilus-window-manage-views.c:
(cancel_viewed_file_changed_callback), (update_for_new_location):
Monitor the existence of the currently viewed file, so we notice
when the file is deleted.
* src/file-manager/fm-directory-view.h:
Add emblems_changes method.
* src/file-manager/fm-directory-view.c:
(file_changed_callback): Call emblems_changed.
(fm_directory_view_add_relative_emblems_to_exclude,
real_get_emblem_names_to_exclude):
exclude non-writable emblems if directory is not
writable.
* src/file-manager/fm-icon-view.c:
Implement emblem_changes.
* src/file-manager/fm-list-view.c:
Add GNOME2_CONVERSION_COMPLETE where the emblem icon
update is needed.
* src/file-manager/fm-list-model.c: (fm_list_model_remove_file):
Don't warn when asked to remove a file that's not in the list.
That happens relatively often.
* libnautilus-private/nautilus-icon-container.c:
(nautilus_icon_container_instance_init): Use g_signal_connect_object
instead of g_signal_connnect to make sure we don't get called once
the widget is dead.
* src/nautilus-bookmarks-window.c: (create_bookmarks_window):
Say "Close" instead of "Done".
* src/nautilus-property-browser.c:
(nautilus_property_browser_init): Say "Close" instead of "Done".
* src/nautilus-sidebar-title.c: (nautilus_sidebar_title_init): Use
g_signal_connect_object instead of g_signal_connect_swapped. This
will probably fix the theme-switching problem people have been
complaining about.
* src/nautilus-preferences-dialog.c: Tweak formatting.
* src/file-manager/fm-properties-window.c: Tweak formatting.
* src/nautilus-application.c: Fix bug # in a comment.
* components/tree/nautilus-tree-model.c: (update_monitoring): New
name for destroy_unneeded_children, which now starts monitoring
for nodes that need it as well as stopping monitoring and
destroying children for notes that don't need it.
(update_monitoring_idle_callback): New name.
(schedule_monitoring_update): New name.
(nautilus_tree_model_ref_node): Call schedule_monitoring_update when
a node is ref'd, rather than doing it right away.
(nautilus_tree_model_unref_node): Hoist the code from last_child_unref
here, since it's only a single call.
* components/tree/nautilus-tree-view.c: (sort_model_iter_to_file),
(compare_rows), (create_tree): Turn on the GtkTreeModelSort code.
The above fix makes us stop crashing, and the Gtk fix I'll check in
soon makes the sorting actually work.
2002-03-06 Michael Meeks <michael@ximian.com>
* src/file-manager/fm-icon-view.c
(fm_icon_view_update_menus): don't try to set properties
on a remote container that is being / has been torn down.
* libnautilus-private/nautilus-global-preferences.c
(default_icon_view_sort_order_or_manual_layout_changed_callback),
(nautilus_global_preferences_set_default_folder_viewer),
(default_folder_viewer_changed_callback): upd. for enum code.
* libnautilus-private/nautilus-icon-canvas-item.c
(nautilus_icon_canvas_item_class_init): use
eel_preferences_add_auto_enum instead of auto_int.
* src/file-manager/fm-list-view.c
(fm_list_view_class_init): ditto.
* src/file-manager/fm-icon-view.c
(get_default_sort_order, get_default_zoom_level_font_size),
(get_default_zoom_level, fm_icon_view_init): ditto.
* libnautilus-private/nautilus-thumbnails.c
(prefer_global_thumbnails_location): ditto.
* libnautilus-private/nautilus-icon-factory.c
(should_display_image_file_as_itself): ditto.
* libnautilus-private/nautilus-icon-container.c
(nautilus_icon_container_class_init): ditto.
2002-03-05 Michael Meeks <michael@ximian.com>
* components/music/nautilus-music-view.c
(nautilus_music_view_init): use
eel_preferences_get_enum instead of get_integer
* src/nautilus-switchable-search-bar.c
(nautilus_search_uri_to_search_bar_mode),
(nautilus_switchable_search_bar_new): ditto.
* src/file-manager/fm-icon-view.c
(fm_icon_view_update_click_mode): ditto.
* src/file-manager/fm-directory-view.c
(get_executable_text_file_action): ditto.
* libnautilus-private/nautilus-metafile.c
(can_use_public_metafile): ditto.
* libnautilus-private/nautilus-file.c
(show_directory_item_count_changed_callback),
(show_text_in_icons_changed_callback): use get_enum
* libnautilus-private/nautilus-global-preferences.c
(preference_defaults): add the PREFERENCE_ENUM type
and make this a string, as GConf expects.
* configure.in: add the GConf magic.
* libnautilus-private/Makefile.am (schemadir):
add schema installation bits.
2002-03-06 Alexander Larsson <alla@lysator.liu.se>
* nautilus-icon-private.h: (NautilusIconContainerDetails):
widget_x/y ->o world_x/y
* libnautilus-private/nautilus-icon-container.c:
Fix all the coordinate system problems. Now stretching should
work correctly again. There are a multitude of issues when
handling this:
1) When doing rubberbanding we want to use widget-relative
coordinates so that we can auto-scroll.
2) The widget events (button_press_event, button_release_event
and motion_notify_event) report coordintes relative to
GTK_LAYOUT(container)->bin_window, aka canvas "window
coordinates"
3) The canvas item events (item_event_callback,
handle_icon_button_press) report coordinates in canvas
world coordinates (a change since gnome 1 i believe)
2002-03-05 David Emory Watson <dwatson@cs.ucr.edu>
* src/nautilus-shell-ui.xml: applied patch by Andrew Burr to add mini
icons for refresh, zoom-*, and about menu items.
2002-03-04 David Emory Watson <dwatson@cs.ucr.edu>
* src/file-manager/nautilus-directory-view-ui.xml: fix mini icons in
the edit menu so that they don't disappear when the focus changes.
* libnautilus-private/nautilus-bonobo-extensions.c:
(nautilus_bonobo_set_accelerator): Remove unneeded
g_return_if_fail. We call only one other function, so that can
handle parameter checking.
(nautilus_bonobo_set_label): Ditto.
(nautilus_bonobo_set_tip): Ditto.
(nautilus_bonobo_set_sensitive): Ditto.
(nautilus_bonobo_set_toggle_state): Ditto.
(nautilus_bonobo_set_hidden): Ditto.
(nautilus_bonobo_get_label): Ditto.
(nautilus_bonobo_get_hidden): Add g_return_if_fail.
(get_numbered_menu_item_name): Remove unused parameters.
(add_numbered_menu_item_internal): Set label with
nautilus_bonobo_set_label so there aren't any issues with XML
entity encoding.
(nautilus_bonobo_add_submenu): Ditto.
(nautilus_bonobo_add_menu_separator): Add g_return_if_fail.
(remove_commands): Remove g_return_if_fail since caller does it.
(nautilus_bonobo_set_label_for_menu_item_and_command): Add
g_return_if_fail.
2002-03-06 Anders Carlsson <andersca@gnu.org>
* libnautilus-private/nautilus-directory-async.c:
(should_look_for_dot_directory_file), (lacks_link_info):
Only look for .directory files in directories that have a
special scheme.
(make_dot_directory_uri):
Remove sync check for .directory files.
* src/file-manager/fm-list-view.c:
(tree_selection_foreach_set_boolean): New.
(tree_selection_not_empty): New.
(tree_view_has_selection): New.
(event_after_callback): Handle only clicks in the bin_window.
Also, decide which menu to display by whether an item is selected
or not rather than by where the click is.
(button_press_callback): Deselect all items when you click on the
background.
(create_and_set_up_tree_view): Connect the new handler.
2002-03-05 Dave Camp <dave@ximian.com>
* components/notes/nautilus-notes.c:
(notify_listeners_if_changed): Remove the #ifdef
GNOME2_CONVERSION_COMPLETE and replace
bonobo_property_bag_notify_listeners with a
bonobo_event_source_notify_listeners_full call.
(make_notes_view): Remove the #ifdef GNOME2_CONVERSION_COMPLETE
and send the proper arguments to bonobo_control_set_properties.
2002-03-05 Anders Carlsson <andersca@gnu.org>
* src/file-manager/fm-list-view.c
(event_after_callback):
Display the background context menu if no item is
selected.
2002-03-05 Jens Finke <jens@triq.net>
* components/adapter/nautilus-adapter-stream-load-strategy.c
(nautilus_adapter_stream_load_strategy_load_location): Escape '!'
character in URIs before using it as a moniker string.