2008-05-05 Paolo Borelli <pborelli@katamail.com>
[nautilus.git] / ChangeLog-20000414
blob4503e72295089b1584d4749d5806c5ef8fbba6ce
1 2000-04-14  Raph Levien  <raph@gimp.org>
3         * librsvg/art_rgba.c:
4           librsvg/art_rgba.h:
5           librsvg/art_rgba_svp.c:
6           librsvg/art_rgba_svp.h: Added GPL copyright notice making clear
7           that these files are part of libart_gpl. Also made .h files
8           C++ friendly.
10         * librsvg/rsvg-bpath-util.c:
11           librsvg/rsvg-bpath-util.h:
12           librsvg/rsvg-path.c:
13           librsvg/rsvg-path.h:
14           librsvg/rsvg.c:
15           librsvg/rsvg.h: Added GPL copyright notice assigning copyright
16           to Eazel. Also made .h files C++ friendly.
18         * librsvg/rsvg-bpath.c: Removed this file, it's subsumed by
19           rsvg-bpath-util.c.
21 2000-04-13  Ramiro Estrugo  <ramiro@eazel.com>
23         * idl/nautilus.idl,
24           idl/Makefile.am,
25           libnautilus/nautilus-view-component.idl,
26           libnautilus/Makefile.am,
27           libnautilus/.cvsignore:
28         
29           Move nautilus view component interface definition into libnautilus.
30         
31 2000-04-13  Ramiro Estrugo  <ramiro@eazel.com>
33         * librsvg/.cvsignore:
34         .cvsignore file for new rsvg directory.
35         
36 2000-04-13  Andy Hertzfeld <andy@eazel.com>
38         added Raph's scalable icon machinery. Right now the only way to see it
39         is to use the eazel theme and drag a file over a folder; the open folder
40         is a vector icon.  Soon we'll add lots more.
41         
42         * librsvg/*
43         Raph's new library
44         * libnautilus/nautilus-icon-factory.c:
45         integrate vector icons with the icon factory.  Right now, it prefers
46         them to bitmapped ones, which is probably wrong.
47         * Makefile.am: added librsvg
48         * configure.in: added librsvg
49         * src/Makefile.am: link with librsvg
50         * components/*/Makefile.am: link with librsvg
51         * icons/eazel/Makefile.am: added i-directory-accept.svg
52         * icons/eazel/i-directory-accept.svg: our sole vector icon
53         
54 2000-04-13  Darin Adler  <darin@eazel.com>
55         
56         * components/html/ntl-web-browser.c: (browser_vfs_read_callback):
57         Fixed a bug my changes to GNOME VFS exposed. The callback couldn't
58         handle a "bytes_read" of 0.
60         * libnautilus/nautilus-directory-private.h:
61         * libnautilus/nautilus-directory.c:
62         * libnautilus/nautilus-directory.h:
63         * src/file-manager/fm-directory-view.c:
64         Added a new interface for monitoring files and directories.
65         Also fixed the self-check code that was failing since the
66         async. changes.
67         
68         * libnautilus/nautilus-file.h:
69         Added the interface for monitoring single files, but it isn't
70         implemented yet.
71         
72         * libnautilus/nautilus-icon-canvas-item.c: 
73         * libnautilus/nautilus-icon-canvas-item.h: 
74         * libnautilus/nautilus-icon-container.c: 
75         * libnautilus/nautilus-icon-container.h: 
76         * libnautilus/nautilus-icon-dnd.c: 
77         * libnautilus/nautilus-icon-dnd.h: 
78         * libnautilus/nautilus-icon-private.h:
79         Restructured Andy's modifier changes so the canvas item doesn't
80         have to know about modifiers. This makes the canvas item private
81         again. Users of NautilusIconContainer shouldn't have to know
82         about the canvas item.
83         
84         * src/file-manager/fm-icon-view.c:
85         Reformatting.
86         
87 2000-04-13  Andy Hertzfeld  <andy@eazel.com>
88         
89         * components/services/startup/nautilus-service-startup-view.c:
90         made configuration upload work again by adding a "Content-Type"
91         header, which is now required by Jonathan's script
92         
93 2000-04-13  Andy Hertzfeld  <andy@eazel.com>
95         * components/services/startup/nautilus-service-startup-view.c:
96         fixed problems with the url escaping by unescaping the token
97         return by the service before re-escaping it
98         * components/services/startup/eazel-register.c:
99         added periodic call to gtk_main_iteration during configuration
100         gather to get feedback displayed
102 2000-04-13  Andy Hertzfeld <andy@eazel.com>
104         added Susan's images to service registration and configuration upload
105         
106         * configure.in:
107         added components/services/startup/icons/Makefile
108         * components/services/startup/Makefile.am
109         added icons directory to Makefile
110         * components/services/startup/icons/Makefile.am
111         Makefile for a new directory to hold the images
112         * components/services/startup/icons/.cvsignore
113         .cvsignore file for the new directory
114         * components/services/startup/icons/config-gather.png:
115         new icon for configuration gathering form
116         * components/services/startup/icons/register.png:
117         new icon for registration form
118         * components/services/startup/nautilus-service-startup-view.c:
119         added code to display the new icons
121 2000-04-13  Darin Adler  <darin@eazel.com>
123         Updated for new GNOME VFS.
125         * libnautilus/nautilus-directory.c
126         (read_some_metafile_data), (metafile_read_start),
127         (metafile_write_create_callback), (metafile_write_start),
128         (nautilus_directory_monitor_files_ref):
129         * libnautilus/gdk-pixbuf-extensions.c
130         (nautilus_gdk_pixbuf_load_async):
131         * src/ntl-uri-map.c (got_metadata_callback):
132         * components/html/ntl-web-browser.c (browser_vfs_callback),
133         (do_vfs_load):
134         Update for the new GNOME VFS which doesn't return an immediate error
135         code when doing an async. call.
137 2000-04-12  Andy Hertzfeld <andy@eazel.com>
139         * src/ntl-window-msgs.c:
140         improved the title of uri's not handled by gnome-vfs; instead of
141         "Nautilus" use the text after the colon, if there is any
142         * components/services/startup/nautilus-service-startup-view.c:
143         used Gene's escaping routine in gnome-vfs to escape http
144         parameters as necessary
145         * libnautilus/nautilus-directory.c:
146         weakened assert in metadata callback to allow non-vfs uris to
147         continue to work
148         
149 2000-04-12  Andy Hertzfeld <andy@eazel.com>
151         * icons/eazel/Makefile.am:
152         added more eazel theme open folder icons at different sizes
153         * icons/eazel/i-directory-accept.png:
154         replaced this one with one that was less crufty
155         * icons/eazel/i-directory-accept-36.png:
156         new open folder icon at smaller size
157         * icons/eazel/i-directory-accept-72.png:
158         new open folder icon at larger size
159         
160 2000-04-12  Pavel Cisler <pavel@eazel.com>
162         * src/file-manager/fm-directory-view.c:
163         (fm_directory_duplicate_selection), (bonobo_menu_duplicate_cb),
164         (append_uri_one), (duplicate_cb), (fm_directory_view_real_update_menus):
165         Added a Duplicate menu item. (task 329)
167         * src/file-manager/dfos-xfer.c:
168         (fs_xfer)
169         Added support for the duplicate command. Passing in a NULL for
170         target directory now starts a duplicate operation.
172         * src/file-manager/dfos-xfer.c:
173         (fs_xfer)
174         Made the progress dialog receive the text for the setup state. Pass
175         in proper text for copy and move operations.
177         * src/file-manager/dfos-xfer.c:
178         (handle_xfer_ok)
179         Pin the values of the bytes_copied to the preflight maximum -- a copy
180         may end up copying more than it estimated when items are added to
181         the hierarchy after the copy started. (I was hitting this when copying
182         a folder into itself, which is a separate bug).
184 2000-04-12  Andy Hertzfeld <andy@eazel.com>
186         added a framework for using custom images for icons to reflect their
187         highlited states.  Made folders in the eazel theme open up to reflect
188         drop highliting.
189         
190         * icons/eazel/Makefile.am:
191         added icon for open folder at standard size
192         * icons/eazel/i-directory-accept.png:
193         icon of open folder for drop-highlighting
194         * libnautilus/nautilus-icon-canvas-item.c,h:
195         added a "modifier" text string attribute with appropriate accessors
196         when modifier is changed, update the icon
197         * libnautilus/nautilus-icon-container.c,h:
198         added modifier parameter to "get_icon_images" signal
199         added nautilus_icon_container_request_update_by_item to update
200         the icon corresponding to a given item.
201         * libnautilus/nautilus-icon-factory.c,h:
202         added modifier field to NautilusScalableIcon; modified appropriate
203         lifetime and hashing routines accordingly;
204         use the modifier to select the proper image in get_icon_file_path
205         * src/file-manager/fm-icon-view.c:
206         pass in the modifier from signal to icon_factory_get_icon_for_file.
207         
208 2000-04-12  John Sullivan  <sullivan@eazel.com>
210         * data/mime/nautilus.keys:
211         A whole bunch more MIME type descriptions.
212         
213 2000-04-12  Darin Adler  <darin@eazel.com>
215         * check-FIXME.pl: This is a new Perl script for searching for FIXME
216         in the code. It reports any FIXME that does not have a bug number
217         next to it, or any with a bug number that's not an open bug.
218         * libnautilus/nautilus-bookmark.c: Attached a bug number to a FIXME
219         for script-testing purposes.
220         * docs/architecture.txt: Removed a FIXME. So sue me!
222         * src/file-manager/fm-icon-text-window.c
223         (create_attributes_option_menu): Added a call to gettext since the
224         attribute_labels are now N_ strings.
225         * po/.cvsignore: Ignore the generated files.
227         * libnautilus/nautilus-icon-factory.c: Formatting tweak.
229 2000-04-12  Ramiro Estrugo  <ramiro@eazel.com>
231         * src/file-manager/fm-icon-text-window.c:
232         Change usage of _("foo") to N_("foo")
233         
234 2000-04-12  Valek Filippov <frob@df.ru>
236         * po/POTFILES.in: added files for i18n
237         * configure.in:
238         * Makefile.am:
239         * aconfig.h:      changed for i18n
240         * po/ru.po:       added russian translation.
242 2000-04-12  Pavel Cisler <pavel@eazel.com>
244         * libnautilus/nautilus-icon-dnd.c:
245         * libnautilus/nautilus-icon-dnd.h:
246         Fix a problem where drag actions did't update properly when dragging
247         between two windows. The pointer to the private GtkDragStatus needs
248         to be global, not stored in the drag originator widget.
250 2000-04-11  Andy Hertzfeld <andy@eazel.com>
252         * components/services/startup/eazel-register.c:
253         added hostname to configuration node to distinguish machines when
254         the user has more than one
255         * components/services/startup/nautilus-service-startup-view.c:
256         changed protocol for configuration upload to match Jonathans's new
257         cgi; configuration upload is now working with Jonathan's stuff!
258         
259 2000-04-11  Darin Adler  <darin@eazel.com>
261         * libnautilus/nautilus-directory.c
262         (nautilus_directory_call_when_ready),
263         (nautilus_directory_call_when_ready_internal): Handle case where
264         directory is NULL which is needed for URIs that Nautilus
265         understand but GNOME VFS does not.
267 2000-04-11  John Sullivan  <sullivan@eazel.com>
269         Addressed most of task 148 (Better type-as-string for
270         directory views). Added new directory to CVS, so make
271         sure you do a "cvs update -d" and not just "cvs update".
273         "make install" now installs a file of mime-type-to-English
274         descriptions in the gnome-mime directory.
276         * data/mime/nautilus.keys: The actual mapping between
277         MIME types and English descriptions. Read these and send
278         me your abuse.
279         * data/mime/Makefile.am: New file, copies nautilus.keys to
280         gnome-mime directory.
281         * data/Makefile.am: includes "mime" subdirectory
282         * configure.in: configures "data/mime" directory
284         * libnautilus/nautilus-file.c:
285         (nautilus_file_get_mime_type_as_string_attribute):
286         New function, returns the raw MIME type as a string,
287         and handles the no-MIME-type case.
288         (nautilus_file_get_string_attribute): handle attribute
289         "mime_type", distinct from "type" which is now the 
290         human-language one.
291         (nautilus_file_get_type_as_string): Use gnome-mime
292         to get human-language descriptions based on the MIME
293         type.
294         (nautilus_file_is_executable): Fixed this function which
295         was reading info->flags instead of info->permissions. Now
296         the special executable icon appears much more often (though
297         we still don't know what it's supposed to be).
298         * src/file-manager/fm-error-reporting.c:
299         (fm_report_error_renaming_file): Use "directory" instead of
300         "folder" to match our terminology elsewhere.
301         * src/file-manager/fm-icon-text-window.c:
302         add "mime type" to list of choices of text that can appear
303         beneath icons (in addition to just plain "type", which is
304         the human-language one).
306 2000-04-11  Gene Z. Ragan  <gzr@eazel.com>
308         Requires new Bonobo.
310         * components/sample/nautilus-sample-content-view.c
311         Added icon data to BonoboUiHandler.  This is GdkPixbuf
312         data and demonstrates the pixbuf data features
313         added to bonobo ui handlers.
315         * libnautilus/nautilus-bookmark.c
316         bonobo_ui_handler_menu_new_item modified to take advantage
317         of new bonobo ui handler pixbuf functionality. Components and
318         menu items can now display pixbuf data.
319         Added nautilus_bookmark_get_pixbuf() routine.
321         * libnautilus/nautilus-bookmark.h
322         Added nautilus_bookmark_get_pixbuf() routine.
324         * src/nautilus-window-menus.c
325         bonobo_ui_handler_menu_new_item modified to take advantage
326         of new bonobo ui handler pixbuf functionality.
328 2000-04-11  Darin Adler  <darin@eazel.com>
330         Finished task 226 (Read metadata asynchronously instead of
331         synchronously).
333         Requires new GNOME VFS.
334         
335         * libnautilus/nautilus-directory-private.h:
336         * libnautilus/nautilus-directory.c:
337         * libnautilus/nautilus-directory.h:
338         Changed code to read and write metafiles async. Too many functions
339         modified for me to list here.
341         * libnautilus/nautilus-file-private.h:
342         * libnautilus/nautilus-file.c:
343         * libnautilus/nautilus-file.h:
344         (nautilus_file_changed), (nautilus_file_emit_changed),
345         (nautilus_file_get_metadata), (nautilus_file_set_metadata),
346         (nautilus_file_call_when_ready), (nautilus_file_cancel_callback):
347         Changes to NautilusFile so it can participate in the new.
348         
349         * components/notes/ntl-notes.c (notes_load_metainfo):
350         Fixed a bug in my recent changes where it would use a bad file
351         object when getting metadata.
352         
353         * src/file-manager/fm-directory-view.c (notes_load_metainfo):
354         Renamed "tags" to "keys".
356 2000-04-11  Andy Hertzfeld <andy@eazel.com>
357         
358         * components/rpmview/nautilus-rpmview.c:
359         added install, update and uninstall buttons to the package view,
360         that are shown/hidden based on the install state, but they don't
361         actually do anything yet.
362         
363 2000-04-11  Darin Adler  <darin@eazel.com>
365         Updated for new GdkPixbuf.
367         * HACKING: gnome-print must be built before bonobo.
368         * RENAMING: New renaming ideas.
369         * libnautilus/nautilus-graphic-effects.c (create_new_pixbuf),
370         (nautilus_create_spotlight_pixbuf),
371         (nautilus_create_darkened_pixbuf),
372         (nautilus_create_colorized_pixbuf),
373         (nautilus_make_semi_transparent): Updated for new GdkPixbuf.
374         * libnautilus/nautilus-icon-canvas-item.c (pixbuf_is_acceptable):
375         Updated for new GdkPixbuf.
376         * libnautilus/nautilus-icon-container.c (icon_get_actual_size):
377         Updated for new GdkPixbuf.
378         * libnautilus/nautilus-icon-factory.c
379         (nautilus_icon_factory_possibly_free_cached_image): Put in a
380         temporary hack that allows us to keep working until we get a
381         suitable feature in GdkPixbuf for implementing the cache. For now,
382         we don't free any pixbufs ever, so the cache grows unbounded.
383         (load_image_for_scaling), (load_image_scale_if_necessary):
384         (nautilus_icon_factory_make_thumbnails), Updated for new
385         GdkPixbuf.
386         * src/nautilus-index-title (nautilus_index_title_update_icon):
387         Updated for new GdkPixbuf.
388         
389 2000-04-11  Pavel Cisler <pavel@eazel.com>
391         * libnautilus/nautilus-icon-dnd.c:
392         * libnautilus/nautilus-icon-dnd.h:
393         (nautilus_icon_dnd_update_drop_target):
394         Determine if a drop target can accept drop, update highlight for
395         drop accordingly.
396         (nautilus_icon_dnd_update_drop_target):
397         Add drop highlighting for dragged items that can be accepted by a
398         drop target.
399         (nautilus_icon_canvas_item_can_accept_item):
400         Implement the call.
401         (nautilus_icon_canvas_item_can_accept_items):
402         Put a cap on the number of items checked as accepted by drop target
403         to not lock up the machine when dragging lots of items.
404         (nautilus_icon_dnd_modifier_based_action):
405         Tweak the modifier keys -- use Alt to force copy.
406                 
407         * libnautilus/nautilus-icon-container.c:
408         * libnautilus/nautilus-icon-container.h:
409         * src/file-manager/fm-directory-view.c:
410         * src/file-manager/fm-directory-view.h:
411         * src/file-manager/fm-icon-view.c:
412         (can_accept_item), (fm_directory_view_can_accept_item):
413         New signal -- helps figuring out if potential drop target can
414         accept dropped URIs. For now returns TRUE for any directory that
415         doesn't match the dragged item.
416         
417         * libnautilus/nautilus-icon-container.c:
418         (item_event_callback):
419         Support for turning the "highlight for drop" state of an icon on/off --
420         during drag&drop don't let the "enter notify" signal reach the canvas item
421         so that the item won't get prelit.
422         
423         * libnautilus/nautilus-icon-canvas-item.c:
424         (nautilus_icon_canvas_item_event):
425         Turn off highlight for drop as well as prelight on leave event.
426         This is a fallback in case the drag&drop for some reason leaves
427         the target icon highlighted for drop after a drag ends.
428         
429         * libnautilus/nautilus-gtk-extensions.c:
430         * libnautilus/nautilus-gtk-extensions.h:
431         (nautilus_gtk_marshal_INT__POINTER_POINTER):
432         Added another binder function.
433         
434         * libnautilus/nautilus-file.c:
435         * libnautilus/nautilus-file.h:
436         (nautilus_file_matches_uri): Added a utility call used to detect 
437         a drop on self.
438         
439 2000-04-10  Andy Hertzfeld <andy@eazel.com>
441         * components/rpmview/nautilus-rpmview.c:
442         made the package view determine if a package is installed or not and display
443         a message accordingly. Command buttons are coming soon.
444         
445 2000-04-10  Pavel Cisler <pavel@eazel.com>
446         Nasty hack to allow drag&drop actions to respond to modifier keys
447         and the drop context properly. This will one day get fixed by
448         adding proper hooks to Gtk+ and using them. For now we have to
449         do this.
451         * libnautilus/nautilus-icon-dnd.h:
452         * libnautilus/nautilus-icon-dnd.c:
453         (nautilus_icon_dnd_update_drop_action),
454         (nautilus_icon_dnd_modifier_based_action),
455         (nautilus_icon_dnd_get_event_actions),
456         (nautilus_icon_dnd_get_event_time),
457         (nautilus_icon_dnd_source_check_selection),
458         (nautilus_icon_dnd_update),
459         (nautilus_icon_drag_key_callback),
460         (nautilus_icon_dnd_begin_drag), (drag_drop_callback):
461         Pull in a bunch of code from gtkdnd.c. Add new call to
462         allow overriding drop actions based on modifiers and the drop 
463         context. Connect the "key_press_event" and "key_release_event"
464         to the copied code. All this to be able to call
465         nautilus_icon_dnd_get_event_actions instead of the broken
466         and private gtk_drag_get_event_actions.
467         I still have to add code to change the default action based
468         on the drop target between copy and move based whether the
469         source and drop containers are the same, etc.
471 2000-04-10  Andy Hertzfeld <andy@eazel.com>
473         * components/rpmview/nautilus-rpmview.c:
474         made the package view component display a scrolling list of the
475         constituent files in the package.
476         
477 2000-04-10  Darin Adler  <darin@eazel.com>
479         Finished changing all callers that use metadata to use it in a way
480         that is compatible with async. metadata reading.
482         * components/notes/ntl-notes.c:
483         (notes_load_metainfo): Changed to use nautilus_file_call_when_ready
484         to wait for the metadata. Also fixed a bug that was causing an assert
485         inside the call to gtk_editable_insert_text.
486         (main): Made warnings and criticals stop in the debugger.
488         * libnautilus/nautilus-directory.c:
489         * libnautilus/nautilus-directory.h:
490         (nautilus_directory_call_when_ready): Renamed the call to indicate
491         it can wait for more than just metadata. For now it does only wait
492         for metadata, though.
493         (nautilus_directory_cancel_callback): Renamed this too.
495         * libnautilus/nautilus-file.c:
496         (nautilus_file_call_when_ready), (nautilus_file_cancel_callback):
497         Made a corresponding call for the metadata of a single file.
499         * libnautilus/nautilus-gdk-extensions.c:
500         * src/nautilus-index-title.c:
501         Formatting changes.
503         * libnautilus/nautilus-metadata.h:
504         Clarified that ANNOTATION is a per-file piece of metadata.
506         * src/ntl-uri-map.c:
507         * src/file-manager/fm-directory-view.c:
508         Use new names of calls.
510         * src/file-manager/fm-icon-view.c:
511         * src/file-manager/fm-list-view.c:
512         Added comment.
514 2000-04-10  Andy Hertzfeld  <andy@eazel.com>
516         * src/nautilus-index-title.c:
517         fixed bug where multi-line titles in index panel would have a big
518         vertical gap.  Fixed by breaking out of the loop after it finds a
519         split point.  Also, removed an unneccesary justification call.
520         
521 2000-04-10  Andy Hertzfeld  <andy@eazel.com>
523         * components/services/startup/eazel-register.c:
524         added io ports to hardware configuration synopsis
525         
526 2000-04-10  John Sullivan  <sullivan@eazel.com>
528         Fixed bug 377 (clipping emblems in list view looks bad
529         and loses information)
531         * libnautilus/nautilus-list.c:
532         (draw_row): Made it draw the ellipsis character if there's
533         not enough room to show all emblems.
535 2000-04-10  John Sullivan  <sullivan@eazel.com>
537         * libnautilus/nautilus-list.c:
538         (nautilus_list_initialize_class), (nautilus_list_initialize),
539         (select_or_unselect_row_callback), (emit_selection_changed),
540         (select_range), (select_row), (select_row_from_mouse), 
541         (row_set_selected), (select_row_unselect_others), 
542         (nautilus_list_select_all), (nautilus_list_unselect_all), 
543         (nautilus_list_button_press), (nautilus_list_keyboard_move_to),
544         (nautilus_list_motion), (nautilus_list_set_selection):
545         Reworked selection such that the SELECTION_CHANGED signal is
546         emitted only once for every selection-affecting operation,
547         and never if the selection hasn't changed at all. This makes
548         such operations as Select All, switch-from-icon-view-with-lots-
549         selected, and arrow-key-to-end-of-list significantly faster.
551 2000-04-09  Andy Hertzfeld  <andy@eazel.com>
553         * components/services/startup/nautilus-service-startup-view.c:
554         now it saves the account token assigned by the service, and passes
555         it back in the header of subsequent requests
556         * libnautilus/nautilus-icon-factory.c:
557         fixed bug #293, thumbnails of thumbnails endlessly, by explicitly
558         testing for thumbnails of thumbnails as part of the criteria for
559         making them also, make a "snapshot" frame for thumbnails (task
560         295)
561         
562 2000-04-09  John Sullivan  <sullivan@eazel.com>
564         Finished task 307 (keyboard navigation in list view should
565         use same keys/behavior as in icon view). There are a few
566         minor bugs remaining that I'll write up separately.
568         * libnautilus/nautilus-list.c:
569         NautilusListDetails struct: added fields for
570         keyboard_row_to_reveal and keyboard_row_reveal_timer_id;
571         (nautilus_list_initialize_class): Removed key binding set for
572         this class (uses key_press_event function instead); used
573         gtk_binding_entry_clear to get rid of all the unwanted GtkCList
574         key bindings; wire up key_press_event function; wire up
575         destroy function
576         (nautilus_list_destroy): New function, destroy details struct
577         (this was storage leak) and clean up pending timer.
578         (nautilus_list_clear_keyboard_focus), (nautilus_list_set_keyboard_focus),
579         (nautilus_list_keyboard_move_to), (keyboard_row_reveal_timeout_callback),
580         (unschedule_keyboard_row_reveal), (schedule_keyboard_row_reveal),
581         (reveal_row), (nautilus_list_keyboard_navigation_key_press),
582         (nautilus_list_keyboard_home), (nautilus_list_keyboard_end), 
583         (nautilus_list_keyboard_up), (nautilus_list_keyboard_down), 
584         (nautilus_list_keyboard_page_up), (nautilus_list_keyboard_page_down), 
585         (nautilus_list_keyboard_space), (nautilus_list_activate_selected_items),
586         (nautilus_list_get_first_selected_row), 
587         (nautilus_list_get_last_selected_row), 
588         (nautilus_list_key_press): New functions, all the mechanism for
589         handling key presses similarly to NautilusIconContainer. Bonus
590         key handling for Page Up and Page Down.
591         (nautilus_list_move_focus_row), (scroll_vertical): Removed these
592         functions that were used by the GtkCList key bindings in favor of
593         nautilus_list_key_press and friends.
595 2000-04-07  Andy Hertzfeld  <andy@eazel.com>
597         * libnautilus/nautilus-icon-canvas-item.c:
598         inspired by John's list view underlining, the text beneath icons
599         is now underlined when the icon is pre-lit
600         
601 2000-04-07  John Sullivan  <sullivan@eazel.com>
603         Fixed bug Andy pointed out where list view "links" could
604         be activated by clicking in white space past the name.
605         Also started making changes in the direction of getting
606         keyboard selection working properly in list view (but
607         most of the work remains).
609         * libnautilus/nautilus-gdk-extensions.h,
610         * libnautilus/nautilus-gdk-extensions.c:
611         (nautilus_stipple_bitmap): New function, returns pointer to
612         static 50% stipple bitmap.
613         * libnautilus/nautilus-icon-cvanvas-item.c:
614         remove global stipple object;
615         (nautilus_icon_canvas_item_initialize_class): Remove initialization
616         of global stipple object.
617         (draw_or_measure_label_text), (draw_stretch_handles): Use
618         nautilus_stipple_bitmap () in lieu of global stipple object
619         in this file.
620         * libnautilus/nautilus-list.c:
621         (get_cell_horizontal_start_position): New function, extracted
622         from draw_row so I could use it elsewhere.
623         (nautilus_list_key): Removed function.
624         (nautilus_list_draw_focus): New function, draws keyboard-focussed
625         row with the same stipple outline used in icon view.
626         (nautilus_list_move_function_row): New function, copied & simplified
627         from GtkCList. Will probably rewrite entirely or eliminate very soon.
628         (nautilus_list_scroll_vertical): New function, copied & simplified
629         from GtkCList. Handles various keyboard commands, though not yet with
630         the behavior we actually want.
631         (nautilus_list_initialize_class): Begin to override and eliminate
632         GtkCList key bindings that we want to change. I've just started this
633         work -- all I've done so far is make space do nothing but Control-space
634         toggle the selection status of the keyboard-focussed row. I need to
635         go through and fix up all the bad inherited bindings. Also in this
636         function replace GtkCList's scroll_vertical and draw_focus function 
637         pointers, and removed the key_press_event and key_release_event
638         overrides that were deliberately preventing us from inheriting any
639         of GtkCList's keyboard behavior.
640         (nautilus_list_button_release): Only activate link-text if the click
641         is in the horizontal bounds of the text.
642         (draw_row) Use get_cell_horizontal_start_position that was extracted
643         from this function.
645 2000-04-07  Andy Hertzfeld  <andy@eazel.com>
647         * components/services/startup/nautilus-service-startup-view.c:
648         switched over to using Jonathan's prototype service, which is only
649         accessible from eazel's intranet for now. Registration now works with
650         the service.
651         
652         * libnautilus/nautilus-icon-canvas-item.c:
653         first, simple version of drag/swallow highliting - it just darkens the
654         icon and emboldens the text, exactly like selection highlighting.
655         Pavel's going to set the flag during dragging soon, so this will help
656         him see what he's doing.  Soon, we'll have a more elaborate approach.
657         
658 2000-04-06  Andy Hertzfeld  <andy@eazel.com>
660         * components/services/startup/nautilus-service-startup-view.c:
661         made configuration upload make the HTTP request and handle errors, but still not
662         quite finished, since it's not passing the cookie back yet.  Also, created a stub
663         summary page plus minor clean-ups
664         
665 2000-04-06  Pavel Cisler  <pavel@eazel.com>
667         * src/file-manager/dfos-xfer-progress-dialog.c:
668         * src/file-manager/dfos-xfer-progress-dialog.h:
669         (dfos_xfer_progress_dialog_new_file):
670         Pass in the current copied file index so that the progress
671         dialog doesn't need to get called for every file copied.
673         * src/file-manager/dfos-xfer.c:
674         (handle_xfer_vfs_error), (handle_xfer_overwrite),
675         (handle_xfer_duplicate), (handle_xfer_ok):
676         Add error handling with error alerts.
677         Add file overwrite alerts.
678         Fix up calling the progress to deal with not being
679         called for every single file.
681         * src/file-manager/dfos-xfer.c:
682         (dfos_xfer):
683         Fix a bug where the async job handle was not being set properly.
685         * src/file-manager/dfos-xfer.c:
686         * src/file-manager/dfos-xfer.h:
687         (file_operation_alert):
688         Utility alert call.
690         * src/file-manager/dfos-xfer.c:
691         * src/file-manager/dfos-xfer.h:
692         (fs_xfer):
693         New copy engine main entry.
695 2000-04-06  Andy Hertzfeld  <andy@eazel.com>
697         * components/services/startup/nautilus-service-startup-view.c:
698         more work to polish registration and implement configuration upload,
699         plus various clean-ups
700         
701 2000-04-06  John Sullivan  <sullivan@eazel.com>
703         Finished task 376 (Resolve single-click behavior)
705         * libnautilus/nautilus-gdk-extensions.h:
706         #defines for colors NAUTILUS_RGB_COLOR_RED, _GREEN,
707         _BLUE, _WHITE, and _BLACK.
708         * libnautilus/nautilus-gdk-extensions.c:
709         (nautilus_parse_rgb_with_white_default): Replaced
710         hard-wired numbers with these #defines.
712         * libnautilus/nautilus-list.h,
713         * libnautilus/nautilus-list.c:
714         added enum entry for NAUTILUS_CELL_LINK_TEXT;
715         (nautilus_list_mark_cell_as_link): New functions, converts
716         an ordinary text cell into a link-text cell.
717         (nautilus_list_button_release): Only activate link-text
718         cells on single click; other cells select as in other lists.
719         (draw_row): draw link-text cells with blue text and an
720         underline, so they look like typical web links.
721         (nautilus_list_set_cell_contents): Convert link-text cell
722         back to ordinary text cell before cleaning up old
723         contents so parent function will do the right thing.
725         * src/file-manager/fm-list-view.c:
726         (add_to_list): mark file name cell as link-text cell.
727         (remove_from_list): New function, extracted from...
728         (fm_list_view_file_changed): Followed Darin's advice on
729         how to simultaneously clarify this code and fix a 
730         storage leak.
732         For Darin, fixed a typo that caused every file to be
733         displayed as if it were a directory.
735         * src/ntl-uri-map.c:
736         (my_notify_when_ready): Added two missing "== 0"s.
738 2000-04-06  Maciej Stachowiak  <mjs@eazel.com>
740         * src/file-manager/fm-directory-view.c
741         (notify_selection_change_cb, display_pending_files): Add a boolean
742         field have_pending_uris_selected to distinguish the case where we
743         have _no_ pending selection from the case where we have an empty
744         one (in both cases, the pending_uris_selected field should be
745         NULL).
747 2000-04-06  Darin Adler  <darin@eazel.com>
749         Added the hooks needed to make metafile reading asynchronous.
750         Next I'll change the actual metafile access to work that way.
751         
752         * libnautilus/nautilus-directory.h:
753         * libnautilus/nautilus-directory.c:
754         (nautilus_directory_metadata_call_when_ready): Added function
755         that requests a read of some metadata and calls back when the
756         data is ready.
758         * src/ntl-app.c: (nautilus_app_startup): Got rid of call to
759         nautilus_navinfo_init.
761         * src/ntl-types.h: Moved the NautilusNavigationInfo struct
762         and related defines to ntl-uri-map.h.
764         * src/ntl-uri-map.h:
765         * src/ntl-uri-map.c:
766         Reformatted and changed the names of many functions.
767         Added code to use the new metadata callback.
768         
769         * src/ntl-index-panel.c:
770         * src/ntl-main.c:
771         * src/ntl-view.h:
772         * src/ntl-window-msgs.c:
773         * src/ntl-window.c:
774         * src/ntl-window.h:
775         Had to change includes a bit because of my changes to what
776         header files are including.
778         * src/ntl-window-msgs.c: (nautilus_window_update_state):
779         * src/ntl-window.h:
780         Use the new nautilus_navigation_info_cancel call instead of
781         reaching right in to cancel the underlying call.
783         * src/ntl-view-private.h:
784         Reformatting.
786 2000-04-06  Darin Adler  <darin@eazel.com>
788         * libnautilus/nautilus-directory-background.c:
789         (nautilus_connect_background_to_directory_metadata):
790         Fixed code that was trying to disconnect the handler from the
791         new directory, not the old one.
793 2000-04-06  John Sullivan  <sullivan@eazel.com>
795         * src/file-manager/fm-list-view.c:
796         (fm_list_view_file_changed): Only call nautilus_file_unref if
797         the file isn't gone. This cures some GTK-CRITICALS I ran into.
799         * src/file-manager/fm-properties-window.c:
800         (name_field_update): Renamed to name_field_update_to_match_file;
801         handle case where file name was changed elsewhere.
802         (create_properties_window): Hook up name_field_update_to_match_file
803         to get called when file changes externally.
804         (remove_properties_window_from_hash_table): New function.
805         (fm_properties_window_get_or_create): Use hash table so there's
806         only one Properties window per file. This was intended to be the
807         design but we forgot to implement it earlier.
809 2000-04-05  Andy Hertzfeld <andy@eazel.com>
811         * components/services/startup/nautilus-service-startup-view.c:
812         made the registration code display errors on various conditions; made it make an
813         HTTP request to the service cgi and give appropriate error feedback or move to
814         the configuration form if successful.  Disabled the registration button unless something
815         is typed into each field.
816         
817 2000-04-05  John Sullivan  <sullivan@eazel.com>
819         Fixed bug 394 (clicking Home button segfaults)
821         * src/ntl-window-msgs.c: (nautilus_window_update_internals):
822         Don't update Back list when the location hasn't actually
823         changed, since (A) it would be silly and (B) the code that 
824         sets up last_location_bookmark and current_location_bookmark
825         doesn't work right if you do.
827 2000-04-05  John Sullivan  <sullivan@eazel.com>
829         Some cleanups from the file-renaming checkin I did
830         yesterday. The largest change was making NautilusDirectory
831         send "files-changed" signal instead of "files-removed" 
832         signal when a file is removed. That way interested callers 
833         need register only for one signal. The callers can use 
834         nautilus_file_is_gone () to test whether the file was removed.
836         * libnautilus/nautilus-directory-private.h:
837         (nautilus_directory_files_removed): Removed function.
838         * libnautilus/nautilus-directory.h:
839         (files_removed): Removed signal definition, updated comments.
840         * libnautilus/nautilus-directory.c:
841         Removed FILES_REMOVED signal enum entry;
842         (nautilus_directory_initialize_class): Removed FILES_REMOVED
843         signal creation.
844         (nautilus_directory_files_removed): Removed function.
845         * libnautilus/nautilus-file.c:
846         (get_file_for_parent_directory): New private function.
847         (nautilus_file_can_rename): This function was quite broken in
848         its initial check-in. It worked only on a random basis. Now it
849         works quite a bit better. It should only return FALSE if it's
850         darn well sure that the user can't rename the file; it returns
851         TRUE even if it isn't sure, so clients must handle failed
852         renames (which they would have to anyway).
853         (nautilus_file_delete): Call nautilus_file_changed instead of
854         nautilus_directory_files_removed when file is deleted.
856         * src/file-manager/fm-directory-view.h:
857         (remove_file): Remove signal definition, update comments.
858         * src/file-manager/fm-directory-view.c:
859         remove REMOVE_FILE signal enum entry; 
860         remove files_removed_handler_id and pending_files_removed from
861         Details struct;
862         (fm_directory_view_initialize_class): remove REMOVE_FILE signal
863         initialization
864         (display_pending_files): remove "removed" case; made "changed"
865         case handle updating uri table; made "changed" case send signal
866         even if file is gone.
867         (files_removed_cb): Removed function.
868         (fm_directory_view_load_uri): removed connection to "files_removed"
869         signal
870         (disconnect_model_handlers): removed disconnect of files_removed_handler.
871         
872         * src/file-manager/fm-icon-view.c:
873         (fm_icon_view_remove_file): Removed function.
874         (fm_icon_view_initialize_class): Remove remove_file signal handler override.
875         (fm_icon_view_file_changed): check if file is gone and do what
876         fm_icon_view_remove_file used to do if so.
877         * src/file-manager/fm-list-view.c:
878         (fm_list_view_remove_file): Removed function.
879         (fm_list_view_initialize_class): Remove remove_file signal handler override.
880         (fm_list_view_file_changed): check if file is gone and do what
881         fm_list_view_remove_file used to do if so.
882         
883         * src/file-manager/fm-properties-window.c:
884         (properties_window_file_changed_callback): Don't update the window title 
885         if you just nuked the window -- Doh! Now the Properties window will 
886         vanish silently if the file is deleted.
888 2000-04-05  Darin Adler  <darin@eazel.com>
890         Improved the background handling code so more is shared.
891         There's even more we could do in this direction.
892         
893         * components/music/nautilus-music-view.c:
894         (nautilus_music_view_initialize): Got rid of redundant background
895         color initialization.
896         (nautilus_music_view_realize): Got rid of background color
897         initialization.
898         (nautilus_music_view_update_from_uri): Changed background color
899         handling to use new nautilus_directory_background calls.
900         (nautilus_music_view_background_changed): Not needed any more.
902         * components/notes/ntl-notes.c:
903         Did some cleanup and reformatting.
905         * libnautilus/Makefile.am:
906         * libnautilus/nautilus-directory-background.c:
907         * libnautilus/nautilus-directory-background.h:
908         Created a new file with functions that manage the background for
909         a window connected with a particular directory. Later we might
910         generalize it further to work for windows that are connected to
911         any URI, not just a directory.
913         * libnautilus/nautilus-directory.c:
914         * libnautilus/nautilus-directory.h:
915         Added a new "metdata_changed" signal so that the background can
916         be updated if the underlying data changes.
917         (nautilus_directory_initialize_class): Create the new signal.
918         (nautilus_directory_ref), (nautilus_directory_unref): Made these
919         functions quietly do nothing for NULL. This simplifies life for
920         callers.
921         (nautilus_directory_set_metadata): Emit the "metadata_changed"
922         signal.
924         * libnautilus/nautilus-file.c:
925         (nautilus_file_ref), (nautilus_file_unref): Made these
926         functions quietly do nothing for NULL. This simplifies life for
927         callers.
929         * libnautilus/nautilus-metadata.h:
930         Renamed all the constants to be consistent. Got rid of separate
931         constants for the icon view and list view backgrounds. Changed
932         some of the underlying XML tags as well.
934         * libnautilus/nautilus-icon-factory.c:
935         (nautilus_icon_factory_get_icon_for_file):
936         * src/nautilus-index-title.c: (nautilus_index_title_update_info):
937         * src/ntl-index-panel: (nautilus_index_panel_update_info),
938         (receive_dropped_uri_list),
939         (nautilus_index_panel_background_changed):
940         * src/ntl-uri-map.c: (set_initial_content_iid),
941         (add_components_from_metadata):
942         * src/ntl-window-msgs.c: (view_menu_switch_views_cb):
943         * src/file-manager/fm-icon-view.c: (add_icon_if_already_positioned),
944         (fm_icon_view_begin_loading), (fm_icon_view_set_zoom_level),
945         (fm_icon_view_icon_changed_callback):
946         * src/file-manager/fm-list-view.c: (fm_list_view_begin_loading),
947         (fm_list_view_set_zoom_level), (fm_list_view_sort_items):
948         Updated uses of metadata constants to use the new names.
950         * src/ntl-index-panel: (nautilus_index_panel_destroy),
951         (nautilus_index_panel_update_info):
952         * src/ntl-uri-map.c: (add_components_from_metadata):
953         * src/file-manager/fm-directory-view.c:
954         (fm_directory_view_destroy), (fm_directory_view_load_uri):
955         Used new nautilus_directory_unref to simplify code.
957         * src/ntl-uri-map.c: (set_initial_content_iid):
958         * src/ntl-window-msgs.c: (view_menu_switch_views_cb):
959         Added missing nautilus_directory_unref (storage leak).
961         * src/file-manager/fm-icon-view.c: (create_icon_container),
962         (fm_icon_view_background_changed_callback): Removed "changed"
963         signal handler on NautilusBackground since that's now handled
964         by the new nautilus_directory_background calls instead.
965         (fm_icon_view_begin_loading): Used nautilus_directory_background
966         to replace background customization code.
968         * src/file-manager/fm-icon-view.c: (fm_icon_view_get_zoom_level):
969         Fixed a bug where it would try to use view as an FMIconView after
970         the FM_IS_ICON_VIEW check failed.
972         * src/file-manager/fm-list-view.c: (create_list),
973         (fm_list_view_background_changed_callback): Removed "changed"
974         signal handler on NautilusBackground since that's now handled
975         by the new nautilus_directory_background calls instead.
976         (fm_list_view_begin_loading): Used nautilus_directory_background
977         to replace background customization code.
979 2000-04-05  John Sullivan  <sullivan@eazel.com>
981         Fixed bug in Ramiro's recent checkin that broke booting
982         if the icon theme had never been set.
984         * libnautilus/nautilus-icon-factory.c:
985         (nautilus_icon_factory_initialize_class),
986         (nautilus_get_current_icon_factory): Moved theme initialization
987         from the former to the latter, because theme needs to be non-NULL
988         before initialize_class is called.
990 2000-04-05  Darin Adler  <darin@eazel.com>
992         * components/services/startup/eazel-register.c:
993         (add_package_info):
994         * libnautilus/nautilus-file-utilities.c:
995         (nautilus_user_top_directory):
996         * libnautilus/nautilus-global_preferences.c:
997         (global_preferences_get_dialog):
998         * libnautilus/nautilus-icon-factory.c:
999         (nautilus_icon_factory_get_thumbnail_uri):
1000         Removed unnecessary \n characters from g_warning, g_error, and
1001         g_message calls.
1003         * components/html/ntl-web-browser.c (browser_url_load_done):
1004         Ettore says we should stop calling gtk_html_private_calc_scrollbars
1005         and if it causes any problems then it's just a bug in GtkHTML
1006         that should be fixed,.
1008         * src/ntl-window-msgs.c:
1009         Reformatted the code as a first step for some changes
1010         that will make the state machine easier to understand.
1012 2000-04-05  Ramiro Estrugo  <ramiro@eazel.com>
1014         Preferences work.  Make preference registration implicit.
1016         * nautilus-widgets/nautilus-preferences.c,
1017           nautilus-widgets/nautilus-preferences.h: 
1018         (prefs_hash_lookup_with_implicit_registration): New function to do
1019         preference lookup with implicit registration.  If the pref is not
1020         found at first, it will be automatically added.
1022         (preference_get): Replace the old badly named prefs_get_pref with
1023         something simpler.
1025         (preference_set): Same here.
1027         (nautilus_preferences_set_info): Add a function that allows
1028         tweaking the default values and other info for a pref.
1029         
1030         (nautilus_preferences_add_enum_callback):
1031         (nautilus_preferences_add_boolean_callback):
1032         (nautilus_preferences_add_string_callback): New callback adding
1033         functions that work with implicit registration.  The caller needs
1034         to know the type of preference they want to munge beforehand for
1035         the implicit registration to work.
1037         Also cleanup a bunch bucnhsome of style issues.
1039         * nautilus-widgets/test-nautilus-widgets.c:
1040         Update for all the pref changes.
1042         * libnautilus/nautilus-global-preferences.c,
1043           libnautilus/nautilus-global-preferences.h:
1044         (global_preferences_register_for_ui): Add a new private function
1045         to register only preferences used in the pref dialog ui.
1047         (global_preferences_static_info): Remove 
1048         NAUTILUS_PREFERENCES_ICON_VIEW_TEXT_ATTRIBUTE_NAMES and
1049         NAUTILUS_PREFERENCES_ICON_THEME since they dont have a ui and can
1050         be used implicitly.
1052         (nautilus_global_preferences_initialize): Removed. 
1054         * libnautilus/nautilus-icon-factory.c:
1055         (icon_theme_changed_callback): Doesnt take a type paramater no
1056         more.
1057         
1058         (nautilus_get_current_icon_factory): Remove the global preferences
1059         initialization code and blurb.  Not needed since prefs are
1060         registered implicitly as needed.  Use
1061         nautilus_preferences_add_string_callback instead of obsolete
1062         nautilus_preferences_add_callback.
1064         (nautilus_icon_factory_initialize_class):  Add a preferences call
1065         to set the default value for the ICON_THEME string.
1066         We might want to change things such that no default has to be installed
1067         for this preference.  If so, then the code that fetches the preference
1068         would have to deal with either a NULL return value (or "").
1070         * src/ntl-app.c:
1071         (nautilus_app_startup): Remove global preferences initialization
1072         call.
1074         * src/file-manager/fm-directory-view.c:
1075         (user_level_changed_callback): 
1076         (use_new_window_changed_callback): Callbacks dont take a
1077         preference type argument no more.
1079         (fm_directory_view_initialize): Use 
1080         nautilus_preferences_add_{enum,boolean}_callback instead of obsolete
1081         nautilus_preferences_add_callback.
1083         * src/file-manager/fm-icon-text-window.c:
1084         (preference_changed_callback): Doesnt take a type paramater no
1085         more.
1087         (create_icon_text_window): Use 
1088         nautilus_preferences_add_string_callback instead of obsolete
1089         nautilus_preferences_add_callback.
1091         * src/file-manager/fm-icon-view.c:
1092         (text_attribute_names_changed_callback): Doesnt take a type paramater no
1093         more.
1095         (fm_icon_view_initialize_class): Add a preferences call
1096         to set the default value for the ICON_VIEW_TEXT_ATTRIBUTE_NAMES string.
1097         We might want to change things such that no default has to be installed
1098         for this preference.  If so, then the code that fetches the preference
1099         would have to deal with either a NULL return value (or "").
1100         
1101 2000-04-05  Andy Hertzfeld <andy@eazel.com>
1103         * components/services/startup/nautilus-service-startup-view.c:
1104         made the register button make an HTTP request to the service using ghttp.
1105         * components/services/startup/Makefile.am:
1106         made the component link with lghttp
1107         
1108 2000-04-04  Maciej Stachowiak  <mjs@eazel.com>
1110         Make selection persistent across content view changes (task 105). 
1112         * src/file-manager/fm-directory-view.c,
1113         src/file-manager/fm-directory-view.h
1114         (fm_directory_view_set_selection): New function.
1115         (set_selection): New virtual method that must by implemented by
1116         subclasses.
1117         (add_nautilus_file_to_uri_map, remove_nautilus_file_from_uri_map,
1118         free_file_by_uri_map_entry, free_file_by_uri_map): New functions
1119         to manage a hash table mapping from uri strings to NautilusFile
1120         objects.
1121         (notify_selection_change_cb): New function; on a selection change
1122         notification, either set the selection immediately if the view has
1123         completed loading, or establish it as pending.
1124         (display_pending_files): Maintain the uri -> file hash table on
1125         notifications from the model; do any pending selections required
1126         when loading completes.
1127         
1128         * src/file-manager/fm-list-view.c (fm_list_view_set_selection):
1129         New function to implement `set_selection' virtual method.
1131         * src/file-manager/fm-icon-view.c (fm_icon_view_set_selection):
1132         New function to implement `set_selection' virtual method.
1134         * libnautilus/nautilus-list.c (nautilus_list_set_selection): New
1135         function: set the selection to a specified set of rows.
1137         * libnautilus/nautilus-icon-container.c,
1138         libnautilus/nautilus-icon-container.h
1139         (nautilus_icon_container_set_selection): New function: set the
1140         selection to a specified set of icons.
1142 2000-04-04  Andy Hertzfeld <andy@eazel.com>
1144         * components/services/startup/nautilus-service-startup-view.c:
1145         changed the account name field to e-mail address; make the submit
1146         button initially insensitive; turned off the visibility property of
1147         the gtk_entry objects used for passwords
1148                 
1149 2000-04-04  Ramiro Estrugo  <ramiro@eazel.com>
1151         * components/services/startup/nautilus-service-startup-view.c:
1152         (register_later_cb): Fix cast for stricter -Werror compliance.
1153         
1154 2000-04-04  Darin Adler  <darin@eazel.com>
1156         Finished task 54 (Set background image by drag/drop).
1157         Fixed bug 346 (Bad icon positions when you change user level).
1158         Fixed bug 372 (Better icons for common file types).
1160         * libnautilus/nautilus-background-canvas-group.c:
1161         (nautilus_background_canvas_group_draw): Got rid of the colormap
1162         which is not needed now that we use gtk_rgb instead of gtk_color
1163         calls. Passed in the corner of the canvas as a parameter to
1164         nautilus_background_draw so it knows where the origin of any
1165         repeating pattern should be.
1166         * libnautilus/nautilus-background.h:
1167         * libnautilus/nautilus-background.c: (nautilus_background_draw):
1168         Added parameters to determine where the origin of any repeating
1169         pattern should be. Removed colormap parameter (see above).
1170         (nautilus_background_draw_flat_box): Passed in origin parameters
1171         in call to nautilus_background_draw.
1172         * libnautilus/nautilus-gdk-extensions.h:
1173         * libnautilus/nautilus-gdk-extensions.c:
1174         (nautilus_fill_rectangle_with_gradient): Removed colormap
1175         parameter (see above).
1176         * libnautilus/nautilus-gdk-pixbuf-extensions.c:
1177         (nautilus_gdk_pixbuf_render_to_drawable_tiled): Fixed the tiling
1178         so it will use the dither parameters to set the origin of the
1179         tiles as well.
1181         * libnautilus/nautilus-icon-dnd.c: (receive_dropped_tile_image),
1182         (nautilus_icon_container_receive_dropped_icons): Added code so that
1183         dropping an image file on the window with the shift key held down
1184         will customize the background tile image.
1186         * libnautilus/nautilus-icon-factory.c: (make_full_icon_path),
1187         (get_themed_icon_file_path): Fixed two bugs that prevented
1188         MIME-type-based icons from working correctly. First, got rid of
1189         code that tried to prepend the theme name and "nautilus/" to the
1190         beginning of a full path. Then made sure that it tries the file
1191         name without adding a suffix before it starts trying out suffixes.
1193         * libnautilus/nautilus-icon-grid.c: (nautilus_icon_grid_clear):
1194         Fixed bug where clearing the grid was resetting the visible width.
1195         
1196         * components/sample/Makefile.am:
1197         * components/services/startup/Makefile.am:
1198         Turned on -Werror for these two directories.
1199         * components/sample/nautilus-sample-content-view.h:
1200         * components/sample/nautilus-sample-content-view.c:
1201         (nautilus_sample_content_view_destroy), (bonobo_sample_callback):
1202         Fixed warnings and did some small cleanup.
1204 2000-04-04  John Sullivan <sullivan@eazel.com>
1206         Renaming a file from its Set Properties dialog now works, though
1207         there are various odds and ends I still need to clean up. 
1208         It turned out (surprise!) that there was a lot of 
1209         underpinnings work involved in implementing this feature.
1210         Fortunately most of it will be shared by rename-in-place.
1211         
1212         * libnautilus/nautilus-directory-private.h:
1213         add #define for METADATA_NODE_NAME_FOR_FILE_NAME
1214         * libnautilus/nautilus-directory.c:
1215         (nautilus_directory_get_file_metadata_node): Use 
1216         METADATA_NODE_NAME_FOR_FILE_NAME #define
1217         (nautilus_directory_set_file_metadata): Use g_return_val_if_fail
1218         to prevent callers from changing the file name this way, since
1219         that wouldn't work right.
1220         
1221         * libnautilus/nautilus-file.h:
1222         * libnautilus/nautilus-file.c:
1223         (nautilus_file_can_rename): New function, returns TRUE if the
1224         user has write permission for this file.
1225         (nautilus_file_rename): New function, uses gnome_vfs_move to
1226         try to rename the file, updating metadata as appropriate.
1227         Returns the GnomeVFSResult from gnome_vfs_move.
1228         
1229         * libnautilus/nautilus-list.c
1230         (row_selected): Renamed this formerly private function to
1231         nautilus_list_is_row_selected and made it check its parameters
1232         more carefully.
1233         * libnautilus/nautilus-list.h:
1234         (nautilus_list_is_row_selected): Made this public.
1235         
1236         * src/file-manager/fm-error-reporting.c,
1237         * src/file-manager/fm-error-reporting.h: New files, home for
1238         UI code to display user error messages and such. It's initial
1239         occupant is:
1240         (fm_report_error_renaming_file): New function, puts up a non-modal
1241         alert reporting the renaming failure.
1242         * src/file-manager/Makefile.am: Add these two new files to the build.
1244         * src/file-manager/fm-directory-view.c:
1245         (bonobo_menu_open_properties_window_cb): New function, opens a
1246         Properties window for each selected item using the Bonobo callback API.
1247         (fm_directory_view_real_merge_menus): Include Set Properties item in
1248         File menu, and rearrange other items a little.
1249         (fm_directory_view_real_update_menus): Update sensitivity of Set
1250         Properties menu item.
1251         
1252         * src/file-manager/fm-list-view.c:
1253         (add_to_list): Return the new row index.
1254         (fm_list_view_file_changed): Remove and reinsert the changed file; this
1255         not only does less sorting but also recomputes all the text so name
1256         changes will be displayed.
1257         
1258         * src/file-manager/fm-properties-window.c:
1259         (get_pixmap_and_mask_for_properties_window),
1260         (update_properties_window_icon),
1261         (create_pixmap_widget_for_file),
1262         (name_field_done_editing),
1263         (name_field_update),
1264         (update_properties_window_title),
1265         (properties_window_file_changed_callback):
1266         New functions used to wire up the new editable name field
1267         and new icon pixmap widget in the properties window.
1268         (create_properties_window): Added notebook tabs, first
1269         one is Basic and currently contains icon & name; second
1270         is Emblems and has all those checkboxes. Use all the
1271         new functions to create and wire up things so that name
1272         changes & icon changes are propagated and reflected correctly.
1274         * src/nautilus-bookmarks-window.c:
1275         (create_bookmarks_window): Removed a bunch of unnecessary
1276         and leak-causing gtk_widget_refs that I happened to notice
1277         in here. I left these behind when modifying code originally
1278         created by glade, where the refs are necessary.
1280 2000-04-04  Andy Hertzfeld <andy@eazel.com>
1282         * components.services/startup/nautilus-service-startup-view.c:
1283         more work on the registration and configuration form
1284         
1285 2000-04-04  Andy Hertzfeld <andy@eazel.com>
1287         * src/ntl=window-msgs.c:
1288         fixed bug where it was allocating a uri for a null string by only
1289         trying the actual_uri if it's non-null
1290         * components.services/startup/nautilus-service-startup-view.c:
1291         more work on the registration form
1292         
1293 2000-04-03  Andy Hertzfeld <andy@eazel.com>
1295         more work on the service component
1296         
1297         * components.services/startup/nautilus-service-startup-view.h:
1298         changed it to inherit from eventbox so it can have a background
1299         * components.services/startup/nautilus-service-startup-view.c:
1300         restructured code for displaying multiple forms
1301         made it use a Nautilus background
1302         added test form, registration form and configuration form placeholders
1303         added most of configuration form
1304         * icons/eazel-logo.gif: added Eazel logo image
1305         * icons/Makefile.am: added Eazel logo to Makefile
1307 2000-04-03  Andy Hertzfeld <andy@eazel.com>
1309         added configuration inventory to nascent service component.  This only
1310         builds if --enable-eazel-services is set
1311         
1312         * components/services/startup/Makefile.am:
1313         added eazel-register.c,h to the build
1314         * components/services/startup/eazel-register.c,h:
1315         contains to build an xml file that expresses the hardware and software
1316         configuration, using the package database and the proc filesystem.
1317         * components/services/startup/nautilus-service-startup-view.c:
1318         added a button to generate the configuration inventory file in the
1319         user's home directory.  This is temporary scaffolding and will be
1320         replaced soon.
1321         * src/ntl-uri-map.c:
1322         made it invoke the service component for uri's starting with "eazel:";
1323         also, fixed a bug where an uninitialized variable was being freed.
1324         * nautilus-clean.sh:
1325         added the rpm view to the list of cleaned components.
1326                 
1327 2000-04-03  Darin Adler  <darin@eazel.com>
1329         First cut at tiled background images.
1331         There's no UI for setting them yet, they are only in
1332         the icon view, and they don't work properly with scrolling yet.
1334         * libnautilus/Makefile.am:
1335         * libnautilus/nautilus-gdk-extensions.c:
1336         * libnautilus/nautilus-gdk-extensions.h:
1337         * libnautilus/nautilus-gdk-pixbuf-extensions.c:
1338         * libnautilus/nautilus-gdk-pixbuf-extensions.h:
1339         Split the GdkPixbuf stuff into its own file.
1341         * libnautilus/nautilus-background.c:
1342         (nautilus_background_destroy): Fixed a bunch of leaks
1343         and added new code to stop pixbuf loading.
1344         (nautilus_background_draw): Added call to draw tiled
1345         background image. Converted gradients to use gdk_rgb
1346         instead of gdk_color.
1347         (nautilus_background_get_tile_image_uri): Implemented.
1348         (nautilus_background_set_color): Added short-circuit
1349         for background image case.
1350         (load_image_callback),
1351         (nautilus_background_set_tile_image_uri): Implemented.
1352         Include code to load in the tiled image when its URI is set.
1353         (nautilus_background_receive_dropped_color): Set the
1354         tile image to NULL when a color is dropped.
1356         * libnautilus/nautilus-gdk-extensions.c:
1357         * libnautilus/nautilus-gdk-extensions.h:
1358         (nautilus_fill_rectangle_with_color),
1359         (nautilus_fill_rectangle_with_color),
1360         (nautilus_interpolate_color): Changed from gdk_color
1361         to gdk_rgb.
1362         (nautilus_parse_rgb_with_white_default): Added function
1363         for gdk_rgb similar to what we already have for gdk_color.
1365         * libnautilus/nautilus-icon-canvas-item.c:
1366         * libnautilus/nautilus-icon-container.c:
1367         * libnautilus/nautilus-list.c:
1368         Use gdk-pixbuf extensions in new location.
1370         * libnautilus/nautilus-metadata.h:
1371         Added metadata keys for background images.
1373         * src/ntl-view.c:
1374         Added lots of stronger checks for NAUTILUS_IS_VIEW since
1375         this is where we run into trouble with a bug I ran into.
1377         * src/file-manager/icon-view.c: Added code to handle
1378         the new background images.
1379         (create_icon_container): Keep around the handler ID when
1380         connecting to the "changed" message of the background so
1381         we can block the handler as needed.
1382         (fm_icon_view_begin_loading): Load the background image
1383         as well as the background color. We need to block the
1384         background changed signal handler so we don't get
1385         confused while the color but not the image is set up.
1386         (fm_icon_view_background_changed_callback): Save the
1387         background image URI as well as the background color in
1388         the metadata.
1390 2000-04-03  Darin Adler  <darin@eazel.com>
1392         Fix the build. Changes in GtkHtml and Bonobo required us
1393         to catch up.
1395         * libnautilus/ntl-meta-view-frame.h:
1396         * libnautilus/ntl-meta-view-frame.c:
1397         Rewrote to use the new property bag. This requires us to
1398         store our own properties, since the bag no longer provides
1399         any storage.
1400         (nautilus_meta_view_frame_initialize): Set up the label.
1401         (nautilus_meta_view_frame_new_from_bonobo_control): Make it
1402         actually take a BonoboControl instead of a BonoboObject and
1403         make it set up the property bag.
1404         (nautilus_meta_view_destroy): Free the label.
1405         (autilus_meta_view_frame_set_label): Just set the label.
1406         The property bag simply uses our stored label.
1408         * components/html/ntl-web-browser.c (browser_url_load_gone):
1409         Changed call to match name in new version of GtkHtml.
1410         Unfortunately, the new name makes it clear the call is
1411         intended to be private.
1413         * components/rpmview/.cvsignore: Ignore the actual binary,
1414         not nautilus-music-view.
1415         * components/rpmview/Makefile.am: Turned on -Werror.
1416         * components/music/Makefile.am: Turned on -Werror.
1417         * components/rpmview/nautilus-rpm-view.c: Fixed warnings.
1419 2000-04-02  Andy Hertzfeld <andy@eazel.com>
1421         Added a first cut at a component for viewing rpm packages.
1422         
1423         * configure.in: added components/rpmview
1424         * components/Makefile.am: added rpmview
1425         * components/rpmview/.cvsignore: new file
1426         * components/rpmview/Makefile.am: make file for rpm view
1427         * components/rpmview/main.c: boilerplate factory, main loop for component
1428         * components/rpmview/nautilus-rpm-view.h: defines for rpm view component
1429         * components/rpmview/nautilus-rpm-view.goad: goad record for activating rpmview component
1430         * components/rpmview/nautilus-rpm-view.c: here's the actual code for the component,
1431         which reads a package with rpm and sets up the fields in the view from the data
1432         * src/ntl-uri-map.c: modified mapping so rpms get this component added
1433         
1434 2000-04-01  Ramiro Estrugo  <ramiro@eazel.com>
1436         Add a conditionally built skeleton for a startup service.
1437         
1438         * configure.in: Properly define EAZEL_SERVICES with an
1439         AM_CONDITIONAL.  Add new directories components/services
1440         components/srevices/startup.
1442         * components/Makefile.am: Recurse into services dir if needed.
1444         * components/services, components/services/startup: new dirs.
1446         * components/services/nautilus-service-startup-view.c,
1447           components/services/nautilus-service-startup-view.h,
1448           components/services/nautilus-service-startup-view.goad,
1449           components/services/Makefile.am,
1450           components/services/.cvsignore:
1452         Skeleton code for startup service.
1453         
1454 2000-03-31  Pavel Cisler  <pavel@eazel.com>
1456         * libnautilus/nautilus-icon-container.c:
1457         (motion_nofity_event):
1458         Disable copy as a drag&drop operation for now. The current
1459         copy engine doesn't handle conflicts properly yet and can
1460         erase your files.
1463 2000-03-31  Darin Adler  <darin@eazel.com>
1465         Fixed a bug that Pavel reported where he got a crash in
1466         nautilus_directory_monitor_files_unref when he pushed the
1467         "Up" button.
1469         * libnautilus/nautilus-glib-extensions.c:
1470         * libnautilus/nautilus-glib-extensions.h:
1471         (nautilus_g_strv_find): Renamed the existing function
1472         nautilus_g_strfindv to be more consistent with the rest
1473         of glib, even though it's less consistent with the other
1474         strv functions.
1475         (nautilus_g_list_safe_for_each): Added an alternate
1476         version of g_list_foreach that works even when the current
1477         item is removed from the list inside the function.
1479         * libnautilus/nautilus-gtk-extensions.c:
1480         (nautilus_gtk_object_list_unref): Use the new safe version
1481         of g_list_foreach so this works even on lists where the
1482         objects remove themselves in their destroy/finalize methods.
1483         This is the change that fixes the bug.
1485         * src/nautilus-bookmark-list.c:
1486         (nautilus_bookmark_list_load_file): Replaced some explicit
1487         code with a call to nautilus_gtk_object_list_free.
1489         * src/nautilus-index-title.c:
1490         (nautilus_index_title_update_icon): Fixed a bug that would
1491         prevent you from viewing the root level. The current version
1492         of nautilus_file_get returns NULL for the root.
1494         * src/nautilus-window-menus.c:
1495         (clear_appended_bookmark_items): Replaced some explicit
1496         code with a call to nautilus_g_list_free_deep.
1498         * src/file-manager/fm-icon-text-window.c:
1499         (synch_menus_with_preference): Updated to use the
1500         nautilus_g_strv_find call by its new name.
1502         * libnautilus/nautilus-file.c:
1503         (nautilus_file_set_keywords): Did some minor tweaks to
1504         simplify the no-keywords case.
1506 2000-03-30  John Sullivan <sullivan@eazel.com>
1508         Finished task 172 (show icon emblems in list view)
1510         * libnautilus/nautilus-file.h:
1511         added NAUTILUS_FILE_SORT_BY_EMBLEMS to enum
1512         (nautilus_file_get_emblem_names): New function.
1513         * libnautilus/nautilus-file.c:
1514         (nautilus_file_get_emblem_names): New function.
1515         (nautilus_file_compare_by_emblems): New function,
1516         compares the emblems of two files for sorting.
1517         (compare_emblem_names): New function, compares two
1518         emblem names for sorting.
1519         (nautilus_file_compare_for_sort_internal): handle
1520         NAUTILUS_FILE_SORT_BY_EMBLEMS case
1521         (sort_keyword_list_and_remove_duplicates): New function,
1522         canonicalizes (canonifies? canonizes?) a list of keywords.
1523         (nautilus_file_get_keywords): canonicalize list after
1524         reading from file.
1525         (nautilus_file_set_keywords): canonicalize copy of list
1526         before storing.
1528         * libnautilus/nautilus-icon-factory.c:
1529         (nautilus_icon_factory_get_emblem_icons_for_file): Use
1530         nautilus_file_get_emblem_names instead of having emblem
1531         name knowledge here.
1532         
1533         * libnautilus/nautilus-list.h: 
1534         NautilusCellType: new enum, a superset of GtkCellType that
1535         we use to sneak in new values.
1536         NautilusCellPixbufList: new struct, our new type of content
1537         for a list cell.
1538         (nautilus_list_set_pixbuf_list): New function.
1539         * libnautilus/nautilus-list.c:
1540         (nautilus_list_set_cell_contents): New function, handles the
1541         NAUTILUS_CELL_PIXBUF_LIST case and lets GtkCList continue
1542         handling the others.
1543         (nautilus_list_initialize_class): Fill in set_cell_contents
1544         function pointer with nautilus_list_set_cell_contents.
1545         (gdk_window_size_as_rectangle): New helper function.
1546         (draw_cell_pixmap): Removed width & height parameters (now
1547         calculated internally) and reworked to use GdkRectangle math.
1548         (draw_cell_pixbuf): New function, modelled after (new & improved)
1549         draw_cell_pixmap but draws a gdk_pixbuf directly.
1550         (draw_row): handle the NAUTILUS_CELL_PIXBUF_LIST case; fix up
1551         callers to draw_cell_pixmap; use NautilusCellType instead of
1552         GtkCellType.
1553         (nautilus_list_set_pixbuf_list): New function, sneaks a list
1554         of pixbufs into the ugly GtkCell data structure.
1555         
1556         * src/file-manager/fm-list-view.c:
1557         (fm_list_view_reset_row_height): New function, sets the row height
1558         based on zoom level but with a minimum to avoid clipping emblems.
1559         (fm_list_view_get_emblem_pixbufs_for_file): create list of
1560         appropriately-sized emblem images. Size is based on zoom level
1561         but has a minimum so the emblems don't get illegibly small.
1562         (install_icons): Rename to install_row_images; handle setting
1563         the list of emblems into the list widget.
1564         (create_list): include column for emblems between icon & name;
1565         set row height only after other widget manipulations.
1566         (add_to_list), (update_icons): reflect install_icons name change.
1567         (fm_list_view_file_changed): reflect install_icons name change;
1568         sort list since changed file might change sort order. (No API
1569         to resort just one row; I added a comment about that in case
1570         we want to revisit it someday.)
1571         (fm_list_view_set_zoom_level): call fm_list_view_reset_row_height.
1572         (get_attribute_from_column), (get_column_from_attribute),
1573         (sort_criterion_from_column): handle LIST_VIEW_COLUMN_EMBLEMS
1575 2000-03-30  Darin Adler  <darin@eazel.com>
1577         Finished task 62 (Set custom icon by drag/drop on index panel)
1578         and fixed some problems from my earlier check-ins today.
1580         * libnautilus/nautilus-directory.c:
1581         (nautilus_directory_monitor_files_ref):
1582         Fixed a bad assert from my last check-in.
1584         * src/file-manager/fm-list-view.c: (add_to_list):
1585         The list view had the same missing ref that I fixed for icon
1586         view in my last check-in.
1587         
1588         * src/nautilus-index-title.c: (release_file),
1589         (nautilus_index_title_destroy),
1590         (nautilus_index_title_update_icon),
1591         (nautilus_index_title_update_label),
1592         (nautilus_index_title_update_info),
1593         (nautilus_index_title_set_uri): Changed to hold around the
1594         NautilusFile object and connect to its "changed" message to update
1595         the file information. This causes the icon to get updated right
1596         away when the custom icon is changed.
1598         * libnautilus/nautilus-directory-private.h:
1599         * libnautilus/nautilus-directory.c:
1600         * libnautilus/nautilus-file-private.h:
1601         * libnautilus/nautilus-file.c:
1602         * libnautilus/nautilus-file.h:
1603         Converted NautilusFile to be a GtkObject instead of a plain struct,
1604         so it can have a "changed" signal. We still recommend using the
1605         "files_changed" signal on the directory to avoid the overhead
1606         of a signal connection for each file.
1608         * libnautilus/nautilus-gtk-extensions.c:
1609         * libnautilus/nautilus-gtk-extensions.h:
1610         (nautilus_gtk_object_list_ref), (nautilus_gtk_object_list_unref),
1611         (nautilus_gtk_object_list_free): Added some functions to be used
1612         with a list of GtkObjects.
1614         * libnautilus/nautilus-icon-factory.c:
1615         (nautilus_icon_factory_get_icon_name_for_file):
1616         Had to change the name of nautilus_file_get_type to avoid conflict
1617         with the GtkObject standard get_type routine.
1619 2000-03-30  Darin Adler  <darin@eazel.com>
1621         * src/file-manager/fm-icon-view.c: (add_icon_if_already_positioned),
1622         (add_icon_at_free_position): Added missing ref that caused very bad
1623         things to happen now that the file ref. counts are working.
1625         * components/music/nautilus-music-view.c:
1626         Did a bunch of cleanup and fixed some memory trashing bugs where
1627         the result of g_basename was passed to g_free.
1629 2000-03-30  Darin Adler  <darin@eazel.com>
1631         * libnautilus/nautilus-directory.c:
1632         * libnautilus/nautilus-directory.h:
1633         (nautilus_directory_ref), (nautilus_directory_unref):
1634         Added convenience functions so people don't have to be constantly
1635         reminded that a NautilusDirectory is a a GtkObject.
1637         * libnautilus/nautilus-directory.c: (nautilus_directory_destroy):
1638         Fixed a problem where the pending files callback might fire after
1639         the NautilusDirectory is gone.
1640         
1641         * libnautilus/nautilus-directory.c:
1642         (nautilus_directory_destroy),
1643         (nautilus_directory_monitor_files_ref),
1644         (nautilus_directory_monitor_files_unref),
1645         (dequeue_pending_idle_callback), (nautilus_directory_new_file):
1646         * libnautilus/nautilus-file-private.h:
1647         * libnautilus/nautilus-file.c:
1648         (nautilus_file_get), (nautilus_file_ref), (nautilus_file_unref),
1649         (nautilus_file_free), (nautilus_file_delete):
1650         To prepare for changing NautilusFile to a GtkObject, made it use
1651         ref counts in a way that is standard. Now the directory keeps a
1652         list of the files, but only keeps a ref to the files if it is
1653         monitoring them.
1655         * src/file-manager/fm-directory-view.c: Tiny formatting tweak.
1657 2000-03-30  Andy Hertzfeld <andy@eazel.com>
1659         * libnautilus/nautilus-icon-container.c:
1660         make the icon selection rectangle have a semi-transparent light blue
1661         fill color.
1662         * libnautilus/nautilus-icon-canvas-item.c:
1663         tweaked the selection darkening to be a little bit lighter.
1664         
1665 2000-03-30  Pavel Cisler  <pavel@eazel.com>
1667         More copy/move operations. Fixes a problem I introduced earlier where
1668         drop onto a file would lock up Nautilus.
1669         
1670         * libnautilus/nautilus-gtk-extensions.c:
1671         * libnautilus/nautilus-gtk-extensions.h:
1672         (nautilus_gtk_marshal_NONE__POINTER_POINTER_POINTER_INT_INT_INT):
1673         Add more binder glue that I needed.
1675         * libnautilus/nautilus-icon-container.c:
1676         (motion_notify_event):
1677         Enable move/copy modes during drag/drop.
1679         * libnautilus/nautilus-icon-container.c:
1680         * libnautilus/nautilus-icon-container.h:
1681         * libnautilus/nautilus-icon-dnd.c:
1682         * src/file-manager/fm-directory-view.c:
1683         * src/file-manager/fm-directory-view.h:
1684         (move_copy_items):
1685         Pass in a list of point offsets to allow placing new item in
1686         the right relative position.
1688         * src/file-manager/fm-directory-view.c:
1689         (xfer_callback):
1690         Don't loop forever during a conflict.
1692 2000-03-30  Maciej Stachowiak  <mjs@eazel.com>
1694         * components/sample/main.c (sample_make_object): Connect to the
1695         "destroy" signal of the view_frame rather than the sample content
1696         view object, to avoid a race condition where we might exit before
1697         the view_frame is fully unreffed and has a chance to clean up.
1698         components/sample/nautilus-sample-content-view.c
1699         (nautilus_sample_content_view_destroy): Unref the
1700         NautilusViewFrame when we are destroyed.
1702         * libnautilus/nautilus-zoomable.c, libnautilus/ntl-view-frame.c,
1703         libnautilus/ntl-content-view-frame.c,
1704         libnautilus/ntl-meta-view-frame.c: Use boilerplate macros for
1705         get_type method and to invoke parent destroy method.
1707         * libnautilus/nautilus-zoomable.c, libnautilus/ntl-view-frame.c:
1708         Unref the interface we query_local_interface for, to avoid holding
1709         a superfluous ref to ourselves, since we eventually add_interface
1710         that interface.
1712         * src/ntl-view.c (nautilus_view_destroy_client): Use
1713         bonobo_object_unref instead of bonobo_object_destroy.
1715 2000-03-29  Andy Hertzfeld <andy@eazel.com>
1717         * src/nautilus-index-tabs.c:
1718         fixed bug #312, index tabs don't resize properly,
1719         by overriding size_allocate, to fix up the
1720         height appropriately when the size changes
1721         
1722 2000-03-28  Pavel Cisler  <pavel@eazel.com>
1724         Started on copy/move operations
1726         * libnautilus/nautilus-icon-dnd.c:
1727         (nautilus_icon_container_item_at), (get_container_uri),
1728         (nautilus_icon_container_selection_items_local),
1729         (nautilus_icon_canvas_item_can_accept_item),
1730         (nautilus_icon_canvas_item_can_accept_items),
1731         (nautilus_icon_container_receive_dropped_icons):
1732         Handle drops by starting a move operation. Add new calls that
1733         help determine the drop target.
1735         * src/file-manager/fm-directory-view.c:
1736         * src/file-manager/fm-directory-view.h:
1737         (xfer_callback), (fm_directory_view_move_copy_items):
1738         Initial version of calls that start the gnome-vfs-xfer job.
1740         * src/file-manager/fm-directory-view.c:
1741         * src/file-manager/fm-directory-view.h:
1742         (fm_directory_view_get_container_uri):
1743         Added new call needed to determine type of move operation.
1745         * src/file-manager/fm-icon-view.c:
1746         * src/file-manager/fm-icon-view.h:
1747         Connect "move_copy_items" and "get_container_uri" signals
1748         with new calls in FMDirectoryView.
1749         
1750         * nautilus-gtk-extensions.c
1751         * nautilus-gtk-extensions.h
1752         (nautilus_gtk_marshal_NONE__POINTER_POINTER_INT_INT_INT),
1753         (nautilus_gtk_marshal_NONE__POINTER_INT_INT_DOUBLE_DOUBLE):
1754         Add new binder glue that I needed for new signal calls.
1756         * libnautilus/nautilus-icon-container.c:
1757         * libnautilus/nautilus-icon-container.h:
1758         Add new signals "move_copy_items" and "get_container_uri".
1759         
1760 2000-03-28  Darin Adler  <darin@eazel.com>
1762         * libnautilus/nautilus-background.h:
1763         * libnautilus/nautilus-background.c:
1764         Preparing for support for background images.
1766         * libnautilus/nautilus-background.c:
1767         * libnautilus/nautilus-debug.c:
1768         * libnautilus/nautilus-icon-canvas-item.c:
1769         * libnautilus/nautilus-icon-dnd.c:
1770         Add those braces that Maciej, John, and the style guide all prefer.
1772         * libnautilus/nautilus-file.c: (nautilus_file_set_metadata):
1773         A change to metadata is considered a change to the file.
1775         * libnautilus/nautilus-graphic-effects.c:
1776         * libnautilus/nautilus-graphic-effects.h:
1777         Added nautilus_ prefix to all the functions in here.
1779         * libnautilus/nautilus-gtk-extensions.c:
1780         * libnautilus/nautilus-gtk-extensions.h:
1781         (nautilus_point_in_allocation), (nautilus_point_in_widget):
1782         Added hit testing help functions that check if a point is
1783         in a particular allocation/widget.
1785         * libnautilus/nautilus-icon-dnd.c: (get_gnome_icon_list_selection):
1786         Fixed a bug that happens when you get a 0-length piece of
1787         selection data.
1789         * libnautilus/nautilus-icon-dnd.h:
1790         Changed the icon list back to "x-gnome-icon-list".
1791         That's how the other GNOME folks want it, not "x-nautilus-icon-list".
1793         * src/nautilus-index-tabs.c:
1794         * src/nautilus-index-tabs.h:
1795         * src/nautilus-index-title.c:
1796         * src/nautilus-index-title.h:
1797         * src/ntl-index-panel.c:
1798         * src/ntl-index-panel.h:
1799         lite -> light, Other cleanup.
1801         * src/nautilus-index-title.c:
1802         * src/nautilus-index-title.h:
1803         (nautilus_index_title_hit_test_icon):
1804         * src/ntl-index-panel.c:
1805         (hit_test), (uri_is_local_image), (receive_dropped_uri_list),
1806         (receive_dropped_color):
1807         Added code needed to support dropping an image on the icon to set
1808         a custom icon. This doesn't yet update the icon in the panel itself,
1809         but I'll do that soon.
1811 2000-03-28  John Sullivan <sullivan@eazel.com>
1813         Maciej, Darin and I discussed the notify_title_change
1814         design and decided that we didn't need it now and that
1815         we should keep the API simpler by removing it, along
1816         with the initial_title parameter I added to
1817         notify_location_change. So out they come.
1819         * components/help/hyperbola-nav-tree.c,
1820         * components/history/ntl-history-view.c,
1821         * components/html/ntl-web-browser.c,
1822         * components/music/nautilus-music-view.c,
1823         * components/notes/ntl-notes.c,
1824         * components/sample/nautilus-sample-content-view.c,
1825         * components/websearch/ntl-web-search.c,
1826         * idl/nautilus.idl,
1827         * libnautilus/ntl-view-frame.c,
1828         * libnautilus/ntl-view-frame.h,
1829         * src/ntl-view-bonobo-control.c,
1830         * src/ntl-view-bonobo-subdoc.c,
1831         * src/ntl-view-nautilus.c,
1832         * src/ntl-view-private.h,
1833         * src/ntl-view.c,
1834         * src/ntl-view.h,
1835         * src/ntl-window-msgs.c,
1836         * src/file-manager/fm-directory-view.c: Removed notify_title_change
1837         and the initial_title parameter to notify_location_change wherever
1838         they reared their ugly heads.
1840 2000-03-28  John Sullivan <sullivan@eazel.com>
1842         * libnautilus/nautilus-icon-container.c:
1843         (keyboard_move_to): The behavior of the Control key got
1844         accidentally reversed in a recent cleanup.
1846 2000-03-28  Ramiro Estrugo  <ramiro@eazel.com>
1848         Cleanup NautilusPreferences a bit in preparation for api revamp
1849         to support implicitly registered preferences.
1851         * nautilus-widgets/nautilus-preferences.c,
1852           nautilus-widgets/nautilus-preferences.h: Rename hash table node
1853         structures from "PrefHashInfo" to "PrefHashNode".  Remove some
1854         unused and crufty code.  Add a bunch of comments describing 
1855         structures and functions.  Remove prefs_check_supported_type()
1856         which was leftover from when I tried to use GtkType instead of 
1857         defining an enum of supported types.  Also, rename
1858         nautilus_preferences_get_pref_info to nautilus_preferences_get_info.
1860         * nautilus-widgets/nautilus-preferences-item.c,
1861           nautilus-widgets/nautilus-preferences-item.h: Add enum
1862         NautilusPreferencesItemType to enumerate the types of pereferences
1863         that have a corresponding UI.  Since there can be preferences that
1864         are not exposed in the UI, this is different than NautilusPreferencesType.
1865         (preferences_item_construct): Use newly renamed function
1866         nautilus_preferences_get_info.  Also remove the dummy
1867         NAUTILUS_PREFENCES_STRING case statement, since
1868         NautilusPrefernecesItem now has its own type enumeration
1869         independant of NautilusPreferences.
1870         
1871 2000-03-28  John Sullivan <sullivan@eazel.com>
1873         Followup to last night's checkin; I forgot to add the
1874         initial_title parameter to a notify_location_change
1875         signal and all its signal handlers.
1876         
1877         * libnautilus/ntl-view-frame.c:
1878         (impl_Nautilus_View_notify_location_change): Add
1879         initial_title parameter, pass it along when emitting
1880         signal.
1882         * components/help/hyperbola-nav-tree.c,
1883         * components/history/ntl-history-view.c,
1884         * components/html/ntl-web-browser.c,
1885         * components/music/nautilus-music-view.c,
1886         * components/notes/ntl-notes.c,
1887         * components/sample/nautilus-sample-content-view.c,
1888         * components/websearch/ntl-web-search.c,
1889         * src/file-manager/fm-directory-view.c:
1890         Added initial_title parameter to notify_location_change
1891         signal handlers.
1893         * src/ntl-view-nautilus.c: Removed a stray g_message.
1895 2000-03-27  Andy Hertzfeld <andy@eazel.com>
1897         * icons/eazel/i-directory-24.png:
1898         fixed bug #9, folder too small, by replacing the icon with one that's the proper size
1899         
1900 2000-03-27  John Sullivan <sullivan@eazel.com>
1902         Made web page titles be used for the window title,
1903         the index panel location name, and the menu item in
1904         the Go menu (which is then used for the Bookmarks menu
1905         too). This required lots of underpinnings work. Now any
1906         content view (not just the web browser) can express its
1907         opinion on what title for the current location should be
1908         displayed to the user.
1910         * idl/nautilus.idl: added View:notify_title_change; added
1911         initial_title parameter to View:notify_location_change;
1912         reordered functions in View to better group related items;
1913         added ContentViewFrame:request_title_change.
1915         * libnautilus/nautilus-view-frame-private.h: New file,
1916         holds a struct and a function shared by NautilusViewFrame
1917         and (now) NautilusContentViewFrame.
1919         * libnautilus/ntl-view-frame.h: Reordered functions to
1920         match idl (just for clarity); also added (notify_title_change).
1921         * libnautilus/ntl-view-frame.c: Moved _NautilusViewFramePrivate
1922         struct to new private .h file, added (notify_title_change);
1923         reordered function pointers in epv to match idl.
1924         (nautilus_view_frame_class_init): Set up signal for
1925         notify_title_change.
1926         (nautilus_view_frame_ensure_view_frame): No longer static since
1927         it's in new private .h file.
1929         * libnautilus/ntl-content-view-frame.h,
1930         * libnautilus/ntl-content-view-frame.c:
1931         (nautilus_content_view_frame_request_title_change):
1932         New function that a content view calls on its frame
1933         when it has an opinion about what the user-displayable
1934         title for the current location should be.
1936         * libnautilus/nautilus-bookmark.c,
1937         * libnautilus/nautilus-bookmark.h:
1938         (nautilus_bookmark_set_name): New function to change the name of
1939         an existing bookmark.
1941         * src/ntl-view-private.h: Moved definition of impl_POA_Nautilus_ViewFrame
1942         here so it can be shared by NautilusContentView; reordered functions in
1943         _NautilusViewComponentType to match idl and included notify_title_change.
1944         * src/ntl-view-frame-svr.c: Moved definition of impl_POA_Nautilus_ViewFrame
1945         out of here.
1946         * src/ntl-view.h,
1947         * src/ntl-view.c:
1948         (nautilus_view_notify_location_change): Added initial_title parameter.
1949         (nautilus_view_notify_title_change): New function.
1950         * src/ntl-view-nautilus.c:
1951         (nv_notify_location_change): Added initial_title parameter.
1952         (nv_notify_title_change): New function.
1953         nautilus_view_component_type: reordered function pointers to
1954         match idl, and added new one for notify_title_change.
1955         * src/ntl-view-bonobo-control.c:
1956         (bonobo_control_notify_location_change): Added initial_title parameter.
1957         bonobo_control_component_type: reordered function pointers to match idl
1958         and added notify_title_change.
1959         * src/ntl-view-bonobo-subdoc.c
1960         (bonobo_subdoc_notify_location_change): Added initial_title parameter.
1961         bonobo_subdoc_component_type: reordered function pointers to match idl
1962         and added notify_title_change.
1964         * src/nautilus-bookmark-list.c:
1965         (destroy_bookmark): Removed this function.
1966         (nautilus_bookmark_list_delete_item_at): unref where it was destroying.
1967         (nautilus_list_load_file): use gtk_object_unref as foreach function
1968         instead of destroy_bookmark.
1969         
1970         * src/nautilus-index-title.h,
1971         * src/nautilus-index-title.c:
1972         new field _NautilusIndexTitleDetails->requested_text.
1973         (nautilus_index_title_set_uri): Added initial_text parameter;
1974         store initial_text in requested_text field after freeing old value.
1975         (nautilus_index_panel_set_text): New function, passes new text to
1976         nautilus_index_title_set_up_label.
1977         (nautilus_index_title_finalize): free requested_text.
1978         (nautilus_index_title_set_up_label):
1979         Use requested_text instead of extracting short name of URI here.
1980         * src/ntl-index-panel.h,
1981         * src/ntl-index-panel.c:
1982         (nautilus_index_panel_set_uri): Added initial_title parameter.
1983         (nautilus_index_panel_set_title): New function, called if the title
1984         changes later on; pass new_title on to nautilus_index_title_set_text.
1985         (nautilus_index_panel_set_up_info): Added initial_title parameter;
1986         pass initial_title on to nautilus_index_title_set_uri.
1987         
1988         * src/ntl-content-view.h: Redid object & class struct definitions
1989         to match others; added request_title_change signal definition.
1990         * src/ntl-content-view.c:
1991         added function pointer for request_title_change to epv;
1992         added signal-definining enum & array;
1993         (impl_Nautilus_ContentViewFrame_request_title_change): New function.
1994         (nautilus_content_view_class_init): Define "request_title_change" signal.
1995         (nautilus_content_view_request_title_change): New function, emits signal.
1996                 
1997         * src/ntl-window.h: New fields for requested_title, default_title,
1998         current_location_bookmark, last_location_bookmark.
1999         * src/ntl-window.c:
2000         (nautilus_send_history_list_changed): New convenience routine to
2001         emit "history_list_changed" signal since it's emitted in more than
2002         one place now.
2003         (nautilus_add_to_history_list): Change parameter from a const char *
2004         to a NautilusBookmark; call nautilus_send_history_list_changed.
2005         (nautilus_window_request_title_change_callback): New function, calls
2006         nautilus_window_request_title_change.
2007         (nautilus_window_connect_view): Just variable renaming & reformatting.
2008         (nautilus_window_connect_content_view): New function, calls
2009         nautilus_window_connect_view then connects to "request_title_change: signal
2010         also.
2011         * src/ntl-window-private.h:
2012         (nautilus_window_connect_content_view): New prototype.
2013         (nautilus_send_history_list): New prototype.
2014         (nautilus_add_to_history_list): Change parameter from const char * 
2015         to NautilusBookmark *
2016         * src/ntl-window-msgs.h: 
2017         (nautilus_window_request_title_change): prototype for new function.
2018         * src/ntl-window-msgs.c: 
2019         (nautilus_window_refresh_title): Removed.
2020         (compute_default_title), (nautilus_window_get_current_location_title),
2021         (nautilus_window_update_title_internal), 
2022         (nautilus_window_reset_title_internal), 
2023         (nautilus_window_request_title_change): New functions having to do with
2024         passing around the title-change request. Note that there's an unresolved
2025         problem where calling nautilus_view_notify_title_change here doesn't work
2026         properly for metaviews. There's a comment in the code and I'll write up
2027         a bug report also. There are currently no metaviews that care.
2028         (nautilus_window_update_internals): Use window->last_location_bookmark
2029         instead of creating a new bookmark for back/forward lists (this means the
2030         back/forward menus will respect any title change requests); remove one
2031         of the two identical calls to nautilus_index_panel_set_uri; modify the
2032         other one to pass current location title.
2033         (nautilus_window_update_view): Pass current title to
2034         nautilus_view_notify_location_change.
2035         (nautilus_window_load_content_view): 
2036         Call nautilus_window_connect_content_view instead of    
2037         nautilus_window_connect_view.
2038         (nautilus_window_update_state): Call nautilus_window_reset_title_internal
2039         at two spots where the location is changing.
2040         * src/nautilus-window-menus.c:
2041         (nautilus_window_add_bookmark_for_current_location): Use
2042         window->current_location_bookmark instead of creating a new one
2043         to take advantage of any requested title changes.       
2045         * components/html/ntl-web-browser.c:
2046         (browser_title_changed): New function, calls 
2047         nautilus_content_view_frame_request_title_change.
2048         (make_obj): Connect browser_title_changed to "title_changed" signal
2049         of gtkhtml widget.
2051         Fixed bug 353 (Removing all bookmark items from window can lead to crash)
2053         * src/nautilus-bookmarks-window.c: (on_remove_button_clicked):
2054         If we removed the last item, explicitly call repopulate since
2055         no callback handles that case.
2057 2000-03-27  Andy Hertzfeld <andy@eazel.com>
2059         * libnautilus/nautilus-icon-canvas-item.c:
2060         changed the logic in nautilus_icon_canvas_item_draw to treat
2061         pre-lighting and selection darkening independently, so both properties
2062         will be visually reflected.
2063         
2064 2000-03-27  Andy Hertzfeld <andy@eazel.com>
2066         Changed how selection emboldening works.  The problem was that using
2067         a bold font changed the text layout, making words jump from line to
2068         line when an icon was selected.  The new approach doesn't use a bold
2069         font; instead it just draws it an extra time, offset by a pixel
2070         
2071         * libnautilus/nautilus-icon-canvas-item.c:
2072         embolden by drawing twice instead of using a bold font; also, removed
2073         the "hilight_font" stuff
2074         * libnautilus/nautilus-icon-private.h:
2075         removed the hilite_font field
2076         * libnautilus/nautilus-icon-container.h:
2077         removed the highlight font stuff
2078         * libnautilus/nautilus-graphic-effects.c,h:
2079         cleaned up by using a common routine to make the destination pixbuf;
2080         fixed bug in create_darkened_pixbuf by using separate counts for source
2081         and destination rowstride;
2082         added a "create_colorized_pixbuf" routine
2083         
2084 2000-03-26  Ramiro Estrugo  <ramiro@eazel.com>
2086         Removed the ETTORE user level easter egg and bullet proofed the 
2087         stuff that uses user levels a bit.
2089         * libnautilus/nautilus-global-preferences.c,
2090           libnautilus/nautilus-global-preferences.h: Remove references to 
2091           NAUTILUS_USER_LEVEL_ETTORE.
2093         * src/ntl-window-state.c: Removed switch handling of ETTORE user 
2094           level and added a default case for the unlikely (but poissible) 
2095           event when the ~/.gnome/nautilus preferences file contains bogus
2096           values for the user_level enumeration.
2098         * src/file-manager/fm-directory-view.c: Same as above.
2099         
2100 2000-03-25  Andy Hertzfeld <andy@eazel.com>
2102         Improved selection highlighting.
2103         
2104         * libnautilus/nautilus-graphic-effects.c,h:
2105         added create_darkened_pixbuf routine based on one in panel
2106         * libnautilus/icon-private.h:
2107         added field for highlight_font
2108         * libnautilus/icon-container.c:
2109         loads and maintain highlight font
2110         * libnautilus/icon-canvas-item:
2111         if item is selected, darken the icon and use the highlight font
2112         
2113 2000-03-24  Darin Adler  <darin@eazel.com>
2115         Fixed bug 337 (Crash on userlevel change).
2116         
2117         * src/file-manager/fm-directory-view.c (user_level_changed_callback):
2118         Fixed incorrect assert.
2120 2000-03-24  Andy Hertzfeld <andy@eazel.com>
2122         moved pixbuf special effect routines into libnautilus, to prepare for
2123         adding selection hilighting and others
2124         
2125         * libnautilus/nautilus-graphic-effects.h:
2126         header file for pixbuf graphic effects routines
2127         * libnautilus/nautilus-graphic-effects.c:
2128         moved create_spotlight_pixbuf and make_semi_transparent here,
2129         fixed bug in create_spotlight_pixbuf by using separate rowstride for
2130         the src and dst like Darin did for make_semi_transparent
2131         * libnautilus/Makefile.am:
2132         added nautilus-graphic-effects.c & .h
2133         * libnautilus/nautilus-icon-canvas-item.c:
2134         removed create_spotlight_pixbuf routine
2135         * libnautilus/nautilus-icon-dnd.c:
2136         removed make_semi_transparent routine
2137         
2138 2000-03-23  John Sullivan  <sullivan@eazel.com>
2140         Put sample merged menu item and merged toolbar item
2141         into sample component.
2143         * components/sample/nautilus_sample_content_view.c:
2144         (sample_notify_location_change_cb): Changed name to
2145         sample_notify_location_change_callback and changed
2146         parameter name "view" to "view_frame" and "sample"
2147         to "view" to match other uses; added assert that
2148         view's view_frame is the same as parameter view_frame.
2149         (nautilus_sample_content_view_initialize): Added signal
2150         connection for bonobo control activation.
2151         (nautilus_sample_content_view_load_uri): Made the displayed
2152         text include an explanatory sentence in addition to the uri,
2153         so Nautilus users will be more likely to understand what this
2154         thing is.
2155         (bonobo_sample_callback): New function, changes the sentence
2156         displayed with the uri based on callback caller (menu item or
2157         toolbar button).
2158         (sample_merge_bonobo_items_callback): New function, creates one
2159         sample merged menu item and one sample merged toolbar button,
2160         whose callback functions are both bonobo_sample_callback.
2162         * src/file-manager/fm-directory-view.c:
2163         (bonobo_control_activate_cb): Removed never-called "state == FALSE"
2164         case, added comment.
2165         (fm_directory_view_real_merge_menus): Removed #if 0'ed sample
2166         toolbar button, now that there's one in the sample component.
2168 2000-03-23  John Sullivan  <sullivan@eazel.com>
2170         * src/file-manager/fm-directory-view.c:
2171         (fm_directory_view_real_merge_menus): Put in a commented-out
2172         sample merged toolbar button, as a starting point for the
2173         ones we plan to implement later.
2175         * src/ntl-window-msgs.c: (nautilus_window_set_state_info):
2176         Put an #ifdef EXTREME_DEBUGGING around "Doing sync - action tag"
2178 2000-03-23  Darin Adler  <darin@eazel.com>
2180         Fixed bug 336 (merged menu items don't go away when component
2181         is swapped out).
2182         
2183         * src/file-manager/fm-directory-view.c: (fm_directory_view_destroy):
2184         While debugging, I noticed that the view_frame was allocated by the
2185         FMDirectoryView and never unref'd. The exact connection of this to
2186         why the widgets don't go away is now lost in time. We added a call
2187         to bonobo_object_unref to get rid of the view frame.
2189         * src/ntl-window.h, src/ntl-window.c, src/ntl-window-msgs.c:
2190         (Nautilus_NavigationInfo_free): Got rid of this routine. It turns
2191         out that this was an incorrect hack to work around the error in
2192         the surrounding code that was copying CORBA object references
2193         without calling CORBA_Object_duplicate.
2194         (nautilus_window_destroy), (nautilus_window_request_selection_change):
2195         Changed code that was calling Nautilus_NavigationInfo_free to just
2196         call CORBA_free now that the incorrect hack is not needed.
2197         (nautilus_window_request_selection_change),
2198         (nautilus_window_update_view), 
2199         (nautilus_window_update_internals),
2200         (nautilus_window_load_content_view): Changed all code that was
2201         manipulating content_view to use CORBA_Object_duplicate when
2202         storing a reference and CORBA_Object_release when overwriting
2203         a reference.
2205 2000-03-22  Darin Adler  <darin@eazel.com>
2207         Fixed bug 334 (Need proper hit detection when hit-testing icons)
2209         * libnautilus/nautilus-icon-canvas-item.c: (hit_test_pixbuf):
2210         Fixed a typo-type error where we were checking every pixel of the
2211         pixbuf instead of only the pixels that we were hit testing against.
2213         * libnautilus/nautilus-icon-container.c: Tweaks.
2215 2000-03-22  John Sullivan  <sullivan@eazel.com>
2217         Fixed bug 308 (Straighten out the new_window situation
2218         in Nautilus_NavigationRequestInfo)
2220         Nautilus_NavigationRequestInfo was passing around a trio
2221         of tri-state values where one boolean would do. Now it
2222         passes around one boolean.
2224         * idl/nautilus.idl: Eliminated enum TruthValue,
2225         replaced NavigationRequestInfo's new_window_default, 
2226         new_window_suggested, and new_window_enforced with boolean 
2227         new_window_requested.
2228         
2229         * components/help/hyperbola-nav-index.c: (hyperbola_navigation_index_select_row), 
2230         * components/help/hyperbola-nav-search.c: (hyperbola_navigation_search_select_row),
2231         * components/help/hyperbola-nav-tree.c: (hyperbola_navigation_tree_select_row), 
2232         * components/history/ntl-history-view.c:
2233         * components/websearch/ntl-web-search.c:
2234         * src/nautilus-window-toolbars.c:
2235         * src/ntl-window-msgs.c:
2236         * src/ntl-window.c:
2237         * src/file-manager/fm-directory-view.c:
2238         Simplified all users of Nautilus_NavigationRequestInfo to match.
2240         * components/music/main.c: Added a #include to kill 
2241         warning about gnome_vfs_init being undefined.
2243 2000-03-21  John Sullivan  <sullivan@eazel.com>
2245         Fixed bug 335 (Menus incorrect after keyboard navigation)
2247         * libnautilus/nautilus-icon-container.c: (keyboard_move_to):
2248         Emit SELECTION_CHANGED signal after changing selection.
2250 2000-03-21  John Sullivan  <sullivan@eazel.com>
2252         Fixed bug 203 (preserve back/forward chain when using
2253         back/forward menus).
2255         * src/ntl-window.h: added enum NautilusLocationChangeType.
2256         Removed window fields is_back and is_reload. Added window
2257         fields location_change_type and location_change_distance.
2259         * src/ntl-window-private.h:
2260         (nautilus_window_back_or_forward): Exposed this function.
2261         (nautilus_window_change_location): Changed name to
2262         nautilus_window_begin_location_change and replaced is_back
2263         and is_forward parameters with type & distance.
2264         (nautilus_window_end_location_change): Removed this prototype
2265         that had no implementation.
2267         * src/ntl-window-msgs.c:
2268         (nautilus_window_update_internals): Rewrote to use
2269         location_change_type and location_change_index.
2270         (nautilus_window_change_location): Changed name to
2271         nautilus_window_begin_location_change and replaced is_back
2272         and is_forward parameters with type & distance.
2273         (nautilus_window_request_location_change): Updated caller of
2274         nautilus_window-change_location.
2275         (nautilus_window_change_location_2): Renamed to
2276         nautilus_window_end_location_change_callback for clarity; removed
2277         useless assignment to window->is_back.
2278         (view_menu_switch_views_cb): Removed useless assignments of
2279         window->is_back and window->is_reload.
2280         (nautilus_window_update_state): Removed is_back from a debug message.
2282         * src/ntl-window.c: 
2283         (nautilus_window_back_or_forward): Added distance parameter; 
2284         call nautilus_window_begin_location_change properly.
2285         (nautilus_window_back_cb), (nautilus_window_forward_cb):
2286         Pass distance of 0 to nautilus_window_back_or_forward.
2288         * src/nautilus-window-toolbars.c: (activate_back_or_forward_menu_item):
2289         call newly-exposed nautilus_window_back_or_forward.
2291 2000-03-21  Pavel Cisler  <pavel@eazel.com>
2293         * libnautilus/nautilus-icon-container.c
2294         (motion_notify_event):
2295         Fixed an annoying bug that would sometimes cause the drag&drop feedback
2296         to come up delayed. Turned out to be a silly mistake in the drag
2297         snap resistance test that caused the snap resistance to be infinite when
2298         you dragged near-horizontaly or near-vertically.
2300 2000-03-21  Darin Adler  <darin@eazel.com>
2302         Did some of the items from RENAMING.
2304         * libnautilus/Makefile.am:
2305         * libnautilus/gnome-icon-container-dnd.c:
2306         * libnautilus/gnome-icon-container-dnd.h:
2307         * libnautilus/gnome-icon-container-grid.c:
2308         * libnautilus/gnome-icon-container-grid.h:
2309         * libnautilus/gnome-icon-container-private.h:
2310         * libnautilus/gnome-icon-container.c:
2311         * libnautilus/gnome-icon-container.h:
2312         * libnautilus/gtkflist.c:
2313         * libnautilus/gtkflist.h:
2314         * libnautilus/nautilus-icon-canvas-item.c:
2315         * libnautilus/nautilus-icon-canvas-item.h:
2316         * libnautilus/nautilus-icon-container.c:
2317         * libnautilus/nautilus-icon-container.h:
2318         * libnautilus/nautilus-icon-dnd.c:
2319         * libnautilus/nautilus-icon-dnd.h:
2320         * libnautilus/nautilus-icon-grid.c:
2321         * libnautilus/nautilus-icon-grid.h:
2322         * libnautilus/nautilus-icon-private.h:
2323         * libnautilus/nautilus-icons-view-icon-item.c:
2324         * libnautilus/nautilus-icons-view-icon-item.h:
2325         * libnautilus/nautilus-lib-self-check-functions.h:
2326         * libnautilus/nautilus-list-column-title.c:
2327         * libnautilus/nautilus-list.c:
2328         * libnautilus/nautilus-list.h:
2329         * src/file-manager/Makefile.am:
2330         * src/file-manager/fm-directory-view-icons.c:
2331         * src/file-manager/fm-directory-view-icons.h:
2332         * src/file-manager/fm-directory-view-list.c:
2333         * src/file-manager/fm-directory-view-list.h:
2334         * src/file-manager/fm-icon-view.c:
2335         * src/file-manager/fm-icon-view.h:
2336         * src/file-manager/fm-list-view.c:
2337         * src/file-manager/fm-list-view.h:
2338         * src/ntl-app.c:
2339         Did these RENAMING entries:
2340           FMDirectoryViewIcons -> FMIconView
2341           FMDirectoryViewList  -> FMListView
2342           GnomeIconContainer -> NautilusIconContainer
2343           GnomeIconContainerIcon -> NautilusIcon
2344           NautilusIconsViewIconItem -> NautilusIconCanvasItem
2346         * RENAMING: Marked the renaming done.
2348 2000-03-21  Darin Adler  <darin@eazel.com>
2350         Fixed arrow keys and worked on the icon grid.
2351         Fixes bugs #314, #324, and #325.
2353         * components/help/hyperbola.goad:
2354         Corrected repo_ids -> repo_id, reported by Richard Hult.
2356         * src/nautilus.goad:
2357         Added missing = character, reported by Richard Hult.
2359         * libnautilus/gnome-icon-container-grid.c:
2360         * libnautilus/gnome-icon-container-grid.h:
2361         * libnautilus/gnome-icon-container.c:
2362         * libnautilus/gnome-icon-container-private.h:
2363         Made the icon grid handle negative coordinates.
2364         Removed most of the icon grid code.
2365         Reimplemented the arrow keys. They should work again.
2367         * libnautilus/nautilus-gnome-extensions.c:
2368         * libnautilus/nautilus-gnome-extensions.h:
2369         (nautilus_art_irect_contains_irect):
2370         Added another helper function.
2372         * libnautilus/nautilus-icons-view-icon-item.c:
2373         
2374         * libnautilus/nautilus-icons-view-icon-item.h:
2375         * libnautilus/gnome-icon-container.c:
2376         * libnautilus/gnome-icon-container-private.h:
2377         Added user data to each canvas item and got rid of the hash table
2378         that maps canvas items to icons.
2380         * RENAMING: Tweaks.
2382 2000-03-20  Pavel Cisler  <pavel@eazel.com>
2384         * libnautilus/nautilus-list-column-title.c
2385         (nautilus_list_column_title_paint):
2386         Center the sort order indicators inside a title better. Make the column 
2387         title label spacing more like the old CtkCList.
2389 2000-03-20  Pavel Cisler  <pavel@eazel.com>
2391         * libnautilus/nautilus-list-column-title.c
2392         (nautilus_list_column_title_paint), (nautilus_list_column_title_draw),
2393         (nautilus_list_column_title_buffered_draw),
2394         (nautilus_list_column_title_expose):
2395         Use an offscreen bitmap to draw the column title during column resizing
2396         and column prelighting.
2398         * libnautilus/nautilus-list-column-title.c
2399         (nautilus_list_column_title_finalize):
2400         Clean up properly - destroy a gc used to blit the sort order indicators
2401         
2402         * libnautilus/gtkflist.c
2403         * libnautilus/nautilus-list-column-title.c
2404         (gtk_flist_track_new_column_width),
2405         (nautilus_list_column_title_motion):
2406         Remove the column title update from the flist, have the mouse tracking 
2407         routine in the list column title take care of it.
2408         
2409 2000-03-17  Darin Adler  <darin@eazel.com>
2411         Fixed the "tall line of icons" bug.
2413         * libnautilus/gnome-icon-container-grid.h:
2414         * libnautilus/gnome-icon-container-grid.c:
2415         * libnautilus/gnome-icon-container.c:
2416         Rewrote the routines to not have a separate concept of the
2417         actual grid height and the allocated grid height. Most important
2418         change was to update the first_free variables when resizing.
2420         * src/file-manager/fm-directory-view-icons.h:
2421         * src/file-manager/fm-directory-view-icons.c:
2422         (fm_directory_view_icons_line_up_icons):
2423         Removed the unused line_up_icons call. This feature will return,
2424         but for now it's just a waste of space.
2426 2000-03-17  Darin Adler  <darin@eazel.com>
2428         Fixed the "rubberband does not work" bug.
2430         * libnautilus/gnome-icon-container-grid.h:
2431         * libnautilus/gnome-icon-container-grid.c:
2432         * libnautilus/gnome-icon-container-private.h:
2433         * libnautilus/gnome-icon-container.c:
2434         * libnautilus/nautilus-icons-view-icon-item.c:
2435         * libnautilus/nautilus-icons-view-icon-item.h:
2436         Simplified the grid a bit and did some redesign. The grid now
2437         takes into account the height and width of the icons. More work
2438         to come.
2440         * libnautilus/nautilus-global-preferences.c:
2441         * nautilus-widgets/nautilus-preferences.h:
2442         Some cleanup, including types for constants.
2444         * libnautilus/nautilus-gnome-extensions.h:
2445         * libnautilus/nautilus-gnome-extensions.c:
2446         (nautilus_art_irect_equal), (nautilus_art_drect_equal),
2447         (nautilus_gnome_canvas_item_get_current_canvas_bounds),
2448         (nautilus_gnome_canvas_item_request_redraw),
2449         (nautilus_gnome_canvas_request_redraw_rectangle),
2450         (nautilus_gnome_canvas_item_get_world_bounds):
2451         More useful canvas and libart routines.
2452         
2453         * RENAMING: More renaming ideas.
2455 2000-03-17  Elliot Lee  <sopwith@eazel.com>
2457         * libnautilus/gnome-icon-container-grid.c:
2458         Added #include <string.h>. For some reason Elliot needs this on
2459         his configuration even though I (Darin) don't need it on mine.
2460         Some day we have to track this down.
2462         Elliot checked in the above change without a ChangeLog entry,
2463         so I decided to make one for him.
2465 2000-03-17  Darin Adler  <darin@eazel.com>
2467         * HACKING: Fixed to match what we actually have on Eazel machines.
2469 2000-03-17  John Sullivan  <sullivan@eazel.com>
2471         Fixed bug 322 (going Back goes wacko).
2473         * src/nautilus-location-bar.c:
2474         (nautilus_location_bar_set_location): This function should
2475         not emit the location_changed signal; it's intended only to
2476         update the displayed text. This was causing a location-changing
2477         loop, which for reasons I did not investigate was not infinite.
2478         Added comments to clarify this function's purpose.
2480         Moved some more toolbar-related code into
2481         nautilus_window_toolbars.c.
2483         * src/nautilus-window-toolbars.c,
2484         * src/ntl-window.c: (activate_back_or_forward_menu_item),
2485         (activate_back_menu_item_cb), (activate_forward_menu_item_cb),
2486         (create_back_or_forward_menu), (back_or_forward_button_clicked_cb):
2487         Moved these functions from ntl-window.c to nautilus-window-toolbars.c.
2489 2000-03-17  John Sullivan  <sullivan@eazel.com>
2491         Separate out toolbar code as first step towards
2492         bonobo-izing it.
2494         * src/nautilus-window-toolbars.c: New file
2495         * src/Makefile.am: put new file in build.
2496         * src/ntl-window-private.h: prototype for
2497         nautilus_window_initialize_toolbars
2498         * src/ntl-window.c: Moved toolbar stuff out of here
2499         and into new file.
2501 2000-03-17  Pavel Cisler  <pavel@eazel.com>
2503         Fix some bugs that John kindly uncovered.
2505         * libnautilus/gtkflist.c
2506         (gtk_flist_resize_column):
2507         Make it so that the column title updates when column width changes
2508         by zooming in and out.
2510         * libnautilus/gtkflist.c
2511         (gtk_flist_column_resize_track_start), (gtk_flist_column_resize_track_end):
2512         Fix a dumb segfault - clist was not being initialized properly.
2514         * libnautilus/nautilus-list-column-title.c
2515         (nautilus_list_column_title_paint):
2516         Make the sort indicator draw on the other side of the column title
2517         as it should.
2518         Tweak an assert.
2520         * libnautilus/nautilus-list-column-title.c
2521         (nautilus_list_column_title_leave):
2522         Fix a problem where the column title would sometimes get stuck in a 
2523         prelight state after the mouse has exited.
2525 2000-03-16  Pavel Cisler  <pavel@eazel.com>
2527         * scr/file-manager/fm-directory-view-list.c
2528         (create_flist):
2529         The icon column was set to the width of an icon at 100% zoom level.
2530         This doesn't work at higher zoom levels and when using Eazel
2531         theme icons. For now just make the column resizable again.
2532         
2533 2000-03-16  Pavel Cisler  <pavel@eazel.com>
2535         First pass on making list column resizing live.
2537         * libnautilus/Makefile.am
2538         * libnautilus/nautilus-list-column-title.c
2539         * libnautilus/nautilus-list-column-title.h
2540         New list column title widget that makes it easier to hook into
2541         the mouse tracking and allows using flicker free redraw. Currently
2542         it doesn't use an offscreen buffer yet, comming soon.
2544         * libnautilus/gtkflist.c
2545         (gtk_flist_initialize_class), (gtk_flist_initialize),
2546         (gtk_flist_realize), (list_requisition_width),
2547         (gtk_flist_size_request), (new_column_width), (size_allocate_columns),
2548         (size_allocate_title_buttons), (get_cell_style), (draw_cell_pixmap),
2549         (draw_row), (draw_rows), 
2550         Made it possible to replace the existing column list view titles
2551         from GtkCList view to be replaced with the new widget. In order
2552         to do that I had to pull in a number of calls form GtkCList and
2553         work around dependencies on column titles being buttons.
2554         Prepared code some for smart column truncation.
2556         * libnautilus/gtkflist.h
2557         * libnautilus/gtkflist.c
2558         (gtk_flist_track_new_column_width), (gtk_flist_column_resize_track_start),
2559         (gtk_flist_column_resize_track), (gtk_flist_column_resize_track_end):
2560         Added new calls that hook up with the mouse tracking code that
2561         resize the tracker column.
2563         * scr/file-manager/fm-directory-view-list.c
2564         (get_sort_indicator), (hide_sort_indicator), (show_sort_indicator),
2565         (create_flist):
2566         Removed code that insert the sort order indicator into the list
2567         column - this is now done in the new column title widget.
2568         
2569         * scr/file-manager/fm-directory-view-list.c
2570         (create_flist):
2571         Added min and max column width values.
2573         * libnautilus/gtkflist.c
2574         (gtk_flist_initialize_class)
2575         Fixe a bug where the "selection_changed" was mistakenly connected
2576         to the start_drag callback.
2578         * libnautilus/nautilus-gdk-extensions.c
2579         * libnautilus/nautilus-gdk-extensions.h
2580         (nautilus_rectangle_contains), (nautilus_rectangle_inset):
2581         Added GdkRectangle utility calls.
2582         
2583 2000-03-16  John Sullivan  <sullivan@eazel.com>
2585         * src/nautilus-index-title.c:
2586         store uri in details struct.
2587         (nautilus_index_title_set_uri), (nautilus_index_title_set_up_icon),
2588         (nautilus_index_title_set_up_label), (nautilus_index_title_set_up_info):
2589         Read uri from details struct instead of passing in parameter.
2590         (nautilus_index_title_initialize): Connect with "icons_changed"
2591         signal so nautilus_index_title_set_up_icon gets called again,
2592         refreshing the icon appearance when the theme changes.
2593         (nautilus_index_title_finalize): free details->uri.
2595         * src/ntl-uri-map.c:
2596         (get_nautilus-navigation_result_from_gnome_vfs_result):
2597         Handle GNOME_VFS_ERROR_GENERIC case, since diskzero ran
2598         into it. Unfortunately we can't put up a very specific error
2599         message for that case!
2601 2000-03-16  Darin Adler  <darin@eazel.com>
2603         Did some of the renamings that were queued in RENAMING.
2605         * libnautilus/Makefile.am:
2606         * libnautilus/gdk-extensions.c:
2607         * libnautilus/gdk-extensions.h:
2608         * libnautilus/nautilus-gdk-extensions.c:
2609         * libnautilus/nautilus-gdk-extensions.h:
2610         * libnautilus/gnome-icon-container.c:
2611         * libnautilus/nautilus-background.c:
2612         * libnautilus/nautilus-icons-view-icon-item.c:
2613         Renamed gdk-extensions to add the nautilus- prefix and changed
2614         all includers.
2616         * src/Makefile.am:
2617         * src/explorer-location-bar.c:
2618         * src/explorer-location-bar.h:
2619         * src/nautilus-location-bar.c:
2620         * src/nautilus-location-bar.h:
2621         * src/ntl-window-msgs.c:
2622         * src/ntl-window.c:
2623         Renamed ExplorerLocationBar to NautilusLocationBar.
2625         * src/Makefile.am:
2626         * src/nautilus-bookmarklist.c:
2627         * src/nautilus-bookmarklist.h:
2628         * src/nautilus-bookmark-list.c:
2629         * src/nautilus-bookmark-list.h:
2630         * src/nautilus-bookmarks-window.c:
2631         * src/nautilus-bookmarks-window.h:
2632         * src/nautilus-window-menus.c:
2633         Renamed NautilusBookmarklist to NautilusBookmarkList.
2635         * RENAMING: Marked items done and added some new ones.
2637         * nautilus-widgets/nautilus-preferences-item.c:
2638         * nautilus-widgets/nautilus-preferences.c:
2639         * nautilus-widgets/test-nautilus-widgets.c:
2640         * libnautilus/nautilus-icon-factory.c:
2641         * src/file-manager/fm-directory-view-icons.c:
2642         * src/file-manager/fm-directory-view.c:
2643         * src/file-manager/fm-icon-text-window.c:
2644         Cleaned up the interface to NautilusPreferences a bit.
2646 2000-03-16  John Sullivan  <sullivan@eazel.com>
2648         Fixes for a couple of preferences bugs Darin and I ran into
2649         while trying to debug a preferences-related problem. We
2650         can't reproduce the original problem so we don't know if
2651         these fix it.
2653         * libnautilus/nautilus-icon-factory.c:
2654         (nautilus_get_current_icon_factory): Call 
2655         nautilus_global_preferences_initialize before accessing preferences,
2656         since this code is called by processes other than the main
2657         nautilus one.
2659         * nautilus-widgets/nautilus-preferences.c: (prefs_get_pref):
2660         Remove redundant NULL check for prefs; add NULL check for pref_name;
2661         remove test of uninitialized variable; change assert to
2662         return FALSE since callers already handle the FALSE case.
2663         (nautilus_preferences_get_enum): Changed return FALSE to return 0
2664         to match return value type.
2665         (nautilus_preferences_get_string): Changed return FALSE to return NULL
2666         to match return value type.
2668 2000-03-16  John Sullivan  <sullivan@eazel.com>
2670         Moved a couple of utility functions I wrote recently
2671         into the right places in libnautilus.
2673         * libnautilus/nautilus-bonobo-extensions.h,
2674         * libnautilus/nautilus-bonobo-extensions.c: New files,
2675         initially containing only the euphoniously-named
2676         (nautilus_bonobo_ui_handler_menu_set_toggle_appearance),
2677         which toggles a bonobo menu item's checkbox state without
2678         invoking its callback.  
2679         * libnautilus/Makefile.am: Put these two new files into build.
2680         
2681         * libnautilus/nautilus-glib-extensions.h,
2682         * libnautilus/nautilus-glib-extensions.c:
2683         (nautilus_g_strfindv): New function, finds a string in a
2684         NULL-terminated string array. Hideous name to match glib conventions.
2685         (nautilus_self_check_glib_extensions): Added tests for
2686         nautilus_g_strfindv.
2688         * src/nautilus-window-menus.c:
2689         (nautilus_bonobo_ui_handler_menu_toggle_appearance): Moved out
2690         of here, now called in its new home in libnautilus.
2691         * src/file-manager/fm-icon-text-window.c:
2692         (find_string_in_array): Moved out of here and renamed on its
2693         way into libnautilus.
2694         (synch_menus_with_preference): Updated for function name change.
2696 2000-03-16  Darin Adler  <darin@eazel.com>
2698         * src/file-manager/fm-directory-view.c:
2699         (disconnect_model_handlers), (stop_load): Fixed the CRITICALs that
2700         I recently introduced. Made sure our unrefs match our refs for
2701         monitor_files.
2703 2000-03-16  John Sullivan  <sullivan@eazel.com>
2705         Made icon theme changes persist across sessions by
2706         using preferences mechanism. When preferences mechanism
2707         switches to using GConf this should (theoretically) make
2708         icon theme changes work across multiple processes too.
2710         * libnautilus/nautilus-global-preferences.h:
2711         added #define for NAUTILUS_PREFERENCES_ICON_THEME
2712         * libnautilus/nautilus-global-preferences.c:
2713         (global_preferences_static_info[]): new entry for
2714         NAUTILUS_PREFERENCES_ICON_THEME with initial value.
2716         * libnautilus/nautilus-icon-factory.c:
2717         (nautilus_get_current_icon_factory): get theme from preferences
2718         and register callback to be notified of changes in preference.
2719         (nautilus_icon_factory_destroy): unregister preferences callback.
2720         (nautilus_icon_factory_get_theme): Removed this function.
2721         (icon_theme_changed_callback): call set_theme when preference changes.
2722         * libnautilus/nautilus-icon-factory.h: 
2723         (nautilus_icon_factory_get_theme), 
2724         (nautilus_icon_factory_set_theme): Removed public API. The 
2725         rare client that cares about the name of the theme should
2726         get/set it from preferences.
2728         * src/nautilus-window-menus.c:
2729         (use_eazel_theme_icons_cb): get and set theme from
2730         preferences rather than with icon factory calls.
2731         (nautilus_bonobo_ui_handler_menu_set_toggle_appearance):
2732         New function, sets the state of the checkbox in a bonobo
2733         menu item without invoking the callback. Perhaps this belongs
2734         in bonobo or in libnautilus, but I'm waiting to hear what the
2735         bonobo folks have to say about the current behavior, which
2736         seems broken to me.
2737         (update_eazel_theme_menu_item): Rewritten to change the
2738         state of the menu item without invoking the callback. This
2739         was broken in the case where the initial state of the menu
2740         item was backwards, which was never the case before since
2741         it always started with Eazel theme icons off.
2742         
2743         * libnautilus/nautilus-icon-factory.c: 
2744         (nautilus_icon_factory_initialize_class), 
2745         (nautilus_icon_factory_set_theme), 
2746         * components/history/ntl-history-view.c: (make_obj),
2747         * src/nautilus-bookmarks-window.c: 
2748         (create_bookmarks_window),
2749         * src/nautilus-window-menus.c: 
2750         (nautilus_window_initialize_menus),
2751         (nautilus_window_initialize_bookmarks_menu), 
2752         (nautilus_window_initialize_go_menu),
2753         * libnautilus/gnome-icon-container.c: 
2754         (gnome_icon_container_initialize),
2755         * src/file-manager/fm-directory-view-list.c:
2756         (fm_directory_view_list_initialize): Changed name of signal 
2757         emitted by icon factory from "theme_changed" to "icons_changed" 
2758         since it may be used in the future for other kinds of changes 
2759         in the available set of icons.
2761 2000-03-15  Darin Adler  <darin@eazel.com>
2763         * HACKING: Tell people about the gnome-xml branch.
2764         
2765         * libnautilus/Makefile.am:
2766         * libnautilus/gnome-icon-container-grid.c:
2767         * libnautilus/gnome-icon-container-grid.h:
2768         * libnautilus/gnome-icon-container-private.h:
2769         * libnautilus/gnome-icon-container.c:
2770         Broke out the grid code from the main container code.
2771         This is a first step toward improving the layout code.
2773         * libnautilus/nautilus-directory-private.h:
2774         * libnautilus/nautilus-directory.c:
2775         * libnautilus/nautilus-directory.h:
2776         * src/fm-directory-view.c:
2777         Got started on making the directory I/O async.
2778         There's still a long way to go, this was a baby step.
2779         
2780         * libnautilus/nautilus-bookmark.c:
2781         * libnautilus/nautilus-bookmark.h:
2782         * libnautilus/nautilus-self-checks.c:
2783         General cleanup.
2785         * libnautilus/nautilus-file.h:
2786         Rearranged a little bit.
2788         * libnautilus/nautilus-file-utilities.c:
2789         Put FIXME in where there's code that needs to be changed.
2791 2000-03-15  John Sullivan  <sullivan@eazel.com>
2793         Used preferences mechanism for icon views' text-under-icons
2794         and directory views' open-in-new-window preference. The former
2795         was not persistent previously and the latter wasn't
2796         implemented.
2798         * nautilus-widgets/nautilus-preferences.h,
2799         * nautilus-widgets/nautilus-preferences.c:
2800         added NAUTILUS_PREFERENCE_STRING to NautilusPreferencesType enum.
2801         (nautilus_preferences_get_string), (nautilus_preferences_set_string):
2802         New functions for string preferences.
2803         (prefs_check_supported_type), (prefs_set_pref), 
2804         (nautilus_preferences_register_from_info), (make_gnome_config_string):
2805         Support for string preferences.
2806         
2807         * nautilus-widgets/nautilus-preferences-item.c:
2808         (preferences_item_construct): added a g_assert_not_reached as the
2809         NAUTILUS_PREFERENCE_STRING case in a switch statement to make the
2810         compiler happy. I didn't implement a UI for string items in the
2811         preferences dialog because the string items we're using now have
2812         their own specialized UI.
2814         * libnautilus/nautilus-global-preferences.h:
2815         added #define for NAUTILUS_PREFERENCES_ICON_VIEW_TEXT_ATTRIBUTE_NAMES
2816         * libnautilus/nautilus-global-preferences.c:
2817         (global_preferences_static_info[]): filled in initial value for
2818         NAUTILUS_PREFERENCES_ICON_VIEW_TEXT_ATTRIBUTE_NAMES
2820         * src/file-manager/fm-icon-text-window.c:
2821         (changed_attributes_option_menu_cb): Set new value using
2822         preferences mechanism instead of calling fm_directory_view_icons.
2823         (find_string_in_array), (set_preference_string),
2824         (synch_menus_with_preference), (preference_changed_cb),
2825         (fm_icon_text_window_destroy_cb):
2826         New functions used to keep UI in synch with text-attribute 
2827         preference.
2828         (create_icon_text_window): wire up notifications about 
2829         text-attribute preferences and get initial value.
2831         * src/file-manager/fm-directory-view-icons.h,
2832         * src/file-manager/fm-directory-view-icons.c:
2833         Added text_attribute_names field to details struct.
2834         (icon_text_changed_cb), (fm_directory_view_icons_initialize_class),
2835         (fm_directory_view_icons_initialize), (fm_directory_view_icons_destroy), 
2836         (text_attribute_names_changed_callback), 
2837         (fm_directory_view_icons_get_full_icon_text_attribute_names), 
2838         (fm_directory_view_icons_set_full_icon_text_attribute_names), 
2839         (fm_directory_view_icons_get_icon_text_attribute_names): 
2840         Replaced old mechanism that used FMSignaller to send notifications
2841         about the text attribute names with new preferences mechanism.
2842         
2843         * src/file-manager/fm-directory-view.c:
2844         Added user_new_window field to details structure.
2845         (fm_directory_view_activate_file_internal): New function, does
2846         what fm_directory_view_activate_file did before.
2847         (fm_directory_view_activate_file): Now respects the use_new_window
2848         preference.
2849         (bonobo_menu_open_cb), (open_cb), (open_one_in_new_window): 
2850         Changed callers to use fm_directory_view_activate_file_internal 
2851         for those cases where the use_new_window preference should be 
2852         ignored (e.g. "Open" and "Open in New Window" menu items).
2853         (fm_directory_view_initialize): Get initial value of new-window
2854         preference and set up notification for when value changes.
2855         (use_new_window_changed_callback): Refresh local copy of preference.
2856         (fm_directory_view_destroy): Remove preferences callback.
2857         
2858         * src/file-manager/fm-signaller.c,
2859         * src/file-manager/fm-signaller.h: Removed these two files
2860         that were handling the text-under-icons mechanism previously.
2861         * src/file-manager/Makefile.am: Took removed files out of build.
2863         * libnautilus/nautilus-file.c: (nautilus_file_get_owner_as_string):
2864         Removed an old debugging g_print.
2866 2000-03-15  Darin Adler  <darin@eazel.com>
2868         A quick cleanup of how we use gnome-xml.
2870         * libnautilus/Makefile.am:
2871         * libnautilus/nautilus-xml-extensions.c:
2872         * libnautilus/nautilus-xml-extensions.h:
2873         Added some new gnome-xml helper functions.
2874         
2875         * libnautilus/nautilus-directory.c:
2876         (nautilus_directory_get_file_metadata_node):
2877         * libnautilus/nautilus-file.c:
2878         (nautilus_file_get_keywords):
2879         (nautilus_file_set_keywords):
2880         * libnautilus/nautilus-icon-factory.c:
2881         (get_child_node_by_property):
2882         (get_themed_icon_file_path):
2883         * src/nautilus-bookmarklist.c:
2884         (nautilus_bookmarklist_load_file):
2885         Changed to use the new helper functions.
2887         * src/nautilus-bookmarklist.c:
2888         (nautilus_bookmarklist_save_file): Changed direct uses of root to
2889         use xmlDocGet/SetRootElement while I was editing the file.  I
2890         think this is the same change Pavel made but wasn't able to check
2891         in.
2893         * src/nautilus-bookmarklist.c:
2894         General cleanup.
2896 2000-03-14  Darin Adler  <darin@eazel.com>
2898         Added additional data to icons so they can specify where the
2899         embedded text fits in each icon.
2901         * icons/eazel/Makefile.am, icons/eazel/i-regular.xml: Added the
2902         file to specify attributes of icons. Specifically added the
2903         attribute that says there is space for embedded text in the
2904         Eazel-theme regular icon.
2906         * libnautilus/nautilus-icon-factory.h:
2907         * libnautilus/nautilus-icon-factory.c:
2908         (get_child_node_by_property), (get_themed_icon_file_path),
2909         (get_icon_file_path), (nautilus_icon_factory_get_thumbnail_uri),
2910         (load_specific_image), (load_image_for_scaling),
2911         (get_image_from_cache), (load_image_scale_if_necessary),
2912         (nautilus_icon_factory_get_pixbuf_for_icon),
2913         (nautilus_icon_factory_get_pixbuf_for_file):
2914         Added code to read a rectangle for the embedded text along with
2915         the icon, cache it with the icon, scale it with the icon, and
2916         return it to the caller along with the icon.
2918         * libnautilus/nautilus-icons-view-icon-item.c: 
2919         (nautilus_icons_view_icon_item_initialize_class),
2920         (nautilus_icons_view_icon_item_set_arg),
2921         (nautilus_icons_view_icon_item_get_arg),
2922         (nautilus_icons_view_icon_item_get_image),
2923         (nautilus_icons_view_icon_item_set_image),
2924         (nautilus_art_irect_to_gdk_rectangle),
2925         (draw_mini_text), (draw_embedded_text),
2926         (nautilus_icons_view_icon_item_draw):
2927         Changed the code that draws the embedded text to respect the
2928         text rectangle passed in. Changed the pixbuf setting to use a
2929         function instead of the arg interface and take a text rectangle
2930         along with the pixbuf.
2932         * libnautilus/gnome-icon-container-dnd.c
2933         (gnome_icon_container_dnd_begin_drag):
2934         * libnautilus/gnome-icon-container.c:
2935         (icon_get_actual_size): Got rid of callers who were using the arg
2936         interface to get at the image of an icon
2937         ("NautilusIconsViewIconItem::pixbuf").
2939         * src/file-manager/fm-directory-view-icons.c:
2940         (get_icon_property_cb): Get rid of hard-coded rule that only
2941         themes with eazel at the front of their names can display text
2942         inside the icons.
2944         * libnautilus/gnome-icon-container.c:
2945         (icon_new): Fixed a bug where icons would be super-tiny if they
2946         got too big, like if you entered a directory that was zoomed all
2947         the way in.
2948         (start_stretching), (ungrab_stretch_icon), (end_stretching),
2949         (gnome_icon_container_show_stretch_handles): Added code to grab
2950         the pointer while stretching an icon.
2951         (item_event_cb): Added a return statement that John forgot when
2952         he was editing. Without that, it was falling through to the next
2953         case, which had the same effect anyway.
2954         (update_icon): Pass the text rectangle through from the icon
2955         factory to the icon canvas item, using the new call instead of the
2956         old arg interface approach.
2958         * components/help/.cvsignore: Added entries for
2959         .la and .lo files.
2961         * components/help/Makefile.am:
2962         * components/help/hyperbola-nav-index.c:
2963         * components/help/hyperbola-nav-search.c:
2964         * libnautilus/nautilus-directory-private.h:
2965         * libnautilus/nautilus-directory.c:
2966         * src/nautilus-bookmarklist.c:
2967         Fixed flags for gnome-xml
2968         includes. Someone pointed out that you are supposed to include
2969         these as "#include <tree.h>", not "#include <gnome-xml/tree.h>" so
2970         I fixed our uses to work that way.
2972         * libnautilus/nautilus-directory.c:
2973         (nautilus_directory_get_file_metadata_node): Fixed code that was
2974         destroying something allocated by gnome-xml with g_free instead
2975         of xmlFree.
2977         * libnautilus/nautilus-file.c:
2978         (nautilus_file_get_keywords), (nautilus_file_set_keywords):
2979         Fixed storage leak where we were getting a property and not freeing it.
2981         * libnautilus/nautilus-default-file-icon.h:
2982         * libnautilus/nautilus-default-file-icon.c:
2983         * libnautilus/nautilus-icon-factory.c:
2984         (load_image_for_scaling): Got rid of the global that tells whether
2985         the default icon has an alpha channel -- it's not hardwired TRUE.
2987 2000-03-14  John Sullivan  <sullivan@eazel.com>
2989         When a directory with no explicitly-chosen viewer is
2990         visited, the currently-displayed viewer is used if
2991         possible. This matches the behavior of zooming. Darin
2992         doesn't like this and would prefer a single global
2993         setting with some possibly obscure way to set up values
2994         for specific locations, which wouldn't affect subsequent
2995         navigation. Let's try it for awhile and see if we can
2996         agree on a better solution.
2998         * src/ntl-types.h: added referring_iid field to 
2999         NautilusNavigationInfo
3000         * src/ntl-uri-map.h,
3001         * src/ntl-uri-map.c: 
3002         (nautilus_navinfo_new): Added a referring_iid parameter,
3003         a copy of which is stored in the new struct.
3004         (nautilus_navinfo_free): free the referring_iid string.
3005         (set_initial_content_iid): Use the referring_iid if there's
3006         no valid remembered iid.
3007         * src/ntl-window-msgs.c:
3008         (nautilus_window_change_location): Get the iid from the current
3009         content view and pass it to nautilus_navinfo_new.
3011 2000-03-14  John Sullivan  <sullivan@eazel.com>
3013         Directories now start out using the same view they were
3014         last displayed with.
3016         * libnautilus/nautilus-metadata.h: added #define for
3017         NAUTILUS_INITIAL_VIEW_METADATA_KEY
3018         * src/ntl-types.h: renamed field default_content_iid to
3019         initial_content_iid, to avoid ambiguity with other uses
3020         of default (e.g. default metadata value). Also made this
3021         a char * instead of a const char *.
3022         * src/ntl-uri-map.c: 
3023         (nautilus_window_load_content_view_menu),
3024         (nautilus_window_update_state): Updated for name change.
3025         (view_menu_switch_views_cb): Save iid of new view in metadata.
3026         * src/ntl-window-msgs.c:
3027         (check_iid): New GCompareFunc-type function, used by to
3028         check whether a string matches the iid of any 
3029         NautilusViewIdentifier in a list.
3030         (set_initial_content_iid): New function, gets stored iid
3031         from metadata and uses it if it's non-NULL and matches one
3032         of the available viewers (otherwise uses a fallback iid).
3033         (my_notify_when_ready): Call set_initial_content_iid after
3034         constructing the list of available viewers.
3035         (nautilus_navinfo_free): free initial_content_iid, which was
3036         created in set_initial_content_iid.
3038 2000-03-14  John Sullivan  <sullivan@eazel.com>
3040         * libnautilus/gnome-icon-container.c: (icon_destroy):
3041         Send SELECTION_CHANGED signal when destroying an icon
3042         that had been selected. This fixes bug Elliot reported
3043         where "Open in New Window" item in File menu was sensitive
3044         after the selected items had been deleted.
3046 2000-03-14  Jonathan Blandford  <jrb@redhat.com>
3048         * libnautilus/gnome-icon-container-dnd.c (drag_drop_cb): Add a
3049         gtk_drag_finish to hopefully solve half the flying windows
3050         problem.  Needs more thought then this, though.
3052 2000-03-14  John Sullivan  <sullivan@eazel.com>
3054         Fixed bug introduced in last checkin where two popup
3055         menus appear if you right-click on an icon.
3057         * libnautilus/gnome-icon-container.c: (item_event_cb):
3058         Explicitly stop signal emission when button press is handled.
3060 2000-03-13  John Sullivan  <sullivan@eazel.com>
3062         Cleanup of "icon selected for keyboard input" code and
3063         behavior. Now it always draws the stippled border around 
3064         the keyboard input icon if non-NULL, but it's only non-NULL 
3065         after the user has started type-selecting. It chooses a
3066         sensible place to start when a key is pressed, depending
3067         on the key.
3069         * libnautilus/gnome-icon-container.c:
3070         (find_first), (find_last): Now take boolean for whether to
3071         consider only selected items.
3072         (kbd_home), (kbd_end): Updated to match API changes.
3073         (set_kbd_current): Remove condition guarding highlight change.
3074         (icon_toggle_selected): Removed code to reset the
3075         current keyboard icon; no longer needed with previous change.
3076         (idle_handler): Remove code setting the keyboard-select icon
3077         at idle time.
3078         (get_nth_selected_icon): New helper function to help avoid
3079         walking through all items just to find a certain selected one.
3080         (get_first_selected_icon): Rewritten to call get_nth_selected_icon.
3081         (has_multiple_selection): New helper function that calls
3082         get_nth_selected_icon (2) to determine whether there's at least
3083         two items selected.
3084         (set_kbd_current_to_single_selected_icon): New helper function
3085         to set the keyboard navigation icon to the selected icon, if
3086         the former is non-NULL and the latter is unique.
3087         (kbd_left), (kbd_up), (kbd_right), (kbd_down): Set keyboard
3088         navigation icon if necessary: If a single item is selected, use
3089         that as starting point for keyboard navigation. If no items are
3090         selected, use find_first/last. If multiple items are selected,
3091         use find_first/last but only consider selected items.
3092         (kbd_space): Select a keyboard navigation item if necessary
3093         using find_first.
3094         (button_press_event): Nullify keyboard navigation item since
3095         we're now mouse-navigating.
3096         (gnome_icon_container_almost_drag): Don't set keyboard navigation
3097         item here.
3098         (destroy), (gnome_icon_container_icon_initialize), 
3099         (linger_select_timeout_cb), (handle_icon_enter_notify),
3100         (handle_icon_leave_notify), (item_event_cb): Removed code for
3101         obsolete experimental "linger" feature.
3103         * libnautilus/nautilus-icons-view-icon-item.c: 
3104         (nautilus_icons_view_icon_item_event): return TRUE only if the
3105         event was actually used; this fixes bug where keyboard navigation
3106         wouldn't work if mouse cursor happened to be over an item.
3108 2000-03-13  Darin Adler  <darin@eazel.com>
3110         * libnautilus/nautilus-directory.c (nautilus_directory_get):
3111         Fixed bug that caused a core dump when getting at the root
3112         directory because all the '/' characters were stripped off
3113         the URI.
3115         * src/file-manager/fm-directory-view.c: 
3116         * nautilus-widgets/nautilus-preferences.c: 
3117         Tiny formatting fixes.
3119 2000-03-13  Maciej Stachowiak  <mjs@eazel.com>
3121         * src/ntl-window.c (nautilus_window_constructed): Connect to
3122         zoom_in and zoom_out singals of zoom control and view the zoom in
3123         such cases, when applicable.
3125         * src/nautilus-zoom-control.c
3126         (nautilus_zoom_control_class_initialize): Add zoom_in and zoom_out
3127         signals.
3128         (nautilus_zoom_control_reset_zoom_level): Quick hack to get some
3129         semblance of sanity in view switching.
3131         * file-manager/fm-directory-view.c: Add Zoomable interface; for
3132         now only implement zoom_in and zoom_out methods.
3134         * components/sample/nautilus-sample-content-view.c: Added some
3135         comments.
3137 2000-03-13 Elliot Lee <sopwith@redhat.com>
3139         * nautilus-widgets/nautilus-preferences.c, src/file-manager/fm-directory-view.c:
3140         Fix pointer <-> int conversion warnings.
3142 2000-03-13  Darin Adler  <darin@eazel.com>
3144         * libnautilus/nautilus-string-list.h:
3145         * libnautilus/nautilus-string-list.c:
3146         A quick cleanup pass on the NautilusStringList class:
3147         Changed uses of gchar to char, changed g_assert to g_return_if_fail
3148         as appropriate. Fixed brace style to be emacs-friendly (open brace
3149         on same line as if statement). Fixed spelling of delimiter.
3150         Got rid of some unnecessary special cases for NULL and sped up
3151         the _equal function be eliminating the redundant length check.
3152         Changed the self-check so that it doesn't write a warning to the
3153         log when it runs.
3155 2000-03-13  Darin Adler  <darin@eazel.com>
3157         * src/file-manager/fm-properties-window.c (create_properties_window):
3158         Andy fixed a double-unref bug by removing an unref. The correct
3159         fix was to add a ref. I rolled out his change and re-fixed the bug.
3161 2000-03-12  Ramiro Estrugo  <ramiro@eazel.com>
3162         
3163         * libnautilus/nautilus-global-preferences.c,
3164         * libnautilus/nautilus-global-preferences.h:
3165         (nautilus_global_preferences_get_meta_view_iids) Add a table of
3166         meta view iids and a function to retrieve them.  This is a hack
3167         until we have better runtime detection of components.  
3168         Add some better defaults for which meta views are shown.  By
3169         default none were shown.  Undo a previous gnome_config default
3170         hack.  There is now a better fix in place in the prefs code.
3172         * nautilus-widgets/nautilus-preferences.c:
3173         (nautilus_preferences_make_gnome_config_string) A new function to
3174         make a string as expected by gnome_config with a trailing default
3175         value.  Use this string to fetch the value of the preferences.
3177         * src/Makefile.am,
3178         src/ntl-prefs.c,
3179         src/ntl-prefs.h,
3180         src/nautilus-window-menus.c,
3181         src/nautilus.h:
3182         Retire ntl-prefs.c and ntl-prefs.h.  Remove these 2 from build and
3183         all references to them.
3184         
3185         * src/ntl-app.c: 
3186         (nautilus_app_startup, nautilus_app_destroy) No need to call
3187         retired ntl-prefs functions.
3188         
3189         * src/ntl-uri-map.c:
3190         (add_meta_view_iids_from_preferences): New function.  Factor out
3191         meta iid setup code into one place.  Replace the static meta iid
3192         setup code with something that looks in preferences to see which
3193         meta views are enabled.  Next step is to make the meta view
3194         respond to pref changes.
3196 2000-03-12  Ramiro Estrugo  <ramiro@eazel.com>
3198         * src/ntl-window-state.c:
3199         (nautilus_window_set_initial_state) Make Intermediate user level
3200         work like hacker, but without showing dot files.
3202 2000-03-12  Andy Hertzfeld <andy@eazel.com>
3204         * src/file-manager/fm-properties-window.c:
3205         fixed bug where closing the properties window would cause a crash.
3206         It was caused by double deleting nautilus_file objects and fixed by
3207         removing the callback to delete the nautilus file in
3208         create_properties_window.  Darin better check this to make sure
3209         we're not leaking here.
3211 2000-03-12  Ramiro Estrugo  <ramiro@eazel.com>
3213         * nautilus-widgets/nautilus-preferences.c:
3214         (pref_hash_info_remove_callback) Properly remove the item from
3215         the list so that we dont crash later trying to munge a NULL node.
3217         * libnautilus/nautilus-global-preferences.h:
3218         (NAUTILUS_PREFERENCES_USER_LEVEL) Make sure the user level
3219         defaults to hacker.
3220         
3221 2000-03-12  Ramiro Estrugo  <ramiro@eazel.com>
3222         
3223         * libnautilus/Makefile.am: Added nautilus_string_table
3225         * libnautilus/nautilus-lib-self-check-functions.h: Added string
3226         table tests hooks.
3227         
3228         * libnautilus/nautilus-string-list.c,
3229         libnautilus/nautilus-string-list.h: New class to deal with lists
3230         of strings in a type safe manner.  Also added self tests for this
3231         class.
3232         
3233 2000-03-12  Ramiro Estrugo  <ramiro@eazel.com>
3235         * nautilus-widgets/nautilus-preferences.c:
3236         (prefs_set_pref, nautilus_preferences_register_from_info,
3237         nautilus_preferences_register_from_values): Make the preference
3238         changes persistent.
3240         * nautilus-widgets/nautilus-preferences-item.c,
3241         nautilus-widgets/nautilus-preferences-item.h,
3242         nautilus-widgets/nautilus-preferences.c,
3243         nautilus-widgets/nautilus-preferences.h,
3244         nautilus-widgets/test-nautilus-widgets.c:
3245         Dont use GtkFunadamentalType, since we obviously wont support
3246         all fundamental gtk types as preferences.  Use an enum instead.
3247         Makes the preferences type whacking code exactly 14.85% more type
3248         safe.
3250 2000-03-12  Ramiro Estrugo  <ramiro@eazel.com>
3252         * src/ntl-window-state.c:
3253         (nautilus_window_set_initial_state): Use the alternative home
3254         place if needed for the user level.
3256 2000-03-12  Ramiro Estrugo  <ramiro@eazel.com>
3258         * nautilus-file-utilities.h,
3259         nautilus-file-utilities.c:
3260         (nautilus_user_top_directory): New function.  Used to obtain
3261         the user's "top" directory.  The top directory is an alternative
3262         home place for naive users.
3264 2000-03-12  Ramiro Estrugo  <ramiro@eazel.com>
3266         * data/.cvsignore,
3267         data/Makefile.am:
3268         Add a data directory to the tree.  This is the default per-user
3269         data that nautilus installs the first time it runs.
3270         
3271         *data/top/.cvsignore,
3272         data/top/Makefile.am,
3273         data/top/Welcome:
3274         Add a top directory to the tree.  The top directory is an
3275         alternative home place for novice users.
3277         *configure.in,
3278         Makefile.am: 
3279         Grok the above.
3280         
3281 2000-03-12  Ramiro Estrugo  <ramiro@eazel.com>
3283         * libnautilus/nautilus-global-preferences.c,
3284         libnautilus/nautilus-global-preferences.h,
3285         src/ntl-window-state.c:
3287         Use better names for the global preferences macros.
3288         Cleanup some #include cruft.
3289         
3290         * nautilus-widgets/nautilus-preferences.c,
3291         nautilus-widgets/nautilus-preferences.h:
3292         (nautilus_prefecences_remove_callback):
3293         New method for removing callbacks.
3295         * src/file-manager/fm-directory-view.c:
3296         (queue_pending_files, fm_directory_view_initialize ,
3297         fm_directory_view_destroy): Filter files according to the user level.
3298         Add/Remove a preferences callback to keep track of user level changes.
3300 2000-03-12  Ramiro Estrugo  <ramiro@eazel.com>
3302         * AUTHORS,
3303         src/nautilus-window-menus.c: Added myself.
3305 2000-03-12  Ramiro Estrugo  <ramiro@eazel.com>
3307         * src/nautilus-window-menus.c:
3308         * src/ntl-window-state.c:
3309         * src/ntl-app.c:
3311         Update for naming changes in the preferences api.
3313 2000-03-12  Ramiro Estrugo  <ramiro@eazel.com>
3315         * nautilus-widgets/nautilus-preferences-box.c,
3316         nautilus-widgets/nautilus-preferences-box.h,
3317         nautilus-widgets/nautilus-preferences-dialog.c,
3318         nautilus-widgets/nautilus-preferences-dialog.h,
3319         nautilus-widgets/nautilus-preferences-group.c,
3320         nautilus-widgets/nautilus-preferences-group.h,
3321         nautilus-widgets/nautilus-preferences-item.c,
3322         nautilus-widgets/nautilus-preferences-item.h,
3323         nautilus-widgets/nautilus-preferences-pane.c,
3324         nautilus-widgets/nautilus-preferences-pane.h,
3325         nautilus-widgets/nautilus-preferences.c,
3326         nautilus-widgets/nautilus-preferences.h,
3327         nautilus-widgets/nautilus-radio-button-group.h,
3328         nautilus-widgets/test-nautilus-widgets.c,
3329         nautilus-widgets/test-preferences.c:
3331         Cleanup naming of everything to use "preferences" instead of
3332         "prefs".  Remove a bunch of unused includes.  Use "Details"
3333         instead of "Private" for private structures.  Fix pref item
3334         support of boolean values.
3335         
3336 2000-03-12  Ramiro Estrugo  <ramiro@eazel.com>
3338         * components/help/Makefile.am:
3339         * components/history/Makefile.am:
3340         * components/html/Makefile.am:
3341         * components/music/Makefile.am:
3342         * components/notes/Makefile.am:
3343         * components/sample/Makefile.am:
3344         * components/websearch/Makefile.am:
3345         Link all components with nautilus-widgets.
3346         
3347 2000-03-12  Ramiro Estrugo  <ramiro@eazel.com>
3349         * libnautilus/Makefile.am,
3350         libnautilus/nautilus-global-preferences.c: New file
3351         libnautilus/nautilus-global-preferences.h: New file
3353         * src/Makefile.am,
3354         src/nautilus-global-preferences.c: Removed
3355         src/nautilus-global-preferences.h: Removed
3357         Moved global preferences to libnautilus.
3359 2000-03-10  Darin Adler  <darin@eazel.com>
3361         * libnautilus/nautilus-icons-view-icon-item.c
3362         (nautilus_icons_view_icon_item_point):
3363         Fixed typo that broke all hit testing except for rubber band
3364         selection! (Sorry.)
3365         
3366         * libnautilus/gnome-icon-container-dnd.c
3367         (set_gnome_icon_list_selection, set_uri_list_selection),
3368         libnautilus/gnome-icon-container-private.h,
3369         libnautilus/gnome-icon-container.h,
3370         libnautilus/gnome-icon-container.c
3371         (gnome_icon_container_get_icon_uri,
3372         gnome_icon_container_initialize_class, gnome_icon_container_new,
3373         update_icon, gnome_icon_container_update,
3374         gnome_icon_container_request_update),
3375         src/file-manager/fm-directory-view-icons.c (create_icon_container,
3376         get_icon_images_cb, get_icon_uri_cb, get_icon_text_cb,
3377         get_icon_property_cb): Change code that used to use a separate
3378         controller object to just use signals on the icon container
3379         instead.
3381         * libnautilus/nautilus-gtk-extensions.h,
3382         libnautilus/nautilus-gtk-extensions.c,
3383         src/file-manager/fm-directory-view.c: Add new signal marshal
3384         functions as needed and changed the name of one of the old
3385         functions.
3387         * libnautilus/Makefile.am,
3388         libnautilus/nautilus-icons-controller.h,
3389         libnautilus/nautilus-icons-controller.c,
3390         src/file-manager/Makefile.am,
3391         src/file-manager/fm-icons-controller.h,
3392         src/file-manager/fm-icons-controller.c: Removed the old controller
3393         object, it was a bad idea.
3395 2000-03-10  Ramiro Estrugo  <ramiro@eazel.com>
3397         * src/Makefile.am
3398         Moved prefs things to nautilus-widgets.
3399         Use alphabetization technology on the source list.
3400         
3401         * src/nautilus-global-preferences.c,
3402           src/nautilus-global-preferences.h:
3403         New files that to deal with preferences that are
3404         global to nautilus.
3406         * src/nautilus-window-menus.c:
3407         Use the new preferences dialog.
3408         
3409         * src/ntl-window-state.c:
3410         Go to a different home directory based on the user level.
3411         Commented off until andy makes a nice default home directory
3412         for novice users.
3414         * src/ntl-prefs.c,
3415           src/ntl-prefs.h:
3416         Renamed a typedef to avoid conflict.  This is a temporary hack.
3417         
3418         * src/nautilus-prefs-box.c
3419           src/nautilus-prefs-box.h,
3420           src/nautilus-prefs-dialog.c,
3421           src/nautilus-prefs-dialog.h,
3422           src/nautilus-prefs-group-check.c,
3423           src/nautilus-prefs-group-check.h,
3424           src/nautilus-prefs-group-radio.c,
3425           src/nautilus-prefs-group-radio.h,
3426           src/nautilus-prefs-group.c,
3427           src/nautilus-prefs-group.h,
3428           src/nautilus-prefs-pane.c,
3429           src/nautilus-prefs-pane.h,
3430           src/ntl-prefs.c,
3431           src/ntl-prefs.h:
3432         Moved prefs widegtry things to nautilus-widgets.
3434 2000-03-10  Ramiro Estrugo  <ramiro@eazel.com>
3436         * nautilus-widgets/Makefile.am,
3437           nautilus-widgets/nautilus-preferences-box.c
3438           nautilus-widgets/nautilus-preferences-box.h,
3439           nautilus-widgets/nautilus-preferences-dialog.c,
3440           nautilus-widgets/nautilus-preferences-dialog.h,
3441           nautilus-widgets/nautilus-preferences-group.c,
3442           nautilus-widgets/nautilus-preferences-group.h,
3443           nautilus-widgets/nautilus-preferences-item.c,
3444           nautilus-widgets/nautilus-preferences-item.h,
3445           nautilus-widgets/nautilus-preferences-pane.c,
3446           nautilus-widgets/nautilus-preferences-pane.h,
3447           nautilus-widgets/nautilus-preferences.c,
3448           nautilus-widgets/nautilus-preferences.h,
3449           nautilus-widgets/nautilus-radio-button-group.c,
3450           nautilus-widgets/nautilus-radio-button-group.h,
3451           nautilus-widgets/test-nautilus-widgets.c,
3452           nautilus-widgets/test-preferences.c:
3453         Moved all the preference widetry to nautilus-widgets.
3454         Added a test program for preferences (not built).
3455         Renamed files to user "preference" instead of "prefs".
3457 2000-03-10  Darin Adler  <darin@eazel.com>
3459         * libnautilus/Makefile.am, libnautilus/gnome-icon-container-dnd.c
3460           (set_gnome_icon_list_selection,
3461           gnome_icon_container_dnd_begin_drag),
3462           libnautilus/gnome-icon-container.c (icon_is_in_region,
3463           start_stretching), libnautilus/nautilus-icons-view-icon-item.h,
3464           libnautilus/nautilus-icons-view-icon-item.c (hit_stretch_handle,
3465           hit_test_pixbuf, hit_test, nautilus_icons_view_icon_item_point,
3466           nautilus_icons_view_icon_item_get_icon_world_rectangle,
3467           nautilus_icons_view_icon_item_get_icon_rectangle,
3468           nautilus_icons_view_icon_item_get_icon_window_rectangle,
3469           nautilus_icons_view_icon_item_get_hit_stretch_handle,
3470           hit_stretch_handle,
3471           nautilus_icons_view_icon_item_hit_test_stretch_handles,
3472           nautilus_icons_view_icon_item_hit_test_rectangle):
3473         Fixed rubber banding to hit test with all the parts of the icon,
3474         not just the icon pixbuf itself. Did this by changing all the
3475         internal hit testing to use rects instead of points. At the same
3476         time changed the external interface to always use world
3477         coordinates for clarity.
3479         * libnautilus/nautilus-directory.c (compare_file_with_name),
3480         libnautilus/nautilus-file.c (nautilus_file_set_keywords): Fixed
3481         some void * problems that upset newer versions of GCC but not the
3482         older one that I'm using.
3484         * libnautilus/nautilus-gtk-extensions.h,
3485         libnautilus/nautilus-gtk-extensions.c: Formatting and include
3486         statements fix up.
3487         
3488 2000-03-10  Jonathan Blandford  <jrb@redhat.com>
3490         * libnautilus/gnome-icon-container.c (button_press_event): Avoid a
3491         bug where we get stuck grabs when you double click.
3493 2000-03-10  Ramiro Estrugo  <ramiro@eazel.com>
3495         * nautilus-widgets:
3496         New directory.  A place to put generic widgets that are not
3497         necessarily coupled to nautilus.
3499         * configure.in: Added nautilus-widgets
3500         * Makefile.am: Added nautilus-widgets
3502         * nautilus-widgets/nautilus-radio-button-group.h,
3503         * nautilus-widgets/nautilus-radio-button-group.c: Added a radio 
3504         group widget.
3506         * nautilus-widgets/test-nautilus-widgets.c: Test program for 
3507         nautilus-widgets.
3509 2000-03-10  Maciej Stachowiak  <mjs@eazel.com>
3511         * src/ntl-window.c, src/ntl-window.h: store zoom_control object in
3512         the window.
3513         
3514         * src/nautilus-zoomable-frame-svr.c: New file; implement CORBA
3515         server for Nautilus::ZommableFrame interface.
3516         * src/ntl-view-private.h: prototypes for shared stuff needed to make
3517         this work.
3518         * src/ntl-view.c, src/ntl-view.h: Attach a Nautilus::ZoomableFrame
3519         interface to the Nautilus::ViewFrame.
3521         * libnautilus/nautilus-gtk-extensions.h,
3522         libnautilus/nautilus-gtk-extensions.c
3523         (nautilus_gtk_marshal_NONE__DOUBLE): New function.
3525         * src/ntl-uri-map.c (my_notify_when_ready): Enable both
3526         html-appropriate and directory-appropriate views for
3527         special/webdav-directory mime type (temporary hack).
3528         
3529 2000-03-09  Darin Adler  <darin@eazel.com>
3531         * libnautilus/gnome-icon-container.c (set_scroll_region):
3532         It turns out that you aren't intended to reset the scroll region
3533         once you have items in the canvas. We need to do that, so I had
3534         to write some code that would update all the items when that happens.
3536         * libnautilus/nautilus-icons-view-icon-item.c:
3537         (recompute_bounding_box): Rewrote this to not assume that the
3538         icon items are all top-level items.
3539         (compute_text_rectangle, hit_test,
3540         nautilus_icons_view_icon_item_bounds): Change hit testing so
3541         it includes hits on the text. The rubberband still has to be
3542         fixed so it doesn't have the same problem.
3544         * libnautilus/nautilus-file.c: Improved a comment.
3545         
3546         * RENAMING: Some more name changes.
3548 2000-03-09  John Sullivan <sullivan@eazel.com>
3550         * libnautilus/nautilus-file.c:
3551         (nautilus_file_unref): Got this fix wrong last time, causing
3552         GTK-CRITICALs when deleting files. Remember file->is_gone
3553         before unreffing directory since you can't test possibly-destroyed
3554         file afterward.
3556 2000-03-09  John Sullivan <sullivan@eazel.com>
3558         * libnautilus/nautilus-directory-private.h:
3559         (nautilus_directory_number_outstanding): Added prototype for this
3560         debugging function.
3561         * libnautilus/nautilus-directory.c:
3562         (nautilus_directory_number_outstanding): New debugging function,
3563         used in NautilusFile self-checks.
3564         (nautilus_self_check_directory): Pulled out the NautilusFile tests
3565         to move them to nautilus-file.c.
3566         * libnautilus/nautilus-file.c:
3567         (nautilus_file_unref): Move gtk_object_unref after
3568         nautilus_file_free call. Darin noticed this bug while reading
3569         the code with me.
3570         (nautilus_file_list_unref): Made this unref instead of ref. Oops!
3571         This was causing NautilusDirectory objects never to go away after
3572         visiting a directory; now they're destroyed when you leave.
3573         (nautilus_self_check_file): New function, some of this was moved
3574         over from nautilus-directory.c, and I added some ref-count checks.
3575         * libnautilus/nautilus-lib-self-check-functions.h:
3576         Included nautilus_self_check_file in list of self-check functions.
3578 2000-03-09  Andy Hertzfeld <andy@eazel.com>
3580         * libnautilus/nautilus-icons-view-icon-item.c:
3581         tweaked constants used to control amount of pre-lighting in "lighten"
3582         routine
3583         * components/music/nautilus-music-view.c:
3584         fixed bug that Maciej found where the track number would show up as -1
3585         if there was no encoded track number; now they show up as blank.
3586         
3587 2000-03-09  Maciej Stachowiak  <mjs@eazel.com>
3589         * libnautilus/nautilus-zoomable.c
3590         (impl_Nautilus_Zoomable__create): Pass the correct thing as the
3591         servant to avoid crashing on instantiation.     
3592         (nautilus_zoomable_real_set_bonobo_control): ref and sink the
3593         BonoboControl Gtk object.
3594         (nautilus_zoomable_destroy): unref the control instead of
3595         destroying.
3597         * idl/nautilus.idl: Reformat, add emacs magic to maintain indent
3598         style.
3600 2000-03-09  Darin Adler  <darin@eazel.com>
3602         * src/file-manager/fm-directory-view-icons.c
3603         (fm_directory_view_icons_clear,
3604         fm_directory_view_icons_begin_loading),
3605         src/file-manager/fm-directory-view-list.c
3606         (fm_directory_view_list_clear,
3607         fm_directory_view_list_begin_loading): Moved the code that loads
3608         the background color from clear to begin_loading. Otherwise the
3609         background color from one directory affects another.
3611 2000-03-09  Darin Adler  <darin@eazel.com>
3613         * nautilus-icons-view-icon-item.c (emblem_layout_next,
3614         nautilus_icons_view_icon_item_bounds):
3615         Andy's check-in yesterday accidentally rolled out some changes
3616         to this file. The changes include the typos that John and I had
3617         fixed in emblem_layout_next and nautilus_icons_view_icon_item_bounds.
3619         * nautilus-icons-view-icon-item.c:
3620         As Andy was about to do anyway, I tightened up the emblem
3621         positioning so they are closer to each other by changing the
3622         hard-coded constant EMBLEM_SPACING.
3623         
3624 2000-03-09  Darin Adler  <darin@eazel.com>
3626         * libnautilus/nautilus-directory-private.h,
3627         libnautilus/nautilus-directory.c, libnautilus/nautilus-file.c
3628         (nautilus_directory_find_file, compare_file_with_name,
3629         nautilus_directory_get, nautilus_file_get): Fixed bugs relating to
3630         multiple directory and file objects for the same entity. Stripped
3631         trailing '/' characters in nautilus_directory_get and changed
3632         nautilus_file_get to return already-existing files instead of
3633         always creating new ones. Added self-checks to make sure this
3634         works.
3636         * libnautilus/nautilus-directory.c
3637         (nautilus_directory_try_to_read_metafile): Fixed bug where
3638         metafile reading would fail. The gnome-xml parser requires a null
3639         character at the end of the file, even though the size is passed
3640         in!
3642         * libnautilus/nautilus-directory.c
3643         (nautilus_directory_remove_write_metafile_idle,
3644         nautilus_directory_finalize,
3645         nautilus_directory_try_to_write_metafile,
3646         nautilus_directory_request_write_metafile): Changed metafile
3647         writing so it always happens at idle time.
3649         * libnautilus/nautilus-lib-self-check-functions.h: Changed order
3650         so lower-level tests come before higher-level ones.
3652         * libnautilus/nautilus-string.h, libnautilus/nautilus-string.c:
3653         Renamed functions:
3654                 nautilus_has_prefix -> nautilus_str_has_prefix
3655                 nautilus_strdup_prefix -> nautilus_str_get_prefix
3656                 nautilus_has_suffix -> nautilus_str_has_suffix
3657                 nautilus_strstrip -> nautilus_str_strip_chr
3658                 nautilus_string_to_int -> nautilus_str_to_int
3659                 nautilus_eat_string_to_int -> nautilus_eat_str_to_int
3660         Changed nautilus_str_strip_chr not to modify in place.
3661         Added nautilus_str_strip_trailing_chr.
3663         * components/music/nautilus-music-view.c (is_mp3_file,
3664         nautilus_music_view_update_from_uri),
3665         libnautilus/nautilus-icon-factory.c
3666         (nautilus_icon_factory_get_icon_for_file, make_thumbnail_path,
3667         load_specific_image), libnautilus/nautilus-icons-view-icon-item.c
3668         (draw_mini_text), src/ntl-index-panel.c (command_button_cb,
3669         add_command_buttons), src/ntl-window-msgs.c
3670         (nautilus_window_change_location_2),
3671         src/file-manager-fm-directory-view-icons.c
3672         (fm_directory_view_icons_compute_menu_item_info),
3673         src/file-manager/fm-directory-view.c (compute_menu_item_info),
3674         src/file-manager/fm-icons-controller.c
3675         (fm_icons_controller_get_icon_property): Switched callers to use
3676         new names for string calls.
3678         * libnautilus/gnome-icon-container.c (destroy): Reformatting.
3680 2000-03-09  John Sullivan <sullivan@eazel.com>
3682         * libnautilus/gnome-icon-container.c: (update_icon):
3683         Changed decision of when to draw mini-text on an icon to
3684         be based on icon size rather than zoom level, so it works
3685         more sensibly with stretched icons.
3687 2000-03-09  John Sullivan <sullivan@eazel.com>
3689         Bug fixes and memory leak fixes.
3691         * libnautilus/gnome-icon-container.c:
3692         (icon_destroy): Renamed to icon_free and fixed storage leak by
3693         freeing icon struct.
3694         (remove_icon_from_container): Renamed to icon_destroy and fixed
3695         bug by setting details->kbd_current to NULL if it had been the
3696         icon being destroyed.
3697         (destroy): Fixed storage leak by calling gnome_icon_container_clear.
3698         
3699         * libnautilus/nautilus-directory.c: (dequeue_pending_idle_cb):
3700         Added file != NULL assert.
3701         
3702         * libnautilus/nautilus-file.c: (nautilus_file_delete):
3703         Fix bug where NULLs were sneaking into file list, and
3704         causing havoc later, by setting list to result of g_list_remove.
3706 2000-03-09 Elliot Lee <sopwith@redhat.com>
3707         
3708         * libnautilus/Makefile.am: Install libnautilus.h
3709         * src/ntl-uri-map.c: Handle mapping of special schemes
3710         (i.e. unknown to gnome-vfs). Currently just 'irc'.
3712 2000-03-08  John Sullivan <sullivan@eazel.com>
3714         * libnautilus/nautilus-icon-factory.c:
3715         (compare_thumbnail_info): New function, compares uris of two
3716         NautilusThumbnailInfos.
3717         (nautilus_icon_factory_get_thumbnail_uri): Use compare_thumbnail_info
3718         to avoid putting the same uri in the thumbnail-making queue multiple
3719         times. This may or may not have been the cause of an intermittent
3720         thumbnail-creating problem I was seeing.
3722 2000-03-08  Andy Hertzfeld <andy@eazel.com>
3724         * libnautilus/nautilus-icons-view-icon-item.c:
3725         implemented pre-lighting for icons by overriding the event method
3726         to maintain the pre-lit boolean, and then using the boolean to
3727         decide when to lighten the icon by using a new "lighten" routine
3728         that manipulates the pixbuf.
3729         
3730         * libnautilus/gnome-icon-container-dnd.c:
3731         only use semi-transparent dragging for relatively small icons, due
3732         to X performance limitations.
3733         
3734         * libnautilus/gnome-icon-container.c:
3735         change the ICON_MAXIMUM_SIZE used as a threshold for scaling from
3736         80 to 96, to step around bug of scaling too much for thumbnails.
3737         
3738 2000-03-08  Darin Adler  <darin@eazel.com>
3740         You can now use Set Properties to attach keywords to a file,
3741         which will cause it to have emblems attached to its icon.
3743         * libnautilus/gnome-icon-container.h,
3744         libnautilus/gnome-icon-container.c (gnome_icon_container_update,
3745         gnome_icon_container_update_icon),
3746         libnautilus/nautilus-directory-private.h,
3747         libnautilus/nautilus-directory.c
3748         (nautilus_directory_files_changed), libnautilus/nautilus-file.h,
3749         libnautilus/nautilus-file.c (nautilus_file_changed),
3750         src/file-manager/fm-directory-view.h,
3751         src/file-manager/fm-directory-view.c,
3752         src/file-manager/fm-directory-view-icons.c,
3753         src/file-manager/fm-directory-view-list.c,: Add files_changed
3754         machinery in so views will notice changes to a NautilusFile.
3756         * libnautilus/nautilus-icon-factory.h,
3757         libnautilus/nautilus-icon-factory.c
3758         (nautilus_icon_factory_get_thumbnail_uri,
3759         nautilus_icon_factor_get_icon_for_file, check_for_thumbnails),
3760         libnautilus/nautilus-icons-controller.h,
3761         libnautilus/nautilus-icons-controller.c,
3762         (nautilus_icons_controller_update_icon),
3763         src/file-manager/fm-icons-controller.c
3764         (fm_icons_controller_update_icon): Use the files_changed machinery
3765         instead of a special case in the icon controller to tell the view
3766         about a new thumbnail.
3768         * libnautilus/nautilus-icons-view-icon-item.c
3769         (emblem_layout_next): Fixed typo that caused emblems to go down
3770         one side of the icon instead of going around.
3772         * libnautilus/nautilus-directory-private.h,
3773         libnautilus/nautilus-directory.c
3774         (nautilus_directory_get_file_metadata_node,
3775         nautilus_directory_request_write_metafile),
3776         libnautilus/nautilus-file.c (nautilus_file_set_keywords):
3777         Implemented the set_keywords operation so we can change the
3778         keywords for a file.
3780         * src/file-manager/fm-icon-text-window.c
3781         (create_icon_text_window): Fixed a prototype.
3783         * src/file-manager/fm-properties-window.c (property_button_update,
3784         property_button_toggled, create_properties_window,
3785         fm_properties_window_get_or_create): Implement a first cut at a
3786         properties window.
3788 2000-03-07  John Sullivan  <sullivan@eazel.com>
3790         * libnautilus/nautilus-icons-view-icon-item.c:
3791         (nautilus_icons_view_icon_item_bounds): Fixed typo that was
3792         causing bottom coordinate of icon bounds to be uninitialized.
3793         This caused wacky results when keyboard navigating and probably
3794         elsewhere.
3795         
3796         * libnautilus/gnome-icon-container.c:
3797         (icon_toggle_selected): Reset keyboard-selected icon if it's
3798         this one so it updates whether or not to draw stippled outline.
3799         (set_kbd_current): Only tell the icon to draw stippled outline
3800         if it isn't selected the "normal" way and some other icon is.
3801         (In other words, only display the keyboard-selected icon when
3802         it diverges from the regular selection, and don't display it
3803         when there is no regular selection.)
3804         (kbd_space): Toggle the "normal" selection state of the
3805         keyboard-selected icon. It had been forcing it to true, making
3806         it impossible to keyboard-unselect a single item while leaving
3807         the rest of the selection unchanged.
3809 2000-03-07  Darin Adler  <darin@eazel.com>
3811         * components/music/nautilus-music-view.c,
3812         components/notes/ntl-notes.c, libnautilus/Makefile.am,
3813         libnautilus/nautilus-directory-private.h,
3814         libnautilus/nautilus-directory.h,
3815         libnautilus/nautilus-directory.c,
3816         libnautilus/nautilus-file-private.h, libnautilus/nautilus-file.h,
3817         libnautilus/nautilus-file.c, libnautilus/nautilus-icon-factory.h,
3818         src/ntl-index-panel.c, src/file-manager/fm-directory-view.h:
3819         Broke the file part of nautilus-directory.[ch] into
3820         nautilus-file.[ch].
3822         * libnautilus/nautilus-string.c (nautilus_strstrip): Added more
3823         tests. Changed algorithm on strstrip so it's linear instead of
3824         n^2.
3826         * libnautilus/gnome-icon-container.c
3827         (gnome_icon_container_initialize): Fixed font for "larger" zoom
3828         level. Also made it assert if the font can't be loaded.
3830         * components/help/hyperbola-nav-index.c (despace):
3831         Fixed warning.
3833         * libnautilus/gnome-icon-container-dnd.c,
3834         libnautilus/nautilus-string.h: Whitespace.
3836         * src/file-manager/Makefile.am,
3837         src/file-manager/fm-directory-view.c,
3838         src/file-manager/fm-properties-window.h,
3839         src/file-manager/fm-properties-window.c: Added properties window
3840         hook, but no window yet. The menu item still needs to be added to
3841         the main menus as well as the context menus.
3843         * src/file-manager/fm-directory-view.c,
3844         src/file-manager/fm-directory-view-icons.c,
3845         src/file-manager/fm-icon-text-window.h,
3846         src/file-manager/fm-icon-text-window.c: A little cleanup. Shorter
3847         names.
3849 2000-03-08  Ramiro Estrugo  <ramiro@eazel.com>
3851         * src/nautilus-prefs-group-radio.h,
3852         src/nautilus-prefs-group-radio.h: Make the radio group emit proper
3853         signals on changes.
3855         * src/nautilus-prefs-pane.c, src/nautilus-prefs-group.c
3856         src/nautilus-prefs-box.c: Make everything prettier by using nice
3857         offsets.
3859 2000-03-08  Ramiro Estrugo  <ramiro@eazel.com>
3861         Added macros to check, assert and invoke class methods
3862         for a given GtkOject.
3864         * libnautilus/nautilus-gtk-macros.h:
3865         (NAUTILUS_KLASS) Access the class for a given object
3866         (NAUTILUS_INVOKE_METHOD) Invoke a method for a given object
3867         (NAUTILUS_ACCESS_METHOD) Access a method.
3868         (NAUTILUS_ASSERT_METHOD) Assert the non-nullness of a method
3869         for a given object
3870         (NAUTILUS_INVOKE_METHOD_IF) Invoke a method if it aint null.
3872 2000-03-08  Ramiro Estrugo  <ramiro@eazel.com>
3874         First whack at having a better preferences ui.
3876         * src/nautilus-prefs-box.h,
3877         src/nautilus-prefs-box.c: The main prefefernce widgetry widget.
3878         It manages the preferene category list and the creation and 
3879         management of right hand side panes.
3881         * src/nautilus-prefs-dialog.h,
3882         src/nautilus-prefs-dialog.c: A GnomeDialog sublass to make
3883         it easier for the app to deal with prefs.
3885         * src/nautilus-prefs-group.h,
3886         src/nautilus-prefs-group.c: An abstract widget to manage a
3887         group of related preferences.
3889         * src/nautilus-prefs-group-check.h,
3890         src/nautilus-prefs-group-check.c: A widget to manage a group
3891         of boolean preferences.
3893         * src/nautilus-prefs-group-radio.h,
3894         src/nautilus-prefs-group-radio.c: A widget to manage a 
3895         "one of many" preference.
3897         * src/nautilus-prefs-pane.h,
3898         src/nautilus-prefs-pane.c: A widget to manage the right hand
3899         side of the prefs box.  
3901 2000-03-07  Darin Adler  <darin@eazel.com>
3903         Reimplemented the delete command to use NautilusFile instead of
3904         going directly to the file system.
3906         * libnautilus/gnome-icon-container.h,
3907         libnautilus/gnome-icon-container.c
3908         (gnome_icon_container_clear_selected_items),
3909         (gnome_icon_container_remove): Got rid of the call that removes
3910         all the icons in the selection and replaced it with a call that
3911         removes a specific icon.
3913         * libnautilus/nautilus-directory.h,
3914         libnautilus/nautilus-directory.c
3915         (nautilus_directory_initialize_class), (nautilus_file_unref),
3916         (nautilus_file_detach), (nautilus_file_free),
3917         (nautilus_file_delete), (nautilus_file_is_gone): Implemented a
3918         call to delete a file and emit the files_removed signal as needed.
3920         * src/file-manager/fm-directory-view.h,
3921         src/file-manager/fm-directory-view.c
3922         (fm_directory_view_delete_selection),
3923         (fm_directory_view_begin_adding_entries),
3924         (fm_directory_view_add_entry),
3925         (fm_directory_view_done_adding_entries), (display_pending_files),
3926         (add_or_remove_files), (add_files_cb), (remove_files_cb),
3927         (delete_one): Changed the delete implementation to call
3928         nautilus_file_delete and got rid of the explicit call to
3929         delete_selection. The views now will remove their entries in
3930         response to the change in the model.
3932         * src/file-manager/fm-directory-view-icons.c
3933         (fm_directory_view_icons_remove_entry),
3934         (fm_directory_view_icons_delete_selection),
3935         src/file-manager/fm-directory-view-list.c
3936         (fm_directory_view_list_remove_entry),
3937         (fm_directory_view_list_delete_selection): Eliminated the
3938         delete_selection function in favor of the remove_entry function.
3940 2000-03-07  Andy Hertzfeld <andy@eazel.com>
3942         * libnautilus/gnome-icon-container-dnd.c:
3943         implemented semi-transparent dragging by writing a make-semi-transparent
3944         routine that generates a gdk-pixbuf with a checkerboarded alpha channel.
3945         The dragging is a bit too slow, so we might have to limit this to
3946         small images, but for now it's there for all of them.
3947         
3948         * libnautilus/gnome-icon-container.c:
3949         make the text beneath icons use a sans-serif font (helvetica) at Susan's
3950         request.
3951         
3952 2000-03-07  Maciej Stachowiak  <mjs@eazel.com>
3954         * src/ntl-uri-map.c (my_notify_when_ready): Use eog-image-viewer,
3955         not embeddable:image-generic for viewing images.
3957 2000-03-07  John Sullivan  <sullivan@eazel.com>
3959         * src/ntl-view-nautilus.c:
3960         (nautilus_view_try_load_client): Removed recently-added
3961         activate call since Maciej implemented a more general solution.
3962         (destroy_nautilus_view): Removed recently-added
3963         deactivate call since Maciej implemented a more general solution.
3965 2000-03-07  John Sullivan  <sullivan@eazel.com>
3967         Added Stretch/Restore menu items to Settings menu, and made some
3968         other menu mechanism tweaks.
3970         * src/nautilus-window-menus.c: Gave General Settings an underline
3971         accelerator character.
3972         
3973         * src/file-manager/fm-directory-view.h,
3974         * src/file-manager/fm-directory-view.c:
3975         (fm_directory_view_get_bonobo_ui_handler): New function, exposed
3976         so subclasses can call.
3977         (fm_directory_view_merge_menus), (fm_directory_view_real_merge_menus): 
3978         Removed BonoboUIHandler parameter. Updated callers.
3979         * src/file-manager/fm-directory-view-icons.c:
3980         Store react_to_icon_change_idle_id in details.
3981         (fm_directory_view_icons_initialize_class): fill in update_menus
3982         function pointer.
3983         (fm_directory_view_icons_merge_menus): Removed BonoboUIHandler
3984         parameter.
3985         (fm_directory_view-icons_destroy): remove react_to_icon_change_idle_id
3986         if non-zero.
3987         (show_stretch_handles_cb): update menus since stretch item might
3988         have changed state.
3989         (unstretch_icons_cb): update menus since restore item might have
3990         changed state.
3991         (fm_directory_view_icons_compute_menu_item_info): New helper
3992         function used for both context and bonobo menus.
3993         (append_one_context_menu_item): New helper function used for
3994         context menus.
3995         (fm_directory_view_icons_append_selection_context_menu_items),
3996         (fm_directory_view_icons_append_background_context_menu_items):
3997         Use the new helper functions.
3998         (append_bonobo_menu_item), (update_bonobo_menu_item): New helper 
3999         functions used for bonobo menus.
4000         (fm_directory_view_icons_merge_menus): include stretch and restore
4001         menu items in Settings menu.
4002         (fm_directory_view_icons_update_menus): update wording and sensitivity
4003         of stretch and restore menu items.
4004         (fm_directory_view_icons_react_to_icon_change_idle_cb): update menus,
4005         since at least Restore item may have changed.
4006         (fm_directory_view_icons_icon_changed_cb): Schedule idle callback
4007         to update menus, since doing it here affects stretching too much.
4009 2000-03-07  Maciej Stachowiak  <mjs@eazel.com>
4011         * src/ntl-view-bonobo-subdoc.c (bonobo_subdoc_try_load_client):
4012         Change a few things in the code so that embeddables get activated
4013         properly; this makes scrolling and editing work in
4014         bonobo-text-plain for instance.
4015         
4016         * src/ntl-content-view.c, src/ntl-content-view.h
4017         (nautilus_content_view_set_active): New function; intended to be
4018         called when a content view becomes active, which should activate
4019         the controls and merge its menu and toolbar items.
4020         * ntl-window.c (nautilus_window_real_set_content_view): Call
4021         `nautilus_content_view_set_active' on the new content view.
4023 2000-03-07  Darin Adler  <darin@eazel.com>
4025         * nautilus-icons-view-icon-item.c (nautilus_icons_view_icon_item_bounds):
4026         Fixed a typo that was causing the text area to not be included in the
4027         bounds of an icon item.
4029 2000-03-07  Darin Adler  <darin@eazel.com>
4031         * libnautilus/nautilus-directory.h,
4032         libnautilus/nautilus-directory.c (get_file_metadata_node),
4033         (nautilus_directory_get_file_metadata),
4034         (nautilus_file_get_keywords): Added nautilus_file_get_keywords,
4035         which returns a GList of keywords.
4037         * libnautilus/nautilus-icon-factory.c (add_size_to_image_name),
4038         (get_themed_icon_file_path), (get_icon_file_path), (add_emblem),
4039         (nautilus_icon_factory_get_emblem_icons_for_file): Changed icon
4040         names to not include the extension and wired some extensions into
4041         the icon-reading code. The old code wired the entire file name, so
4042         this is a bit more flexible. Added code to return an emblem for
4043         each keyword attached to a file as well as the symbolic link emblem.
4045         * libnautilus/gnome-icon-container.c (update_icon): Handle NULL
4046         pixbufs for emblems. This happens when a keyword is specified that
4047         doesn't have a corresponding emblem icon.  Add g_list_reverse call
4048         to keep emblems in the correct order.
4050         * src/file-manager/fm-directory-view-icons.c
4051         (fm_directory_view_icons_merge_menus): Took out g_message left
4052         over from Bonobo menu merge work.
4054         * libnautilus/nautilus-glib-extensions.h,
4055         libnautilus/nautilus-glib-extensions.c
4056         (nautilus_g_list_free_deep): Added convenience function for
4057         getting rid of a GList of things that can be freed with g_free.
4059         * icons/Makefile.am, icons/certified.gif, icons/changed.gif,
4060         icons/confidential.gif, icons/emblem-certified.gif,
4061         icons/emblem-changed.gif, icons/emblem-confidential.gif,
4062         icons/emblem-encrypted.gif, icons/emblem-important.gif,
4063         icons/emblem-new.gif, icons/emblem-personal.gif,
4064         icons/emblem-remote.gif, icons/emblem-symbolic-link.png,
4065         icons/encrypted.gif, icons/i-symlink.png, icons/important.gif,
4066         icons/new.gif, icons/personal.gif, icons/remote.gif:
4067         Changed all emblem icons to have names that start with "emblem-".
4069 2000-03-06  Andy Hertzfeld <andy@eazel.com>
4071         * icons/Makefile.am:  added 8 new images for emblems in icons directory;
4072         certified, changed, confidential, encrypted, important, new, personal, remote
4073         
4074 2000-03-06  Maciej Stachowiak  <mjs@eazel.com>
4076         * src/ntl-window-msgs.c (nautilus_window_load_content_view):
4077         Explicitly change `window->cv_progress_done' and
4078         `window->cv_progress_error' to FALSE when loading a new content
4079         view, to avoid being screwed up by extra done or error
4080         notifications from the last content view. This is really just
4081         putting more spit and bubble gum on the pile though.
4083 2000-03-06  Andy Hertzfeld <andy@eazel.com>
4085         * src/nautilus-index-title.c:
4086         made the icon displayed in the index panel be constrained to fit by scaling it down
4087         proportionally if it exceeds predetermined limits.
4088         
4089 2000-03-06  John Sullivan  <sullivan@eazel.com>
4091         The file manager now uses Bonobo menu-merging to install
4092         and remove its menu items from the window's menu bar.
4093         I didn't put Zoom In/Zoom Out in the menu bar because
4094         that seems unnecessary once the control works (they're
4095         still in the right-click menu). I haven't yet put
4096         Stretch/Restore in the menu bar, will do so soon. And
4097         now you get a whole bunch of Gtk-CRITICALs when closing
4098         a window because of all the double-destroyed bonobo menu
4099         items (just like the two you used to get). Hope to fix
4100         this soon. Added new "Settings" menu, which needs to be
4101         organized better someday, and will be.
4103         * components/history/ntl-history-view.c:
4104         (menu_setup): Removed function.
4105         (make_obj): Removed code to set up merged menu. This was
4106         sample code for menu merging; now that we have real menu
4107         merging working elsewhere we don't need this sample.
4108         
4109         * libnautilus/nautilus-string.h,
4110         * libnautilus/nautilus-string.c:
4111         (nautilus_strstrip): New function, strips all occurrences
4112         of a given char from a char *.
4113         (nautilus_self_check_string): Added tests for nautilus_strstrip.
4114         
4115         * src/ntl-view-nautilus.c:
4116         (nautilus_view_try_load_client): Activate the new bonobo control
4117         when it's installed.
4118         (destroy_nautilus_view): Deactivate the bonobo control.
4120         * src/nautilus-window-menus.c:
4121         edit_menu_info[]: Removed "Preferences..." and preceding separator.
4122         settings_menu_info[]: New menu, added "General Settings..."
4123         (formerly "Preferences...") and "Use Eazel Theme Icons".
4124         main_menu[]: Include settings_menu_info.
4125         (edit_menu_prefs_cb): Renamed to general_settings_cb
4126         (use_eazel_theme_icons_cb): New function, swaps themes.
4127         (update_eazel_theme_menu_item): New function, sets the toggle state
4128         of this menu item based on current theme.
4129         (nautilus_window_initialize_menus): Call update_eazel_theme_menu_item
4130         explicitly, also wire it up to theme change signal.
4132         * src/ntl-prefs.c: (nautilus_prefs_ui_show): Renamed dialog
4133         from "Preferences" to "General Settings" to match menu item. This
4134         name will probably go away entirely eventually, but may as well
4135         keep it consistent for now.
4136         
4137         * src/file-manager/fm-directory-view.h: (merge_menus): New function
4138         pointer.  (update_menus): New function pointer.
4139         (fm_directory_view_update_menus): Prototype for new function.  *
4140         src/file-manager/fm-directory-view.c:
4141         (fm_directory_view_initialize_class): Set up merge_menus and
4142         update_menus function pointers.  (bonobo_menu_open_cb),
4143         (bonobo_menu_open_in_new_window_cb), (bonobo_menu_delete_cb): New
4144         callback functions with parameters the way Bonobo likes 'em.
4145         (get_bonobo_control): New utility function for getting the
4146         BonoboControl out of an FMDirectoryView.
4147         (bonobo_control_activate_cb): New function, called when the view's
4148         BonoboControl is activated or deactivated. Merges menus on
4149         activate, unsets bonobo container on deactivate.
4150         (fm_directory_view_initialize): Wire up bonobo_control_activate_cb
4151         to "activate" signal of view's bonobo control.
4152         (use_eazel_theme_icons_cb): Removed this function (it's in the
4153         standard Nautilus menus now, not component-dependent).
4154         (delete_one): Added a FIXME comment noting that the view is being
4155         told to delete the entire selection for every selected item.
4156         (fm_directory_view_delete_with_confirm): Moved the guts of
4157         delete_cb into here so it can be conveniently called from both
4158         bonobo menu and right-click menu.  (delete_cb): Now just calls
4159         fm_directory_view_delete_with_confirm.
4160         (add_check_menu_item): Removed function, had only been used by
4161         eazel theme icons menu item.
4162         (fm_directory_view_real_append_background_context_menu_items):
4163         Removed eazel theme icons menu item from right-click menu (now
4164         accessible always in the Settings menu).
4165         (compute_menu_item_info): New function, determines current label
4166         and sensitivity for dynamic menu items, common to both bonobo menus
4167         and context menus. Uses nautilus_strstrip to remove underlines used
4168         for accelerators when item is used for context menu.
4169         (append_one_selection_context_menu_item): New helper function,
4170         wraps up common code for constructing a menu item for the 
4171         selection-dependent part of the context menu.
4172         (fm_directory_view_real_append_selection_context_menu_items):
4173         Replaced a lot of duplicated code with calls to
4174         append_one_selection_context_menu_item.
4175         (fm_directory_view_real_merge_menus): New funciton. Here lieth the 
4176         code to put directory view menu items into the window's menu bar.
4177         (update_one_menu_item): New function, uses compute_menu_item_info
4178         to update the label & sensitivity of one bonobo-style menu item.
4179         (fm_directory_view_real_update_menus): New function, calls
4180         update_one_menu_item on each menu item whose label or sensitivity
4181         is dynamic.
4182         (fm_directory_view_notify_selection_changed): 
4183         Call fm_directory_view_update_menus to update menu labels &
4184         sensitivity that depend on the selection.
4185         (fm_directory_view_merge_menus): New function, calls the function pointer.
4186         (fm_directory_view_update_menus): New function, calls the function pointer.
4187         
4188         * src/file-manager/fm-directory-view-icons.c:
4189         (fm_directory_view_icons_initialize_class): Supply function pointer
4190         for merge_menus.
4191         (customize_icon_text_cb): Just added comments about its dual use.
4192         (fm_directory_view_icons_merge_menus): Merge a "Customize Icon Text"
4193         item into the Settings menu. Still need to do the Stretch/Restore items
4194         here.
4196 2000-03-06  Darin Adler  <darin@eazel.com>
4198         Fixed bug in Unstretch I just introduced.
4199         Got emblems drawing.
4201         * gnome-icon-container.c (gnome_icon_container_is_stretched),
4202         (gnome_icon_container_unstretch): Fixed bug where Unstretch would do
4203         all the icons, not just the selected ones.
4205         * nautilus-icons-view-icon-item.c (draw_stretch_handles),
4206         (emblem_layout_reset), (emblem_layout_next), (draw_pixbuf),
4207         (nautilus_icons_view_icon_item_draw), (hit_test_pixbuf),
4208         (hit_test), (nautilus_icons_view_icon_item_bounds): Added code to
4209         draw emblems and take them into account for hit testing and bounds
4210         calculation.
4212         * gnome-icon-container.c (update_icon):
4213         * nautilus-icons-view-icon-item.c (nautilus_icons_view_icon_item_draw):
4214         Moved rule about which zoom levels can have text displayed out of the
4215         canvas item class into the container. This is only one of many needed
4216         cleanups to how the "text in an icon" is handled.
4218 2000-03-06  Elliot Lee  <sopwith@redhat.com>
4220         * src/ntl-prefs.c: Use help search instead of help index.
4222         * components/help/hyperbola-nav-search.c: Initial implementation completed.
4224 2000-03-06  Darin Adler  <darin@eazel.com>
4226         * libnautilus/gnome-icon-container.c
4227         (gnome_icon_container_move_icon): Added missing code to get
4228         stretching to work again. (Oops.)
4229         (gnome_icon_container_is_stretched), (gnome_icon_container_unstretch):
4230         Fixed the unstretch code so it will work on multiple icons.
4232         * src/file-manager/fm-directory-view-icons.c
4233         (fm_directory_view_icons_append_selection_context_menu_items):
4234         Make menu item name plural when there are multiple icons to
4235         unstretch.
4237         * libnautilus/nautilus-icons-view-icon-item.c
4238         (nautilus_icons_view_icon_item_draw): Draw a box around the item
4239         when the stretch handles are visible. This looks better.
4240         
4241         * libnautilus/nautilus-icons-view-icon-item.h: White space.
4243 2000-03-06  Darin Adler  <darin@eazel.com>
4245         Added the concept of separate X and Y scale factors to more
4246         of the code. Even though we don't want to scale the two
4247         dimensions separately at the moment, I figured it was better
4248         to go in this direction than to remove all the separate X
4249         and Y stuff that Seth Nickell added.
4251         * libnautilus/gnome-icon-container-dnd.c
4252         (gnome_icon_container_receive_dropped_icons):
4253         * libnautilus/gnome-icon-container-private.h:
4254         * libnautilus/gnome-icon-container.c (icon_get_actual_size),
4255         (icon_new), (icon_get_size), (start_stretching), (update_icon),
4256         (gnome_icon_container_add), (gnome_icon_container_is_stretched),
4257         (gnome_icon_container_unstretch),
4258         (gnome_icon_container_move_icon):
4259         * libnautilus/gnome-icon-container.h:
4260         Got rid of the old "scale", "xscale", and "yscale" and replaced
4261         them with "scale_x" and "scale_y". Made the code always set the
4262         scale factor through the gnome_icon_container_move_icon bottleneck
4263         so the changes are all reported throught the icon_moved signal.
4265         * src/file-manager/fm-directory-view-icons.c:
4266         (add_icon_if_already_positioned),
4267         (fm_directory_view_icons_icon_moved_cb):
4268         Store only a single scale factor if the X and Y are both scaled
4269         exactly the same (the normal case). Also, use a default for
4270         the scale factor so we don't save 1.0 for every file.
4272         * libnautilus/nautilus-gtk-extensions.h:
4273         * libnautilus/nautilus-gtk-extensions.c:
4274         My original change required an additional marshal function. I
4275         decided to add it anyway even though I don't need it right now.
4277         * libnautilus/nautilus/nautilus-bookmark.c
4278         (nautilus_bookmark_get_pixmap_and_mask):
4279         Changed to use the nautilus_icon_factory_get_pixbuf_for_file
4280         convenience function which has a simpler interface.
4282         * libnautilus/nautilus-icon-factory.h:
4283         * libnautilus/nautilus-icon-factory.c:
4284         Added separate X and Y scaling of icons for possible future
4285         use; the convenience functions still use the same size in
4286         both dimentions.
4288         * components/music/.cvsignore:
4289           New directory, new .cvsignore needed.
4290         
4291         * RENAMING: Some more name change ideas.
4293 2000-03-06  Elliot Lee  <sopwith@redhat.com>
4295         * components/help/hyperbola-nav-index.c: Initial implementation completed.
4297 2000-03-05  Andy Hertzfeld <andy@eazel.com>
4299         * components/music/nautilus-music-view.c: derive name and 
4300         track position when there's no id3 tag present, and format 
4301         the title better from the id3-derived information
4302         
4303 2000-03-05  Andy Hertzfeld <andy@eazel.com>
4305         * libnautilus/nautilus-string.c,.h: added a nautilus_has_suffix 
4306         routine in the style of nautilus_has_prefix.
4307         * components/music/nautilus-music-view: use nautilus_has_suffix 
4308         in mp3 determination
4309         
4310         * libnautilus/nautilus-icon-factory.c:  make sure all thumbnails 
4311         have a png suffix, since they're always pngs now. Also, made 
4312         thumbnailing machinery call ImageMagick to handle the conversion 
4313         if gdk-pixbuf comes up empty, so we can handle many more formats
4314         
4315 2000-03-05  Andy Hertzfeld <andy@eazel.com>
4317         added a music view component for viewing directories of mp3 files.  
4318         This first cut only handles only the case when the mp3 files have 
4319         id3 tags present (most do these days)
4320         
4321         * components/music/nautilus-music-view.c,.h: a new music view 
4322         component gathers information from the id3 tags of mp3 files in 
4323         the target directory and displays them in a list, sorted by track 
4324         number. It also displays the album cover if it can find one.  For 
4325         now, it launches xmms to do the playing, but it will eventually 
4326         have an integrated player and support other file types.
4327         * components/music/nautilus-music-view.goad: component activation file
4328         * main.c: boiler-plate component stuff
4329         * components/music/Makefile.am: makefile for music component
4330         * configure.in: added music component
4331         * components/Makefile.am: added music component
4332         
4333         * src/ntl-uri-map: added a new way to install content view components, 
4334         by having the components explicitly listed in the metadata for the 
4335         object being displayed. Used this to test the music view, but there's 
4336         no way to manipulate it through the UI yet
4337         * libnautilus/nautilus-metadata.h: added a "CONTENT_VIEWS" tag for 
4338         specifying content views in the metadata
4339         
4340 2000-03-05  Maciej Stachowiak  <mjs@eazel.com>
4342         * src/ntl-window-msgs.c (nautilus_window_update_internals): Handle
4343         freeing of window->ni in a fancier way to avoid double-free
4344         problems which were causing crashes after some amount of view
4345         switching and navigation. It might leak memory but it's the only
4346         obvious way to avoid crashing.  
4347         * src/ntl-window.c (nautilus_window_destroy): Likewise to avoid
4348         crashing on exit.
4349         * src/ntl-window.h (Nautilus_NavigationInfo_free): Prototype this
4350         function.
4351         
4352 2000-03-04  Maciej Stachowiak  <mjs@eazel.com>
4354         * nautilus-clean.sh: Simple shell script to check if any of the
4355         auxiliary processes nautilus might launch are still running, and
4356         if so, report which ones and kill them. Total hack for dev/testing
4357         use only; should not be distributed.
4359 2000-03-03  Maciej Stachowiak  <mjs@eazel.com>
4361         * components/sample/nautilus-sample-content-view.c: Fix
4362         indentation on some of the lines.
4363         (nautilus_sample_content_view_load_uri): g_free() the old uri before
4364         g_strdup()ing a new one to avoid leaking memory.
4366 2000-03-03  Ramiro Estrugo  <ramiro@eazel.com>
4368         * configure.in: added eazel services define
4370         * acconfig.h: new file to make autoheader happy
4372 2000-03-03  Jonathan Blandford  <jrb@redhat.com>
4374         * libnautilus/Makefile.am (libnautilus_la_LDFLAGS): added libpng
4375         to Makefile.am
4377         * configure.in: added autoconf check for png.
4379 2000-03-03  John Sullivan  <sullivan@eazel.com>
4381         * configure.in: Turned -Werror back on. It had been turned 
4382         off accidentally as part of the patch Maciej applied earlier today.
4383         * src/file-manager/fm-directory-view-icons.c:
4384         (fm_directory_view_icons_icon_moved_cb): Changed two %lf's to %f's
4385         in g_strdup_printf to make compiler happy.
4387 2000-03-03  Elliot Lee  <sopwith@redhat.com>
4389         * src/ntl-prefs.c: Default to showing help index (it's the parade of the meta views! :).
4390         * components/help/hyperbola-nav-index.c: Compiles and
4391         runs. Hardcoded to /gnome prefix for now.
4393 2000-03-03  Maciej Stachowiak  <mjs@eazel.com>
4395         * components/html/ntl-web-browser.c (make_obj): Reorder to code to
4396         avoid crashing.
4397         (main): Drop to the debugger on warnings and criticals.
4398         (browser_vfs_read_callback): Add some casts to avoid a warning. 
4400 2016-03-03  Elliot Lee  <sopwith@redhat.com>
4402         * src/ntl-app.c, src/nautilus.goad: Make NautilusApp a factory for
4403         ViewWindows.
4405 2000-03-03  Maciej Stachowiak  <mjs@eazel.com>
4407         * components/sample/nautilus-sample-content-view.c,
4408         components/sample/nautilus-sample-content-view.h,
4409         components/sample/nautilus-sample-content-view.goad,
4410         components/sample/main.c, components/sample/Makefile.am: Sample
4411         content view component. All it does is display the current URI in
4412         a label.
4413         * componets/Makefile.am, configure.in: Build it.
4414         * src/ntl-uri-map.c: Activate the sample component whenever there
4415         is at least one other applicable view. What it should really do is
4416         have a special mode based on a command-line option of some sort
4417         which will cause it to be always activated, and otherwise not at
4418         all, but that looked more complicated to do.
4420         * libnautilus/nautilus-directory.c
4421         (nautilus_directory_try_to_read_metafile): Don't bomb on a
4422         zero-length metafile.
4424         Icon stretching is now persistent in the metafile, patch from Seth
4425         Nickell <snickell@stanford.edu>:
4426         
4427         * libnautilus/gnome-icon-container.c, gnome-icon-container.h,
4428         gnome-icon-container-dnd.c: Add xscale and yscale arguments to
4429         "icon_moved" signal to allow more unified handling of geometry
4430         changes.  
4431         * libnautilus/nautilus-metadata.h: Add definition of
4432         ICON_VIEW_SCALE_METADATA_KEY.
4433         * src/file-manager/fm-directory-view-icons.c: Save the stretch
4434         factor to the metafile when stretching and restore it when loading
4435         the directory.  
4436         
4437 2000-03-02  Maciej Stachowiak  <mjs@eazel.com>
4439         * HACKING: Updated build instructions and list to send patches to.
4441 2000-03-02  Pavel Cisler <pavel@eazel.com> (checking in as ramiro)
4442         * src/ntl-window.c: 
4443           (nautilus_window_new): I meant to removed the call but messed it
4444           up.
4446 2000-03-02  Pavel Cisler <pavel@eazel.com> (checking in as ramiro)
4447         Fixed a crash in "Open in New Window".
4449         * src/ntl-window.c,h: 
4450           (nautilus_window_new): Removed the call. Creating new
4451           windows should only be done through nautilus_app_create_window.
4452           (nautilus_window_class_init): Added a call to add "NautilusWindow::app"
4453           as an argument to make the app field get initialized properly.
4454         * src/ntl-app.c:
4455           (nautilus_app_create_window): Made it call gtk_object_new with the
4456           right arguments to create a new window.
4458 2000-03-02  Andy Hertzfeld <andy@eazel.com>
4460         * libnautilus/nautilus-icon-factory.c:
4461         changed thumbnailing to use gdk-pixbuf to make the thumbnails instead
4462         of ImageMagick.  Added code to save a gdk-pixbuf as a png that
4463         was written by Iain Holmes for gnome-iconedit, but had to fix it
4464         to work in the case where there's no alpha channel.
4465         
4466 2000-03-02  Elliot Lee  <sopwith@redhat.com>
4468         * components/help/hyperbola-filefmt.c: Use 'help' URI scheme instead of 'ghelp'.
4470         * components/help/hyperbola-nav-index.c: Just checking in an
4471         uncompilable work-in-progress. Remove ifdefs at own risk. :)
4473 2000-03-02  John Sullivan  <sullivan@eazel.com>
4475         * src/ntl-main.c: Change gtk_object_unref (app) to
4476         bonobo_object_unref (app) to avoid bonobo complaints
4477         when quitting.
4479 2000-03-02  Elliot Lee  <sopwith@redhat.com>
4481         * src/nautilus.goad, src/ntl-app.[ch], src/ntl-main.c: Implement
4482         IDL:Nautilus/Application:1.0 interface and NautilusApp GtkObject.
4483         * src/nautilus-window-menus.c, src/ntl-window.[ch], src/ntl-window: 
4484         Change to match above.
4485         * src/ntl-view-frame-svr.c: Implement _get_application()
4486         operation.
4488 2000-03-01      Andy Hertzfeld <andy@eazel.com>
4490         * libnautilus/nautilus_icon_factory.c:
4491         some bug fixes.  Quoted filenames when invoking convert.  Checked for a null
4492         icon controller in some places and handled accordingly
4493         
4494 2000-03-01  Andy Hertzfeld <andy@eazel.com>
4496         implemented automatic thumbnail creation for large images.
4497         
4498         * libnautilus/nautilus_icon_factory.c,h:
4499         the bulk of the work is in here. If the relevant file is a large image,
4500         look for a corresponding thumbnail in the .thumbnails directory; if
4501         found, use it, otherwise put it on a queue for later thumbnail creation.
4502         A timeout task is called periodically to fork a task to use ImageMagick
4503         to actually create the thumbnail, and then call the icon controller to
4504         actually update the icon.  Eventually, we'll replace ImageMagick
4505         with our own inline code for better performance.
4506         
4507         *libnautilus/gnome-icon-container.c,h:
4508         added a gnome_icon_container_update_icon method to update the icon
4509         corresponding with the passed in uri.  This is used by the icon
4510         controller to update the icons with the newly created thumbnails.
4511         
4512         *libnautilus/nautilus-icons-controller.c,h:
4513         added a nautilus_icons_controller_update_icon method to the abstract
4514         class to update the icon associated with the passed-in uri.
4515         
4516         *src/file-manager/fm-icons-controller.c:
4517         concrete implementation that calls the icon canvas to update the icon.
4518         
4519         *libnautilus/nautilus_bookmark.c:
4520         since I added a controller parameter to get_icon_for_file, I had to add
4521         the parameter here, since nautilus_bookmark was using get_icon_for_file
4522         
4523         *icons/loading.png:
4524         added a placeholder icon to express that a thumbnail is loading; Susan
4525         will replace this soon.  Also, it's not being used properly yet.
4526         
4527         * icons/Makefile.am
4528         added the loading icon.
4529         
4530 2000-02-29  John Sullivan <sullivan@eazel.com>
4532         * src/ntl-window-msgs.c: (nautilus_window_set_state_info):
4533           Replaced gtk_object_ref with comment explaining not to
4534           ref in the cases NEW_CONTENT_VIEW_ACTIVATED and
4535           NEW_META_VIEW_ACTIVATED. The former is called only when
4536           switching views via the View As menu, and was leaving
4537           an extra ref on the content_view, which was preventing 
4538           it from getting destroyed when switching views, which
4539           was preventing me from using the destroy signal for
4540           menu unmerging. The latter is never called, but presumably
4541           would have the same issue if anyone ever called it.
4543 2000-02-28  Maciej Stachowiak  <mjs@eazel.com>
4545         * src/nautilus-window-menus.c (clear_appended_bookmark_items):
4546         Added an explicit cast to (const char *) to avoid gcc 2.95.2
4547         complaining.
4549 2000-02-28  John Sullivan <sullivan@eazel.com>
4551         Separated out more menu-handling code into new file.
4553         * src/ntl-app.h: Added #include ntl-window.h.
4554         * src/nautilus-window-menus.c:
4555         * src/ntl-window-private.h:
4556           (nautilus_window_initialize_bookmarks_menu),
4557           (nautilus_window_initialize_go_menu): Removed prototypes.
4558           (nautilus_window_initialize_menus), (nautilus_window_back_cb),
4559           (nautilus_window_forward_cb), (nautilus_window_up_cb),
4560           (nautilus_window_home_cb): Added prototypes.
4561         * src/ntl-window.c: Moved all the static menu definitions and
4562           most of the callback functions out of here.
4563         * src/nautilus-window-menus.c: Moved all of the static menu
4564           definitions and most of the callback functions into here.
4566 2000-02-28  John Sullivan <sullivan@eazel.com>
4568         Switched NautilusWindow over to using BonoboUIHandler-style
4569         menus. Everything works except that the Go and Bookmarks
4570         menu items don't show icons for now. Apparently the part of
4571         Bonobo that would support using arbitrary GdkPixbufs as
4572         menu item icons is not yet implemented. Other than the
4573         missing icons problem, this change has no visible effect,
4574         but is required to support merging items into the standard
4575         menus.
4577         * src/nautilus-bookmarks-menu.h: Deleted this file.
4578         * src/nautilus-bookmarks-menu.c: Deleted this file, moved/morphed its
4579           code into ntl-window.c and nautilus-window-menus.c as appropriate.
4580         * src/nautilus-window-menus.c: New file, avoids making ntl-window.c
4581           any huger by keeping some of the menu-specific stuff in here. Right
4582           now this file includes only stuff I had to change or create for this
4583           checkin. I will soon make another pass at moving a bunch of old menu 
4584           code into here.
4585         * src/Makefile.am: Removed deleted files, added new file.
4586         * src/nautilus.h: Removed #include nautilus-bookmarks-menu.h.
4587         * src/ntl-window-msgs.c: Added #include <libnautilus/nautilus-bookmark.h>
4588           that became necessary when nautilus.h changed.
4589         * src/ntl-app.c: (nautilus_app_exiting):
4590           Changed nautilus_bookmarks_menu_exiting to nautilus_bookmarks_exiting,
4591           since there's no menu involved in this code now.
4592         * src/ntl-window-private.h: Added prototypes for functions called
4593           between ntl-window.c and nautilus-window-menus.c.
4594         * src/ntl-window.h: Added prototype for nautilus_bookmarks_exiting;
4595           removed fields for various stored menu items.   
4596         * src/ntl-window.c:
4597           Removed #defines for GO_MENU_<foo>_ITEM_INDEX, since menu-item
4598           accessing is now done with paths the Bonobo way.
4599           Removed separator from static part of Go menu; the separator is
4600           now added when the dynamic items are added.
4601           Added static items in Bookmarks menu to GnomeUIInfo array.
4602           (add_bookmark_cb), (edit_bookmarks_cb): New callback functions used
4603           by the static part of the Bookmarks menu.
4604           (clear_go_menu_history), (activate_bookmark_in_menu_item),
4605           (refresh_history_list_in_go_menu): Removed functions; new versions 
4606           are in nautilus-window-menus.c.
4607           (nautilus_window_init): Removed go-menu signal connections; new
4608           versions are in nautilus-window-menus.c.
4609           (nautilus_window_constructed): Create and access menus the Bonobo way;
4610           also call functions to initialize the two dynamic menus.
4611           (nautilus_window_allow_back), (nautilus_window_allow_forward),
4612           (nautilus_window_allow_up): Access menu items with paths, the Bonobo way.
4613           (nautilus_get_history_list): New function, wrapper around static
4614           variable so it can be accessed from nautilus-window-menus.c.
4616 2000-02-26  Andy Hertzfeld <andy@eazel.com>
4618         fixed bug where title tab was initially pre-lit
4619         
4620         * src/ntl-index-panel.c:
4621         turns pre-lite off when activating
4622         * src/nautilus-index-tabs.c:
4623         initialize prelit flag
4624         
4625 2000-02-26  Andy Hertzfeld <andy@eazel.com>
4627         made index tabs receive dropped colors and display them; it doesn't store it persistently yet
4628         
4629         * src/ntl-index-panel.c:
4630         made it call call index_tabs_receive_dropped_color when dropped over the tabs
4631         * src/nautilus-index-tabs.c,h:
4632         added index_tabs_receive_dropped_color to set the tab_color and redraw
4633         
4634 2000-02-26  Andy Hertzfeld <andy@eazel.com>
4636         * src/ntl-index-panel.c:
4637         made it call index_tabs_prelite for the title tabs at the appropriate times
4638         * src/nautilus-index-tabs.c:
4639         made preliting work for the title tab
4640         
4641 2000-02-26  Maciej Stachowiak  <mjs@eazel.com>
4643         * components/notes/ntl-notes.c: Make the text area take more of
4644         the space of the component. Make the text box light yellow, the
4645         official international color of annotation.
4647 2000-02-25  Andy Hertzfeld  <andy@eazel.com>
4649         implemented mouse-over hiliting for the index tabs
4650         
4651         * src/ntl-index-panel.c:
4652         receive motion notify events to hit test the tabs
4653         * src/nautilus-index-tabs.c,h:
4654         add pre-lite boolean to tab, pre-lite color
4655         draw with pre-lite color when boolean is set
4656         implemented nautilus_index_tabs_prelite_tab to set booleans
4657         * src/ntl-window.c:
4658         turn on mouse motion events for the index panel
4659         
4660 2000-02-25  Andy Hertzfeld  <andy@eazel.com>
4662         * libnautilus/gnome-icon-container.c:
4663         made the return key activate all selected icons, to make keyboard navigation actually
4664         do something useful besides selecting
4666 2000-02-25  Andy Hertzfeld  <andy@eazel.com>
4668         * src/nautilus-index-tabs.c:
4669         Susan's new look for the index-tabs, as well as some misc clean-ups
4670         
4671 2000-02-25  John Sullivan <sullivan@eazel.com>
4673         * src/file-manager/fm-directory-view-c:
4674          (confirm-delete): New function, puts up a dialog confirming
4675          whether to delete the selected items.
4676          (delete_cb): Checks with confirm_delete before deleting.
4677          It's too easy to accidentally delete files without this, as
4678          I discovered yesterday in my foolish experimentations.
4679          (fm_directory_view_real_append_selection_context_menu_items):
4680          Renamed "Delete" menu item to "Delete..." to make it clear that
4681          no deleting will occur without confirmation.
4683 2000-02-25  Andy Hertzfeld <andy@eazel.com>
4685         * libnautilus/gnome-icon-container.c:
4686         set the scale factor so no icons are bigger than a specified size, 
4687         at least initially.  Currently the size is set to 80 pixels.
4688         
4689 2000-02-24  Maciej Stachowiak  <mjs@eazel.com>
4691         * src/ntl-uri-map.c (my_notify_when_ready): Make sure to
4692         gnome_vfs_async_cancel our GnomeVFSAsyncHandle before setting it
4693         to NULL, to avoid leaking gnome-vfs-slave processes.
4694         * libnautilus/nautilus-directory.c (nautilus_directory_load_done):
4695         When loading is complete, make sure to gnome_vfs_async_cancel the
4696         handle before setting it NULL, to avoid leaking gnome-vfs-slave
4697         processes.
4698         * src/file-manager/fm-directory-view.c
4699         (disconnect_model_handlers): if we have a NautilusDirectory in
4700         use, make sure to call nautilus_directory_stop_monitoring on it to
4701         avoid leaking gnome-vfs-slave processes.
4702         
4703 2000-02-24  John Sullivan  <sullivan@eazel.com>
4705         Some work on improving the error messages when files
4706         can't be displayed. There's still plenty of room for
4707         improvement, but at least the most common cases are
4708         halfway decent now.
4710         * libnautilus/nautilus-string.h,
4711         * libnautilus/nautilus-string.c:
4712         (nautilus_strdup_prefix): New function, returns a new
4713         string matching the beginning of another string, up to
4714         but not including the first occurrence of a given substring.
4715         (nautilus_self_check_string): Added test cases for new function.
4717         * src/ntl-types.h:
4718         Added enum NautilusNavigationResult, which is a cousin of
4719         GnomeVFSResult that lumps many error types together and also
4720         has special Nautilus-specific types. Added a field of this type
4721         to NautilusNavigationInfo to keep track of various failure
4722         scenarios. Also reformatted this file.
4723         * src/ntl-uri-map.c:
4724         (get_nautilus_navigation_result_from_gnome_vfs_result): 
4725         Long-windedly named helper function to translate between
4726         GnomeVFSResult and NautilusNavigationResult.
4727         (my_notify_when_ready): Determine and store NautilusNavigationResult
4728         for error cases. Don't free navinfo here, because it's needed to
4729         determine the uri-that-didn't-work later.
4730         * src/ntl-window-msgs.c:
4731         (nautilus_window_change_location_2): Compose reasonable error messages,
4732         which include the uri that couldn't be shown, from various failure cases.
4734 2000-02-24  Andy Hertzfeld <andy@eazel.com>
4736         implemented the delete command in the context menu.  It's not 
4737         completed yet,it still needs to remove entries from the model, 
4738         as well as giving better feedback.
4739         
4740         * libnautilus/gnome-icon-container.c,.h:
4741         added gnome_icon_container_clear_selected_items to remove 
4742         selected items from the view
4743         * src/file-manager/fm-directory-view.c,h:
4744         enabled the delete menu item, added a callback for it which 
4745         actually does the deletion
4746         added a delete_selection method, implemented by the subclasses 
4747         to remove items from the view
4748         * src/file-manager/fm-directory-view-icons.c:
4749         implemented delete_selection by calling the icon container
4750         * src/file-manager/fm-directory-view-list.c:
4751         implemented delete_selection to remove selected items from the clist
4752         
4753 2000-02-24  John Sullivan  <sullivan@eazel.com>
4755         * components/history/ntl-history-view.c:
4756         (history_view_update_icons), (make_obj): Correction to previous
4757         checkin: connect signal to CList instead of HistoryView because
4758         HistoryView isn't a GtkObject.
4760 2000-02-24  John Sullivan  <sullivan@eazel.com>
4762         * src/ntl-uri-map.c: (my_notify_when_ready):
4763         Added "View as Text" as an option for html pages. Untestable
4764         right now because attempting to load html pages fails.
4766         * components/history/ntl-history-view.c:
4767         (install_icon): Removed bookmark parameter; now it determines that
4768         from the other parameters.
4769         (history_view_update_icons): New function, walks through list updating
4770         the icon for each row.
4771         (hyperbola_navigation_history_notify_location_change): Removed bookmark
4772         parameter from install_icon call.
4773         (make_obj):  register to call history_view_update_icons
4774         when nautilus_icon_factory emits "theme_changed" signal. This has
4775         no current visible effect, because changing the theme in Nautilus
4776         does not change the theme in the separate icon factory used in this
4777         metaview. This is bugzilla bug #5.
4779 2000-02-24  John Sullivan  <sullivan@eazel.com>
4781         Cleaned up after fix to bug 14 from yesterday.
4783         * src/ntl-types.h: Removed use_new_window field from
4784         NautilusNavigationInfo struct; the new-window spawning
4785         now happens early enough that this struct is not involved.
4786         
4787         * src/ntl-uri-map.c: (nautilus_navinfo_new): Don't set the
4788         now non-existent use_new_window field.
4789         
4790         * src/ntl-window-msgs.c: (nautilus_window_change_location_2):
4791         Don't make any decisions based on the now non-existent
4792         use_new_window field.
4794 2000-02-24  John Sullivan  <sullivan@eazel.com>
4796         * src/file-manager/fm-directory-view.c:
4797         (fm_directory_view_real_append_selection_context_menu_items):
4798         Made "Open in New Window" menu item label be "Open in n New Windows"
4799         if more than one is selected; added some _()s to user-visible text.
4801 2000-02-23  Maciej Stachowiak  <mjs@eazel.com>
4803         * src/ntl-uri-map.c (my_notify_when_ready): Use EOG as the in-line
4804         image viewer. You need to have EOG from CVS installed for this to
4805         work. It still has issues - the control zooms the image to fill
4806         available space by default, and there is no zooming support. But
4807         it's amazing that one line was enough to do this, and it worked on
4808         the first try! Bonobo rules.
4809         
4810         * libnautilus/nautilus-icons-view-icon-item.c
4811         (nautilus_icons_view_icon_item_set_emblems): Nautilus was getting
4812         an assertion failure on startup, so I weakened the
4813         assertion. Darin should look at my fix.
4815         * idl/nautilus.idl (ViewWindow): Added `application' readonly
4816         attribute.
4817         (Application): Renamed attribute from `windows' to `view_windows'
4818         and made it a sequence<ViewWindow> rather than
4819         sequence<Object>. Renamed `new_window' method to
4820         `new_view_window'.
4821         * src/ntl-window.h: Miscellaneous reformatting.
4822         (nautilus_window_close): Added prototype
4823         * src/ntl-window.c: Added implementations of
4824         Nautilus::ViewWindow's methods. For now, _get_application just
4825         returns CORBA_OBJECT_NIL because the Application object has not
4826         yet been implemented.
4827         (nautilus_window_close): New function used by `file_menu_close_cb'
4828         and `impl_POA_Nautilus_ViewWindow_close'.
4829         (would_be_in_gdk_pixbuf_if_federico_wasnt_stubborn_pixbuf_render):
4830         Added an explanatory comment.
4832         * idl/nautilus.idl: Added Nautilus::Zoomable and
4833         Nautilus::ZoomableFrame interfaces.
4834         * nautilus-zoomable.c, nautilus-zoomable.h: New files for the
4835         NautilusZoomable class. This class is used to implement the
4836         Nautilus::Zoomable interface on a nautilus view or other control.
4837         * Makefile.am: Added nautilus.c and nautilus.h to the build.
4838         
4839 2000-02-23  John Sullivan  <sullivan@eazel.com>
4841         Visible part of the fix to bug 14 (Open in New Window only
4842         opens one window when multiple items selected). Still need
4843         to clean up old, unnecessary code. Checking this in now for
4844         convenience; will clean up other code tomorrow.
4846         * src/ntl-app.c: (nautilus_app_create_window): Replaced the
4847         gtk_widget_show of new window with comment explaining why not
4848         to show it yet.
4849         
4850         * src/ntl-window-msgs.c: 
4851         (nautilus_window_request_location_change): Spawn new window here
4852         if the NavigationRequestInfo says so (formerly didn't spawn new
4853         window until after we knew it was a displayable uri; that code
4854         is still present but now never invoked; I will kill it tomorrow).
4855         (nautilus_window_change_location_2): Call gtk_widget_show on
4856         window when we know that location change will succeed; if the
4857         location change failed, destroy the nascent window and put the
4858         error message in an unparented dialog.
4860 2000-02-23  Darin Adler  <darin@eazel.com>
4862         Some of the underlying work to prepare for emblems on the icons.
4864         * style-guide.html: Some minor updates to the style guide,
4865         including rules about headers.
4867         * libnautilus/nautilus-icon-factory.h,
4868         libnautilus/nautilus-icon-factory.c:
4869         (nautilus_icon_factory_get_emblem_icons_for_file),
4870         (nautilus_scalable_icon_get), (nautilus_icon_factor_clear),
4871         (nautilus_icon_factory_load_file),
4872         (nautilus_gdk_pixbuf_composite_corner),
4873         (nautilus_icon_factor_load_icon), (nautilus_scalable_icon_hash),
4874         (nautilus_scalable_icon_equal),
4875         (nautilus_icon_factory_get_icon_for_file), (load_specific_image):
4876         Added interface for getting emblem icons for a file, and got rid
4877         of the symbolic-link overlay that was previously built into the
4878         icon.
4880         * libnautilus/gnome-icon-container.c (update_icon):
4881         Get pixbufs for all emblems and pass into the icon object.
4883         * libnautilus/nautilus-icons-controller.c
4884         (nautius_icons_controller_get_icon_image):
4885         src/file-manager/fm-icons-controller.h,
4886         src/file-manager/fm-icons-controller.c
4887         (fm_icons_controller_get_icon_image): Return a list of emblem
4888         images along with the main image.
4890         * libnautilus/nautilus-icons-view-icon-item.h,
4891         libnautilus/nautilus-icons-view-icon-item.c
4892         (nautilus_icons_view_icon_item_set_emblems),
4893         (nautilus_icons_view_icon_item_destroy): Keep a list of emblem
4894         pixbufs in each icon. We don't draw them quite yet.
4896         * libnautilus/gdk-extensions.h, libnautilus/gdk-extensions.c:
4897         (nautilus_gdk_pixbuf_list_ref), (nautilus_gdk_pixbuf_list_unref),
4898         (nautilus_gdk_pixbuf_list_free): Convenience functions for
4899         manipulating lists of GdkPixbuf objects.
4901         * libnautilus/nautilus-directory.h,
4902         libnautilus/nautilus-directory.c: (nautilus_file_list_ref),
4903         (nautilus_file_list_unref), (nautilus_file_list_free): Convenience
4904         functions for manipulating lists of NautilusFile objects. Also got
4905         rid of NautilusFileList typedef.
4907         * libnautilus/nautilus-icon-factory.h,
4908         libnautilus/nautilus-icon-factory.h:
4909         (nautilus_scalable_icon_list_free): Convenience function for
4910         manipulating lists of NautilusScalableIcon objects.
4912         * libnautilus/nautilus-glib-extensions.h,
4913         libnautilus/nautilus-glib-extensions.c: (nautilus_g_list_equal):
4914         Function to compare two GLists to see if they are
4915         identical. Particularly useful with lists of reference-counted
4916         objects.
4918         * src/file-manager/fm-directory-view-icons.c
4919         (fm_directory_view_icons_destroy),
4920         (add_icon_if_already_positioned),
4921         (fm_directory_view_icons_append_selection_context_menu_items),
4922         (display_icons_not_already_positioned),
4923         (fm_direectory_view_icons_get_selection):
4924         src/file-manager/fm-directory-view-list.c
4925         (fm_directory_view_list_get_selection):
4926         src/file-manager/fm-directory-view.c (display_selection_info),
4927         (display_pending_files), (add_files_cb), (open_in_new_window_cb),
4928         (fm_directory_view_real_append_selection_context_menu_items): Got
4929         rid of use of NautilusFileList typedef, corrected ref. counting of
4930         files in the lists by using new calls.
4931         
4932         * src/nautilus-bookmarklist.c, src/nautilus-bookmarks-menu.c,
4933         src/nautilus-index-tabs.c,
4934         src/file-manager/fm-directory-view-icons.c,
4935         src/file-manager/fm-directory-view.c,
4936         src/file-manager/fm-icons-controller.c: A bit of reformatting.
4938 2000-02-23  Andy Hertzfeld <andy@eazel.com>
4939         
4940         * icons/i-directory.png, icons/i-directory-36.png,
4941         * icons/i-regular.png, icons/i-regular-36.png:
4942         This completes Kenneth's set of icons for the generic document and folder
4943         * icons/Makefile.am:
4944         Added the 36 pixel versions.
4945         
4946 2000-02-23  Elliot Lee  <sopwith@redhat.com>
4947         
4948         * autogen.sh: Finish the hack to not make people get gnome.m4 from
4949         gnome-libs any more.
4951 2000-02-22  Andy Hertzfeld <andy@eazel.com>
4952         
4953         * icons/i-directory-12.png, icons/i-directory-24.png,
4954         * icons/i-regular-12.png, icons/i-regular-24.png
4955         Small versions of the standard gnome folder and document icons,
4956         contributed by Kenneth Christiansen.
4957         * icons/Makefile.am
4958         Include Kenneth's icons.
4960 2000-02-22  John Sullivan  <sullivan@eazel.com>
4962         Made list view respond to icon theme changes too. Forgot
4963         about it last time!
4965         * src/file-manager/fm-directory-view-list.c:
4966         (update_icons): New function, walks through list installing
4967         the icon for each row.
4968         (fm_directory_view_list_initialize): register to call update_icons
4969         when nautilus_icon_factory emits "theme_changed" signal.
4971 2000-02-22  John Sullivan  <sullivan@eazel.com>
4973         Made bookmarks menu, go menu, and bookmarks window respond
4974         to icon theme changes. The history metaview is still an
4975         outstanding issue, waiting on technical solution to
4976         icon-factories-in-different-executables problem.
4978         * src/nautilus-bookmarks-menu.c:
4979         (nautilus_bookmarks_menu_new): register to call
4980         nautilus_bookmarks_menu_repopulate when nautilus_icon_factory
4981         emits "theme_changed" signal.
4982         * src/nautilus-bookmarks-window.c:
4983         (create_bookmarks_window): register to call repopulate
4984         when nautilus_icon_factory emits "theme_changed" signal.
4985         * src/ntl-window.c:
4986         (refresh_history_list_in_go_menu): Renamed from history_list_changed_cb,
4987         removed unused NautilusSignaller parameter.
4988         (nautilus_window_init): Changed a gtk_signal_connect_while_alive to
4989         gtk_signal_connect_object_while_alive to avoid that unused
4990         NautilusSignaller parameter; register to call 
4991         refresh_history_list_in_go_menu when nautilus_icon_factory emits
4992         "theme_changed" signal.
4994 2000-02-22  John Sullivan  <sullivan@eazel.com>
4996         Improved the status text that appears after changing the
4997         selection in the file manager.
4999         * libnautilus/nautilus-directory.h,
5000         * libnautilus/nautilus-directory.c:
5001         (nautilus_file_is_directory): New convenience function.
5002         I updated everywhere in this file that was checking for
5003         directories to use this.
5004         (nautilus_file_get_directory_item_count): New function
5005         to get the item count of a directory. This is implemented
5006         with the evil get_directory_item_count_hack, but we'll want
5007         this API later even when the evil hack is gone.
5009         * src/file-manager/fm-directory-view.c: 
5010         (display_selection_info): The selection count/size string is
5011         now broken into a directory part and an everything else part.
5012         No more counting directories as 4.1K.
5014 2000-02-22  Elliot Lee  <sopwith@redhat.com>
5016         * libnautilus/nautilus-file-utilities.c: include string.h to avoid warnings
5017         * src/nautilus-index-title.c: Set order of items packed into box.
5018         * src/file-manager/fm-directory-view-icons.c: include stdio.h to avoid warnings.
5020 2000-02-22  Darin Adler  <darin@eazel.com>
5022         Fixed bug where the Eazel-theme icon for the document reverts to
5023         the non-theme icon when you are zoomed in all the way.
5025         * nautilus-icon-factory.c: (nautilus_icon_factory_load_file),
5026         (add_size_to_image_name), (get_icon_file_path),
5027         (nautilus_icon_factory_load_file),
5028         (nautilus_icon_factory_load_icon), (load_specific_image): Changed
5029         logic so the decision about whether to use a theme icon or the
5030         default icon for each icon is decided based on the presence of the
5031         non-sized version of the icon rather than the presence of the icon
5032         for a particular size.
5034         * nautilus-file-utilities.h, nautilus-file-utilities.c:
5035         Cleaned up header and includes and changed ".gnomad" to
5036         ".nautilus".  (At first I had added a nautilus_file_exists
5037         function, but then I remembered the g_file_exists function in
5038         gnome-utils.h.)
5040 2000-02-22  Andy Hertzfeld <andy@eazel.com>
5042         * icons/i-directory-192.png
5043         * icons/i-directory-96.png
5044         * icons/i-directory-72.png
5045         Hi-res versions of the standard gnome folder icon,
5046         contributed by Kenneth Christiansen.
5047         * icons/Makefile.am
5048         Include Kenneth's icons.
5050 2000-02-21  Andy Hertzfeld <andy@eazel.com>
5052         * icons/i-regular-192.png
5053         * icons/i-regular-96.png
5054         * icons/i-regular-72.png
5055         Hi-res versions of the standard gnome generic document icon,
5056         contributed by Kenneth Christiansen
5057         * icons/Makefile.am
5058         include Kenneth's icons
5059         * libnautilus/nautilus-icons-controller.c,
5060         * libnautilus/nautilus-icons-controller.h:
5061         added a new method to get string properties
5062         * libnautilus/nautilus-icons-view-icon-item.c:
5063         Draw the contents of a text file into the icon itself in a small
5064         font, if the text_source property is set.
5065         * src/file-manager/fm-icons-controller.c:
5066         Routine to determine whether to draw into icons.  Since our
5067         mime-type detection is inadequate now, we throw caution to the
5068         winds and assume an unknown type is a text file it only enables
5069         this for eazel themes now, we have to figure out a better way to
5070         tell if the icon can contain it.
5072 2000-02-21  Maciej Stachowiak  <mjs@eazel.com>
5074         * libnautilus/ntl-view-frame.c: Fixed crashes introduced in the
5075         course of my reorganization - in one case I g_new()'d something
5076         that should have been g_new0()'d, in another I forgot to
5077         CORBA_exception_init().
5078         
5079 2000-02-21  Andy Hertzfeld <andy@eazel.com>
5081         added document icons to eazel icons theme in 4 sizes
5082         
5083         * icons/eazel/i-regular.png, i-regular-36.png, i-regular-72.png,
5084           i-regular-96.png:
5085         Added Susan's document icons at 4 zoom levels.
5086         * icons/eazel/Makefile.am:
5087         Added to Makefile so they get installed.
5089 2000-02-21  John Sullivan  <sullivan@eazel.com>
5091         Refined right-click context-menu behavior in file manager.
5092         Now right-click affects the selection exactly as a left-click
5093         would, including modifying the selection with modifier keys.
5094         The first section of the context menu applies to all the
5095         selected items. Menu items that can only apply to a single
5096         item are insensitive if there's more than one item selected.
5098         * libnautilus/gnome-icon-container.h:
5099         (context_click_selection): Renamed this signal from context_click_icon
5100         and removed the file parameter.
5101         * libnautilus/gnome-icon-container.c:
5102         (gnome_icon_container_initialize_class), (handle_icon_button_press): 
5103         Renamed signal context_click_icon to context_click_selection and
5104         removed the file parameter.
5105         (handle_icon_button_press): Reorder so that all selection changes
5106         happen before the drag/activate/context-menu decision-making.
5107         
5108         * libnautilus/gtkflist.h:
5109         (context_click_selection): Renamed this signal from context_click_row
5110         and removed the row parameter.
5111         * libnautilus/gtkflist.c:
5112         (gtk_flist_initialize_class), (gtk_flist_button_press):
5113         Renamed signal context_click_row to context_click_selection and
5114         removed the row parameter.
5115         (gtk_flist_button_press):
5116         For context clicks, call select_row the normal way to get the
5117         normal selection modification behavior, instead of forcing only
5118         the clicked row to be selected.
5120         * src/file-manager/fm-directory-view.h:
5121         (append_selection_context_menu_items): Renamed from
5122         append_item_context_menu_items and changed NautilusFile parameter
5123         to a NautilusFileList.
5124         (fm_directory_view_pop_up_selection_context_menu): Renamed from
5125         fm_directory_view_popup_item_context_menu.
5126         (fm_directory_view_pop_up_background_context_menu): Renamed from
5127         fm_directory_view_popup_background_context_menu
5128         * src/file-manager/fm-directory-view.c:
5129         Renamed all functions with "item_context_menu" in their names
5130         to include "selection_context_menu" instead; Changed verb "popup"
5131         to "pop up" in function names.
5132         (open_one_in_new_window): New GFunc-type function, calls
5133         fm_directory_view_activate_entry on a single NautilusFile.
5134         (open_in_new_window_cb): Now takes a NautilusFileList* instead of
5135         a NautilusFile* and iterates with open_one_in_new_window.
5136         (fm_directory_view_real_append_selection_context_menu_items):
5137         Desensitize "Open" if more than one selected item, since more than
5138         one can't open into the same window; pass selected file list to
5139         open_in_new_window_cb
5140         (create_selection_context_menu): Skip the selection-specific part 
5141         of the menu if there are no selected items (but still put up the 
5142         menu with the background items);
5144         * src/file-manager/fm-directory-view-icons.c:
5145         Various changes to match renamings and parameter changes listed
5146         above. Also,
5147         (fm_directory_view_icons_append_selection_context_menu_items): 
5148         Only enable "Stretch Icon" if exactly one item is selected, since
5149         the UI is only designed to work with a single icon.
5150         * src/file-manager/fm-directory-view-list.c:
5151         Various changes to match renamings and parameter changes listed
5152         above.
5154 2000-02-21  Maciej Stachowiak  <mjs@eazel.com>
5156         * libnautilus/ntl-view-frame.h: Don't include <gtk/gtkbin.h>; do
5157         include <gtk/gtkwidget.h>.
5159 2000-02-19  Maciej Stachowiak  <mjs@eazel.com>
5161         * libnautilus/ntl-view-frame.c, libnautilus/ntl-view-frame.h:
5162         Changed NautilusViewFrame to allow creation of `Nautilus::View'
5163         objects that have additional interfaces while sharing the actual
5164         control. This will allow, for instance, the creation of components
5165         that are both a `Nautilus::View' and a `Bonobo::Embeddable'. The
5166         basic changes are to require a `BonoboObject' with a
5167         `Bonobo::Control' interface at construction time.
5168         - Two creation functions are provided: `nautilus_view_frame_new',
5169         which takes a GtkWidget, creates a new control that contains that
5170         widget, and the constructs a NautilusViewFrame with that control,
5171         and `nautilus_view_frame_new_from_control', which creates a
5172         NautilusViewFrame that gets added as an additional interface to an
5173         existing control. 
5174         - In the course of doing this it became clear that it would be
5175         easier if NautilusViewFrame were changed to inherit from
5176         BonoboObject rather than GtkBin, so this was done; as a result,
5177         the nautilus_view_frame_get_bonobo_object call was removed, since
5178         the view_frame _is_ a bonobo object. However, a
5179         nautilus_view_frame_get_bonobo_control call was added as a
5180         convenience, to allow other code to avoid having to
5181         query_local_interface for the control object manually.
5182         * libnautilus/ntl-meta-view-frame.c,
5183         libnautilus/ntl-meta-view-frame.h,
5184         libnautilus/ntl-content-view-frame.c,
5185         libnautilus/ntl-content-view-frame.h: Analogous changes; mainly,
5186         added `nautilus_meta_view_frame_new',
5187         `nautilus_meta_view_frame_new_from_control',
5188         `nautilus_content_view_frame_new' and
5189         `nautilus_content_view_frame_new_from_control'.
5190         * components/help/hyperbola-nav-index.c,
5191         components/help/hyperbola-nav-tree.c,
5192         components/history/ntl-history-view.c,
5193         components/html/ntl-web-browser.c, components/notes/ntl-notes.c,
5194         components/websearch/ntl-web-search.c, src/ntl-app.c,
5195         src/file-manager/fm-directory-view.c: Fixed initialization and
5196         object creation functions to deal with the above API change.
5198         * libnautilus/ntl-view-frame.c, libnautilus/ntl-view-frame.h:
5199         Moved fields from object struct to separate private struct.
5201 2000-02-18  Maciej Stachowiak  <mjs@eazel.com>
5203         * RENAMING: Suggest swapping the names NautilusView and
5204         NautilusViewFrame to better match the way Bonobo handles naming of
5205         mutual client-server pairs of this type. I'm not sure I agree, but
5206         better to be consistent than right.
5208 2000-02-18  Darin Adler  <darin@eazel.com>
5210         * gnome-icon-container.c: (set_scroll_region):
5211         Set up the step_increment so the vertical and horizontal scroll
5212         bars will scroll when you click on the arrows.
5214 2000-02-18  Darin Adler  <darin@eazel.com>
5216         * src/file-manager/fm-directory-view.c:
5217         (use_eazel_theme_icons_cb), (finish_adding_menu_item),
5218         (add_menu_item), (add_check_menu_item),
5219         (fm_directory_view_real_append_background_context_menu_items):
5220         Hooked up the menu item for using the Eazel Theme Icons so people
5221         can try out the icons that are tuned at different sizes.
5223         * libnautilus/nautilus-icon-factory.h:
5224         * libnautilus/nautilus-icon-factory.c,
5225         (nautilus_icon_factory_get), (nautilus_icon_factory_new),
5226         (nautilus_icon_factory_initialize),
5227         (nautilus_icon_factory_initialize_class),
5228         (nautilus_icon_factory_get_theme),
5229         (nautilus_icon_factory_set_theme): Added a signal "theme_changed"
5230         to the icon factory, and had to add a visible icon factory object
5231         so clients can connect to the signal.
5233         * libnautilus/gnome-icon-container.c,
5234         (gnome_icon_container_initialize),
5235         (gnome_icon_container_request_update_all): Update all icons when
5236         the theme changes.
5238         * docs/recommended-books.html: Added this since
5239         style-guide.html refers to it.
5241 2000-02-18  John Sullivan  <sullivan@eazel.com>
5243         Made bookmarks (including in history list) for file system
5244         items display just the name of the file or directory instead
5245         of the entire path. Made history list appear in Go menu.
5246         Still need to muck with CORBA so that history metaview is
5247         getting the history list from Nautilus rather than 
5248         maintaining its own parallel copy.
5250         * libnautilus/nautilus-bookmark.h:
5251         (nautilus_bookmark_new_with_name): Renamed this function, which
5252         takes both a uri and a display name, from nautilus_bookmark_new.
5253         (nautilus_bookmark_new): New function, takes just a uri.
5254         
5255         * libnautilus/nautilus-bookmark.c:
5256         (nautilus_boookmark_new_with_name): Renamed.
5257         (nautilus_bookmark_new): New function, determines what initial
5258         name to use for a bookmark given its uri. Right now the only rule
5259         it knows is to use just the leaf file/directory name for file
5260         system uris. (Someday it should also know to get the page title
5261         for web uris.)
5263         * libnautilus/nautilus-bookmark.c,
5264         * components/history/ntl-history-view.c,
5265         * src/nautilus-bookmarklist.c,
5266         * src/nautilus-bookmarks-menu.c,
5267         * src/nautilus-bookmarks-window.c,
5268         * src/ntl-window-msgs.c:
5269         Updated callers of old nautilus_bookmark_new to either use new
5270         one-parameter version or to use nautilus_bookmark_new_with_name.
5271         
5272         * libnautilus/nautilus-directory.c: (nautilus_self_check_directory):
5273         Added new test that catches gnome-vfs bug I ran into where the name
5274         computed for uris with a trailing slash is "". Maciej plans to fix
5275         this in gnome-vfs; for now, make check catches it.
5277         * src/nautilus-signaller.c,
5278         * src/nautilus-signaller.h: New files for an object that manages
5279         nautilus-wide signals (not associated with a particular window, e.g.).
5280         The initial nautilus-wide signal is "history_list_changed".
5281         * src/Makefile.am: Build these two new files.
5282         
5283         * src/ntl-window.h:
5284         Removed window_signals from NautilusWindowClass struct, made it a static
5285         variable in the file to better hide it and match existing practice;
5286         Added go_menu and go_menu_separator_item widgets to the set maintained
5287         for each window. (This will have to change when I convert the menus
5288         to using BonoboUIHandler, but that's for another day.)
5289         * src/ntl-window.c:
5290         I added then later removed a signal to this class. In the process, I
5291         cleaned up some of the signal-handling details: Added an enum for
5292         signal names (currently only LAST_SIGNAL); moved array of signals to
5293         a static variable instead of field in Class struct; used LAST_SIGNAL
5294         instead of 0 in (nautilus_window_class_init).
5295         Added static history_list variable. Perhaps this and related functions
5296         belong in their own file.
5297         (nautilus_add_to_history_list): New function, updates global history
5298         list and emits "history_list_changed" signal.
5299         (clear_go_menu_history): New function, erase all the bookmark menu
5300         items from the Go menu.
5301         (activate_bookmark_in_menu_item): New function, go to the uri in the
5302         bookmark stored as user data in the given menu item.
5303         (history_list_changed_cb): New function, updates history section of 
5304         Go menu.
5305         (nautilus_window_init): Connect history_list_changed_cb to 
5306         "history_list_changed" signal of nautilus_signaller object.
5307         (nautilus_window_constructed): Stores away pointers to Go menu and
5308         separator between static & dynamic parts of this menu.  
5309         * src/ntl-window-private.h: (nautilus_add_to_history_list): Prototype
5310         for new function.
5311         * src/ntl-window-msgs.c: (nautilus_window_update_internals): Call
5312         nautilus_add_to_history_list with the new uri.
5314 2000-02-17  Andy Hertzfeld <andy@eazel.com>
5316         Improved index panel command buttons. There's still a problem
5317         with the button box removal, though.
5318         
5319         * libnautilus/nautilus-mime-type.c:
5320         Changed how command strings are structured to a simpler scheme
5321         with no substitution.
5322         
5323         * src/ntl-index-panel.c:
5324         Improved the way commands are launched and fixed a bug in the
5325         button removal code, but there's still some problems.
5326         
5327 2000-02-17  Andy Hertzfeld <andy@eazel.com>
5329         implemented command buttons for the index panel.
5330         
5331         * libnautilus/nautilus-mime-type.c, libnautilus/nautilus-mime-type.h:
5332         This is interim code for associating applications with mime-types; we
5333         will eventually keep this in OAF or GConf or at least in a file
5334         somewhere, but for now it's just scaffolding so we can work on the UI.
5335         * libnautilus/Makefile.am:
5336         Make nautilus-mime-type.c,h build.
5337         * stc/ntl-index-panel.c:
5338         Added code to call nautilus-mime-types to get relevant commands based
5339         on the mime-type, and then generate corresponding buttons in the index
5340         panel.
5341         
5342 2000-02-17  Darin Adler  <darin@eazel.com>
5344         Hand tuned icons for multiple resolutions.
5345         So for example you can have an icon designed for the 96x96
5346         size, which is called i-directory-96.png, and it will be
5347         loaded instead of loading i-directory.png and scaling it.
5349         * libnautilus/nautilus-icon-factory.c:
5350         (nautilus_icon_factory_get_icon_name_for_regular_file),
5351         (add_size_to_icon_name), (nautilus_icon_factory_load_icon),
5352         (nautilus_icon_factory_create_image_for_item),
5353         (get_larger_icon_size), (get_smaller_icon_size),
5354         (get_next_icon_size_to_try), (load_specific_image),
5355         (load_image_for_scaling), (load_image_scale_if_necessary),
5356         (nautilus_icon_factory_mark_recently_used), (mark_recently_used),
5357         (nautilus_icon_factory_get_pixbuf_for_icon),
5358         (get_image_from_cache), (nautilus_icon_factory_scale): Changed the
5359         icon factory so it will look for icons of multiple resolutions and
5360         scale the nearest. Also made other improvements including sharing
5361         a single fallback icon instead of making multiple ones, using the
5362         "core-dump" icon for files named "core", adding some additional
5363         g_return_if_fail.
5365         * libnautilus/nautilus-icon-factory.c:
5366         (self_test_next_icon_size_to_try),
5367         (nautilus_self_check_icon_factory):
5368         * libnautilus/nautilus-lib-self-check-functions.h:
5369         The new code needed a bit of self-check code, so I added it.
5371         * libnautilus/nautilus-directory.c:
5372         (nautilus_directory_try_to_read_metafile),
5373         (nautilus_directory_construct_alternate_metafile_uri):
5374         Since "make check" was failing, I checked to see what was wrong.
5375         The code that was respecting the new "valid_fields" part of
5376         GnomeVFSFileInfo was looking at the wrong field (flags instead
5377         of valid_fields), which caused all metafile reading to fail.
5378         While debugging this, I noticed that the alternate metafiles
5379         had particularly bad long names, so I fixed that too.
5381         * libnautilus/nautilus-directory.c: (nautilus_file_ref):
5382         * libnautilus/nautilus-glib-extensions.c:
5383         (nautilus_strdup_strftime):
5384         * libnautilus/nautilus-string.c: (nautilus_string_to_int):
5385         Switched from using <limits.h> constants to the ones from
5386         <glib.h>. I have no idea why I made this change. All hail
5387         glib! C Standard be damned!
5389         * fm-directory-view.c:
5390         (use_eazel_theme_icons_cb), (add_menu_item),
5391         (fm_directory_view_real_append_background_context_menu_items):
5392         Started on a user interface to switch to the Eazel theme
5393         icons so you can see the multiple-resolution icons, but
5394         I wanted to check in, so I stopped before it was done.
5396         * src/nautilus-index-title.c:
5397         Reindented Andy's new code to match the emacs mode header.
5398         
5399         * configure.in:
5400         * icons/Makefile.am:
5401         * icons/eazel/.cvsignore:
5402         * icons/eazel/Makefile.am:
5403         * icons/eazel/i-directory-24.png:
5404         * icons/eazel/i-directory-36.png:
5405         * icons/eazel/i-directory-72.png:
5406         * icons/eazel/i-directory-96.png:
5407         * icons/eazel/i-directory.png:
5408         I needed some variable-size icons to demonstrate the multiple
5409         resolution support in the icon factory, so I added a few
5410         directory icons from gnomad. Since these don't match the other
5411         icons, I made them part of an "eazel" icons theme.
5412         
5413         * RENAMING: Some new name ideas.
5415 2000-02-17  Jonathan Blandford  <jrb@redhat.com>
5417         * src/nautilus-index-title.c (nautilus_index_title_set_up_label):
5418         remember strlen (string) + 1 gives you the length necessary to
5419         copy a string, not strlen.
5421 2000-02-16  Andy Hertzfeld <andy@eazel.com>
5423         * src/nautilus-index-title.c:
5424         made the title be above the additional info again; Elliot broke this
5425         when he added the checks for null file objects.  Fixed by putting
5426         the checks in the subroutines that do that real work.  Also, made
5427         the label center justified.
5428         
5429 2000-02-16  Elliot Lee  <sopwith@redhat.com>
5431         * components/help/hyperbola-nav-tree.c: Show the stinking view. :)
5433 2000-02-16  John Sullivan  <sullivan@eazel.com>
5435         * libnautilus/nautilus-directory.c:
5436         Change empty folder string from "empty" to "0 items" at
5437         Andy's suggestion. It looked too much like part of the
5438         folder's name.
5440 2000-02-16  Elliot Lee  <sopwith@redhat.com>
5442         * components/help/hyperbola-main.c: Fix the GOAD ID for help index.
5443         * components/help/hyperbola.goad: Add help index.
5444         * libnautilus/nautilus-directory.c: To avoid a warning in case
5445         nautilus_directory_new fails, and speed things up, remove
5446         unnecessary cast.
5447         * libnautilus/nautilus-icon-factory.c: Add sanity checks to avoid segfaults.
5448         * src/nautilus-index-title.c: Add sanity check, plus try to handle
5449         case where nautilus_file_get() returns NULL.
5450         * src/ntl-window.c, src/ntl-window-msgs.c: Notify the index panel
5451         of a URI change when we notify everyone else, instead of doing it when
5452         the user requests a change.
5454         * components/html/ntl-web-browser.c: Fixups for VFS usage.
5455         * components/help/converters/gnome-info2html2/main.c: Search info path for files.
5457         * components/help/hyperbola-nav-index.c: Fix warning.
5458         * components/history/ntl-history-view.c: Update for Bonobo UIH changes.
5459         * components/html/main.c: Update repo ID for Bonobo changes.
5460         * src/ntl-view-bonobo-control.c: Likewise
5461         * src/ntl-view-bonobo-subdoc.c: Likewise
5462         * src/ntl-view-nautilus.c: Likewise
5463         * src/ntl-view.c: Only check for death every other second.
5464         * components/html/ntl-web-browser: Debugging printfs for now
5466 2000-02-16  Darin Adler  <darin@eazel.com>
5468         Added icon stretching and did some cleanups.
5469         Stretched icons aren't yet persistent (the scale factor is not
5470         saved in metadata), but that's not much more work.
5472         * libnautilus/gnome-icon-container-private.h:
5473         * libnautilus/gnome-icon-container.h:
5474         * libnautilus/gnome-icon-container.c: (icon_new), (icon_position),
5475         (icon_set_position), (icon_get_size), (icon_set_size),
5476         (icon_toggle_selected), (icon_select), (icon_set_selected),
5477         (button_press_event), (gnome_icon_container_begin_stretch),
5478         (start_stretching), (gnome_icon_container_stretch),
5479         (continue_stretching), (gnome_icon_container_end_stretch),
5480         (end_stretching), (button_release_event), (motion_notify_event),
5481         (handle_icon_button_press), (gnome_icon_container_clear),
5482         (request_update_one), (update_icon), (get_first_selected_icon),
5483         (gnome_icon_container_show_stretch_handles),
5484         (gnome_icon_container_has_stretch_handles),
5485         (gnome_icon_container_is_stretched),
5486         (gnome_icon_container_unstretch), (compute_stretch),
5487         (nautilus_self_check_compute_stretch),
5488         (nautilus_self_check_gnome_icon_container):
5489         * libnautilus/nautilus-icons-view-icon-item.h:
5490         * libnautilus/nautilus-icons-view-icon-item.c:
5491         (nautilus_icons_view_icon_item_draw),
5492         (nautilus_icons_view_icon_item_point),
5493         (nautilus_icons_view_icon_item_set_show_stretch_handles),
5494         (nautilus_icons_view_icon_item_get_hit_stretch_handle):
5495         * libnautilus/nautilus-lib-self-check-functions.h:
5496         Added machinery for stretching icons.
5498         * src/file-manager/fm-directory-view.h:
5499         * src/file-manager/fm-directory-view.c:
5500         (append_item_context_menu_items),
5501         (fm_directory_view_real_append_item_context_menu_items),
5502         (fm_directory_view_initialize_class), (create_item_context_menu):
5503         Added machinery for views to have view-specific menu items for
5504         icons as well as for the window as a whole.
5506         * src/file-manager/fm-directory-view-icons.c:
5507         (fm_directory_view_icons_initialize_class),
5508         (fm_directory_view_icons_append_item_context_menu_items),
5509         (show_stretch_handles_cb), (unstretch_item_cb):
5510         Added menu items for stretching icons.
5512         * libnautilus/gnome-icon-container.c: (start_rubberbanding):
5513         Fixed bug that would result in two rubberband timeouts at
5514         once if you did rubberbanding quickly.
5516         * components/notes/.cvsignore: Andy's new component needs a
5517         .cvsignore file for its generated pieces.
5519         * libnautilus/nautilus-directory.c:
5520         (nautilus_directory_try_to_read_metafile),
5521         (nautilus_directory_read_metafile):
5522         Simplified logic in metafile-reading functions and fixed a bug
5523         where the vfs handle would be left open if certain categories
5524         of errors occurred.
5526         * libnautilus/nautilus-gtk-extensions.h:
5527         Added a missing gtk_marshal function.
5529         * libnautilus/nautilus-icon-factory.h:
5530         * libnautilus/nautilus-icon-factory.c:
5531         (nautilus_icon_size_for_zoom_level),
5532         (nautilus_get_icon_size_for_zoom_level),
5533         (nautilus_icon_factory_get_pixbuf_for_file),
5534         (nautilus_icon_factory_get_pixmap_and_mask_for_file):
5535         * src/nautilus-index-title.c: (nautilus_index_title_set_up_icon):
5536         * src/nautilus-zoom-control.c: (set_zoom_level):
5537         * src/file-manager/fm-directory-view-list.c:
5538         (fm_directory_view_list_bump_zoom_level), (install_icon):
5539         Made some API improvements for the icon factory. Added a missing
5540         get_ to the name nautilus_get_icon_size_for_zoom_level and added
5541         convenience functions for the most common uses of the factory.
5543         * libnautilus/ntl-content-view-frame.c:
5544         * libnautilus/ntl-meta-view-frame.c:
5545         * libnautilus/ntl-view-frame.c:
5546         Weaned all the files in libnautilus itself from using the
5547         libnautilus.h include file. They instead include the parts that
5548         they need. Also added some missing <config.h> includes.
5550 2000-02-15  Andy Hertzfeld <andy@eazel.com>
5552         * src/ntl-index-panel.c:
5553         Removed test code that created extra tabs on right-click.
5554         * src/ntl-index-title.c:
5555         Added logic to break the title into two lines so it can use a larger font,
5556         if it can find an appropriate breaking point.
5557         
5558 2000-02-15  Maciej Stachowiak  <mjs@eazel.com>
5560         * src/ntl-window.c (nautilus_window_init): gtk_quit_add_destroy
5561         the NautilusWindow at level 1, so that we can clean up CORBA
5562         objects and such when we Exit rather than Closing the last window.
5564         * src/ntl-index-panel.c: sink and ref the notebook and unref in
5565         the destructor, so it gets destroyed even if it never ends up
5566         getting added to the index panel.
5568         * src/ntl-view-nautilus.c: Don't ref the Control interface we just
5569         QI'd; query_interface implicitly refs.
5570         
5571 2000-02-15  Elliot Lee  <sopwith@redhat.com>
5573         * libnautilus/nautilus-directory.c: Pay attention to the
5574         GnomeVFSFileInfo flags to determine whether to read the metafile.
5576         * components/html/ntl-web-browser.c: Try to fall back to using
5577         gnome-vfs if we can't load it via libwww. Sort of bad hack, but it
5578         just might work.
5580 2000-02-15  John Sullivan <sullivan@eazel.com>
5582         History metaview now lists all locations visited in this
5583         session, from most recent (top) to longest ago, with no
5584         duplicates.
5586         * components/history/ntl-history-view.c:
5587         Removed last_row field from HistoryView struct. This was used
5588         to keep track of previously-visited location, but since the most
5589         recently-visited location is always first now, this is always 0.
5590         (get_bookmark_from_row): New helper function to extract the bookmark
5591         stored in the row data.
5592         (get_uri_from_row): Use get_bookmark_from_row.
5593         (hyperbola_navigation_history_notify_location_change):
5594         Remove existing row for this location, if any, and then prepend
5595         new row. Replaces back/forward/reload logic that wasn't quite right
5596         anyway.
5597         (hyperbola_navigation_history_select_row): Move gtk_clist_freeze
5598         after early bail-out; change bail-out to just check for row 0;
5599         remove setting of last_row; add comment about dragging bug.
5600         (menu_setup): Change menu item from "Do nothing" to 
5601         "Do nothing (menu merge test)" for clarity.
5602         (make_obj) Remove initialization for last_row.
5604 2000-02-15  John Sullivan <sullivan@eazel.com>
5606         Added small icons to history metaview.
5608         * components/history/ntl-history-view.c:
5609         Added #defines for columns and column count.
5610         (get_uri_from_row): New function, abstracts getting the URI from
5611         a row in the history list.
5612         (install_icon): New function, handles getting the right icon and
5613         putting it into the right cell.
5614         (hyperbola_navigation_history_notify_location_change):
5615         Deployed column #defines; fixed check-off-end-of-list bug;
5616         use get_uri_from_row; store NautilusBookmark as row data;
5617         use install_icon.
5618         (hyperbola_navigation_history_select_row): use get_uri_from_row.
5619         (make_obj): Turn off titles for clist, include icon column;
5620         set row height to account for icons
5621         (main): add gnome_vfs_init (needed by nautilus_icon_factory).
5623 2000-02-15  Ramiro Estrugo <ramiro@eazel.com>
5625         Added styleguide.
5627         * docs/style-guide.html: New file
5629 2000-02-15  Ramiro Estrugo <ramiro@eazel.com>
5631         Added displacement offset for popup menus, so that the first
5632         item doesn't get triggered right away.
5634         * libnautilus/nautilus-gtk-extensions.c:
5635         * libnautilus/nautilus-gtk-extensions.h: Added x,y displacement
5636         args to nautilus_pop_up_context_menu.
5638         * src/ntl-window.c: Updated for new api
5640         * src/file-manager/fm-directory-view.c: Updated for new api
5642 2000-02-15  Ramiro Estrugo <ramiro@eazel.com>
5644         Added modules blurb to HACKING file.
5646         * HACKING: Added modules blurb.
5648 2000-02-15  John Sullivan <sullivan@eazel.com>
5650         Moved NautilusBookmark to libnautilus, in preparation for
5651         using it in the History metaview.
5653         * src/nautilus-bookmark.c: Removed file.
5654         * src/nautilus-bookmark.h: Removed file.
5655         * src/Makefile.am: Took out these two files.
5656         
5657         * libnautilus/nautilus-bookmark.c: Added file.
5658         * libnautilus/nautilus-bookmark.h: Added file.
5659         * libnautilus/Makefile.am:  Build the two new files.
5661         * src/nautilus-bookmarklist.h: Updated #include
5663 2000-02-15  John Sullivan <sullivan@eazel.com>
5665         Right-click menus from Back and Forward buttons now include
5666         small icons. To support this, window back/forward lists now
5667         store NautilusBookmarks.
5669         * src/nautilus-bookmarks-menu.c:
5670         (bookmark_menu_item_new): Removed (moved to nautilus-bookmark.c/h,
5671         and renamed nautilus_bookmark_menu_item_new).
5672         (create_pixmap_widget_for_bookmark): Removed (moved to nautilus-bookmark.c/h)
5673         (nautilus_bookmarks_menu_repopulate): updated caller to match name change.
5675         * src/nautilus-bookmark.h:
5676         (nautilus_bookmark_menu_item_new): New function.
5677         * src/nautilus-bookmark.c:
5678         (nautilus_bookmark_menu_item_new): New function, moved over from
5679         nautilus-bookmarks-menu.c
5680         (create_pixmap_widget_for_bookmark): New function, moved over from
5681         nautilus-bookmarks-menu.c
5683         * src/ntl-window.h:
5684         Replaced uris_prev and uris_next with back_list and forward_list.
5685         Added comment explaining that the data is now NautilusBookmark * and
5686         not just char *.
5687         * src/ntl-window-msgs.c:
5688         (nautilus_window_update_internals): updated to use back_list and 
5689         forward_list.
5690         * src/ntl-window.c:
5691         (activate_back_or_forward_menu_item), (nautilus_window_destroy): 
5692         updated to use back_list and forward_list
5693         (create_back_or_forward_menu): updated to use back_list and
5694         forward_list; use nautilus_bookmark_menu_item_new to get icons.
5695         (nautilus_window_back_or_forward): New function, consolidates
5696         repeated code from nautilus_window_back and nautilus_window_forward.
5697         (nautilus_window_back), (nautilus_window_fwd): Now call
5698         nautilus_window_back_or_forward.
5700 2000-02-15  Andy Hertzfeld <andy@eazel.com>
5702         * src/nautilus-index-tabs/c:
5703         improved tab-resizing code by not the last one if it's invisible,
5704         also, invoked resize code after a tab is selected
5705         
5706 2000-02-14  Andy Hertzfeld <andy@eazel.com>
5708         * components/notes/ntl-notes.c:
5709         fixed problems with notes component by initializing gnome-vfs, etc.
5710         changed metadata key to "ANNOTATION" to keep them separate from panel notes
5711         * libnautilus/nautilus-metadata.h:
5712         defined "ANNOTATION" metadata type
5714 2000-02-14  Andy Hertzfeld <andy@eazel.com>
5716         first cut at annotation metaview
5717         
5718         * components/notes/Makefile.am:
5719         automake file for notes component
5720         * components/notes/ntl-notes.c:
5721         implementation of annotation metaview
5722         * components/notes/ntl-notes.goad:
5723         activation file for notes component
5724         * components/Makefile.am:
5725         added notes folder
5726         * configure.in:
5727         added component/notes/Makefile
5728         * src/ntl-prefs.c:
5729         added annotation metaview to prefs
5730         
5731 2000-02-14  John Sullivan <sullivan@eazel.com>
5733         Back and Forward buttons now sprout right-click menus.
5734         Still work to do to put small icons in them, and to 
5735         make them keep the back/forward chain intact.
5737         * libnautilus/nautilus-gtk-extensions.h:
5738         * libnautilus/nautilus-gtk-extensions.c:
5739         (nautilus_pop_up_context_menu): New helper function used
5740         when displaying right-click context menus.
5742         * src/file-manager/fm-directory-view.c:
5743         (popup_context_menu): Removed (moved & renamed to
5744         nautilus_pop_up_context_menu).
5745         (fm_directory_view_popup_item_context_menu),
5746         (fm_directory_view_popup_background_context_menu): 
5747         Now use nautilus_pop_up_context_menu.
5748         
5749         * src/ntl-window.c:
5750         (activate_back_or_forward_menu_item): New function, go to the
5751         appropriate location.
5752         (activate_back_menu_item_cb): New function, call
5753         activate_back_or_forward_menu_item.
5754         (activate_forward_menu_item_cb): New function, call
5755         activate_back_or_forward_menu_item.
5756         (create_back_or_forward_menu): New function, create and populate a
5757         menu from the back list or the forward list.
5758         (back_or_forward_button_clicked_cb): New function, pop up the result
5759         of create_back_or_forward_menu.
5760         (nautilus_window_constructed): Wire up context menu code to
5761         back and forward buttons.
5763 2000-02-14  Darin Adler  <darin@eazel.com>
5765         * libnautilus/nautilus-icon-factory.c:
5766         (nautilus_icon_factory_load_icon):
5767         Just noticed that Elliot checked in a gdk-pixbuf fix, so I can
5768         roll the cast back out.
5769         
5770 2000-02-14  Darin Adler  <darin@eazel.com>
5772         * libnautilus/nautilus-icon-factory.c:
5773         (nautilus_icon_factory_load_icon):
5774         Need a cast in here so people can build while I wait for the OK
5775         from Federico to check in my const change to gdk-pixbuf.
5776         
5777 2000-02-14  Elliot Lee  <sopwith@redhat.com>
5778         
5779         * libnautilus/nautilus-icon-factory.c: Use GPOINTER_TO_UINT()
5780         instead of a manual cast.
5782 2000-02-14  Darin Adler  <darin@eazel.com>
5784         * libnautilus/nautilus-directory.c: (nautilus_directory_read_metafile):
5785         Handle the case where you try to make a NautilusDirectory object for
5786         something that's a file.
5788         * libnautilus/nautilus-directory.c: (nautilus_directory_get_metadata):
5789         Handle NULL directory objects better.
5791         * src/ntl-index-panel.c:
5792         Changed handling of NULL directory case so it will display something
5793         instead of doing early exits that leave the display as-is.
5795         * src/nautilus-index-title.h:
5796         * src/nautilus-index-title.c:
5797         Reformatted, some minor cleanups.
5799 2000-02-14  Darin Adler  <darin@eazel.com>
5801         * libnautilus/nautilus-icon-factory.c:
5802         Redid the icon factory to fix a few things:
5803         
5804         - Replaced the existing non-working count-based LRU algorithm with
5805           one that works (uses a linked list).
5806         - Keep resized icons in the cache.
5807         - Hand out a single NautilusScalableIcon when multiple callers ask
5808           for the same icon instead of a new one each time.
5809         - Fixed one bug where pixbuf's would get an extra ref and never get
5810           freed once they are no longer used.
5812         * libnautilus/nautilus-metadata.h:
5813         * src/nautilus-index-title.c (nautilus_index_title_set_up_info):
5814         * libnautilus/nautilus-icon-factory.c
5815         (nautilus_icon_factory_get_icon_for_file):
5816         Added keys for the two pieces of metadata Andy just added.
5818         * libnautilus/gnome-icon-container-private.h:
5819         * libnautilus/gnome-icon-container.c: (scroll),
5820         (make_icon_visible), (set_scroll_region): Fixed the code that
5821         resizes the canvas as items are added and removed to properly
5822         handle the case where the canvas extends into negative-coordinate
5823         territory. This included removing the width and height that were
5824         stored in the private structure.
5826         * libnautilus/nautilus-directory.c: (nautilus_directory_get): Tiny
5827         formatting tweak.
5829 2000-02-14  John Sullivan <sullivan@eazel.com>
5831         Fixed index title bugs that showed up when visiting http:// url.
5832         It's still the case that the wrong text appears; I just made it
5833         not drop into the debugger.
5835         * libnautilus/nautilus-icon-factory.c:
5836         (nautilus_icon_factory_get_icon_for_file): Made it return NULL
5837         for a NULL file. Could have made this a return_val_if_fail
5838         instead, wasn't sure which was better in this case.
5840         * src/nautilus-index-title.c:
5841         (nautilus_index_title_set_up_icon): Made it bail out early if
5842         NautilusFile parameter is NULL.
5843         (nautilus_index_title_set_up_info): Made it bail out early if
5844         NautilusFile parameter is NULL.
5845         (nautilus_index_title_set_uri): Made it unref file_object only
5846         if non-NULL.
5849         Experimental zoom behavior change: Now it resets the default
5850         zoom level every time the zoom level is set. This means that
5851         zoom level changes stick across locations, until you revisit
5852         a location that had its zoom level set explicitly earlier.
5854         * src/file-manager/fm-directory-view-icons.c:
5855         Added default_zoom_level to Details struct.
5856         (fm_directory_view_icons_initialize): Initialize default_zoom_level
5857         to NAUTILUS_ZOOM_LEVEL_STANDARD.
5858         (fm_directory_view_icons_begin_loading),
5859         (fm_directory_view_icons_get_zoom_level): Pass default_zoom_level
5860         to metadata calls.
5861         (fm_directory_view_icons_set_zoom_level): Pass default_zoom_level
5862         to metadata call, also reset default_zoom_level to new level.
5863         
5864         * src/file-manager/fm-directory-view-list.c:
5865         Added default_zoom_level to Details struct.
5866         (fm_directory_view_icons_initialize): Initialize default_zoom_level
5867         to NAUTILUS_ZOOM_LEVEL_SMALLER.
5868         (fm_directory_view_list_begin_loading): Pass default_zoom_level
5869         to metadata call.
5870         (fm_directory_view_list_set_zoom_level): Pass default_zoom_level
5871         to metadata call, also reset default_zoom_level to new level.
5872         
5873 2000-02-14  Elliot Lee  <sopwith@redhat.com>
5875         * components/html/ntl-web-browser.c: Send status strings for now,
5876         until nautilus knows how to generate them from selection info.
5878 2000-02-14  Andy Hertzfeld <andy@eazel.com>
5880         * src/nautilus-index-tabs.c:
5881         Fixed warning about measuring NULL string that Elliot pointed out
5882         
5883 2000-02-14  Elliot Lee  <sopwith@redhat.com>
5884         
5885         * src/ntl-window-msgs.c: Revert.
5886         * components/help/hyperbola-nav-index.c: More work.
5888 2000-02-13  Andy Hertzfeld <andy@eazel.com>
5890         * libnautilus/nautilus-icon-factory.c:
5891         Made it use custom image specified in meta-data, if present.
5892         also, upped the size used for displaying images as themselves
5893         without thumbnails, from 10K to 16K.
5894         * src/nautilus-index-title.c:
5895         Display "notes" from metadata in index panel if present.
5896         * src/ntl-index-panel.c:
5897         Fiddled with drag and drop code trying to get it to accept
5898         image files, not yet working
5899         
5900 2000-02-13  Andy Hertzfeld <andy@eazel.com>
5902         Made nautilus-index-title widget to hold the title information
5903         for the index panel.
5904         
5905         * src/ntl-index-panel.c:
5906         allocated index-title to display info, removed old code that did it
5907         * src/Makefile.am:
5908         added nautilus-index-title.c and nautilus-index-title.h
5909         * src/nautilus-index-title.c,h:
5910         moved code from index-panel here to show icon and title
5911         used nautilus_file and icon_factory to get the icon the real way
5912         added more info besides the name (size, type and date)
5913         
5914 2000-02-12  Andy Hertzfeld <andy@eazel.com>
5916         * src/nautilus-index-tabs.c:
5917         made the tabs layout be more dynamic, laying out as many
5918         tabs as fit in a row instead of a maximum of two. Tightened
5919         up the layout and improved the drawing, too.
5920         * src/ntl-index-panel.c:
5921         Right clicking on the tabs adds extra ones for testing purposes.
5922         
5923 2000-02-11  Andy Hertzfeld <andy@eazel.com>
5925         * libnautilus/gnome-icon-container-dnd.c:
5926         made it no longer use a drag shadow rectangle when dragging a single item
5927         
5928 2000-02-11  Andy Hertzfeld <andy@eazel.com>
5930         * src/ntl-window.c:
5931         removed Elliot's weird hack where the index panel size would vary
5932         according to the first letter of the username; replaced it with code
5933         that special-cases the size for "sopwith".
5934         
5935 2000-02-11  Andy Hertzfeld <andy@eazel.com>
5937         Finally enabled the new metaview UI
5938         
5939         * src/nautilus-index-tabs.c,h:
5940         made clicking on the title tab deactivate the current metaview
5941         removed the panel_width field since it didn't work for the
5942         resizable panel, instead, look at the parents width on the fly
5943         added code to test lots of tabs and improved the drawing in that case
5944         before removing the test code.
5945         * src/ntl-index-panel.c:
5946         removed the USE_NEW_TABS boolean; we always use them now
5947         
5948 2000-02-11  John Sullivan <sullivan@eazel.com>
5950         Made right-clicking on an item select just that one item
5951         before popping up context menu. This makes it clear what
5952         the context menu is operating on.
5954         * libnautilus/gnome-icon-container.c:
5955         (handle_icon_button_press): Select just the clicked icon
5956         before sending CONTEXT_CLICK_ICON signal.
5957         * libnautilus/gtkflist.c:
5958         (gtk_flist_button_press): Select just the clicked row
5959         before sending CONTEXT_CLICK_ROW signal.
5961         Fixed bug where "Open" and "Open in New Window" had
5962         unexpected results in list view.
5964         * src/file-manager/fm-directory-view-list.c:
5965         (context_click_row_cb): Fixed bug where this routine was passing
5966         the wrong item to the context menu.
5968 2000-02-11  Elliot Lee  <sopwith@redhat.com>
5969         * src/ntl-window.c: If an empty string is passed for a status string, just unset it all.
5970         * src/ntl-window-msgs.c: If we get a selection of size 1, indicate it on the status bar.
5971           (Triggers a nautilus_window_set_status bug, will fix later.)
5973 2000-02-11  John Sullivan <sullivan@eazel.com>
5975         * src/ntl-window.h:
5976         Return of the stored widgets for toolbar buttons that need
5977         sensitivity changes, only this time do them all and add
5978         the new menu items too.
5980         * src/ntl-window.c:
5981         (nautilus_window_constructed): Save away pointers to all the
5982         widgets that need accessing later.
5983         (nautilus_window_allow_back), (nautilus_window_allow_forward),
5984         (nautilus_window_allow_up), (nautilus_window_allow_reload),
5985         (nautilus_window_allow_stop): Use stored widget pointers rather
5986         than GnomeUIInfo arrays to access the buttons and menu items.
5987         Getting the widget from the array only worked until another
5988         window was created.
5990         * libnautilus/nautilus-directory.c: (get_directory_item_count_hack):
5991         Subtract 2 from item count before returning, to account for . and ..
5993 2000-02-11  John Sullivan <sullivan@eazel.com>
5995         Sensitized "Open" context menu item, and added
5996         "Open in New Window". Extended the framework as
5997         required to support opening into a new window.
5999         * src/ntl-types.h: Added use_new_window gboolean
6000         to NautilusNavigationInfo struct. (Nautilus_
6001         NavigationRequestInfo already had a concept of using
6002         a new window, but it was never passed on to the
6003         window-managing code).
6004         
6005         * src/ntl-uri-map.c: (nautilus_navinfo_new): Set the
6006         use_new_window field of the new object based on the
6007         new_window_default/suggested/enforced settings from
6008         the NavigationRequestInfo.
6009         
6010         * src/ntl-window-msgs.c: (nautilus_window_change_location_2):
6011         Create a new window if passed-in NautilusNavigationInfo says so.
6012         
6013         * src/file-manager/fm-directory-view.h:
6014         (fm_directory_view_activate_entry): Added gboolean 
6015         request_new_window parameter. 
6017         * src/file-manager/fm-directory-view.c:
6018         (fm_directory_view_activate_entry): Set new_window_suggested
6019         of NavigationRequestInfo based on value of new
6020         request_new_window parameter.
6021         (open_cb): New function, calls fm_directory_view_activate_entry
6022         with request_new_window FALSE.
6023         (open_in_new_window_cb): New function, calls 
6024         fm_directory_view_activate_entry with request_new_window TRUE.
6025         (append_item_context_menu_items): Sensitize "Open" item, add
6026         "Open in New Window" item, wire 'em up.
6027         
6028         * src/file-manager/fm-directory-view-icons.c:
6029         (icon_container_activate_cb): pass FALSE for request_new_window.
6030         
6031         * src/file-manager/fm-directory-view-list.c:
6032         (flist_activate_cb): pass FALSE for request_new_window.
6035         Added beginnings of Go menu, and cleaned up some
6036         cruft found in the process. Holler now if you think
6037         the Go menu is a bad idea.
6039         * src/ntl-window.h:
6040         Removed btn_back and btn_fwd fields, as they were being
6041         initialized and then ignored.
6043         * src/ntl-window.c:
6044         Added go_menu_info array and filled it with Back, Forward,
6045         Up, and Home, all with keyboard equivalents. (Later this menu
6046         will also contain dynamic history list.)
6047         Added #defines for toolbar button indices.
6048         (nautilus_window_constructed): Removed mentions of btn_back 
6049         and btn_fwd; moved nautilus_window_allow_stop to after the
6050         menus are set up; added nautilus_window_allow_back and
6051         nautilus_window_allow_forward calls.
6052         (nautilus_window_allow_back): Use #define for Back button index
6053         instead of hardcoded magic number; set Back menu item sensitivity.
6054         (nautilus_window_allow_forward): Use #define for Forward button index
6055         instead of hardcoded magic number; set Forward menu item sensitivity.
6056         (nautilus_window_allow_up): Use #define for Up button index
6057         instead of hardcoded magic number; set Up menu item sensitivity.
6058         (nautilus_window_allow_reload): Use #define for Reload button index
6059         instead of hardcoded magic number (which was incorrect).
6060         (nautilus_window_allow_stop): Use #define for Stop button index
6061         instead of hardcoded magic number.
6063 2000-02-10  Andy Hertzfeld <andy@eazel.com>
6065         * src/ntl-index-panel.c:
6066         added code to hide metaview when the title tab is clicked upon
6067         * src/nautilus-index-tabs.c:
6068         made hit-testing work for the title tab
6069         * src/ntl-window.c:
6070         defaulted hpaned position to proper size
6072 2000-02-10  Andy Hertzfeld <andy@eazel.com>
6074         * src/nautilus-index-tabs.c,h:
6075         added visibility property to tabs, improved drawing and layout,
6076         added title mode for title tab on top
6077         * src/ntl-index-panel.c
6078         made it allocate title tab and use it
6079         made clicking on tabs activate the proper view
6080         
6081 2000-02-10  John Sullivan <sullivan@eazel.com>
6083         * libnautilus/nautilus-icons-view-icon-item.c:
6084         (draw_or_measure_text): Removed : from the set of breakable
6085         characters, so times won't get broken in two.
6087 2000-02-10  Elliot Lee  <sopwith@redhat.com>
6089         * src/ntl-window.c: Set hpaned position for Darin's sanity.
6090         * src/ntl-window-state.c: Handle view loading failure properly.
6092 2000-02-10  Darin Adler  <darin@eazel.com>
6094         * ntl-window-msgs.c: (nautilus_window_has_really_changed):
6095         Check GTK_OBJECT_DESTROYED to handle the case of a view
6096         that self-destructs.
6098 2000-02-10  Darin Adler  <darin@eazel.com>
6100         * nautilus-index-tabs.c: (draw_or_hit_test_all_tabs):
6101         Fix so it doesn't try to create a GC when hit testing
6102         a tab. This gets rid of critical errors people were
6103         running into.
6105 2000-02-10  John Sullivan <sullivan@eazel.com>
6107         * libnautilus/nautilus-directory.c:
6108         (nautilus_file_get_owner_as_string): New function
6109         (nautilus_file_get_group_as_string): New function
6110         (nautilus_file_get_permissions_as_string): New function
6111         (nautilus_file_get_string_attribute): Now supports
6112         "owner", "group", and "permissions" string attributes.
6114         * src/file-manager/fm-icon-text-window.c:
6115         Now includes "owner", "group", and "permissions" among the
6116         choices to display under an icon.
6118 2000-02-10  Elliot Lee  <sopwith@redhat.com>
6120         * src/ntl-main.c: Add "Bonobo" to list of log domains to catch.
6122         * src/ntl-window.c: Do proper UIH setup for the menubar and
6123         toolbar. Also switch to using the hpaned temporarily, to be able
6124         to see/manipulate all the meta views.
6126         * components/history/ntl-history-view.c: Implement client side of
6127         menu merging properly.
6129 2000-02-10  John Sullivan <sullivan@eazel.com>
6131         Used directory item count hack when comparing by size, so
6132         the item counts are sorted correctly. This is horribly
6133         inefficient, but isn't actually horribly slow in most cases.
6134         This will be fixed when we switch the item count calculation
6135         to use the deferred-result architecture.
6137         * libnautilus/nautilus-directory.c:
6138         (nautilus_file_compare_by_size_with_directories): New function,
6139         uses item count hack, as well as putting directories before 
6140         non-directories.
6141         (nautilus_file_compare_for_sort_internal): Uses
6142         nautilus_file_compare_by_size_with_directories to handle
6143         directories, falls through to GnomeVFS rules for other cases.
6145 2000-02-10  John Sullivan <sullivan@eazel.com>
6147         Put in quick hack for showing directory item counts under icons
6148         since "--" looks so awful. It's a hack because it blocks the
6149         display until all directories inside this one have been
6150         iterated. We'll change that after we've got a deferred-result
6151         architecture in NautilusDirectory.
6153         * libnautilus/nautilus-directory.c:
6154         (get_directory_item_count_hack): New function to count items
6155         in a directory. Will go away with time.
6156         (nautilus_file_get_size_as_string): uses new hack instead of
6157         returning "--" for directory sizes.
6159 2000-02-09  Andy Hertzfeld <andy@eazel.com>
6161         Completed hit-testing and activation for the index tabs.  They're
6162         usable now, but I'm leaving them off until they're more refined.
6164         * src/nautilus-index-tabs.c:
6165         completed hit-testing
6166         * src/ntl-index-panel.c:
6167         activate the appropriate metaview when the corresponding tab is clicked
6169 2000-02-09  Andy Hertzfeld <andy@eazel.com>
6171         More work on the index panel, still conditionally disabled;
6172         change USE_NEW_TABS to a non-zero value if you want to check it out.
6173         
6174         * src/nautilus-index-tabs.c,h:
6175         improved positioning and started on hit-testing
6176         * src/ntl-index-panel.c:
6177         made the notebook hidden by default and added hit-testing infrastructure
6178         * src/nautilus-zoom-control.c:
6179         fixed incorrect comment
6180         
6181 2000-02-09  Darin Adler  <darin@eazel.com>
6183         * fm-directory-view-icons.c:
6184         (fm_directory_view_icons_get_full_icon_text_attribute_names):
6185         (fm_directory_view_icons_set_full_icon_text_attribute_names):
6186         After talking to John, removed the asserts from both of these
6187         routines. Later, he'll figure out whether this needs refinement,
6188         but for now we just want to avoid the abort on startup!
6190 2000-02-09  Darin Adler  <darin@eazel.com>
6192         Reworked the canvas item class used by the icon
6193         container. Straightened out the use of various coordinate systems
6194         and bounds calculations and removed much unused code inherited
6195         from the GdkPixbuf canvas item class that Andy cloned our code
6196         from. Changed the class so it doesn't scale icons any more -- we
6197         leave that to the icon factory so the scaled icons can be cached.
6199         * libnautilus/gnome-icon-container-dnd.c:
6200         * libnautilus/gnome-icon-container-private.h:
6201         * libnautilus/gnome-icon-container.c:
6202         * libnautilus/nautilus-icons-view-icon-item.c:
6203         * libnautilus/nautilus-icons-view-icon-item.h:
6204         Made extensive changes to the icon item class, including getting
6205         rid of the "x", "y", "width", and "height" attributes, adding a
6206         new "font" attribute, changing the "label" attribute name to "text"
6207         to be more consistent with other canvas items, simplifying the
6208         update logic for now (we can recomplicate it later if need be),
6209         changing the pixbuf to have a fixed size in pixels instead of being
6210         scaled with the pixels_per_unit and changing the pixbuf when we change
6211         zoom levels, and other misc. cleanup.
6212         (nautilus_icons_view_icon_item_get_arg):
6213         Fixed bug for "label" which would return a non-strdup'd piece of text.
6214         (draw_or_measure_text_box):
6215         Fixed bug where width of the selection box would be based on the
6216         length of the last line of text, not the widest, and extra GCs would
6217         be created for each line of text.
6219         * libnautilus/nautilus-icons-controller.h:
6220         * libnautilus/nautilus-icons-controller.c:
6221         (nautilus_icons_controller_get_icon_image):
6222         * src/file-manager/fm-icons-controller.c:
6223         (fm_icons_controller_get_icon_image):
6224         Changed the interface so that the icons controller specifies the icon
6225         as a NautilusScalableIcon instead of a GdkPixbuf. This lets the icon
6226         container get the appropriate icon for size as it zooms.
6228         * libnautilus/gdk-extensions.h:
6229         * libnautilus/gdk-extensions.c:
6230         (nautilus_gdk_font_equal):
6231         Added a version of gdk_font_equal that works with NULL for the font.
6232         Maybe we need a naming scheme for these NULL-tolerant variations on
6233         basic calls.
6235         * src/ntl-uri-map.c: (nautilus_navinfo_free):
6236         * src/ntl-window-msgs.c: (nautilus_window_change_location_2):
6237         Fixed a NULL dereference that would happen when @navi was NULL.
6238         
6239         * libnautilus/nautilus-directory.c:
6240         (nautilus_directory_try_to_read_metafile):
6241         Fixed error handling for case when gnome_vfs_read fails.  Fixed
6242         error handling for case where metafile_info.size won't fit into a
6243         size_t.  Switched back to g_malloc instead of g_alloca, since the
6244         size of a file might be too big for the stack. In the long run, we
6245         will feed the file data directly to the XML code, so this is a bit
6246         temporary.  Removed the assert that Elliot added to help track
6247         down the giant files sizes coming from gnome-vfs; the failure in
6248         g_malloc will be easy to debug, unlike the failure in
6249         g_alloca. (The assert was added without a ChangeLog entry.)
6251 2000-02-09  John Sullivan <sullivan@eazel.com>
6253         Fixed bug Andy found with icon-text window.
6255         * src/file-manager/fm-icon-text-window.c:
6256         * src/file-manager/fm-icon-text-window.h:
6257         Removed icon_view static variable.
6258         (changed_attributes_option_menu_cb): Removed assert that icon_view
6259         is valid, since there's only a global setting; pass NULL as parameter
6260         to fm_directory_view_icons_set_full_icon_text_attribute_names.
6261         (fm_icon_text_window_set_view): Eliminated, since there's only a
6262         global setting.
6264         * src/file-manager/fm-directory-view-icons.c:
6265         (customize_icon_text_cb): Removed call to fm_icon_text_window_set_view.
6266         (fm_directory_view_icons_get_full_icon_text_attribute_names),
6267         (fm_directory_view_icons_set_full_icon_text_attribute_names):
6268         Clarified comments, and added assertion that no particular
6269         viewer was specified.
6271 2000-02-09  Elliot Lee  <sopwith@redhat.com>
6273         * libnautilus/bonobo-stream-vfs.[ch]: Implement truncate.
6274         * src/nautilus-zoom-control.c: Use GINT_TO_POINTER and GPOINTER_TO_INT macros
6275         for "proper" int <-> pointer conversion.
6277 2000-02-09  John Sullivan <sullivan@eazel.com>
6279         * src/file-manager/fm-icon-text-window.c:
6280         (get_attribute_index_from_option_menu): New helper function.
6281         (ensure_unique_attributes): New function, makes sure that no
6282         two option menus in this window have same value.
6283         (is_in_chosen_values): New function, used by ensure_unique_attributes.
6284         (get_chosen_attribute_name): Use get_attribute_index_from_option_menu.
6285         (changed_attributes_option_menu_cb): Reworked to use array of
6286         option menus; also calls ensure_unique_attributes so the user can't
6287         set more than one of the menus to the same value (new one wins, old
6288         one gets set to first unused value).
6289         (create_attributes_option_menu): Now takes menu_number parameter,
6290         which is passed to item-activation callback.
6291         (create_icon_text_window): Reworked to use array of option menus;
6292         renamed all glade-invented variable names to sensible ones.
6293         
6294         * src/file-manager/fm-directory-view-icons.c:
6295         (fm_directory_view_icons_append_background_context_menu_items):
6296         Added a separator before "Customize Icon Text...", since by acting
6297         globally rather than on the viewed directory it's conceptually in a
6298         different class than the other menu items. It may move out of this
6299         menu entirely someday.
6300         
6301         * libnautilus/nautilus-directory.c:
6302         (nautilus_file_get_size_as_string): Back to using "--" for directories,
6303         so there's no blank line. We want to use item counts here, but I've
6304         postponed implementing that feature.
6305         (nautilus_file_get_type_as_string): Made files with no mime type
6306         return "unknown type" at Andy's suggestion.
6307         (nautilus_file_compare_by_type): New function, needed to compare
6308         nautilus-generated type strings (can't use GnomeVFS comparison function).
6310 2000-02-09  Elliot Lee  <sopwith@redhat.com>
6312         * src/ntl-view-bonobo-control.c: In notify_location_change, send
6313         progress back (because the Bonobo control, which might be the
6314         content view, can't do it).
6316         * src/ntl-view-bonobo-subdoc.c: As above, plus don't use
6317         PersistFile interface, plus use bonobo-stream-vfs instead of
6318         bonobo-stream-fs.
6320         * src/ntl-uri-map.c: If no content type is found, default to text/plain.
6322         * libnautilus/bonobo-stream-vfs.[ch], libnautilus/Makefile.am:
6323         Initial implementation of bonobo streams in terms of Gnome VFS.
6325 2000-02-09  Maciej Stachowiak  <mjs@eazel.com>
6327         * src/ntl-meta-view.c: To avoid a bug which caused parts of the
6328         destroy function calling chain to be skipped, remove the destroy
6329         function. In the process, switch over to using the boilerplate
6330         generation macros from nautilus-gtk-macros.h
6332 2000-02-08  Andy Hertzfeld <andy@eazel.com>
6334         More work on the index tabs; they're drawing properly now but they're
6335         still not ready to be left hooked up.
6336         
6337         * src/nautilus-index-tabs.c:
6338         made the index tabs draw properly
6339         * src/nautilus-index-panel.c:
6340         install the new index tabs if the USE_NEW_TABS define is set; it's
6341         not by default
6342         * icons/tableft.png, icons/tabright.png:
6343         added alpha channel to edge pixmaps so they can draw non-rectangular
6344         
6345 2000-02-08  John Sullivan <sullivan@eazel.com>
6347         Tweaked the appearance of the icon-text choosing window.
6348         Still not quite laid out right, but it's closer.
6350         * src/file-manager/fm-icon-text-window.c:
6351         (create_attributes_option_menu): Center the text in the menu items.
6352         (create_icon_text_window): Change expand parameter for vertical
6353         box so option menus are only as wide as they need to be. 
6355 2000-02-08  John Sullivan <sullivan@eazel.com>
6357         Completed first cut at icon-text-choosing UI.
6358         Choose "Customize Icon Text..." from context menu in icon view to try.
6359         Still doesn't save global setting across sessions; awaiting
6360         more of a Preferences framework for that.
6362         * src/file-manager/fm-signaller.h: New file.
6363         * src/file-manager/fm-signaller.c: New file, manages object that acts
6364         as a central place for file manager objects to register with and
6365         broadcast signals, without having to wire specific objects together.
6366         * src/file-manager/Makefile.am: Added these two new files to the build.
6368         * src/file-manager/fm-directory-view-icons.h:
6369         (fm_directory_view_icons_set_full_icon_text_attribute_names): Removed the
6370         set_default parameter; for now at least, the text beneath icons is only
6371         changeable on a global basis.
6372         * src/file-manager/fm-directory-view-icons.c:
6373         (icon_text_changed_cb): New function, tells GnomeIconContainer to
6374         update all its icons.
6375         (fm_directory_view_icons_initialize): Connect with FMSignaller's
6376         "icon_text_changed" signal, so all windows will be updated.
6377         (fm_directory_view_icons_set_full_icon_text_attribute_names):
6378         Removed the set_default parameter; also tell FMSignaller to emit
6379         "icon_text_changed".
6381         * src/file-manager/fm-icon-text-window.c:
6382         Completely reworked. Window used to contain three radio buttons for
6383         pre-defined orderings of size/type/date_modified. Now window contains
6384         three option menus, each with all available text attributes (except
6385         name, which is hardwired to always go first). Selecting from any of
6386         the option menus instantly updates all directory views.
6387         
6388         * libnautilus/nautilus-directory.c:
6389         defined private typedef enum NautilusDateType.
6390         (nautilus_file_get_date_as_string): Added NautilusDateType parameter,
6391         which chooses between the three available file dates (modified, changed,
6392         accessed).
6393         (nautilus_file_get_string_attribute): Now handles all three date types.
6395 2000-02-08  John Sullivan <sullivan@eazel.com>
6397         * configure.in: turned -Werror back on. It had been turned off a
6398         few days ago, presumably accidentally.
6399         * src/nautilus-index-tabs.c: (draw_one_tab): #if-0'ed this
6400         currently unused function out since -Werror doesn't like unused functions.
6402 2000-02-08  Elliot Lee  <sopwith@redhat.com>
6404         * src/ntl-window-msgs.c: Don't segfault if an error occurs while loading the start page.
6406 2000-02-07  John Sullivan <sullivan@eazel.com>
6408         Switching which info appears in icon labels is now demoable.
6409         Choose "Customize Icon Text..." from context menu in icon view to try.
6410         Next I'll make a decent UI for it.
6412         * libnautilus/gnome-icon-container.h:
6413         (gnome_icon_container_request_update_all): New function.
6414         * libnautilus/gnome-icon-container.c:
6415         (gnome_icon_container_request_update_all): New function, tells
6416         the container to get fresh text & image for each icon.
6417         (request_update_one): Renamed, was synch_icon_with_controller
6418         (gnome_icon_container_set_zoom_level): Extracted code from which
6419         to form request_update_all, which this now calls.
6420         
6421         * src/file-manager/fm-directory-view.h:
6422         (append_background_context_menu_items): New signal, lets subclasses
6423         append (or otherwise modify) items to background context menu.
6424         * src/file-manager/fm-directory-view.c:
6425         Add enum entry for APPEND_BACKGROUND_CONTEXT_MENU_ITEMS
6426         (fm_directory_view_initialize_class): Create new signal, and assign
6427         function pointer.
6428         (fm_directory_view_real_append_background_context_menu_items): Renamed
6429         from append_background_items, now that it's a default signal handler.
6430         (append_item_context_menu_items): New function, broke code out from
6431         create_item_context_menu. This may have an associated signal also someday,
6432         but not yet.
6433         (fm_directory_view_append_background_context_menu_items): New function,
6434         emits "append_background_context_menu_items" signal.
6435         (create_item_context_menu): Broke out append_item_context_menu_items, and
6436         now calls fm_directory_view_append_background_context_menu_items.
6437         (create_background_context_menu): Now calls
6438         fm_directory_view_append_background_context_menu_items.
6439         
6440         * src/file-manager/fm-directory-view-icons.h:
6441         (fm_directory_view_icons_set_full_icon_text_attribute_names),
6442         (fm_directory_view_icons_get_full_icon_text_attrubute_names): New functions.
6443         * src/file-manager/fm-directory-view-icons.c:
6444         (fm_directory_view_icons_initialize_class): Replaces function
6445         pointer for append_background_context_menu_items.
6446         (customize_icon_text_cb): New function, shows icon-text-customizing window.
6447         (fm_directory_view_icons_append_background_context_menu_items): New
6448         function, appends a "Customize Icon Text..." item to context menu, which
6449         when selected calls customize_icon_text_cb.
6450         (fm_directory_view_icons_set_full_icon_text_attribute_names): New function,
6451         sets a new order in which to display icon text, and forces an update.
6452         (fm_directory_view_icons_get_full_icon_text_attrubute_names): New function,
6453         returns the order in which to display icon text.
6454         (fm_directory_view_icons_get_icon_text_attribute_names): Reworked to
6455         return a substring of the full string, based on zoom level.
6456         
6457         * src/file-manager/fm-icon-text-window.h: New file
6458         * src/file-manager/fm-icon-text-window.c: New file, handles creating
6459         and maintaining state for window from which user chooses text to 
6460         display beneath icons.
6461         * src/file-manager/Makefile.am: Build these two new files.
6463         * src/nautilus-bookmarks-window.c:
6464         (create_bookmarks_window): Capitalized "Nautilus" in window title.
6466 2000-02-07  Andy Hertzfeld <andy@eazel.com>
6468         first cut at real tabs for index panel, still incomplete and not
6469         hooked up yet, but will be soon.
6470         
6471         * icons/tableft.png, tabright.png:
6472         small pixmaps for nice rounded edges for the tabs
6473         * icons/Makefile.am
6474         added tableft.png and tabright.png
6475         
6476         * src/nautilus-index-tabs.c,h
6477         new class for drawing the index tabs
6478         * src/Makefile.am
6479         added index-tabs class to build
6480         
6481 2000-02-07  Elliot Lee  <sopwith@redhat.com>
6482         * idl/*.idl: Include the .idl files of other modules that we use.
6483         * libnautilus/Makefile.am, src/Makefile.am, src/file-manager/Makefile.am:
6484         Define -D_REENTRANT, just in case.
6485         * src/file-manager/Makefile.am: Add cflags for .idl compilation.
6487         * components/help/Makefile.am: Build converters. Stop installing
6488         the now-unneeded .schemes file.
6490         * components/websearch/ntl-web-search.c: Get rid of
6491         gnome_button_can_default()
6493         * libnautilus/nautilus-icons-view-icon-item.c: Get rid of missing
6494         prototypes and associated warnings by including needed headers.
6496         * src/ntl-types.h, src/ntl-uri-map.[ch], src/ntl-window.h,
6497         src/ntl-window-msgs.c: Remove scheme mapping functionality (now
6498         done in gnome-vfs). Use asynchronous version of get_file_info.
6500 2000-02-04  John Sullivan <sullivan@eazel.com>
6502         Zooming now shows different information at different
6503         zoom levels. Currently uses hardwired pattern. Next
6504         I'll make the pattern configurable.
6506         * src/file-manager/fm-directory-view-icons.c:
6507         * src/file-manager/fm-directory-view-icons.h:
6508         (fm_directory_view_icons_get_icon_text_attribute_names):
6509         New function, returns set of attribute names representing
6510         text to appear in icon label. The set varies depending on
6511         zoom level, but is otherwise currently hardwired.
6512         
6513         * src/file-manager/fm-icons-controller.c:
6514         (fm_icons_controller_get_text): Now gets attribute names
6515         from icon view, then creates & returns a newline-delimited
6516         string using nautilus_file_get_string_attribute.
6518         * libnautilus/gnome-icon-container.c:
6519         (synch_icon_with_controller): New function, reinstalls item's
6520         label and image.
6521         (icon_new): Reworked to call synch_icon_with_controller.
6522         (gnome_icon_container_set_zoom_level): Now iterates through the
6523         icons, calling synch_icon_with_controller so text (and, later, image)
6524         is updated when zoom level changes.
6525         
6526         * libnautilus/nautilus-directory.c:
6527         (nautilus_file_get_size_as_string): Changed to return empty
6528         string instead of "--" for directories, because this looked
6529         better in icon view. Might change list view back to use "--"
6530         later.
6531         
6532         * libnautilus/nautilus-icons-view-icon-item.c:
6533         (draw_or_measure_text_box): Made it display blank lines
6534         instead of collapsing them out.
6535         (nautilus_icons_view_icon_item_draw): Took out special case
6536         for not showing text at tiniest zoom level. This is now handled
6537         the same way as the other levels.
6538         
6539 2000-02-04  Darin Adler  <darin@eazel.com>
6541         Make optimized builds succeed.
6542         
6543         * configure.in: Turn off uninitialized variable warnings.
6544         At some point, we should turn these off only for the ORBit-
6545         generated stub files, since they are meaningful and useful in
6546         other files. For now, though, since we use -Werror, we need be
6547         sure these warnings don't cause trouble for people who do
6548         optimized builds.
6549         
6550         * src/ntl-main.c (main): Added GnomeUI to the list of domains
6551         to "stop on warning/critical".
6553 2000-02-04  John Sullivan <sullivan@eazel.com>
6555         Some renaming and reorganization heading towards supporting
6556         icons with more info in label at higher zoom levels.
6558         * libnautilus/nautilus-icons-controller.c:
6559         * libnautilus/nautilus-icons-controller.h:
6560         (nautilus_icons_controller_get_icon_name): Renamed to
6561         nautilus_icons_controller_get_icon_text since it won't always
6562         just be the name.
6563         * src/file-manager/fm-icons-controller.c:
6564         (fm_icons_controller_get_icon_name): Renamed to
6565         fm_icons_controller_get_icon_text to match.
6566         * libnautilus/gnome-icon-container.c:
6567         (icon_new): Updated for name change.
6568         
6569         * libnautilus/nautilus-directory.c:
6570         * libnautilus/nautilus-directory.h:
6571         (nautilus_file_get_string_attribute): New function, consolidates
6572         nautilus_file_get_date_as_string, nautilus_file_get_size_as_string,
6573         and nautilus_file_get_type_as_string (and more to come). These old
6574         functions are now private.
6575         
6576         * src/file-manager/fm-directory-view-list.c:
6577         Changed column-identifying strings stored in metadata to be attribute
6578         names recognized by nautilus_file_get_string_attribute. Added
6579         LIST_VIEW_DEFAULT_SORTING_ATTRIBUTE.
6580         (get_column_from_metadata_value): Renamed to get_column_from_attribute
6581         (get_metadata_value_from_column): Renamed to get_attribute_from_column
6582         (get_sort_column_from_attribute): New function, handles unknown attributes
6583         by using LIST_VIEW_DEFAULT_SORTING_ATTRIBUTE.
6584         (add_to_flist): Rewrote to use column attributes and nautilus_file_
6585         get_string_attribute.
6586         (fm_directory_view_list_begin_loading): Now calls get_sort_column_
6587         from_attribute to handle the case where saved sorting attribute is unknown.
6589 2000-02-04  Ettore Perazzoli  <ettore@helixcode.com>
6591         * components/html/Makefile.am: Use `GTKHTML_LIBS' and
6592         `GTKHTML_CFLAGS'.
6594         * configure.in: Added a GtkHTML test.  If GtkHTML is not
6595         installed, abort.  Otherwise, set `GTKHTML_LIBS' and
6596         `GTKHTML_CFLAGS' to the appropriate values to compile and link
6597         with GtkHTML.
6599 2000-02-04  John Sullivan <sullivan@eazel.com>
6601         * libnautilus/nautilus-icon-factory.c:
6602         (nautilus_icon_factory_scale): Changed back to ART_FILTER_BILINEAR
6603         once again after jrb & federico both pointed out that the 
6604         black-scaled-icons problem should be fixed (and was) in the latest
6605         gdk-pixbuf.
6607 2000-02-03  Andy Hertzfeld <andy@eazel.com>
6609         * src/nautilus-zoom-control.c:
6610         made clicking in the middle set zoom to 100%;
6611         made right-clicking on the control bring up a context menu allowing
6612         you to select any of the available choices
6614 2000-02-03  Jonathan Blandford  <jrb@redhat.com>
6616         * configure.in: added
6617         components/help/converters/gnome-db2html2/Makefile to the list.
6619 2000-02-03  John Sullivan <sullivan@eazel.com>
6621         * libnautilus/nautilus-icon-factory.c:
6622         (nautilus_icon_factory_scale): Changed back to ART_FILTER_NEAREST
6623         because ART_FILTER_BILINEAR caused scaled icons in list view &
6624         bookmarks menu to appear nearly black.
6626         * libnautilus/nautilus-icons-view-icon-item.c:
6627         (draw_or_measure_text_box): Renamed from nautilus_icons_view_draw_text_box
6628         for clarity.
6629         (nautilus_icons_view_draw_text_box): New cover for draw_or_measure_text_box,
6630         with fewer parameters.
6631         (nautilus_icons_view_measure_text_box): New cover for 
6632         draw_or_measure_text_box, with fewer parameters.
6633         (nautilus_icons_view_icon_item_update): Now calls 
6634         nautilus_icons_view_measure_text_box.
6635         (nautilus_icons_view_icon_item_draw): Removed extra parameter from call
6636         to nautilus_icons_view_draw_text_box.
6637         (draw_or_measure_text_box): Took out special case for one-line labels,
6638         after measuring to determine that it wasn't making a significant speed
6639         difference. It had bugs with baseline alignment and made updating the
6640         code tricky. Added support for carriage returns in icon labels, by 
6641         looping through the measuring code for each carriage-return-delimited
6642         piece. (I tested this with temporary code, so there are no current
6643         carriage-return cases, but there will be soon.)
6645 2000-02-02  Andy Hertzfeld <andy@eazel.com>
6647         * src/nautilus-zoom-control.c:
6648         fixed bug where the zoom size wasn't updating properly by overriding
6649         expose.  Also, disable the appropriate arrow at min and max zoom levels
6650         
6651         * icons/nautilus3.jpg:
6652         crassly slapped our logo on the nautilus image
6653         
6654 2000-02-02  Elliot Lee  <sopwith@redhat.com>
6656         * src/ntl-window-msgs.c: If an error happens, we need to reset the
6657         location bar to current location, in case the location change
6658         happened via a drop on the location bar.
6660         * src/file-manager/fm-directory-view.c: Consensus is to use
6661         individual headers rather than catch-alls.
6663         * libnautilus/gnome-icon-container-dnd.c,
6664         libnautilus/nautilus-icons-view-icon-item.c,
6665         libnautilus/nautilus-icon-factory.c: Use bilinear scaling - almost
6666         as fast, much nicer looking.
6668 2000-02-02  Darin Adler  <darin@eazel.com>
6670         (on John Sullivan's machine)
6671         * libnautilus/nautilus-directory.c:
6672         (nautilus_directory_get): Changed a ! to a == NULL
6673         (nautilus_directory_start_monitoring):  Bail out if directory
6674         is already loaded; this fixes bug where switching views added
6675         an item each time.
6677 2000-02-02  Andy Hertzfeld <andy@eazel.com>
6679         added a zoom control to location bar, not yet wired up to the content view
6680         
6681         * icons/Makefile.am:
6682         * icons/zoom.png:
6683         added zoom image for use in zoom control
6684         
6685         * src/nautilus-zoom-control.h:
6686         * src/nautilus-zoom-control.c:
6687         * src/Makefile.am
6688         new zoom control widget
6689         
6690         * src/ntl-window.c:
6691         added zoom control to location bar
6692         
6693 2000-02-01  Darin Adler  <darin@eazel.com>
6695         * libnautilus/nautilus-icon-factory.h:
6696         * libnautilus/nautilus-icon-factory.c:
6697         (nautilus_icon_factory_new):
6698         (nautilus_icon_factory_destroy):
6699         (nautilus_get_current_icon_factory):
6700         (nautilus_icon_factory_get_icon_for_file):
6701         (nautilus_icon_factory_set_theme):
6702         (nautilus_icon_factory_get_icon_by_name):
6703         (nautilus_icon_factory_get_pixbuf_for_icon):
6704         (nautilus_scalable_icon_ref):
6705         (nautilus_scalable_icon_unref):
6706         (nautilus_scalable_icon_get_name):
6707         (scalable_icon_get):
6708         (icon_set_possibly_free):
6709         (scalable_icon_new):
6710         Changed the icon factory interface in a few ways: 1) There's no
6711         longer a NautilusIconFactory object. There's just a single global
6712         icon factory. If we find that we need multiple factories, we can
6713         implement that later. 2) Instead of going straight from a file to
6714         a pixbuf, you get a scalable icon, and then get a pixbuf from
6715         that. This allows you to choose the icon and then get
6716         different-sized versions of it without going through the icon
6717         selection process over and over again. There's also a name for
6718         each icon which can be stored in the metafile so you can get the
6719         same icon again before you have full information on a file.
6721         * src/nautilus-bookmark.c:
6722         (nautilus_bookmark_get_pixmap_and_mask):
6723         * src/file-manager/fm-directory-view-list.c:
6724         (install_icon):
6725         * src/file-manager/fm-icons-controller.c:
6726         (fm_icons_controller_get_icon_image):
6727         Changed icon factory clients to use the new interface. Maybe
6728         after a while I'll add a convenience function that's as simple as
6729         the old interface was for the common case where you want to go
6730         straight to the pixbuf, but lets try it this way for a while.
6731         
6732         * libnautilus/nautilus-string.h:
6733         * libnautilus/nautilus-string.c:
6734         (nautilus_has_prefix):
6735         Added nautilus_has_prefix. This checks to see if a string has a
6736         particular prefix. It's both clearer to read and more efficient
6737         than Andy's typical trick of calling strstr.
6738         
6739         * libnautilus/nautilus-lib-self-check-functions.h:
6740         * libnautilus/nautilus-string.c:
6741         Added self-checks for nautilus-string.c. The tests uncovered a
6742         bug in nautilus_string_to_int that I fixed.
6744         * nautilus-glib-extensions.c:
6745         Just a stray new-line.
6747 2000-02-01  John Sullivan  <sullivan@eazel.com>
6749         Fixed bug where selection info didn't appear in the status bar when
6750         Select All was performed in the list view.
6752         * libnautilus/gtkflist.c:
6753         (select_or_unselect_row_cb): New function, emits SELECTION_CHANGED
6754         signal.
6755         (gtk_flist_initialize): Connect parent class's "select_row" and
6756         "unselect_row" signals to select_or_unselect_row_cb.
6757         (select_row): Remove emission of SELECTION_CHANGED signal here since
6758         it's now handled at the correct bottleneck.
6760 2000-02-01  Darin Adler  <darin@eazel.com>
6762         Started work on icon stretching. In the process, I am doing some
6763         cleanup on the icon container, and I am checking in some of that
6764         before the stretching is implemented.
6766         * libnautilus/gnome-icon-container-private.h:
6767         * libnautilus/gnome-icon-container.c:
6768         (icon_is_in_region):
6769         Got rid of width and height stored in each icon.
6771         * libnautilus/gnome-icon-container.c:
6772         A lot of cleanup, including getting rid of the
6773         icon_get_text_bounding_box function.
6774         
6775         * libnautilus/gnome-icon-container.c:
6776         (gnome_icon_container_begin_stretch):
6777         (gnome_icon_container_stretch):
6778         (gnome_icon_container_end_stretch):
6779         (button_release_event):
6780         (motion_notify_event):
6781         (handle_icon_button_press):
6782         First cut at adding stretching hooks in button handlers.
6783         
6784         * libnautilus/nautilus-icons-view-icon-item.c:
6785         (nautilus_icons_view_draw_text_box):
6786         Rewrote to fix bug with position of text when it's too long for
6787         a single line.
6788         
6789         * libnautilus/nautilus-glib-extensions.h:
6790         Added a macro named NAUTILUS_N_ELEMENTS.
6791         src/ntl-index-panel.c: 
6792         src/explorer-location-bar.c: 
6793         libnautilus/gtkflist.c: 
6794         Used the NAUTILUS_N_ELEMENTS macro.
6796 2000-01-31  Andy Hertzfeld <andy@eazel.com>
6798         made the keyboard selection rectangle work again.  It's no longer a
6799         separate canvas object, but rather a state reflected by the icon_item
6800         like regular selection
6801         
6802         * libnautilus/gnome-icon-container-private.h:
6803         removed the kdb_navigation_item field
6804         
6805         * libnautilus/gnome-icon-container.c:
6806         removed code that manipulated the kbd_navigation_item, replaced
6807         with setting and clearing the "alt_selection" item attribute
6808         
6809         * libnautilus/nautilus-icons-view-icon-item.c:
6810         if the alt_selected attribute is set, frame the item's text with
6811         a gray-stippled rectangle
6812         
6813 2000-01-31  John Sullivan <sullivan@eazel.com>
6815         Now saves/restores zoom level in icon & list views, and
6816         sort column & direction in list view.
6818         * nautilus-metadata.h: New #defines for ICON_VIEW_ZOOM_LEVEL_METADATA_KEY,
6819         LIST_VIEW_ZOOM_LEVEL_METADATA_KEY, LIST_VIEW_SORT_COLUMN_METADATA_KEY,
6820         LIST_VIEW_SORT_REVERSED_METADATA_KEY.
6822         * src/file-manager/fm-directory-view.c:
6823         (fm_directory_view_load_uri): Now emits the BEGIN_LOADING signal. This
6824         signal was already defined but its use had been removed.
6825         
6826         * src/file-manager/fm-directory-view-icons.c:
6827         (fm_directory_view_icons_set_zoom_level): Stores new zoom level in
6828         the metadata.
6829         (fm_directory_view_icons_begin_loading): Sets zoom level to the one
6830         read from the metadata.
6832         * src/file-manager/fm-directory-view-list.c:
6833         Created #defines for column names stored in metadata.
6834         (get_metadata_value_from_column), (get_column_from_metadata_value):
6835         Helper functions for converting between column number and string to
6836         store in metadata.
6837         (fm_directory_view_list_begin_loading): New function: sets zoom level,
6838         sort column, and sort direction to the values read from the metadata. 
6839         (fm_directory_view_initialize_class): Wire up begin_loading function 
6840         pointer.
6841         (fm_directory_view_initialize): Change initial value of sort column
6842         to LIST_VIEW_COLUMN_NONE, so when it changes later the right updating
6843         will occur.
6844         (compare_rows): Added another g_return_val_if_fail condition.
6845         (create_flist): Removed some of the sorting set-up; it is now done
6846         in begin_loading instead.
6847         (fm_directory_view_list_set_zoom_level): Stores new zoom level in
6848         the metadata.
6849         (fm_directory_view_list_sort_items): Stores new sort column and
6850         direction in metadata.
6852 2000-01-31  Andy Hertzfeld <andy@eazel.com>
6854         implemented the "select all" command in the context menus
6855         
6856         * src/file-manager/directory_view.c,h:
6857         added a directory_view_select_all slot for subclasses to override,
6858         enabled "select all" item and attached a signal to the item, whose
6859         callback calls fm_directory_view_select_all
6860         
6861         * src/file-manager/directory_view_icons.c:
6862         implemented directory_view_icons_select_all by invoking the "select all"
6863         operation of GnomeIconContainer.
6864         
6865         * src/file-manager/directory_view_list.c:
6866         implemented directory_view_list_select_all by invoking the "select all"
6867         operation of the clist widget
6868         
6869 2000-01-31  Elliot Lee  <sopwith@redhat.com>
6871         * src/ntl-window-msgs.c, src/ntl-window-private.h: Update debugging messages. Allow
6872         synchronous state changes (needed to avoid race conditions), and
6873         don't reset the idle handler if the idle handler is already running.
6875         * src/file-manager/fm-directory-view.c: Include
6876         <libnautilus/libnautilus.h> rather than just
6877         <libnautilus/nautilus-alloc.h> - nitpick in passing.
6879         * src/ntl-uri-map.c: OK, don't check for NULL here, in an attempt to flush out bugs elsewhere.
6881 2000-01-31  Darin Adler  <darin@eazel.com>
6883         * nautilus-icons-view-icon-item.c:
6884         (nautilus_icons_view_draw_text_box):
6885         Changed it to not attempt to create a GC just to measure the text.
6886         This makes it work when the widget is not realized.
6888         * nautilus-icons-view-icon-item.h:
6889         nautilus-icons-view-icon-item.c:
6890         gnome-icon-container-dnd.c:
6891         (nautilus_icons_view_icon_item_center_offset):
6892         Changed the parameter type to NautilusIconsViewIconItem.
6894         * fm-directory-view.c:
6895         (stop_load):
6896         (fm_directory_view_load_uri):
6897         Fixed code so that if you stop loading more than once, or
6898         stop before you even start, it won't send extra progress
6899         requests to the Nautilus shell or call stop_monitoring
6900         extra times on the NautilusDirectory object.
6902         * nautilus-icons-view-icon-item.h:
6903         nautilus-icons-view-icon-item.c:
6904         gnome-icon-container-dnd.c:
6905         Quick cleanup of the new NautilusIconsViewIconItem class.
6907         * libnautilus/gdk-extensions.c:
6908         libnautilus/gnome-icon-container-dnd.c:
6909         libnautilus/gnome-icon-container.c:
6910         libnautilus/gtkflist.c:
6911         libnautilus/nautilus-background-canvas-group.c:
6912         libnautilus/nautilus-background.c:
6913         libnautilus/nautilus-debug.c:
6914         libnautilus/nautilus-default-file-icon.c:
6915         libnautilus/nautilus-directory.c:
6916         libnautilus/nautilus-icon-factory.c:
6917         libnautilus/nautilus-icons-controller.c:
6918         libnautilus/nautilus-icons-view-icon-item.c:
6919         libnautilus/nautilus-lib-self-check-functions.c:
6920         libnautilus/nautilus-self-checks.c:
6921         libnautilus/nautilus-string.c:
6922         src/explorer-location-bar.c:
6923         src/file-manager/dfos-corba.c:
6924         src/file-manager/dfos-xfer-progress-dialog.c:
6925         src/file-manager/dfos-xfer.c:
6926         src/file-manager/dfos.c:
6927         src/file-manager/fm-directory-view-icons.c:
6928         src/file-manager/fm-directory-view-list.c:
6929         src/file-manager/fm-directory-view.c:
6930         src/file-manager/fm-icons-controller.c:
6931         src/file-manager/fm-main.c:
6932         src/nautilus-self-check-functions.c:
6933         src/ntl-index-panel.c:
6934         Got rid of #ifdef HAVE_CONFIG_H. Elliot says that we must always
6935         include <config.h>, but there's no reason to include that ifdef
6936         since we don't plan on building without a <config.h> ever.
6938 2000-01-31  Andy Hertzfeld <andy@eazel.com>
6940         * libnautilus/gnome-icon-container-dnd.c:
6941         fixed bug where icons were horizontally mis-positioned after dragging;
6942         fixed by taking the center offset into account
6943         
6944 2000-01-31  John Sullivan  <sullivan@eazel.com>
6946         * libnautilus/nautilus-directory.h:
6947         * libnautilus/nautilus-directory.c:
6948         (nautilus_directory_get_boolean_metadata), 
6949         (nautilus_directory_set_boolean_metadata),
6950         (nautilus_directory_get_integer_metadata), 
6951         (nautilus_directory_set_integer_metadata): New convenience functions
6952         for getting/setting metadata that's naturally in boolean or integer form.
6953         I'll be adding clients for these next.
6955 2000-01-31  Darin Adler  <darin@eazel.com>
6957         NautilusDirectory is now in charge of loading directories.
6958         FMDirectoryView has been relieved of that responsibility.
6960         * nautilus-directory.h:
6961         nautilus-directory.c:
6962         (nautilus_directory_start_monitoring):
6963         (nautilus_directory_stop_monitoring):
6964         (nautilus_directory_is_ready_for_layout):
6965         (nautilus_directory_new_file):
6966         (nautilus_directory_are_all_files_seen):
6967         Added monitoring API that's used to read the contents of
6968         a directory. Made nautilus_directory_new_file private since
6969         we now use the monitoring API instead.
6971         * fm-directory-view.c:
6972         (fm_directory_view_initialize):
6973         (stop_load):
6974         (display_pending_entries):
6975         (display_pending_files):
6976         (display_pending_idle_cb):
6977         (display_timeout_cb):
6978         (display_pending_timeout_cb):
6979         (directory_load_cb):
6980         (schedule_idle_display_of_pending_files):
6981         (schedule_timeout_display_of_pending_files):
6982         (unschedule_idle_display_of_pending_files):
6983         (unschedule_timeout_display_of_pending_files):
6984         (unschedule_display_of_pending_files):
6985         (add_files_cb):
6986         (fm_directory_view_activate_entry):
6987         (fm_directory_view_load_uri):
6988         (disconnect_model_handlers):
6989         (fm_directory_view_stop):
6990         Changed to use monitoring instead of directly calling
6991         gnome_vfs_async_load_directory directly.
6993         * fm-directory-view.c:
6994         (update_zoom_menu_items):
6995         (zoom_in_cb):
6996         (zoom_out_cb):
6997         (pop_up_context_menu):
6998         (pop_up_temporary_context_menu):
6999         (append_background_items):
7000         (create_background_context_menu):
7001         (fm_directory_view_popup_item_context_menu):
7002         (fm_directory_view_popup_background_context_menu):
7003         Changed to re-created background menu each time instead of
7004         keeping a single global menu up to date. This is simpler, and
7005         the imperceptible additional delay from recreating the menu
7006         each time should not be a problem.
7007         
7008         * ntl-window.c: (nautilus_window_up):
7009         ntl-map.c: (nautilus_navinfo_new):
7010         Handle the case where the current URI is NULL.
7012         * fm-directory-view-icons.c: (create_icon_container):
7013         Removed the leftover puts calls in here.
7014         This gets rid of "A", "B", "C" on each start of nautilus.
7016 2000-01-31  John Sullivan <sullivan@eazel.com>
7018         Put all metadata keys in a central place so we can keep
7019         track of them.
7021         * libnautilus/nautilus-metadata.h: New file, contains
7022         #defines for all the metadata keys currently in use.
7023         * libnautilus/Makefile.am: add nautilus-metadata.h to list of headers.
7024         * src/ntl-index-panel.c:
7025         * src/file-manager/fm-directory-view-icons.c:
7026         * src/file-manager/fm-directory-view-list.c:
7027         Update all non-test callers of nautilus_directory_get_metadata and
7028         nautilus_directory_set_metadata to use new #defines
7030 2000-01-31  John Sullivan <sullivan@eazel.com>
7032         Improved zooming API and made zoom items on item context
7033         menu disable properly. (There's still a bug with disabling
7034         the background menu if an item menu ever appears; Darin will
7035         fix this in his next checkin.)
7037         * src/file-manager/fm-directory-view.c:
7038         * src/file-manager/fm-directory-view.h:
7039         (can_zoom_in), (can_zoom_out): New function pointers for subclasses
7040         to replace.
7041         (fm_directory_view_can_zoom_in), (fm_directory_view_can_zoom_out):
7042         New functions that call through to the new function pointers.
7043         (bump_zoom_level), (fm_directory_view_bump_zoom_level): 
7044         Removed return value in favor of new functions.
7045         (update_zoom_menu_items): Helper function to update sensitivity of
7046         background context menu Zoom In and Zoom Out items. Darin will eliminate
7047         this with his next checkin.
7048         (zoom_in_cb), (zoom_out_cb): Now use update_zoom_menu_items to share code.
7049         (append_background_items): Set sensitivity of Zoom In and Zoom Out items
7050         at creation time.
7051         
7052         * src/file-manager/fm-directory-view-list.c:
7053         (fm_directory_view_list_bump_zoom_level): Removed return value.
7054         (fm_directory_view_list_can_zoom_in), (fm_directory_view_list_can_zoom_out):
7055         New functions, compare current zoom level against limits.
7056         (fm_directory_view_list_get_zoom_level), 
7057         (fm_directory_view_list_set_zoom_level): New convenience functions,
7058         deployed throughout this file.
7059         (fm_directory_view_list_initialize_class): Replace can_zoom_in and 
7060         can_zoom_out function pointers.
7061         
7062         * src/file-manager/fm-directory-view-icons.c:
7063         (fm_directory_view_icons_bump_zoom_level): Removed return value.
7064         (fm_directory_view_icons_can_zoom_in), (fm_directory_view_icons_can_zoom_out):
7065         New functions, compare current zoom level against limits.
7066         (fm_directory_view_icons_get_zoom_level): New convenience function,
7067         deployed throughout this file.
7068         (fm_directory_view_icons_initialize_class): Replace can_zoom_in and 
7069         can_zoom_out function pointers.
7071 2000-01-30  Andy Hertzfeld <andy@eazel.com>
7073         made fonts scale according to the zoom level:
7074         
7075         * libnautilus/gnome-icon-container-private.h:
7076         replaced label font with array of fonts
7077         * libnautilus/gnome-icon-container.c:
7078         load a font for each zoom level
7079         * libnautilus/nautilus_icons_view_icon_item:c
7080         use a font selected by the zoom level
7081         
7082         enabled/disabled zoom items as necessary in context menu:
7083         
7084         * src/file-manager/fm-directory-view-icons.c:
7085         made bump_zoom_level return a boolean indicating if it can zoom further
7086         * src/file-manager/fm-directory-view-list.c:
7087         made bump_zoom_level return a boolean indicating if it can zoom further
7088         * src/file-manager/fm-directory-view-list.c:
7089         enable/disable items in zoom level according to the passed-back booleans
7090         
7091 2000-01-28  Andy Hertzfeld <andy@eazel.com>
7093         * libnautilus/gnome-icon-container-dnd.c:
7094         made shadow rectangles track icons properly by adding in the center offset
7095         
7096 2000-01-28  John Sullivan  <sullivan@eazel.com>
7098         A little zoom cleanup:
7100         * libnautilus/gnome-icon-container-private.h: #include
7101         nautilus-icon-factory.h and remove copy of NautilusZoomLevel enum.
7102         * libnautilus/gnome-icon-container.c:
7103         (gnome_icon_container_set_zoom_level): Now uses ratios of standard
7104         NAUTILUS_ICON_SIZEs to compute canvas pixels/unit instead of locally
7105         storing ratios.
7106         * libnautilus/nautilus-icon-factory.h:
7107         Changed pixel sizes of some NAUTILUS_ICON_SIZE #defines to match
7108         the ratios formerly used in gnome-icon-container.c
7110         Added icons to bookmarks menu and window:
7112         * libnautilus/nautilus-directory.c: (nautilus_file_get): Changed
7113         options passed to gnome_vfs_get_file_info to match those used in
7114         directory view; this causes the mime type to be read so the custom
7115         image icon can appear.
7116         * src/nautilus-bookmark.c:
7117         * src/nautilus-bookmark.h:
7118         Now uses details structure to hold implementation details.
7119         (nautilus_bookmark_get_pixmap_and_mask): New utility function to
7120         get image suitable for use in a GtkMenuItem or GtkCList
7121         (nautilus_bookmark_destroy): Free details structure
7122         (init): Alloc details structure
7123         * src/nautilus-bookmarks-menu.c:
7124         (create_pixmap_widget_for_bookmark): New utility function to create
7125         the kind of pixmap widget that a menu item likes.
7126         (bookmark_menu_item_new): New utility function that returns a menu
7127         item with bookmark's icon & name installed.
7128         (nautilus_bookmarks_menu_repopulate): Uses bookmark_menu_item_new.
7129         * src/nautilus-bookmarks-window.c:
7130         Now uses #defines for the list columns (icon & name)
7131         (create_bookmarks_window): Create one more column to hold icon;
7132         set column width & row height taking new icon column into account.
7133         (install_bookmark_icon): New function, installs pixmap & mask for
7134         bookmark into GtkCList cell.
7135         (repopulate): Fill in icon column as well as name column.
7136         
7137         Fixed storage leaks:
7138         
7139         * src/file-manager/fm-directory-view-icons.c:
7140         (fm_directory_view_destroy): free details structure
7141         * src/file-manager/fm-directory-view-list.c:
7142         (fm_directory_view_list_destroy): free details structure
7143         * src/file-manager/fm-directory-view.c:
7144         (fm_directory_view_icons_destroy): free details structure; also,
7145         don't bother setting details->icons_not_positioned to NULL since
7146         details is about to be freed.
7149 2000-01-28  Andy Hertzfeld <andy@eazel.com>
7151         * libnautilus/nautilus_icons_view_icon_item.c,h:
7152         made icons be centered in their box by adding a center_offset method
7153         and using it where appropriate.
7154         * libnautilus/gnome-icon-container-dnd.c:
7155         used center_offset in drag offset calculation
7156         
7157 2000-01-28  John Sullivan  <sullivan@eazel.com>
7159         Moved FMIconCache to libnautilus, renaming it
7160         NautilusIconFactory at the same time. Renamed all public
7161         and private functions accordingly.
7163         * RENAMING: removed this finished item.
7165         * src/file-manager/fm-default-file-icon.c: Removed file
7166         * src/file-manager/fm-default-file-icon.h: Removed file
7167         * src/file-manager/fm-icon-cache.c: Removed file
7168         * src/file-manager/fm-icon-cache.h: Removed file
7169         * src/file-manager/Makefile.am: Took out mentions of removed files.
7171         * libnautilus/nautilus-default-file-icon.c: New file
7172         * libnautilus/nautilus-default-file-icon.h: New file
7173         * libnautilus/nautilus-icon-factory.c: New file
7174         * libnautilus/nautilus-icon-factory.h: New file
7175         * libnautilus/Makefile.am: Added new files to build.
7177         * src/file-manager/fm-directory-view-icons.c: Took out
7178         #include for fm-icon-cache, which was obsolete in this file.
7179         * src/file-manager/fm-directory-view-list.c: Renamed #include
7180         and affected function calls. 
7181         * src/file-manager/fm-icons-controller.c: Renamed #include
7182         and affected function calls. 
7184 2000-01-28  John Sullivan  <sullivan@eazel.com>
7186         Made zooming work in directory list view. Also made
7187         right-click menu on a directory view always include
7188         the non-icon-specific items.
7190         * src/file-manager/fm-icon-cache.h:
7191         * src/file-manager/fm-icon-cache.c:
7192         (nautilus_icon_size_for_zoom_level): New function, maps
7193         between NautilusZoomLevel and nominal icon sizes.
7194         
7195         * src/file-manager/fm-directory-view.c:
7196         (append_background_items): New utility function, adds the
7197         non-file-specific context menu items to a menu.
7198         (create_background_context_menu): Moved most of guts to
7199         new append_background_items, which this now calls.
7200         (create_item_context_menu): Now adds a separator and then
7201         calls append_background_items. This means right-clicking on
7202         an icon will show the icon-specific commands followed by the
7203         non-icon-specific ones. This makes the non-icon-specific ones
7204         easier to discover and access, especially in list view where
7205         anywhere you click in a long list gives the item's context menu.
7206         
7207         * src/file-manager/fm-directory-view-list.c:
7208         Now stores zoom level rather than icon size in details structure.
7209         (fm_directory_view_list_bump_zoom_level),
7210         (fm_directory_view_list_set_zoom_level): New functions for setting
7211         the zoom level.
7212         (fm_directory_view_list_initialize_class): Wire up bump_zoom_level to
7213         slot in parent class structure.
7214         (compare_rows), (add_to_flist): Changed mechanism that temporarily
7215         stores pending row data to use object data rather than a static variable
7216         so it will work with multiple list views at the same time.
7217         (fm_directory_view_list_get_icon_size): New function, gets icon size
7218         from zoom level stored in details structure.
7219         (create_flist): Deploy fm_directory_view_list_get_icon_size where
7220         details structure was examined before.
7221         (install_icon): Removed NautilusFile and column parameters; made function
7222         compute these internally.
7223         
7224 2000-01-28  Elliot Lee  <sopwith@redhat.com>
7225         * components/html/ntl-web-browser.c: Remove use of gtk_html_parse() - deprecated
7226         in latest GtkHTML.
7228 2000-01-28  Andy Hertzfeld <andy@eazel.com>
7230         *libnautilus/gnome-icon-container-dnd.c:
7231         fixed dragging when zoomed by scaling the pixbuf and offsets if necessary
7232         
7233 2000-01-27  Andy Hertzfeld <andy@eazel.com>
7235         *libnautilus/nautilus-icons-view-icon-item.c:
7236         some fixes to improve positioning when zoomed by multiplying by pixel_per_unit
7237         when appropriate
7238         
7239 2000-01-27  John Sullivan  <sullivan@eazel.com>
7241         Finished this round of sorting architecture improvements.
7242         
7243         * libnautilus/nautilus-directory.c:
7244         (nautilus_file_compare_for_sort_internal): Made sorting NautilusFiles
7245         by name be case-insensitive.
7246         
7247         * src/file-manager/fm-directory-view.h:
7248         * src/file-manager/fm-directory-view.c:
7249         Removed enum FMDirectoryViewSortType (replaced by recently-added
7250         NautilusFileSortType)
7251         (fm_directory_view_sort): Removed this function; subclasses now
7252         must handle sorting internally.
7253         (fm_directory_view_repopulate): Removed this function, formerly
7254         called only by fm_directory_view_sort.
7255         
7256         * src/file-manager/fm-directory-view-list.c:
7257         (fm_directory_view_list_initialize): list_view->details->sort_column
7258         now starts out at LIST_VIEW_COLUMN_NAME.
7259         (compare_rows): New function to compare rows for sorting GtkCList-style.
7260         (create_flist): Set up GtkCList sorting mechanism; formerly I had been
7261         ignoring it (unaware) and handling sorting from scratch.
7262         (add_to_flist): Don't assume that newly-added item will be at end; also
7263         add hack to make pending row data accessible to compare function.
7264         (sort_criterion_from_column): New function, broken out of 
7265         fm_directory_view_list_sort_items.
7266         (fm_directory_view_list_sort_items): Broke out sort criterion choosing,
7267         now uses GtkCList-style sorting instead of asking FMDirectoryView to sort.
7268         (install_icon): Added a couple more g_return_if_fails.
7269         
7270 2000-01-27  Darin Adler  <darin@eazel.com>
7272         * src/ntl-app.c: Added missing includes to get it to compile.
7273         * components/help/converters/.cvsignore:
7274         components/help/converters/gnome-info2html2/.cvsignore:
7275         components/help/converters/gnome-man2html2/.cvsignore:
7276         Added Makefile.
7278 2000-01-27  Maciej Stachowiak  <mjs@eazel.com>
7280         * src/Makefile.am, src/nautilus.goad, src/ntl-app.c,
7281         src/file-manager/Makefile.am: Made the file manager component
7282         statically linked in again.  
7283         * src/file-manager/ntl-file-manager.goad: Removed.
7285 2000-01-27  Elliot Lee  <sopwith@redhat.com>
7287         * configure.in: Add components/help/converters/* makefiles.
7288         * libnautilus/nautilus-directory.c: Check for NULL directory
7289         result before doing stuff with it.
7290         * src/ntl-index-panel.c: Ditto.
7291         * src/ntl-prefs.c: Add help browser nav tree to list of possibilities.
7292         * src/ntl-window-msgs.c: Handle non-VFS-handleable URIs correctly WRT 'up' button.
7294 2000-01-27  Andy Hertzfeld <andy@eazel.com>
7296         * libnautilus/nautilus-icons-view-icon-item.c:
7297         made the canvas item respect the scale factor by removing code in
7298         compute_viewport_affine that was defeating it. There's still a
7299         bunch more to do to make it right for non-unity scale factors, but
7300         at least we can start that now.
7301         
7302 2000-01-27  Andy Hertzfeld <andy@eazel.com>
7304         hooked zooming up to the background context menu; right now the canvas item
7305         doesn't work at different zoom levels properly, which we'll fix soon.
7306         
7307         * libnautilus/fm-directory-view.c,h:
7308         enable zoom in and zoom out items and hooked them up to callback
7309         added a bump_zoom_level slot, to be overriden by subclasses, which the zoom callback use
7310         
7311         * libnautilus/fm-directory-view-icons.c:
7312         added method for bump_zoom_index that calls the icon container to do the work
7313         
7314         * libnautilus/gnome-icon-container-private.h:
7315         added a private instance variable for zoom level
7316         
7317         * libnautilus/gnome-icon-container.c,.h:
7318         added methods for get_zoom_level and set_zoom_level
7319         
7320 2000-01-27  Darin Adler  <darin@eazel.com>
7322         * libnautilus/gnome-icon-container.c:
7323         (icon_select):
7324         Fixed a bug that was causing some icons to not get
7325         selected or unselected properly due to strangeness of
7326         bit fields.
7328         * libnautilus/gnome-progressive-loader.h: 
7329         libnautilus/gnome-progressive-loader.c: 
7330         libnautilus/Makefile.am:
7331         Got rid of GnomeProgressiveLoader.
7332         We're not going to use it.
7334         * RENAMING: Andy added a new file that matched RENAMING,
7335         but then I changed my mind about a renaming, spawning yet
7336         more renaming!
7338         * src/file-manager/fm-directory-view-icons.c:
7339         Just tiny reformatting.
7341 2000-01-27  John Sullivan  <sullivan@eazel.com>
7343         More work towards changing the sorting framework, and
7344         fixed some bugs in nautilus_file_get.
7346         * libnautilus/nautilus-directory.h:
7347         Added NautilusFileSortType enum.
7348         (nautilus_file_compare_for_sort): New function
7349         (nautilus_file_compare_for_sort_reversed): New function
7350         
7351         * libnautilus/nautilus-directory.c:
7352         (nautilus_file_ref): New function (prototype already existed).
7353         (nautilus_file_get): file_info had been stack variable,
7354         but that didn't work right, so now it's xxx_new()ed.
7355         Also ref'ed file before returning.
7356         (nautilus_file_compare_for_sort), 
7357         (nautilus_file_compare_for_sort_reversed),
7358         (nautilus_file_compare_for_sort_internal): New functions.
7359         (nautilus_self_check_directory): Added some simple tests for
7360         nautilus_file_get and nautilus_file_compare_xxx.
7362         * src/file-manager/fm-directory-view.c:
7363         (fm_directory_view_load_uri): Removed sort_rules that were
7364         passed in to gnome_vfs_asynch_load_directory_uri, since they
7365         had no effect and we're changing the sorting framework.
7367 2000-01-27  Elliot Lee  <sopwith@redhat.com>
7368         * libnautilus/Makefile.am: Link to $(BONOBO_LIBS)
7369         * libnautilus/gnome-icon-container.c: Include <string.h> to get 
7370         prototype for memset.
7372 2000-01-26  Maciej Stachowiak  <mjs@eazel.com>
7374         * components/help/hyperbola-main.c,
7375         components/help/hyperbola-nav-tree.c,
7376         components/history/ntl-history-view.c, components/html/main.c,
7377         components/html/ntl-web-browser.c,
7378         components/websearch/ntl-web-search.c, idl/nautilus.idl,
7379         libnautilus/gnome-icon-container.c,
7380         libnautilus/gnome-progressive-loader.c,
7381         libnautilus/gnome-progressive-loader.h, libnautilus/libnautilus.h,
7382         libnautilus/ntl-content-view-frame.c,
7383         libnautilus/ntl-meta-view-frame.c, libnautilus/ntl-view-frame.c,
7384         libnautilus/ntl-view-frame.h, src/nautilus.h,
7385         src/ntl-index-panel.c, src/ntl-view-bonobo-control.c,
7386         src/ntl-view-bonobo-subdoc.c, src/ntl-view-frame-svr.c,
7387         src/ntl-view-nautilus.c, src/ntl-view-private.h, src/ntl-view.c,
7388         src/ntl-view.h, src/ntl-window.c, src/ntl-window.h,
7389         src/file-manager/dfos-corba.h, src/file-manager/dfos-xfer.c,
7390         src/file-manager/dfos-xfer.h, src/file-manager/fm-main.c: Build
7391         with the recent Bonobo global renaming, and Havoc's changes. A
7392         patch from Kjartan Maraas <kmaraas@online.no> and scripts from Nat
7393         Friedman <nat@helixcode.com> were a very helpful starting point.
7395 2000-01-26  Havoc Pennington  <hp@pobox.com>
7397         * src/nautilus-gconf.h, src/nautilus-gconf.c: Trivial files I'd
7398         written before getting stuck on the OAF thing, that might be of
7399         interest. I have some other bits I did that aren't worth checking
7400         in, Ramiro said he's doing the prefs dialog.
7402 2000-01-26  John Sullivan  <sullivan@eazel.com>
7404         Moved list view sort indicator to left of right-justified 
7405         columns.
7407         * src/file-manager/fm-directory-view-list.c:
7408         (create_flist): Marked the sort indicators with special
7409         data/value pairs so they can be located later regardless
7410         of view order. Made right-justified ones use pack_start
7411         instead of pack_end.
7412         (get_sort_indicator): Find sort indicators from special
7413         data/value pairs rather than relying on view order.
7415 2000-01-26  John Sullivan  <sullivan@eazel.com>
7417         A few changes in the direction of improving the directory
7418         view sorting architecture. No visible effects yet.
7420         * src/file-manager/fm-directory-view-icons.c:
7421         (create_icon_container): Took out useless call to
7422         fm_directory_view_populate().
7424         * src/file-manager/fm-directory-view-list.c:
7425         (fm_directory_view_list_sort_items): New function, extracted
7426         from column_clicked_cb, that does the actual sorting.
7427         (column_clicked_cb): Replaced actual sorting code with
7428         call to new fm_directory_view_list_sort_items; retained
7429         setup code.
7430         (create_flist): Took out useless call to
7431         fm_directory_view_populate().
7433         * src/file-manager/fm-directory-view.h:
7434         (fm_directory_view_populate): Removed this call from public API.
7436         * src/file-manager/fm-directory-view.c:
7437         (fm_directory_view_populate): Made static and renamed to 
7438         ..._repopulate now that I better understand its use. Soon it will
7439         go away entirely.
7441 2000-01-26  Andy Hertzfeld <andy@eazel.com>
7443         * libnautilus/gnome-icon-container-dnd.c:
7444         made the drag shadow have the same dimensions as the icon being dragged;
7445         fixed bug where it was confusing the width and height order in the
7446         custom uri it built for dragging within Nautilus
7447         
7448 2000-01-26  Darin Adler  <darin@eazel.com>
7450         * libnautilus/nautilus-directory.c:
7451         (nautilus_file_get_name):
7452         Fixed an assert I missed.
7453         
7454 2000-01-26  Darin Adler  <darin@eazel.com>
7455         
7456         * libnautilus/nautilus-directory.h:
7457         libnautilus/nautilus-directory.c:
7458         (nautilus_file_get):
7459         (nautilus_file_detach):
7460         (nautilus_directory_finalize):
7461         (nautilus_file_unref):
7462         Added interface to get a NautilusFile for a specific file rather than
7463         a file from a directory that we are scanning.
7465         * libnautilus/nautilus-glib-extensions.c:
7466         (check_tm_to_g_date):
7467         A little cleanup of the self-check code.
7469         * libnautilus/Makefile.am:
7470         libnautilus/libnautilus.h:
7471         libnautilus/nautilus-alloc.h: 
7472         libnautilus/nautilus-directory.h:
7473         Moved g_alloca into its own header file so you don't have to include
7474         all the Bonobo stuff just to use g_alloca.
7476 2000-01-26  Andy Hertzfeld <andy@eazel.com>
7478         * src/file-manager/fm-icon-cache.c:
7479         first cut at making images with small file sizes display as themselves
7480         * libnautilus/nautilus-icons-view-icon-item.c:
7481         clean-ups, plus added alternate selection boolean for keyboard selection
7483 2000-01-25  John Sullivan <sullivan@eazel.com>
7485         * libnautilus/nautilus-directory.c:
7486         (nautilus_file_get_date_as_string): A few cleanups
7487         based on feedback from Darin and Havoc.
7489 2000-01-25  Andy Hertzfeld <andy@eazel.com>
7491         * libnautilus/nautilus-icons-view-icon-item.c
7492         disabled icon centering code that was causing glitchey updates
7493         
7494 2000-01-25  Darin Adler  <darin@eazel.com>
7496         * libnautilus/gnome-icon-container-dnd.c:
7497         (create_selection_shadow):
7498         (set_gnome_icon_list_selection):
7499         (get_gnome_icon_list_selection):
7500         (gnome_icon_container_receive_dropped_icons):
7501         Redid drag code so that it will work if there are multiple
7502         windows involved, although we still don't handle copies.
7503         Changed selection to include the width and height of the icon,
7504         and to hold the top left of the icon.
7506         * libnautilus/gnome-icon-container-private.h:
7507         libnautilus/gnome-icon-container.c:
7508         (move_icon):
7509         (gnome_icon_container_move_icon):
7510         Made move_icon visible to the DnD code, and added a raise boolean
7511         so it could move and icon and bring it to the front.
7512         (gnome_icon_container_get_icon_by_uri):
7513         (gnome_icon_container_select_list_unselect_others):
7514         Added new functions for use by DnD code.
7516         * libnautilus/gnome-icon-container-private.h:
7517         libnautilus/gnome-icon-container.c:
7518         (handle_icon_button_press):
7519         Got rid of unused drag_x_offset and drag_y_offset.
7521         * libnautilus/gnome-icon-container.c:
7522         (icon_select):
7523         (icon_toggle_selected):
7524         (select_icon):
7525         (select_one_unselect_others):
7526         (toggle_icon):
7527         (unselect_all_but_one):
7528         (unselect_all):
7529         (rubberband_select_in_cell):
7530         (kbd_move_to):
7531         (kbd_space):
7532         (linger_select_timeout_cb):
7533         (handle_icon_button_press):
7534         (gnome_icon_container_select_all):
7535         (gnome_icon_container_unselect_all):
7536         Cleaned up selection logic and made it simpler.
7538         * libnautilus/gnome-icon-container.h:
7539         libnautilus/gnome-icon-container.c:
7540         (gnome_icon_container_xlate_selected):
7541         Got rid of unused function.
7543         * libnautilus/nautilus-self-checks.h:
7544         libnautilus/nautilus-self-checks.c:
7545         (nautilus_self_checks_failed):
7546         (nautilus_exit_if_self_checks_failed):
7547         src/ntl-main.c:
7548         (main):
7549         Added blank lines before and after the first and last failed
7550         checks when at least one check fails.
7552         * src/ntl-view.c:
7553         (nautilus_view_destroy):
7554         Removed a straggler message. (I hope Elliot's not still using it.)
7556         * RENAMING: Some new name ideas.
7557         
7558 2000-01-25  John Sullivan <sullivan@eazel.com>
7560         Better text for displayed file dates. This is currently used only
7561         in the list view date column, but will be used later in icon view
7562         when we get multiple lines of text per icon working.
7564         * libnautilus/nautilus-glib-extensions.c:
7565         * libnautilus/nautilus-glib-extensions.h:
7566         New files, intended to hold nautilus code that logically belongs
7567         in glib. Now contains a g_date constructor that takes a struct tm,
7568         and a strdup_strftime function that returns a new string of exactly
7569         the right size.
7570         * libnautilus/Makefile.am: Build and install these two new files.
7571         * libnautilus/nautilus-lib-self-check-functions.h: include the
7572         new self-check function for nautilus-glib-extensions.
7574         * libnautilus/nautilus-directory.c:
7575         #include nautilus-glib-extensions.h
7576         (nautilus_file_get_date_as_string): Replaced simple ctime version
7577         with fancy version that uses shorter date format, the words
7578         "today" and "yesterday" when appropriate, and the weekday name if
7579         the date is in the last week (other than today or yesterday).
7581 2000-01-25  Andy Hertzfeld <andy@eazel.com>
7583         * libnautilus/nautilus-icons-view-icon-item.c,h:
7584         new canvas item class for icon items.  Now we use a single
7585         canvas item to draw the icons instead of a group with two subitems.
7586         This will pay-off when we implement the emblems, zooming and
7587         special icons for text, etc.  This is the first cut, I'm pretty
7588         sure it doesn't work when pixels_per_item isn't 1.0 and there
7589         are other small problems.
7590           
7591         * libnautilus/gnome-icon-container-private.h:
7592         removed old fields for sub-items
7593         
7594         * libnautilus/Makefile.am:
7595         added new item class to makefile
7596           
7597         * libnautilus/gnome-icon-container-dnd.c:
7598         drag asks main item for pixbuf instead of image item
7599           
7600         * libnautilus/gnome-icon-container.c:
7601         use new icon item instead of making group with two sub-items
7602         
7603 2000-01-24  Maciej Stachowiak  <mjs@eazel.com>
7605         * src/file-manager/fm-directory-view.c,
7606         src/file-manager/fm-directory-view.h
7607         (fm_directory_view_popup_item_context_menu,
7608         fm_directory_view_popup_background_context_menu): New functions
7609         for subclasses to call, to implement right-click menus. Most of
7610         the guts are here now. Machinery to merge view-specific items with
7611         generic ones will be added here.
7612         * src/file-manager/fm-directory-view-icons.c,
7613         src/file-manager/fm-directory-view-list.c: Use the new interface
7614         for right-click stuff.
7616         * src/file-manager/fm-directory-view-icons.c: Corrected memory
7617         management for background and item popup menus.
7619 2000-01-24  Darin Adler  <darin@eazel.com>
7621         * gnome-icon-container-dnd.c:
7622         (gnome_icon_container_receive_dropped_icons):
7623         Removed bogus warning. Need to do some more work to get
7624         dragging working with multiple windows, but there's no
7625         easy way to detect that case, so just let it go.
7627         * fm-directory-view-icons.c:
7628         (icon_container_context_click_icon_cb):
7629         (icon_container_context_click_background_cb):
7630         Fixed the callbacks to match the new interface without the
7631         icon name. I missed this in my check-in earlier today.
7633 2000-01-24  John Sullivan <sullivan@eazel.com>
7635         Added sort indicators to list view column titles
7637         * src/file-manager/fm-directory-view-list.c: 
7638         Added #define LIST_VIEW_COLUMN_NONE
7639         Added tiny in-line XPMs for up & down sort indicators.
7640         (struct _FMDirectoryViewListDetails): Replaced
7641         sort_type field with sort_column field.
7642         (fm_directory_view_initalize): initialize details->sort_column
7643         to LIST_VIEW_COLUMN_NONE
7644         (get_sort_indicator), (hide_sort_indicator), (show_sort_indicator):
7645         New functions for setting the sort indicators' states.
7646         (column_clicked_cb): update details->sort_column and call
7647         hide_sort_indicator and show_sort_indicator
7648         (create_flist): Add sort indicator widgets to column titles,
7649         initially hidden
7650         (flist_activate_cb): Renamed "ignored" parameter and tested its
7651         value, to make mjs happy.
7653 2000-01-24  Maciej Stachowiak  <mjs@eazel.com>
7655         * libnautilus/gtkflist.c, libnautilus/gtkflist.h: Rename
7656         "row_popup_menu" and "empty_popup_menu" signals to
7657         "context_click_row" and "context_click_background" for more
7658         consistency with the way the icon container does it. Removed
7659         GdkEvent parameters from these signals. Added an int indicating
7660         the row right-clicked.
7661         (gtk_flist_button_press): Do not change the selection to the row
7662         that gets right-clicked. It was inconsistent with the icon view
7663         and most of the known universe.
7665 2000-01-24  Darin Adler  <darin@eazel.com>
7667         Added a controller object that lets GnomeIconContainer
7668         ask questions and perform actions, even though only the
7669         FMDirectoryViewIcons knows how to answer the questions
7670         and perform the actions.
7672         Replaced use of nautilus_file_get_info with specific
7673         accessors for various file info.
7675         * libnautilus/Makefile.am:
7676         libnautilus/nautilus-icons-controller.h:
7677         libnautilus/nautilus-icons-controller.c:
7678         libnautilus/gnome-icon-container-private.h:
7679         libnautilus/gnome-icon-container.h:
7680         libnautilus/gnome-icon-container.c:
7681         (icon_new_pixbuf):
7682         (gnome_icon_container_new):
7683         (gnome_icon_container_add):
7684         (gnome_icon_container_add_auto):
7685         Added NautilusIconsController, an interface provided so that the
7686         file manager can connect the icons up with the file code. This is
7687         all so we can keep the view/controller separation. This eliminates
7688         the need to pass around the icon name all the time, so the signals
7689         have changed to not take the icon name as a parameter.
7691         * src/file-manager/Makefile.am:
7692         src/file-manager/fm-icons-controller.c:
7693         src/file-manager/fm-icons-controller.h:
7694         Added FMIconsController, the actual controller used by the file
7695         manager instance of GnomeIconContainer.
7696         src/file-manager/fm-directory-view-icons.c:
7697         (create_icon_container):
7698         (add_icon_if_already_positioned):
7699         (add_icon_at_free_position):
7700         (icon_container_activate_cb):
7701         (fm_directory_view_icons_icon_moved_cb):
7702         Create and use the FMIconController.
7704         * libnautilus/gnome-icon-container-private.h:
7705         libnautilus/gnome-icon-container-dnd.c:
7706         (set_gnome_icon_list_selection):
7707         (set_uri_list_selection):
7708         libnautilus/gnome-icon-container.c:
7709         (gnome_icon_container_set_base_uri):
7710         src/file-manager/fm-directory-view-icons.c:
7711         (set_up_base_uri):
7712         (fm_directory_view_icons_begin_loading):
7713         Get rid of the old base_uri technique for handling drags. Instead
7714         the icon controller supplies URIs for icons when requested.
7716         * RENAMING: Proposed that we use NautilusIconsView as the new name
7717         for GnomeIconContainer instead of NautilusIconContainer.
7719         * libnautilus/gnome-icon-container-private.h:
7720         libnautilus/gnome-icon-container.h:
7721         libnautilus/gnome-icon-container.c:
7722         (gnome_icon_container_initialize):
7723         (handle_icon_enter_notify):
7724         (handle_icon_leave_notify):
7725         Renamed browser mode to linger selection mode.
7727         * libnautilus/gnome-icon-container-private.h:
7728         libnautilus/gnome-icon-container.h:
7729         libnautilus/gnome-icon-container.c:
7730         (icon_configure):
7731         (icon_position):
7732         (change_icon_mode):
7733         (gnome_icon_container_initialize):
7734         (gnome_icon_container_set_icon_mode):
7735         (gnome_icon_container_get_icon_mode):
7736         src/file-manager/fm-directory-view-icons.c:
7737         (fm_directory_view_icons_initialize):
7738         Got rid of icon mode, since we won't be using it.
7740         * libnautilus/gnome-icon-container-dnd.c:
7741         (get_gnome_icon_list_selection):
7742         Changed geometry parsing so it will not ignore extra characters
7743         after the numeric geometry.
7744         (gnome_icon_container_receive_dropped_icons):
7745         The code here tried to work when dragging icons between windows,
7746         but the implementation was actually only good within the same
7747         window, so I modified it to check for that case.
7749         * libnautilus/gnome-icon-container-dnd.c:
7750         (create_selection_shadow):
7751         (set_gnome_icon_list_selection):
7752         libnautilus/gnome-icon-container.c:
7753         (icon_position):
7754         Renamed GNOME_ICON_CONTAINER_ICON_XOFFSET to
7755         GNOME_ICON_CONTAINER_ICON_X_OFFSET and
7756         GNOME_ICON_CONTAINER_ICON_YOFFSET to
7757         GNOME_ICON_CONTAINER_ICON_Y_OFFSET. We use an underscore between
7758         words in identifiers.
7760         * libnautilus/gnome-icon-container.c:
7761         (destroy):
7762         Added code to remove timeouts and idles when the container is
7763         destroyed.
7765         * libnautilus/nautilus-directory.h:
7766         libnautilus/nautilus-directory.c:
7767         (nautilus_file_get_info):
7768         Get rid of the direct call to get GnomeVFSFileInfo. All info is
7769         accessed through individual functions.
7770         (nautilus_file_get_size):
7771         (nautilus_file_get_type):
7772         (nautilus_file_get_mime_type):
7773         (nautilus_file_is_executable):
7774         (nautilus_file_is_symbolic_link):
7775         Added new accessor functions as needed.
7776         src/file-manager/fm-directory-view.c:
7777         (display_selection_info):
7778         src/file-manager/fm-icon-cache.c:
7779         (fm_icon_cache_get_icon_set_for_file):
7780         (fm_icon_cache_get_icon_for_file):
7781         Change code to use the accessors instead of get_info.
7782         
7783         * libnautilus/nautilus-gtk-macros.h:
7784         (NAUTILUS_ASSIGN_MUST_OVERRIDE_SIGNAL):
7785         Changed macro to take a class pointer of the right type instead
7786         of taking both a casting macro name and a class pointer.
7787         src/file-manager/fm-directory-view.c:
7788         (fm_directory_view_initialize_class):
7789         Changed existing uses of macro to match.
7791         * src/file-manager/Makefile.am:
7792         src/file-manager/fm-icon-cache.c:
7793         src/file-manager/fm-default-file-icon.h:
7794         src/file-manager/fm-default-file-icon.c:
7795         Moved the default icon into its own file.
7797 2000-01-24  John Sullivan <sullivan@eazel.com>
7799         * libnautilus/gnome-icon-container.c:
7800         (button_event_modifies_selection): New function, encapsulates idea
7801         of which button events modify the selection. Formerly this was
7802         done in several places and the answer was "those with the Control
7803         key down". Now the answer is "those with the Control or Shift key
7804         down" to match list view (and traditional, i.e. Mac) behavior more
7805         closely.
7806         (button_press_event), (button_release_event),
7807         (handle_icon_button_press): Deployed
7808         button_event_modifies_selection.
7809         (button_release_event): Check whether modifying selection and
7810         don't activate on single-click if so.
7811         (kbd_move_to): Just added comment.
7812         
7813 2000-01-22  Havoc Pennington  <hp@pobox.com>
7815         * configure.in: check for libwww
7817         * components/html/Makefile.am: add libwww flags
7819 2000-01-21  Maciej Stachowiak  <mjs@eazel.com>
7821         * src/file-manager/fm-directory-view-icons.c: Added background and
7822         item context click menus. Right now they only work for the
7823         directory view, and contain only insensitive items. This needs
7824         more work but I wanted to check in something basic.     
7826 2000-01-21  Havoc Pennington  <hp@redhat.com>
7828         * src/file-manager/Makefile.am (INCLUDES): fix to gnomecanvaspixbuf
7830         * src/Makefile.am (INCLUDES): fix to gnomecanvaspixbuf
7832         * libnautilus/Makefile.am (INCLUDES): fix to use gnomecanvaspixbuf
7833         flags
7835         * configure.in: Look for gnomecanvaspixbuf properly (via
7836         gnome-config)
7837         
7838 2000-01-21  John Sullivan <sullivan@eazel.com>
7840         * src/ntl-window.c: Move Preferences item to Edit menu, its
7841         traditional home.
7843 2000-01-21  John Sullivan <sullivan@eazel.com>
7845         Make icons appear in list view, and do some of the restructuring
7846         necessary for supporting multiple icon sizes.
7848         * src/file-manager/fm-icon-cache.h:
7849         Added enum for Nautilus's 7 levels of zooming.
7850         Added #defines for nominal icon sizes matching these 7 levels.
7851         (fm_icon_cache_get_icon): Renamed to fm_icon_cache_get_icon_for_file,
7852         and changed parameters to take a NautilusFile and a size (in pixels)
7853         instead of a GnomeVFSFileInfo.
7854         
7855         * src/file-manager/fm-icon-cache.c
7856         Changed static vars fm_default_file_icon_width & height to use new
7857         NAUTILUS_ICON_SIZE_STANDARD #define
7858         (fm_icon_cache_get_icon_for_file): Renamed to 
7859         fm_icon_cache_get_icon_set_for_file to avoid collision with changed
7860         public API call. Also changed parameters to take a NautilusFile instead
7861         of a GnomeVFSFileInfo.
7862         (fm_icon_cache_get_icon): Renamed to fm_icon_cache_get_icon_for_file,
7863         and changed parameters to take a NautilusFile and a size (in pixels)
7864         instead of a GnomeVFSFileInfo. If the size parameter is not the
7865         standard size, calls fm_icon_cache_scale to get a scaled icon.
7866         Eventually icons will be stored at various sizes, but for now we
7867         always scale.
7868         (fm_icon_cache_scale): New function, scales standard-sized GdkPixbuf
7869         to given size.
7871         * src/file-manager/fm-directory-view-icons.c:
7872         (add_icon_if_already_positioned), (add_icon_at_free_position):
7873         Updated callers of fm_icon_cache_get_icon, passing in
7874         NAUTILUS_ICON_SIZE_STANDARD.
7876         * src/file-manager/fm-directory-view-list.c:
7877         (struct _FMDirectoryViewListDetails): Add icon_size field.
7878         (fm_directory_view_list_initialize): Initialize icon_size field.
7879         (create_flist): Determine icon column width and row height from icon size.
7880         (add_to_flist): Change parameters to take FMDirectoryViewList
7881         instead of GtkFList, and remove FMIconCache parameter. Now calls
7882         install_icon.
7883         (fm_directory_view_list_add_entry): Update add_to_flist parameters.
7884         (install_icon): New function, gets an appropriately-sized icon for
7885         a NautilusFile and puts it into icon column in list.
7887 2000-01-21  Elliot Lee  <sopwith@redhat.com>
7889         * src/ntl-window.[ch], src/ntl-window-msgs.c,
7890           src/ntl-window-private.h: Add a specific flag to indicate reload,
7891           and make use of it.
7893         * libnautilus/nautilus-directory.c: Allocate an extra byte in the
7894           buffer, for safety's sake.
7895         * src/ntl-window-msgs.c: Fix back/fwd buttons.
7896         * src/ntl-window-msgs.c: Remove debugging printouts, and display
7897           error dialogs.
7898         * src/ntl-window-msgs.c, src/ntl-window.h: Fix the bug that was
7899           causing list view to be blank.
7901 2000-01-21  Darin Adler  <darin@eazel.com>
7903         Started some cleanup of the icon view.
7905         * libnautilus/Makefile.am:
7906         libnautilus/gnome-icon-container-layout.c:
7907         libnautilus/gnome-icon-container-layout.h:
7908         libnautilus/gnome-icon-container.c:
7909         libnautilus/gnome-icon-container.h:
7910         src/file-manager/fm-directory-view-icons.c:
7911         src/file-manager/fm-directory-view-icons.h:
7912         Got rid of the GnomeIconContainerLayout.
7913         This was the old mechanism for saving and loading
7914         icon positions and we have a better signal-based one.
7915         Also made the new mechanism work more the way that
7916         Ettore had intended to make the layout work, where
7917         all the icons that have preassigned positions get
7918         positioned first, then the ones that are auto positioned.
7919         In the long run, we'll need something a bit fancier.
7921         * libnautilus/gnome-icon-container-dnd.c:
7922         libnautilus/gnome-icon-container.c:
7923         libnautilus/gnome-icon-container.h:
7924         libnautilus/gnome-icon-container-private.h:
7925         Change the priv pointer to be named details to match
7926         what we use in other places in Nautilus.
7928 2000-01-21  John Sullivan <sullivan@eazel.com>
7930         Made list view activation work on single click, like icon view.
7932         * libnautilus/gtkflist.c
7933         (struct _GtkFListDetails): Added single_click_mode
7934         and button_down_time, renamed dnd_select_pending_row to
7935         button_down_row.
7936         Added #define MAX_CLICK_TIME, copied from gnome_icon_container.
7937         (gtk_flist_initialize): Initialize single_click_mode to TRUE
7938         (activate_row): New function, extracts code needed to activate
7939         an item from its row number.
7940         (gtk_flist_button_press): Save button_down_time, save
7941         button_down_row more often, use activate_row () for double-click.
7942         (gtk_flist_button_release): Activate on single click if single_click_mode
7943         is true, selection isn't being extended, mouse hasn't moved to a different 
7944         row, and not too much time has passed.
7945         (gtk_flist_motion): Deploy button_down_row name change.
7947 2000-01-20  Andy Hertzfeld <andy@eazel.com>
7949         * libnautilus/gnome-icon-container.c:
7950         Disabled the pernicious call to relayout in size_allocate.  We
7951         will want to do automatic layout when the window size changes, but
7952         this is the wrong level for it, it happens too frequently
7953         
7954 2000-01-20  Elliot Lee  <sopwith@redhat.com>
7956         * src/ntl-window-msgs.c:
7957         Missed piece in last commit.
7959         John added this entry for Elliot, who made this change three
7960         hours later than his last checkin. The comment is from the
7961         cvs commit.
7963 2000-01-20  Darin Adler  <darin@eazel.com>
7965         * src/file-manager/fm-directory-view.c:
7966         (fm_directory_view_activate_entry):
7967         Fixed double free that was causing lots of nasty errors in
7968         the file manager.
7969         (fm_directory_view_load_uri):
7970         Made the old directory hang around a bit longer when loading
7971         a new uri.
7972         (display_selection_info):
7973         (fm_directory_view_send_selection_change):
7974         (display_selection_info_idle_cb):
7975         Fixed a storage leak and broke out the selection change into
7976         its own function instead of mixing it with the status line.
7977         Also made the selection actually use URIs instead of just
7978         names for the selected items.
7980         * libnautilus/nautilus-directory.h:
7981         libnautilus/nautilus-directory.c:
7982         (nautilus_file_get_uri):
7983         Added this function that gets a URI (rather than just a
7984         leaf name).
7986         * libnautilus/nautilus-directory.c:
7987         (nautilus_directory_finalize):
7988         (nautilus_self_check_directory):
7989         Added more self checks and fixed a bug where a metadata
7990         change would get lost if you delete the directory too soon
7991         after making the change.
7993 2000-01-20  John Sullivan  <sullivan@eazel.com>
7995         * libnautilus/gtkflist.c:
7996         * libnautilus/gtkflist.h:
7997         Move fields into details structure inside .c file.
7999 2000-01-20  Jonathan Blandford  <jrb@redhat.com>
8001         * src/file-manager/fm-directory-view-list.c (column_clicked_cb):
8002         more initialization to clean up an warning.
8004 2000-01-20  Darin Adler  <darin@eazel.com>
8006         * src/gnome-icon-container.c:
8007         (gnome_icon_container_xlate_selected):
8008         Fixed a bug where dragging an icon would cause the "kbd_selected"
8009         icon to scroll into view. Just passed FALSE instead of TRUE for
8010         "schedule_visibility".
8012         * libnautilus/nautilus-background.c:
8013         (nautilus_background_draw_flat_box):
8014         Tiny change, to fit our style rule against initializing.
8016 2000-01-20  Jonathan Blandford  <jrb@redhat.com>
8018         * libnautilus/nautilus-background.c
8019         (nautilus_background_draw_flat_box): fix warning.
8021 2000-01-20  Elliot Lee  <sopwith@redhat.com>
8023         * src/ntl-uri-map.c: Async notification of navinfo - now we just need an async get_file_info call.
8024         * src/ntl-view.[ch]: Better error handling.
8025         * src/file-manager/fm-directory-view.c (display_selection_info): Send a 'selection change' request.
8027 2000-01-19  Elliot Lee  <sopwith@redhat.com>
8029         * src/ntl-window-msgs.c: Totally rewrite the state changing machine. Now handles things slightly better.
8030         * src/ntl-types.h: Remove requesting_view from the navigation info.
8031         * src/ntl-window.h: Move all the state machine stuff into NautilusWindow itself.
8032         * src/ntl-window.c: Update for new 'stop doing stuff' API.
8034 2000-01-20  Darin Adler  <darin@eazel.com>
8036         Store icon positions as "x,y" in ICON_POSITION instead of
8037         storing ICON_X and ICON_Y.
8039         Take first step in moving the directory view to use the opaque
8040         NautilusDirectory and NautilusFile instead of using gnome-vfs
8041         directly. This will separate the controller from the model:
8042         FMDirectoryView is a controller and NautilusDirectory a model.
8044         * src/file-manager/fm-directory-view-icons.c:
8045         (add_to_icon_container):
8046         (fm_directory_view_icons_icon_moved_cb):
8047         Store icons positions as "x,y" in ICON_POSITION instead of storing
8048         separate numbers in ICON_X and ICON_Y.
8050         * libnautilus/nautilus-directory.h:
8051         libnautilus/nautilus-directory.c:
8052         (nautilus_directory_get_uri):
8053         Added a new call needed to replace fm_directory_view_get_uri.
8054         (nautilus_directory_get_file_metadata):
8055         (nautilus_directory_set_file_metadata):
8056         (nautilus_file_get_metadata):
8057         (nautilus_file_set_metadata):
8058         Moved the calls for getting and setting file metadata into the
8059         file objects.
8060         (nautilus_directory_new_file):
8061         (nautilus_file_get_info):
8062         Added temporary interfaces for the current situation where we're
8063         dealing with both NautilusFile and GnomeVFSFileInfo objects at
8064         once.
8065         (nautilus_directory_finalize):
8066         Detach and unref all the files when the directory is destroyed.
8067         (nautilus_file_unref):
8068         (nautilus_file_get_name):
8069         Implemented these functions now that we are using them.
8071         * src/file-manager/fm-directory-view.h:
8072         src/file-manager/fm-directory-view.c:
8073         (fm_directory_view_add_entry):
8074         (fm_directory_view_activate_entry):
8075         (display_selection_info):
8076         (fm_directory_view_get_selection):
8077         src/file-manager/fm-directory-view-icons.c:
8078         (add_to_icon_container):
8079         (fm_directory_view_icons_icon_moved_cb):
8080         (dm_directory_view_icons_add_entry):
8081         (fm_directory_view_icons_get_selection):
8082         (icon_container_activate_cb):
8083         src/file-manager/fm-directory-view-list.c:
8084         (add_to_flist):
8085         (fm_directory_view_list_add_entry):
8086         Change all the code to work with NautilusFile instead of
8087         GnomeVFSFileInfo, except for the parts of FMDirectoryView dealing
8088         with the directory_list.
8090         * src/file-manager/fm-directory-view.h:
8091         src/file-manager/fm-directory-view.c:
8092         (nautilus_file_date_as_string):
8093         (nautilus_file_size_as_string):
8094         (nautilus_file_type_as_string):
8095         libnautilus/nautilus-directory.h:
8096         libnautilus/nautilus-directory.c:
8097         (nautilus_file_get_date_as_string):
8098         (nautilus_file_get_size_as_string):
8099         (nautilus_file_get_type_as_string):
8100         Moved and renamed these functions and made them work on
8101         NautilusFile objects.
8102         
8103 2000-01-20  John Sullivan  <sullivan@eazel.com>
8105         * src/file-manager/fm-directory-view.c: (display_selection_info):
8106         Made selection info in status bar use name of item when only one
8107         item. Also reorganized copy/pasted code in this function.
8109 2000-01-20  Darin Adler  <darin@eazel.com>
8111         Made backgrounds work better in the list view. Gradients still
8112         won't work because the list view draws its background with calls
8113         to gdk_draw_rectangle explicitly, and doesn't call the functions
8114         in the style, so it can't be overridden.
8116         * libnautilus/nautilus-background.c:
8117         (nautilus_background_set_widget_style): Fix bug where the list
8118         items were not highlighting properly. Set only the NORMAL and
8119         ACTIVE background color. That way we don't screw up the SELECTED
8120         and other background colors.
8122 2000-01-20  Darin Adler  <darin@eazel.com>
8124         * libnautilus/nautilus-directory.c:
8125         (nautilus_directory_get_file_metadata): Fix segfault that was
8126         happening when viewing a folder without a metafile.
8128 2000-01-19  Darin Adler  <darin@eazel.com>
8130         The list view now has a background color just like the
8131         icon view does. Some more code could be saved, but that's
8132         a refactoring for another time.
8134         * libnautilus/gtkflist.c: Added support for receiving dragged
8135         colors to set the background of the list.
8137         * src/file-manager/fm-directory-view-list.c:
8138         (fm_directory_view_list_initialize_class):
8139         (fm_directory_view_list_clear):
8140         (fm_directory_view_list_background_changed_cb): Added code to load
8141         and save the background color from metadata.
8143         * libnautilus/nautilus-background.c: Put the background color in
8144         all the bg and base colors in the style instead of putting it only
8145         in bg[GTK_STATE_NORMAL].
8147         * libnautilus/nautilus-gtk-macros.h:
8148         (NAUTILUS_DEFINE_CLASS_BOILERPLATE): Make sure that the macro only
8149         evaluates the parent_class_type argument once, like it says in the
8150         comment. (NAUTILUS_CALL_PARENT_CLASS): Fix this macro so it can
8151         be used in places where an expression is expected.
8153         * RENAMING: Added this file to list name changes we are
8154         planning for the future.
8156         * libnautilus/gtkflist.h: libnautilus/gtkflist.c:
8157         src/explorer-location-bar.h: src/explorer-location-bar.c:
8158         Minimized includes.
8160         * src/ntl-index-panel.c:
8161         src/file-manager/fm-directory-view-icons.c: Fixed some comments
8162         and formatting.
8164 2000-01-19  Darin Adler  <darin@eazel.com>
8166         Icon positions are now written out when you drag an icon,
8167         and read in when you visit a directory. But the code then
8168         immediately re-lays out the icons, so the position is lost!
8170         * src/file-manager/fm-directory-view-icons.c:
8171         (fm_directory_view_icons_icon_moved_cb):
8172         (fm_directory_view_icons_initialize): (add_container_icon): Save
8173         icon position when an icon is moved. Get icon position when an
8174         icon is first created.
8176         * libnautilus/nautilus-directory.c:
8177         (nautilus_directory_get_metadata_from_node):
8178         (nautilus_directory_get_metadata):
8179         (nautilus_directory_create_metafile_tree_root):
8180         (nautilus_directory_get_metadata):
8181         (nautilus_directory_set_metadata):
8182         (nautilus_directory_get_file_metadata):
8183         (nautilus_directory_set_file_metadata): Added the routines to get
8184         and set metadata for individual files.
8186         * libnautilus/nautilus-string.h: libnautilus/nautilus-string.c:
8187         (nautilus_eat_strcmp): (nautilus_string_to_int):
8188         (nautilus_eat_string_to_int): Made new string functions that free
8189         the existing strings, and a function to convert an int to a
8190         string.
8192         * libnautilus/gnome-icon-container.h:
8193         libnautilus/gnome-icon-container.c: (move_icon): (class_init):
8194         (handle_icon_button_press): Added context_click_background and
8195         icon_moved signals, and renamed context_click to
8196         context_click_icon.
8198         * configure.in: Turned -Wunused back on. I had to turn -W off,
8199         but I think it's worth it.
8201 2000-01-19  John Sullivan  <sullivan@eazel.com>
8203         * src/file-manager/fm-directory-view.c:
8204         Added #include <libgnomevfs/gnome-vfs-file-info.h>
8205         (fm_directory_view_populate), (display_pending_entries):
8206         Bump refcount on file info before adding it to directory.
8207         (fm_directory_view_load_uri): Destroy directory list
8208         before setting it to NULL. With previous change, this
8209         should prevent leaking GnomeVFSFileInfos and their
8210         lists.
8212 2000-01-19  Darin Adler  <darin@eazel.com>
8214         * libnautilus/nautilus-directory.c: (nautilus_directory_finalize):
8215         (nautilus_directory_try_to_read_metafile):
8216         (nautilus_directory_read_metafile):
8217         (nautilus_directory_try_to_write_metafile):
8218         (nautilus_directory_write_metafile):
8219         (nautilus_directory_construct_alternate_metafile_uri):
8220         (nautilus_directory_new): After Andy explained his change to me, I
8221         realized that it would always write the metafile in the alternate
8222         place if there was no pre-existing metafile. So I changed the
8223         logic. The new rule is: read the metafile from the alternate
8224         location first. If we find it there, write it back
8225         there. Otherwise, try to write in the directory itself. If that
8226         fails, write it in the alternate location instead.
8228         * libnautilus/nautilus-directory.c:
8229         (nautilus_directory_get_metadata): Allow get_metadata on a NULL
8230         NautilusDirectory and return NULL for data.
8232 2000-01-19  Darin Adler  <darin@eazel.com>
8234         Allow changing the background of the icon view by dropping colors
8235         on the icon view.
8237         * libnautilus/gnome-icon-container-dnd.h:
8238         libnautilus/gnome-icon-container-dnd.c:
8239         (gnome_icon_container_position_shadow): (drag_data_received_cb):
8240         (gnome_icon_container_ensure_drag_data): (drag_motion_cb):
8241         (drag_drop_cb): (gnome_icon_container_receive_dropped_icons):
8242         (gnome_icon_container_free_drag_data): (drag_leave_cb): Added
8243         support for receiving dropped colors to change the background of a
8244         GnomeIconContainer.
8246         * src/file-manager/fm-directory-view-icons.c:
8247         (fm_directory_view_icons_initialize_class):
8248         (fm_directory_view_icons_clear):
8249         (fm_directory_view_icons_background_changed_cb): Added code to
8250         load and save the background color from metadata.
8252         * libnautilus/gdk-extensions.c: (nautilus_gradient_new): Changed
8253         nautilus_gradient_new to handle NULLs in the same way that the
8254         rest of the gradient functions do instead of NULL being an illegal
8255         input value.
8257         * src/file-manager/fm-directory-view.h:
8258         src/file-manager/fm-directory-view.c:
8259         (fm_directory_view_initialize): (fm_directory_view_destroy):
8260         (fm_directory_view_get_model): (fm_directory_view_load_uri): Added
8261         a NautilusDirectory object to each directory view, accessed by
8262         subclasses with a call to fm_directory_view_get_model.
8264         * libnautilus/nautilus-gtk-extensions.h:
8265         libnautilus/nautilus-gtk-extensions.c:
8266         (gnome_icon_container_dropped_icon_feedback):
8267         (nautilus_gdk_selection_data_copy_deep): Added deep versions of
8268         these GtkSelectionData functions.
8270         * libnautilus/nautilus-gtk-macros.h:
8271         (NAUTILUS_DEFINE_GET_TYPE_FUNCTION):
8272         (NAUTILUS_DEFINE_CLASS_BOILERPLATE): Added definition and
8273         initialization of the parent_class global to
8274         NAUTILUS_DEFINE_GET_TYPE_FUNCTION and renamed it to
8275         NAUTILUS_DEFINE_CLASS_BOILERPLATE.
8277         * libnautilus/nautilus-background-canvas-group:
8278         (nautilus_background_canvas_group_initialize_class):
8279         libnautilus/nautilus-background.c:
8280         (nautilus_background_initialize_class):
8281         libnautilus/nautilus-directory.c:
8282         (nautilus_directory_initialize_class): src/ntl-index-panel.c:
8283         (nautilus_index_panel_initialize_class):
8284         src/file-manager/fm-directory-view-icons.c:
8285         (fm_directory_view_icons_initialize_class):
8286         src/file-manager/fm-directory-view-list.c:
8287         (fm_directory_view_list_initialize_class):
8288         src/file-manager/fm-directory-view.c:
8289         (fm_directory_view_initialize_class): Take advantage of the new
8290         NAUTILUS_DEFINE_CLASS_BOILERPLATE and get rid of existing code to
8291         set up parent_class.
8293         * libnautilus/gnome-icon-container-dnd.h:
8294         libnautilus/gnome-icon-container-dnd.c:
8295         libnautilus/gnome-icon-container-layout.h:
8296         libnautilus/gnome-icon-container-layout.c:
8297         libnautilus/gnome-icon-container.c: Minimized includes.
8299 2000-01-18  Andy Hertzfeld <andy@eazel.com>
8301         * libnautilus/gnome-icon-container.c
8302         made icon centered in cell by setting "x_set" pixbuf property so
8303         it listens to our offset also, adjusted x_offset constant
8304         * libnautilus/gnome-icon-container-dnd.c
8305         made shadow be centered properly by taking difference between
8306         cellwidth and iconwidth into account
8307         
8308 2000-01-18  Ettore Perazzoli  <ettore@helixcode.com>
8310         * src/file-manager/dfos-xfer.c (xfer_info_destroy): Removed `#if
8311         0'ed out function.
8313         * src/ntl-uri-map.c (nautilus_navinfo_new): Use
8314         `gnome_vfs_file_info_unref()' instead of
8315         `gnome_vfs_file_info_destroy()'.
8317 2000-01-18  Andy Hertzfeld <andy@eazel.com>
8319         * libnautilus/gnome-icon-container-private.h:
8320         added "button_down_time" field to private data structure
8321         * libnautilus/gnome-icon-container.c
8322         made it not activate objects if the button was held down too long
8323         by remember the mouse down time and comparing it with the up time
8325 2000-01-18  John Sullivan <sullivan@eazel.com>
8327         * src/file-manager/fm-directory-view.c:
8328         (fm_directory_view_load_uri): Set directory list to NULL
8329         but don't destroy it; this fixes crash entering a directory
8330         and then going up. Will ask Ettore about real fix.
8332 2000-01-18  John Sullivan <sullivan@eazel.com>
8334         * src/ntl-window-msgs.c:
8335         (nautilus_window_refresh_title): Sets the window title to
8336         Nautilus: x, where x is short name of current location.
8337         (nautilus_window_change_location_internal): Call
8338         nautilus_window_refresh_title.
8340 2000-01-18  John Sullivan <sullivan@eazel.com>
8342         * src/file-manager/fm-directory-view.c:
8343         (display_selection_info): Call selection "items" rather than
8344         "files" because users distinguish directories from files.
8346 2000-01-18  John Sullivan <sullivan@eazel.com>
8348         * src/file-manager/fm-directory-view.h:
8349         (enum _FMDirectoryViewSortType): added FM_DIRECTORY_VIEW_SORT_NONE
8350         and FM_DIRECTORY_VIEW_SORT_BYMTIME
8351         (fm_directory_view_sort): added reverse_sort parameter.
8352         (nautilus_file_date_as_string):
8353         (nautilus_file_size_as_string): Changed parameter for these two
8354         functions to be GnomeVFSFileInfo so they can handle special cases better.
8355         (nautilus_file_type_as_string): New function
8356         
8357         * src/file-manager/fm-directory-view.c
8358         (stop_load): Removed code resetting directory_list and current_position.
8359         This was the wrong place for it, and resetting directory_list was leaking.
8360         (directory_load_cb): Changed commented assignment to assert.
8361         (fm_directory_view_load_uri): Reset directory_list (without leaking old
8362         value) and current_position here.
8363         (fm_directory_view_sort): Pass through new reverse_sort parameter to
8364         gnome_vfs_directory_view_sort; add new case for 
8365         FM_DIRECTORY_VIEW_SORT_BYMTIME; don't put directories first when sorting
8366         by name.
8367         (nautilus_file_date_as_string): Now takes a GnomeVFSFileInfo pointer
8368         instead of a time_t (assumes mtime, with comment explaining why).
8369         (nautilus_file_size_as_string): Now takes a GnomeVFSFileInfo pointer
8370         instead of a size; uses this to special-case "--" for directory size.
8371         (nautilus_file_type_as_string): New function, special-cases directories
8372         to return "directory", otherwise returns mime_type.
8373         
8374         * src/file-manager/fm-directory-view-list.h
8375         Added private details structure to FMDirectoryViewList.
8377         * src/file-manager/fm-directory-view-list.c
8378         Added _FMDirectoryViewListDetails struct, containing sort_type and
8379         sort_reversed.
8380         (fm_directory_view_initialize): initialize details struct.
8381         (column_clicked_cb): New function, sorts list by clicked column.
8382         If list already sorted by that column, reverses sort. Still need
8383         visual indicator of sort direction.
8384         (create_flist): Added Type column, tweaked column widths, added
8385         signal connection for "click_column"
8386         (add_to_flist): now passes GnomeVFSFileInfo to 
8387         nautilus_file_size_as_string and nautilus_file_date_as_string;
8388         uses new nautilus_file_type_as_string for type column.
8390 2000-01-18  Andy Hertzfeld <andy@eazel.com>
8392         * libnautilus/nautilus-directory:
8393         * made reading metafile from directory where we don't have write
8394         permissions work by changing error-check to look in common place on
8395         any error instead of just access_denied.
8396         
8397 2000-01-18  Andy Hertzfeld <andy@eazel.com>
8399         * libnautilus/nautilus-directory.c:
8400         fixed bug caused by Elliot where he used alloca but forgot to remove g_free
8401         
8402 2000-01-18  Elliot Lee  <sopwith@redhat.com>
8404         * libnautilus/nautilus-gtk-macros.h: Since the prototypes for
8405         GtkObjectInitFunc and GtkClassInitFunc just have a 'gpointer' for the args,
8406         cast the given values to these function types, so that people can use the actual
8407         pointer types as arguments without receiving a warning.
8409         * src/ntl-index-panel.c: Change to match. Also set
8410         object_klass->destroy & object_klass->finalize to point to our
8411         implementation. Also remove unused variables
8412         (nautilus_index_panel_initialize,
8413         nautilus_index_panel_set_up_label).
8415         * libnautilus/nautilus-background.c, src/ntl-window-msgs.c,
8416         src/ntl-window.c, src/file-manager/fm-directory-icons.c: Remove
8417         unused variables.
8419         * src/ntl-window.h: Add a variable (unused) for future handling of content view loading.
8421         * libnautilus/libnautilus.h: Add an interim g_alloca.
8423         * libnautilus/nautilus-directory.c: Clean up a bit further, by
8424         removing the need for another if(), and using g_alloca instead of
8425         g_malloc.
8427 2000-01-18  Darin Adler  <darin@eazel.com>
8429         * libnautilus/nautilus-directory.c:
8430         (nautilus_directory_read_metafile):
8431         (nautilus_directory_try_to_read_metafile):
8432         (nautilus_directory_write_metafile):
8433         (nautilus_directory_try_to_write_metafile):
8434         (nautilus_directory_switch_to_alternate_metafile_uri):
8435         (nautilus_directory_escape_slashes):
8436         (nautilus_make_directory_and_parents): Added first cut at code to
8437         put metafiles in the user's home directory if the directory is not
8438         accessible and you can't read and write a metafile in the
8439         directory itself. We'll have to refine this later to handle cases
8440         where you end up with two metafiles.
8442         * libnautilus/Makefile.am: libnautilus/nautilus-debug.h:
8443         libnautilus/nautilus-debug.c: Took trick for getting into the
8444         debugger and put it into a public header file so it can be used
8445         outside of the nautilus executable.
8447         * src/ntl-main.c: (stop_in_debugger):
8448         (nautilus_stop_after_default_log_handler): (main): Use the new
8449         calls from libnautilus to set up the drop into debugger for
8450         criticals and warnings.
8452         * src/file-manager/fm-main.c: (main): Minimized includes and used
8453         the new calls from libnautilus to set up the drop into debugger
8454         for criticals and warnings.
8456         * src/ntl-uri-map.c: (nautilus_navinfo_add_mapping):
8457         src/ntl-window.c: (nautilus_window_constructed):
8458         src/file-manager/fm-directory-view.c:
8459         (fm_directory_view_initialize): (fm_directory_view_destroy):
8460         (notify_location_change_cb): (stop_location_change_cb):
8461         (fm_directory_view_sort): Removed some messages that aren't so
8462         useful.
8464         * libnautilus/ntl-view-frame.h: Minimized includes.
8465         * libnautilus/ntl-view-frame.c: Include "ntl-view-frame.h" first
8466         so it tests to see that it has sufficient includes in it.
8468         * src/ntl-view.c: (nautilus_view_load_client): Changed function so
8469         that NULL for an iid is allowed and simply results in a failed
8470         load instead of being illegal.
8472         * src/ntl-window-msgs.c:
8473         (nautilus_window_change_location_internal): src/ntl-window.c:
8474         (nautilus_window_up): Got rid of calls to gnome_vfs_uri_destroy;
8475         use gnome_vfs_uri_unref instead since it's safer and Federico is
8476         getting rid of gnome_vfs_uri_destroy.
8478         * src/file-manager/fm-directory-view-icons.h:
8479         src/file-manager/fm-directory-view-icons.c:
8480         (fm_directory_view_icons_new):
8481         src/file-manager/fm-directory-view-list.h:
8482         src/file-manager/fm-directory-view-list.c:
8483         (fm_directory_view_list_new):
8484         src/file-manager/fm-directory-view.h:
8485         src/file-manager/fm-directory-view.c: (fm_directory_view_new):
8486         Minimized includes and got rid of the unused _new functions.
8488         * libnautilus/nautilus-directory.h: Added a missing 2000 copyright
8489         date.
8491 2000-01-17  John Sullivan  <sullivan@eazel.com>
8492         First steps towards making the list view non-degenerate.
8494         * src/file-manager/fm-directory-view.h:
8495         * src/file-manager/fm-directory-view.c:
8496         (nautilus_file_date_as_string): New function, returns string suitable
8497         for displaying in a list view column.
8498         (nautilus_file_size_as_string): New function, calls newly-publicized
8499         gnome_vfs_file_size_to_string.
8500         (display_selection_info): Now calls gnome_vfs_file_size_to_string
8501         instead of redoing the string-creation code here.
8503         * src/file-manager/fm-directory-view-list.c
8504         (create_flist): Creates new columns for icon, size, and mod date.
8505         (add_to_flist): Fills columns for size & mod date. Icon column
8506         is empty for the moment. Columns do not yet sort.
8508 2000-01-17  Andy Hertzfeld <andy@eazel.com>
8510         * libnautilus/gnome-icon-container-dnd.c:
8511         made dragging work right by using gdk_pixbuf_render_pixmap_and_mask
8512         to make a pixmap and mask to pass to the gtk dragging machinery
8513         * libnautilus/gnome-icon-container.c:
8514         changed xoffset constant for the icon mode positioning to make the
8515         feedback box line up with the icon.
8516         
8517 2000-01-16  Andy Hertzfeld <andy@eazel.com>
8519         * libnautilus/gnome-icon-container-dnd.c:
8520         made dragging use an image of the canvas item dragged
8521         still disabled, though, because it's not handling the mask yet
8522         
8523 2000-01-16  Andy Hertzfeld <andy@eazel.com>
8525         * libnautilus/gnome-icon-container-private.h:
8526         added "single_click_mode" boolean
8527         
8528         * libnautilus/gnome-icon-container.h
8529         made single-click open optionally work by adding code in
8530         button_release_event to activate the icon if appropriate
8531         enabled single-click mode by default
8532         
8533         * libnautilus/gnome-icon-container-dnd.c
8534         made dragging to desktop and else work by cleaning up code in set_uri_list_selection
8535         did work toward better dragging feedback using an image but didn't finish that yet
8536         
8537 2000-01-15      Andy Hertzfeld <andy@eazel.com>
8539         *libnautilus/gnome-icon-container-dnd.c:
8540         made dragging files within a window actually work graphically, and set the stage for dragging between windows
8541         made drag_leave_cb no longer delete the selection_list
8542         made drag_data_received_cb delete selection if present instead of asserting it's gone
8543         made drag_drop_cb use the selection_list to determine the directory we're dragging from,
8544         if it's the same, move within the window, otherwise copy between (coming soon)
8545         didn't update positions in the metafile yet
8546         
8547 2000-01-14  John Sullivan  <sullivan@eazel.com>
8549         * src/file-manager/fm-directory-view.c:
8550         (display_selection_info):
8551         Fixed a killer typo that caused selection to crash.
8553 2000-01-14  John Sullivan  <sullivan@eazel.com>
8555         Finished refactoring FMDirectoryView and subclasses. I
8556         don't plan any more major reworking on these files, so
8557         feel free to change things without fear of stomping on
8558         me.
8560         * src/file-manager/fm-directory-view.c:
8561         * src/file-manager/fm-directory-view.h:
8562         * src/file-manager/fm-directory-view-icons.c:
8563         * src/file-manager/fm-directory-view-icons.h:
8564         * src/file-manager/fm-directory-view-list.c:
8565         * src/file-manager/fm-directory-view-list.h:
8566         Moved icon_layout and icons_not_in_layout fields from
8567         FMDirectoryView to FMDirectoryViewIcons (where they hide
8568         inside a details structure in fm-directory-view-icons.c)
8569         Commented .h files and all public functions in .c files.
8570         Removed unnecessary #includes.
8571         Changed signatures on many static functions in subclasses
8572         to take subclass type instead of superclass type.
8573         (display_selection_info_idle_cb):
8574         (fm_directory_view_get_selection): 
8575         (fm_directory_view_icons_get_selection):
8576         (fm_directory_view_list_get_selection):
8577         (fm_directory_view_notify_selection_changed):
8578         New functions used to handle subclasses telling
8579         superclass about the selection, so superclass can
8580         display info about it.
8581         (display_icon_container_selection_info_idle_cb):
8582         (display_flist_selection_info_idle_cb): Removed these
8583         old functions in favor of new cleaner mechanism.
8584         (flist_activate_cb), (icon_container_activate_cb): Moved
8585         common code into new superclass function...
8586         (fm_directory_view_activate_entry): New home of that common
8587         code.
8589         * src/file-manager/fm-directory-view.c:
8590         * src/file-manager/fm-directory-view.h:
8591         Moved remaining fields of FMDirectoryView inside a private 
8592         details structure so they can change without affecting clients.
8593         (fm_directory_view_get_uri): (fm_directory_view_get_view_frame): 
8594         New functions to use instead of peeking at structure directly.
8595         (init): (class_init): (fm_directory_view_get_type): Renamed
8596         the former two functions and removed the latter while
8597         deploying NAUTILUS_DEFINE_GET_TYPE_FUNCTION macro.
8598                 
8599         * src/file-manager/fm-main.c:
8600         (make_obj): Use fm_directory_view_get_view_frame() where it
8601         had been peeking at structure directly.
8603 2000-01-14  Darin Adler  <darin@eazel.com>
8605         Fixed our handling of warnings and criticals.
8607         * src/ntl-main.c: Added new functions that stop in the debugger
8608         when you hit a g_warning or a critical error, only if the
8609         environment variable NAUTILUS_DEBUG is set. This is better than
8610         the way the old code made everything fatal, since it doesn't do
8611         anything if the debugger isn't running.
8613 2000-01-14  Darin Adler  <darin@eazel.com>
8615         Turned on gradients for backgrounds.
8616         
8617         * src/ntl-index-panel.c:
8618         (nautilus_index_panel_drag_data_received): Use the new
8619         accept_dropped_color function in NautilusBackground instead of
8620         code in here. (nautilus_index_panel_background_changed):
8621         (nautilus_index_panel_set_up_info): Save background to metadata
8622         when the NautilusBackground object emits the changed signal.
8624         * libnautilus/nautilus-background.h:
8625         libnautilus/nautilus-background.c:
8626         (nautilus_background_accept_dropped_color): Moved logic about
8627         dropping a color coupon to change the background into the
8628         NautilusBackground class. This includes a first cut at the rules
8629         about gradients.
8631         * libnautilus/nautilus-background.c:
8632         (nautilus_background_get_color): Implemented this missing
8633         function. It's used by the code in index panel now to save the
8634         current background.
8636         * libnautilus/nautilus-background.c:
8637         (nautilus_background_draw_flat_box): Implemented gradient fills
8638         through the GtkStyle subclass.
8640         * src/ntl-main.c: (main): Made criticals and warnings be always
8641         fatal. Next step is to make them drop into the debugger, but not
8642         result in a core dump if the debugger is not running.
8643         
8644 2000-01-14  Darin Adler  <darin@eazel.com>
8646         * src/ntl-index-panel.c: (nautilus_index_panel_set_up_label):
8647         Changed code to use the new gnome_vfs_uri_extract_short_name
8648         instead of its own private function.
8650 2000-01-14  Darin Adler  <darin@eazel.com>
8652         First cut at some actual saving of metadata.
8653         Neither the interface nor the implementation is great yet.
8654         But it's a start.
8656         * libnautilus/Makefile.am:
8657         libnautilus/nautilus-directory.h:
8658         libnautilus/nautilus-directory.c:
8659         libnautilus/nautilus-lib-self-check-functions.h:
8660         libnautilus/nautilus-lib-self-check-functions.c:
8661         src/file-manager/Makefile.am:
8662         src/file-manager/fm-directory-protected.h:
8663         src/file-manager/fm-directory.h:
8664         src/file-manager/fm-directory.c:
8665         src/file-manager/fm-vfs-directory.h:
8666         src/file-manager/fm-vfs-directory.c:
8667         Moved the old FMDirectory class into the library and named it
8668         NautilusDirectory. Added functions for reading and writing
8669         metadata.
8671         * src/ntl-index-panel.c: Added the code to save the index panel's
8672         background color in metadata.
8673         
8674         * libnautilus/Makefile.am: Added gnome-vfs and gnome-xml,
8675         since the new code uses them.
8677         * libnautilus/nautilus-self-checks.h:
8678         libnautilus/nautilus-lib-self-check-functions.h:
8679         libnautilus/nautilus-lib-self-check-functions.c:
8680         src/nautilus-self-check-functions.h:
8681         src/nautilus-self-check-functions.c:
8682         Added macros to the self-check framework so the list of self check
8683         functions appears in exactly one place for each directory/module.
8685         * src/ntl-index-panel.h: src/ntl-index-panel.c: Moved the fields
8686         of the index panel inside a private details structure so they can
8687         change without affecting clients.
8689         * libnautilus/nautilus-background.c: Just some reformatting.
8691 2000-01-13  John Sullivan  <sullivan@eazel.com>
8693         More work pushing code from FMDirectoryView into subclasses.
8694         Almost done now.
8696         * src/file-manager/fm-directory-view.h:
8697         Removed enum _FMDirectoryViewMode and its typedef.
8698         Removed field entries_to_display.
8699         Removed transition section holding function prototypes that
8700         were on their way into subclasses.
8701         (fm_directory_view_is_valid_mode): Removed.
8702         (fm_directory_view_get_mode): Removed.
8703         (fm_directory_view_set_mode): Removed.
8705         (fm_directory_view_begin_adding_entries):  New function & signal.
8706         (fm_directory_view_add_entry):  New function & signal.
8707         (fm_directory_view_done_adding_entries):  New function & signal.
8708         (fm_directory_view_done_sorting_entries):  New function & signal.
8709         (fm_directory_view_begin_loading): New function & signal.
8711         (fm_directory_view_display_selection_info): Newly exposed function.
8713         * src/file-manager/fm-directory-view.c:
8714         Removed some now-unnecessary #includes.
8715         Added constants for new signals to enum.
8716         Removed global variable for icon cache in favor of already-extant
8717         fm_get_current_icon_cache().
8718         Removed all references to entries_to_display.
8719         (display_selection_info): Renamed to 
8720         fm_directory_view_display_selection_info now that it's public.
8721         (view_has_icon_container): Removed.
8722         (get_icon_container): Moved into subclass FMDirectoryViewIcons.
8723         (add_to_icon_container): Moved into subclass FMDirectoryViewIcons.
8724         (load_icon_container): Moved into subclass FMDirectoryViewIcons.
8725         (display_icons_not_in_layout): Moved into subclass FMDirectoryViewIcons.
8726         (setup_base_uri): Moved into subclass FMDirectoryViewIcons (and renamed
8727         to set_up_base_uri).
8728         (view_has_flist): Removed.
8729         (get_flist): Moved into subclass FMDirectoryViewList.
8730         (add_to_flist): Moved into subclass FMDirectoryViewList.
8731         (class_init): Signal initialization code for begin_adding_entries,
8732         add_entry, done_adding_entries, done_sorting_entries, and begin_loading.
8733         (init): Removed mode-setting line.
8734         (display_pending_entries): Replaced the bulk of this function with three
8735         new signals: begin_adding_entries, add_entry, done_adding_entries. The
8736         loop structure and GnomeVFSFileInfo retrieving part remains.
8737         (directory_load_cb): Deployed new signal begin_loading where setup_base_uri
8738         used to be.
8739         (fm_directory_view_is_valid_mode): Removed.
8740         (fm_directory_view_get_mode): Removed.
8741         (fm_directory_view_set_mode): Removed.
8742         (fm_directory_view_begin_adding_entries): New function, emits signal.
8743         (fm_directory_view_add_entry): New function, emits signal.
8744         (fm_directory_view_done_adding_entries): New function, emits signal.
8745         (fm_directory_view_done_sorting_entries): New function, emits signal.
8746         (fm_directory_view_begin_loading): New function, emits signal.
8747         (fm_directory_view_sort): Replaced some icon-container-specific
8748         code with fm_directory_view_done_sorting_entries().
8750         * src/file-manager/fm-directory-view-icons.c:
8751         (fm_directory_view_icons_initialize_class): Wired up signal handlers
8752         for add_entry, done_adding_entries, done_sorting_entries, and begin_loading.
8753         (fm_directory_view_icons_initialize): Removed set_mode call.
8754         (display_icons_not_in_layout): Moved here from superclass FMDirectoryView.
8755         (get_icon_container): Moved here from superclass FMDirectoryView.
8756         (add_to_icon_container): Moved here from superclass FMDirectoryView.
8757         (load_icon_container): Moved here from superclass FMDirectoryView.
8758         (set_up_base_uri): Moved here from superclass FMDirectoryView.
8759         (fm_directory_view_icons_add_entry): New signal handler function, code 
8760         taken and simplified from superclass FMDirectoryView.
8761         (fm_directory_view_icons_done_adding_entries): New signal handler 
8762         function, code taken and simplified from superclass FMDirectoryView.
8763         (fm_directory_view_icons_done_sorting_entries): New signal handler 
8764         function, code taken and simplified from superclass FMDirectoryView.
8765         (fm_directory_view_icons_begin_loading): New signal handler function, 
8766         code taken and simplified from superclass FMDirectoryView.
8767         
8768         * src/file-manager/fm-directory-view-list.c:
8769         (fm_directory_view_list_initialize_class): Wired up signal handlers
8770         for begin_adding_entries, add_entry, and done_adding_entries
8771         (fm_directory_view_list_initialize): Removed set_mode call.
8772         (get_flist): Moved here from superclass FMDirectoryView.
8773         (add_to_flist): Moved here from superclass FMDirectoryView.
8774         (fm_directory_view_list_begin_adding_entries): New signal handler 
8775         function, code taken and simplified from superclass FMDirectoryView.
8776         (fm_directory_view_list_add_entry): New signal handler function, code 
8777         taken and simplified from superclass FMDirectoryView.
8778         (fm_directory_view_list_done_adding_entries): New signal handler 
8779         function, code taken and simplified from superclass FMDirectoryView.    
8781 2000-01-13  John Sullivan  <sullivan@eazel.com>
8783         * libnautilus/nautilus-gtk-macros.h: Defined macros
8784         for use when a signal must be overridden by subclasses.
8785         * src/file-manager/fm-directory-view.c: Deployed these
8786         new macros for the "clear" signal. 
8787         NAUTILUS_IMPLEMENT_MUST_OVERRIDE_SIGNAL is outside any 
8788         function, and
8789         (class_init): NAUTILUS_MUST_OVERRIDE_SIGNAL is in here.
8790         (fm_directory_view_real_clear): Eliminated this in favor
8791         of the above macros.
8792         * src/file-manager/fm-directory-view-icons.c:
8793         (fm_directory_view_icons_get_type): Replaced function with
8794         NAUTILUS_DEFINE_GET_TYPE_FUNCTION macro.
8795         (fm_directory_view_icons_init): Renamed to 
8796         fm_directory_view_icons_initialize and standardized parameters 
8797         to work with NAUTILUS_DEFINE_GET_TYPE_FUNCTION macro.
8798         (fm_directory_view_icons_class_init): Renamed to 
8799         fm_directory_view_icons_initialize_class and standardized 
8800         parameters to work with NAUTILUS_DEFINE_GET_TYPE_FUNCTION macro.
8801         (fm_directory_view_icons_destroy): Deployed
8802         NAUTILUS_CALL_PARENT_CLASS macro.
8803         * src/file-manager/fm-directory-view-list.c:
8804         (fm_directory_view_list_get_type): Replaced function with
8805         NAUTILUS_DEFINE_GET_TYPE_FUNCTION macro.
8806         (fm_directory_view_list_init): Renamed to 
8807         fm_directory_view_list_initialize and standardized parameters 
8808         to work with NAUTILUS_DEFINE_GET_TYPE_FUNCTION macro.
8809         (fm_directory_view_list_class_init): Renamed to 
8810         fm_directory_view_list_initialize_class and standardized 
8811         parameters to work with NAUTILUS_DEFINE_GET_TYPE_FUNCTION macro.
8812         (fm_directory_view_list_destroy): Deployed
8813         NAUTILUS_CALL_PARENT_CLASS macro.
8814         
8815 2000-01-12  John Sullivan  <sullivan@eazel.com>
8817         More work at pushing appropriate fm_directory_view code
8818         into subclasses.
8820         * src/file-manager/fm-directory-view.c:
8821         (class_init): Register "clear" signal, make 
8822         fm_directory_view_real_clear be default handler.
8823         (fm_directory_view_real_clear): New function, does
8824         nothing but complain when it's called. (I'm going to
8825         replace this with a debug-only mechanism soon.)
8826         (fm_directory_view_clear): New function, emits "clear" signal.
8827         (fm_directory_view_load_uri): Replaced "if icons clear this way,
8828         if list clear that way" code with call to fm_directory_view_clear.
8829         (mode_uses_flist): Eliminated, wrapped into only remaining caller
8830         view_has_flist (which will itself go away soon).
8831         (mode_uses_icon_container): Eliminated, wrapped into only remaining caller
8832         view_has_icon_container (which will itself go away soon).
8834         * src/file-manager/fm-directory-view-icons.c:
8835         (fm_directory_view_icons_clear): New function, erases icon container.
8836         (fm_directory_view_icons_init): Replace fm_directory_view's
8837         "clear" signal handler with fm_directory_view_icons_clear
8838         (fm_directory_view_icons_get_icon_layout): Moved to here.
8839         (fm_directory_view_icons_set_icon_layout): Moved to here.
8840         (fm_directory_view_icons_line_up_icons): Moved to here.
8841         
8842         * src/file-manager/fm-directory-view-list.c:
8843         (fm_directory_view_list_clear): New function, erases list contents.
8844         (fm_directory_view_list_init): Replace fm_directory_view's
8845         "clear" signal handler with fm_directory_view_list_clear
8846         
8847         * src/file-manager/fm-directory-view.h:
8848         (fm_directory_view_clear): Added "clear" signal, and
8849         fm_directory_view_clear prototype.
8850         (fm_directory_view_icons_get_icon_layout): Moved out of here.
8851         (fm_directory_view_icons_set_icon_layout): Moved out of here.
8852         (fm_directory_view_icons_line_up_icons): Moved out of here.
8853         
8854         * src/file-manager/fm-directory-view-icons.h:
8855         (fm_directory_view_icons_get_icon_layout): Moved to here.
8856         (fm_directory_view_icons_set_icon_layout): Moved to here.
8857         (fm_directory_view_icons_line_up_icons): Moved to here.
8859 2000-01-12  John Sullivan  <sullivan@eazel.com>
8861         * src/ntl-window-msgs.c (nautilus_window_load_content_view_menu):
8862         Made option menu say "View as Icons" (e.g.) instead of just "Icons"
8864 2000-01-11  Andy Hertzfeld <andy@eazel.com>
8866         * src/ntl-window:
8867         added a debug menu, and it's first item to show a color picker to test dropping colors
8868         
8869 2000-01-11  John Sullivan  <sullivan@eazel.com>
8871         Started moving icon-specific and list-specific code
8872         into the subclasses. As a transition step, added some
8873         private prototypes to the .h file (clearly marked).     
8874         
8875         * src/file-manager/fm-directory-view.c:
8876         (setup_flist), (setup_icon_container): eliminated completely.
8877         (display_icon_container_selection_info_idle_cb), 
8878         (icon_container_selection_changed_cb), (icon_container_activate_cb),
8879         (create_icon_container), (display_flist_selection_info_idle_cb),
8880         (flist_activate_cb), (flist_selection_changed_cb), 
8881         (create_flist): moved out.
8882         (fm_directory_view_set_mode): removed the guts, which are now
8883         in the init functions for the subclasses; now just sets the
8884         field (which will go away eventually).
8885         * src/file-manager/fm-directory-view.h:
8886         (add_to_flist), (display_selection_info), (get_flist),
8887         (get_icon_container), (load_icon_container): temporarily
8888         added to .h file.
8889         * src/file-manager/fm-directory-view-icons.c:
8890         (display_icon_container_selection_info_idle_cb), 
8891         (icon_container_selection_changed_cb), (icon_container_activate_cb),
8892         (create_icon_container): moved in.
8893         (fm_directory_view_icons_init): Now creates icon_container here instead of
8894         in fm_directory_view_set_mode (which will eventually go away).
8895         * src/file-manager/fm-directory-view-list.c:
8896         (display_flist_selection_info_idle_cb), (flist_activate_cb), 
8897         (flist_selection_changed_cb), (create_flist): moved in.
8898         (fm_directory_view_list_init): Now creates flist here instead of
8899         in fm_directory_view_set_mode (which will eventually go away).
8901         * src/ntl-window.c:
8902         (real_nautilus_window_set_content_view): Renamed to
8903         nautilus_window_real_set_content_view. Also added
8904         self as an author.
8906 2000-01-11  Darin Adler  <darin@eazel.com>
8908         NautilusBackground is now used for the index panel background.
8910         * libnautilus/nautilus-background.c:
8911         (nautilus_background_attach_to_canvas):
8912         (nautilus_get_widget_background):
8913         (nautilus_gtk_style_get_default_class):
8914         (nautilus_gdk_window_update_sizes):
8915         (nautilus_background_draw_flat_box):
8916         (nautilus_background_get_gtk_style_class):
8917         (nautilus_background_set_widget_style):
8918         (nautilus_background_set_up_canvas):
8919         (nautilus_widget_background_changed):
8920         (nautilus_get_widget_background):
8921         Added new code that changes the background of a widget by
8922         modifying the GtkStyle. For solid colors and tiled images we
8923         can just modify the GtkStyle. For gradients we need to make
8924         a GtkStyle subclass.
8925         
8926         * libnautilus/nautilus-background.h:
8927         (nautilus_background_attach_to_canvas):
8928         (nautilus_get_widget_background):
8929         Changed the old interface that was canvas-specific, to a new one
8930         that allows attacking a background to any widget.
8932         * src/ntl-index-panel.h:
8933         Now that the background is attached to the widget, we don't need
8934         a background field in NautilusIndexPanel.
8936         * src/ntl-index-panel.c:
8937         (nautilus_index_panel_set_up_background)
8938         (nautilus_index_panel_finalize):
8939         (nautilus_index_panel_drag_data_received):
8940         (nautilus_index_panel_set_up_info):
8941         Changed the index panel to use NautilusBackground.
8943         * libnautilus/nautilus-background-canvas-group.h:
8944         libnautilus/nautilus-background-canvas-group.c:
8945         (nautilus_background_canvas_group_get_background):
8946         (nautilus_background_canvas_group_set_background):
8947         Moved the code that manages the background object out of the
8948         canvas group code, since we can now attach a background to
8949         any widget.
8951         * libnautilus/gdk-extensions.c:
8952         (nautilus_gdk_color_parse_with_white_default): Changed this helper
8953         to accept NULLs and return the default instead of prohibiting
8954         NULL. This is consistent with the gradient's use of NULL to
8955         represent the default color.
8957 2000-01-11  John Sullivan  <sullivan@eazel.com>
8959         * libnautilus/nautilus-gtk-extensions.h:
8960         * libnautilus/nautilus-gtk-extensions.c:
8961         (nautilus_gtk_signal_connect_free_data): New function,
8962         convenience wrapper for gtk_signal_connect_full where
8963         the destroy-function is g_free() and the other extra
8964         values are the defaults.
8965         * src/ntl-window-msgs.c: (nautilus_window_load_content_view_menu):
8966         Use nautilus_gtk_signal_connect_free_data to avoid leaking the menu item's
8967         signal's copy of the iid string. 
8969 2000-01-11  John Sullivan  <sullivan@eazel.com>
8971         Content view menu now works (can switch between List and Icon views).
8973         * src/ntl-window-msgs.c:
8974         (nautilus_window_load_content_view): Made it return the new
8975         content view, so callers don't need a load_info structure to
8976         determine the new view. Also made it accept NULL for
8977         requesting_view.
8978         (view_menu_switch_views_cb): New function, callback for when
8979         a view is chosen from the list of available content views.
8980         Elliot told me that this requires further work, so I checked
8981         it in with comments for later fixing by Elliot or someone
8982         else who understands the loading process better.
8983         (nautilus_view_load_content_view_menu): Added explicit
8984         parameter for NautilusNavigationInfo for clarity (had been
8985         getting this from deep in window temporary state guts).
8986         Connected view_menu_switch_views_cb to menu items.
8987         * src/ntl-window.c: 
8988         (nautilus_window_set_arg): Fixed bug in ARG_CONTENT_VIEW case where
8989         new view was sometimes being added to view hierarchy twice. Then
8990         moved this code into...
8991         (real_nautilus_window_set_content_view): New function, implements
8992         guts of content-view changing so set_arg doesn't have a big block
8993         of code in a switch statement.
8994         (nautilus_window_set_content_view): Moved the gtk_widget_show call
8995         from here to real_nautilus_window_set_content_view so it happens
8996         even if set_arg is called from elsewhere.
8997         (gtk_option_menu_do_resize): Removed this
8998         obsolete function (I removed the callers yesterday but forgot this).
9000 2000-01-11  Darin Adler  <darin@eazel.com>
9002         * libnautilus/ntl-view-frame.c: Fixed typos and oversights in
9003         Maciej's check-in. He didn't compile his changes :-(
9005 2000-01-11  Maciej Stachowiak  <mjs@eazel.com>
9007         * libnautilus/ntl-view-frame.c, libnautilus/ntl-view-frame.h: Redo
9008         signals the conventional way, to avoid array size mismatches in
9009         the future.
9011 2000-01-10  Maciej Stachowiak  <mjs@eazel.com>
9013         * docs/architecture.txt: Some documentation on the nautilus
9014         architecture including a block diagram and some conrol flow
9015         explanations. Needs editing for both style and technical
9016         completeness/accuracy, but it's a start.
9018         * libnautilus/gnome-icon-container.c (handle_icon_button_press):
9019         Reorder code so "context_click" is actually emitted on a button 3
9020         press.
9022         * src/file-manager/fm-main.c,
9023         src/file-manager/fm-directory-view.c,
9024         src/file-manager/fm-directory-view.h: Changed FMDirectoryView to
9025         use a NautilusViewFrame rather than inheriting from one.
9027         * libnautilus/ntl-view-frame.c (nautilus_view_frame_class_init):
9028         Fixed marshall type for "stop_location_change" signal. How could
9029         this ever have worked?
9031         * src/ntl-view.c (nautilus_view_load_client): Once an appropriate
9032         component type is found, do not keep looping.
9034 2000-01-10  John Sullivan  <sullivan@eazel.com>
9036         First step at splitting the directory view into separate
9037         icon and list views. List view compiles and runs now,
9038         but is still inaccessible from the UI.
9040         * src/file-manager/fm-directory-view-icons.h:
9041         * src/file-manager/fm-directory-view-icons.c:
9042         * src/file-manager/fm-directory-view-list.h:
9043         * src/file-manager/fm-directory-view-list.c:
9044         New files. These implement two subclasses of FMDirectoryView.
9045         Currently the subclasses are trivial; the only code in the 
9046         subclasses other than boilerplate is the one line that sets 
9047         the view mode. Later I'll push the rest of the relevant code
9048         down into the subclasses.
9049         * src/file-manager/Makefile.am
9050         Added the four new files to the build.
9051         * src/file-manager/fm-directory-view.c: (init): Removed the
9052         call to fm_directory_view_set_mode since the subclasses are
9053         responsible for this now.
9054         (setup_base_uri): Don't call get_icon_container for non-icon
9055         views, as it asserts if you do; this was broken but since
9056         you couldn't switch to a non-icon view we didn't realize it.
9057         * src/file-manager/fm-main.c: (make_obj): Now calls either
9058         fm_directory_view_icons_get_type() or fm_directory_view_list_get_type()
9059         depending on the goad_id.
9060         * src/file-manager/ntl-file-manager.goad: Replaced entry for
9061         ntl_file_manager with two, one for ntl_file_manager_icon_view
9062         and one for ntl_file_manager_list_view
9063         * src/ntl-uri-map.c: (nautilus_navinfo_new): Now it sets up
9064         the two content views for directories with their new goad ids.
9066 2000-01-10  Maciej Stachowiak  <mjs@eazel.com>
9068         * libnautilus/ntl-view-frame.c, libnautilus/ntl-view-frame.c:
9069         Fixed mismatch between declared signal array size and actual
9070         number of signals (this should still be rewritten to follow proper
9071         style).
9073         * libnautilus/ntl-content-view-frame.c,
9074         libnautilus/ntl-content-view-frame.h,
9075         libnautilus/ntl-meta-view-frame.c,
9076         libnautilus/ntl-meta-view-frame.h, libnautilus/ntl-view-frame.c,
9077         libnautilus/ntl-view-frame.h, src/ntl-app.c,
9078         src/ntl-view-bonobo-control.c, src/ntl-view-bonobo-subdoc.c,
9079         src/ntl-view-frame-svr.c, src/ntl-view-nautilus.c,
9080         src/ntl-view-private.h, src/ntl-view.c, src/ntl-view.h,
9081         src/ntl-window-msgs.c, src/ntl-window-msgs.h,
9082         src/ntl-window-state.c, src/ntl-window.c, src/ntl-window.h,
9083         src/file-manager/fm-directory-view.c,
9084         src/file-manager/fm-directory-view.h, src/file-manager/fm-main.c:
9085         Added Eazel copyright to files I've changed non-trivially.
9087 2000-01-10  Darin Adler  <darin@eazel.com>
9089         * src/ntl-index-panel.c: (nautilus_index_panel_set_up_label):
9090         Added workaround to problem with basename and gnome-vfs.
9092 2000-01-10  Maciej Stachowiak  <mjs@eazel.com>
9094         * libnautilus/ntl-view-frame.c, libnautilus/ntl-view-frame.h,
9095         libnautilus/ntl-content-view-frame.c,
9096         libnautilus/ntl-content-view-frame.h,
9097         libnautilus/ntl-meta-view-frame.c,
9098         libnautilus/ntl-meta-view-frame.h: Renamed from
9099         libnautilus/ntl-view-client.c, libnautilus/ntl-view-client.h,
9100         libnautilus/ntl-content-view-client.c,
9101         libnautilus/ntl-content-view-client.h,
9102         libnautilus/ntl-meta-view-client.c,
9103         libnautilus/ntl-meta-view-client.h.
9104         * libnautilus/Makefile.am, libnautilus/libnautilus.h: reflect this
9105         renaming.
9106         
9107 2000-01-10  Darin Adler  <darin@eazel.com>
9109         * ntl-window-msgs.c: (nautilus_window_request_progress_change):
9110         (nautilus_window_advance_state):
9111         (nautilus_window_switch_to_new_views):
9112         (nautilus_window_revert_to_old_views):
9113         (nautilus_window_free_load_info):
9114         (nautilus_window_end_location_change):
9115         (nautilus_window_change_location_2):
9116         (nautilus_window_change_location): Got rid of the race condition
9117         in the existing code and cleaned up the state machine a bit. The
9118         new code separates the state of the nautilus window from the state
9119         of the content view, which makes things a bit simpler.
9121 2000-01-10  John Sullivan  <sullivan@eazel.com>
9123         Added some of the framework for supporting multiple
9124         content views for the same uri. More to come later.
9126         * src/ntl-types.h: added NautilusViewIdentifier struct
9127         to keep track of iid and human-readable name. Renamed
9128         NautilusNavigationInfo.content_iid to default_content_iid,
9129         and added content_identifiers GSList.
9130         * src/ntl-uri-map.c: 
9131         (nautilus_view_identifier_new): New function.
9132         (nautilus_view_identifier_free): New function.
9133         (nautilus_navinfo_new): Create a human-readable-name
9134         for each content iid, and store them together in
9135         content_identifiers list. I included a currently
9136         unworking "List" choice for the directory case, to
9137         test the framework.
9138         (nautilus_navinfo_free): Free the content_identifiers list.
9139         * src/ntl-window-msgs.c:
9140         (nautilus_window_load_content_view_menu): New function,
9141         iterates through the content_identifiers list to fill in
9142         the menu of content view choices. The menu items don't do
9143         anything yet.
9144         (nautilus_window_change_location_internal): Added call to
9145         nautilus_window_load_content_view_menu.
9146         (nautilus_window_change_location_2): Fixed spelling and
9147         grammar in a couple of error messages.
9148         * src/ntl-window.c: (nautilus_window_constructed): Removed
9149         "View as (placeholder)" text in menu; now it has no text
9150         until the actual choices appear. Removed some option-menu-sizing
9151         trickery that didn't work correctly when items were added later.
9152         Now the entire menu is replaced when its contents change.
9153         * src/ntl-window.h: Removed menu_cvtype field; code all uses
9154         just option_cvtype now.
9156 2000-01-10  Darin Adler  <darin@eazel.com>
9158         * libnautilus/Makefile.am, libnautilus/nautilus-background.h,
9159         libnautilus/nautilus-background.c,
9160         libnautilus/nautilus-background-canvas-group.h,
9161         libnautilus/nautilus-background-canvas-group.c,
9162         libnautilus/nautilus-lib-self-check-functions.h,
9163         libnautilus/nautilus-lib-self-check-functions.c: Added first cut
9164         at a new class to manage backgrounds that can be colors, color
9165         gradients, or tiled images.
9167         * libnautilus/Makefile.am, libnautilus/nautilus-string.h,
9168         libnautilus/nautilus-string.c: Added functions that manipulate
9169         strings that allow NULLs to reduce NULL checks in code that
9170         treats NULL the same as an empty string.
9172         * libnautilus/gdk_extensions.c: (nautilus_gradient_new):
9173         (nautilus_gradient_is_gradient):
9174         (nautilus_gradient_is_horizontal):
9175         (nautilus_gradient_strip_trailing_direction_if_any):
9176         (nautilus_gradient_get_start_color_spec):
9177         (nautilus_gradient_get_end_color_spec):
9178         (nautilus_gradient_set_edge_color): Changed gradient functions to
9179         allow NULL and treat it the same as an empty string.
9181         * libnautilus/gdk_extensions.h: libnautilus/gdk_extensions.c:
9182         (nautilus_gdk_color_parse_with_default):
9183         (nautilus_gdk_color_parse_with_white_default): Added alternate
9184         version of gdk_color_parse that uses a default color instead of
9185         just returning false. Added self-checks and updated some existing
9186         self checks at the same time.
9188         * src/ntl-index-panel.h, src/ntl-index-panel.c: Wholesale
9189         cleanup and reformatting of NautilusIndexPanel. Fixed a number of
9190         bugs, including storage leaks, and took first step toward using
9191         NautilusBackground class.
9193         * src/ntl-window.c: (nautilus_window_get_requested_uri):
9194         Changed this so it works when window->ni is NULL.
9196         * src/ntl-window.h: Changed index_panel to be a NautilusIndexPanel
9197         now that the index panel interface uses the class instead of using
9198         GtkWidget everywhere.
9200         * src/file-manager/.cvsignore: Added *.la.
9202         * src/file-manager/fm-directory.c: Minor reformatting to match
9203         GNOME code style better.
9205 2000-01-10  John Sullivan  <sullivan@eazel.com>
9207         * src/ntl-index-panel.c: (nautilus_index_panel_set_up_label):
9208         Check for NULL filename
9210 2000-01-10  Maciej Stachowiak  <mjs@eazel.com>
9212         * src/file-manager/.cvsignore: ignore ntl-file-manager rather than
9213         libntl-file-manager.la
9215         Made file manager view a CORBA server that lives in a separate
9216         executable:
9217         
9218         * src/file-manager/fm-main.c: New file which includes main()
9219         function and basic framework to make the file manager an
9220         executable CORBA server.
9221         * src/file-manager/ntl-file-manager.goad: gnorba activation file
9222         for the file manager.
9223         * src/file-manager/Makefile.am: Build ntl-file-manager as an
9224         executable rather than a library. Add fm-main.c to build. Install
9225         ntl-file-manager.goad. Link in appropriate libraries.
9226         * src/ntl-app.c: Remove nautilus_make_object() and other vestiges
9227         of the attempt to be a CORBA server for file manager view objects.
9228         * src/nautilus.gnorba: Removed.
9229         * nautilus-self-check-functions.c: Remove call to test of
9230         functions now in the separate ntl-file-manager executable.
9231         * src/Makefile.am: Don't try to link in file manager. Don't try to
9232         install nautilus.goad.
9234 2000-01-10  Maciej Stachowiak  <mjs@eazel.com>
9236         * src/ntl-main.c (main): Added missing CORBA_exception_init() call.
9238 2000-01-09  Maciej Stachowiak  <mjs@eazel.com>
9240         * libnautilus/ntl-view-client.c, libnautilus/ntl-view-client.h,
9241         libnautilus/ntl-content-view-client.c,
9242         libnautilus/ntl-content-view-client.h,
9243         libnautilus/ntl-meta-view-client.c,
9244         libnautilus/ntl-meta-view-client.h,: Rename NautilusViewClient to
9245         NautilusViewFrame, NautilusContentViewClient to
9246         NautilusContentViewFrame, and NautilusMetaViewClient to
9247         NautilusMetaViewFrame.
9248         * components/help/hyperbola-nav-tree.c,
9249         components/history/ntl-history-view.c,
9250         components/html/ntl-web-browser.c,
9251         components/websearch/ntl-web-search.c, src/ntl-app.c,
9252         src/file-manager/fm-directory-view.c,
9253         src/file-manager/fm-directory-view.h: Reflect the above renaming.
9255 2000-01-09  Andy Hertzfeld <andy@eazel.com>
9257         * src/ntl-index-panel.c: made dropping a color from the color
9258         picker set the background accordingly.  It doesn't save the
9259         meta-data yet, thought
9260         
9261 2000-01-09  Maciej Stachowiak  <mjs@eazel.com>
9263         * components/websearch/.cvsignore: Added .deps, .libs,
9264         ntl-web-search
9266 2000-01-07  Andy Hertzfeld <andy@eazel.com>
9268         changed the way the index panel gets notified of location changes
9269         removed the index_panel_connect stuff
9270         instead, calls index_panel_set_uri directly from nautilus_window_change_location
9271         
9272         * src/ntl-index-panel.c, src/ntl-index-panel.h:
9273         restructured the code that populates the view with the info,
9274         added logic to use as large a font as possible for the title
9275         fixed bug involving the path ending with a slash.
9276         * src/ntl-window-msgs.c:
9277           added explicit call to index_panel_set_uri as mentioned above 
9278         * src/ntl-window.c
9279           removed call to index_panel_connect as mentioned above
9280         
9281 2000-01-07  John Sullivan  <sullivan@eazel.com>
9283         Added and deployed utility routine for presenting a
9284         window (in any current state) to user.
9286         * libnautilus/nautilus-gtk-extensions.h:
9287         * libnautilus/nautilus-gtk-extensions.c: New files
9288         (nautilus_gtk_window_present): New function, presents
9289         a window to user (opens it, brings it to front w/focus)
9290         regardless of whether it was showing, buried, hidden, or
9291         minimized.
9292         * libnautilus/Makefile.am: added these two new files. Also
9293         changed ".c" to ".h" for two self-check files in the HEADERS
9294         list (apparent typo).
9295         * src/nautilus-bookmarks-menu.c: (edit_bookmarks_cb):
9296         Replaced call to nautilus_bookmarks_window_present with
9297         call to nautilus_gtk_window_present.
9298         * src/nautilus-bookmarks-window.c:
9299         * src/nautilus-bookmarks-window.h:
9300         (nautilus_bookmarks_window_present): Deleted this function.
9301         * src/nautilus-bookmarks-window.c:
9302         (create-bookmarks-window): Now calls nautilus_bookmarks_
9303         window_restore_geometry just once here, instead of every
9304         time window was shown.
9305         * src/ntl-window.c: (nautilus_about_window_cb):
9306         Now it keeps around a single About window, instead of
9307         creating a new one each time (you could litter the screen
9308         with About windows before). Also removed some obsolete
9309         gtk_widget_set_sensitive calls.
9311 2000-01-07  John Sullivan  <sullivan@eazel.com>
9313         Bookmarks window position is now saved & restored within
9314         a session and across sessions. Some of this work can be
9315         turned into general-purpose utilities but I didn't do
9316         that yet (I will when we have a second need for it)
9318         * src/nautilus-bookmarklist.c:
9319         * src/nautilus-bookmarklist.h:
9320         (nautilus_bookmarklist_set_window_geometry):
9321         (nautilus_bookmarklist_get_window_geometry): New functions,
9322         take/return a string representing the window position.
9323         * src/nautilus-bookmarklist.c:
9324         (nautilus_bookmarklist_load_file):
9325         (nautilus_bookmarklist_save_file): read/write xml node for
9326         window geometry in addition to bookmarks. Also cleaned up
9327         a couple of leaked results from xmlGetProp and reformatted.
9328         (set_window_geometry_internal): New utility function.
9329         * src/nautilus-bookmarks-menu.c: (edit_bookmarks_cb): Moved
9330         window-displaying logic out of this routine and into new
9331         routine nautilus_bookmarks_window_present(), which is now
9332         called here.
9333         * src/nautilus-boomarks-menu.c:
9334         * src/nautilus-boomarks-menu.h:
9335         (nautilus_bookmarks_menu_exiting): New function, handles telling
9336         bookmarks window to save itself when application exits.
9337         * src/ntl-app.c: (nautilus_app_exiting): Now calls
9338         nautilus_bookmarks_menu_exiting.
9339         * src/nautilus.h: Now #includes "nautilus-bookmarks-menu.h"
9340         * src/nautilus-bookmarks-window.h:
9341         * src/nautilus-bookmarks-window.c:
9342         (nautilus_bookmarks_window_present): New function, handles
9343         presenting the bookmarks window on screen regardless of current state.
9344         (nautilus_bookmarks_window_save_geometry): New function, reads window
9345         position & size and passes them along to 
9346         nautilus_bookmarklist_set_window_geometry for safe-keeping.
9347         * src/nautilus-bookmarks-window.c:
9348         (nautilus_bookmarks_window_restore_geometry): New function, gets
9349         window geometry from bookmarklist and sets window size & position
9350         from it (after adjusting with some sanity checks)
9351         (create_bookmarks_window): Replaced set_default_size call with
9352         nautilus_bookmarks_window_restore_geometry call.
9353         
9354         
9356 2000-01-07  Elliot Lee  <sopwith@redhat.com>
9358         * src/ntl-window.c, src/ntl-index-panel.c: Fix warnings.
9360 2000-01-07  Andy Hertzfeld <andy@eazel.com>
9362         * src/ntl-index-panel.h, src/ntl-index-panel.c: new files for index panel class
9363         Initial bare-bones implementation of index panel still using notebook object instead of custom tabs
9365         * src/ntl-window.h, src/ntl-window.c:
9366         just use box instead of pane for nautilus window content,
9367         index_panel now responsible for the meta-views allocate and
9368         install index_panel instead of meta_notebook connect_signals calls
9369         index_panel so it can connect, too added myself as an author
9370         
9371         * src/Makefile.am:
9372         added index_panel class
9373         
9374 2000-01-06  Darin Adler  <darin@eazel.com>
9376         * libnautilus/Makefile.am,
9377         libnautilus/nautilus-lib-self-check-functions.c,
9378         libnautilus/nautilus-lib-self-check-functions.h,
9379         libnautilus/nautilus-self-checks.c,
9380         libnautilus/nautilus-self-checks.h, src/Makefile.am,
9381         src/nautilus-self-check-functions.c,
9382         src/nautilus-self-check-functions.h, src/nautilus-self-checks.c,
9383         src/nautilus-self-checks.h, src/ntl-main.c (main),
9384         src/file-manager/fm-directory.c,
9385         src/file-manager/fm-vfs-directory.c: Moved self-check framework
9386         into libnautilus. Added functions so each check will report if it
9387         fails instead of just aborting.
9389         * src/gdk-extensions.c, src/gdk-extensions.h
9390         (nautilus_gradient_new, nautilus_gradient_is_gradient,
9391         nautilus_gradient_get_start_color_spec,
9392         nautilus_gradient_get_end_color_spec,
9393         nautilus_gradient_is_horizontal,
9394         nautilus_gradient_set_left_color_spec,
9395         nautilus_gradient_set_top_color_spec,
9396         nautilus_gradient_set_right_color_spec,
9397         nautilus_gradient_set_bottom_color_spec): Added new functions to
9398         manage a string that specifies a color or gradient, and added
9399         tests for the new functions.
9401 2000-01-06  John Sullivan  <sullivan@eazel.com>
9403         * src/ntl-app.h: src/ntl-app.c: (nautilus_app_exiting):
9404         New function for doing app-wide cleanup. Moved call to
9405         nautilus_prefs_save in here.
9406         * src/ntl-app.c: (nautilus_app_destroy_window): Former
9407         home of call to nautilus_prefs_save.
9408         * src/ntl-main.c: (main): After event loop concludes,
9409         call nautilus_app_exiting.
9411 2000-01-06  Elliot Lee  <sopwith@redhat.com>
9413         * libnautilus/gnome-icon-container.c: Relayout when size changes.
9415 2000-01-06  Andy Hertzfeld  <andy@eazel.com>
9417         * ntl-window.c: made location bar draggable to be consistent with the others by removing DOCK_LOCKED
9418         flag
9419         
9420 2000-01-06  Elliot Lee  <sopwith@redhat.com>
9422         * libnautilus/gnome-icon-container.c: Eliminate gratuitous scroll bars.
9424         * src/ntl-window-msgs.c, components/help/hyperbola-filefmt.c, components/html/gnome-dialogs.c: Bug fixes.
9426 2000-01-06  John Sullivan  <sullivan@eazel.com>
9428         * src/ntl-prefs.c: added NULLs to array initializers to
9429         eliminate compiler warnings.
9431 2000-01-06  Elliot Lee  <sopwith@redhat.com>
9433         * src/ntl-prefs.c, src/ntl-uri-map.c: Implement preferences for
9434         which meta-views to always load with a page. Loading doesn't seem to quite work.
9436         * src/ntl-window.c, src/ntl-view.c: Try to fix a crash that
9437         happens when going to a new page, and a meta view is being
9438         destroyed in the process. Still crashes.
9440 2000-01-05  Maciej Stachowiak  <mjs@eazel.com>
9442         * src/ntl-uri-map.c (nautilus_navinfo_free): Fix warning.
9444 2000-01-05  Elliot Lee  <sopwith@redhat.com>
9446         * src/ntl-types.h, src/ntl-uri-map.[ch], src/ntl-window-msgs.c, src/ntl-window.[ch]:
9447           Add support for the location change state machine and related notifications,
9448           to allow much better error handling.
9449         * src/ntl-view.[ch]: Catch client failures, also allow for active sensing of client death.
9450         * src/file-manager/fm-directory-view.c: Send progress notifications.
9451         * components/html/ntl-web-browser.c: Send progress
9452         notifications. Try to fix crashes caused by ending an error stream
9453         twice.
9455         * src/file-manager/fm-icon-cache.c: Update for gdk-pixbuf changes.
9457 2000-01-05  John Sullivan  <sullivan@eazel.com>
9459         * src/nautilus-bookmarks-window.c: (create_bookmarks_window):
9460         Remove horizontal scroll bar from list via set_policy.
9462 2000-01-05  John Sullivan  <sullivan@eazel.com>
9464         * src/nautilus-bookmarks-menu.c: (nautilus_bookmarks_menu_fill):
9465         Stopped using GNOMEUIINFO_ITEM_DATA macro, because it doesn't work
9466         right (on some machines) when there's no pixmap for the item.
9468 2000-01-04  John Sullivan  <sullivan@eazel.com>
9470         * src/nautilus-bookmarks-menu.c: comment changes only
9472         * src/nautilus-bookmarks-window.c:
9473         (create_bookmarks_window): added padding to "Remove" button
9474         so it isn't so scrawny.
9475         (on_remove_button_clicked): Removed item from clist explicitly
9476         instead of relying on notification that bookmark list changed;
9477         this correctly moves the selection to the next item instead of
9478         jumping it back to the top of the list.
9480 2000-01-04  Darin Adler  <darin@eazel.com>
9482         A couple of quick fixes to make "make check" work again.
9483         
9484         * src/file-manager/fm-directory.c (fm_directory_initialize):
9485         src/file-manager/fm-vfs-directory.c (fm_vfs_directory_initialize):
9486         Use g_new0 instead of g_new for details structure to better
9487         mimic what gtk_object_new does.
9489         * src/file-manager/fm-directory.c (fm_directory_get):
9490         Added an assert to check that the hash table key is set up
9491         correctly. This was failing when John did a "make check".
9493         * src/file-manager/fm-vfs-directory.c (fm_vfs_directory_new):
9494         Set up the hash table key when creating the object. This
9495         was causing a failure in "make check".
9497 2000-01-04  John Sullivan  <sullivan@eazel.com>
9499         * src/nautilus-bookmarks-window.c (create_bookmarks_window):
9500         Replaced hardwired numbers with constants; specified a minimum
9501         size separate from default size and changed parameter to
9502         gtk_window_set_policy to prevent shrinking below minimum size.
9504 2000-01-04  John Sullivan  <sullivan@eazel.com>
9506         After talking with Sopwith and Darin, removed
9507         my changes from earlier today. The current framework
9508         handles bogus URIs better than I thought, though still
9509         with some known problems. I can't implement the bookmarks
9510         part until the problems are fixed. And the new functions
9511         don't seem to be required in any case.
9512         * libnautilus/nautilus-uri-utilities.c: removed file
9513         * libnautilus/nautilus-uri-utilities.h: removed file
9514         * libnautilus/Makefile.am: removed these two files
9515         from the build, and removed GnomeVFS
9516         * src/ntl-window.c: removed #include for nautilus-uri-utilitie.h.
9517         Sopwith had removed the call from (nautilus_window_goto_uri_cb)
9518         earlier (without a ChangeLog entry).
9520 2000-01-04  Darin Adler  <darin@eazel.com>
9522         * src/Makefile.am, src/check-nautilus,
9523         src/nautilus-self-check-functions.h, src/nautilus-self-checks.c,
9524         src/nautilus-self-checks.h, src/ntl-main.c (main): Added self
9525         checks to nautilus. The checks are invoked by "make check"
9526         (actually need to do "make install check" if you changed
9527         libnautilus) or by invoking the nautilus executable with "--check".
9528         Later, nautilus-self-checks.h may include various helpful
9529         functions for use by the self-checking code.
9531         * src/file-manager/Makefile.am, src/file-manager/fm-directory.c,
9532         src/file-manager/fm-directory.h,
9533         src/file-manager/fm-directory-protected.h,
9534         src/file-manager/fm-vfs-directory.c,
9535         src/file-manager/fm-vfs-directory.h: Started work on an abstract
9536         FMDirectory class that provides a model for what's viewed by the
9537         file manager. Also began work on the FMVFSDirectory concrete child
9538         class that implements this on top of VFS. It's not hooked up yet,
9539         and there's a lot that needs to be done before it's ready to use.
9541         * libnautilus/gdk-extensions.c, libnautilus/gdk-extensions.h:
9542         Renamed functions to use nautilus_ prefix instead of gdk_
9543         prefix. Added a tiny bit of self-check code.
9545         * libnautilus/nautilus-gtk-macros.h: Added some macros (that will
9546         no doubt be controversial) to do some basic GTK object
9547         boilerplate.
9549 2000-01-04  John Sullivan  <sullivan@eazel.com>
9551         Made location-entering field handle bogus URIs better
9552         (next: bookmarks)
9554         * libnautilus/nautilus-uri-utilities.c: new file
9555         * libnautilus/nautilus-uri-utilities.h: new file
9556         At this point there's just one uri utility function,
9557         nautilus_path_known_not_to_exist(), which is a quick
9558         check for a bogus URI. (It's not guaranteed to return
9559         TRUE for all bad URIs, just the ones it can tell quickly
9560         are bogus).
9561         * libnautilus/Makefile.am: added these two new files
9562         to the build, and linked with GnomeVFS (needed for new
9563         function)
9564         * src/ntl-window.c: (nautilus_window_goto_uri_cb):
9565         If typed path can quickly be rejected, puts an error
9566         message in the status bar and doesn't try to go there.
9568         * components/websearch/.cvsignore: added Makefile
9570 2000-01-03  Maciej Stachowiak  <mjs@eazel.com>
9572         * idl/nautilus.idl: Added stop_location_change method to NautilusView interface.
9573         * ntl-view-client.c, ntl-view-client.h (stop_location_change): New
9574         signal, triggered on receipt of stop_location_change request via
9575         CORBA.
9577         * ntl-view.c, ntl-view.h, ntl-view-private.h, ntl-view-nautilus.c,
9578         ntl-view-bonobo-control.c, ntl-view-bonobo-subdoc.c
9579         (nautilus_view_stop_location_change): Added this function; also
9580         added implementation to nautilus view type function table and
9581         NULL'd out for now for Bonobo control and subdoc view types (need
9582         to find out if loading is synchronous or asynchronous for those,
9583         and if there is a way to abort).
9585         * ntl-window.c: Stop loading for all views when Stop button is
9586         pressed.
9587         
9588         * ntl-window-msgs.c: Enable stop button when we start loading;
9589         enable Stop button when
9591         * src/file-manager/fm-directory-view.c: Call
9592         request_progress_change() when loading is done or an error is
9593         reached; implement handler for stop_location_change signal.
9594         
9595 2000-01-03  Maciej Stachowiak  <mjs@eazel.com>
9597         * src/ntl-prefs.c: Fix warnings.
9599         * src/ntl-view.c, src/ntl-view.h, src/ntl-view-frame-svr.c
9600         (nautilus_view_notify_location_change,
9601         nautilus_view_notify_selection_change, nautilus_view_load_state,
9602         nautilus_view_save_state, nautilus_view_show_properties): Made
9603         these functions public and removed the corresponding signals;
9604         these are operations you do to the NautilusView, not something it
9605         informs other parts of the program of.
9606         (request_location_change, request_selection_change,
9607         request_status_change, request_progress_change): New
9608         signals. These allow NautilusView to have less dependence on
9609         NautilusWindow.
9610         (nautilus_view_signals): Moved signal number table from view to
9611         this static variable.
9612         (nautilus_view_request_location_change,
9613         nautilus_view_request_selection_change,
9614         nautilus_view_request_status_change,
9615         nautilus_view_request_progress_change): Move to ntl-view.c and
9616         make them emit the proper signals in lieu of hardcoded handling.
9617         * src/ntl-window.c, src/ntl-window.h src/ntl-window-msgs.c,
9618         src/ntl-window-msgs.h, src/ntl-window-state.c
9619         (request_location_change, request_selection_change,
9620         request_status_change, request_progress_change): Removed these
9621         signals; they are operations you do on a NautilusWindow, not
9622         something it notifies you of, and any usefulness for inheritance
9623         purposes is purely speculative right now.
9624         (nautilus_window_connect_view, nautilus_window_disconnect_view):
9625         Use these new helper functions to connect callbacks to
9626         NautilusView's signals instead of expecting them to just get
9627         called.
9628         (nautilus_view_request_location_change,
9629         nautilus_view_request_selection_change,
9630         nautilus_view_request_status_change,
9631         nautilus_view_request_progress_change): Execute bodies of real_
9632         versions instead of emitting singals.
9633         (nautilus_view_real_request_location_change,
9634         nautilus_view_real_request_selection_change,
9635         nautilus_view_real_request_status_change,
9636         nautilus_view_real_request_progress_change): Removed these.
9637         Finally, always call nautilus_winodow_set_content_view or
9638         nautilus_window_add_meta_view before calling
9639         nautilus_view_load_client to make sure no signals are lost.
9640         
9641 2000-01-03  Elliot Lee  <sopwith@redhat.com>
9643         * components/websearch, configure.in: The ten minute version of kwebsearch.
9644         * components/html/ntl-web-browser.c: Handle forms (POST is untested and probably buggy).
9645         * src/ntl-uri-map.c: Check result of file_info retrieval. Load web search by default.
9646         * src/ntl-prefs.[ch]: First (lame) attempt at implementing application preferences.
9647         * src/ntl-app.c: Load prefs at startup
9649 2000-01-03  John Sullivan  <sullivan@eazel.com>
9651         Added underline-accelerators to Add Bookmark and
9652         Edit Bookmarks in Bookmarks menu. This was much
9653         more difficult than I expected.
9655         * src/nautilus-bookmarks-menu.c:
9656           (init): Removed all the guts of this function.
9657           (nautilus_bookmarks_menu_new): Now calls
9658           nautilus_bookmarks_menu_fill() on freshly-created menu.
9659           (nautilus_bookmarks_menu_fill): New function, takes over
9660           the chore of initially populating the Bookmarks menu.
9661           Uses GnomeUIInfo structs to set up Add Bookmarks and
9662           Edit Bookmarks so they'll have underline-accelerators.
9663           Also they now have tooltip strings (and I added a call
9664           to gnome_app_install_menu_hints() to make the tooltips work).
9666 2000-01-03  John Sullivan  <sullivan@eazel.com>
9668         Fixed memory leaks in bookmarks stuff
9670         * src/nautilus-bookmarklist.c: (nautilus_bookmarklist_delete_item_at):
9671           Destroy the bookmark when removing it from list.
9672         * src/nautilus-bookmarks-menu.c: 
9673           (nautilus_bookmarks_menu_repopulate):
9674           Store an index rather than a bookmark in the menu item, since the
9675           item will be destroyed if the menu is reordered.
9676           (bookmark_activated_cb): Find bookmark from the index stored in item.
9678 2000-01-03  John Sullivan  <sullivan@eazel.com>
9680         Started new file for file-related utilities in Nautilus.
9682         * libnautilus/nautilus-file-utilities.h : new file
9683         * libnautilus/nautilus-file-utilities.c : new file
9684         * libnautilus/Makefile.am : added these two new files to the build.
9686         * src/nautilus_bookmarklist.c:
9687           (nautilus_bookmarklist_get_file_path): Deployed
9688           nautilus_make_path() and nautilus_user_directory()
9690 2000-01-03  Darin Adler  <darin@eazel.com>
9692         * configure.in: Added "-Wall -Wno-unused" to list of warnings.
9693         It seems to me that at one point we got these from the gnome
9694         default warnings, but this seems to have stopped. There's no
9695         harm in repeating them in here and it fixes the problem for
9696         now, but I'd like to know what happened.
9697         * components/html/.cvsignore: Added some generated files.
9698         * components/html/gnome-dialogs.c: (glibwww_progress):
9699         Replaced an incorrect "%l" in a printf format string with
9700         the correct "%ld".
9701         * libnautilus/.cvsignore: Added some generated files.
9703 2000-01-03  John Sullivan  <sullivan@eazel.com>
9705         * src/nautilus_bookmarklist.c:
9706           (nautilus_bookmarklist_save_file): Took out unused local 
9707           variables. My compiler didn't notice these because -Wall
9708           isn't in our compile flags. Darin is fixing the compile flags.
9710 2000-01-03  Elliot Lee  <sopwith@redhat.com>
9712         * All files: Update copyright notices.
9714 1999-12-30  John Sullivan  <sullivan@eazel.com>
9716         * src/nautilus_bookmarklist.c: (nautilus_bookmarklist_get_file_path):
9717           Create directory that contains bookmarks file if it's not already
9718           there. Saving bookmarks would have failed (silently) for anyone
9719           who didn't already have a ~/.gnomad directory without this change.
9721 1999-12-30  John Sullivan  <sullivan@eazel.com>
9723         Made NautilusBookmark use gchar * instead of GString
9724         since it wasn't using any special GString features.
9726         * src/nautilus-bookmark.h: changed definition in struct
9727         * str/nautilus-bookmark.c:
9728           (nautilus_bookmark_destroy): changed g_string_free to g_free
9729           (init): eliminated g_string_new
9730           (nautilus_bookmark_get_name): replaced bookmark->uri->name
9731           with bookmark->name
9732           (nautilus_bookmark_get-uri): replaced bookmark->uri->str
9733           with bookmark->uri
9734           (nautilus_bookmark_new): changed initializers from
9735           GString style to gchar * style
9737         Save/restore bookmarks across sessions with XML file.
9739         * src/nautilus_bookmarklist.c:
9740           (append_bookmark_node): new foreach static function
9741           (destroy_bookmark): new foreach static function
9742           (nautilus_bookmarklist_get_file_path): new static function
9743           (nautilus_bookmarklist_load_file): new static function
9744           (nautilus_bookmarklist_save_file): new static function
9745           (init): renamed to nautilus_bookmark_init
9746           (class_init): renamed to nautilus_bookmark_class_init
9747           (nautilus_bookmarklist_contents_changed): now calls
9748           nautilus_bookmarklist_save_file
9749           (nautilus_bookmarklist_init): now calls
9750           nautilus_bookmarklist_load_file
9752 1999-12-30  John Sullivan  <sullivan@eazel.com>
9754         Linked in GNOME-XML library, since I'll need it for bookmarks.
9756         * configure.in: defined XML-related macros (copied from gconf)
9757         * src/Makefile.am: included $(XML_CFLAGS) and $(XML_LIBS)
9759 1999-12-30  John Sullivan  <sullivan@eazel.com>
9761         The bookmark-editing window is now functional, though simple.
9762         It allows editing names & uris, reordering bookmarks via
9763         dragging in the list, and removing bookmarks. Coming next:
9764         bookmarks persisting across sessions.
9766         * src/nautilus-bookmarks-window.h: New file.
9767         * src/nautilus-bookmarks-window.c: New file.
9768         * src/Makefile.am: added nautilus-bookmarks-window.[ch]
9769         * src/nautilus-bookmarklist.h, nautilus-bookmarklist.c:
9770           (nautilus_bookmarklist_delete_item_at): New function
9771           (nautilus_bookmarklist_insert_item): New function
9772         * src/nautilus-bookmarks-menu.c: (init): Removed
9773           insensitization of Edit Bookmarks item.
9775         Added parameter names to prototypes where they were missing
9777         * src/nautilus-bookmark.h
9778         * src/nautilus-bookmarklist.h
9779         * src/nautilus-bookmarks-menu.h
9781         Fixed bug where activating bookmarks failed in any but the
9782         first window
9784         * src/nautilus-bookmarks-menu.c 
9785           (bookmark_activated_cb):
9786           (nautilus_bookmarks_menu_repopulate):
9787           Changed bookmark menu items to keep a pointer to their
9788           menu, rather than the menu's window, because sometimes
9789           the menu's window isn't set when the menu item is created.
9791 1999-12-29  John Sullivan  <sullivan@eazel.com>
9793         * src/nautilus-bookmarklist.c: 
9794           (nautilus_bookmarklist_contains):
9795           changed two g_return_if_fail to g_return_val_if_fail. Eek! I
9796           accidentally checked this in yesterday without compiling. I
9797           should be tarred and feathered.
9798           (nautilus_bookmarklist_append): Now calls new nautilus_bookmark_copy
9799         * src/nautilus-bookmark.c:
9800           (nautilus_bookmark_copy): New method
9801         * src/nautilus-bookmark.h:
9802           (nautilus_bookmark_copy): New method
9804 1999-12-28  John Sullivan  <sullivan@eazel.com>
9806         * src/nautilus-bookmark.c: 
9807         * src/nautilus-bookmarklist.c:
9808         * src/nautilus-bookmarks-menu.c:
9810           Removed unnecessary g_return_if_fail (obj != NULL) calls
9811           since the g_return_if_fail (NAUTILUS_IS_WHATEVER (obj)) call
9812           also handles the NULL case. Also added some more calls of
9813           the latter type.
9815 1999-12-28  John Sullivan  <sullivan@eazel.com>
9817         * src/nautilus-bookmark.c, src/nautilus-bookmark.h:                     
9818           (nautilus_bookmark_compare_with): 
9819           new function, compares two bookmarks for equivalence, used by:
9820         * src/nautilus-bookmarklist.c, src/nautilus-bookmarklist.h: 
9821           (nautilus_bookmarklist_contains): 
9822           new function, checks whether a given bookmark is already in the 
9823           list, used by:
9824         * src/nautilus-bookmarks-menu.c, src/nautilus-bookmarks-menu.h:
9825           (add_bookmark_cb): now silently refuses to add another bookmark
9826           for the current location if there's one already in the list.
9827           (init): now uses connect_signal_while_alive to avoid nastiness
9828           when trying to add a bookmark after one or more windows were closed.
9829         * src/ntl-window.c: (file_menu_new_window_cb): Now calls
9830           nautilus_app_create_window() instead of creating the new window
9831           in line, so that the window count gets properly updated and closing
9832           windows works correctly.
9833           
9834 1999-12-28  John Sullivan  <sullivan@eazel.com>
9836         * src/ntl-view.c: (nautilus_view_load_client):
9837           Undid the previous change. It turned out I
9838           needed to rebuild the latest ORBit and then
9839           the latest gnome-libs. I had built them in
9840           the wrong order before.
9841           
9842 1999-12-28  John Sullivan  <sullivan@eazel.com>
9844         * src/ntl-view.c: (nautilus_view_load_client): cast
9845           a const CORBA_char * to a CORBA_char * in call to
9846           GNOME_Unknown_query_interface to fix the build.
9847           Darin thinks this is a mistake in the API and is
9848           investigating fixing the API.
9850 1999-12-22  Elliot Lee  <sopwith@redhat.com>
9852         * src/ntl-uri-map.[ch]: Add initialization function. Implement scheme mapping.
9854         * components/history/ntl-history-view.c: Testbed for UIHandler usage.
9855         * src/ntl-*view*.c: Better error checking, support UIHandler usage.
9856         * src/ntl-window-msgs.c: Better error checking.
9857         * src/ntl-window.c: Better error checking, plus move menu creation so that UIHandler usage is easier.
9859 1999-12-21  Elliot Lee  <sopwith@redhat.com>
9861         * idl/nautilus.idl, libnautilus/ntl-view-client.[ch], src/ntl-window*.[ch], src/ntl-view-frame-svr.c:
9862           Add request_progress_change notification
9864         * src/ntl-view-*: Fix/finish various mjs changes: Do the component type abstraction properly,
9865         lose ntl-view-frame-svr.h, add ntl-view-private.h, add various component type implementations.
9867         * src/ntl-view-frame-svr.h: Add 'extern' so everyone doesn't get their
9868           own vepv variable.
9870 1999-12-20  Maciej Stachowiak  <mjs@eazel.com>
9872         * src/ntl-view.h: Remove request_* calls from public API (they are
9873         just an implementation detail of the fact that NautilusView
9874         implements a Nautilus:ViewFrame CORBA server - the nautilus app
9875         should not need to call these).
9877         * src/ntl-view.c: Split all the three way conditional stuff out so
9878         there is a separate function for each branch of the condition. Not
9879         a big win yet, but will provide opportunities for more
9880         refactoring.
9882         * src/ntl-view-frame-svr.c, ntl-view-frame-svr.h: Move
9883         implementation of Nautilus:ViewFrame CORBA server here as much as
9884         possible.
9885         * src/ntl-view.c: Remove it from here.
9886         * src/nautilus.h: #include ntl-view-frame-svr.h
9887         * src/Makefile.am: add ntl-view-frame-svr.[ch] to build.
9888                 
9889         * src/ntl-window.c: Add myself to About box (pout).
9891         * components/html/ntl-web-browser.c: Fix warnings.      
9893 1999-12-20  Elliot Lee  <sopwith@redhat.com>
9895         * configure.in, components/Makefile.am: Add HTML component to build.
9896         * components/help/hyperbola-main.c, components/history/ntl-history-view.c: Make process die when
9897           all objects have been destroyed.
9898         * components/history/ntl-history-view.c: Bug fixes.
9899         * components/html/*.[ch]: Copy glibwww over, write new NautilusViewClient for HTML browsing.
9900         * src/ntl-uri-map.c: Cleanup, and use ntl_web_browser as default HTML display engine.
9901         * src/ntl-view.c: Try to handle Bonobo views for data display.
9903 1999-12-20  John Sullivan  <sullivan@eazel.com>
9904         * src/nautilus-bookmark.h,c: new files
9905         * src/nautilus-bookmarklist.h,c: new files
9906         * src/nautilus-bookmarks-menu.h,c: new files
9907         * src/Makefile.am: added these six new files to nautilus_SOURCES
9908         * src/ntl-window.c: now #includes nautilus-bookmarks-menu.h
9909           (bookmarks_menu_info[]): removed all items except GNOMEUIINFO_END;
9910           subtree is added dynamically later.
9911           (nautilus-window-constructed): insert bookmarks menu
9912           (nautilus-window-constructed): add padding to status bar so text
9913           isn't jammed against frame.
9915         The bookmark menu is now limping along. The Add Bookmark item works,
9916         and the items that get added do the right thing. Edit Bookmarks is
9917         still insensitive, so there's no way to remove items. Except by
9918         quitting, because they aren't yet being saved/restored across sessions.
9919         
9920 1999-12-20  Havoc Pennington  <hp@redhat.com>
9922         * src/file-manager/fm-icon-cache.c: Add inline RGB data for
9923         default icon. 
9924         (fm_icon_cache_load_icon): only
9925         ref the pixbuf if it exists
9926         (fm_icon_cache_new): add a new fallback special icon set
9927         (fm_icon_cache_load_icon): load fallback if the icon name is ""
9929 1999-12-20  Havoc Pennington  <hp@redhat.com>
9931         * libnautilus/gnome-icon-container.c (set_kbd_current): return if 
9932         the icon being set is NULL. This may be fixing a symptom rather
9933         than a problem.
9935 1999-12-20  Elliot Lee  <sopwith@redhat.com>
9937         * src/ntl-*.[ch]: Support multiple view types (Nautilus/View, GNOME/Control, GNOME/Embeddable)
9938         * src/ntl-window.[ch]: Add nautilus_window_get_uih()
9939         * idl/*.idl: Reindent.
9941 1999-12-19  Havoc Pennington  <hp@pobox.com>
9943         * src/file-manager/desktop-window.c (desktop_window_realize): turn
9944         on window decorations for debugging
9945         (desktop_window_init): debug comment-out the no-resize policy
9947         * src/file-manager/desktop-layout.c (desktop_layout_arrange):
9948         fool with layout routines
9949         
9950         * src/file-manager/desktop-canvas.c
9951         (desktop_canvas_size_allocate): debugging border to detect layout screwups
9953         * src/file-manager/desktop-item.c (icon_realize): set the canvas
9954         item, oops.
9956 1999-12-19  Havoc Pennington  <hp@pobox.com>
9958         * src/file-manager/desktop-layout.c: don't do an arrangement
9959         on every change
9961         * src/file-manager/desktop-canvas.c
9962         (desktop_canvas_load_desktop_icons): connect to finished_load and
9963         arrange the icons when we get it. This is a temporary hack,
9964         because the DesktopLayout engine isn't progressive yet.
9966         * src/file-manager/fm-directory-list.c
9967         (fm_directory_list_class_init): add a finished_load signal
9969         * src/file-manager/desktop-window.c (desktop_window_init): for
9970         now, don't fill the whole screen so we can see gdb.
9972         * src/file-manager/desktop-item.c: Move user data accessors into
9973         the .c file, these are private. 
9975 1999-12-17  Havoc Pennington  <hp@redhat.com>
9977         * src/file-manager/desktop-item.h: New module, for items 
9978         on the desktop
9979         
9980         * src/file-manager/fm-directory-view.c: Change to use
9981         get_current_icon_cache() (it wasn't ever freeing the icon cache anyway)
9983         * src/file-manager/fm-icon-cache.c (fm_get_current_icon_cache):
9984         function to get a global icon cache, we will share this throughout 
9985         the program.
9987 1999-12-19  Havoc Pennington  <hp@pobox.com>
9989         * src/file-manager/desktop-canvas.c
9990         (desktop_canvas_load_desktop_icons): new function, loads icons 
9991         from a given directory - don't get too excited, it doesn't yet
9992         _display_ any icons!
9994         * src/file-manager/desktop-canvas.h: Add directory list field.
9996         * src/file-manager/Makefile.am (gnome_desktop_SOURCES): Add
9997         fm-directory-list.[hc]
9998         (libntl_file_manager_la_SOURCES): add fm_directory_list.[hc]
10000         * src/file-manager/fm-directory-list.h, fm-directory-list.c:
10001         New files, the non-GUI portion of a directory listing. Handles
10002         loading the dir listing and the icons.
10004 1999-12-17  Maciej Stachowiak  <mjs@eazel.com>
10006         * src/ntl-window.c, src/ntl-window-msgs.c: Added up, reload, home,
10007         stop toolbar buttons. Stop is not implemented yet. Up needs more
10008         thought with respect to various protocols.
10009         
10010         * src/ntl-window.c, src/ntl-window.h: Added calls to
10011         allow/disallow some of the toolbar operations.
10013 1999-12-17  Havoc Pennington  <hp@redhat.com>
10015         * src/file-manager/fm-directory-view.c: Change to use
10016         get_current_icon_cache() (it wasn't ever freeing the icon cache anyway)
10018         * src/file-manager/fm-icon-cache.c (fm_get_current_icon_cache):
10019         function to get a global icon cache, we will share this throughout 
10020         the program.
10022 1999-12-17  Havoc Pennington  <hp@redhat.com>
10024         * src/ntl-window.c (nautilus_window_realize): set the mini icon.
10025         (nautilus_window_class_init): init parent_class and install
10026         realize method
10028         * src/ntl-miniicon.c: new files, to set mini icon
10030 1999-12-16  Elliot Lee  <sopwith@redhat.com>
10031         * libnautilus/{gdk-extensions.c,gnome-icon-container.c}: Fix warnings
10032         * libnautilus/gnome-icon-container.c: Try (unsuccessfully) to get
10033           proper icon reflow by calling icon_grid_resize() instead of
10034           icon_grid_set_visible_width(), in size_allocate().
10035         * src/*.*: Add ntl-app.[ch].
10036         * src/file-manager/desktop-*.c: Fix warnings.
10037         * src/file-manager/fm-directory-view.c: Remove incorrect warning,
10038           allow turning off use of icon_layout altogether.
10039         
10040 1999-12-16  John Sullivan  <sullivan@eazel.com>
10042         * src/ntl-window.c:
10043         * src/ntl-main.c:
10044         * src/file-manager/fm-directory-view.c:
10045         Changed evil // comments to /* */. Sorry about that!
10047         * src/ntl-window.c: added insensitive rudimentary Bookmark menu
10049 1999-12-16  Havoc Pennington  <hp@redhat.com>
10051         * src/ntl-window-state.c (nautilus_window_save_state): lookup
10052         signum before it's first used.
10053         
10054         * src/file-manager/desktop-layout.c: new layout module, not yet
10055         done
10057         * src/file-manager/desktop-canvas.c (desktop_canvas_init): Create
10058         the right-click menu.
10060         * src/file-manager/desktop-menu.c (desktop_menu_new): New module
10061         to stick the right-click menu code in
10063 1999-12-16  Maciej Stachowiak  <mjs@eazel.com>
10065         * src/ntl-window.c: Put meta-views on the right.
10067         * src/ntl-window.c, src/ntl-main.c, src/ntl-window.h,
10068         src/ntl-window-msgs.c, src/ntl-window-state.c: Enabled multiple
10069         main windows and new window menu entry. In the process replaced
10070         url with uri where appropriate and added
10071         nautilus_window_get_requested_uri accessor.
10073 1999-12-16  Darin Adler  <darin@eazel.com>
10075         * libnautilus/.cvsignore: Ignore all *.lo instead of listing each.
10076         * libnautilus/Makefile.am: Added gdk-extensions.c and $(WERROR).
10077         * libnautilus/gdk-extensions.[ch]: Added functions for filling with a
10078         gradient. Currently they are named gdk_fill_rectangle_with_gradient
10079         and gdk_interpolate_color, but perhaps the gdk_ prefix should be
10080         replaced with another one. These functions are not yet tested, but they
10081         compile and I want to get them in here before I leave for vacation.
10083         * src/ntl-uri-map.c: (nautilus_navinfo_new): Some null checks in
10084         the "click on an item" hack. This was a halfhearted attempt to get
10085         the program to not segfault when you open icons.
10086         * src/ntl-window-msgs.c: (nautilus_window_load_content_view):
10087         Some g_return_if_fail in here. I'll add a ton more at some point.
10088         These were part of the halfhearted attempt to get the program to
10089         not segfault when you open icons.
10091         * src/file-manager/.cvsignore: Igore all *.lo instead of listing each.
10093 1999-12-16  Elliot Lee  <sopwith@redhat.com>
10095         * components/history/ntl-history-view.c: Now works.
10096         * src/ntl-uri-map.c: Duplicate the URI being requested, since we
10097         don't know what the lifetime of the original value will be.
10098         * src/ntl-window.c: Use the paned instead of hbox, use create_menus_with_data instead.
10099         * src/file-manager: Misc warning fixes.
10100         * src/gtkscrollframe.c: Try to get rid of scrollbar chopping.
10102 1999-12-16  John Sullivan  <sullivan@eazel.com>
10104         * src/ntl-window.c (file_menu_new_window_cb):
10105         New, currently empty callback.
10107         * src/ntl-window.c (file_menu_info[]):
10108         Added New Window item.
10109         
10110         * src/ntl-window.c (edit_menu_info[]):
10111         Added standard menu items, all unimplemented as of now.
10112         
10113         * src/ntl-window.c (help_menu_info[]):
10114         Added About item, unimplemented as of now.
10116         * src/ntl-window.c (main_menu[]):
10117         Now includes edit and help menus.
10118         
10119         * src/ntl-window.c (nautilus_window_constructed):
10120         Changed the way the toolbar is created, to fix bug
10121         where Back failed because data parameter was NULL.
10122         Also desensitized all the new unimplemented menu items.
10124 1999-12-16  Maciej Stachowiak  <mjs@eazel.com>
10126         * src/file-manager/gnome-desktop.c (main): Quiet some warnings.
10128 1999-12-16  Havoc Pennington  <hp@redhat.com>
10130         * src/file-manager/gnome-desktop.c (main): warning fixes
10132         * src/file-manager/desktop-canvas.c
10133         (desktop_canvas_update_background): start actually honoring
10134         background settings.
10136         * src/file-manager/fm-icon-cache.c: add copyright and Emacs magic.
10138         * src/file-manager/fm-icon-cache.h (fm_icon_cache_get_icon): Run
10139         egtk-format-protos on these prototypes, add copyright and Emacs magic
10141 1999-12-16  Havoc Pennington  <hp@redhat.com>
10143         * src/file-manager/desktop-canvas.h: Added API for controlling the 
10144         background, so we can connect that to the IDL interface.
10146         * src/file-manager/desktop-canvas.h: New file
10147         
10148         * src/file-manager/desktop-window.h: tweaks
10149         
10150         * idl/gnome-desktop.idl: Change BackgroundInfo to not be a union.
10152 1999-12-16  John Sullivan  <sullivan@eazel.com>
10154         * src/file-manager/fm-directory-view.c (directory_load_cb): 
10155         changed assert to warning
10157 1999-12-16  Elliot Lee  <sopwith@redhat.com>
10159         * components/help/hyperbola-nav-tree.c: Translate strings.
10161         * components/history/ntl-history-view.c: Bug fixes, use API
10162         function for setting meta-view label.
10164         * libnautilus/ntl-meta-view-client.[ch]:
10165         s/meta_view_set_label/meta_view_client_set_label/
10167         * src/ntl-uri-map.c: Use history view instead of help view as the
10168         default meta view for now.
10170         * src/ntl-window.c: As per the comment that was removed from
10171         ntl-window.c, gnome_app_install_menu_hints() needs to be called
10172         after_ statusbar creation
10174         * src/file-manager/fm-directory-view.c: Add more debugging assertions
10175         and messages.
10177 1999-12-15  John Sullivan  <sullivan@eazel.com>
10179         * src/ntl-window.c: (nautilus_window_constructed): Added beginnings
10180         of a menu bar, and reorganized toolbar a little. There's a rudimentary
10181         File menu now. The View As option menu moved down to the location bar
10182         line. This is by no means a complete or final organization, but it's
10183         a start.
10184         * (file_menu_close_cb): new callback for File/Close menu item
10185         * (file_menu_exit_cb): new callback for File/Quit menu item
10186         * file_menu_info[]: new GNOMEUIINFO struct for File menu
10187         * toolbar_info[]: new GNOMEUIINFO struct for toolbar
10189 1999-12-15  Elliot Lee  <sopwith@redhat.com>
10191         * Warning fixes throughout.
10192         * Use $(WERROR) in Makefiles to get -Werror.
10194 1999-12-15  Darin Adler  <darin@eazel.com>
10196         * components/help/.cvsignore: Ignore more generated files.
10197         * components/help/hyperbols-filefmt.c: Fix warnings.
10198         * components/help/hyperbols-main.c: Fix warnings.
10199         * components/help/hyperbols-nav-tree.c: Fix warnings.
10201 1999-12-15  Elliot Lee  <sopwith@redhat.com>
10203         * components/Makefile.am: Turn on compilation of hyperbola component.
10204         * components/help/*: Compile and run.
10205         * libnautilus/ntl-meta-view-client.c: Create & set the property bag if it doesn't exist.
10206         * src/ntl-uri-map.c: Load the hyperbola nav tree component as a test meta view.
10207         * src/ntl-view.c: Fill in NULL fields with empty strings, so that ORBit doesn't segfault.
10208         * src/ntl-window-msgs.c: When creating new meta views, they should
10209         be meta views and not content views (cut & paste error).
10210         * src/file-manager/fm-directory-view.c: Don't redisplay every time a new entry comes in.
10212 1999-12-15  Darin Adler  <darin@eazel.com>
10214         * configure.in: Turned "-Wshadow" and "-Wundef" off for now, since they
10215         fire in some existing code.
10216         * gnome-icon-container.c: (handle_icon_button_press): Null out the drag
10217         variables before sending the activate signal. This makes activating an
10218         icon with a double-click work without crashing.
10219         * ntl-main.c: (main): Make critical and warning messages fatal if
10220         NAUTILUS_DEBUG is set in the environment. Make sure you have a new
10221         gnome-vfs that doesn't use g_warning for status messages.
10222         * ntl-window-msgs.c: (nautilus_window_change_location_internal):
10223         Made the history store away the current position as the new "previous"
10224         instead of storing away the new position. This makes the forward and
10225         back buttons work better.
10226         * ntl-window.c: (nautilus_window_back, nautilus_window_fwd):
10227         Had to make a corresponding change here after the change to the
10228         history mechanism.
10229         * fm-directory-view.c: (display_selection_info): Some fixes to the
10230         selection info display: "file"/"files" was backwards, text said "in"
10231         before the file size, and the display was not cleared when the
10232         selection was made empty. I still see problems where the selection
10233         info gets cleared when the window is lowered and then raised.
10234          
10235 1999-12-15  Andy Hertzfeld <andy@eazel.com>
10237         * my first change: changed ntl-window-state.c
10238         (nautilus_window_set_initial_state): changed initial path
10239         to be the user's home directory, getting rid of confusing "localhost"
10240          
10241 1999-12-15  Elliot Lee  <sopwith@redhat.com>
10243         * configure.in: Add --enable-more-warnings and --enable-fatal-warnings switches.
10244         * src/ntl-uri-map.c: Add comment about functionality-in-waiting. 
10246 1999-12-15  Darin Adler  <darin@eazel.com>
10248         * libnautilus/gtkscrollframe.c (gtk_scroll_frame_size_allocate):
10249         Rolled out my change. I was confused. Elliot had this fixed
10250         already but I forgot to "make install".
10252 1999-12-15  Darin Adler  <darin@eazel.com>
10254         * libnautilus/gtkscrollframe.c (gtk_scroll_frame_size_allocate):
10255         Fixed overflow problem caused by gint16 local variable.
10257 1999-12-15  Darin Adler  <darin@eazel.com>
10259         * src/ntl-window.c (nautilus_window_constructed):
10260         Fixed signal handler to point to nautilus_window_goto_url_cb
10261         instead of nautilus_window_goto_url. This was causing a bad
10262         cast when a new URL was typed.
10264 1999-12-15  Darin Adler  <darin@eazel.com>
10266         * src/ntl-uri-map.c (nautilus_navinfo_new): Changed back to
10267         const gchar*. To compile, you need to install the latest
10268         gnome-vfs.
10270 1999-12-15  Elliot Lee  <sopwith@redhat.com>
10272         * libnautilus/gtkscrollframe.c: Fix size_allocate.
10274 1999-12-14  Maciej Stachowiak  <mjs@eazel.com>
10276         * src/ntl-uri-map.c (nautilus_navinfo_new): a const char* can't be
10277         passed where a gchar* is expected.
10279 1999-12-14  Darin Adler  <darin@eazel.com>
10281         * configure.in: Turned on more warnings, including -Werror.
10282           I found one or two real bugs, and made some minor changes
10283           to quiet the compiler so I could turn on some useful warnings
10284           that triggered on the existing code.
10285         
10286         * src/file-manager/dfos-xfer.c: (handle_xfer_vfs_error):
10287           Fixed a place where it was calling the gnome error(), but using
10288           the parameters from the old gnome-fm error() function.
10290         * libnautilus/ntl-meta-view-client.c:
10291           (nautilus_meta_view_set_label): Fixed a place where we
10292           were passing in string literals to code that will free them.
10293           We need to call g_strdup before passing them to gnome_property_bag_add.
10295         * libnautilus/gnome-icon-container.c: Fixed a warning.
10296         * libnautilus/gtkscrollframe.c: Fixed a warning.
10297         * libnautilus/ntl-content-view-client.c: Fixed a warning.
10298         * libnautilus/ntl-view-client.c: Fixed a warning.
10299         * libnautilus/ntl-content-view.c: Fixed a warning.
10300         * src/ntl-main.c: Fixed a warning.
10301         * src/ntl-meta-view.c: Fixed a warning.
10302         * src/ntl-types.h: Fixed a warning.
10303         * src/ntl-view.c: Fixed a warning.
10304         * src/ntl-window.c: Fixed a warning.
10305         * src/file-manager/dfos-xfer-progress-dialog.c: Fixed a warning.
10306         * src/file-manager/fm-icon-cache.c: Fixed a warning.
10308 1999-12-14  Elliot Lee  <sopwith@redhat.com>
10310         * src/*.c: Restructure the whole NautilusWindow code for sanity's sake.
10311         * src/ntl-uri-map.[ch]: Instead of just passing in various pieces of information about the old URL,
10312           pass in the Nautilus_NavigationInfo that has to be kept around anyways.
10313         * idl/nautilus.idl: Allow a selection to be multiple URI's.
10315 1999-12-14  Darin Adler  <darin@eazel.com>
10317         * src/ntl-window.c: (nautilus-window-constructed): Forward-button signal
10318         was connected with NULL parameter instead of window. Fixed that so it
10319         has a chance of working.
10321         * .cvsignore: Ignore more generated files.
10322         * components/.cvsignore: Ignore more generated files.
10323         * help/.cvsignore: Ignore more generated files.
10324         * history/.cvsignore: Ignore more generated files.
10325         * icons/.cvsignore: Ignore more generated files.
10326         * idl/.cvsignore: Ignore more generated files.
10327         * libnautilus/.cvsignore: Ignore more generated files.
10328         * src/.cvsignore: Ignore more generated files.
10329         * src/file-manager/.cvsignore: Ignore more generated files.
10331 1999-12-14  John Sullivan  <sullivan@eazel.com>
10333         * src/ntl-window.c: (nautilus-window-constructed): Reordered option menu
10334         creation code to fix bug where it wasn't sizing itself properly. Changed
10335         label of placeholder item and desensitized it to make it more obvious that
10336         it's a non-working placeholder.
10338 1999-12-14  Elliot Lee  <sopwith@redhat.com>
10340         * configure.in, Makefile.am, icons/: Add icons
10342         * src/file-manager/fm-directory-view.c: Everything goes inside the scroll-frame, not the view itself.
10344 1999-12-13  Elliot Lee  <sopwith@redhat.com>
10346         * libnautils/g*.[ch]: Switch from imlib to pixbuf.
10347         * src/file-manager: Import from gnome-fm.
10349         * idl/nautilus.idl: Add a 'main_window' attribute on a ViewFrame, so that views can talk to the main window.
10351 1999-12-10  Elliot Lee  <sopwith@redhat.com>
10353         * libnautilus/ntl-meta-view.[ch]: Add a convenience function for
10354         setting the label.
10356         * Throughout: Rename the meta view "description" property to "label",
10357         which more accurately describes its use.
10359         * components/help: Start turning hyperbola into component.
10361 1999-12-09  Elliot Lee  <sopwith@redhat.com>
10363         * Start migration from gnome-fm.
10365 src/explorer-location-bar.[ch]:
10366         Copy over from gnome-fm, change signal to include new URI.
10367 src/ntl-window.c:
10368         Make NautilusWindow use it.