* libnautilus/Makefile.am:
libnautilus/gnome-icon-container-layout.c:
libnautilus/gnome-icon-container-layout.h:
libnautilus/gnome-icon-container.c:
libnautilus/gnome-icon-container.h:
src/file-manager/fm-directory-view-icons.c:
src/file-manager/fm-directory-view-icons.h:
Got rid of the GnomeIconContainerLayout.
This was the old mechanism for saving and loading
icon positions and we have a better signal-based one.
Also made the new mechanism work more the way that
Ettore had intended to make the layout work, where
all the icons that have preassigned positions get
positioned first, then the ones that are auto positioned.
In the long run, we'll need something a bit fancier.
* libnautilus/gnome-icon-container-dnd.c:
libnautilus/gnome-icon-container.c:
libnautilus/gnome-icon-container.h:
libnautilus/gnome-icon-container-private.h:
Change the priv pointer to be named details to match
what we use in other places in Nautilus.
* src/file-manager/fm-directory-view.c:
(fm_directory_view_activate_entry):
Fixed double free that was causing lots of nasty errors in
the file manager.
(fm_directory_view_load_uri):
Made the old directory hang around a bit longer when loading
a new uri.
(display_selection_info):
(fm_directory_view_send_selection_change):
(display_selection_info_idle_cb):
Fixed a storage leak and broke out the selection change into
its own function instead of mixing it with the status line.
Also made the selection actually use URIs instead of just
names for the selected items.
* libnautilus/nautilus-directory.h:
libnautilus/nautilus-directory.c:
(nautilus_file_get_uri):
Added this function that gets a URI (rather than just a
leaf name).
* libnautilus/nautilus-directory.c:
(nautilus_directory_finalize):
(nautilus_self_check_directory):
Added more self checks and fixed a bug where a metadata
change would get lost if you delete the directory too soon
after making the change.
2000-01-20 Jonathan Blandford <jrb@redhat.com>
* src/file-manager/fm-directory-view-list.c (column_clicked_cb):
more initialization to clean up an warning.
* src/gnome-icon-container.c:
(gnome_icon_container_xlate_selected):
Fixed a bug where dragging an icon would cause the "kbd_selected"
icon to scroll into view. Just passed FALSE instead of TRUE for
"schedule_visibility".
* libnautilus/nautilus-background.c:
(nautilus_background_draw_flat_box):
Tiny change, to fit our style rule against initializing.
* src/ntl-uri-map.c: Async notification of navinfo - now we just need an async get_file_info call.
* src/ntl-view.[ch]: Better error handling.
* src/file-manager/fm-directory-view.c (display_selection_info): Send a 'selection change' request.
* src/ntl-window-msgs.c: Totally rewrite the state changing machine. Now handles errors slightly
better.
* src/ntl-types.h: Remove requesting_view from the navigation info.
* src/ntl-window.h: Move all the state machine stuff into NautilusWindow itself.
* src/ntl-window.c: Update for new 'stop doing stuff' API.
storing ICON_X and ICON_Y.
Take first step in moving the directory view to use the opaque
NautilusDirectory and NautilusFile instead of using gnome-vfs
directly. This will separate the controller from the model:
FMDirectoryView is a controller and NautilusDirectory a model.
* src/file-manager/fm-directory-view-icons.c:
(add_to_icon_container):
(fm_directory_view_icons_icon_moved_cb):
Store icons positions as "x,y" in ICON_POSITION instead of storing
separate numbers in ICON_X and ICON_Y.
* libnautilus/nautilus-directory.h:
libnautilus/nautilus-directory.c:
(nautilus_directory_get_uri):
Added a new call needed to replace fm_directory_view_get_uri.
(nautilus_directory_get_file_metadata):
(nautilus_directory_set_file_metadata):
(nautilus_file_get_metadata):
(nautilus_file_set_metadata):
Moved the calls for getting and setting file metadata into the
file objects.
(nautilus_directory_new_file):
(nautilus_file_get_info):
Added temporary interfaces for the current situation where we're
dealing with both NautilusFile and GnomeVFSFileInfo objects at
once.
(nautilus_directory_finalize):
Detach and unref all the files when the directory is destroyed.
(nautilus_file_unref):
(nautilus_file_get_name):
Implemented these functions now that we are using them.
* src/file-manager/fm-directory-view.h:
src/file-manager/fm-directory-view.c:
(fm_directory_view_add_entry):
(fm_directory_view_activate_entry):
(display_selection_info):
(fm_directory_view_get_selection):
src/file-manager/fm-directory-view-icons.c:
(add_to_icon_container):
(fm_directory_view_icons_icon_moved_cb):
(dm_directory_view_icons_add_entry):
(fm_directory_view_icons_get_selection):
(icon_container_activate_cb):
src/file-manager/fm-directory-view-list.c:
(add_to_flist):
(fm_directory_view_list_add_entry):
Change all the code to work with NautilusFile instead of
GnomeVFSFileInfo, except for the parts of FMDirectoryView dealing
with the directory_list.
* src/file-manager/fm-directory-view.h:
src/file-manager/fm-directory-view.c:
(nautilus_file_date_as_string):
(nautilus_file_size_as_string):
(nautilus_file_type_as_string):
libnautilus/nautilus-directory.h:
libnautilus/nautilus-directory.c:
(nautilus_file_get_date_as_string):
(nautilus_file_get_size_as_string):
(nautilus_file_get_type_as_string):
Moved and renamed these functions and made them work on
NautilusFile objects.
won't work because the list view draws its background with calls
to gdk_draw_rectangle explicitly, and doesn't call the functions
in the style, so it can't be overridden.
* libnautilus/nautilus-background.c:
(nautilus_background_set_widget_style): Fix bug where the list
items were not highlighting properly. Set only the NORMAL and
ACTIVE background color. That way we don't screw up the SELECTED
and other background colors.
icon view does. Some more code could be saved, but that's
a refactoring for another time.
* libnautilus/gtkflist.c: Added support for receiving dragged
colors to set the background of the list.
* src/file-manager/fm-directory-view-list.c:
(fm_directory_view_list_initialize_class):
(fm_directory_view_list_clear):
(fm_directory_view_list_background_changed_cb): Added code to load
and save the background color from metadata.
* libnautilus/nautilus-background.c: Put the background color in
all the bg and base colors in the style instead of putting it only
in bg[GTK_STATE_NORMAL].
* libnautilus/nautilus-gtk-macros.h:
(NAUTILUS_DEFINE_CLASS_BOILERPLATE): Make sure that the macro only
evaluates the parent_class_type argument once, like it says in the
comment. (NAUTILUS_CALL_PARENT_CLASS): Fix this macro so it can
be used in places where an expression is expected.
* RENAMING: Added this file to list name changes we are
planning for the future.
* libnautilus/gtkflist.h: libnautilus/gtkflist.c:
src/explorer-location-bar.h: src/explorer-location-bar.c:
Minimized includes.
* src/ntl-index-panel.c:
src/file-manager/fm-directory-view-icons.c: Fixed some comments
and formatting.
and read in when you visit a directory. But the code then
immediately re-lays out the icons, so the position is lost!
* src/file-manager/fm-directory-view-icons.c:
(fm_directory_view_icons_icon_moved_cb):
(fm_directory_view_icons_initialize): (add_container_icon): Save
icon position when an icon is moved. Get icon position when an
icon is first created.
* libnautilus/nautilus-directory.c:
(nautilus_directory_get_metadata_from_node):
(nautilus_directory_get_metadata):
(nautilus_directory_create_metafile_tree_root):
(nautilus_directory_get_metadata):
(nautilus_directory_set_metadata):
(nautilus_directory_get_file_metadata):
(nautilus_directory_set_file_metadata): Added the routines to get
and set metadata for individual files.
* libnautilus/nautilus-string.h: libnautilus/nautilus-string.c:
(nautilus_eat_strcmp): (nautilus_string_to_int):
(nautilus_eat_string_to_int): Made new string functions that free
the existing strings, and a function to convert an int to a
string.
* libnautilus/gnome-icon-container.h:
libnautilus/gnome-icon-container.c: (move_icon): (class_init):
(handle_icon_button_press): Added context_click_background and
icon_moved signals, and renamed context_click to
context_click_icon.
* configure.in: Turned -Wunused back on. I had to turn -W off,
but I think it's worth it.
* libnautilus/nautilus-directory.c: (nautilus_directory_finalize):
(nautilus_directory_try_to_read_metafile):
(nautilus_directory_read_metafile):
(nautilus_directory_try_to_write_metafile):
(nautilus_directory_write_metafile):
(nautilus_directory_construct_alternate_metafile_uri):
(nautilus_directory_new): After Andy explained his change to me, I
realized that it would always write the metafile in the alternate
place if there was no pre-existing metafile. So I changed the
logic. The new rule is: read the metafile from the alternate
location first. If we find it there, write it back
there. Otherwise, try to write in the directory itself. If that
fails, write it in the alternate location instead.
* libnautilus/nautilus-directory.c:
(nautilus_directory_get_metadata): Allow get_metadata on a NULL
NautilusDirectory and return NULL for data.
on the icon view.
* libnautilus/gnome-icon-container-dnd.h:
libnautilus/gnome-icon-container-dnd.c:
(gnome_icon_container_position_shadow): (drag_data_received_cb):
(gnome_icon_container_ensure_drag_data): (drag_motion_cb):
(drag_drop_cb): (gnome_icon_container_receive_dropped_icons):
(gnome_icon_container_free_drag_data): (drag_leave_cb): Added
support for receiving dropped colors to change the background of a
GnomeIconContainer.
* src/file-manager/fm-directory-view-icons.c:
(fm_directory_view_icons_initialize_class):
(fm_directory_view_icons_clear):
(fm_directory_view_icons_background_changed_cb): Added code to
load and save the background color from metadata.
* libnautilus/gdk-extensions.c: (nautilus_gradient_new): Changed
nautilus_gradient_new to handle NULLs in the same way that the
rest of the gradient functions do instead of NULL being an illegal
input value.
* src/file-manager/fm-directory-view.h:
src/file-manager/fm-directory-view.c:
(fm_directory_view_initialize): (fm_directory_view_destroy):
(fm_directory_view_get_model): (fm_directory_view_load_uri): Added
a NautilusDirectory object to each directory view, accessed by
subclasses with a call to fm_directory_view_get_model.
* libnautilus/nautilus-gtk-extensions.h:
libnautilus/nautilus-gtk-extensions.c:
(gnome_icon_container_dropped_icon_feedback):
(nautilus_gdk_selection_data_copy_deep): Added deep versions of
these GtkSelectionData functions.
* libnautilus/nautilus-gtk-macros.h:
(NAUTILUS_DEFINE_GET_TYPE_FUNCTION):
(NAUTILUS_DEFINE_CLASS_BOILERPLATE): Added definition and
initialization of the parent_class global to
NAUTILUS_DEFINE_GET_TYPE_FUNCTION and renamed it to
NAUTILUS_DEFINE_CLASS_BOILERPLATE.
* libnautilus/nautilus-background-canvas-group:
(nautilus_background_canvas_group_initialize_class):
libnautilus/nautilus-background.c:
(nautilus_background_initialize_class):
libnautilus/nautilus-directory.c:
(nautilus_directory_initialize_class): src/ntl-index-panel.c:
(nautilus_index_panel_initialize_class):
src/file-manager/fm-directory-view-icons.c:
(fm_directory_view_icons_initialize_class):
src/file-manager/fm-directory-view-list.c:
(fm_directory_view_list_initialize_class):
src/file-manager/fm-directory-view.c:
(fm_directory_view_initialize_class): Take advantage of the new
NAUTILUS_DEFINE_CLASS_BOILERPLATE and get rid of existing code to
set up parent_class.
* libnautilus/gnome-icon-container-dnd.h:
libnautilus/gnome-icon-container-dnd.c:
libnautilus/gnome-icon-container-layout.h:
libnautilus/gnome-icon-container-layout.c:
libnautilus/gnome-icon-container.c: Minimized includes.
made reading metafile from directory where we don't have write
permissions work properly by looking in the common place on any error,
not just if we get ACCESS_DENIED
* libnautilus/nautilus-gtk-macros.h: Since the prototypes for
GtkObjectInitFunc and GtkClassInitFunc just have a 'gpointer' for the args,
cast the given values to these function types, so that people can use the actual
pointer types as arguments without receiving a warning.
* src/ntl-index-panel.c: Change to match. Also set
object_klass->destroy & object_klass->finalize to point to our
implementation. Also remove unused variables
(nautilus_index_panel_initialize,
nautilus_index_panel_set_up_label).
* libnautilus/nautilus-background.c, src/ntl-window-msgs.c,
src/ntl-window.c, src/file-manager/fm-directory-icons.c: Remove
unused variables.
* src/ntl-window.h: Add a variable (unused) for future handling of content view loading.
* libnautilus/libnautilus.h: Add an interim g_alloca.
* libnautilus/nautilus-directory.c: Clean up a bit further, by
removing the need for another if(), and using g_alloca instead of
g_malloc.
* libnautilus/nautilus-directory.c:
(nautilus_directory_read_metafile):
(nautilus_directory_try_to_read_metafile):
(nautilus_directory_write_metafile):
(nautilus_directory_try_to_write_metafile):
(nautilus_directory_switch_to_alternate_metafile_uri):
(nautilus_directory_escape_slashes):
(nautilus_make_directory_and_parents): Added first cut at code to
put metafiles in the user's home directory if the directory is not
accessible and you can't read and write a metafile in the
directory itself. We'll have to refine this later to handle cases
where you end up with two metafiles.
* libnautilus/Makefile.am: libnautilus/nautilus-debug.h:
libnautilus/nautilus-debug.c: Took trick for getting into the
debugger and put it into a public header file so it can be used
outside of the nautilus executable.
* src/ntl-main.c: (stop_in_debugger):
(nautilus_stop_after_default_log_handler): (main): Use the new
calls from libnautilus to set up the drop into debugger for
criticals and warnings.
* src/file-manager/fm-main.c: (main): Minimized includes and used
the new calls from libnautilus to set up the drop into debugger
for criticals and warnings.
* src/ntl-uri-map.c: (nautilus_navinfo_add_mapping):
src/ntl-window.c: (nautilus_window_constructed):
src/file-manager/fm-directory-view.c:
(fm_directory_view_initialize): (fm_directory_view_destroy):
(notify_location_change_cb): (stop_location_change_cb):
(fm_directory_view_sort): Removed some messages that aren't so
useful.
* libnautilus/ntl-view-frame.h: Minimized includes.
* libnautilus/ntl-view-frame.c: Include "ntl-view-frame.h" first
so it tests to see that it has sufficient includes in it.
* src/ntl-view.c: (nautilus_view_load_client): Changed function so
that NULL for an iid is allowed and simply results in a failed
load instead of being illegal.
* src/ntl-window-msgs.c:
(nautilus_window_change_location_internal): src/ntl-window.c:
(nautilus_window_up): Got rid of calls to gnome_vfs_uri_destroy;
use gnome_vfs_uri_unref instead since it's safer and Federico is
getting rid of gnome_vfs_uri_destroy.
* src/file-manager/fm-directory-view-icons.h:
src/file-manager/fm-directory-view-icons.c:
(fm_directory_view_icons_new):
src/file-manager/fm-directory-view-list.h:
src/file-manager/fm-directory-view-list.c:
(fm_directory_view_list_new):
src/file-manager/fm-directory-view.h:
src/file-manager/fm-directory-view.c: (fm_directory_view_new):
Minimized includes and got rid of the unused _new functions.
* libnautilus/nautilus-directory.h: Added a missing 2000 copyright
date.