* libnautilus/gnome-icon-container.c:
(icon_select):
Fixed a bug that was causing some icons to not get
selected or unselected properly due to strangeness of
bit fields.
* libnautilus/gnome-progressive-loader.h:
libnautilus/gnome-progressive-loader.c:
libnautilus/Makefile.am:
Got rid of GnomeProgressiveLoader.
We're not going to use it.
* RENAMING: Andy added a new file that matched RENAMING,
but then I changed my mind about a renaming, spawning yet
more renaming!
* src/file-manager/fm-directory-view-icons.c:
Just tiny reformatting.
2000-01-26 Havoc Pennington <hp@pobox.com>
* src/nautilus-gconf.h, src/nautilus-gconf.c: Trivial files I'd
written before getting stuck on the OAF thing, that might be of
interest. I have some other bits I did that aren't
worth checking
in, Ramiro said he's doing the prefs dialog.
* libnautilus/nautilus-directory.h:
(nautilus_file_get):
(nautilus_file_detach):
(nautilus_directory_finalize):
(nautilus_file_unref):
Added interface to get a NautilusFile for a specific file rather than
a file from a directory that we are scanning.
* libnautilus/nautilus-glib-extensions.c:
(check_tm_to_g_date):
A little cleanup of the self-check code.
* libnautilus/Makefile.am:
libnautilus/libnautilus.h:
libnautilus/nautilus-alloc.h:
libnautilus/nautilus-directory.h:
Moved g_alloca into its own header file so you don't have to include
all the Bonobo stuff just to use g_alloca.
* libnautilus/gnome-icon-container-dnd.c:
(create_selection_shadow):
(set_gnome_icon_list_selection):
(get_gnome_icon_list_selection):
(gnome_icon_container_receive_dropped_icons):
Redid drag code so that it will work if there are multiple
windows involved, although we still don't handle copies.
Changed selection to include the width and height of the icon,
and to hold the top left of the icon.
* libnautilus/gnome-icon-container-private.h:
libnautilus/gnome-icon-container.c:
(move_icon):
(gnome_icon_container_move_icon):
Made move_icon visible to the DnD code, and added a raise boolean
so it could move and icon and bring it to the front.
(gnome_icon_container_get_icon_by_uri):
(gnome_icon_container_select_list_unselect_others):
Added new functions for use by DnD code.
* libnautilus/gnome-icon-container-private.h:
libnautilus/gnome-icon-container.c:
(handle_icon_button_press):
Got rid of unused drag_x_offset and drag_y_offset.
* libnautilus/gnome-icon-container.c:
(icon_select):
(icon_toggle_selected):
(select_icon):
(select_one_unselect_others):
(toggle_icon):
(unselect_all_but_one):
(unselect_all):
(rubberband_select_in_cell):
(kbd_move_to):
(kbd_space):
(linger_select_timeout_cb):
(handle_icon_button_press):
(gnome_icon_container_select_all):
(gnome_icon_container_unselect_all):
Cleaned up selection logic and made it simpler.
* libnautilus/gnome-icon-container.h:
libnautilus/gnome-icon-container.c:
(gnome_icon_container_xlate_selected):
Got rid of unused function.
* libnautilus/nautilus-self-checks.h:
libnautilus/nautilus-self-checks.c:
(nautilus_self_checks_failed):
(nautilus_exit_if_self_checks_failed):
src/ntl-main.c:
(main):
Added blank lines before and after the first and last failed
checks when at least one check fails.
* src/ntl-view.c:
(nautilus_view_destroy):
Removed a straggler message. (I hope Elliot's not still using it.)
* RENAMING: Some new name ideas.
icons are now drawn with a custom canvas item instead of with a group.
This is a first cut, it doesn't work at non-unity scale factors plus
other small problems.
* src/file-manager/fm-directory-view.c,
src/file-manager/fm-directory-view.h
(fm_directory_view_popup_item_context_menu,
fm_directory_view_popup_background_context_menu): New functions
for subclasses to call, to implement right-click menus. Most of
the guts are here now. Machinery to merge view-specific items with
generic ones will be added here.
* src/file-manager/fm-directory-view-icons.c,
src/file-manager/fm-directory-view-list.c: Use the new interface
for right-click stuff.
* gnome-icon-container-dnd.c:
(gnome_icon_container_receive_dropped_icons):
Removed bogus warning. Need to do some more work to get
dragging working with multiple windows, but there's no
easy way to detect that case, so just let it go.
* fm-directory-view-icons.c:
(icon_container_context_click_icon_cb):
(icon_container_context_click_background_cb):
Fixed the callbacks to match the new interface without the
icon name. I missed this in my check-in earlier today.
* libnautilus/gtkflist.c, libnautilus/gtkflist.h: Rename
"row_popup_menu" and "empty_popup_menu" signals to
"context_click_row" and "context_click_background" for more
consistency with the way the icon container does it. Removed
GdkEvent parameters from these signals. Added an int indicating
the row right-clicked.
(gtk_flist_button_press): Do not change the selection to the row
that gets right-clicked. It was inconsistent with the icon view
and most of the known universe.
ask questions and perform actions, even though only the
FMDirectoryViewIcons knows how to answer the questions
and perform the actions.
Replaced use of nautilus_file_get_info with specific
accessors for various file info.
* libnautilus/Makefile.am:
libnautilus/nautilus-icons-controller.h:
libnautilus/nautilus-icons-controller.c:
libnautilus/gnome-icon-container-private.h:
libnautilus/gnome-icon-container.h:
libnautilus/gnome-icon-container.c:
(icon_new_pixbuf):
(gnome_icon_container_new):
(gnome_icon_container_add):
(gnome_icon_container_add_auto):
Added NautilusIconsController, an interface provided so that the
file manager can connect the icons up with the file code. This is
all so we can keep the view/controller separation. This eliminates
the need to pass around the icon name all the time, so the signals
have changed to not take the icon name as a parameter.
* src/file-manager/Makefile.am:
src/file-manager/fm-icons-controller.c:
src/file-manager/fm-icons-controller.h:
Added FMIconsController, the actual controller used by the file
manager instance of GnomeIconContainer.
src/file-manager/fm-directory-view-icons.c:
(create_icon_container):
(add_icon_if_already_positioned):
(add_icon_at_free_position):
(icon_container_activate_cb):
(fm_directory_view_icons_icon_moved_cb):
Create and use the FMIconController.
* libnautilus/gnome-icon-container-private.h:
libnautilus/gnome-icon-container-dnd.c:
(set_gnome_icon_list_selection):
(set_uri_list_selection):
libnautilus/gnome-icon-container.c:
(gnome_icon_container_set_base_uri):
src/file-manager/fm-directory-view-icons.c:
(set_up_base_uri):
(fm_directory_view_icons_begin_loading):
Get rid of the old base_uri technique for handling drags. Instead
the icon controller supplies URIs for icons when requested.
* RENAMING: Proposed that we use NautilusIconsView as the new name
for GnomeIconContainer instead of NautilusIconContainer.
* libnautilus/gnome-icon-container-private.h:
libnautilus/gnome-icon-container.h:
libnautilus/gnome-icon-container.c:
(gnome_icon_container_initialize):
(handle_icon_enter_notify):
(handle_icon_leave_notify):
Renamed browser mode to linger selection mode.
* libnautilus/gnome-icon-container-private.h:
libnautilus/gnome-icon-container.h:
libnautilus/gnome-icon-container.c:
(icon_configure):
(icon_position):
(change_icon_mode):
(gnome_icon_container_initialize):
(gnome_icon_container_set_icon_mode):
(gnome_icon_container_get_icon_mode):
src/file-manager/fm-directory-view-icons.c:
(fm_directory_view_icons_initialize):
Got rid of icon mode, since we won't be using it.
* libnautilus/gnome-icon-container-dnd.c:
(get_gnome_icon_list_selection):
Changed geometry parsing so it will not ignore extra characters
after the numeric geometry.
(gnome_icon_container_receive_dropped_icons):
The code here tried to work when dragging icons between windows,
but the implementation was actually only good within the same
window, so I modified it to check for that case.
* libnautilus/gnome-icon-container-dnd.c:
(create_selection_shadow):
(set_gnome_icon_list_selection):
libnautilus/gnome-icon-container.c:
(icon_position):
Renamed GNOME_ICON_CONTAINER_ICON_XOFFSET to
GNOME_ICON_CONTAINER_ICON_X_OFFSET and
GNOME_ICON_CONTAINER_ICON_YOFFSET to
GNOME_ICON_CONTAINER_ICON_Y_OFFSET. We use an underscore between
words in identifiers.
* libnautilus/gnome-icon-container.c:
(destroy):
Added code to remove timeouts and idles when the container is
destroyed.
* libnautilus/nautilus-directory.h:
libnautilus/nautilus-directory.c:
(nautilus_file_get_info):
Get rid of the direct call to get GnomeVFSFileInfo. All info is
accessed through individual functions.
(nautilus_file_get_size):
(nautilus_file_get_type):
(nautilus_file_get_mime_type):
(nautilus_file_is_executable):
(nautilus_file_is_symbolic_link):
Added new accessor functions as needed.
src/file-manager/fm-directory-view.c:
(display_selection_info):
src/file-manager/fm-icon-cache.c:
(fm_icon_cache_get_icon_set_for_file):
(fm_icon_cache_get_icon_for_file):
Change code to use the accessors instead of get_info.
* libnautilus/nautilus-gtk-macros.h:
(NAUTILUS_ASSIGN_MUST_OVERRIDE_SIGNAL):
Changed macro to take a class pointer of the right type instead
of taking both a casting macro name and a class pointer.
src/file-manager/fm-directory-view.c:
(fm_directory_view_initialize_class):
Changed existing uses of macro to match.
* src/file-manager/Makefile.am:
src/file-manager/fm-icon-cache.c:
src/file-manager/fm-default-file-icon.h:
src/file-manager/fm-default-file-icon.c:
Moved the default icon into its own file.
* src/file-manager/fm-directory-view-icons.c: Added background and
item context click menus. Right now they only work for the
directory view, and contain only insensitive items. This needs
more work but I wanted to check in something basic.
* 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.