2001-04-20 Gene Z. Ragan <gzr@eazel.com>
reviewed by: Darin Adler <darin@eazel.com>
Fixed bug 8073, roll over Red Hat patches for their
"plug-n-play" feature to Nautilus.
The code does not use magicdev, but instead uses our
distribution agnostic volume monitor to achieve identical,
and in some cases superior, results.
* libnautilus-extensions/nautilus-volume-monitor.c: (floppy_sort),
(nautilus_volume_monitor_get_target_uri),
(nautilus_volume_monitor_should_integrate_trash),
(mount_volume_get_name), (mount_volume_activate),
(mount_volume_deactivate), (mount_volume_floppy_add),
(mount_volume_ext2_add), (mount_volume_udf_add),
(mount_volume_vfat_add), (mount_volume_msdos_add),
(mount_volume_iso9660_add), (mount_volume_affs_add),
(mount_volume_auto_add), (mount_volume_cdda_add),
(mount_volume_fat_add), (mount_volume_hpfs_add),
(mount_volume_hsfs_add), (mount_volume_minix_add),
(mount_volume_nfs_add), (mount_volume_proc_add),
(mount_volume_reiserfs_add), (mount_volume_ufs_add),
(mount_volume_smb_add), (mount_volume_unsdos_add),
(mount_volume_xenix_add), (mount_volume_xiafs_add), (find_volumes),
(create_volume), (copy_volume), (mount_volume_add_filesystem):
Determine device type when performing volume type specific mount tasks.
* libnautilus-extensions/nautilus-volume-monitor.h:
Add new device type enumeration.
* src/file-manager/fm-desktop-icon-view.c: (create_mount_link):
* src/nautilus-application.c: (volume_mounted_callback):
Check for cdroms being mounted and open a window to the cdrom
mount point if the user has specified that behavior in the
gnome preferences.
2001-04-20 John Harper <jsh@eazel.com>
reviewed by: Darin Adler <darin@eazel.com>
* src/nautilus-window-manage-views.c
(get_topmost_nautilus_window): call
eel_gtk_window_is_on_current_workspace_and_area () when
searching for a window to reuse.
Also renamed this as
get_topmost_nautilus_window_in_current_workspace_and_area (),
and changed the single caller
fail after you toggled the desktop on and off.
* src/nautilus-application.c: (nautilus_application_startup):
Don't pass the desktop window as callback data.
(desktop_location_changed_callback): Use the desktop window global
instead of callback data.
moved from one directory to another.
* libnautilus-extensions/nautilus-directory-private.h:
* libnautilus-extensions/nautilus-directory-async.c:
(nautilus_directory_remove_file_monitors),
(nautilus_directory_add_file_monitors): New calls to remove a
file's monitors from one directory and add it to another.
* libnautilus-extensions/nautilus-file.c:
(nautilus_file_set_directory): Call the new calls.
* configure.in: Paths from change yesterday were wrong. Had to fix
them to make RPM builds work again.
* libnautilus-extensions/nautilus-link.c:
(nautilus_link_local_create_from_gnome_entry): Fix, based on patch
from fcrozat@mandrakesoft.com, to handle the URL versions
of gnome-entry properly.
* src/nautilus-application.c: (nautilus_application_startup):
Do the required directory check only if the nautilus shell is not
about to be killed. As a side effect of the new desktop location
preference, the required directory code now checks preferences.
Unfortunately, at this stage in the game, nautilus preferences
might not be initialized, causing assertions. This only occurs in
the "nautilus --quit" case.
"Linux"
* src/nautilus-first-time-druid.c: (set_up_user_level_page),
(update_finished_label):
Use the new eel function eel_get_operating_system_name() to find
out the right name to use so we dont have to hard code it to
something offensive to someone somewhere on some galaxy far far
away (or close)
2001-04-20 Seth Nickell <snickell@stanford.edu>
* libnautilus-extensions/nautilus-global-preferences.c:
* src/nautilus-application.c: (desktop_location_changed_callback):
Fix the condition of assertions when toggling the desktop directory
location if the desktop window is not being displayed.
* src/nautilus-preferences-dialog.c:
Restore Seth's Home directory is desktop preference which i
accidentally clobbered with a previous checkin. Sorry.
view.
* libnautilus/nautilus-view-standard-main.c:
(nautilus_view_standard_main_multi):
Move the post initialization callback to before the
component's factory creation. Otherwise bad things can happen if
the component assumes that its post init function has already been
called while in its factory code. For example, if the post init
function initialized nautilus preferences and the component
factory executes code that uses nautilus preferences.
* libnautilus-extensions/Makefile.am:
* libnautilus-extensions/nautilus-preferences-dialog.c:
* libnautilus-extensions/nautilus-preferences-dialog.h:
Retire this class. It was a bad idea to use subclassing for the
specific use of the preferences dialog in nautilus. Hooking
signals up to a regular GnomeDialog is good enough.
* libnautilus-extensions/nautilus-global-preferences.h:
* libnautilus-extensions/nautilus-global-preferences.c:
(global_preferences_install_defaults),
(nautilus_global_preferences_initialize):
Remove the implementation of the Nautilus preferences dialog from
here. That is something that is specific to the Nautilus shell.
The code lives in the Nautilus shell itself now.
* libnautilus-extensions/nautilus-preferences-box.h:
* libnautilus-extensions/nautilus-preferences-box.c:
(nautilus_preferences_box_initialize),
(preferences_box_select_pane),
(preferences_box_category_list_recreate),
(preferences_box_add_pane), (nautilus_preferences_box_update),
(preferences_box_find_pane), (preferences_box_populate_pane),
(nautilus_preferences_box_populate), (user_level_changed_callback),
(nautilus_preferences_dialog_new):
Add support for building preference boxes using structures to
describe them. Also add a convenience function for creating a
GnomeDialog with a preference box as its sole child.
* libnautilus-extensions/nautilus-preferences-pane.c:
* libnautilus-extensions/nautilus-preferences-pane.h:
(nautilus_preferences_pane_add_item_to_nth_group): Remove this
function as its no longer used.
* libnautilus-extensions/nautilus-sidebar-functions.h:
* libnautilus-extensions/nautilus-sidebar-functions.c:
(sidebar_panel_make_preference_key):
Make the known sidebar panel enabled preference keys public as
string constants.
* src/Makefile.am:
* src/nautilus-preferences-dialog.h:
* src/nautilus-preferences-dialog.c:
(dialog_button_clicked_callback), (dialog_close_callback),
(preferences_dialog_create),
(global_preferences_populate_sidebar_panels_callback),
(preferences_dialog_populate_sidebar_tabs_group),
(preferences_dialog_destroy), (global_preferences_get_dialog),
(nautilus_preferences_dialog_show):
Move the implementation of the Nautilus preference dialog into the
Nautilus shell itself.
* src/nautilus-window-menus.c: (user_level_customize_callback):
Update for new preference dialog show function.
* components/hardware/main.c: (main):
* components/help/hyperbola-main.c: (main):
* components/history/nautilus-history-view.c: (main):
* components/image-viewer/nautilus-image-view.c: (main):
* components/music/main.c: (main):
* components/notes/Makefile.am:
* components/notes/nautilus-notes.c: (main):
* components/text/main.c: (main):
* components/throbber/main.c: (main):
Make all standard components call the eel function to stop in the
debugger after warnings and criticals. This also makes then spew
nicer messages that include the process id and program name.
2001-04-19 Seth Nickell <snickell@stanford.edu>
reviewed by: Darin Adler <darin@eazel.com>
* libnautilus-extensions/nautilus-global-preferences.c:
* libnautilus-extensions/nautilus-global-preferences.h:
Add a preference for having the desktop directory point at the
Unix homedir rather than the default Nautilus desktop directory.
* libnautilus-extensions/nautilus-file-utilities.c:
(nautilus_get_desktop_directory):
Check the preference and return the appropriate directory.
* src/nautilus-application.c: (nautilus_application_startup),
(confirm_ok_to_run_as_root), (desktop_location_changed_callback):
Add a callback for updating the desktop when the preference
changes.
* src/nautilus-desktop-window.h:
* src/nautilus-desktop-window.c:
(nautilus_desktop_window_update_directory),
(nautilus_desktop_window_new):
Add boolean variable affect_desktop_on_next_location_change to
allow reloading of the desktop dir (rather than loading on open
in to a new/toplevel window). Add a function for telling the
desktop window to point to the updated destkop location.
* src/nautilus-window-manage-views.c: (open_location):
Check whether this open should be done in the desktop itself or
if we should open a new window (/ recycle an existing window).
nautilus to freeze):
* libnautilus-extensions/nautilus-file-operations.c:
(transfer_info_destroy): Destroy the hash table in a way that
ignores the values. This is just a loose end from changes I made
to the copy machinery a few days back.
* libnautilus-extensions/nautilus-monitor.h:
Add missing include to fix build.
* libnautilus-extensions/nautilus-monitor.h:
* libnautilus-extensions/nautilus-monitor.c:
(nautilus_monitor_active): New function to check if
the monitoring is working. We'll use this to decide
whether or not to do the "reload the desktop every
4 seconds hack" that Miguel is going to check in soon.
* libnautilus-extensions/nautilus-volume-monitor.c:
(mount_volume_get_name), (mount_volume_activate),
(mount_volume_deactivate), (get_cdrom_type):
Fixed some Solaris build problems with patch by
Laszlo Peter <Laszlo.Peter@ireland.sun.com>.
* libnautilus-extensions/nautilus-cdrom-extensions.h:
Added missing include needed to build on Solaris
from the same patch.
2001-04-19 Christopher James Lahey <clahey@ximian.com>
reviewed by: Darin Adler <darin@eazel.com>
* libnautilus-extensions/nautilus-icon-canvas-item.c
(real_map_pixbuf): Changed map_pixbuf to real_map_pixbuf.
(map_pixbuf): This now checks if rendered_pixbuf exists and
matches the needed pixbuf. If not, it calls real_map_pixbuf.
Changed the semantics of map_pixbuf to always return a reffed
object and changed all calls to map_pixbuf to always unref the
object returned.
menu):
* src/nautilus-window-private.h:
* src/nautilus-window-manage-views.h:
* src/nautilus-window-manage-views.c:
(location_has_really_changed): Make logic clearer by using else
instead of two if statements.
(view_frame_info_new), (view_frame_info_free),
(set_view_frame_info), (view_frame_get_label),
(view_frame_get_id), (nautilus_window_get_content_view_id),
(load_content_view), (nautilus_window_set_sidebar_panels): Store a
NautilusViewIdentifier with each view.
* src/nautilus-window.h:
* src/nautilus-window.c: (nautilus_window_destroy): We no longer
have to store the content view identifier separately.
(remove_first_child): New function.
(update_extra_viewer_in_view_as_menus): Shared by the two below,
this is the old replace_extra_viewer_in_view_as_menus, simplified
and changed to support both adding and removing the extra viewer.
(remove_extra_viewer_in_view_as_menus): Cover for removing.
(replace_extra_viewer_in_view_as_menus): Cover for adding.
(nautilus_window_synch_view_as_menus): Simplify code a lot by
removing some special cases and taking advantage of the fact that
the position of the chosen item is always the same in both menus.
(chose_component_callback): Removed the FIXME now that the bug is
fixed.
* NEWS: Tweak wording.
* src/file-manager/fm-directory-view.c:
(trash_or_delete_files_common): Simplified this a lot and removed
parameters. Added a new parameter so the "move to trash within
trash means delete if nothing else is being moved" rule only takes
effect for the actual "move to trash" command, not when you are
dragging or pasting files.
(fm_directory_view_trash_or_delete_files): Call new simpler
function.
(fm_directory_view_move_copy_items): Call new simpler
function. Also use trash_or_delete_files_common only when moving
files. It doesn't help any when you copy or make links to files,
so just use the normal copy code for that.
2001-04-19 Gene Z. Ragan <gzr@eazel.com>
Fixed bug 8049, Nautilus makes sound even when control center
"Enable sound server startup" switch is off
* components/music/nautilus-music-view.c: (play_current_file):
Check status of sound server gnome preference and display an
informational dialog if music view playback is compromised
as a result.
* src/file-manager/fm-icon-view.c: (should_preview_sound):
Check status of sound server gnome preference as one of
the conditions when determining if we should preview
the audio file on rollover.
2001-04-18 Gene Z. Ragan <gzr@eazel.com>
Fix an error that was introduced that caused floppy
devices to not get identified. The floppy prefix
should be /dev/fd not /dev/fd/
* libnautilus-extensions/nautilus-volume-monitor.c:
(nautilus_volume_monitor_initialize_class),
(mount_volume_auto_add):
* libnautilus-extensions/nautilus-icon-container.c:
(start_rubberbanding): Use the new EelCanvasRect instead of
GnomeCanvasRect for better rubber-banding speed in AA mode.
* src/Makefile.am:
* libnautilus/Makefile.am:
* libnautilus-extensions/Makefile.am:
Added dependencies so the IDL files get recompiled before we
compile any .c files.
2001-04-18 Gene Z. Ragan <gzr@eazel.com>
Fixed bug 7925, Nautilus prevents playing audio cds.
* libnautilus-extensions/nautilus-volume-monitor.c:
Disable the audio cd mounting while I work at making
it more seamless.
2001-04-18 Gene Z. Ragan <gzr@eazel.com>
Fixed bug 7999, "Disks" desktop submenu lacks "Floppy" item
* libnautilus-extensions/nautilus-volume-monitor.c:
(mount_volume_get_name), (mount_volume_auto_add),
(mount_volume_add_filesystem):
Handle "auto" types by using a placeholder volume
type.
* libnautilus-extensions/nautilus-volume-monitor.h:
Add a new type NAUTILUS_VOLUME_AUTO to handle
auto fstab entries. This is really a placeholder
type to be used by the code that creates the removable
volume list. When the volume is actually mounted, the
file system type is loaded from /proc/mounts.
2001-04-18 Gene Z. Ragan <gzr@eazel.com>
Fix bug 8102, with Nautilus running, CDs get ejected
(wrong and makes the kernel unhappy)
* libnautilus-extensions/nautilus-volume-monitor.c:
(mount_volume_iso9660_add):
Remove ioctls that are not needed and may cause the
cd to allow ejecting even with a mounted volume.
POTFILES el.gmo hu.po no.po ta.po
2001-04-18 Josh Barrow <josh@whitecape.org>
* po/POTFILES.in:
Removed fm-icon-text-window.c from this file to fix build horkage
I was seeing.
* libnautilus-extensions/nautilus-global-preferences.h:
Remove NAUTILUS_PREFERENCES_ICON_CAPTIONS, its not needed anymore.
* libnautilus-extensions/nautilus-global-preferences.c:
(global_preferences_populate_pane): Add support for installing a
list if strings to ignore when enforcing the unique choice rule
for enumeration lists items.
(global_preferences_create_dialog),
(nautilus_global_preferences_initialize): Register the
enumerations at initialization time instead of dialog creation
time. This is needed so that sanity checking on enumeration
preferences can occur even if the user hasnt opened the dialog.
* libnautilus-extensions/nautilus-preferences-item.h:
* libnautilus-extensions/nautilus-preferences-item.c:
(nautilus_preferences_item_initialize_class),
(nautilus_preferences_item_initialize), (preferences_item_destroy),
(preferences_item_update_enumeration_list_uniqueness),
(preferences_item_update_enumeration_list),
(preferences_item_create_enumeration_list),
(enumeration_list_changed_callback),
(nautilus_preferences_item_enumeration_list_set_unique_exceptions):
Make sure the string pickers are wired such that duplicate choices cannot be
made by the user. We do this by making items that would result in duplicates
insensitive. Its possible to bypass this rule for some items. We use the
use the enumeration_list_unique_exceptions.
* libnautilus-extensions/nautilus-preferences.c:
(preferences_block_callbacks), (preferences_unblock_callbacks):
New private functions to block/unblock preferences callbacks.
(string_list_is_valid): New private function to sanity check the
values of a string list.
(nautilus_preferences_get_string_list): Sanity check the results
of this function for greater convenience of the callers - they no
longer need to do error checking on the result.
(preferences_entry_invoke_callbacks_if_needed): Invoke callbacks
only if they are not blocked.
* src/file-manager/Makefile.am:
* src/file-manager/fm-icon-text-window.c:
* src/file-manager/fm-icon-text-window.h:
Retire these 2 files. There no longer is a Icon Captions window.
* src/file-manager/fm-directory-view.c:
(fm_directory_view_initialize), (fm_directory_view_destroy):
Update for slight change in the Icon Captions preference name.
* src/file-manager/fm-icon-view.c:
(fm_icon_view_get_icon_text_attributes_from_preferences): New
function to fetch the icon caption attributes from preferences. A
similar function used to live in fm-icon-text-window.[ch]. That
is no longer the case now that the Icon Captions have moved into
the preferences dialog.
(fm_icon_view_get_icon_text_attribute_names): Simplify the munging
of icon captions by using a string list.
(fm_icon_view_merge_menus): Remove the Icon Captions menu. The
Icon Captions picker now lives in the preferences dialog.
* src/file-manager/nautilus-icon-view-ui.xml:
Remove Icon Captions menu item which no longer exists.
* THANKS: Added a translator's name.
* check-POTFILES.pl: Made it work for more file extensions.
* check-THANKS.pl: Updated for recent email changes.
* components/image-viewer/io-png.h: Fixed includes.
* components/image-viewer/io-png.c: Fixed includes.
* components/adapter/nautilus-zoomable-proxy.c: Add include of
<config.h>.
* components/music/Makefile.am: Add non-compiled files to
EXTRA_DIST. This makes check-headers-in-Makefile.pl happy.
* components/tree/main.c: Removed this unused file since it's just
a call to the standard main function.
* components/tree/nautilus-tree-change-queue.c: Add include of
<config.h>.
* libnautilus/Makefile.am:
* libnautilus-adapter/Makefile.am:
* libnautilus-extensions/Makefile.am:
* src/Makefile.am:
Do the dist-hook dance so we don't include generated files in the
tarball.
* libnautilus-extensions/nautilus-dateedit-extensions.h:
* libnautilus-extensions/nautilus-dateedit-extensions.c:
(nautilus_gnome_date_edit_get_date_as_string): Rewrite to use
eel_gstrdup_strftime.
* src/nautilus-window-manage-views.c:
(nautilus_window_content_view_matches_iid): We can get a NULL
content view IID in some cases, so make sure we don't call strcmp
on it.
* libnautilus-extensions/nautilus-gconf-extensions.c:
(simple_value_is_equal), (nautilus_gconf_value_is_equal):
Implement the missing GconfValue comparison for lists.
* libnautilus-extensions/nautilus-global-preferences.h:
More consistent name for the icon captions preference.
* libnautilus-extensions/nautilus-global-preferences.c:
(global_preferences_register_enumerations): Allow enumeration ids
to be installed for string lists. A bit of a hack to let
enumeration lists work in the NautilusPreferencesItem object.
(global_preferences_install_one_default): Add support for string
lists.
(global_preferences_create_dialog):
Move the icon captions widgetry from its own lonesome dialog into
the preferences dialog.
* libnautilus-extensions/nautilus-preferences-box.h:
* libnautilus-extensions/nautilus-preferences-box.c:
(nautilus_preferences_box_new):
Remove unused parameter from constructor. Remove some crufty
unused code. Match the Nautilus style more.
* libnautilus-extensions/nautilus-preferences-dialog.h:
* libnautilus-extensions/nautilus-preferences-dialog.c:
(nautilus_preferences_dialog_construct):
Remove some crufty unused signals, defines and code. Match the
Nautilus style more. Dont hard code the default size. Let Gtk do
that work for us. Remove unused dialog_destroy callback.
* libnautilus-extensions/nautilus-preferences-item.h:
* libnautilus-extensions/nautilus-preferences-item.c:
(preferences_item_destroy),
(preferences_item_update_enumeration_list),
(preferences_item_set_main_child),
(preferences_item_add_connection_child),
(preferences_item_create_enumeration_radio),
(preferences_item_create_enumeration_list),
(preferences_item_create_boolean),
(preferences_item_update_editable_string),
(preferences_item_create_editable_string),
(preferences_item_create_editable_integer),
(preferences_item_create_enumeration_menu),
(preferences_item_create_font), (preferences_item_create_padding),
(preferences_item_create_smooth_font),
(nautilus_preferences_item_new),
(enumeration_list_changed_callback),
(preferences_item_update_displayed_value):
Add support for enumerations lists.
Cleanup the way children are added to the main box. Allow for
more than one child (for enum list support). Keep a list of
widgets and their respective changed signal ids, so they can all
be blocked and unblocked when needed.
* libnautilus-extensions/nautilus-preferences.h:
* libnautilus-extensions/nautilus-preferences.c:
(update_auto_string_list), (preferences_entry_update_auto_storage),
(preferences_entry_remove_auto_storage),
(nautilus_preferences_add_auto_string_list),
(nautilus_preferences_remove_auto_string),
(nautilus_preferences_remove_auto_string_list):
Add support for auto storage of string lists.
* src/nautilus-application.c: (check_required_directories): Update
for EelStringList _as_string changes.
* components/tree/nautilus-tree-expansion-state.c:
(expansion_state_load_callback),
(nautilus_tree_expansion_state_load_from_preferences),
(nautilus_tree_expansion_state_save_to_preferences),
(nautilus_tree_expansion_state_initialize),
(nautilus_tree_expansion_state_save):
Update for string_list set/get preferences changes.
* libnautilus-extensions/nautilus-gconf-extensions.h:
* libnautilus-extensions/nautilus-gconf-extensions.c:
(nautilus_gconf_set_string_list), (nautilus_gconf_get_string_list):
Use GSList instead of GList as this the format that GConf
understands.
* libnautilus-extensions/nautilus-preferences.h:
* libnautilus-extensions/nautilus-preferences.c:
(nautilus_preferences_set_string_list),
(nautilus_preferences_get_string_list),
(nautilus_preferences_default_set_string_list),
(nautilus_preferences_default_get_string_list),
(preferences_entry_remove_callback),
(preferences_entry_remove_auto_storage),
(nautilus_self_check_preferences):
Use EelStringList instead of GList for string_list preferences.
* src/nautilus-shell.c: (save_window_states),
(restore_one_window_callback), (restore_window_states):
Update for string_list set/get preferences changes. Simplify a
little by using a string list iterator and string lists instead of
parsing the geometry strings "by hand."