* libnautilus-adapter/nautilus-adapter-factory.idl: New IDL
interface for the special adapter component that will be used to
wrap ordinary Bonobo components to look like Nautilus::Views as
part of the solution to bugzilla.eazel.com #1994.
* libnautilus-adapter/Makefile.am: Build a library containing the
stubs and sekeletons.
* libnautilus/nautilus-view-component.idl: Some changes so this
IDL file can be included in others safely.
* libnautilus/Makefile.am: Made necessary build adjustments for
the above.
* configure.in, Makefile.am: add libnautilus-adapter directory to
build.
of UI handlers in the future.
The check will fire unless you get new Bonobo, since I just fixed
a UI handler leak bug in Bonobo.
* src/nautilus-window.c: (nautilus_window_real_set_content_view):
Added code to check for a still-merged Open menu item in the file
menu. This will catch leaks of UI handlers fairly quickly, instead
of the traditional way we discover them, after long debugging
sessions.
* components/history/nautilus-history-view.c:
(history_view_frame_call_end):
* libnautilus-extensions/nautilus-undo-manager.c:
(release_transaction), (nautilus_undo_manager_undo):
* libnautilus/nautilus-clipboard.c: (add_menu_items_callback):
* libnautilus/nautilus-undo.c: (undo_manager_unref_cover),
(nautilus_undo_attach_undo_manager):
* libnautilus/nautilus-view.c: (view_frame_call_end):
* src/file-manager/fm-directory-view.c:
(bonobo_control_activate_callback):
* src/nautilus-application.c: (nautilus_application_startup):
* src/nautilus-view-frame-bonobo-embeddable.c:
(bonobo_subdoc_load_location):
* src/nautilus-view-frame-nautilus-view.c:
(nautilus_view_try_load_client):
* src/nautilus-view-frame.c: (nautilus_view_frame_destroy_client),
(nautilus_view_frame_load_client):
Use bonobo_object_dup_ref and bonobo_object_release_unref to
simplify some code.
* components/loser/content/nautilus-content-loser.c:
(loser_merge_bonobo_items_callback):
* components/loser/sidebar/nautilus-sidebar-loser.c:
(loser_merge_bonobo_items_callback):
* components/mozilla/nautilus-mozilla-content-view.c:
(mozilla_merge_bonobo_items_callback):
* components/sample/nautilus-sample-content-view.c:
(sample_merge_bonobo_items_callback):
Add missing unref to avoid leaking a UI handler.
* components/services/time/nautilus-view/trilobite-eazel-time-view.c:
Remove a bunch of code inside #if 0, which had out of date copies
of the sample code. I decided this was better than trying to fix
it.
permanent "View" menu that contains Refresh and zooming
items and the icon view merges its stuff in there. The
icon view now has a "Clean Up by Name" item to do a
one-shot sort of icons in manual layout mode.
* libnautilus-extensions/nautilus-icon-container.c:
(key_press_event):
* libnautilus-extensions/nautilus-list.c:
(nautilus_list_key_press):
Don't use any control-key combinations for type-select
(this was blocking Control-= and others)
* libnautilus/nautilus-bonobo-ui.h: Added #defines for View menu
and placeholders in it.
* src/file-manager/fm-desktop-icon-view.c:
(fm_desktop_icon_view_initialize_class), (bump_zoom_level),
(zoom_to_level), (restore_default_zoom_level), (can_zoom_in),
(can_zoom_out): Override all zoom-related functions to do
nothing, so you can't use keyboard equivalents or other trickery
to zoom on the desktop.
* src/file-manager/fm-icon-view.h:
Define clean_up function pointer
* src/file-manager/fm-icon-view.c:
(set_sort_criterion): Just moved this function.
(fm_icon_view_clean_up): New function, calls virtual function.
(fm_icon_view_real_clean_up): New function, sorts one time by name.
(clean_up_callback): New function, calls fm_icon_view_clean_up
(compute_menu_item_info): Add clean up case
(update_layout_menus): Update sensitivity of Clean Up item
(get_next_position): New helper function to get a position for
a Bonobo menu item based on the one you want to be after. Works
around Bonobo bug where the last item's position is reported as -1.
(fm_icon_view_merge_menus): Deploy get_next_position; get rid of
Layout menu and redo items in View menu to match design in bug 1653.
(fm_icon_view_initialize_class): Wire up clean_up function pointer
* src/nautilus-window-menus.c:
(view_menu_reload_callback): Renamed from go_menu_reload_callback
(view_menu_zoom_in_callback), (view_menu_zoom_out_callback),
(view_menu_zoom_normal_callback): New functions, used by zooming menu
items.
(nautilus_window_initialize_menus): Add View menu; move Reload to
View menu and rename it Refresh; add zooming menu items.
* src/nautilus-window-private.h: Add #defines for zooming menu item paths;
add prototypes for nautilus_window_zoom_xxx functions.
* src/nautilus-window.c:
(nautilus_window_zoom_in),
(nautilus_window_zoom_to_level), (nautilus_window_zoom_out),
(nautilus_window_zoom_to_fit): Renamed these to better match new
shared-between-files status, and reordered the parameters.
(nautilus_window_constructed): use gtk_signal_connect_object with
nautilus_window_zoom functions since their parameters have flipped.
(nautilus_window_zoom_level_changed_callback): Set sensitivity of
zooming menu items appropriately.
* src/nautilus-window-manage-views.c:
(nautilus_window_load_content_view): Desensitize the zoom menu items
when we hide the zoom control.
* src/file-manager/fm-directory-view.c:
(fm_directory_view_real_create_background_context_menu_items):
Change "Zoom to Default" to "Normal Size" in the context menu,
to match terminology in View menu.
* src/nautilus-window-toolbars.c: Rename Reload to Refresh to match
menu item & new design
Fixed bug 1995 (No way to enter/leave search mode from keyboard)
Fixed bug 1999 (No way to reload from keyboard)
* libnautilus/nautilus-bonobo-ui.h: Added more placeholders.
* src/file-manager/fm-directory-view.c:
(fm_directory_view_real_merge_menus): Position "Empty Trash"
menu item and separator using placeholder.
* src/file-manager/fm-icon-view.c: (compute_menu_item_info):
Fixed bug where "Restore Icon's Original Size" was using the
wrong plurality.
(insert_bonobo_menu_item): Renamed this from append_ and gave
it a position parameter.
(fm_icon_view_merge_menus): Used placeholders to put the menu
items in the order specified by bug 1653.
* src/nautilus-switchable-navigation-bar.h:
* src/nautilus-switchable-navigation-bar.c:
(nautilus_switchable_navigation_bar_get_mode): New function;
formerly there was a public setter but no public getter.
* src/nautilus-window-menus.c:
(file_menu_close_window_callback): Removed redundant assert.
(file_menu_toggle_find_mode_callback): New function, toggles
whether we're in search mode.
(go_menu_reload_callback): New function, reloads.
(nautilus_window_initialize_menus): Tweaked hint for "Close All Windows",
added Find/Browse menu item; Changed "Up" to "Up a Level" to
match bug 1653; added "Reload" to Go menu.
(nautilus_window_update_find_menu_item): New function, sets the
label of the Find/Browse menu item based on search mode's state.
* src/nautilus-window-private.h: added #define for
NAUTILUS_MENU_PATH_RELOAD_ITEM; added prototype for
nautilus_window_update_find_menu_item.
* src/nautilus-window-toolbars.c: Changed "Search" to "Find"
to match menu item (and Arlo's design).
* src/nautilus-window.h,
* src/nautilus-window.c:
(navigation_bar_mode_changed_callback): Update Find menu item.
(nautilus_window_get_search_mode): New function; formerly there
was a public setter but no public getter.
(nautilus_window_allow_reload): Update menu item sensitivity.
2000-08-19 Mathieu Lacage <mathieu@eazel.com>
completes task 1567. it shows a bug in the way the history
view displays the current location given the history. to be
fixed soon.
* components/history/nautilus-history-view.c:
(history_load_location), (history_title_changed), (make_obj):
add title_changed_callback, connect it to changed_title signal.
make it call load_location.
Hack evil stuff in load_location: a hand-made lock because the
function calls some gtk calls which seem to make the main loop
run at least once. This allowed the main loop to use the events
in the event queue and it happened that the title_changed signal
is usually emited more than once so it called again the
non-reentrant signal callback... BAD THINGS HAPPENED.
* libnautilus/nautilus-view-component.idl: add changed_title method
to Nautilus::View.
* libnautilus/nautilus-view.c: (impl_Nautilus_View_title_changed),
(nautilus_view_initialize_class): implement the new idl function and
add a signal for it.
* libnautilus/nautilus-view.h: add the new signal class method.
* src/nautilus-view-frame-bonobo-control.c: add the title_changed
field to the vtable.
* src/nautilus-view-frame-nautilus-view.c: (title_changed): idem.
* src/nautilus-view-frame-private.h: idem.
* src/nautilus-view-frame.c: (nautilus_view_frame_title_changed):
add api function to emit the signal and make the actual corba call.
* src/nautilus-view-frame.h: add function prototype.
* src/nautilus-window-manage-views.c: add calls to
(nautilus_window_update_title): to notify view frames of changed
titles.
search results). Now it opens a new window with the right
item selected. The only remaining work is to make the new
window scroll as necessary to reveal the item.
Along the way, fixed an unreported bug where the selection
wasn't being maintained on view switches.
* libnautilus-extensions/nautilus-gtk-extensions.h:
added #define for nautilus_gtk_marshal_NONE__STRING_POINTER.
* libnautilus/nautilus-view-component.idl:
Added open_in_new_window_and_select call.
* libnautilus/nautilus-view.h,
* libnautilus/nautilus-view.c:
(nautilus_view_open_in_new_window_and_select):
* src/nautilus-view-frame-corba.c:
(impl_Nautilus_ViewFrame_open_location_in_new_window),
(impl_Nautilus_ViewFrame_open_in_new_window_and_select):
* src/nautilus-view-frame-private.h:
* src/nautilus-view-frame.c:
(nautilus_view_frame_initialize_class),
(nautilus_view_frame_open_in_new_window_and_select):
* src/nautilus-view-frame.h: Wired together the various
pieces to get open_in_new_window_and_select across CORBA
and into the view frame.
* src/nautilus-window.h: added pending_selection field
* src/nautilus-window-manage-views.h: added
nautilus_window_open_in_new_window_and_select
* src/nautilus-window.c:
(nautilus_window_open_in_new_window_and_select_callback),
(nautilus_window_connect_view): Wiring to connect view
frame signals to window.
(nautilus_window_destroy): free pending_selection
* src/nautilus-window-manage-views.c:
(nautilus_window_update_view): Changed call from
nautilus_window_report_selection_changed to
nautilus_view_frame_selection_changed. This was the source
of the selection-not-preserved-across-view-changes bug.
Darin came up with this fix.
(open_location): Added a new_selection parameter to this
bottleneck function. It is set as the pending_selection
in the window.
(nautilus_window_open_location),
(nautilus_window_open_location_in_new_window),
(nautilus_window_report_location_change): Update existing
callers of open_location to pass NULL for new_selection parameter.
(nautilus_window_open_in_new_window_and_select): New function,
calls open_location with a selection (among other parameters).
(nautilus_window_update_state): When loading a new location, set
the location to pending_selection rather than NULL (and clear
pending_selection later so it doesn't unnecessarily hang around).
* src/file-manager/fm-search-list-view.c:
(reveal_selected_items_callback):
Call open_in_new_window_and_select instead of just
open_location_in_new_window
2000-08-18 Mathieu Lacage <mathieu@eazel.com>
Cleans up the HistoryFrame : remove the History object
and replaces it with HistoryList.
* components/history/nautilus-history-view.c: (get_history_list),
(history_load_location):
* libnautilus/nautilus-view-component.idl:
* src/nautilus-history-frame.c:
* src/nautilus-view-frame.c:
(nautilus_view_frame_get_history_list):
* src/nautilus-view-frame.h:
* src/nautilus-window.c:
(nautilus_window_get_history_list_callback):
Bonobo "menu placeholders" for menu-merging components.
Fixed bug 1859 (Need improved way to position added menu items)
* libnautilus/nautilus-bonobo-ui.h:
Removed all menu item paths except those we expect to
be merged over (like "Select All"). Added new placeholder
paths for components to use when merging instead of relying
on the positions of specific menu items. Commented the intended
use of each placeholder.
* components/loser/content/nautilus-content-loser.c:
(loser_merge_bonobo_items_callback):
* components/loser/sidebar/nautilus-sidebar-loser.c:
(loser_merge_bonobo_items_callback):
* components/sample/nautilus-sample-content-view.c:
(sample_merge_bonobo_items_callback):
Updated menu-merging code to use placeholder paths.
* src/file-manager/fm-directory-view.c:
(reset_bonobo_trash_delete_menu), (reset_bonobo_open_with_menu),
(fm_directory_view_real_merge_menus): Updated menu-merging code
to use placeholder paths or to base positions off other
directory view menu items. Added separator before Empty Trash.
* src/file-manager/fm-directory-view.h: Updated #defines for
directory view menu paths (some used by subclasses)
* src/file-manager/fm-icon-view.c: (compute_menu_item_info):
Change "Restore Icon to Unstretched Size" to "Restore Icon's
Original Size" to match Arlo's wording (and similarly for
the plural case)
* src/nautilus-window-menus.c:
Moved in the menu paths that were moved out of nautilus-bonobo-ui.h
(append_placeholder): New function, wrapper for
bonobo_ui_handler_menu_new_placeholder
(nautilus_window_remove_bookmarks_menu_items),
(refresh_dynamic_bookmarks), (append_static_bookmarks):
Simplified logic of rebuilding bookmarks menu by
using placeholder instead of details->last_static_bookmark_path.
(nautilus_window_initialize_menus): Insert the placeholders defined
in nautilus-bonobo-ui.h; add Control-/ for "About Nautilus" per Arlo.
(nautilus_window_remove_go_menu_items),
(refresh_go_menu): Use placeholder to position History menu items.
* src/nautilus-window-private.h: Removed last_static_bookmark_path;
moved #defines for back/forward/up menu paths here.
* src/nautilus-window.c: (nautilus_window_destroy): Removed
last_static_bookmark_path.
Fixed bug 2166 (Clearing name field in Properties window doesn't work right)
* src/file-manager/fm-properties-window.c:
(name_field_update_to_match_file): Changed a char * to const char *
for clarity.
(name_field_restore_original_name): New function, restores the original
contents of the name field, no questions asked.
(name_field_done_editing): When handling empty-string case, use
restore_original_name instead of update_to_match_file, which was too
clever for this case.
* src/nautilus-window-menus.c: (help_menu_about_nautilus_callback):
* libnautilus-extensions/nautilus-program-chooser.c:
(nautilus_program_chooser_new),
(nautilus_program_chooser_show_no_choices_message):
Fixed bug 2210 (GNOME is referred to as Gnome in the about
dialog). It was in one other place too.
* libnautilus/nautilus-view-component.idl:
Fixed some comments.
* libnautilus-extensions/nautilus-directory-private.h:
* libnautilus-extensions/nautilus-directory-async.c:
(dequeue_pending_idle_callback):
* libnautilus-extensions/nautilus-directory.c:
(nautilus_directory_emit_files_changed),
(nautilus_directory_emit_change_signals_deep),
(nautilus_directory_emit_metadata_changed),
(call_files_changed_free_list),
(call_files_changed_unref_free_list):
* libnautilus-extensions/nautilus-file.c: (nautilus_file_changed):
Separated out the call so you can emit a files_changed without
also emitting a changed signal on each file.
* libnautilus-extensions/nautilus-trash-directory.h:
* libnautilus-extensions/nautilus-trash-directory.c:
(trash_callback_remove_directory), (directory_ready_callback),
(forward_files_added_cover), (forward_files_changed_cover),
(nautilus_trash_directory_add_real_directory),
(trash_callback_remove_directory_cover),
(nautilus_trash_directory_remove_real_directory),
(remove_all_real_directories),
(fm_desktop_icon_view_discover_trash_callback),
(add_one_writable_device), (get_trashable_volume_uris),
(nautilus_trash_monitor_async_get_trash_directories):
More trash work. A bunch is commented out. I'm doing this *so*
slowly, but I need to check in at this point for Gene's sake.
* libnautilus-extensions/nautilus-volume-monitor.h:
* libnautilus-extensions/nautilus-volume-monitor.c:
(nautilus_volume_monitor_initialize_class),
(mount_device_activate), (mount_device_deactivate):
Changed the signals to be both more useful and easier to use.
* src/file-manager/fm-desktop-icon-view.c:
(fm_desktop_icon_view_initialize):
* src/file-manager/nautilus-trash-monitor.c:
Moved 1/2-written trash code out of here.
* HACKING: Spell checking.
2000-08-05 Gene Z. Ragan <gzr@eazel.com>
* libnautilus-extensions/nautilus-undo-manager.c: (corba_append),
(nautilus_undo_manager_undo):
Fixed a bug where transaction)in_progress was always TRUE.
This caused a g_warning to always be fired. I guess no one
noticed because we aren't exercising the undo code.
* libnautilus/nautilus-undo-transaction.c:
(remove_transaction_from_object),
(nautilus_undo_transaction_add_atom),
(nautilus_undo_transaction_add_to_undo_manager),
(remove_atoms_cover),
(nautilus_undo_transaction_unregister_object):
Fixed bug 1984, crash when closing window after an undo operation.
This crash is caused by a bogus transaction being left
in the target objects transaction list. An assert is thrown
because the item in the list is not a transaction. I suspect it
is the sad remains of an unrefed transaciton that is still in
the list somehow. I made a work arund by checking before
freeing, but need Darin's help to figure out the true cause.
* libnautilus-extensions/nautilus-icon-container.c: (relayout),
(size_allocate), (finish_adding_new_icons),
(nautilus_icon_container_set_zoom_level),
(nautilus_icon_container_set_auto_layout):
Changed relayout so it will update the scroll region. This fixes
bug 1907 (layout options sometimes move icons out of window).
* libnautilus/nautilus-clipboard.c: (add_menu_items_callback):
Fix leak of remote UI handler. This fixes the rest of bug 1259,
which was just a bug about the FIXME that said "remote UI handler
leaks here, right?".
* libnautilus-extensions/nautilus-directory-async.c: (lacks_info),
(get_info_callback): Fixed infinite loop when you hit a file and
you can't get info for it. Related to the bug Mike Fleming is
looking at.
2000-08-03 Mathieu Lacage <set EMAIL_ADDRESS environment variable>
* configure.in: fix build with new bonobo.
* libnautilus-extensions/Makefile.am: fix build with new bonobo.
* libnautilus/Makefile.am: fix build with new bonobo.
reorganized the menus. Added a user level menu and removed the
settings menu, moving remaining items to the bottom of the edit
menu. Added symbols to reflect the user levels, and made the
menu use the symbol of the current level as it's title.
Tweaked the text box for the eazel theme document icon, too.
suffered from my "spam" in the past (due to my use of emacs cvs
mode to commit). I will never use emacs cvs mode again so you
will see each of my commits only once!
* src/file-manager/fm-error-reporting.c:
(rename_callback_data_free), (rename_callback),
(cancel_rename_callback), (fm_rename_file):
Finished the 1/2 done code for renaming.
* src/nautilus-main.c: (main): Removed the call to bonobo_shutdown
since Michael decided he won't do it this way any more.
* src/nautilus-window.c: (nautilus_window_destroy): Added code
to unref the UI handler to fix a leak.
* components/hardware/nautilus-hardware-view.h:
* components/loser/content/nautilus-content-loser.h:
* components/loser/sidebar/nautilus-sidebar-loser.h:
* components/mozilla/nautilus-mozilla-content-view.h:
* components/music/nautilus-music-view.h:
* components/rpmview/nautilus-rpm-view.h:
* components/services/install/lib/eazel-install-corba-callback.h:
* components/services/install/lib/eazel-install-public.h:
* components/services/install/nautilus-view/nautilus-service-install-view.h:
* components/services/inventory/nautilus-view/nautilus-inventory-view.h:
* components/services/login/nautilus-view/nautilus-login-view.h:
* components/services/startup/nautilus-view/nautilus-service-startup-view.h:
* components/services/summary/nautilus-view/nautilus-summary-view.h:
* components/services/time/nautilus-view/trilobite-eazel-time-view.h:
* components/services/time/service/trilobite-eazel-time-service-public.h:
* components/services/trilobite/libtrilobite/trilobite-root-helper.h:
* components/services/trilobite/libtrilobite/trilobite-service-passwordquery-public.h:
* components/services/trilobite/libtrilobite/trilobite-service-public.h:
* components/services/trilobite/sample/lib/sample-service-public.h:
* components/tree/nautilus-tree-view.h:
* libnautilus/nautilus-view.h:
* libnautilus/nautilus-zoomable.h:
* src/file-manager/fm-desktop-icon-view.h:
* src/file-manager/fm-directory-view.h:
* src/file-manager/fm-icon-view.h:
* src/file-manager/fm-list-view.h:
* src/nautilus-application.h:
* src/nautilus-shell.h:
* src/nautilus-view-frame.h:
Fixed a copied and pasted typo.
* src/nautilus-view-frame.c: (nautilus_view_frame_destroy_client):
Change to use bonobo_object_unref now that the leaks have been
fixed. This requires the new Bonobo or you'll have lots of leaked
processes. Luckily, Nautilus won't compile without the new Bonobo
due to my use of bonobo_object_shutdown in main :-)
* configure.in:
Fix the way -Werror works so it affects all directories, not just
ones where we use WERROR.
* components/hardware/Makefile.am:
* components/help/Makefile.am:
* components/history/Makefile.am:
* components/loser/content/Makefile.am:
* components/loser/sidebar/Makefile.am:
* components/mozilla/Makefile.am:
* components/music/Makefile.am:
* components/notes/Makefile.am:
* components/rpmview/Makefile.am:
* components/sample/Makefile.am:
* components/services/install/command-line/Makefile.am:
* components/services/install/lib/Makefile.am:
* components/services/install/nautilus-view/Makefile.am:
* components/services/install/server/Makefile.am:
* components/services/inventory/lib/Makefile.am:
* components/services/inventory/nautilus-view/Makefile.am:
* components/services/inventory/service/Makefile.am:
* components/services/login/lib/Makefile.am:
* components/services/login/nautilus-view/Makefile.am:
* components/services/login/service/Makefile.am:
* components/services/startup/command-line/Makefile.am:
* components/services/startup/lib/Makefile.am:
* components/services/startup/nautilus-view/Makefile.am:
* components/services/summary/lib/Makefile.am:
* components/services/summary/nautilus-view/Makefile.am:
* components/services/summary/service/Makefile.am:
* components/services/time/command-line/Makefile.am:
* components/services/time/nautilus-view/Makefile.am:
* components/services/time/service/Makefile.am:
* components/services/trilobite/helper/Makefile.am:
* components/services/trilobite/libtrilobite/Makefile.am:
* components/services/trilobite/sample/command-line/.cvsignore:
* components/services/trilobite/sample/command-line/Makefile.am:
* components/services/trilobite/sample/lib/Makefile.am:
* components/services/trilobite/sample/nautilus-view/Makefile.am:
* components/services/trilobite/sample/service/Makefile.am:
* components/services/vault/command-line/Makefile.am:
* components/services/vault/lib/Makefile.am:
* components/services/vault/nautilus-view/Makefile.am:
* components/services/vault/service/Makefile.am:
* components/tree/Makefile.am:
* components/websearch/Makefile.am:
* cut-n-paste-code/widgets/nautilus-druid/Makefile.am:
* helper-utilities/authenticate/Makefile.am:
* libnautilus-extensions/Makefile.am:
* libnautilus/Makefile.am:
* librsvg/Makefile.am:
* nautilus-installer/src/Makefile.am:
* src/Makefile.am:
* src/file-manager/Makefile.am:
* test/Makefile.am:
Got rid of the WERROR shell variable. The -Werror switch is no
longer a per-directory thing.
* librsvg/Makefile.am:
Added libpng to the libraries for the test program. Maybe this was
the wrong thing to do, but before this change the link failed.
* components/sample/Makefile.am:
* components/sample/main.c:
* components/sample/nautilus-sample-content-view.c:
* components/sample/nautilus-sample-content-view.h:
A clean-up of the sample, including fixing many bugs and adding
lots of comments. I figure we want this to be as close to
exemplary as possible since people will continue to start with it
for new components.
* libnautilus-extensions/nautilus-bookmark.c:
(nautilus_bookmark_new_with_icon): Removed a bogus extra ref of a
NautilusFile object that I spotted in here.
* src/nautilus-application.c: (nautilus_application_destroy_window):
Re-added the code to quit when the last window is closed that Mike
removed in his recent check-in.
* src/nautilus-main.c: (main): Added a call to bonobo_shutdown.
We don't need this call, but I say, "Why not?"
* libnautilus/nautilus-view-component.idl:
* libnautilus/nautilus-view.c: (nautilus_view_quit_nautilus):
* libnautilus/nautilus-view.h:
* src/file-manager/fm-desktop-icon-view.c:
(fm_desktop_icon_view_quit_menu_item_callback),
(fm_desktop_icon_view_create_background_context_menu_items):
* src/file-manager/fm-directory-view.c:
(fm_directory_view_quit_nautilus):
* src/file-manager/fm-directory-view.h:
* src/nautilus-application.c: (nautilus_application_startup),
(nautilus_application_destroy_window):
* src/nautilus-application.h:
* src/nautilus-desktop-window.c: (nautilus_desktop_window_new):
* src/nautilus-view-frame-corba.c:
(impl_Nautilus_ViewFrame_set_title),
(impl_Nautilus_ViewFrame_quit_nautilus):
* src/nautilus-view-frame-private.h:
* src/nautilus-view-frame.c:
(nautilus_view_frame_initialize_class),
(nautilus_view_frame_set_title),
(nautilus_view_frame_quit_nautilus):
* src/nautilus-view-frame.h:
* src/nautilus-window-manage-views.c:
(nautilus_window_load_content_view):
* src/nautilus-window.c: (nautilus_window_quit_nautilus_callback),
(nautilus_window_connect_view):
Hooked up the quit menu in the desktop context menu to quit Nautilus.
Now, if Nautilus is managing the desktop no default window is created
and Nautilus does not quit when the last window is closed - i.e. use
the quit menu item instead. Bugs 1050 and 1051.
* components/history/nautilus-history-view.c:
(history_view_frame_call_end):
* libnautilus/nautilus-undo.c: (set_up_bonobo_control):
* libnautilus/nautilus-view.c: (view_frame_call_end):
* libnautilus/nautilus-zoomable.c:
(nautilus_zoomable_ensure_zoomable_frame):
Fixed a ref. count leak by adding code to unref the result of
query_interface.
* src/nautilus-view-frame.c: (nautilus_view_frame_is_zoomable):
Fixed logic that was backwards.
* components/history/nautilus-history-view.c:
(history_view_update_icons), (get_history_list),
(hyperbola_navigation_history_load_location):
* libnautilus/nautilus-view-component.idl:
* src/nautilus-history-frame.c:
(impl_Nautilus_HistoryFrame_get_history_list):
* src/nautilus-view-frame.h:
* src/nautilus-view-frame.c:
(nautilus_view_frame_get_history_list):
* src/nautilus-window.c:
(nautilus_window_get_history_list_callback),
(nautilus_window_connect_view):
Changed history list to include a separate position field
instead of having a position in each entry.
* components/notes/nautilus-notes.c: (done_with_file):
Name changed from nautilus_file_cancel_callback to
nautilus_file_cancel_call_when_ready to reduce confusion with
nautilus_file_cancel.
* libnautilus-extensions/nautilus-directory.c:
(nautilus_directory_get): Made NULL for URI be legal (and result
in NULL for the directory object).
* libnautilus-extensions/nautilus-mime-actions.c:
(get_mime_type_from_uri): Made NULL for URI be legal (and result
in NULL for MIME type).
* libnautilus-extensions/nautilus-entry.c:
(nautilus_entry_set_text): Minor tweak.
* libnautilus-extensions/nautilus-file.h:
* libnautilus-extensions/nautilus-file-private.h:
* libnautilus-extensions/nautilus-file.c: (operation_new),
(operation_free), (operation_complete), (operation_cancel),
(rename_update_info_and_metafile), (rename_callback),
(nautilus_file_rename), (nautilus_file_cancel),
(nautilus_file_set_owner), (nautilus_file_cancel_call_when_ready):
Added cancelling to rename as a prelude to doing the same for
set_file_info-based calls.
* libnautilus-extensions/nautilus-graphic.c:
Fixed a formatting mistake and a typo.
* libnautilus-extensions/nautilus-stock-dialogs.h:
* libnautilus-extensions/nautilus-stock-dialogs.c:
(timed_wait_hash), (timed_wait_hash_equal),
(nautilus_timed_wait_start), (nautilus_timed_wait_free),
(nautilus_timed_wait_stop): Re-did timed wait API now that
we are really using it. Still unimplemented.
* src/Makefile.am:
Since IDL dependencies are not understood by automake, added
an explicit one so we pick up the change to the libnautilus
view component IDL.
* src/file-manager/fm-error-reporting.h:
* src/file-manager/fm-error-reporting.c: (rename_callback),
(cancel_rename_callback), (fm_rename_file): Moved code for
renaming into here so it can be shared between the icon view
and the properties dialog. Perhaps it needs to be renamed.
* src/file-manager/fm-icon-view.c:
(fm_icon_view_icon_text_changed_callback): Use the shared
code instead of having the rename code here.
* src/nautilus-application.c: (create_object): Make a new
shell object each time instead of trying to share one.
(nautilus_application_startup): Activate the shell object
using OAF. This makes it work across processes and adds
the feature.
* src/nautilus-main.c: (main): Call bonobo_activate explicitly so
CORBA calls work before the main loop.
* src/nautilus-shell.c: (display_caveat_first_time),
(corba_manage_desktop): Got rid of all state in NautilusShell
so we can use multiple shell objects if we want.
* src/nautilus-sidebar.c: (nautilus_sidebar_update_info):
Got rid of code that checks for NULL.
* components/hardware/nautilus-hardware-view.oafinfo:
* components/help/help-contents.oafinfo:
* components/help/help-index.oafinfo:
* components/help/help-search.oafinfo:
* components/history/nautilus-history-view.oafinfo:
* components/html/ntl-web-browser.oafinfo:
* components/loser/content/nautilus-content-loser.oafinfo:
* components/loser/sidebar/nautilus-sidebar-loser.oafinfo:
* components/mozilla/nautilus-mozilla-content-view.oafinfo:
* components/music/nautilus-music-view.oafinfo:
* components/notes/nautilus-notes.oafinfo:
* components/rpmview/nautilus-rpm-view.oafinfo:
* components/sample/nautilus-sample-content-view.oafinfo:
* components/services/inventory/nautilus-view/nautilus-inventory-view.oafinfo:
* components/services/login/nautilus-view/nautilus-login-view.oafinfo:
* components/services/startup/nautilus-view/nautilus-service-startup-view.oafinfo:
* components/services/summary/nautilus-view/nautilus-summary-view.oafinfo:
* components/services/time/nautilus-view/trilobite-eazel-time-view.oafinfo:
* components/services/trilobite/sample/nautilus-view/nautilus-sample-service-view.oafinfo:
* components/shell/shell.oafinfo:
* components/tree/nautilus-tree-view.oafinfo:
* components/websearch/ntl-web-search.oafinfo:
Removed the obsolete Nautilus/ContentView and Nautilus/MetaView.
* components/services/install/command-line/.cvsignore:
Added a generated file.
* libnautilus-extensions/nautilus-directory-async.c:
(metafile_read_done), (allow_metafile),
(nautilus_directory_request_read_metafile): Another quick cut at
leaving out metafiles for some schemes.
(dequeue_pending_idle_callback): Get rid of "pending file info is
NULL!" message and "approve" the change that made Maciej put it
in.
* libnautilus/nautilus-view.c: (nautilus_uri_list_from_g_list):
Use CORBA_TRUE to truly use CORBA correctly.
* src/nautilus-shell-interface.idl:
* src/.cvsignore:
* src/Makefile.am:
* src/nautilus.oafinfo:
* src/nautilus-shell.h:
* src/nautilus-shell.c: (nautilus_shell_initialize_class),
(nautilus_shell_get_epv), (nautilus_shell_get_vepv),
(nautilus_shell_create_servant), (nautilus_shell_initialize),
(destroy), (nautilus_shell_new), (display_caveat),
(display_caveat_first_time), (open_window), (corba_open_windows),
(corba_open_default_window), (corba_manage_desktop): Added a new
CORBA file for the interface of the Nautilus shell itself and a
class for a server side of it. Moved some code in here from
NautilusApplication.
* src/nautilus-application.c: (manufactures), (create_object),
(create_factory), (nautilus_application_initialize),
(nautilus_strv_length), (nautilus_make_uri_list_from_strv),
(nautilus_application_startup): Moved the IID strings into
constants for easier code reading. Added the code that can yield
up the shell object, although it's not used yet. Changed startup
code to use the NautilusShell object to do the work. This doesn't
work cross-process yet, but it's ready to.
* src/nautilus-window.h:
* src/nautilus-window.c: (nautilus_window_initialize_class),
(nautilus_window_initialize), (goto_uri_callback),
(navigation_bar_mode_changed_callback),
(nautilus_window_constructed), (nautilus_window_destroy),
(nautilus_window_realize): Misc. cleanup, including getting rid of
the strange old way of doing parent_class.
2000-07-06 Gene Z. Ragan <gzr@eazel.com>
Fixed bug 1571, Need titles in history list instead
of just URIs.
This was a result of sharing the NautilusWindow history list
information over CORBA.
* libnautilus/nautilus-view-component.idl:
Create new interface, Nautilus::HistoryFrame
Interface has method to get a sequence of
history information. This sequence contains
structs that contain uri and name history
information.
* src/Makefile.am:
Added new file, NautilusHistoryFrame.c, to makefile.
* src/nautilus-history-frame.c:
* src/nautilus-history-frame.h:
(impl_Nautilus_HistoryFrame__destroy),
(impl_Nautilus_HistoryFrame__create),
(impl_Nautilus_HistoryFrame_get_history_list):
New files that imliments the functionality of the
Nautilus::HistoryFrame.
* components/history/nautilus-history-view.c:
(get_bookmark_from_row), (get_uri_from_row),
(history_view_frame_call_begin), (history_view_frame_call_end),
(history_view_update_icons), (get_history_list),
(hyperbola_navigation_history_load_location),
(hyperbola_navigation_history_select_row), (do_destroy),
(make_obj), (main):
Changes in the way that the history list is maintained.
We now use the info that is received by asking the view frame
for history information.
* src/nautilus-view-frame.c:
* src/nautilus-view-frame.h:
(nautilus_view_frame_initialize_class),
(nautilus_view_frame_load_client),
(nautilus_view_frame_get_history_list):
Added new signal GET_HISTORY_LIST and new
function that emits the signal when called.
* src/nautilus-window.c:
(nautilus_window_connect_view):
Create and add history interface to connected view.
(nautilus_window_get_history_list_callback):
New signal handler that connects to the get_history_list
signal of NautilusViewFrame. Returns a Nautilus_HistoryList
created from the history list data.
2000-07-03 Gene Z. Ragan <gzr@eazel.com>
* libnautilus-extensions/bonobo-stream-vfs.c:
(bonobo_stream_vfs_class_init), (create_bonobo_stream_vfs):
Fixed problem with previous change to this file. Allocated
a static epv. Assigned this epv to the servants epv and then
alocated the individual elements in the structure.
* src/nautilus-view-frame.c:
(nautilus_view_frame_get_preferred_zoom_levels):
Commented out a CORBA_free that causes sigsegv (noted by
Carbamide). Filed a bug report (1497) on it.
* libnautilus-extensions/nautilus-gtk-extensions.c:
(nautilus_gtk_marshal_NONE__DOUBLE_DOUBLE_DOUBLE):
* libnautilus-extensions/nautilus-gtk-extensions.h:
* libnautilus/nautilus-view-component.idl:
* libnautilus/nautilus-zoomable.c:
(nautilus_zoomable_set_parameters),
(nautilus_zoomable_set_zoom_level):
* libnautilus/nautilus-zoomable.h:
* src/file-manager/fm-directory-view.c:
(fm_directory_view_set_zoom_level),
(fm_directory_view_set_zoom_parameters):
* src/file-manager/fm-directory-view.h:
* src/file-manager/fm-icon-view.c: (fm_icon_view_begin_loading),
(fm_icon_view_set_zoom_level), (fm_icon_view_init_zoom_params),
(fm_icon_view_bump_zoom_level), (fm_icon_view_zoom_to_level),
(fm_icon_view_restore_default_zoom_level):
* src/file-manager/fm-list-view.c: (fm_list_view_bump_zoom_level),
(fm_list_view_zoom_to_level),
(fm_list_view_restore_default_zoom_level),
(fm_list_view_begin_loading), (fm_list_view_set_zoom_level),
(fm_list_view_init_zoom_params):
* src/nautilus-view-frame-private.h:
* src/nautilus-view-frame.c:
(nautilus_view_frame_initialize_class),
(nautilus_view_frame_zoom_parameters_changed):
* src/nautilus-view-frame.h:
* src/nautilus-window.c:
(nautilus_window_zoom_level_changed_callback),
(nautilus_window_zoom_parameters_changed_callback),
(nautilus_window_connect_view):
* src/nautilus-zoom-control.c: (nautilus_zoom_control_initialize),
(draw_number_and_disable_arrows), (zoom_menu_callback),
(create_zoom_menu_item),
(nautilus_zoom_control_button_press_event),
(nautilus_zoom_control_set_zoom_level),
(nautilus_zoom_control_set_min_zoom_level),
(nautilus_zoom_control_set_max_zoom_level),
(nautilus_zoom_control_get_zoom_level),
(nautilus_zoom_control_get_min_zoom_level),
(nautilus_zoom_control_get_max_zoom_level):
* src/nautilus-zoom-control.h:
* src/nautilus-zoomable-frame-corba.c:
(impl_Nautilus_ZoomableFrame_report_zoom_level_changed),
(impl_Nautilus_ZoomableFrame_report_zoom_parameters_changed):
Added report_zoom_parameters_changed to the zoomable
interface. This allows the zoom control to get min/max
from the zoomable (as opposed to hard coding in values)
Also fixed the zoom control to now use just doubles.
Renamed the zoom_level_changed message to be report_zoom_level_changed
in accordance with convention.
2000-06-22 Michael Engber <engber@eazel.com>
* libnautilus/nautilus-view-component.idl:
* libnautilus/nautilus-zoomable.c:
(nautilus_zoomable_initialize_class):
* src/file-manager/fm-directory-view.c:
(fm_directory_view_initialize), (nautilus_zoom_level_from_double),
(zoomable_set_zoom_level_callback):
* src/nautilus-view-frame.c:
* src/nautilus-view-frame.h:
* src/nautilus-window.c: (zoom_to_level_callback):
* src/nautilus-zoom-control.c:
(nautilus_zoom_control_class_initialize), (zoom_menu_callback),
(zoom_menu_item_free_zoom_level), (create_zoom_menu_item),
(create_zoom_menu):
Removed zoom_to_level from the zoomable interface - starting
on the process of removing the zoom control being tied to
7 discrete icon sizes. Bug #1425
2000-06-20 Ramiro Estrugo <ramiro@eazel.com>
* configure.in:
* libnautilus-extensions/Makefile.am:
* libnautilus/Makefile.am:
* librsvg/Makefile.am:
* nautilus-installer/src/Makefile:
* src/Makefile.am:
* src/file-manager/Makefile.am:
* test/Makefile.am:
Remove the GNOMECANVASPIXBUF depedency. Its not used no more.
2000-06-13 Gene Z. Ragan <gzr@eazel.com>
Fixed bug #306, right click menu in zoom control doesn't work.
The menu now works.
* libnautilus/nautilus-view-component.idl:
Added zoom_to_level interface.
* libnautilus/nautilus-zoomable.c:
(impl_Nautilus_Zoomable_zoom_to_level):
(nautilus_zoomable_initialize_class):
Implimentation of zoom_to_level interface
* src/file-manager/fm-directory-view.c:
* src/file-manager/fm-directory-view.h:
(fm_directory_view_initialize_class),
(fm_directory_view_initialize), (zoomable_zoom_to_level_callback),
(fm_directory_view_zoom_to_level):
Added signal handling and callback for new ZOOM_TO_LEVEL signal.
* src/file-manager/fm-icon-view.c:
(fm_icon_view_zoom_to_level),
(fm_icon_view_initialize_class):
ZOOM_TO_LEVEL handling.
* src/file-manager/fm-list-view.c: (fm_list_view_initialize_class),
(fm_list_view_zoom_to_level),
(fm_list_view_restore_default_zoom_level):
ZOOM_TO_LEVEL handling.
* src/nautilus-view-frame.c:
* src/nautilus-view-frame.h:
(nautilus_view_frame_zoom_to_level):
New public function for zoom to level.
* src/nautilus-window.c:
(zoom_to_level_callback):
Yes, a zoom to level callback.
* src/nautilus-zoom-control.c:
* src/nautilus-zoom-control.h:
(nautilus_zoom_control_class_initialize), (zoom_menu_callback),
(create_zoom_menu), (set_zoom_level):
Enabled context zoom menu functionality.
* acconfig.h:
* configure.in:
Removed the NAUTILUS_PREFIX that I added. I did it wrong.
* libnautilus-extensions/nautilus-file-utilities.h:
* libnautilus-extensions/nautilus-file-utilities.c:
(nautilus_pixmap_file):
* components/hardware/nautilus-hardware-view.c:
(setup_overview_form):
* components/services/startup/nautilus-view/nautilus-service-startup-view.c:
(setup_form_title), (setup_signup_form), (setup_config_form):
* libnautilus-extensions/nautilus-icon-canvas-item.c: (map_pixbuf):
* libnautilus-extensions/nautilus-icon-factory.c:
(make_full_icon_path):
* src/nautilus-application.c: (display_caveat):
* src/nautilus-property-browser.c:
(nautilus_property_browser_initialize),
(nautilus_emblem_dialog_new), (make_category_link):
* src/nautilus-zoom-control.c: (nautilus_zoom_control_initialize):
Replaced most uses of gnome_pixmap_file on "nautilus/"
with a call to a new nautilus_pixmap_file in an attempt to
make installations where nautilus has a different prefix
from gnome-libs work. I now think this is a waste of time,
but Mathieu Lacage says this is still an improvement.
* components/help/Makefile.am:
* components/help/hyperbola-filefmt.c: (fmt_map_entry):
Use HYPERBOLA_DATADIR instead of NAUTILUS_PREFIX.
* components/websearch/ntl-web-search.c:
(web_search_populate_engines):
Use WEB_SEARCH_DATADIR instead of NAUTILUS_PREFIX.
* components/mozilla/nautilus-mozilla-content-view.c:
(nautilus_mozilla_content_view_initialize),
(mozilla_content_view_set_busy_cursor),
(mozilla_content_view_request_progress_change),
(mozilla_content_view_clear_busy_cursor),
(mozilla_load_location_callback), (bonobo_mozilla_callback),
(mozilla_merge_bonobo_items_callback),
(mozilla_title_changed_callback),
(mozilla_location_changed_callback), (mozilla_net_status_callback),
(mozilla_link_message_callback), (mozilla_progress_callback),
(mozilla_open_uri_callback):
Took a cut at fixing the Mozilla component for the new API.
Ramiro will have to take care of the rest.
* components/services/install/lib/Makefile.am:
* components/services/time/command-line/Makefile.am:
* components/services/time/nautilus-view/Makefile.am:
* components/services/time/service/Makefile.am:
* components/services/trilobite/libtrilobite/Makefile.am:
* components/services/trilobite/sample/command-line/Makefile.am:
* components/services/trilobite/sample/service/Makefile.am:
* libnautilus/Makefile.am:
Updated all ORBit IDL compiles to use IDL_CFLAGS as suggested
in the form of a patch by Martijn van Beers.
* libnautilus-extensions/Makefile.am:
* libnautilus-extensions/nautilus-file-utilities.c:
(nautilus_get_user_main_directory),
(nautilus_get_pixmap_directory):
* libnautilus-extensions/nautilus-link-set.c:
(get_link_set_document):
* src/Makefile.am:
* src/nautilus-property-browser.c:
(nautilus_property_browser_drag_data_get), (make_drag_image),
(get_xml_path), (make_properties_from_directory):
* src/nautilus-link-set-window.c: (get_link_set_names):
* src/file-manager/Makefile.am:
* src/file-manager/fm-properties-window.c: (get_property_names):
Used NAUTILUS_DATADIR and DATADIR instead of NAUTILUS_PREFIX.
* libnautilus-extensions/nautilus-file-utilities.h:
* libnautilus-extensions/nautilus-file-utilities.c:
(nautilus_get_uri_from_local_path): Added a new helper function for
use when you have a path and need a URI. This does a better job
than just adding a "file://" on the front.
* libnautilus-extensions/nautilus-gtk-extensions.h:
* libnautilus-extensions/nautilus-gtk-extensions.c:
(get_first_callback), (nautilus_gtk_container_get_first_child):
* src/nautilus-window-toolbars.c: (setup_button):
* src/nautilus-window.c:
(replace_special_current_view_in_content_view_menu):
Implemented the first_child function and used it where appropriate.
* libnautilus-extensions/nautilus-preferences-item.c:
(add_icon_themes): Use nautilus_get_pixmap_directory intead of
misusing gnome_pixmap_file by calling it on a directory name.
* nautilus-installer/src/support.c: (create_pixmap),
(create_image): Added FIXMEs since it isn't clear if this code
will work with a Nautilus prefix that's not the same as the
gnome-libs prefix.
* Makefile.am: Tweaked white space.
2000-06-13 Gene Z. Ragan <gzr@eazel.com>
Fixed bug #305. CLicking in center of zoom control
does not change zoom level.
Clicking in the center of the zoom control emits a ZOOM_DEFAULT
signal. It is up to each view that connects to this signal
to determine what is the default zoom setting. Right now, all
views are using NAUTILUS_ZOOM_LEVEL_STANDARD. This could be
changed to a zoom level better suited for the view.
* libnautilus/nautilus-view-component.idl:
Added zoom_default interface.
* libnautilus/nautilus-zoomable.c:
* libnautilus/nautilus-zoomable.h:
(impl_Nautilus_Zoomable_zoom_default)
Implimetation function of zoom_default interface
(nautilus_zoomable_initialize_class):
Set up new ZOOM_DEFAULT signal.
* src/file-manager/fm-directory-view.c:
* src/file-manager/fm-directory-view.h:
(fm_directory_view_initialize_class),
(fm_directory_view_initialize), (zoom_out_callback),
(zoom_default_callback), (zoomable_zoom_default_callback),
(fm_directory_view_restore_default_zoom_level):
New functions to enable zoom to default.
* src/file-manager/fm-icon-view.c:
(fm_icon_view_initialize_class):
Override zoom_default method.
(fm_icon_view_restore_default_zoom_level),
New function to enable zoom to default.
* src/file-manager/fm-list-view.c:
(fm_list_view_initialize_class):
Override zoom_default method.
(fm_list_view_restore_default_zoom_level):
New function to enable zoom to default.
* src/file-manager/fm-properties-window.c: (create_basic_page):
* src/nautilus-view-frame.c:
* src/nautilus-view-frame.h:
(nautilus_view_frame_zoom_default):
New signal handling callback
* src/nautilus-window.c:
(zoom_default_callback):
New signal handling callback
* src/nautilus-zoom-control.c:
* src/nautilus-zoom-control.h:
(nautilus_zoom_control_class_initialize),
(nautilus_zoom_control_button_press_event):
Work in progress on bug #971
* src/file-manager/fm-directory-view.c:
(open_one_properties_window),
* libnautilus-extensions/nautilus-undo-signal-handlers.c:
(nautilus_entry_user_changed_callback),
(editable_register_edit_undo),
(restore_editable_from_undo_snapshot_callback):
views to simplify and clarify Nautilus. Later we will be able to
clean up the state machine.
Some "theoretical" stuff may be lost in this process, but we can
easily re-add what we really need. The old stuff had many
unimplemented placeholders and half-baked ideas.
* libnautilus/nautilus-view-component.idl:
* libnautilus/nautilus-view.h:
* libnautilus/nautilus-view.c:
* libnautilus/nautilus-zoomable.c:
(nautilus_zoomable_ensure_zoomable_frame),
(nautilus_zoomable_set_zoom_level):
* src/nautilus-applicable-views.c: (got_file_info_callback),
(got_metadata_callback), (nautilus_navigation_info_new),
(nautilus_navigation_info_free):
* src/nautilus-applicable-views.h:
* src/nautilus-view-frame-bonobo-control.c:
(nautilus_view_frame_activate_uri),
(bonobo_control_try_load_client), (bonobo_control_load_location):
* src/nautilus-view-frame-bonobo-embeddable.c:
(bonobo_subdoc_notify_location_change),
(bonobo_subdoc_try_load_client):
* src/nautilus-view-frame-corba.c:
(impl_Nautilus_ViewFrame__destroy),
(impl_Nautilus_ViewFrame__create),
(impl_Nautilus_ViewFrame_open_location),
(impl_Nautilus_ViewFrame_open_location_in_new_window),
(impl_Nautilus_ViewFrame_report_location_change),
(impl_Nautilus_ViewFrame_report_selection_change),
(impl_Nautilus_ViewFrame_report_status),
(impl_Nautilus_ViewFrame_report_load_underway),
(impl_Nautilus_ViewFrame_report_load_progress),
(impl_Nautilus_ViewFrame_report_load_complete),
(impl_Nautilus_ViewFrame_report_load_failed),
(impl_Nautilus_ViewFrame_set_title):
* src/nautilus-view-frame-nautilus-view.c:
(nautilus_view_try_load_client), (load_location), (stop_loading),
(selection_changed):
* src/nautilus-view-frame-private.h:
* src/nautilus-view-frame.c:
(nautilus_view_frame_initialize_class),
(nautilus_view_frame_destroy_client),
(nautilus_view_frame_handle_client_destroy_2),
(nautilus_view_frame_new), (nautilus_view_frame_load_client),
(nautilus_view_frame_load_location),
(nautilus_view_frame_stop_loading),
(nautilus_view_frame_selection_changed),
(nautilus_view_frame_is_zoomable),
(nautilus_view_frame_open_location),
(nautilus_view_frame_open_location_in_new_window),
(nautilus_view_frame_report_location_change),
(nautilus_view_frame_report_selection_change),
(nautilus_view_frame_report_status),
(nautilus_view_frame_report_load_underway),
(nautilus_view_frame_report_load_progress),
(nautilus_view_frame_report_load_complete),
(nautilus_view_frame_report_load_failed),
(nautilus_view_frame_set_title),
(nautilus_view_frame_zoom_level_changed):
* src/nautilus-view-frame.h:
* src/nautilus-zoomable-frame-corba.c:
(impl_Nautilus_ZoomableFrame__destroy),
(impl_Nautilus_ZoomableFrame__create),
(impl_Nautilus_ZoomableFrame_zoom_level_changed):
Changed the API and added a ton of comments.
* components/hardware/nautilus-hardware-view.c:
(nautilus_hardware_view_initialize),
(hardware_view_load_location_callback):
* components/help/hyperbola-nav-index.c:
(hyperbola_navigation_index_select_row):
* components/help/hyperbola-nav-search.c:
(hyperbola_navigation_search_select_row):
* components/help/hyperbola-nav-tree.c:
(hyperbola_navigation_tree_new),
(hyperbola_navigation_tree_load_location),
(hyperbola_navigation_tree_select_row):
* components/history/nautilus-history-view.c:
(hyperbola_navigation_history_load_location),
(hyperbola_navigation_history_select_row), (make_obj):
* components/html/ntl-web-browser.c: (browser_url_load_done),
(browser_vfs_callback), (browser_goto_url_real),
(browser_goto_url), (browser_select_url), (browser_title_changed),
(browser_notify_location_change):
* components/loser/content/nautilus-content-loser.c:
(nautilus_content_loser_initialize),
(loser_load_location_callback):
* components/loser/sidebar/nautilus-sidebar-loser.c:
(nautilus_sidebar_loser_initialize),
(loser_load_location_callback):
* components/music/nautilus-music-view.c:
(nautilus_music_view_initialize),
(music_view_load_location_callback):
* components/notes/nautilus-notes.c: (notes_load_location),
(make_notes_view):
* components/rpmview/nautilus-rpm-view.c:
(nautilus_rpm_view_initialize), (go_to_button_callback),
(rpm_view_load_location_callback):
* components/sample/nautilus-sample-content-view.c:
(nautilus_sample_content_view_initialize),
(sample_load_location_callback):
* components/services/startup/nautilus-view/nautilus-service-startup-view.c:
(go_to_uri), (nautilus_service_startup_view_initialize),
(service_load_location_callback):
* components/services/time/nautilus-view/trilobite-eazel-time-view.c:
(trilobite_eazel_time_view_initialize), (load_location_callback):
* components/websearch/ntl-web-search.c: (do_search), (make_obj):
* src/file-manager/fm-directory-view.c:
(fm_directory_view_switch_location),
(fm_directory_view_initialize), (display_selection_info),
(fm_directory_view_send_selection_change),
(load_location_callback), (selection_changed_callback),
(stop_loading_callback), (done_loading), (finish_loading_uri):
Switch components to use the new API.
* libnautilus-extensions/nautilus-gtk-extensions.h:
Added a placeholder for a new operation to get the first child of a
container. This will be way more efficient than all the code that
gets a list of all the children and then looks at the first one.
* src/nautilus-application.c: (manufactures), (create_object),
(create_factory), (nautilus_application_initialize_class),
(nautilus_application_initialize), (nautilus_application_new),
(nautilus_application_destroy),
(nautilus_application_check_user_directories),
(nautilus_application_startup),
(nautilus_application_destroy_window), (nautilus_application_quit),
(nautilus_application_create_window):
* src/nautilus-application.h:
* src/nautilus-desktop-window.c: (nautilus_desktop_window_new):
* src/nautilus-desktop-window.h:
* src/nautilus-main.c: (main):
Renamed NautilusApp -> NautilusApplication while changing it around.
* libnautilus-extensions/nautilus-undo-manager.h:
Add a blank line.
* src/nautilus-window-manage-views.h:
* src/nautilus-window-manage-views.c: (compare_strings),
(nautilus_window_report_selection_change): Changed code so that it
won't report the same selection change twice.
(nautilus_window_report_status),
(nautilus_window_report_load_underway),
(nautilus_window_report_load_progress),
(nautilus_window_report_load_complete),
(nautilus_window_report_load_failed), (compute_default_title),
(nautilus_window_set_title), (handle_go_back), (handle_go_forward),
(handle_go_elsewhere), (update_up_button),
(nautilus_window_update_internals), (nautilus_window_update_view),
(nautilus_window_view_destroyed),
(nautilus_window_has_really_changed),
(nautilus_window_load_sidebar_panel), (open_location),
(nautilus_window_open_location),
(nautilus_window_open_location_in_new_window),
(nautilus_window_report_location_change),
(nautilus_window_load_content_view),
(nautilus_window_update_state),
(nautilus_window_end_location_change_callback),
(nautilus_window_begin_location_change): Updated everything for the
new API.
* src/nautilus-window-menus.c: (file_menu_new_window_callback),
(edit_menu_undo_callback), (edit_menu_cut_callback),
(edit_menu_copy_callback), (edit_menu_paste_callback),
(edit_menu_clear_callback), (append_bookmark_to_menu),
(clear_appended_bookmark_items),
(nautilus_window_add_bookmark_for_current_location),
(append_separator), (new_top_level_menu),
(nautilus_window_initialize_menus), (update_user_level_menu_items):
* src/nautilus-window-private.h:
* src/nautilus-window-toolbars.c: (setup_button),
(nautilus_window_initialize_toolbars),
(nautilus_window_toolbar_remove_theme_callback):
* src/nautilus-window.c: (nautilus_window_class_init),
(nautilus_window_goto_uri), (nautilus_window_constructed),
(nautilus_window_set_arg), (nautilus_window_get_arg),
(nautilus_window_destroy), (nautilus_window_switch_views),
(view_menu_choose_view_callback),
(nautilus_window_load_content_view_menu),
(nautilus_window_back_or_forward), (nautilus_window_go_up),
(nautilus_window_allow_back), (nautilus_window_allow_forward),
(nautilus_window_allow_up),
(nautilus_window_open_location_callback),
(nautilus_window_open_location_in_new_window_callback),
(nautilus_window_report_location_change_callback),
(nautilus_window_report_selection_change_callback),
(nautilus_window_report_status_callback),
(nautilus_window_report_load_underway_callback),
(nautilus_window_report_load_progress_callback),
(nautilus_window_report_load_complete_callback),
(nautilus_window_report_load_failed_callback),
(nautilus_window_set_title_callback),
(nautilus_window_connect_view),
(nautilus_window_connect_content_view), (nautilus_window_reload),
(window_update_sidebar_panels_from_preferences):
* src/nautilus-window.h:
Other changes related to the API switchover.
* src/nautilus.oafinfo: Changed the ntl-xx iids to use the work
nautilus instead.
Updated code affected by destroy-notify addition to bonobo.
Requires new bonobo.
* libnautilus-extensions/nautilus-bonobo-extensions.c:
(nautilus_bonobo_ui_handler_menu_set_toggle_appearance):
Save and restore the destroy notify function as well as the
callback. This requires using the new function
bonobo_ui_handler_menu_remove_callback_no_notify to do right.
* src/file-manager/fm-directory-view.c:
(application_launch_parameters_new),
(application_launch_parameters_free): Ref and unref the directory
view object now that we correctly free this as needed.
(viewer_launch_parameters_new), (viewer_launch_parameters_free):
Ref and unref the directory view object now that we correctly free
this as needed.
(add_open_with_bonobo_menu_item): Add a destroy-notify function
parameters and apply it using bonobo_ui_handler_menu_set_callback.
(add_application_to_bonobo_menu): Free the launch parmaeters using
a destroy-notify function.
(add_component_to_bonobo_menu): Free the launch parmaeters using
a destroy-notify function.
* src/nautilus-window-menus.c: (append_bookmark_to_menu): Use a
destroy-notify function to destroy the bookmark holder.
(clear_appended_bookmark_items): Get rid of the code that gets
the callback data and destroys it explicitly.
* libnautilus/nautilus-clipboard.c: (add_menu_item):
* src/file-manager/fm-directory-view.c: (insert_bonobo_menu_item),
(fm_directory_view_real_merge_menus):
* src/file-manager/fm-icon-view.c: (append_bonobo_menu_item),
(fm_icon_view_merge_menus):
Rename BonoboUIHandlerCallbackFunc -> BonoboUIHandlerCallback.
* HACKING: Some reformatting.
To get a complete check-out you might have to delete
the file named libnautilus/nautilus-undo.h that used
to be a generated file and is now checked-in.
* components/help/help-method.c: (vfs_module_transform):
Removed a bogus extraneous FIXME.
* libnautilus-extensions/Makefile.am:
Moved the undo manager into libnautilus-extensions
since it's not needed by Nautilus components.
* libnautilus-extensions/nautilus-entry.c:
* libnautilus-extensions/nautilus-icon-text-item.c:
* libnautilus/nautilus-view.c:
* src/nautilus-application.c:
* src/nautilus-bookmarks-window.c: (create_bookmarks_window):
* src/nautilus-view-frame.c:
* src/nautilus-window-private.h:
* src/nautilus-window.c:
Updated includes and a few small function name changes.
* libnautilus-extensions/nautilus-gtk-extensions.h:
* libnautilus-extensions/nautilus-gtk-extensions.c:
(alive_disconnecter),
(nautilus_gtk_signal_connect_full_while_alive):
Added a new function that combines the features of
gtk_signal_connect_full with gtk_signal_connect_while_alive.
* libnautilus/nautilus-undo-context.h: [removed]
* libnautilus/nautilus-undo-context.c: [removed]
* libnautilus-extensions/nautilus-undo-context.h:
* libnautilus-extensions/nautilus-undo-context.c:
(impl_Nautilus_Undo_Context__destroy),
(impl_Nautilus_Undo_Context__create),
(impl_Nautilus_Undo_Context__get_undo_manager),
(nautilus_undo_context_new), (destroy),
(nautilus_undo_context_initialize_class):
Rewrote this class to simplify it (after moving it here).
* libnautilus/nautilus-undo-manager.h: [removed]
* libnautilus/nautilus-undo-manager.c: [removed]
* libnautilus/nautilus-undo-manager-private.h: [removed]
* libnautilus-extensions/nautilus-undo-manager.h:
* libnautilus-extensions/nautilus-undo-manager.c:
(impl_Nautilus_Undo_Manager__destroy),
(impl_Nautilus_Undo_Manager__create),
(impl_Nautilus_Undo_Manager__append),
(impl_Nautilus_Undo_Manager__forget),
(nautilus_undo_manager_initialize),
(nautilus_undo_manager_initialize_class),
(nautilus_undo_manager_undo),
(nautilus_undo_manager_add_transaction),
(nautilus_undo_manager_forget_transaction),
(nautilus_undo_manager_set_queue_depth),
(nautilus_undo_manager_attach),
(nautilus_undo_manager_add_interface), (update_undo_menu_item),
(undo_menu_handler_connection_free),
(undo_menu_handler_connection_free_cover),
(nautilus_undo_manager_set_up_bonobo_ui_handler_undo_item):
Rewrote this class to simplify it. Got rid of many old
interfaces and added some new ones.
* libnautilus/.cvsignore:
* libnautilus/Makefile.am:
Renamed the old nautilus-undo.idl to
nautilus-distributed-undo.idl. The IDL is only about the internal
part of the undo framework. Clients use calls that are in
nautilus-undo.h. The part that's public needs the prettier name.
* libnautilus/nautilus-undo.idl: [removed]
* libnautilus/nautilus-distributed-undo.idl:
Updated the names of menu-item-related things to better match the
standard terminology.
* libnautilus/nautilus-undo-private.h:
Added this new header for things needed by the undo manager that
are in libnautilus. Maybe we can eliminate this later.
* libnautilus/nautilus-undo-transaction.h:
* libnautilus/nautilus-undo-transaction.c:
(impl_Nautilus_Undo_Transaction__destroy),
(impl_Nautilus_Undo_Transaction__create),
(impl_Nautilus_Undo_Transaction__get_undo_menu_item),
(impl_Nautilus_Undo_Transaction__get_redo_menu_item),
(impl_Nautilus_Undo_Transaction__get_operation_name),
(impl_Nautilus_Undo_Transaction__undo),
(nautilus_undo_transaction_new),
(nautilus_undo_transaction_initialize),
(remove_transaction_from_object),
(nautilus_undo_transaction_destroy),
(nautilus_undo_transaction_initialize_class),
(nautilus_undo_transaction_add_atom),
(nautilus_undo_transaction_undo),
(nautilus_undo_transaction_add_to_undo_manager), (remove_atoms),
(remove_atoms_cover),
(nautilus_undo_transaction_unregister_object), (undo_atom_free),
(undo_atom_undo_and_free), (undo_atom_free_cover),
(undo_atom_undo_and_free_cover), (undo_atom_list_free),
(undo_atom_list_undo_and_free):
Rewrote and simplified this class and got rid of all uses of
NautilusUndoable.
* libnautilus/nautilus-undoable.h: [removed]
* libnautilus/nautilus-undoable.c: [removed]
* libnautilus/nautilus-undo.h:
* libnautilus/nautilus-undo.c: (nautilus_undo_register),
(nautilus_undo_register_full), (nautilus_undo_unregister),
(nautilus_undo), (nautilus_undo_get_undo_manager),
(undo_manager_ref), (undo_manager_unref),
(undo_manager_unref_cover), (nautilus_undo_attach_undo_manager),
(nautilus_undo_share_undo_manager), (set_up_bonobo_control),
(nautilus_undo_set_up_bonobo_control):
Added this new file with the public interface of the undo code and
most of the basic implementation. Most of this was previously in
nautilus-undoable.c.
* nautilus-widgets/nautilus-preferences.c:
(preferences_hash_node_free), (preferences_hash_node_add_callback),
(preferences_hash_node_remove_callback),
(preferences_hash_node_check_changes_func),
(preferences_callback_node_alloc),
(preferences_callback_node_free),
(preferences_callback_node_free_func),
(preferences_callback_node_invoke_func),
(preferences_gconf_callback):
Fixed a repeated spelling error in this file.
* src/nautilus-application.c: (nautilus_app_init):
* src/nautilus-view-frame.c: (nautilus_view_frame_load_client):
* src/nautilus-window-menus.c: (edit_menu_undo_callback),
(nautilus_window_initialize_menus):
* src/nautilus-window.c: (nautilus_window_constructed):
Changed to use public parts of the undo API instead of the old
stuff that used private secret stuff. Many places use nice new
convenient calls that do a lot of the work for you.
2000-06-01 Gene Z. Ragan <gzr@eazel.com>
* libnautilus/nautilus-undo-manager.c:
* libnautilus/nautilus-undo-manager.h:
(nautilus_undo_manager_get_current_undo_transaction):
New call to be used internally to get the current undo transaction.
An example of this call being used is in the menu code that displays
the current undo operation name.
* libnautilus/nautilus-undo-transaction.c:
(impl_Nautilus_Undo_Transaction__get_undo_description),
(impl_Nautilus_Undo_Transaction__get_redo_description),
(impl_Nautilus_Undo_Transaction__get_operation_name),
(impl_Nautilus_Undo_Transaction__undo),
Added actual functionlality to these calls. They now
work as advertised.
(nautilus_undo_transaction_new),
Made changed needed to actually use the operation
name and description that is passed in.
(nautilus_undo_transaction_destroy),
Clean up stored operation name and description strings.
* src/nautilus-window-menus.c:
(update_undo_menu_item):
The undo operation name is now displayed in the menu item.
* src/nautilus-desktop-window.c:
(nautilus_desktop_window_initialize_class),
(nautilus_desktop_window_initialize),
(nautilus_desktop_window_new):
* src/nautilus-desktop-window.h:
* src/ntl-app.c: (nautilus_app_startup), (nautilus_app_quit),
(nautilus_app_create_window):
* src/ntl-app.h:
* src/ntl-main.c: (main):
Made a desktop window that's created when you start the program
if you pass the --desktop option. At the moment it's a normal
window and not set up to take over the desktop.
* libnautilus-extensions/nautilus-glib-extensions.c:
(nautilus_self_check_glib_extensions): Fixed some broken self-
checks. Now we have one really broken self-check in the
nautilus-directory.c file. I might turn that one off soon so we
can at least run the others.
* libnautilus-extensions/nautilus-gtk-macros.h:
Changed how some of the macros work. Few of these macros were used
in Nautilus. I hope they aren't used in the Mozilla component,
because then I broke it.
* libnautilus-extensions/nautilus-list-column-title.c:
(nautilus_list_column_title_motion),
(nautilus_list_column_title_button_press),
(nautilus_list_column_title_button_release):
Updated to use NAUTILUS_INVOKE_METHOD instead of NAUTILUS_KLASS,
because I renamed it to NAUTILUS_CLASS and had to change these
anyway.
A little sweep for code that should be using
CORBA_Object_is_nil instead of direct compares with
CORBA_OBJECT_NIL.
* components/html/main.c: (url_requested_cb):
* libnautilus-extensions/bonobo-stream-vfs.c:
(bonobo_stream_create):
* libnautilus/nautilus-undo-manager.c:
(set_up_bonobo_control):
* libnautilus/nautilus-undoable.c: (nautilus_undo_register_full),
(nautilus_undo_unregister), (nautilus_undo):
* src/file-manager/dfos.c: (dfos_new):
Switch to use CORBA_Object_is_nil.
* libnautilus/nautilus-undo-manager.c: (undo_manager_unref),
(nautilus_attach_undo_manager), (nautilus_share_undo_manager),
(set_up_bonobo_control):
Do some missing duplicate and release calls.
* libnautilus/nautilus-undoable.c: (nautilus_undo_unregister):
Fix a place where we'd keep a reference to a freed list.
Change O(n^2) walk of list by index to O(n) walk by pointer.
* src/ntl-index-panel.c: (nautilus_index_panel_remove_meta_view):
Changed g_warning to a g_return_if_fail, which was designed for
cases just like this one.
* src/ntl-view-bonobo-subdoc.c:
(bonobo_subdoc_notify_location_change):
Put in a better version of the FIXME.
* RENAMING: More updates.
* libnautilus/nautilus-clipboard.c:
(nautilus_clipboard_set_up_editable): Instead of ref'ing the
control we want to do a "while_alive". The old way could be
dangerous, so I'm glad I caught this.
* libnautilus/nautilus-view-frame.c:
(nautilus_view_get_bonobo_control):
Took out an extra bonobo_object_ref that was wreaking havoc.
If we want to make this ref the thing before returning it,
we'll have to get it right.
* RENAMING: Updated to reflect completed tasks.
* components/notes/ntl-notes.c: (make_notes_view):
* components/websearch/ntl-web-search.c: (make_obj):
Changed to use simplified clipboard API.
* components/services/trilobite/libtrilobite/.cvsignore:
Ignore generated files.
* libnautilus-extensions/gtkscrollframe.c:
* libnautilus-extensions/gtkscrollframe.h:
Renamed GtkScrollFrame to NautilusScrollFrame so we won't conflict
if a GtkScrollFrame actually gets added to gtk some day. The file
still needs renaming (mentioned in RENAMING).
* libnautilus/nautilus-clipboard.h:
* libnautilus/nautilus-clipboard.c: (cut_callback),
(copy_callback), (paste_callback), (clear_callback),
(add_menu_item), (add_menu_items_callback),
(remove_menu_items_callback), (nautilus_clipboard_set_up_editable):
Simplified clipboard implementation. Does the same thing the old
code did without needing a class and with a simpler API.
* nautilus-widgets/nautilus-preferences-item.c:
* src/file-manager/fm-icon-text-window.c:
* src/nautilus-zoom-control.c:
* src/ntl-window.c:
Renamed _cb to _callback. Some other (minor) cleanup.
* src/file-manager/Makefile.am:
* src/file-manager/desktop-canvas.c: [removed]
* src/file-manager/desktop-canvas.h: [removed]
* src/file-manager/desktop-menu.c: [removed]
* src/file-manager/desktop-menu.h: [removed]
* src/file-manager/gnome-desktop.c: [removed]
Now that I'm doing the desktop work, I know we don't need these.
I'll be deleting the desktop source files that Havoc added as I
harvest the useful code from them.
* src/file-manager/fm-directory-view.c:
(bonobo_control_activate_callback): Add comments.
* src/nautilus-zoom-control.h: Fixed problem where the zoom
control didn't know if it was an event box or a pixmap.
* src/ntl-index-panel.c: (nautilus_index_panel_add_meta_view):
Fixed bug that was trashing the sidebar panel names. I put
the g_free call in the wrong place.
* src/ntl-uri-map.c: (sidebar_panel_preference_is_on):
Fixed bug where the sidebar preference wasn't saved. I found
another place with another copy of the preference path. This
sort of thing really needs to go in a header file, I think.
* libnautilus/Makefile.am:
* libnautilus/libnautilus.h:
* libnautilus/nautilus-meta-view-frame.c: [deleted]
* libnautilus/nautilus-meta-view-frame.h: [deleted]
* libnautilus/nautilus-view-component.idl:
* po/POTFILES.in:
* src/ntl-index-panel.c: (nautilus_index_panel_add_meta_view):
* src/ntl-window.c: (nautilus_window_add_meta_view):
Removed Nautilus::MetaView and all the related classes.
We still have Nautilus::MetaViewFrame (will go soon).
* components/help/hyperbola-nav-index.c:
(hyperbola_navigation_index_new):
* components/help/hyperbola-nav-search.c:
(hyperbola_navigation_search_new):
* components/help/hyperbola-nav-tree.c:
(hyperbola_navigation_tree_new):
* components/history/ntl-history-view.c: (make_obj):
* components/loser/sidebar/nautilus-sidebar-loser.c:
(nautilus_sidebar_loser_initialize),
(loser_notify_location_change_callback):
* components/loser/sidebar/nautilus-sidebar-loser.h:
* components/notes/ntl-notes.c: (make_notes_view):
* components/websearch/ntl-web-search.c: (make_obj):
Changed to use just plain view insetad of meta_view.
* libnautilus-extensions/nautilus-global-preferences.h:
* libnautilus-extensions/nautilus-global-preferences.c:
(global_preferences_create_dialog),
(nautilus_global_preferences_get_sidebar_panel_view_identifiers),
(nautilus_global_preferences_get_sidebar_view_iids),
(nautilus_preferences_register_sidebar_view_preferences_for_ui),
(global_preferences_register_for_ui):
Changed naming to call them sidebar views instead of meta views,
and got rid of code that depends on MetaView interface. We now
use the sidebar_panel_name to determine if a view should show
up in the sidebar.
* src/ntl-view.h: Fixed a comment to reflect the future
instead of the past.
2000-05-23 Gene Z. Ragan <gzr@eazel.com>
* libnautilus/nautilus-undo-context.c:
(impl_Nautilus_Undo_Context__get_undo_manager):
Added call to CORBA_Object_duplicate(). This
fixed an explosive bug.
* libnautilus/nautilus-undo-manager.c:
* libnautilus/nautilus-undo-manager.h:
(nautilus_undo_manager_stash_global_undo),
(nautilus_undo_manager_get_global_undo):
New functions to save application global instance of Nautilus_Undo_Manager
* src/ntl-app.c: (nautilus_app_init):
Add call to nautilus_undo_manager_stash_global_undo.
* src/ntl-view.c:
(nautilus_view_frame_load_client):
Coonected Nautilus_Undo_Context interface to view frame.
* libnautilus/nautilus-undo-manager.c:
(impl_Nautilus_Undo_Manager__append), (nautilus_undo_manager_undo),
(nautilus_undo_manager_redo),
(nautilus_undo_manager_add_transaction),
(nautilus_undo_manager_unregister_object), (destroy),
(nautilus_undo_manager_set_queue_depth), (free_undo_manager_list),
(prune_undo_manager_list), (nautilus_get_undo_manager),
(undo_manager_unref), (undo_manager_ref),
(nautilus_attach_undo_manager), (set_up_bonobo_control),
(nautilus_undo_set_up_bonobo_control):
Some cleanup of the undo code, including a first cut of the
set_up_bonobo_control function. Also got rid of all the excess
unrefs that we didn't need. I hope this is right now. Also fixed
bug where code was trying to bonobo_object_unref a CORBA object
directly.
* libnautilus/nautilus-undo-manager.c:
(nautilus_undo_set_up_bonobo_control):
* libnautilus/nautilus-undo-manager.h:
* libnautilus/nautilus-view-frame.c:
(nautilus_view_real_set_bonobo_control):
Change from setup to set_up. Setup is a noun, set up a verb phrase.
* libnautilus/nautilus-undoable.c: (nautilus_undo_register_full),
(nautilus_undo): Some minor cleanup and unrefing the transaction
after adding it to the undo manager.
2000-05-23 Gene Z. Ragan <gzr@eazel.com>
* libnautilus/nautilus-undo-context.c:
* libnautilus/nautilus-undo-context.h:
(impl_Nautilus_Undo_Context__get_undo_manager),
(nautilus_undo_context_new), (nautilus_undo_context_initialize):
Additonal work on making the undo context CORBA object.
* libnautilus/nautilus-undo-manager.c:
* libnautilus/nautilus-undo-manager.h:
* libnautilus/nautilus-undo-manager-private.h:
(impl_Nautilus_Undo_Manager__undo),
(nautilus_undo_manager_initialize),
(nautilus_undo_manager_add_transaction),
(nautilus_undo_manager_unregister_object),
(nautilus_get_undo_manager), (nautilus_attach_undo_manager),
Changed APIs to accept and return Nautilus_Undo_Manager CORBA
object instead of NautilusUndoManager pointer.
(nautilus_undo_setup_bonobo_control):
Added function stub to be filled later. This function
will attach an undo manager to a bonobo control.
Removed several functions no longer needed in new design,
including nautilus_undo_manager_begin_transaction(),
and nautilus_undo_manager_end_transaction().
* src/nautilus-window-menus.c: (edit_menu_undo_callback),
(nautilus_window_initialize_menus), (update_undo_menu_item):
Changed to use modified undo API
* src/ntl-app.c:
(nautilus_app_init):
Changed to use modified undo API
* src/ntl-window.c: (nautilus_window_constructed)
Changed to use modified undo API
* libnautilus-extensions/nautilus-directory-private.h:
* libnautilus-extensions/nautilus-directory-async.c:
(nautilus_directory_monitor_add_internal),
(dequeue_pending_idle_callback), (cancel_directory_load),
(directory_load_done),
(nautilus_directory_monitor_remove_internal),
(nautilus_directory_call_when_ready_internal),
(mark_all_files_unconfirmed), (start_monitoring_file_list),
(nautilus_directory_stop_monitoring_file_list),
(nautilus_directory_force_reload):
* libnautilus-extensions/nautilus-directory.c:
(call_files_changed_unref_free_list),
(nautilus_directory_notify_files_removed),
(nautilus_directory_notify_files_moved),
(nautilus_directory_file_monitor_add):
* libnautilus-extensions/nautilus-file-private.h:
* libnautilus-extensions/nautilus-file.c: (nautilus_file_get),
(destroy), (nautilus_file_monitor_remove), (nautilus_file_delete),
(nautilus_file_mark_gone), (nautilus_file_changed),
(nautilus_file_emit_changed):
Added the necessary tweaks to the async. I/O so we can handle
a reload, not just the initial load.
* libnautilus-extensions/nautilus-icon-container.h:
* libnautilus-extensions/nautilus-icon-container.c:
(nautilus_icon_container_add): Changed API so it will detect if
you try to add the same item twice and indicate it with a return
value; needed so we can handle reload.
* libnautilus-extensions/nautilus-list.c: (set_single_click_mode),
(update_single_click_mode_from_preferences),
(nautilus_list_initialize), (click_policy_changed_callback):
Fixed bug where a change in single click mode would chang the
appearance of the names in the list, but not cause a redraw when
the setting was changed.
* libnautilus/nautilus-undoable.c:
(undo_atom_destroy_callback_data), (undo_atom_destroy),
(undo_atom_destroy_callback_data_g_func_cover),
(nautilus_undo_register_full):
Fixed a bug where it would try to destroy the undo atom even when
it didn't own it.
* libnautilus/nautilus-undoable.h:
Got rid of some cruft I left in here by accident.
* src/file-manager/fm-icon-view.c: (fm_icon_view_add_file):
* src/file-manager/fm-list-view.c: (fm_list_view_add_file):
Only add the files if they are not already in the list. This is
needed for reload.
* src/ntl-main.c: (main): Tweaked this function to be easier to
understand and better organized. Also added a "desktop" option
as a start for my next task.
names) and #631 (nead oaf query to determine metaviews).
* libnautilus-extensions/nautilus-view-identifier.h,
libnautilus-extensions/nautilus-view-identifier.c:
(nautilus_view_identifier_new, get_lang_list,
nautilus_view_identifier_new_from_oaf_server_info,
nautilus_view_identifier_free): Moved NautilusViewIdentifier code
here from ntl-uri-map.[ch].
(nautilus_view_identifier_new_from_content_view),
(nautilus_view_identifier_new_from_sidebar_panel),
(nautilus_view_identifier_free_callback),
(nautilus_view_identifier_free_list): New functions.
* libnautilus-extensions/Makefile.am: Add
nautilus-view-identifier.[ch] to build.
* src/ntl-types.h: Removed typedef for NautilusViewIdentifier.
* libnautilus-extensions/nautilus-glib-extensions.h:
* libnautilus-extensions/nautilus-glib-extensions.c
(nautilus_g_list_free_deep_custom): New function, like
`nautilus_g_list_free_deep' but lets you pass your own free
function.
(nautilus_g_list_free_deep): Use `nautilus_g_list_free_deep_custom'
(nautilus_g_list_partition): New function to destructively
partition a GList into two, depending on whether they satisfy the
provided predicate or not.
(nautilus_test_predicate), (nautilus_self_check_glib_extensions):
Added unit tests for `nautilus_g_list_partition' and for
`nautilus_g_list_equal' since the `nautilus_g_list_partition'
tests rely on it.
* libnautilus-extensions/nautilus-directory.c:
(nautilus_directory_notify_files_moved): Use
`nautilus_g_list_free_deep_custom'.
* libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c
(nautilus_gdk_pixbuf_list_free): Likewise.
* libnautilus-extensions/nautilus-icon-factory.c
(nautilus_scalable_icon_list_free): Likewise.
* libnautilus-extensions/nautilus-string-list.c
(nautilus_string_list_clear): Likewise.
* nautilus-widgets/nautilus-preferences.c (pref_hash_node_free,
prefs_hash_lookup_with_implicit_registration): Likewise.
* libnautilus-extensions/nautilus-global-preferences.c,
libnautilus-extensions/nautilus-global-preferences.h
(global_preferences_create_dialog,
nautilus_global_preferences_get_sidebar_panel_view_identifiers,
nautilus_global_preferences_get_meta_view_iids,
nautilus_preferences_register_meta_view_preferences_for_ui,
global_preferences_register_for_ui): Change things around to
determine the set of sidebar panel prefs at run time, and to pass
around NautilusViewIdentifiers rather than just iid strings so we
can use the statically defined name in the oafinfo.
* src/ntl-uri-map.h, src/ntl-uri-map.c: (set_initial_content_iid,
got_file_info_callback, sidebar_panel_preference_is_on,
(add_sidebar_panel_identifiers, nautilus_navigation_info_free):
Changed things around to better handle sidebar panel (AKA meta
view) selection, and pass around both name and iid.
* src/ntl-window-msgs.c:
(nautilus_window_request_selection_change,
nautilus_window_has_really_changed,
nautilus_window_load_meta_view, nautilus_window_update_state,
nautilus_window_set_state_info): Fixed everything to pass around
ViewIdentifiers instead of iids for sidebar panels and set the
label approrpiately when activating; replaced a whole bunch of
GSList usage with GList (we can always optimize this stuff later).
* src/ntl-window.h, src/ntl-window.c: (nautilus_window_destroy,
nautilus_window_load_content_view_menu,
nautilus_window_set_content_view, nautilus_window_add_meta_view,
nautilus_window_remove_meta_view_real,
nautilus_window_remove_meta_view): Deal with the above changes
(mostly GSList -> GList changes).
* src/ntl-view-bonobo-control.c, src/ntl-view-bonobo-subdoc.c,
src/ntl-view-nautilus.c, src/ntl-view-private.h: Remove all
get_label related calls since we get that from the oafinfo now.
* libnautilus/nautilus-meta-view-frame.h,
libnautilus/nautilus-meta-view-frame.c:
(nautilus_meta_view_frame_initialize,
nautilus_meta_view_frame_new_from_bonobo_control,
nautilus_meta_view_frame_destroy): Remove
`nautilus_meta_view_frame_set_label' machinery and associated
machinery since we now get the label statically from the oafinfo.
* components/history/ntl-history-view.c: (make_obj): Don't call
`nautilus_meta_view_frame_set_label' any more, the label is now
statically determined from the oafinfo file.
* components/notes/ntl-notes.c: (make_notes_view): Likewise.
* components/websearch/ntl-web-search.c: (make_obj): Likewise.
* components/help/hyperbola-nav-index.c: Likewise.
(hyperbola_navigation_index_new): Likewise.
* components/help/hyperbola-nav-search.c: Likewise.
(hyperbola_navigation_search_new): Likewise.
* components/help/hyperbola-nav-tree.c: Likewise.
(hyperbola_navigation_tree_new): Likewise.
* src/ntl-meta-view.h, src/ntl-meta-view.c:
(nautilus_meta_view_set_label),
(nautilus_meta_view_get_label): Have an explicit value to set,
rather than trying to get it through CORBA. This is kind of a
hack, really we should pass around a label and a NautilusMetaView
separately and remove this stuff.
* components/help/hyperbola.oafinfo,
components/notes/ntl-notes.oafinfo,
components/websearch/ntl-web-search.oafinfo,
components/history/ntl-history-view.oafinfo: Updated to include
latest Nautilus attributes.
2000-05-19 Gene Z. Ragan <gzr@eazel.com>
* libnautilus/nautilus-undo-context.c:
* libnautilus/nautilus-undo-context.h:
(impl_Nautilus_Undo_Context__destroy),
(impl_Nautilus_Undo_Context__create),
(impl_Nautilus_Undo_Context__get_undo_manager),
(nautilus_undo_context_new), (nautilus_undo_context_initialize),
(nautilus_undo_context_initialize_class), (destroy):
GTK and CORBA object that acts as interface to an undo manager.
* libnautilus/Makefile.am:
Added entries for new NautilusUndoContext files.
* libnautilus/nautilus-undo-manager.c:
(impl_Nautilus_Undo_Manager__forget), (nautilus_undo_manager_undo),
(nautilus_undo_manager_unregister_object),
(get_current_transaction_name), (free_undo_manager_list_data),
(prune_undo_manager_list):
Removed all references to NautilusUndoTransaction and changed them to use
the Nautilus_Undo_Transaction CORBA object instead.
2000-05-19 Gene Z. Ragan <gzr@eazel.com>
More undo framework work. Still incomplete.
* libnautilus-extensions/nautilus-entry.c:
(nautilus_entry_changed):
Modified to use new undo manager location API
* libnautilus-extensions/nautilus-icon-text-item.c:
(iti_event),
(restore_from_undo_snapshot_callback):
Modified to use new undo manager location API
* libnautilus/nautilus-undo-manager.c:
* libnautilus/nautilus-undo-manager.h:
(impl_Nautilus_Undo_Manager__create),
(impl_Nautilus_Undo_Manager__append),
(impl_Nautilus_Undo_Manager__forget),
(nautilus_undo_manager_begin_transaction),
(nautilus_undo_manager_end_transaction),
(nautilus_undo_manager_undo), (nautilus_undo_manager_redo),
(nautilus_undo_manager_add_transaction),
(nautilus_undo_manager_unregister_object),
(free_undo_manager_list_data), (prune_undo_manager_list):
Modified to use new API and Undo::Manager::Transaction
* libnautilus/nautilus-undo-transaction.c:
* libnautilus/nautilus-undo-transaction.h:
(impl_Nautilus_Undo_Transaction__destroy),
(impl_Nautilus_Undo_Transaction__create),
(impl_Nautilus_Undo_Transaction__get_undo_description),
(impl_Nautilus_Undo_Transaction__get_redo_description),
(impl_Nautilus_Undo_Transaction__get_base_description),
(impl_Nautilus_Undo_Transaction__undo),
(nautilus_undo_transaction_new),
(nautilus_undo_transaction_initialize),
(nautilus_undo_transaction_destroy),
(nautilus_undo_transaction_initialize_class),
(nautilus_undo_transaction_undo),
(nautilus_undo_transaction_contains_object):
Added support for new Undo::Manager::Transaction object
* libnautilus/Makefile.am:
* src/file-manager/Makefile.am:
Eskil showed me how to fix these so they'd work when orbit-idl
was not in the path at compile time.
* HACKING: Change format to make popt "pop" out more.
* libnautilus-extensions/nautilus-entry.h:
* src/file-manager/fm-properties-window.c: (create_basic_page):
* src/nautilus-bookmarks-window.c: (on_text_field_focus_in_event),
(on_window_delete_event):
* src/nautilus-location-bar.c: (nautilus_location_bar_enable_undo):
* src/nautilus-location-bar.h:
* src/nautilus-window-menus.c: (edit_menu_undo_callback),
(bookmarks_menu_add_bookmark_callback),
(bookmarks_menu_edit_bookmarks_callback),
(get_or_create_bookmarks_window), (nautilus_bookmarks_exiting),
(edit_bookmarks), (nautilus_window_initialize_menus),
(update_undo_menu_item):
* src/ntl-app.c: (nautilus_app_init), (nautilus_app_destroy):
* libnautilus-extensions/nautilus-icon-container.c:
(nautilus_icon_container_start_renaming_selected_item):
* libnautilus-extensions/nautilus-entry.c:
(nautilus_entry_key_press), (nautilus_entry_enable_undo):
* libnautilus/nautilus-undo-manager.c:
(nautilus_undo_manager_begin_transaction),
(nautilus_undo_manager_unregister_object),
(prune_undo_manager_list), (nautilus_get_undo_manager),
(nautilus_attach_undo_manager), (nautilus_share_undo_manager):
* libnautilus/nautilus-undo-manager.h:
* src/ntl-window-private.h:
* src/ntl-window.c: (nautilus_window_constructed),
(nautilus_window_real_set_content_view),
(nautilus_window_get_undo_manager):
* src/ntl-window.h:
Got rid of the undo manager parameter for the enable_undo
operation.
Eliminated code that sets up the undo manager except for the top
widgets. We only need it attached to windows and to the top widget
in each component.
Change callers to get the undo manager in a few simple ways
instead of calling gtk_object_get_data directly. Added some calls
to attach the undo manager to an arbitrary object.
* libnautilus/nautilus-undo.idl: Added comments to the IDL and
also added the Undo::Context class.
* libnautilus/nautilus-view-component.idl: Removed the dependency
on the undo IDL and the undo_manager attribute.
* src/nautilus-bookmarks-window.h:
* src/nautilus-bookmarks-window.c: (create_bookmarks_window):
Changed interface to take object to inherit the undo manager from
instead of the undo manager itself. Got rid of unnecesary undo
manager setting.
(nautilus_bookmarks_window_save_geometry): Also changed interface
to use GtkWindow instead of GtkWidget.
2000-05-17 Gene Z. Ragan <gzr@eazel.com>
CVS: ----------------------------------------------------------------------
First phase of modifying undo code. These changes CVS: Enter Log. Lines beginning with `CVS:' are removed automatically
affect the way undo is handled internally to Nautilus and CVS:
also defines a new IDL. This is work in progress. CVS: Committing in .
CVS:
* libnautilus-extensions/nautilus-entry.c: CVS: Modified Files:
Modified to use gtk_object_get_data() mechanism to locate undo manager CVS: ChangeLog libnautilus/.cvsignore libnautilus/Makefile.am
CVS: libnautilus/nautilus-undo-manager-private.h
* libnautilus-extensions/nautilus-icon-container.c: CVS: libnautilus/nautilus-undo-manager.c
(nautilus_icon_container_start_renaming_selected_item): CVS: libnautilus/nautilus-undo-manager.h
Modified to use gtk_object_get_data() mechanism to locate undo manager CVS: libnautilus/nautilus-undo-transaction.h
CVS: libnautilus/nautilus-undoable.c
* libnautilus-extensions/nautilus-icon-text-item.c: (iti_event), CVS: libnautilus/nautilus-undoable.h
(restore_from_undo_snapshot_callback): CVS: libnautilus/nautilus-view-component.idl
Modified to use gtk_object_get_data() mechanism to locate undo manager CVS: libnautilus-extensions/nautilus-entry.c
CVS: libnautilus-extensions/nautilus-entry.h
* libnautilus/.cvsignore: CVS: libnautilus-extensions/nautilus-icon-container.c
Added generated IDL source and header files to ignore CVS: libnautilus-extensions/nautilus-icon-text-item.c
CVS: src/nautilus-bookmarks-window.c
* libnautilus/Makefile.am: CVS: src/nautilus-bookmarks-window.h src/nautilus-location-bar.c
Modified makefile to include new IDL file for undo manager CVS: src/nautilus-location-bar.h src/nautilus-window-menus.c
CVS: src/ntl-app.c src/ntl-window-private.h src/ntl-window.c
* libnautilus/nautilus-undo-manager.c: CVS: src/ntl-window.h src/file-manager/fm-properties-window.c
(impl_Nautilus_Undo_Manager__destroy), CVS: Added Files:
(impl_Nautilus_Undo_Manager__create), CVS: libnautilus/nautilus-undo.idl
(impl_Nautilus_Undo_Manager__append), CVS: Removed Files:
(impl_Nautilus_Undo_Manager__forget), CVS: libnautilus/nautilus-undo-manager-component.idl
(nautilus_undo_manager_initialize), CVS: ----------------------------------------------------------------------
(nautilus_undo_manager_initialize_class),
(nautilus_undo_manager_begin_transaction),
(nautilus_undo_manager_end_transaction),
(nautilus_undo_manager_undo), (nautilus_undo_manager_redo),
(nautilus_undo_manager_add_transaction),
(nautilus_undo_manager_unregister_object),
(nautilus_undo_manager_can_undo), (nautilus_undo_manager_can_redo),
(get_current_transaction_name),
(nautilus_undo_manager_get_current_undo_transaction_name),
(nautilus_undo_manager_get_current_redo_transaction_name),
(destroy), (nautilus_undo_manager_enable_redo),
(nautilus_undo_manager_set_queue_depth),
(free_undo_manager_list_data), (prune_undo_manager_list):
Changes to support new IDL and new undo manager mechanism.
* libnautilus/nautilus-undo.idl:
New undo manager IDL file
* libnautilus/nautilus-undo-manager-component.idl:
Removed old undo manager IDL file
* src/file-manager/fm-properties-window.c:
(create_basic_page):
Modified to use gtk_object_get_data() mechanism to locate undo manager
* src/nautilus-bookmarks-window.c:
(create_bookmarks_window),
(on_text_field_focus_in_event),
(on_window_delete_event):
Modified to use gtk_object_get_data() mechanism to locate undo manager
* src/nautilus-location-bar.c:
(nautilus_location_bar_set_location),
(nautilus_location_bar_enable_undo):
Modified to use gtk_object_get_data() mechanism to locate undo manager
* src/nautilus-window-menus.c:
(edit_menu_undo_callback),
(edit_menu_cut_callback),
(bookmarks_menu_edit_bookmarks_callback),
(get_bookmarks_window),
(nautilus_bookmarks_exiting),
(nautilus_window_edit_bookmarks),
(nautilus_window_initialize_menus),
(update_undo_menu_item):
Modified to use gtk_object_get_data() mechanism to locate undo manager
* src/ntl-app.c:
(impl_Nautilus_Application__get_view_windows),
(impl_Nautilus_Application_new_view_window),
(impl_Nautilus_Application_supports),
(impl_Nautilus_Application_create_object),
(impl_Nautilus_Application__create), (nautilus_app_get_type),
(nautilus_app_class_init), (nautilus_app_init), (nautilus_app_new),
(nautilus_app_destroy), (nautilus_app_startup),
(nautilus_app_create_window):
Modified to use gtk_object_get_data() mechanism to locate undo manager.
Added and modified IDL C stubs to match new IDL interface.
* src/ntl-window.c:
(nautilus_window_constructed),
(nautilus_window_set_arg):
Changed order that arguments are set at time of main window create so the app instance
variable is valid when the main window is contructed.
* libnautilus/Makefile.am (BUILT_SOURCES): This is way people
should use a highlighting editor so you wouldn't have these broken
BUILT_SOURCES things.
* Makefile.am (SUBDIRS): Moved components and helper-utilies
downwards in the SUBDIRS so it builds again.
* idl/Makefile.am:
* idl/fsextension.idl:
* libnautilus-extensions/Makefile.am:
* libnautilus-extensions/.cvsignore:
Removed the fsextension IDL, which was a work in progress that no
one is working on.
* libnautilus/.cvsignore:
Added the undo manager stuff.
* libnautilus-extensions/.cvsignore:
Removed the undo manager stuff.
* libnautilus-extensions/nautilus-directory-private.h:
* libnautilus-extensions/nautilus-file.c:
(nautilus_file_denies_access_permission): Handle deleted file case.
(nautilus_file_can_rename): Handle deleted file case.
(file_operation_state_new), (file_operation_state_free),
(file_operation_state_complete),
(rename_update_info_and_metafile), (rename_callback),
(nautilus_file_rename): Put in a basic framework for file
operations that can take a while. Used it to make renaming async.
(nautilus_file_can_get_permissions): Handle deleted file case.
(nautilus_file_set_permissions): Handle case where you can't get
permissions properly. I inadvertently delete this last time.
* libnautilus-extensions/nautilus-metadata.h:
Added a metadata key for the icon view sort. Still need to write
the code to save this.
2000-05-11 Gene Z. Ragan <gzr@eazel.com>
* helper-utilities/authenticate/Makefile.am:
* nautilus-widgets/Makefile.am:
* libnautilus-extensions/Makefile.am:
* libnautilus/Makefile.am:
Change makefiles to link against libnautilus. This is so calls
to the undo manager code resolve. There is probably a better way to
do this.
* libnautilus-extensions/nautilus-entry.c:
* libnautilus-extensions/nautilus-icon-container.c:
* libnautilus-extensions/nautilus-icon-text-item.c:
* src/nautilus-bookmarks-window.c:
* src/nautilus-location-bar.c:
* src/nautilus-window-menus.c:
* src/ntl-app.c:
Changed to #include <libnautilus-extensions/nautilus-undo-manager.h>
to #include <libnautilus/nautilus-undo-manager.h>
2000-05-10 Gene Z. Ragan <gzr@eazel.com>
*libnautilus/nautilus-undo-manager-component.idl
*libnautilus/nautilus-undo-manager-private.h
*libnautilus/nautilus-undo-manager.c
*libnautilus/nautilus-undo-manager.h
*libnautilus/nautilus-undo-transaction.c
*libnautilus/nautilus-undo-transaction.h
*libnautilus/nautilus-undoable.c
*libnautilus/nautilus-undoable.h
Moved files to libnautilus so IDL comiplation would work properly
and at the suggestion of mjs.
*libnautilus-extensions/Makefile.am
Removed undo files.
*libnautilus/Makefile.am
Added undo files.
*libnautilus/nautilus-undo-manager-component.idl
Additional fixes so a clean build would occuer properly.
* libnautilus/nautilus-bonobo-ui.h: Added #define for path of
Nautilus's toolbar so components can use Bonobo merging without
secret inside information.
* components/sample/nautilus-sample-content-view.c:
(sample_merge_bonobo_items_callback): Replaced secret inside
information about menu & toolbar paths & positions with use of
#defines in nautilus-bonobo-ui.h.
destruction. This fixes a problem where the clipboard code was
trying to use a view that has already been trashed.
Thanks to Carbamide <linuxfan@ionet.net> for finding the problem.
* libnautilus/nautilus-clipboard.c
(nautilus_clipboard_info_destroy),
(nautilus_clipboard_info_set_view_frame): Do not ref and unref the
view_frame. Because the NautilusClipboardInfo will only be
destroyed when the view_frame is destroyed in the normal use case,
if it holds a ref on the view_frame it will prevent it from ever
being destroyed. This was causing the notes and history view
processes to stay around forever.
2000-05-05 Gene Z. Ragan <gzr@eazel.com>
* libnautilus-extensions/nautilus-undo-manager-component.idl:
New IDL file describing CORBA interface to the undo manager.
* libnautilus-extensions/Makefile.am:
Modified to include nautilus-undo-manager-component.idl
* libnautilus-extensions/nautilus-undo-manager.c
* libnautilus-extensions/nautilus-undo-manager-private.h:
(impl_Nautilus_UndoManager__destroy),
(impl_Nautilus_UndoManager__create),
(impl_Nautilus_UndoManager__begin_transaction),
(impl_Nautilus_UndoManager__end_transaction):
CORBA/Bonobo functions to access undo manager features.
* libnautilus-extensions/nautilus-undo-manager.h:
* src/file-manager/fm-list-view.c
(fm_list_view_append_background_context_menu_items),
(fm_list_view_merge_menus), (fm_list_view_update_menus),
(rename_list_item_callback):
Began the task of
* src/ntl-main.c
(main):
Removed intialization of undo manager from main,
* src/ntl-app.c
(nautilus_app_init):
Moved initialization of undo manager. A reference to the undo manager
is saved for easy access from components.
2000-05-01 Kjartan Maraas <kmaraas@gnu.org>
* libnautilus/nautilus-clipboard.c: Cosmetic change.
* src/Makefile.am: Added -DGNOMELOCALEDIR to $INCLUDES.
* src/ntl-main.c: Added calls to bindtextdomain() and
textdomain() to make the translations work.
* components/help/hyperbola-main.c: Same here.
* components/help/Makefile.am: Here as well. This should be
done for any main() function in any module containing text
to be translated.
* libnautilus/nautilus-bonobo-ui.h:
New file, contains #defines for Bonobo-style menu paths for all
the menus & menu items in Nautilus that we promise components
will exist.
* libnautilus/Makefile.am: Include this new header file in library.
* src/nautilus-window-menus.c: Extensive changes, too many to list
every function. Replaced all the GnomeUIInfo mechanism with
Bonobo-style menu creation, using the menu paths from
nautilus-bonobo-ui.h. While I was in here, I also renamed some
functions (especially xxx_cb -> xxx_callback), tweaked some text,
and used some more standard Gnome menu item pixmaps (not sure if I
like them or not yet).
* src/ntl-window-private.h,
* src/ntl-window.c:
(nautilus_window_back_cb), (nautilus_window_forward_cb),
(nautilus_window_up_cb), (nautilus_window_home_cb): Replaced
these GtkWidget-callback style functions (formerly used
by both menu items and toolbar buttons) with new NautilusWindow
oriented ones nautilus_window_go_back, nautilus_window_go_forward,
nautilus_window_go_up, and nautilus_window_go_home.
(nautilus_window_allow_back), (nautilus_window_allow_forward),
(nautilus_window_allow_up): replaced hardwired Bonobo menu paths
with the new #defines.
* src/nautilus-window-toolbars.c:
Renamed some functions xxx_cb -> xxx_callback.
(toolbar_back_callback), (toolbar_forward_callback),
(toolbar_up_callback), (toolbar_home_callback): New GtkWidget-callback
style functions used exclusively by the toolbar.
* src/file-manager/fm-directory-view.h:
Removed FM_DIRECTORY_VIEW_PATH_CLOSE and
FM_DIRECTORY_VIEW_PATH_SELECT_ALL, since callers should use
the paths defined by Nautilus for these.
* src/file-manager/fm-directory-view.c:
(fm_directory_view_real_merge_menus): Replaced special insider knowledge
of menu positions with use of the new #defines. Also tweaked with the
keyboard underscore shortcuts for some items.
* libnautilus/nautilus-view-frame.c,
* libnautilus/nautilus-zoomable.c,
* libnautilus-extensions/nautilus-icon-text-item.c,
* libnautilus-extensions/nautilus-link.c,
* libnautilus-extensions/nautilus-mime-type.c:
Wrote bug reports for all FIXMEs in these files. Down to
45 in Nautilus with no bug report.
2000-04-26 Rebecca Schulman <rebecka@eazel.com>
Fixed bug #99: Implemented copy, paste, clear, and cut for text
Added new files nautilus-clipboard.c,h which contains clipboard
functionality. All components with text widgets should use this
code. It can just be copied from any existing sample code
(see ntl-notes.c in the notes component)
The frame cut, copy and paste stuff is now happy when there is a
widget in focus.
Added
* libnautilus/nautilus-clipboard.c
* libnautilus/nautilus-clipboard.h
Modified
* src/nautilus-window-menus.c (turned on clear, fixed up callbacks for cut, copy, and
paste buttons)
* components/notes/ntl-notes.c (Clipboard activated notes text box)
* components/websearch/ntl-web-search.c (Clipboard activated the search box)
OAF conversion. You must now build bonobo and gnome-vfs with --enable-oaf
* configure.in: Check for OAF
* libnautilus/nautilus-view-component.idl: Inherit from
Bonobo::Unknown instead of GNOME::Unknown.
* libnautilus-extensions/nautilus-global-preferences.c,
libnautilus-extensions/nautilus-global-preferences.h: Refer to
meta views by OAFIID, not GOAD ID.
* src/ntl-uri-map.c (my_notify_when_ready): Replaced hardcoded
list of GOAD IDs with a hardcoded list of OAFIIDs.
(add_components_from_metadata): Changed the expected format; it is
now label=component instead of component:label since OAFIIDs
contain colons.
* src/ntl-view.c (nautilus_view_destroy_client): unref the
Zoomable interface of the View, if any.
* src/file-manager/dfos-corba.c, src/file-manager/dfos.c: replace
GOAD calls with OAF ones; untested since this code is not really
used right now.
* src/ntl-main.c: Use OAF calls to intialize CORBA.
* src/ntl-app.c: Replace GOAD IDs with OAFIIDs. Use
Bonobo_Generic_Factory instead of GNOME_Generic_Factory to make
the linker happy. Register the factory server with OAF, not GOAD.
* src/nautilus.h: Include <liboaf/liboaf.h> instead of <libgnorba/gnorba.h>
* components/help/Makefile.am, components/history/Makefile.am,
components/html/Makefile.am, components/mozilla/Makefile.am,
components/music/Makefile.am, components/notes/Makefile.am,
components/rpmview/Makefile.am, components/sample/Makefile.am,
components/services/startup/Makefile.am,
components/websearch/Makefile.am, libnautilus/Makefile.am,
libnautilus-extensions/Makefile.am, src/Makefile.am,
src/file-manager/Makefile.am: Updated for OAF; install .oafinfo
files instead of .gnorba.
* components/help/hyperbola-main.c,
components/history/ntl-history-view.c,
components/html/ntl-web-browser.c, components/mozilla/main.c,
components/music/main.c, components/notes/ntl-notes.c,
components/rpmview/main.c, components/sample/main.c,
components/services/startup/main.c,
components/websearch/ntl-web-search.c: Convert to OAF; use OAFIIDs
and oaf intialization functions.
* src/nautilus.oafinfo, components/help/hyperbola.oafinfo,
components/history/ntl-history-view.oafinfo,
components/html/ntl-web-browser.oafinfo,
components/music/nautilus-music-view.oafinfo,
components/notes/ntl-notes.oafinfo,
components/rpmview/nautilus-rpm-view.oafinfo,
components/services/startup/nautilus-service-startup-view.oafinfo,
components/websearch/ntl-web-search.oafinfo,
components/sample/nautilus-sample-content-view.oafinfo,
components/mozilla/nautilus-mozilla-content-view.oafinfo: New OAF
activation records.
* src/nautilus.goad, components/help/hyperbola.goad,
components/history/ntl-history-view.goad,
components/html/ntl-web-browser.goad,
components/music/nautilus-music-view.goad,
components/notes/ntl-notes.goad,
components/rpmview/nautilus-rpm-view.goad,
components/services/startup/nautilus-service-startup-view.goad,
components/websearch/ntl-web-search.goad,
components/sample/nautilus-sample-content-view.goad,
components/mozilla/nautilus-mozilla-content-view.goad: Removed.
libnautilus now only contains the view interfaces needed by nautilus
components.
These are the interfaces defined in nautilus-view-component.idl.
libnautilus-extensions containes the remainder of the stuff.
Also used the cvs repository munging opportunity to do some of the
ntl-* renaming outlined in the RENAIMING file.
* components/html/ntl-web-browser.c: (browser_vfs_read_callback):
Fixed a bug my changes to GNOME VFS exposed. The callback couldn't
handle a "bytes_read" of 0.
* libnautilus/nautilus-directory-private.h:
* libnautilus/nautilus-directory.c:
* libnautilus/nautilus-directory.h:
* src/file-manager/fm-directory-view.c:
Added a new interface for monitoring files and directories.
Also fixed the self-check code that was failing since the
async. changes.
* libnautilus/nautilus-file.h:
Added the interface for monitoring single files, but it isn't
implemented yet.
* libnautilus/nautilus-icon-canvas-item.c:
* libnautilus/nautilus-icon-canvas-item.h:
* libnautilus/nautilus-icon-container.c:
* libnautilus/nautilus-icon-container.h:
* libnautilus/nautilus-icon-dnd.c:
* libnautilus/nautilus-icon-dnd.h:
* libnautilus/nautilus-icon-private.h:
Restructured Andy's modifier changes so the canvas item doesn't
have to know about modifiers. This makes the canvas item private
again. Users of NautilusIconContainer shouldn't have to know
about the canvas item.
* src/file-manager/fm-icon-view.c:
Reformatting.
* libnautilus/nautilus-directory.c
(read_some_metafile_data), (metafile_read_start),
(metafile_write_create_callback), (metafile_write_start),
(nautilus_directory_monitor_files_ref):
* libnautilus/gdk-pixbuf-extensions.c
(nautilus_gdk_pixbuf_load_async):
* src/ntl-uri-map.c (got_metadata_callback):
* components/html/ntl-web-browser.c (browser_vfs_callback),
(do_vfs_load):
Update for the new GNOME VFS which doesn't return an immediate error
code when doing an async. call.
improved title for non-vfs uris, used Gene's routine to escape http
parameters in service stuff, and finally weakened assert in
nautilus directory to allow non-vfs uris to continue to work
added framework for using custom images to reflect highlight state;
used it to make folders reflect drop-highlighting by opening (just
in eazel theme for now)
* check-FIXME.pl: This is a new Perl script for searching for FIXME
in the code. It reports any FIXME that does not have a bug number
next to it, or any with a bug number that's not an open bug.
* libnautilus/nautilus-bookmark.c: Attached a bug number to a FIXME
for script-testing purposes.
* docs/architecture.txt: Removed a FIXME. So sue me!
* src/file-manager/fm-icon-text-window.c
(create_attributes_option_menu): Added a call to gettext since the
attribute_labels are now N_ strings.
* po/.cvsignore: Ignore the generated files.
* libnautilus/nautilus-icon-factory.c: Formatting tweak.
2000-04-11 Pavel Cisler <pavel@eazel.com>
* libnautilus/nautilus-icon-dnd.c:
* libnautilus/nautilus-icon-dnd.h:
Fix a problem where drag actions did't update properly when dragging
between two windows. The pointer to the private GtkDragStatus needs
to be global, not stored in the drag originator widget.
directory views). Added new directory to CVS, so make
sure you do a "cvs update -d" and not just "cvs update".
"make install" now installs a file of mime-type-to-English
descriptions in the gnome-mime directory.
* data/mime/nautilus.keys: The actual mapping between
MIME types and English descriptions. Read these and send
me your abuse.
* data/mime/Makefile.am: New file, copies nautilus.keys to
gnome-mime directory.
* data/Makefile.am: includes "mime" subdirectory
* configure.in: configures "data/mime" directory
* libnautilus/nautilus-file.c:
(nautilus_file_get_mime_type_as_string_attribute):
New function, returns the raw MIME type as a string,
and handles the no-MIME-type case.
(nautilus_file_get_string_attribute): handle attribute
"mime_type", distinct from "type" which is now the
human-language one.
(nautilus_file_get_type_as_string): Use gnome-mime
to get human-language descriptions based on the MIME
type.
(nautilus_file_is_executable): Fixed this function which
was reading info->flags instead of info->permissions. Now
the special executable icon appears much more often (though
we still don't know what it's supposed to be).
* src/file-manager/fm-error-reporting.c:
(fm_report_error_renaming_file): Use "directory" instead of
"folder" to match our terminology elsewhere.
* src/file-manager/fm-icon-text-window.c:
add "mime type" to list of choices of text that can appear
beneath icons (in addition to just plain "type", which is
the human-language one).
synchronously).
Requires new GNOME VFS.
* libnautilus/nautilus-directory-private.h:
* libnautilus/nautilus-directory.c:
* libnautilus/nautilus-directory.h:
Changed code to read and write metafiles async. Too many functions
modified for me to list here.
* libnautilus/nautilus-file-private.h:
* libnautilus/nautilus-file.c:
* libnautilus/nautilus-file.h:
(nautilus_file_changed), (nautilus_file_emit_changed),
(nautilus_file_get_metadata), (nautilus_file_set_metadata),
(nautilus_file_call_when_ready), (nautilus_file_cancel_callback):
Changes to NautilusFile so it can participate in the new.
* components/notes/ntl-notes.c (notes_load_metainfo):
Fixed a bug in my recent changes where it would use a bad file
object when getting metadata.
* src/file-manager/fm-directory-view.c (notes_load_metainfo):
Renamed "tags" to "keys".
2000-04-11 Gene Z. Ragan <gzr@eazel.com>
* components/sample/nautilus-sample-content-view.c
Added icon data to BonoboUiHandler. This is GdkPixbuf
data and demonstrates the pixbuf data features
added to bonobo ui handlers.
* libnautilus/nautilus-bookmark.c
bonobo_ui_handler_menu_new_item modified to take advantage
of new bonobo ui handler pixbuf functionality. Components and
menu items can now display pixbuf data.
Added nautilus_bookmark_get_pixbuf() routine.
* libnautilus/nautilus-bookmark.h
Added nautilus_bookmark_get_pixbuf() routine.
* src/nautilus-window-menus.c
bonobo_ui_handler_menu_new_item modified to take advantage
of new bonobo ui handler pixbuf functionality.
2000-04-11 Pavel Cisler <pavel@eazel.com>
Drop target highlighting.
Add new call to determine if a drop target can accept a drag.
Tweak modifiers for file copy.
2000-04-10 Pavel Cisler <pavel@eazel.com>
Nasty hack to allow drag&drop actions to respond to modifier keys
and the drop context properly. This will one day get fixed by
adding proper hooks to Gtk+ and using them. For now we have to
do this.
that is compatible with async. metadata reading.
* components/notes/ntl-notes.c:
(notes_load_metainfo): Changed to use nautilus_file_call_when_ready
to wait for the metadata. Also fixed a bug that was causing an assert
inside the call to gtk_editable_insert_text.
(main): Made warnings and criticals stop in the debugger.
* libnautilus/nautilus-directory.c:
* libnautilus/nautilus-directory.h:
(nautilus_directory_call_when_ready): Renamed the call to indicate
it can wait for more than just metadata. For now it does only wait
for metadata, though.
(nautilus_directory_cancel_callback): Renamed this too.
* libnautilus/nautilus-file.c:
(nautilus_file_call_when_ready), (nautilus_file_cancel_callback):
Made a corresponding call for the metadata of a single file.
* libnautilus/nautilus-gdk-extensions.c:
* src/nautilus-index-title.c:
Formatting changes.
* libnautilus/nautilus-metadata.h:
Clarified that ANNOTATION is a per-file piece of metadata.
* src/ntl-uri-map.c:
* src/file-manager/fm-directory-view.c:
Use new names of calls.
* src/file-manager/fm-icon-view.c:
* src/file-manager/fm-list-view.c:
Added comment.
* libnautilus/nautilus-list.c:
(nautilus_list_initialize_class), (nautilus_list_initialize),
(select_or_unselect_row_callback), (emit_selection_changed),
(select_range), (select_row), (select_row_from_mouse),
(row_set_selected), (select_row_unselect_others),
(nautilus_list_select_all), (nautilus_list_unselect_all),
(nautilus_list_button_press), (nautilus_list_keyboard_move_to),
(nautilus_list_motion), (nautilus_list_set_selection):
Reworked selection such that the SELECTION_CHANGED signal is
emitted only once for every selection-affecting operation,
and never if the selection hasn't changed at all. This makes
such operations as Select All, switch-from-icon-view-with-lots-
selected, and arrow-key-to-end-of-list significantly faster.
use same keys/behavior as in icon view). There are a few
minor bugs remaining that I'll write up separately.
* libnautilus/nautilus-list.c:
NautilusListDetails struct: added fields for
keyboard_row_to_reveal and keyboard_row_reveal_timer_id;
(nautilus_list_initialize_class): Removed key binding set for
this class (uses key_press_event function instead); used
gtk_binding_entry_clear to get rid of all the unwanted GtkCList
key bindings; wire up key_press_event function; wire up
destroy function
(nautilus_list_destroy): New function, destroy details struct
(this was storage leak) and clean up pending timer.
(nautilus_list_clear_keyboard_focus), (nautilus_list_set_keyboard_focus),
(nautilus_list_keyboard_move_to), (keyboard_row_reveal_timeout_callback),
(unschedule_keyboard_row_reveal), (schedule_keyboard_row_reveal),
(reveal_row), (nautilus_list_keyboard_navigation_key_press),
(nautilus_list_keyboard_home), (nautilus_list_keyboard_end),
(nautilus_list_keyboard_up), (nautilus_list_keyboard_down),
(nautilus_list_keyboard_page_up), (nautilus_list_keyboard_page_down),
(nautilus_list_keyboard_space), (nautilus_list_activate_selected_items),
(nautilus_list_get_first_selected_row),
(nautilus_list_get_last_selected_row),
(nautilus_list_key_press): New functions, all the mechanism for
handling key presses similarly to NautilusIconContainer. Bonus
key handling for Page Up and Page Down.
(nautilus_list_move_focus_row), (scroll_vertical): Removed these
functions that were used by the GtkCList key bindings in favor of
nautilus_list_key_press and friends.
be activated by clicking in white space past the name.
Also started making changes in the direction of getting
keyboard selection working properly in list view (but
most of the work remains).
* libnautilus/nautilus-gdk-extensions.h,
* libnautilus/nautilus-gdk-extensions.c:
(nautilus_stipple_bitmap): New function, returns pointer to
static 50% stipple bitmap.
* libnautilus/nautilus-icon-cvanvas-item.c:
remove global stipple object;
(nautilus_icon_canvas_item_initialize_class): Remove initialization
of global stipple object.
(draw_or_measure_label_text), (draw_stretch_handles): Use
nautilus_stipple_bitmap () in lieu of global stipple object
in this file.
* libnautilus/nautilus-list.c:
(get_cell_horizontal_start_position): New function, extracted
from draw_row so I could use it elsewhere.
(nautilus_list_key): Removed function.
(nautilus_list_draw_focus): New function, draws keyboard-focussed
row with the same stipple outline used in icon view.
(nautilus_list_move_function_row): New function, copied & simplified
from GtkCList. Will probably rewrite entirely or eliminate very soon.
(nautilus_list_scroll_vertical): New function, copied & simplified
from GtkCList. Handles various keyboard commands, though not yet with
the behavior we actually want.
(nautilus_list_initialize_class): Begin to override and eliminate
GtkCList key bindings that we want to change. I've just started this
work -- all I've done so far is make space do nothing but Control-space
toggle the selection status of the keyboard-focussed row. I need to
go through and fix up all the bad inherited bindings. Also in this
function replace GtkCList's scroll_vertical and draw_focus function
pointers, and removed the key_press_event and key_release_event
overrides that were deliberately preventing us from inheriting any
of GtkCList's keyboard behavior.
(nautilus_list_button_release): Only activate link-text if the click
is in the horizontal bounds of the text.
(draw_row) Use get_cell_horizontal_start_position that was extracted
from this function.
pointed service code at Jonathan's prototype server - registration is
now working. Also, implemented simple drag highliting, by treating it
exactly like selection highliting
* libnautilus/nautilus-gdk-extensions.h:
#defines for colors NAUTILUS_RGB_COLOR_RED, _GREEN,
_BLUE, _WHITE, and _BLACK.
* libnautilus/nautilus-gdk-extensions.c:
(nautilus_parse_rgb_with_white_default): Replaced
hard-wired numbers with these #defines.
* libnautilus/nautilus-list.h,
* libnautilus/nautilus-list.c:
added enum entry for NAUTILUS_CELL_LINK_TEXT;
(nautilus_list_mark_cell_as_link): New functions, converts
an ordinary text cell into a link-text cell.
(nautilus_list_button_release): Only activate link-text
cells on single click; other cells select as in other lists.
(draw_row): draw link-text cells with blue text and an
underline, so they look like typical web links.
(nautilus_list_set_cell_contents): Convert link-text cell
back to ordinary text cell before cleaning up old
contents so parent function will do the right thing.
* src/file-manager/fm-list-view.c:
(add_to_list): mark file name cell as link-text cell.
(remove_from_list): New function, extracted from...
(fm_list_view_file_changed): Followed Darin's advice on
how to simultaneously clarify this code and fix a
storage leak.
For Darin, fixed a typo that caused every file to be
displayed as if it were a directory.
* src/ntl-uri-map.c:
(my_notify_when_ready): Added two missing "== 0"s.
Next I'll change the actual metafile access to work that way.
* libnautilus/nautilus-directory.h:
* libnautilus/nautilus-directory.c:
(nautilus_directory_metadata_call_when_ready): Added function
that requests a read of some metadata and calls back when the
data is ready.
* src/ntl-app.c: (nautilus_app_startup): Got rid of call to
nautilus_navinfo_init.
* src/ntl-types.h: Moved the NautilusNavigationInfo struct
and related defines to ntl-uri-map.h.
* src/ntl-uri-map.h:
* src/ntl-uri-map.c:
Reformatted and changed the names of many functions.
Added code to use the new metadata callback.
* src/ntl-index-panel.c:
* src/ntl-main.c:
* src/ntl-view.h:
* src/ntl-window-msgs.c:
* src/ntl-window.c:
* src/ntl-window.h:
Had to change includes a bit because of my changes to what
header files are including.
* src/ntl-window-msgs.c: (nautilus_window_update_state):
* src/ntl-window.h:
Use the new nautilus_navigation_info_cancel call instead of
reaching right in to cancel the underlying call.
* src/ntl-view-private.h:
Reformatting.
* libnautilus/nautilus-directory-background.c:
(nautilus_connect_background_to_directory_metadata):
Fixed code that was trying to disconnect the handler from the
new directory, not the old one.
yesterday. The largest change was making NautilusDirectory
send "files-changed" signal instead of "files-removed"
signal when a file is removed. That way interested callers
need register only for one signal. The callers can use
nautilus_file_is_gone () to test whether the file was removed.
* libnautilus/nautilus-directory-private.h:
(nautilus_directory_files_removed): Removed function.
* libnautilus/nautilus-directory.h:
(files_removed): Removed signal definition, updated comments.
* libnautilus/nautilus-directory.c:
Removed FILES_REMOVED signal enum entry;
(nautilus_directory_initialize_class): Removed FILES_REMOVED
signal creation.
(nautilus_directory_files_removed): Removed function.
* libnautilus/nautilus-file.c:
(get_file_for_parent_directory): New private function.
(nautilus_file_can_rename): This function was quite broken in
its initial check-in. It worked only on a random basis. Now it
works quite a bit better. It should only return FALSE if it's
darn well sure that the user can't rename the file; it returns
TRUE even if it isn't sure, so clients must handle failed
renames (which they would have to anyway).
(nautilus_file_delete): Call nautilus_file_changed instead of
nautilus_directory_files_removed when file is deleted.
* src/file-manager/fm-directory-view.h:
(remove_file): Remove signal definition, update comments.
* src/file-manager/fm-directory-view.c:
remove REMOVE_FILE signal enum entry;
remove files_removed_handler_id and pending_files_removed from
Details struct;
(fm_directory_view_initialize_class): remove REMOVE_FILE signal
initialization
(display_pending_files): remove "removed" case; made "changed"
case handle updating uri table; made "changed" case send signal
even if file is gone.
(files_removed_cb): Removed function.
(fm_directory_view_load_uri): removed connection to "files_removed"
signal
(disconnect_model_handlers): removed disconnect of files_removed_handler.
* src/file-manager/fm-icon-view.c:
(fm_icon_view_remove_file): Removed function.
(fm_icon_view_initialize_class): Remove remove_file signal handler override.
(fm_icon_view_file_changed): check if file is gone and do what
fm_icon_view_remove_file used to do if so.
* src/file-manager/fm-list-view.c:
(fm_list_view_remove_file): Removed function.
(fm_list_view_initialize_class): Remove remove_file signal handler override.
(fm_list_view_file_changed): check if file is gone and do what
fm_list_view_remove_file used to do if so.
* src/file-manager/fm-properties-window.c:
(properties_window_file_changed_callback): Don't update the window title
if you just nuked the window -- Doh! Now the Properties window will
vanish silently if the file is deleted.
There's even more we could do in this direction.
* components/music/nautilus-music-view.c:
(nautilus_music_view_initialize): Got rid of redundant background
color initialization.
(nautilus_music_view_realize): Got rid of background color
initialization.
(nautilus_music_view_update_from_uri): Changed background color
handling to use new nautilus_directory_background calls.
(nautilus_music_view_background_changed): Not needed any more.
* components/notes/ntl-notes.c:
Did some cleanup and reformatting.
* libnautilus/Makefile.am:
* libnautilus/nautilus-directory-background.c:
* libnautilus/nautilus-directory-background.h:
Created a new file with functions that manage the background for
a window connected with a particular directory. Later we might
generalize it further to work for windows that are connected to
any URI, not just a directory.
* libnautilus/nautilus-directory.c:
* libnautilus/nautilus-directory.h:
Added a new "metdata_changed" signal so that the background can
be updated if the underlying data changes.
(nautilus_directory_initialize_class): Create the new signal.
(nautilus_directory_ref), (nautilus_directory_unref): Made these
functions quietly do nothing for NULL. This simplifies life for
callers.
(nautilus_directory_set_metadata): Emit the "metadata_changed"
signal.
* libnautilus/nautilus-file.c:
(nautilus_file_ref), (nautilus_file_unref): Made these
functions quietly do nothing for NULL. This simplifies life for
callers.
* libnautilus/nautilus-metadata.h:
Renamed all the constants to be consistent. Got rid of separate
constants for the icon view and list view backgrounds. Changed
some of the underlying XML tags as well.
* libnautilus/nautilus-icon-factory.c:
(nautilus_icon_factory_get_icon_for_file):
* src/nautilus-index-title.c: (nautilus_index_title_update_info):
* src/ntl-index-panel: (nautilus_index_panel_update_info),
(receive_dropped_uri_list),
(nautilus_index_panel_background_changed):
* src/ntl-uri-map.c: (set_initial_content_iid),
(add_components_from_metadata):
* src/ntl-window-msgs.c: (view_menu_switch_views_cb):
* src/file-manager/fm-icon-view.c: (add_icon_if_already_positioned),
(fm_icon_view_begin_loading), (fm_icon_view_set_zoom_level),
(fm_icon_view_icon_changed_callback):
* src/file-manager/fm-list-view.c: (fm_list_view_begin_loading),
(fm_list_view_set_zoom_level), (fm_list_view_sort_items):
Updated uses of metadata constants to use the new names.
* src/ntl-index-panel: (nautilus_index_panel_destroy),
(nautilus_index_panel_update_info):
* src/ntl-uri-map.c: (add_components_from_metadata):
* src/file-manager/fm-directory-view.c:
(fm_directory_view_destroy), (fm_directory_view_load_uri):
Used new nautilus_directory_unref to simplify code.
* src/ntl-uri-map.c: (set_initial_content_iid):
* src/ntl-window-msgs.c: (view_menu_switch_views_cb):
Added missing nautilus_directory_unref (storage leak).
* src/file-manager/fm-icon-view.c: (create_icon_container),
(fm_icon_view_background_changed_callback): Removed "changed"
signal handler on NautilusBackground since that's now handled
by the new nautilus_directory_background calls instead.
(fm_icon_view_begin_loading): Used nautilus_directory_background
to replace background customization code.
* src/file-manager/fm-icon-view.c: (fm_icon_view_get_zoom_level):
Fixed a bug where it would try to use view as an FMIconView after
the FM_IS_ICON_VIEW check failed.
* src/file-manager/fm-list-view.c: (create_list),
(fm_list_view_background_changed_callback): Removed "changed"
signal handler on NautilusBackground since that's now handled
by the new nautilus_directory_background calls instead.
(fm_list_view_begin_loading): Used nautilus_directory_background
to replace background customization code.
if the icon theme had never been set.
* libnautilus/nautilus-icon-factory.c:
(nautilus_icon_factory_initialize_class),
(nautilus_get_current_icon_factory): Moved theme initialization
from the former to the latter, because theme needs to be non-NULL
before initialize_class is called.
* components/services/startup/eazel-register.c:
(add_package_info):
* libnautilus/nautilus-file-utilities.c:
(nautilus_user_top_directory):
* libnautilus/nautilus-global_preferences.c:
(global_preferences_get_dialog):
* libnautilus/nautilus-icon-factory.c:
(nautilus_icon_factory_get_thumbnail_uri):
Removed unnecessary \n characters from g_warning, g_error, and
g_message calls.
* components/html/ntl-web-browser.c (browser_url_load_done):
Ettore says we should stop calling gtk_html_private_calc_scrollbars
and if it causes any problems then it's just a bug in GtkHTML
that should be fixed,.
* src/ntl-window-msgs.c:
Reformatted the code as a first step for some changes
that will make the state machine easier to understand.
* src/file-manager/fm-directory-view.c,
src/file-manager/fm-directory-view.h
(fm_directory_view_set_selection): New function.
(set_selection): New virtual method that must by implemented by
subclasses.
(add_nautilus_file_to_uri_map, remove_nautilus_file_from_uri_map,
free_file_by_uri_map_entry, free_file_by_uri_map): New functions
to manage a hash table mapping from uri strings to NautilusFile
objects.
(notify_selection_change_cb): New function; on a selection change
notification, either set the selection immediately if the view has
completed loading, or establish it as pending.
(display_pending_files): Maintain the uri -> file hash table on
notifications from the model; do any pending selections required
when loading completes.
* src/file-manager/fm-list-view.c (fm_list_view_set_selection):
New function to implement `set_selection' virtual method.
* src/file-manager/fm-icon-view.c (fm_icon_view_set_selection):
New function to implement `set_selection' virtual method.
* libnautilus/nautilus-list.c (nautilus_list_set_selection): New
function: set the selection to a specified set of rows.
* libnautilus/nautilus-icon-container.c,
libnautilus/nautilus-icon-container.h
(nautilus_icon_container_set_selection): New function: set the
selection to a specified set of icons.
Fixed bug 346 (Bad icon positions when you change user level).
Fixed bug 372 (Better icons for common file types).
* libnautilus/nautilus-background-canvas-group.c:
(nautilus_background_canvas_group_draw): Got rid of the colormap
which is not needed now that we use gtk_rgb instead of gtk_color
calls. Passed in the corner of the canvas as a parameter to
nautilus_background_draw so it knows where the origin of any
repeating pattern should be.
* libnautilus/nautilus-background.h:
* libnautilus/nautilus-background.c: (nautilus_background_draw):
Added parameters to determine where the origin of any repeating
pattern should be. Removed colormap parameter (see above).
(nautilus_background_draw_flat_box): Passed in origin parameters
in call to nautilus_background_draw.
* libnautilus/nautilus-gdk-extensions.h:
* libnautilus/nautilus-gdk-extensions.c:
(nautilus_fill_rectangle_with_gradient): Removed colormap
parameter (see above).
* libnautilus/nautilus-gdk-pixbuf-extensions.c:
(nautilus_gdk_pixbuf_render_to_drawable_tiled): Fixed the tiling
so it will use the dither parameters to set the origin of the
tiles as well.
* libnautilus/nautilus-icon-dnd.c: (receive_dropped_tile_image),
(nautilus_icon_container_receive_dropped_icons): Added code so that
dropping an image file on the window with the shift key held down
will customize the background tile image.
* libnautilus/nautilus-icon-factory.c: (make_full_icon_path),
(get_themed_icon_file_path): Fixed two bugs that prevented
MIME-type-based icons from working correctly. First, got rid of
code that tried to prepend the theme name and "nautilus/" to the
beginning of a full path. Then made sure that it tries the file
name without adding a suffix before it starts trying out suffixes.
* libnautilus/nautilus-icon-grid.c: (nautilus_icon_grid_clear):
Fixed bug where clearing the grid was resetting the visible width.
* components/sample/Makefile.am:
* components/services/startup/Makefile.am:
Turned on -Werror for these two directories.
* components/sample/nautilus-sample-content-view.h:
* components/sample/nautilus-sample-content-view.c:
(nautilus_sample_content_view_destroy), (bonobo_sample_callback):
Fixed warnings and did some small cleanup.
there are various odds and ends I still need to clean up.
It turned out (surprise!) that there was a lot of
underpinnings work involved in implementing this feature.
Fortunately most of it will be shared by rename-in-place.
* libnautilus/nautilus-directory-private.h:
add #define for METADATA_NODE_NAME_FOR_FILE_NAME
* libnautilus/nautilus-directory.c:
(nautilus_directory_get_file_metadata_node): Use
METADATA_NODE_NAME_FOR_FILE_NAME #define
(nautilus_directory_set_file_metadata): Use g_return_val_if_fail
to prevent callers from changing the file name this way, since
that wouldn't work right.
* libnautilus/nautilus-file.h:
* libnautilus/nautilus-file.c:
(nautilus_file_can_rename): New function, returns TRUE if the
user has write permission for this file.
(nautilus_file_rename): New function, uses gnome_vfs_move to
try to rename the file, updating metadata as appropriate.
Returns the GnomeVFSResult from gnome_vfs_move.
* libnautilus/nautilus-list.c
(row_selected): Renamed this formerly private function to
nautilus_list_is_row_selected and made it check its parameters
more carefully.
* libnautilus/nautilus-list.h:
(nautilus_list_is_row_selected): Made this public.
* src/file-manager/fm-error-reporting.c,
* src/file-manager/fm-error-reporting.h: New files, home for
UI code to display user error messages and such. It's initial
occupant is:
(fm_report_error_renaming_file): New function, puts up a non-modal
alert reporting the renaming failure.
* src/file-manager/Makefile.am: Add these two new files to the build.
* src/file-manager/fm-directory-view.c:
(bonobo_menu_open_properties_window_cb): New function, opens a
Properties window for each selected item using the Bonobo callback API.
(fm_directory_view_real_merge_menus): Include Set Properties item in
File menu, and rearrange other items a little.
(fm_directory_view_real_update_menus): Update sensitivity of Set
Properties menu item.
* src/file-manager/fm-list-view.c:
(add_to_list): Return the new row index.
(fm_list_view_file_changed): Remove and reinsert the changed file; this
not only does less sorting but also recomputes all the text so name
changes will be displayed.
* src/file-manager/fm-properties-window.c:
(get_pixmap_and_mask_for_properties_window),
(update_properties_window_icon),
(create_pixmap_widget_for_file),
(name_field_done_editing),
(name_field_update),
(update_properties_window_title),
(properties_window_file_changed_callback):
New functions used to wire up the new editable name field
and new icon pixmap widget in the properties window.
(create_properties_window): Added notebook tabs, first
one is Basic and currently contains icon & name; second
is Emblems and has all those checkboxes. Use all the
new functions to create and wire up things so that name
changes & icon changes are propagated and reflected correctly.
* src/nautilus-bookmarks-window.c:
(create_bookmarks_window): Removed a bunch of unnecessary
and leak-causing gtk_widget_refs that I happened to notice
in here. I left these behind when modifying code originally
created by glade, where the refs are necessary.
First cut at tiled background images.
There's no UI for setting them yet, they are only in
the icon view, and they don't work properly with scrolling yet.
* libnautilus/Makefile.am:
* libnautilus/nautilus-gdk-extensions.c:
* libnautilus/nautilus-gdk-extensions.h:
* libnautilus/nautilus-gdk-pixbuf-extensions.c:
* libnautilus/nautilus-gdk-pixbuf-extensions.h:
Split the GdkPixbuf stuff into its own file.
* libnautilus/nautilus-background.c:
(nautilus_background_destroy): Fixed a bunch of leaks
and added new code to stop pixbuf loading.
(nautilus_background_draw): Added call to draw tiled
background image. Converted gradients to use gdk_rgb
instead of gdk_color.
(nautilus_background_get_tile_image_uri): Implemented.
(nautilus_background_set_color): Added short-circuit
for background image case.
(load_image_callback),
(nautilus_background_set_tile_image_uri): Implemented.
Include code to load in the tiled image when its URI is set.
(nautilus_background_receive_dropped_color): Set the
tile image to NULL when a color is dropped.
* libnautilus/nautilus-gdk-extensions.c:
* libnautilus/nautilus-gdk-extensions.h:
(nautilus_fill_rectangle_with_color),
(nautilus_fill_rectangle_with_color),
(nautilus_interpolate_color): Changed from gdk_color
to gdk_rgb.
(nautilus_parse_rgb_with_white_default): Added function
for gdk_rgb similar to what we already have for gdk_color.
* libnautilus/nautilus-icon-canvas-item.c:
* libnautilus/nautilus-icon-container.c:
* libnautilus/nautilus-list.c:
Use gdk-pixbuf extensions in new location.
* libnautilus/nautilus-metadata.h:
Added metadata keys for background images.
* src/ntl-view.c:
Added lots of stronger checks for NAUTILUS_IS_VIEW since
this is where we run into trouble with a bug I ran into.
* src/file-manager/icon-view.c: Added code to handle
the new background images.
(create_icon_container): Keep around the handler ID when
connecting to the "changed" message of the background so
we can block the handler as needed.
(fm_icon_view_begin_loading): Load the background image
as well as the background color. We need to block the
background changed signal handler so we don't get
confused while the color but not the image is set up.
(fm_icon_view_background_changed_callback): Save the
background image URI as well as the background color in
the metadata.
to catch up.
* libnautilus/ntl-meta-view-frame.h:
* libnautilus/ntl-meta-view-frame.c:
Rewrote to use the new property bag. This requires us to
store our own properties, since the bag no longer provides
any storage.
(nautilus_meta_view_frame_initialize): Set up the label.
(nautilus_meta_view_frame_new_from_bonobo_control): Make it
actually take a BonoboControl instead of a BonoboObject and
make it set up the property bag.
(nautilus_meta_view_destroy): Free the label.
(autilus_meta_view_frame_set_label): Just set the label.
The property bag simply uses our stored label.
* components/html/ntl-web-browser.c (browser_url_load_gone):
Changed call to match name in new version of GtkHtml.
Unfortunately, the new name makes it clear the call is
intended to be private.
* components/rpmview/.cvsignore: Ignore the actual binary,
not nautilus-music-view.
* components/rpmview/Makefile.am: Turned on -Werror.
* components/music/Makefile.am: Turned on -Werror.
* components/rpmview/nautilus-rpm-view.c: Fixed warnings.
2000-03-31 Pavel Cisler <pavel@eazel.com>
Disable copy as a drag&drop operation for now. The current
copy engine doesn't handle conflicts properly yet and can
erase your files.
nautilus_directory_monitor_files_unref when he pushed the
"Up" button.
* libnautilus/nautilus-glib-extensions.c:
* libnautilus/nautilus-glib-extensions.h:
(nautilus_g_strv_find): Renamed the existing function
nautilus_g_strfindv to be more consistent with the rest
of glib, even though it's less consistent with the other
strv functions.
(nautilus_g_list_safe_for_each): Added an alternate
version of g_list_foreach that works even when the current
item is removed from the list inside the function.
* libnautilus/nautilus-gtk-extensions.c:
(nautilus_gtk_object_list_unref): Use the new safe version
of g_list_foreach so this works even on lists where the
objects remove themselves in their destroy/finalize methods.
This is the change that fixes the bug.
* src/nautilus-bookmark-list.c:
(nautilus_bookmark_list_load_file): Replaced some explicit
code with a call to nautilus_gtk_object_list_free.
* src/nautilus-index-title.c:
(nautilus_index_title_update_icon): Fixed a bug that would
prevent you from viewing the root level. The current version
of nautilus_file_get returns NULL for the root.
* src/nautilus-window-menus.c:
(clear_appended_bookmark_items): Replaced some explicit
code with a call to nautilus_g_list_free_deep.
* src/file-manager/fm-icon-text-window.c:
(synch_menus_with_preference): Updated to use the
nautilus_g_strv_find call by its new name.
* libnautilus/nautilus-file.c:
(nautilus_file_set_keywords): Did some minor tweaks to
simplify the no-keywords case.
and fixed some problems from my earlier check-ins today.
* libnautilus/nautilus-directory.c:
(nautilus_directory_monitor_files_ref):
Fixed a bad assert from my last check-in.
* src/file-manager/fm-list-view.c: (add_to_list):
The list view had the same missing ref that I fixed for icon
view in my last check-in.
* src/nautilus-index-title.c: (release_file),
(nautilus_index_title_destroy),
(nautilus_index_title_update_icon),
(nautilus_index_title_update_label),
(nautilus_index_title_update_info),
(nautilus_index_title_set_uri): Changed to hold around the
NautilusFile object and connect to its "changed" message to update
the file information. This causes the icon to get updated right
away when the custom icon is changed.
* libnautilus/nautilus-directory-private.h:
* libnautilus/nautilus-directory.c:
* libnautilus/nautilus-file-private.h:
* libnautilus/nautilus-file.c:
* libnautilus/nautilus-file.h:
Converted NautilusFile to be a GtkObject instead of a plain struct,
so it can have a "changed" signal. We still recommend using the
"files_changed" signal on the directory to avoid the overhead
of a signal connection for each file.
* libnautilus/nautilus-gtk-extensions.c:
* libnautilus/nautilus-gtk-extensions.h:
(nautilus_gtk_object_list_ref), (nautilus_gtk_object_list_unref),
(nautilus_gtk_object_list_free): Added some functions to be used
with a list of GtkObjects.
* libnautilus/nautilus-icon-factory.c:
(nautilus_icon_factory_get_icon_name_for_file):
Had to change the name of nautilus_file_get_type to avoid conflict
with the GtkObject standard get_type routine.
* libnautilus/nautilus-directory.c:
* libnautilus/nautilus-directory.h:
(nautilus_directory_ref), (nautilus_directory_unref):
Added convenience functions so people don't have to be constantly
reminded that a NautilusDirectory is a a GtkObject.
* libnautilus/nautilus-directory.c: (nautilus_directory_destroy):
Fixed a problem where the pending files callback might fire after
the NautilusDirectory is gone.
* libnautilus/nautilus-directory.c:
(nautilus_directory_destroy),
(nautilus_directory_monitor_files_ref),
(nautilus_directory_monitor_files_unref),
(dequeue_pending_idle_callback), (nautilus_directory_new_file):
* libnautilus/nautilus-file-private.h:
* libnautilus/nautilus-file.c:
(nautilus_file_get), (nautilus_file_ref), (nautilus_file_unref),
(nautilus_file_free), (nautilus_file_delete):
To prepare for changing NautilusFile to a GtkObject, made it use
ref counts in a way that is standard. Now the directory keeps a
list of the files, but only keeps a ref to the files if it is
monitoring them.
* src/file-manager/fm-directory-view.c: Tiny formatting tweak.
2000-03-28 Pavel Cisler <pavel@eazel.com>
More copy/move operations. Fixes a problem I introduced earlier where
drop onto a file would lock up Nautilus.
* components/sample/main.c (sample_make_object): Connect to the
"destroy" signal of the view_frame rather than the sample content
view object, to avoid a race condition where we might exit before
the view_frame is fully unreffed and has a chance to clean up.
components/sample/nautilus-sample-content-view.c
(nautilus_sample_content_view_destroy): Unref the
NautilusViewFrame when we are destroyed.
* libnautilus/nautilus-zoomable.c, libnautilus/ntl-view-frame.c,
libnautilus/ntl-content-view-frame.c,
libnautilus/ntl-meta-view-frame.c: Use boilerplate macros for
get_type method and to invoke parent destroy method.
* libnautilus/nautilus-zoomable.c, libnautilus/ntl-view-frame.c:
Unref the interface we query_local_interface for, to avoid holding
a superfluous ref to ourselves, since we eventually add_interface
that interface.
* src/ntl-view.c (nautilus_view_destroy_client): Use
bonobo_object_unref instead of bonobo_object_destroy.
* libnautilus/nautilus-background.h:
* libnautilus/nautilus-background.c:
Preparing for support for background images.
* libnautilus/nautilus-background.c:
* libnautilus/nautilus-debug.c:
* libnautilus/nautilus-icon-canvas-item.c:
* libnautilus/nautilus-icon-dnd.c:
Add those braces that Maciej, John, and the style guide all prefer.
* libnautilus/nautilus-file.c: (nautilus_file_set_metadata):
A change to metadata is considered a change to the file.
* libnautilus/nautilus-graphic-effects.c:
* libnautilus/nautilus-graphic-effects.h:
Added nautilus_ prefix to all the functions in here.
* libnautilus/nautilus-gtk-extensions.c:
* libnautilus/nautilus-gtk-extensions.h:
(nautilus_point_in_allocation), (nautilus_point_in_widget):
Added hit testing help functions that check if a point is
in a particular allocation/widget.
* libnautilus/nautilus-icon-dnd.c: (get_gnome_icon_list_selection):
Fixed a bug that happens when you get a 0-length piece of
selection data.
* libnautilus/nautilus-icon-dnd.h:
Changed the icon list back to "x-gnome-icon-list".
That's how the other GNOME folks want it, not "x-nautilus-icon-list".
* src/nautilus-index-tabs.c:
* src/nautilus-index-tabs.h:
* src/nautilus-index-title.c:
* src/nautilus-index-title.h:
* src/ntl-index-panel.c:
* src/ntl-index-panel.h:
lite -> light, Other cleanup.
* src/nautilus-index-title.c:
* src/nautilus-index-title.h:
(nautilus_index_title_hit_test_icon):
* src/ntl-index-panel.c:
(hit_test), (uri_is_local_image), (receive_dropped_uri_list),
(receive_dropped_color):
Added code needed to support dropping an image on the icon to set
a custom icon. This doesn't yet update the icon in the panel itself,
but I'll do that soon.
location; this is used initially (and most importantly) by web pages so that
bookmarks, the window title, and the index panel will display the html page title
rather than the url.
stuff that uses user levels a bit.
Removed switch handling of ETTORE user
level and added a default case for the unlikely (but poissible)
event when the ~/.gnome/nautilus preferences file contains bogus
values for the user_level enumeration.
* libnautilus/nautilus-icon-canvas-item.c: (hit_test_pixbuf):
Fixed a typo-type error where we were checking every pixel of the
pixbuf instead of only the pixels that we were hit testing against.
* libnautilus/nautilus-icon-container.c: Tweaks.
Fixes bugs #314, #324, and #325.
* components/help/hyperbola.goad:
Corrected repo_ids -> repo_id, reported by Richard Hult.
* src/nautilus.goad:
Added missing = character, reported by Richard Hult.
* libnautilus/gnome-icon-container-grid.c:
* libnautilus/gnome-icon-container-grid.h:
* libnautilus/gnome-icon-container.c:
* libnautilus/gnome-icon-container-private.h:
Made the icon grid handle negative coordinates.
Removed most of the icon grid code.
Reimplemented the arrow keys. They should work again.
* libnautilus/nautilus-gnome-extensions.c:
* libnautilus/nautilus-gnome-extensions.h:
(nautilus_art_irect_contains_irect):
Added another helper function.
* libnautilus/nautilus-icons-view-icon-item.c:
* libnautilus/nautilus-icons-view-icon-item.h:
* libnautilus/gnome-icon-container.c:
* libnautilus/gnome-icon-container-private.h:
Added user data to each canvas item and got rid of the hash table
that maps canvas items to icons.
* RENAMING: Tweaks.
2000-03-20 Pavel Cisler <pavel@eazel.com>
Center the sort order indicators inside a title better. Make the column
title label spacing more like the old CtkCList.
* libnautilus/gnome-icon-container-grid.h:
* libnautilus/gnome-icon-container-grid.c:
* libnautilus/gnome-icon-container.c:
Rewrote the routines to not have a separate concept of the
actual grid height and the allocated grid height. Most important
change was to update the first_free variables when resizing.
* src/file-manager/fm-directory-view-icons.h:
* src/file-manager/fm-directory-view-icons.c:
(fm_directory_view_icons_line_up_icons):
Removed the unused line_up_icons call. This feature will return,
but for now it's just a waste of space.
* libnautilus/gnome-icon-container-grid.h:
* libnautilus/gnome-icon-container-grid.c:
* libnautilus/gnome-icon-container-private.h:
* libnautilus/gnome-icon-container.c:
* libnautilus/nautilus-icons-view-icon-item.c:
* libnautilus/nautilus-icons-view-icon-item.h:
Simplified the grid a bit and did some redesign. The grid now
takes into account the height and width of the icons. More work
to come.
* libnautilus/nautilus-global-preferences.c:
* nautilus-widgets/nautilus-preferences.h:
Some cleanup, including types for constants.
* libnautilus/nautilus-gnome-extensions.h:
* libnautilus/nautilus-gnome-extensions.c:
(nautilus_art_irect_equal), (nautilus_art_drect_equal),
(nautilus_gnome_canvas_item_get_current_canvas_bounds),
(nautilus_gnome_canvas_item_request_redraw),
(nautilus_gnome_canvas_request_redraw_rectangle),
(nautilus_gnome_canvas_item_get_world_bounds):
More useful canvas and libart routines.
* RENAMING: More renaming ideas.
* HACKING: Tell people about the gnome-xml branch.
* libnautilus/Makefile.am:
* libnautilus/gnome-icon-container-grid.c:
* libnautilus/gnome-icon-container-grid.h:
* libnautilus/gnome-icon-container-private.h:
* libnautilus/gnome-icon-container.c:
Broke out the grid code from the main container code.
This is a first step toward improving the layout code.
* libnautilus/nautilus-directory-private.h:
* libnautilus/nautilus-directory.c:
* libnautilus/nautilus-directory.h:
* src/fm-directory-view.c:
Got started on making the directory I/O async.
There's still a long way to go, this was a baby step.
* libnautilus/nautilus-bookmark.c:
* libnautilus/nautilus-bookmark.h:
* libnautilus/nautilus-self-checks.c:
General cleanup.
* libnautilus/nautilus-file.h:
Rearranged a little bit.
* libnautilus/nautilus-file-utilities.c:
Put FIXME in where there's code that needs to be changed.
* libnautilus/Makefile.am:
* libnautilus/nautilus-xml-extensions.c:
* libnautilus/nautilus-xml-extensions.h:
Added some new gnome-xml helper functions.
* libnautilus/nautilus-directory.c:
(nautilus_directory_get_file_metadata_node):
* libnautilus/nautilus-file.c:
(nautilus_file_get_keywords):
(nautilus_file_set_keywords):
* libnautilus/nautilus-icon-factory.c:
(get_child_node_by_property):
(get_themed_icon_file_path):
* src/nautilus-bookmarklist.c:
(nautilus_bookmarklist_load_file):
Changed to use the new helper functions.
* src/nautilus-bookmarklist.c:
(nautilus_bookmarklist_save_file): Changed direct uses of root to
use xmlDocGet/SetRootElement while I was editing the file. I
think this is the same change Pavel made but wasn't able to check
in.
* src/nautilus-bookmarklist.c:
General cleanup.
embedded text fits in each icon.
* icons/eazel/Makefile.am, icons/eazel/i-regular.xml: Added the
file to specify attributes of icons. Specifically added the
attribute that says there is space for embedded text in the
Eazel-theme regular icon.
* libnautilus/nautilus-icon-factory.h:
* libnautilus/nautilus-icon-factory.c:
(get_child_node_by_property), (get_themed_icon_file_path),
(get_icon_file_path), (nautilus_icon_factory_get_thumbnail_uri),
(load_specific_image), (load_image_for_scaling),
(get_image_from_cache), (load_image_scale_if_necessary),
(nautilus_icon_factory_get_pixbuf_for_icon),
(nautilus_icon_factory_get_pixbuf_for_file):
Added code to read a rectangle for the embedded text along with
the icon, cache it with the icon, scale it with the icon, and
return it to the caller along with the icon.
* libnautilus/nautilus-icons-view-icon-item.c:
(nautilus_icons_view_icon_item_initialize_class),
(nautilus_icons_view_icon_item_set_arg),
(nautilus_icons_view_icon_item_get_arg),
(nautilus_icons_view_icon_item_get_image),
(nautilus_icons_view_icon_item_set_image),
(nautilus_art_irect_to_gdk_rectangle),
(draw_mini_text), (draw_embedded_text),
(nautilus_icons_view_icon_item_draw):
Changed the code that draws the embedded text to respect the
text rectangle passed in. Changed the pixbuf setting to use a
function instead of the arg interface and take a text rectangle
along with the pixbuf.
* libnautilus/gnome-icon-container-dnd.c
(gnome_icon_container_dnd_begin_drag):
* libnautilus/gnome-icon-container.c:
(icon_get_actual_size): Got rid of callers who were using the arg
interface to get at the image of an icon
("NautilusIconsViewIconItem::pixbuf").
* src/file-manager/fm-directory-view-icons.c:
(get_icon_property_cb): Get rid of hard-coded rule that only
themes with eazel at the front of their names can display text
inside the icons.
* libnautilus/gnome-icon-container.c:
(icon_new): Fixed a bug where icons would be super-tiny if they
got too big, like if you entered a directory that was zoomed all
the way in.
(start_stretching), (ungrab_stretch_icon), (end_stretching),
(gnome_icon_container_show_stretch_handles): Added code to grab
the pointer while stretching an icon.
(item_event_cb): Added a return statement that John forgot when
he was editing. Without that, it was falling through to the next
case, which had the same effect anyway.
(update_icon): Pass the text rectangle through from the icon
factory to the icon canvas item, using the new call instead of the
old arg interface approach.
* components/help/.cvsignore: Added entries for
.la and .lo files.
* components/help/Makefile.am:
* components/help/hyperbola-nav-index.c:
* components/help/hyperbola-nav-search.c:
* libnautilus/nautilus-directory-private.h:
* libnautilus/nautilus-directory.c:
* src/nautilus-bookmarklist.c:
Fixed flags for gnome-xml
includes. Someone pointed out that you are supposed to include
these as "#include <tree.h>", not "#include <gnome-xml/tree.h>" so
I fixed our uses to work that way.
* libnautilus/nautilus-directory.c:
(nautilus_directory_get_file_metadata_node): Fixed code that was
destroying something allocated by gnome-xml with g_free instead
of xmlFree.
* libnautilus/nautilus-file.c:
(nautilus_file_get_keywords), (nautilus_file_set_keywords):
Fixed storage leak where we were getting a property and not freeing it.
* libnautilus/nautilus-default-file-icon.h:
* libnautilus/nautilus-default-file-icon.c:
* libnautilus/nautilus-icon-factory.c:
(load_image_for_scaling): Got rid of the global that tells whether
the default icon has an alpha channel -- it's not hardwired TRUE.
2000-03-14 Jonathan Blandford <jrb@redhat.com>
* libnautilus/gnome-icon-container-dnd.c (drag_drop_cb): Add a
gtk_drag_finish to hopefully solve half the flying windows
problem. Needs more thought then this, though...
* libnautilus/nautilus-directory.c (nautilus_directory_get):
Fixed bug that caused a core dump when getting at the root
directory because all the '/' characters were stripped off
the URI.
* /src/file-manager/fm-directory-view.c:
* nautilus-widgets/nautilus-preferences.c:
Tiny formatting fixes.
* libnautilus/nautilus-string-list.h:
* libnautilus/nautilus-string-list.c:
A quick cleanup pass on the NautilusStringList class:
Changed uses of gchar to char, changed g_assert to g_return_if_fail
as appropriate. Fixed brace style to be emacs-friendly (open brace
on same line as if statement). Fixed spelling of delimiter.
Got rid of some unnecessary special cases for NULL and sped up
the _equal function be eliminating the redundant length check.
Changed the self-check so that it doesn't write a warning to the
log when it runs.
* libnautilus/nautilus-global-preferences.c,
* libnautilus/nautilus-global-preferences.h:
(nautilus_global_preferences_get_meta_view_iids) Add a table of
meta view iids and a function to retrieve them. This is a hack
until we have better runtime detection of components.
Add some better defaults for which meta views are shown. By
default none were shown. Undo a previous gnome_config default
hack. There is now a better fix in place in the prefs code.
* nautilus-widgets/nautilus-preferences.c:
(nautilus_preferences_make_gnome_config_string) A new function to
make a string as expected by gnome_config with a trailing default
value. Use this string to fetch the value of the preferences.
* src/Makefile.am,
src/ntl-prefs.c,
src/ntl-prefs.h,
src/nautilus-window-menus.c,
src/nautilus.h:
Retire ntl-prefs.c and ntl-prefs.h. Remove these 2 from build and
all references to them.
* src/ntl-app.c:
(nautilus_app_startup, nautilus_app_destroy) No need to call
retired ntl-prefs functions.
* src/ntl-uri-map.c:
(add_meta_view_iids_from_preferences): New function. Factor out
meta iid setup code into one place. Replace the static meta iid
setup code with something that looks in preferences to see which
meta views are enabled. Next step is to make the meta view
respond to pref changes.
* nautilus-widgets/nautilus-preferences.c:
(pref_hash_info_remove_callback) Properly remove the item from
the list so that we dont crash later trying to munge a NULL node.
* libnautilus/nautilus-global-preferences.h:
(NAUTILUS_PREFERENCES_USER_LEVEL) Make sure the user level
defaults to hacker.
*libnautilus/nautilus-lib-self-check-functions.h: Added string
table tests hooks.
*libnautilus/nautilus-string-list.c,
libnautilus/nautilus-string-list.h: New class to deal with lists
of strings in a type safe manner. Also added self tests for this
class.
* nautilus-widgets/nautilus-preferences.c:
(prefs_set_pref, nautilus_preferences_register_from_info,
nautilus_preferences_register_from_values): Make the preference
changes persistent.
*nautilus-widgets/nautilus-preferences-item.c,
nautilus-widgets/nautilus-preferences-item.h,
nautilus-widgets/nautilus-preferences.c,
nautilus-widgets/nautilus-preferences.h,
nautilus-widgets/test-nautilus-widgets.c:
Dont use GtkFunadamentalType, since we obviously wont support
all fundamantal gtk types as preferences. Use an enum instead.
Makes the preferences type whacking code exactly 14.85% more type
safe.
* libnautilus/nautilus-icons-view-icon-item.c
(nautilus_icons_view_icon_item_point):
Fixed typo that broke all hit testing except for rubber band
selection! (Sorry.)
* libnautilus/gnome-icon-container-dnd.c
(set_gnome_icon_list_selection, set_uri_list_selection),
libnautilus/gnome-icon-container-private.h,
libnautilus/gnome-icon-container.h,
libnautilus/gnome-icon-container.c
(gnome_icon_container_get_icon_uri,
gnome_icon_container_initialize_class, gnome_icon_container_new,
update_icon, gnome_icon_container_update,
gnome_icon_container_request_update),
src/file-manager/fm-directory-view-icons.c (create_icon_container,
get_icon_images_cb, get_icon_uri_cb, get_icon_text_cb,
get_icon_property_cb): Change code that used to use a separate
controller object to just use signals on the icon container
instead.
* libnautilus/nautilus-gtk-extensions.h,
libnautilus/nautilus-gtk-extensions.c,
src/file-manager/fm-directory-view.c: Add new signal marshal
functions as needed and changed the name of one of the old
functions.
* libnautilus/Makefile.am,
libnautilus/nautilus-icons-controller.h,
libnautilus/nautilus-icons-controller.c,
src/file-manager/Makefile.am,
src/file-manager/fm-icons-controller.h,
src/file-manager/fm-icons-controller.c: Removed the old controller
object, it was a bad idea.
* libnautilus/Makefile.am, libnautilus/gnome-icon-container-dnd.c
(set_gnome_icon_list_selection,
gnome_icon_container_dnd_begin_drag),
libnautilus/gnome-icon-container.c (icon_is_in_region,
start_stretching), libnautilus/nautilus-icons-view-icon-item.h,
libnautilus/nautilus-icons-view-icon-item.c (hit_stretch_handle,
hit_test_pixbuf, hit_test, nautilus_icons_view_icon_item_point,
nautilus_icons_view_icon_item_get_icon_world_rectangle,
nautilus_icons_view_icon_item_get_icon_rectangle,
nautilus_icons_view_icon_item_get_icon_window_rectangle,
nautilus_icons_view_icon_item_get_hit_stretch_handle,
hit_stretch_handle,
nautilus_icons_view_icon_item_hit_test_stretch_handles,
nautilus_icons_view_icon_item_hit_test_rectangle):
Fixed rubber banding to hit test with all the parts of the icon,
not just the icon pixbuf itself. Did this by changing all the
internal hit testing to use rects instead of points. At the same
time changed the external interface to always use world
coordinates for clarity.
* libnautilus/nautilus-directory.c (compare_file_with_name),
libnautilus/nautilus-file.c (nautilus_file_set_keywords): Fixed
some void * problems that upset newer versions of GCC but not the
older one that I'm using.
* libnautilus/nautilus-gtk-extensions.h,
libnautilus/nautilus-gtk-extensions.c: Formatting and include
statements fix up.
2000-03-10 Jonathan Blandford <jrb@redhat.com>
* libnautilus/gnome-icon-container.c (button_press_event): Avoid a
bug where we get stuck grabs when you double click.
* src/ntl-window.c, src/ntl-window.h: store zoom_control object in
the window.
* src/nautilus-zoomable-frame-svr.c: New file; implement CORBA
server for Nautilus::ZommableFrame interface.
* src/ntl-view-private.h: prototypes for shared stuff needed to make
this work.
* src/ntl-view.c: Attach a Nautilus::ZoomableFrame interface to
the Nautilus::ViewFrame.
* libnautilus/nautilus-gtk-extensions.h,
libnautilus/nautilus-gtk-extensions.c
(nautilus_gtk_marshal_NONE__DOUBLE): New function.
* libnautilus/gnome-icon-container.c (set_scroll_region):
It turns out that you aren't intended to reset the scroll region
once you have items in the canvas. We need to do that, so I had
to write some code that would update all the items when that happens.
* libnautilus/nautilus-icons-view-icon-item.c:
(recompute_bounding_box): Rewrote this to not assume that the
icon items are all top-level items.
(compute_text_rectangle, hit_test,
nautilus_icons_view_icon_item_bounds): Change hit testing so
it includes hits on the text. The rubberband still has to be
fixed so it doesn't have the same problem.
* libnautilus/nautilus-file.c: Improved a comment.
* RENAMING: Some more name changes.
2 small fixes: tweaked constants used for pre-lighting icons and
fixed bug in music view where track numbers were displayed as -1 if
they were not present in the id3 data; now they are blank.
* libnautilus/nautilus-zoomable.c
(impl_Nautilus_Zoomable__create): Pass the correct thing as the
servant to avoid crashing on instantiation.
(nautilus_zoomable_real_set_bonobo_control): ref and sink the
BonoboControl Gtk object.
(nautilus_zoomable_destroy): unref the control instead of
destroying.
* nautilus-icons-view-icon-item.c (emblem_layout_next,
nautilus_icons_view_icon_item_bounds):
Andy's check-in yesterday accidentally rolled out some changes
to this file. The changes include the typos that John and I had
fixed in emblem_layout_next and nautilus_icons_view_icon_item_bounds.
* nautilus-icons-view-icon-item.c:
As Andy was about to do anyway, I tightened up the emblem
positioning so they are closer to each other by changing the
hard-coded constant EMBLEM_SPACING.
* libnautilus/nautilus-directory-private.h,
libnautilus/nautilus-directory.c, libnautilus/nautilus-file.c
(nautilus_directory_find_file, compare_file_with_name,
nautilus_directory_get, nautilus_file_get): Fixed bugs relating to
multiple directory and file objects for the same entity. Stripped
trailing '/' characters in nautilus_directory_get and changed
nautilus_file_get to return already-existing files instead of
always creating new ones. Added self-checks to make sure this
works.
* libnautilus/nautilus-directory.c
(nautilus_directory_try_to_read_metafile): Fixed bug where
metafile reading would fail. The gnome-xml parser requires a null
character at the end of the file, even though the size is passed
in!
* libnautilus/nautilus-directory.c
(nautilus_directory_remove_write_metafile_idle,
nautilus_directory_finalize,
nautilus_directory_try_to_write_metafile,
nautilus_directory_request_write_metafile, ): Changed metafile
writing so it always happens at idle time.
* libnautilus/nautilus-directory.c
(nautilus_directory_try_to_read_metafile): Fixed bug where
metafile reading would fail. The gnome-xml parser requires a null
character at the end of the file, even though the size is passed
in!
* libnautilus/nautilus-lib-self-check-functions.h: Changed order
so lower-level tests come before higher-level ones.
* libnautilus/nautilus-string.h, libnautilus/nautilus-string.c:
Renamed functions:
nautilus_has_prefix -> nautilus_str_has_prefix
nautilus_strdup_prefix -> nautilus_str_get_prefix
nautilus_has_suffix -> nautilus_str_has_suffix
nautilus_strstrip -> nautilus_str_strip_chr
nautilus_string_to_int -> nautilus_str_to_int
nautilus_eat_string_to_int -> nautilus_eat_str_to_int
Changed nautilus_str_strip_chr not to modify in place.
Added nautilus_str_strip_trailing_chr.
* components/music/nautilus-music-view.c (is_mp3_file,
nautilus_music_view_update_from_uri),
libnautilus/nautilus-icon-factory.c
(nautilus_icon_factory_get_icon_for_file, make_thumbnail_path,
load_specific_image), libnautilus/nautilus-icons-view-icon-item.c
(draw_mini_text), src/ntl-index-panel.c (command_button_cb,
add_command_buttons), src/ntl-window-msgs.c
(nautilus_window_change_location_2),
src/file-manager-fm-directory-view-icons.c
(fm_directory_view_icons_compute_menu_item_info),
src/file-manager/fm-directory-view.c (compute_menu_item_info),
src/file-manager/fm-icons-controller.c
(fm_icons_controller_get_icon_property): Switched callers to use
new names for string calls.
* libnautilus/gnome-icon-container.c (destroy): Reformatting.
* components/help/converters/gnome-info2html2/main.c (main):
Fixed a warning.
* libnautilus/Makefile.am: Install libnautilus.h
* src/ntl-uri-map.c: Handle mapping of special schemes
(i.e. unknown to gnome-vfs). Currently just 'irc'.
which will cause it to have emblems attached to its icon.
* libnautilus/gnome-icon-container.h,
libnautilus/gnome-icon-container.c (gnome_icon_container_update,
gnome_icon_container_update_icon),
libnautilus/nautilus-directory-private.h,
libnautilus/nautilus-directory.c
(nautilus_directory_files_changed), libnautilus/nautilus-file.h,
libnautilus/nautilus-file.c (nautilus_file_changed),
src/file-manager/fm-directory-view.h,
src/file-manager/fm-directory-view.c,
src/file-manager/fm-directory-view-icons.c,
src/file-manager/fm-directory-view-list.c,: Add files_changed
machinery in so views will notice changes to a NautilusFile.
* libnautilus/nautilus-icon-factory.h,
libnautilus/nautilus-icon-factory.c
(nautilus_icon_factory_get_thumbnail_uri,
nautilus_icon_factor_get_icon_for_file, check_for_thumbnails),
libnautilus/nautilus-icons-controller.h,
libnautilus/nautilus-icons-controller.c,
(nautilus_icons_controller_update_icon),
src/file-manager/fm-icons-controller.c
(fm_icons_controller_update_icon): Use the files_changed machinery
instead of a special case in the icon controller to tell the view
about a new thumbnail.
* libnautilus/nautilus-icons-view-icon-item.c
(emblem_layout_next): Fixed typo that caused emblems to go down
one side of the icon instead of going around.
* libnautilus/nautilus-directory-private.h,
libnautilus/nautilus-directory.c
(nautilus_directory_get_file_metadata_node,
nautilus_directory_request_write_metafile),
libnautilus/nautilus-file.c (nautilus_file_set_keywords):
Implemented the set_keywords operation so we can change the
keywords for a file.
* src/file-manager/fm-icon-text-window.c
(create_icon_text_window): Fixed a prototype.
* src/file-manager/fm-properties-window.c (property_button_update,
property_button_toggled, create_properties_window,
fm_properties_window_get_or_create): Implement a first cut at a
properties window.