summaryrefslogtreecommitdiff
path: root/src/file-manager/fm-properties-window.c
Commit message (Collapse)AuthorAgeFilesLines
* reviewed by: Darin Adler <darin@eazel.com>John Sullivan2001-03-021-0/+13
| | | | | | | | | | | | | | | | Refixed bug 5863 (Opening folder triggers recalculation of deep count in Properties window) The deep count was being invalidated by the directory loading mechanism, which is legal and should be harmless. Taught the properties window not to do the visible recount whenever deep count is invalidated. * src/file-manager/fm-properties-window.c: (directory_contents_value_field_update): Set new deep_count_finished variable when the deep count is done. Afterwards, only update the display if a new deep count is completed (don't show future count-ups).
* fixed bug 7019, emblem names are not aligned vertically in show propertiesAndy Hertzfeld2001-02-271-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fixed bug 7019, emblem names are not aligned vertically in show properties or the property browser. Fixed by adding a "fixed image height" attribute to nautilus-labeled-image, and set it in the properties window and properties browser. * libnautilus-extensions/nautilus-labeled-image.c: (nautilus_labeled_image_initialize), (is_fixed_height), (labeled_image_get_image_dimensions), (nautilus_labeled_image_get_image_bounds), (nautilus_labeled_image_get_show_image), (nautilus_labeled_image_set_fixed_image_height): added a fixed_image_height instance variable, and used it when appropriate * libnautilus-extensions/nautilus-labeled-image.h: added setter for the fixed image height attribute * src/file-manager/fm-properties-window.c: (create_emblems_page): set the fixed image height attribute on the emblems * src/nautilus-property-browser.c: (make_properties_from_directories), (property_browser_category_button_new): set the fixed image height attribute for the emblems and also the category buttons fixed bug 7022, users are confused by the "shared" and "secret" emblems; fixed by removing them. * data/browser.xml: removed secret and shared emblem references * data/emblems/Makefile.am: removed the emblem .pngs from the makefile * data/emblems/secret.png: * data/emblems/shared.png: removed the emblem .pngs * icons/Makefile.am: removed the emblem .svgs from the makefile * icons/emblem-secret.svg: * icons/emblem-shared.svg: removed the .svgs
* reviewed by: Pavel Cisler <pavel@eazel.com>John Sullivan2001-02-231-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixed bug 5729 ("Copying" label in progress dialog can be clipped if font is biggish) Fixed bug 5741 (File progress dialog uses fixed font for labels, slight clipping) * libnautilus-extensions/nautilus-file-operations-progress.c: Eliminated two hardwired widths; changed FIXME to comment for the third, legitimate, one. (set_text_unescaped_trimmed): Now uses nautilus_ellipsizing_label instead of a fixed width. (create_titled_label): Now use nautilus_ellipsizing_label and puts title & label in a table (with Clark Gable) (nautilus_file_operations_progress_initialize): Use table for titles & labels so they can line up without a hardwired width, set up spacings, change callers of create_titled_label. (nautilus_file_operations_progress_new_file): Change callers of set_text_unescaped_trimmed to not pass in a width. Fixed bug 6872 (Wording suggetions for preferences) * libnautilus-extensions/nautilus-global-preferences.c: (global_preferences_install_descriptions), (global_preferences_create_dialog), (global_preferences_create_search_pane): A few more wording tweaks in Preferences, some from Vera and some from this bug report and Vera-approved Fixed bug 6553 ("Where" in Properties Window is inconsistent) * src/file-manager/fm-properties-window.c: (create_basic_page): Changed "Where:" to "Location:" with Vera's approval.
* reviewed by: John Sullivan <sullivan@eazel.com>Darin Adler2001-02-231-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix bug 6859 (GTK signal macros don't work in non-GCC compilers for void return types). * libnautilus-extensions/nautilus-gtk-macros.h: Replaced old macros that accidentally relied on gccisms with new ones that are portable to other compilers. NAUTILUS_CALL_PARENT_CLASS is replaced by NAUTILUS_CALL_PARENT and NAUTILUS_CALL_PARENT_WITH_RETURN_VALUE. NAUTILUS_CALL_VIRTUAL is replaced by NAUTILUS_CALL_METHOD and NAUTILUS_CALL_METHOD_WITH_RETURN_VALUE * components/adapter/nautilus-adapter-control-embed-strategy.c: (nautilus_adapter_control_embed_strategy_destroy): * components/adapter/nautilus-adapter-embed-strategy.c: (nautilus_adapter_embed_strategy_destroy), (nautilus_adapter_embed_strategy_get_widget), (nautilus_adapter_embed_strategy_get_zoomable): * components/adapter/nautilus-adapter-embeddable-embed-strategy.c: (nautilus_adapter_embeddable_embed_strategy_destroy): * components/adapter/nautilus-adapter-factory-server.c: (nautilus_adapter_factory_server_destroy): * components/adapter/nautilus-adapter-file-load-strategy.c: (nautilus_adapter_file_load_strategy_destroy): * components/adapter/nautilus-adapter-load-strategy.c: (nautilus_adapter_load_strategy_destroy), (nautilus_adapter_load_strategy_load_location), (nautilus_adapter_load_strategy_stop_loading): * components/adapter/nautilus-adapter-progressive-load-strategy.c: (nautilus_adapter_progressive_load_strategy_destroy): * components/adapter/nautilus-adapter-stream-load-strategy.c: (nautilus_adapter_stream_load_strategy_destroy): * components/adapter/nautilus-adapter.c: (nautilus_adapter_destroy): * components/hardware/nautilus-hardware-view.c: (nautilus_hardware_view_destroy): * components/history/nautilus-history-view.c: (nautilus_history_view_destroy): * components/loser/content/nautilus-content-loser.c: (nautilus_content_loser_destroy): * components/loser/sidebar/nautilus-sidebar-loser.c: (nautilus_sidebar_loser_destroy): * components/music/nautilus-music-view.c: (nautilus_music_view_destroy): * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_destroy): * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_destroy): * components/sample/nautilus-sample-content-view.c: (nautilus_sample_content_view_destroy): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (nautilus_service_install_view_destroy), (nautilus_service_install_view_finalize): * components/services/inventory-view/nautilus-inventory-config-page .c: (nautilus_inventory_config_page_destroy): * components/services/inventory-view/nautilus-inventory-view.c: (nautilus_inventory_view_destroy): * components/services/login/nautilus-view/nautilus-change-password- view.c: (nautilus_change_password_view_destroy): * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (footer_destroy): * components/services/nautilus-dependent-shared/eazel-services-head er.c: (header_destroy): * components/services/summary/nautilus-summary-view.c: (nautilus_summary_view_destroy): * components/services/time/nautilus-view/trilobite-eazel-time-view. c: (trilobite_eazel_time_view_destroy): * components/text/nautilus-text-view.c: (nautilus_text_view_destroy): * components/throbber/nautilus-throbber.c: (nautilus_throbber_destroy), (nautilus_throbber_map), (nautilus_throbber_size_allocate): * components/tree/nautilus-tree-change-queue.c: (nautilus_tree_change_queue_destroy): * components/tree/nautilus-tree-expansion-state.c: (nautilus_tree_expansion_state_destroy): * components/tree/nautilus-tree-model.c: (nautilus_tree_model_destroy): * components/tree/nautilus-tree-node.c: (nautilus_tree_node_destroy): * components/tree/nautilus-tree-view.c: (nautilus_tree_view_destroy): * help/nautilus-quick-reference/.cvsignore: * help/nautilus-quick-reference/C/.cvsignore: * libnautilus-extensions/nautilus-background-canvas-group.c: (nautilus_background_canvas_group_update), (nautilus_background_canvas_group_draw), (nautilus_background_canvas_group_render): * libnautilus-extensions/nautilus-background.c: (nautilus_background_destroy): * libnautilus-extensions/nautilus-bookmark.c: (nautilus_bookmark_destroy): * libnautilus-extensions/nautilus-caption.c: (nautilus_caption_destroy), (nautilus_font_picker_show_all): * libnautilus-extensions/nautilus-clickable-image.c: (nautilus_clickable_image_destroy), (nautilus_clickable_image_realize), (nautilus_clickable_image_expose_event): * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_destroy): * libnautilus-extensions/nautilus-directory-metafile-monitor.c: (destroy): * libnautilus-extensions/nautilus-directory.c: (nautilus_directory_destroy), (nautilus_directory_get_name_for_self_as_new_file), (nautilus_directory_are_all_files_seen), (nautilus_directory_contains_file), (nautilus_directory_call_when_ready), (nautilus_directory_cancel_callback), (nautilus_directory_file_monitor_add), (nautilus_directory_file_monitor_remove), (nautilus_directory_force_reload), (nautilus_directory_is_not_empty): * libnautilus-extensions/nautilus-druid-page-eazel.c: (nautilus_druid_page_eazel_destroy), (nautilus_druid_page_eazel_finalize), (nautilus_druid_page_eazel_size_allocate), (nautilus_druid_page_eazel_size_request): * libnautilus-extensions/nautilus-ellipsizing-label.c: (real_size_request), (real_size_allocate), (real_style_set): * libnautilus-extensions/nautilus-entry.c: (nautilus_entry_destroy), (nautilus_entry_key_press), (nautilus_entry_motion_notify), (nautilus_entry_set_selection), (nautilus_entry_insert_text), (nautilus_entry_delete_text), (nautilus_entry_selection_clear): * libnautilus-extensions/nautilus-file.c: (destroy), (nautilus_file_monitor_add), (nautilus_file_monitor_remove), (nautilus_file_get_date), (nautilus_file_get_where_string), (nautilus_file_get_directory_item_count), (nautilus_file_get_deep_counts), (nautilus_file_get_file_type), (nautilus_file_check_if_ready), (nautilus_file_call_when_ready), (nautilus_file_cancel_call_when_ready): * libnautilus-extensions/nautilus-font-factory.c: (destroy): * libnautilus-extensions/nautilus-font-picker.c: (nautilus_font_picker_destroy): * libnautilus-extensions/nautilus-horizontal-splitter.c: (nautilus_horizontal_splitter_destroy), (nautilus_horizontal_splitter_button_press): * libnautilus-extensions/nautilus-icon-canvas-item.c: (nautilus_icon_canvas_item_destroy), (nautilus_icon_canvas_item_update): * libnautilus-extensions/nautilus-icon-container.c: (destroy), (size_allocate), (realize), (unrealize), (button_press_event), (button_release_event), (motion_notify_event), (key_press_event): * libnautilus-extensions/nautilus-icon-factory.c: (nautilus_icon_factory_destroy): * libnautilus-extensions/nautilus-image-table.c: (nautilus_image_table_destroy), (nautilus_image_table_expose_event), (nautilus_image_table_realize), (nautilus_image_table_unrealize), (nautilus_image_table_remove): * libnautilus-extensions/nautilus-image.c: (nautilus_image_destroy): * libnautilus-extensions/nautilus-keep-last-vertical-box.c: (nautilus_keep_last_vertical_box_size_allocate): * libnautilus-extensions/nautilus-label.c: (nautilus_label_destroy), (nautilus_label_size_request), (nautilus_label_size_allocate), (label_paint_pixbuf_callback): * libnautilus-extensions/nautilus-labeled-image.c: (nautilus_labeled_image_destroy): * libnautilus-extensions/nautilus-list-column-title.c: (nautilus_list_column_title_finalize): * libnautilus-extensions/nautilus-list.c: (nautilus_list_destroy), (nautilus_list_button_press), (nautilus_list_button_release), (nautilus_list_key_press), (nautilus_list_style_set), (nautilus_list_realize), (nautilus_list_unrealize), (draw_rows), (draw_all), (nautilus_list_draw), (nautilus_list_expose), (nautilus_list_resize_column), (nautilus_list_set_cell_contents), (set_list_cell), (nautilus_list_track_new_column_width), (nautilus_list_motion), (nautilus_list_clear), (insert_row): * libnautilus-extensions/nautilus-merged-directory.c: (merged_destroy): * libnautilus-extensions/nautilus-metafile-factory.c: (destroy): * libnautilus-extensions/nautilus-metafile.c: (destroy): * libnautilus-extensions/nautilus-preferences-box.c: (nautilus_preferences_box_destroy): * libnautilus-extensions/nautilus-preferences-pane.c: (nautilus_preferences_pane_destroy): * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_destroy): * libnautilus-extensions/nautilus-string-picker.c: (nautilus_string_picker_destroy): * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_destroy): * libnautilus-extensions/nautilus-text-caption.c: (nautilus_text_caption_destroy): * libnautilus-extensions/nautilus-trash-directory.c: (trash_destroy): * libnautilus-extensions/nautilus-trash-file.c: (trash_destroy): * libnautilus-extensions/nautilus-undo-context.c: (destroy): * libnautilus-extensions/nautilus-undo-manager.c: (destroy): * libnautilus-extensions/nautilus-vfs-directory.c: (vfs_destroy): * libnautilus-extensions/nautilus-vfs-file.c: (vfs_destroy): * libnautilus-extensions/nautilus-viewport.c: (nautilus_viewport_destroy), (nautilus_viewport_realize): * libnautilus-extensions/nautilus-volume-monitor.c: (nautilus_volume_monitor_destroy): * libnautilus-extensions/nautilus-wrap-table.c: (nautilus_wrap_table_destroy): * libnautilus/nautilus-undo-transaction.c: (nautilus_undo_transaction_destroy): * libnautilus/nautilus-view.c: (nautilus_view_destroy): * src/file-manager/fm-desktop-icon-view.c: (fm_desktop_icon_view_destroy), (real_update_menus), (real_merge_menus): * src/file-manager/fm-directory-view.c: (text_attribute_names_changed_callback), (image_display_policy_changed_callback), (directory_view_font_family_changed_callback), (click_policy_changed_callback), (smooth_graphics_mode_changed_callback), (fm_directory_view_destroy), (fm_directory_view_file_limit_reached), (fm_directory_view_bump_zoom_level), (fm_directory_view_zoom_to_level), (fm_directory_view_restore_default_zoom_level), (fm_directory_view_can_zoom_in), (fm_directory_view_can_zoom_out), (fm_directory_view_get_background_widget), (fm_directory_view_get_selection), (reveal_newly_added_folder), (fm_directory_view_get_emblem_names_to_exclude), (fm_directory_view_merge_menus), (fm_directory_view_select_all), (fm_directory_view_set_selection), (fm_directory_get_selected_icon_locations), (fm_directory_view_reveal_selection), (fm_directory_view_is_read_only), (fm_directory_view_is_empty), (fm_directory_view_supports_creating_files), (fm_directory_view_accepts_dragged_files), (fm_directory_view_supports_properties), (fm_directory_view_supports_zooming), (fm_directory_view_update_menus): * src/file-manager/fm-icon-view.c: (fm_icon_view_destroy), (fm_icon_view_clean_up), (fm_icon_view_get_directory_sort_by), (fm_icon_view_set_directory_sort_by), (fm_icon_view_get_directory_sort_reversed), (fm_icon_view_set_directory_sort_reversed), (fm_icon_view_get_directory_auto_layout), (fm_icon_view_set_directory_auto_layout), (fm_icon_view_get_directory_tighter_layout), (fm_icon_view_set_directory_tighter_layout), (fm_icon_view_supports_auto_layout), (fm_icon_view_start_renaming_item), (fm_icon_view_merge_menus), (fm_icon_view_update_menus): * src/file-manager/fm-list-view.c: (fm_list_view_adding_file), (fm_list_view_removing_file), (fm_list_view_file_still_belongs), (get_number_of_columns), (get_link_column), (get_default_sort_attribute), (get_column_specification): * src/file-manager/fm-properties-window.c: (real_shutdown), (real_destroy), (real_finalize): * src/file-manager/fm-search-list-view.c: (real_destroy), (real_add_file), (real_adding_file), (real_removing_file), (real_merge_menus), (real_update_menus): * src/nautilus-about.c: (nautilus_about_destroy): * src/nautilus-application.c: (nautilus_application_destroy), (nautilus_application_startup): * src/nautilus-complex-search-bar.c: (nautilus_complex_search_bar_destroy): * src/nautilus-desktop-window.c: (destroy), (realize): * src/nautilus-location-bar.c: (destroy): * src/nautilus-navigation-bar.c: (nautilus_navigation_bar_get_location), (nautilus_navigation_bar_set_location): * src/nautilus-property-browser.c: (nautilus_property_browser_destroy): * src/nautilus-search-bar-criterion.c: (nautilus_search_bar_criterion_destroy): * src/nautilus-shell.c: (destroy): * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_destroy), (nautilus_sidebar_tabs_size_allocate): * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_destroy), (nautilus_sidebar_title_size_allocate): * src/nautilus-sidebar.c: (nautilus_sidebar_destroy), (nautilus_sidebar_size_allocate), (nautilus_sidebar_realize): * src/nautilus-simple-search-bar.c: (nautilus_simple_search_bar_destroy): * src/nautilus-switchable-navigation-bar.c: (nautilus_switchable_navigation_bar_destroy): * src/nautilus-switchable-search-bar.c: (nautilus_switchable_search_bar_destroy): * src/nautilus-theme-selector.c: (nautilus_theme_selector_destroy): * src/nautilus-view-frame.c: (nautilus_view_frame_destroy), (nautilus_view_frame_finalize), (nautilus_view_frame_map): * src/nautilus-window.c: (nautilus_window_destroy), (nautilus_window_realize), (nautilus_window_size_request), (nautilus_window_add_current_location_to_history_list), (nautilus_window_show): * src/nautilus-zoom-control.c: (nautilus_zoom_control_destroy), (nautilus_zoom_control_size_allocate): Use the macros by their new names. * RENAMING: Updated for some name changes and name change ideas. * user-guide/C/.cvsignore: * user-guide/C/html/.cvsignore: * user-guide/C/img/.cvsignore: * user-guide/C/sgml/.cvsignore: Added missing cvsignores.
* reviewed by: Darin Adler <darin@eazel.com>Mike Engber2001-02-221-1/+4
| | | | | | | | reviewed by: Darin Adler <darin@eazel.com> * src/file-manager/fm-properties-window.c: (set_icon_callback): Property window now stores a uri (as opposed to a path) in metadata for custom icons - bug 6841.
* reviewed by: Darin Adler <darin@eazel.com>John Sullivan2001-02-141-95/+139
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixed bug 6385 (Properties window doesn't set/display icon correctly for Nautilus link files) Now the Properties window keeps around an "original file" and a "target file", which are currently the same for all files except Nautilus links. The original file is used to display/set the icon & name. (So you can edit the name of your Home icon in the properties window now also.) * src/file-manager/fm-properties-window.c: Renamed details->file to details->target_file. Added details->original_file. Removed two details fields that were unused. (directory_contents_value_field_update), (attach_directory_contents_value_field), (update_visibility_of_item_count_fields), (should_show_custom_icon_buttons), (should_show_file_type), (should_show_accessed_date), (should_show_mime_type), (create_emblems_page), (append_special_execution_checkbox), (create_permissions_page), (should_show_emblems), (should_show_permissions), (real_shutdown): Updated for name change only. (create_basic_page): Use original file for icon & name widgetry. (startup_data_new), (startup_data_free): New functions used to manipulate the data needed before a Properties window object exists for a given file. (create_properties_window): Reworked to use StartupData and set up both target_file and original_file. (get_target_file): Renamed from get_and_ref_file_to_display. (create_properties_window_callback): Reworked to use StartupData; slight reordering due to object lifetime issues. (cancel_create_properties_window_callback), (directory_view_destroyed_callback), (remove_pending_file), (fm_properties_window_present): Reworked to use StartupData. (real_destroy): clean up after original_file and target_file. (set_icon_callback): Use original_file. (select_image_button_callback), (remove_image_button_callback): Changed signatures to take FMPropertiesWindows instead of NautilusFiles; use original_file.
* Add comment clarifying API changes I made in my last checkin. Remove someRamiro Estrugo2001-02-111-11/+0
| | | | | | | | | | | * libnautilus-extensions/nautilus-customization-data.h: Add comment clarifying API changes I made in my last checkin. * src/file-manager/fm-properties-window.c: (create_emblems_page): Remove some left over code from when the emblems table was hard coded to 2 columns. * src/nautilus-property-browser.c: (make_properties_from_directories): Fix a small memory leak.
* reviewed by: Robey Pointer <robey@eazel.com>Ramiro Estrugo2001-02-101-48/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-region.c: * libnautilus-extensions/nautilus-region.h: New class for super easy region management using rectangle. * libnautilus-extensions/nautilus-art-gtk-extensions.h: * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_gdk_rectangle_assign_irect): New function to convert ArtIRect to GdkRectangles. * libnautilus-extensions/nautilus-customization-data.h: * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Return pixbufs and labels for the object instead of widgets. This is so that the caller can use the widget that best suits its display needs. * libnautilus-extensions/nautilus-image-table.h: * libnautilus-extensions/nautilus-image-table.c: (nautilus_image_table_initialize_class), (nautilus_image_table_initialize), (nautilus_image_table_expose_event), (nautilus_image_table_realize), (nautilus_image_table_unrealize), (nautilus_image_table_set_is_smooth_signal), (image_table_foreach_child_subtract_content), (image_table_clear_dirty_areas), (image_table_peek_clear_gc), (image_table_emit_signal), (image_table_handle_motion), (ancestor_button_press_event), (ancestor_button_release_event), (nautilus_image_table_new), (nautilus_image_table_set_is_smooth), (nautilus_image_table_set_smooth_background_color): Add support for smoothnes. Register widget as a possible smooth widget. When smoothness changes, we modify our background drawing behavior such that in smooth mode we dont flicker at all. Remove grab/ungrab pair that could screw up operations. Turns out these are not needed. Change event signal emissions to include more data from the raw gdk events without exposing these. * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class): Update for new smooth widget class registration scheme. * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class): Update for new smooth widget class registration scheme. * libnautilus-extensions/nautilus-labeled-image.h: * libnautilus-extensions/nautilus-labeled-image.c: (nautilus_labeled_image_size_allocate), (nautilus_labeled_image_get_image_bounds), (nautilus_labeled_image_get_label_bounds): Make these two functions public. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (smooth_widget_type_list_free), (smooth_widget_list_free), (widget_is_smooth), (nautilus_smooth_widget_register), (nautilus_smooth_widget_register_type): Add mechanism for registering types that are meant to be smooth. That way we dont need to hardcode the list of smooth widget classes. Also made sure to free the static lists at exit time. * libnautilus-extensions/nautilus-viewport.h: * libnautilus-extensions/nautilus-viewport.c: (nautilus_viewport_initialize_class), (nautilus_viewport_initialize), (nautilus_viewport_destroy), (nautilus_viewport_draw), (nautilus_viewport_expose_event), (nautilus_viewport_realize), (nautilus_viewport_paint), (nautilus_viewport_set_is_smooth_signal), (nautilus_viewport_new), (nautilus_viewport_set_is_smooth), (nautilus_viewport_get_scroll_offset): Add support for smoothness. When the is_smooth attribute changes, the viewport will not clear the background on resize - and so its content will not flicker. Add function for querying the scroll offset. * libnautilus-extensions/nautilus-wrap-table.h: * libnautilus-extensions/nautilus-wrap-table.c: (wrap_table_get_content_frame), (wrap_table_get_scroll_offset), (nautilus_wrap_table_get_homogeneous), (nautilus_wrap_table_reorder_child): Fix a mod by zero error. Add support for reordering children. * src/file-manager/fm-properties-window.c: (create_emblems_page): Simplify a bit by using NautilusWrapTable instead of a GtkTable with a hard coded number of columns. The emblems now wrap to fit the available space. Also use NautilusLabeledImages instead of boxes. Update for changes in customization data api. Remove check box painting workaround. Its taken care of in NautilusLabeledImage now. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize_class), (nautilus_property_browser_initialize), (element_clicked_callback), (nautilus_property_browser_preferences_changed), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (property_browser_category_button_new), (make_category_link), (nautilus_property_browser_update_contents), (emit_emblems_changed_signal): Use a NautilusImageTable instead of a GtkTable to make things wrap propertly and thus not have to recreate the whole property box each time its resized. Remove a lot of hard coded dimensions. Simplified a bit by using NautilusLabeledImages. * src/nautilus-search-bar-criterion.c: (make_emblem_value_menu): Update for changes in customization data api. * test/test-nautilus-image-table.c: (labeled_image_new), (foo_timeout), (image_table_size_allocate), (image_table_new_scrolled): Update for new image table features.
* Fixed bug 6473 (counting deep contents of folder in PropertiesJohn Sullivan2001-02-091-28/+61
| | | | | | | | | | | | | | | | | | | | | | | | | window takes tons of CPU) Fixed by deploying a timeout, so that the displayed numbers only update periodically, instead of with every item count increment. The interval is 200 milliseconds. This makes the count faster as well as greatly reducing CPU thrashage by not pounding on the poor widdle widgets so often. * src/file-manager/fm-properties-window.c: (directory_contents_value_field_update): Changed signature to just take an FMPropertiesWindow, and get the other relevant objects from the Details struct. (update_directory_contents_callback): New function, updates field and clears timeout ID. (schedule_directory_contents_update): Schedules update if not already pending. (attach_directory_contents_value_field): Removed old hack to store the title_field in the object data of the value field; store value_field after creation in Details struct. (append_directory_contents_fields): Store title_field after creation in Details struct. (real_destroy): Remove timeout if still pending.
* Fixed bug 6421 (Labels for permissions should look insensitiveJohn Sullivan2001-02-081-3/+6
| | | | | | | | | | | | | | | | when permissions are not settable) * src/file-manager/fm-properties-window.c: (add_permissions_column_label), (create_permissions_page): Pass file parameter into add_permissions_column_label, set insensitive if can't set permissions. * libnautilus-extensions/nautilus-file.c: (nautilus_file_get_string_attribute_with_default): Use "--" as item count string instead of "..." when the preference is set to not display the item counts. ("..." implied that it would show up eventually, not true in this case.)
* fixed bug 6281, property browser should user gnome icon selection UI forAndy Hertzfeld2001-02-071-138/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | fixed bug 6281, property browser should user gnome icon selection UI for adding patterns and emblems instead of generic file browsing * libnautilus-extensions/nautilus-gnome-extensions.c,h: (nautilus_gnome_open_terminal), (widget_destroy_callback), (icon_selected_callback), (icon_cancel_pressed), (list_icon_selected_callback), (entry_activated), (nautilus_gnome_icon_selector_new): moved code to integrate icon picking UI from the properties window into gnome-extensions, so other parts of nautilus can use it. * src/file-manager/fm-properties-window.c: (set_icon_callback), (select_image_button_callback): moved icon picking code out of properties window, but call it from here instead. * src/nautilus-property-browser.c: (nautilus_emblem_dialog_new), (add_pattern_to_browser), (add_new_pattern), (emblem_dialog_clicked): use icon picking code in property browser to pick patterns, and rework the emblem dialog to use gnome-icon-entry.
* fixed bug 6280, custom icon selection should use gnome-icon-sel instead ofAndy Hertzfeld2001-02-071-61/+143
| | | | | | | | | * src/file-manager/fm-properties-window.c: (widget_destroy_callback), (icon_selected_callback), (icon_cancel_pressed), (list_icon_selected_callback), (entry_activated), (select_image_button_callback): fixed bug 6280, custom icon selection should use gnome-icon-sel instead of the generic file browser, so now it does.
* reviewed by: Pavel Cisler <pavel@eazel.com>John Sullivan2001-02-061-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixed bug 5157 (Nautilus won't display directories for which it thinks it doesn't have permissions) I removed the code that prevented Nautilus from even trying to load a location for which the perceived permissions didn't allow reading (because the perceived permissions can be wrong with some file systems). Now it always tries, and puts up an error dialog only if it gets an error while actually loading the directory. * src/file-manager/fm-error-reporting.h: * src/file-manager/fm-error-reporting.c: (fm_report_error_loading_directory): New function, currently only handles GNOME_VFS_ERROR_ACCESS_DENIED and a fallback default case. (fm_report_error_renaming_file), (fm_report_error_setting_group), (fm_report_error_setting_owner), (fm_report_error_setting_permissions), (rename_callback): All the report_error functions now take a parent-window parameter (which is often NULL). Also, they now all use gnome_vfs_error_result_to_string when whining about unhandled cases. * src/file-manager/fm-directory-view.h: Changed comments and copyright notice only. * src/file-manager/fm-directory-view.c: (real_load_error): New function, calls fm_report_error_loading_directory unless an error has already been reported for the current directory load operation. (fm_directory_view_initialize_class): Wire up real_load_error as default handler for LOAD_ERROR signal. (activate_callback): Pass parent window to error-reporting call. (load_directory): Reset the reported_load_error boolean since we're about to load anew. * src/file-manager/fm-properties-window.c: (rename_callback), (group_change_callback), (owner_change_callback), (permission_change_callback): Pass parent window to error-reporting-calls. I just passed NULL if it was not trivial to pass a good window. * src/nautilus-window-manage-views.c: (handle_unreadable_location), (open_location): Remove code that was preventing "unreadable" locations from being loaded.
* reviewed by: Darin Adler <darin@eazel.com>John Sullivan2001-02-011-34/+148
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixed bug 6162 (need option to stop "xx items" from being calculated for ftp:// locations) Added a speed tradeoff preference for showing directory counts. It's "local-only" for Beginner and "always" (but changeable) for Intermediate/Advanced. Fixed bug 1856 (fix hideous hack to kick-start embedded-text reading when preference changes) Fixed bug 2396 (properties window doesn't show/hide "special flags" when preference changes) * libnautilus-extensions/nautilus-directory-async.c: (dequeue_pending_idle_callback): Update for name change. (lacks_directory_count): Now checks preference by calling nautilus_file_should_show_directory_item_count. (should_get_directory_count_now): Renamed to add the "_now" to help distinguish from nautilus_file_should_show_directory_item_count. (directory_count_start): Update for name change. * libnautilus-extensions/nautilus-directory-private.h: * libnautilus-extensions/nautilus-directory.c: (emit_change_signals_for_all_files): New function, emits change signals for self-as-file (if applicable) and all contained files. (async_state_changed_one): New hash-table function, calls emit_change_signals_for_all_files on a directory. (async_data_preference_changed_callback): New preferences-changed callback, calls async_state_changed_one on each directory. (add_preferences_callbacks): Renamed from add_filtering_callbacks, now adds callbacks for top-left text and item counts preferences. (remove_preferences_callbacks): Renamed from remove_filtering_callbacks, now removes callbacks for top-left text and item counts preferences. (nautilus_directory_get_internal): Update for name change. (nautilus_directory_emit_change_signals): renamed from _emit_change_signals_deep to avoid recursion connotation. (nautilus_directory_emit_metadata_changed), (call_files_changed_free_list), (call_files_changed_unref_free_list): Update for name change. * libnautilus-extensions/nautilus-file.c: (get_speed_tradeoff_preference_for_file): New utility function, returns boolean based on local-ness of file and value of specified speed-tradeoff preference. (nautilus_file_should_get_top_left_text): Now calls get_speed_tradeoff_preference_for_file. (nautilus_file_should_show_directory_item_count): New function, calls get_speed_tradeoff_preference_for_file. (nautilus_file_get_directory_item_count), (nautilus_file_get_deep_counts): Bail out early without computation if _should_show_directory_item_count is FALSE. (nautilus_file_changed): Update for name change. * libnautilus-extensions/nautilus-file.h: Make nautilus_file_should_show_directory_item_count public so the preferences window can make UI decisions based on it. * libnautilus-extensions/nautilus-global-preferences.h: * libnautilus-extensions/nautilus-global-preferences.c: (global_preferences_install_descriptions), (global_preferences_install_defaults), (global_preferences_install_visibility), (global_preferences_create_dialog): Add new preference NAUTILUS_PREFERENCES_SHOW_DIRECTORY_ITEM_COUNTS and wire up default values and UI. * src/file-manager/fm-directory-view.c: (fm_directory_view_initialize), (fm_directory_view_destroy): Remove hideous hack. * src/file-manager/fm-properties-window.c: (append_separator): Return widget instead of row number. (attach_directory_contents_value_field): Return widget. (update_visibility_of_table_rows): New helper function to update visibility of a series of table rows & contained widgets. (update_visibility_of_item_count_fields): New function to update visibility of directory item count widgetry. (update_visibility_of_item_count_fields_wrapper): Simple wrapper for above. (remember_directory_contents_widget), (append_directory_contents_fields): Remember item counts widgetry so it can be shown/hidden later; set up prefs callback; change signature for to pass window. (create_basic_page), (create_permissions_page): store table in window->details; update for changed signatures. (append_special_execution_checkbox): Now takes window, don't use GTK_EXPAND to avoid resizing column unnecessarily, count number of special flags rows. (remember_special_flags_widget), (update_visibility_of_special_flags_widgets): New function to update visibility of special flags widgetry. (update_visibility_of_special_flags_widgets_wrapper): Simple wrapper for above. (append_special_execution_flags): Remember special flags widgetry so it can be shown/hidden later; set up prefs callback; change signature to pass window. (real_destroy): free widget lists.
* reviewed by: Darin Adler <darin@eazel.com>John Sullivan2001-01-291-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixed bug 4427 (Should not execute text files by default). Now it asks whether to run or display executable text files. Advanced users can set a new preference. * libnautilus-extensions/nautilus-stock-dialogs.h: * libnautilus-extensions/nautilus-stock-dialogs.c: (create_message_box): New bottleneck function, contains former guts of show_message_box but doesn't call gtk_widget_show. (show_message_box): Now just a simple wrapper for calling create_message_box and showing the result. (nautilus_show_info_dialog), (nautilus_show_warning_dialog), (nautilus_show_error_dialog), (nautilus_show_yes_no_dialog), (nautilus_show_error_dialog_with_details): Renamed to add verb "show" to names. (nautilus_run_simple_dialog): Renamed to add verb "run" to name. (nautilus_create_question_dialog): New public function, does not show the dialog yet so caller can add more buttons or whatever before showing. * libnautilus-extensions/nautilus-global-preferences.h: * libnautilus-extensions/nautilus-global-preferences.c: (global_preferences_install_descriptions), (global_preferences_install_defaults), (global_preferences_install_visibility), (global_preferences_create_dialog): Add new preference for what to do when an executable text file is activated. It defaults to "Ask" and is visible only at Advanced level. * libnautilus-extensions/nautilus-file-private.h: * libnautilus-extensions/nautilus-file.h: Moved nautilus_file_contains_text into public header. * src/file-manager/fm-directory-view.c: (get_executable_text_file_action): New function, uses preference and dialog (if necessary) to determine how to handle activating an executable text file. (activate_callback): Now handles executable text files specially by using get_executable_text_file_action. Restructured the control flow a little. * components/music/nautilus-music-view.c: (set_album_cover), (play_current_file), (nautilus_music_view_update): * components/rpmview/nautilus-rpm-view-install.c: (nautilus_rpm_view_install_done): * components/services/summary/nautilus-view/nautilus-summary-dialogs.c: (nautilus_summary_login_failure_dialog), (generate_error_dialog): * components/text/nautilus-text-view.c: (file_read_callback): * libnautilus-extensions/nautilus-file-operations.c: (confirm_empty_trash), (handle_transfer_vfs_error), (handle_transfer_overwrite), (nautilus_file_operations_copy_move), (handle_new_folder_vfs_error), (nautilus_file_operations_move_to_trash): * libnautilus-extensions/nautilus-icon-dnd.c: (confirm_switch_to_manual_layout): * libnautilus-extensions/nautilus-program-chooser.c: (nautilus_program_chooser_show_no_choices_message): * libnautilus-extensions/nautilus-program-choosing.c: (nautilus_launch_application): * libnautilus-extensions/nautilus-volume-monitor.c: (display_mount_status): * src/file-manager/fm-desktop-icon-view.c: (icon_view_create_nautilus_links): * src/file-manager/fm-directory-view.c: (fm_directory_view_confirm_multiple_windows), (real_file_limit_reached), (fm_directory_view_confirm_deletion), (confirm_delete_from_trash), (report_broken_symbolic_link), * src/file-manager/fm-error-reporting.c: (fm_report_error_renaming_file), (fm_report_error_setting_group), (fm_report_error_setting_owner), (fm_report_error_setting_permissions): * src/file-manager/fm-properties-window.c: (set_custom_image): * src/file-manager/fm-search-list-view.c: (load_location_callback), (load_error_callback), (display_indexed_search_problems_dialog), (real_file_limit_reached): * src/file-manager/nautilus-indexing-info.c: (update_file_index_callback), (show_search_service_not_available_dialog): * src/nautilus-application.c: (check_required_directories), (nautilus_application_startup): * src/nautilus-location-bar.c: (drag_data_received_callback): * src/nautilus-property-browser.c: (remove_pattern), (remove_emblem), (emblem_image_file_changed), (add_pattern_to_browser), (add_color_to_browser), (emblem_dialog_clicked): * src/nautilus-sidebar.c: (receive_dropped_uri_list): * src/nautilus-theme-selector.c: (add_theme_to_icons), (theme_select_row_callback): * src/nautilus-window-manage-views.c: (handle_unreadable_location), (report_content_view_failure_to_user_internal), (report_sidebar_panel_failure_to_user), (nautilus_window_end_location_change_callback): * src/nautilus-window-menus.c: (forget_history_if_confirmed), (show_bogus_bookmark_window): Updated for dialog API name changes. * libnautilus-extensions/nautilus-file.c: (get_description): Lucky Aaron gets missing mime description complaints now.
* reviewed by: Pavel Cisler <pavel@eazel.com>John Sullivan2001-01-251-33/+124
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixed bug 5506 (Show Properties always shows full path, making window ludicrously wide) Also made some other contents of the properties window handle window-stretching more attractively. * libnautilus-extensions/nautilus-ellipsizing-label.h: * libnautilus-extensions/nautilus-ellipsizing-label.c: (nautilus_ellipsizing_label_initialize_class), (nautilus_ellipsizing_label_initialize), (real_destroy), (nautilus_ellipsizing_label_new), (recompute_ellipsized_text), (nautilus_ellipsizing_label_set_text), (real_size_request), (real_size_allocate), (real_style_set): New files. This is a subclass of GtkLabel that requests no specific width, and ellipsizes the text to fit whatever width it is given. * libnautilus-extensions/Makefile.am: Add new files to build. * src/file-manager/fm-properties-window.c: (value_field_update_internal): New function, contains code formerly in value_field_update but takes boolean to handle ellipsized case. (value_field_update): Now just a simple wrapper for value_field_update_internal for the non-ellipsized case. (ellipsizing_value_field_update): New function, simple wrapper for value_field_update_internal for the ellipsized case. (attach_label): added an ellipsize_text boolean to this bottleneck function. (attach_value_label), (attach_title_field): pass FALSE for ellipsize_text to attach_label (attach_ellipsizing_value_label): new function, pass TRUE for ellipsize_text to attach_label (attach_value_field_internal): New function, contains code formerly in attach_value_field but takes boolean to handle ellipsized case. (attach_value_field): Now just a simple wrapper for attach_value_field_internal for the non-ellipsized case. (attach_ellipsizing_value_field): New function, simple wrapper for attach_value_field_internal for the ellipsized case. (attach_option_menu): Don't use GTK_EXPAND, so option menu gets no wider than it needs to be. (append_separator): Don't use GTK_EXPAND, so the presence of separators doesn't cause table columns to stretch. (append_title_and_ellipsizing_value): New function, like append_title_value_pair but uses ellipsizing label. (create_basic_page): Change gtk_table_attach options for icon and name field so that they don't cause table columns to stretch.
* Fixed bug 2153 (deep count calculation in properties windowJohn Sullivan2001-01-241-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | could be faster) Fixed bug 5687 (Sidebar flickers and CPU thrashes during deep count calculation in properties window) Changed the deep count calculation to send a specialized signal when the in-progress count updates, instead of using "file_changed", since many parts of the UI react to file_changed by doing (in this case unnecessary) work. My stopwatch measurement on a large directory showed that the time to calculate 20000 contained files went from 147 seconds to 8 seconds, and the CPU usage pegged around 15% (formerly 100%). * libnautilus-extensions/nautilus-directory-async.c: (deep_count_callback): Call nautilus_file_changed only when count is finished; call nautilus_file_updated_deep_count_in_progress after every new higher value is computed. * libnautilus-extensions/nautilus-file-private.h: Added prototype for nautilus_file_updated_deep_count_in_progress. * libnautilus-extensions/nautilus-file.h: * libnautilus-extensions/nautilus-file.c: (nautilus_file_initialize_class): define "updated_deep_count_in_progres" signal. (nautilus_file_updated_deep_count_in_progress): send this new signal for this file (which must be a directory) and any links pointing to it. * src/file-manager/fm-properties-window.c: (attach_directory_contents_value_field): Make text field in properties window react to new signal instead of "changed".
* reviewed by: Darin Adler <darin@eazel.com>John Sullivan2001-01-191-2/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Finished bug 2146 (Properties window for desktop Trash should show Trash properties). The last two changes were to remove the "accessed" field for all directories, since it seems useless, and to fill in the "where" field with "on the desktop". * libnautilus-extensions/nautilus-file.c: (nautilus_file_get_where_string): New function, calls virtual function so trash and normal files can report different strings. (nautilus_file_get_string_attribute): Changed "parent_uri" string attribute to "where", since it is not the parent_uri in the Trash case. * libnautilus-extensions/nautilus-file.h: Virtual function pointer for get_where_string. * libnautilus-extensions/nautilus-trash-file.c: (trash_file_get_where_string), (nautilus_trash_file_initialize_class): Supply get_where_string function that returns "on the desktop". * libnautilus-extensions/nautilus-vfs-file.c: (vfs_file_get_where_string), (nautilus_vfs_file_initialize_class): Supply get_where_string function that returns parent_uri string. * src/file-manager/fm-properties-window.c: (should_show_accessed_date): New function, returns FALSE for directories and TRUE for other files. (create_basic_page): Honor should_show_accessed_date, and use "where" instead of "parent_uri" string attribute. * src/file-manager/fm-search-list-view.c: (real_get_column_specification): Use "where" instead of "parent_uri" string attribute.
* reviewed by: John Sullivan <sullivan@eazel.com>Darin Adler2001-01-181-62/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixed bug 2147 (NautilusFile for trash needs non-empty values for more properties), bug 5652 (MIME type field appears but shouldn't in properties window for Trash), and bug 4620 (trash sidebar should show number of items). * libnautilus-extensions/nautilus-file.h: * libnautilus-extensions/nautilus-file-private.h: * libnautilus-extensions/nautilus-file.c: (nautilus_file_new_from_relative_uri): Create trash file subclass when appropriate. (nautilus_file_info_missing): Rename so it can be used in other source files. (nautilus_file_get_date): New method that returns numeric dates. (nautilus_file_get_date_as_string): Change to call nautilus_file_get_date to get the numeric date. (nautilus_file_get_file_type): Turn into a method. * libnautilus-extensions/nautilus-merged-directory.h: * libnautilus-extensions/nautilus-merged-directory.c: (merged_call_when_ready): Rolled in the old merged_callback_connect_directory function. (merged_contains_file): Moved down to a more appropriate part of the source file. (nautilus_merged_directory_get_real_directories): New public function for use by trash. * libnautilus-extensions/nautilus-trash-file.c: (trash_callback_hash), (trash_callback_equal), (trash_callback_destroy), (trash_callback_check_done), (trash_callback_remove_file), (ready_callback), (real_file_changed_callback), (monitor_add_file), (add_real_file), (trash_callback_remove_file_cover), (monitor_remove_file), (remove_real_file), (add_real_file_given_directory), (add_directory_callback), (remove_directory_callback), (trash_file_call_when_ready), (trash_file_cancel_call_when_ready), (trash_file_check_if_ready), (trash_file_monitor_add), (trash_file_monitor_remove), (trash_file_get_file_type), (trash_file_get_item_count), (trash_file_get_deep_counts), (trash_file_get_date), (remove_all_real_files), (nautilus_trash_file_initialize), (trash_destroy), (nautilus_trash_file_initialize_class): New code. First implementation of getting some attributes for the merged trash. Gets list of directories from the NautilusTrashDirectory object. The code in here is similar to the NautilusMergedDirectory class and at some point perhaps we can make the two share more. * libnautilus-extensions/nautilus-vfs-file.c: (vfs_file_get_file_type), (vfs_file_get_date), (nautilus_vfs_file_initialize_class): Implement the two new methods for the standard vfs case. Fixed various things that affect the properties window for the trash that showed up while I was testing the above work: * libnautilus-extensions/nautilus-icon-factory.c: (nautilus_icon_factory_get_icon_name_for_regular_file), (nautilus_icon_factory_get_icon_name_for_file): Move trash special case out so it doesn't matter what type the trash seems to be. The old code relied on trash not being a directory. * src/file-manager/fm-properties-window.c: (create_properties_window), (create_properties_window_callback), (cancel_create_properties_window_callback), (directory_view_destroyed_callback), (remove_pending_file): Rework code to fix problems where the timed wait or the signal handler wasn't properly cleaned up. Fixed remaining bit of bug 5631 (Tear-offs of right-click menus don't work.): * src/file-manager/nautilus-desktop-icon-view-ui.xml: Mark Disks right-click submenu so it won't get a tear-off item. Fixed bug 5650 (nautilus --quit fails to return to prompt sometimes): * src/nautilus-application.c: (nautilus_application_startup): Add special case so "nautilus --quit" doesn't hang waiting for a response from the (now quit) "server" instance of Nautilus. * src/nautilus-shell-interface.idl: Had to make the quit call no longer be "oneway" to get it to work right, otherwise the quit message could be lost when the sending application exited too fast. Fix bug 5675 (Nitpicks in new "could not be moved to new special location" dialog): * libnautilus-extensions/nautilus-file-operations.c: (handle_transfer_overwrite): Updated message wording as Eli (and Vera) suggest. Other changes: * libnautilus-extensions/nautilus-view-identifier.c: (get_lang_list): Fix comment and a small storage leak in the case where lang_with_locale is non-NULL but empty. * po/POTFILES.ignore: Obsolete file, no longer used. * src/file-manager/fm-desktop-icon-view.c: (update_home_link_and_delete_copies): Update comment to help translators understand better. * libnautilus-extensions/nautilus-directory-async.c: (directory_load_callback): Added a new assertion that could help in future gnome-vfs debugging. * libnautilus/nautilus-view-component.idl: Removed long-ago-fixed FIXME comment. * src/nautilus-window-manage-views.c: Tweak spacing.
* reviewed by: Pavel Cisler <pavel@eazel.com>Ramiro Estrugo2001-01-181-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Lots of bug fixes: 2848 - User level agnostic config settings have nowhere to live. 2654 - Need default values even for non user level preferences. 3414 - Show more preferences at higher user levels. 3415 - Make preference the same for all levels at which it is not visible 3416 - Make preference changes affect all levels at which they are visible 4357 - Web search URL setting should be reset upon Nautilus update 5160 - Tree view doesnt exist when starting nautilus as a beginner 5234 - Sidebar panel preferences are not properly separated among user levels * components/mozilla/mozilla-preferences.cpp: Update for gnome vfs proxy changes. Proxy host and port are now stored in separate gconf settings. * libnautilus-extensions/Makefile.am: * libnautilus-extensions/nautilus-enumeration.h: * libnautilus-extensions/nautilus-enumeration.c: (nautilus_enumeration_new), (nautilus_enumeration_free), (nautilus_enumeration_insert), (nautilus_enumeration_get_nth_entry), (nautilus_enumeration_get_nth_description), (nautilus_enumeration_get_nth_value), (nautilus_enumeration_get_num_entries), (nautilus_self_check_enumeration): New files. An enumeration data structure. * components/tree/nautilus-tree-expansion-state.c: No longer need to give the full path to a gconf setting. * components/tree/nautilus-tree-view.c: (filtering_changed_callback), (nautilus_tree_view_initialize): * libnautilus-extensions/nautilus-directory-async.c: (can_use_public_metafile), (get_filter_options_for_directory_count): * libnautilus-extensions/nautilus-file-operations.c: (confirm_empty_trash): * libnautilus-extensions/nautilus-file.c: (nautilus_file_should_get_top_left_text): * libnautilus-extensions/nautilus-font-factory.c: (nautilus_font_factory_get_font_from_preferences): Update for preferences api changes. * libnautilus-extensions/nautilus-gconf-extensions.h: * libnautilus-extensions/nautilus-gconf-extensions.c: (global_client_free), (nautilus_gconf_client_get_global), (nautilus_gconf_handle_error), (nautilus_gconf_set_boolean), (nautilus_gconf_get_boolean), (nautilus_gconf_set_int), (nautilus_gconf_get_int), (nautilus_gconf_set_string), (nautilus_gconf_get_string), (nautilus_gconf_set_string_list), (nautilus_gconf_get_string_list), (nautilus_gconf_is_default), (nautilus_gconf_monitor_directory): New files. Useful gconf extensions; make peeking and poking settings a little easier. * libnautilus-extensions/nautilus-icon-container.c: (button_press_event): * libnautilus-extensions/nautilus-icon-canvas-item.c: (in_single_click_mode): Update for preferences api changes. * libnautilus-extensions/nautilus-icon-factory.c: (icon_theme_changed_callback), (should_display_image_file_as_itself): Update for preferences api changes. Also no longer need to define a default theme. * libnautilus-extensions/nautilus-lib-self-check-functions.h: Add entries for enumeration and preferences. Remove preference entry. Note plural vs not. * libnautilus-extensions/nautilus-preference.c: * libnautilus-extensions/nautilus-preference.h: Retire these 2. No longer use a GtkObject to store each preference. We simply use the string name instead. * libnautilus-extensions/nautilus-preferences-box.h: * libnautilus-extensions/nautilus-preferences-box.c: (nautilus_preferences_box_add_pane), (nautilus_preferences_box_update): New function. Should be called when user level changes so that the box updates its panes. * libnautilus-extensions/nautilus-preferences-dialog.h: * libnautilus-extensions/nautilus-preferences-dialog.c: (nautilus_preferences_dialog_initialize), (nautilus_preferences_dialog_destroy), (nautilus_preferences_dialog_get_prefs_box), (nautilus_preferences_dialog_update), (user_level_changed_callback): Keep track of user level changes. New function to update the dialog when user level changes. * libnautilus-extensions/nautilus-preferences-group.h: * libnautilus-extensions/nautilus-preferences-group.c: (nautilus_preferences_group_initialize), (nautilus_preferences_group_destroy), (nautilus_preferences_group_add_item): Collect the group's items in a list. Update to user a string to represent a preference instead of a GtkObject. (nautilus_preferences_group_update): New function. Updates the group's items to respect preferences visibility based on the user level. (nautilus_preferences_get_num_visible_items): New function. Return the number of currently visible items. Collect the group's items in a list. Update to user a string to represent a preference instead of a GtkObject. * libnautilus-extensions/nautilus-preferences-item.h: * libnautilus-extensions/nautilus-preferences-item.c: (preferences_item_construct), (preferences_item_create_enum), (preferences_item_create_short_enum), (preferences_item_create_boolean), (preferences_item_create_editable_string), (preferences_item_create_integer), (preferences_item_create_font_family), (preferences_item_create_theme), (enum_radio_group_changed_callback), (editable_string_changed_callback), (integer_changed_callback), (nautilus_preferences_item_get_name): New function to fetch the item's preference name. Add a new kind of preference - INTEGER. Update for string vs. GtkObject preferences representation changes. * libnautilus-extensions/nautilus-preferences-pane.h: * libnautilus-extensions/nautilus-preferences-pane.c: (nautilus_preferences_pane_update): New function. Updates the pane's groups to respect preferences visibility based on the user level. * libnautilus-extensions/nautilus-preferences.h: * libnautilus-extensions/nautilus-preferences.c: (preferences_get_path), (preferences_get_defaults_path), (preferences_get_visibility_path), (preferences_get_user_level_key), (preferences_preference_is_internal), (preferences_preference_is_user_level), (preferences_key_make), (preferences_key_make_for_default), (preferences_key_make_for_default_getter), (preferences_key_make_for_visibility), (preferences_global_client_remove_notification), (preferences_global_client_get), (preferences_preference_is_default), (preferences_make_user_level_filtered_key), (nautilus_preferences_get_visible_user_level), (nautilus_preferences_set_visible_user_level), (nautilus_preferences_set_boolean), (preferences_key_make_for_getter), (nautilus_preferences_get_boolean), (nautilus_preferences_set_int), (nautilus_preferences_get_int), (nautilus_preferences_set), (nautilus_preferences_get), (nautilus_preferences_set_string_list), (nautilus_preferences_get_string_list), (nautilus_preferences_get_user_level), (nautilus_preferences_set_user_level), (nautilus_preferences_default_set_int), (nautilus_preferences_default_get_int), (nautilus_preferences_default_set_boolean), (nautilus_preferences_default_get_boolean), (nautilus_preferences_default_set_string), (nautilus_preferences_default_get_string), (nautilus_preferences_default_set_string_list), (nautilus_preferences_default_get_string_list), (preferences_callback_entry_invoke_function), (preferences_something_changed_notice), (preferences_global_table_check_changes_function), (preferences_user_level_changed_notice), (preferences_entry_add_callback), (preferences_entry_remove_callback), (preferences_callback_entry_free), (preferences_callback_entry_free_func), (preferences_entry_free), (preferences_entry_free_func), (preferences_global_table_free), (preferences_global_table_get_global), (preferences_global_table_lookup), (preferences_global_table_insert), (preferences_global_table_lookup_or_insert), (nautilus_preferences_add_callback), (preferences_while_alive_disconnector), (nautilus_preferences_add_callback_while_alive), (nautilus_preferences_remove_callback), (nautilus_preferences_enumeration_insert), (nautilus_preferences_enumeration_get_nth_entry), (nautilus_preferences_enumeration_get_nth_description), (nautilus_preferences_enumeration_get_nth_value), (nautilus_preferences_enumeration_get_num_entries), (nautilus_preferences_set_description), (nautilus_preferences_get_description), (nautilus_preferences_get_user_level_name_for_display), (nautilus_preferences_get_user_level_name_for_storage), (preferences_user_level_check_range), (nautilus_preferences_monitor_directory), (nautilus_preferences_is_visible), (nautilus_self_check_preferences): Many changes. Redid to support the preferences system described in bugs 3414, 3415 and 3416. * libnautilus-extensions/nautilus-smooth-widget.c: (preferences_get_is_smooth): * libnautilus-extensions/nautilus-sound.c: (kill_sound_if_necessary), (nautilus_sound_initialize), (nautilus_sound_kill_sound), (nautilus_sound_register_sound), (nautilus_sound_can_play_sound): * libnautilus-extensions/nautilus-theme.c: (nautilus_theme_get_theme), (nautilus_theme_get_theme_data), (nautilus_theme_get_image_path): Update for preferences api changes. * libnautilus-extensions/nautilus-user-level-manager.c: * libnautilus-extensions/nautilus-user-level-manager.h: Retire. No longer needed. User level things are handled in nautilus-preferences.[ch] now. The current user level design is much simpler and does no require its own GtkObject. * src/file-manager/fm-desktop-icon-view.c: (update_home_link_and_delete_copies), (real_update_menus): * src/file-manager/fm-directory-view.c: (open_location), (confirm_delete_from_trash), (real_update_menus), (fm_directory_view_activate_files), (filtering_changed_callback): * src/file-manager/fm-icon-text-window.c: (changed_attributes_option_menu_callback), (fm_get_text_attribute_names_preference_or_default): * src/file-manager/fm-icon-view.c: (should_preview_sound), (fm_icon_view_update_click_mode), (fm_icon_view_update_smooth_graphics_mode): * src/file-manager/fm-list-view.c: (fm_list_view_update_click_mode): * src/file-manager/fm-properties-window.c: (create_permissions_page): * src/nautilus-application.c: (desktop_changed_callback): * src/nautilus-complex-search-bar.c: (nautilus_complex_search_bar_get_location): * src/nautilus-first-time-druid.c: (user_level_selection_changed), (make_hbox_user_level_radio_button), (set_up_user_level_page): * src/nautilus-main.c: (main): * src/nautilus-property-browser.c: (nautilus_property_browser_update_contents): * src/nautilus-sidebar.c: (nautilus_sidebar_sidebar_panel_enabled), (toggle_sidebar_panel), (nautilus_sidebar_size_allocate): * src/nautilus-switchable-search-bar.c: (nautilus_switchable_search_bar_new), (nautilus_search_uri_to_search_bar_mode): Update for preferences api changes. * src/nautilus-window-manage-views.c: (position_and_show_window_callback), (nautilus_window_end_location_change_callback): Update for preferences api changes. Also, no longer need to pass in a default location to the preferences getter. * src/nautilus-window-menus.c: (user_level_customize_callback), (switch_to_user_level), (refresh_bookmarks_menu), (user_level_changed_callback), (add_user_level_menu_item), (nautilus_window_initialize_menus), (update_user_level_menu_items), (convert_user_level_to_path): A lot of simplification. The "Edit Settings..." menu item no longer changes it wording based on the user level. We know allow it to edit settings on all user levels, since we have the ability to hide preferences at higher user levels. No longer need to update the preferences dialog or its title. * src/nautilus-window.c: (nautilus_window_constructed), (nautilus_window_close), (nautilus_window_go_web_search), (nautilus_window_go_home), (nautilus_window_show): Update for preferences api changes. * libnautilus-extensions/nautilus-global-preferences.h: Update all the preferences defines to not include a full gconf path. We dont need to do this anymore to get non user level coupled prefernces. * libnautilus-extensions/nautilus-global-preferences.c: (compare_view_identifiers), (global_preferences_create_dialog), (nautilus_global_preferences_get_enabled_sidebar_panel_view_identif iers), (global_preferences_install_sidebar_panel_defaults), (global_preferences_is_sidebar_panel_enabled), (global_preferences_install_speed_tradeoff_descriptions), (register_proxy_preferences), (global_preferences_register), (global_preferences_install_defaults), (nautilus_global_preferences_set_dialog_title): Lots of changes to support new preferences design. Set the WM_CLASS here once instead of everytime the dialog title is changed. This was causing criticals. No longer need to create parallel proxy preferences and map them to the gconf ones. We can use the gconf ones directly now. * test/.cvsignore: * test/Makefile.am: * test/test-nautilus-preferences-change.c: (user_level_changed_callback), (fruits_changed_callback), (int_picker_changed_callback), (user_level_picker_changed_callback), (picker_new), (user_level_picker_new), (main): * test/test-nautilus-preferences-display.c: (text_caption_update), (user_level_caption_update), (user_level_changed_callback), (green_changed_callback), (yellow_changed_callback), (red_changed_callback), (apple_changed_callback), (orange_changed_callback), (pear_changed_callback), (entry_new), (user_level_frame_new), (colors_frame_new), (fruits_frame_new), (main): * test/test.c: (test_pixbuf_draw_rectangle_tiled), (test_text_caption_set_text_for_int_preferences), (test_text_caption_set_text_for_string_preferences), (test_text_caption_set_text_for_default_int_preferences), (test_text_caption_set_text_for_default_string_preferences), (test_text_caption_get_text_as_int), (test_window_set_title_with_pid): * test/test.h: New tests for preferences changes. * test/test-nautilus-preferences.c: Retire old prefs test which didnt really work. * test/test-nautilus-smooth-graphics.c: (smooth_graphics_mode_changed_callback), (main): Update for preferences api changes.
* fixed bug 5572, black rectangle left behind after clicking on an emblem inAndy Hertzfeld2001-01-171-2/+16
| | | | | | | | | | | | | | | | | | | | | | * src/file-manager/fm-properties-window.c: (property_button_focused_out), (create_emblems_page): fixed bug 5572, black rectangle left behind after clicking on an emblem in Properties window, by attaching to the focus_out signal and redrawing * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (nautilus_property_browser_destroy), (nautilus_property_browser_theme_changed), (nautilus_property_browser_smooth_graphics_changed): fixed some of bug 5614, label text in property browser is corrupted when smooth text option changed, by monitoring the smooth_graphics preference and updating when it changes. The rest of this bug will be fixed when Ramiro fixes the nautilus_label geometry problems as part of bug 5607 * components/text/nautilus-text-view.c: (file_read_callback): corrected the name of the "file too big to load" dialog
* reviewed by: Pavel Cisler <pavel@eazel.com>John Sullivan2001-01-161-194/+146
| | | | | | | | | | | | | | | | | | | | | | | | | | | | More work on bug 2146 (Properties window for desktop Trash icon should show Trash properties). Mostly this was clean-up of the properties window code to make future changes easier. The only substantive change is to remove the "Type" field for the trash. * src/file-manager/fm-properties-window.c: Removed enums for basic page and permissions page row numbers. The rows are now added (and table sized) as needed. (append_row): New helper function, appends one row to a GtkTable and returns the index of the new last row. (append_title_field): New function, like attach_title_field but appends row instead of taking a row parameter. (append_separator), (append_directory_contents_fields), (append_title_value_pair), (append_special_execution_checkbox), (append_special_execution_flags): Renamed from attach_xxx, now append a row instead of taking a row parameter. (create_page_with_table_in_vbox): Now returns GtkTable * instead of GtkWidget *, for callers' convenience. (get_adjusted_permissions_row): Removed this somewhat hacky function. (should_show_file_type): New function, returns FALSE for special trash location but TRUE for everything else. (create_basic_page): Check should_show_file_type; use new append_xxx calls instead of using predefined row numbers. (create_permissions_page): use new append_xxx calls instead of using predefined row numbers.
* reviewed by: Gene Z. Ragan <gzr@eazel.com>John Sullivan2001-01-161-8/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Removed stuff I added earlier as part of a failed fix for bug 2068, which I ended up fixing a different way. Fixed bug 5661 (Hardwired button sizes for custom icons in properties window) Fixed bug 1682 ("Go There" button taller than others in "Open with Other" dialog) * libnautilus-extensions/nautilus-scrolled-window.h: * libnautilus-extensions/nautilus-scrolled-window.c: Removed these files from cvs. * libnautilus-extensions/Makefile.am: Removed the removed files from the build. * libnautilus-extensions/nautilus-metadata.h: removed NAUTILUS_METADATA_KEY_ICON_VIEW_SCROLL_ORIGIN * src/file-manager/fm-directory-view.h: * src/file-manager/fm-directory-view.c: (fm_directory_view_initialize): Changed back to inheriting from GtkScrolledWindow instead of now non-existent NautilusScrolledWindow. * libnautilus-extensions/nautilus-gtk-extensions.h: * libnautilus-extensions/nautilus-gtk-extensions.c: (nautilus_gtk_button_set_standard_padding): New function, wrapper for nautilus_gtk_button_set_padding that uses a standard amount of padding instead of taking a parameter. This is preferred so we can change a single number if we change our minds about what the standard padding should be. * libnautilus-extensions/nautilus-program-chooser.c: (nautilus_program_chooser_new): Use nautilus_gtk_button_set_standard_padding. Also added a vbox so that "Go There" button doesn't grow taller to match the height of the adjacent text. This fixed bug 1682. * src/nautilus-bookmarks-window.c: (create_bookmarks_window): Use nautilus_gtk_button_set_standard_padding. * src/file-manager/fm-properties-window.c: (create_basic_page): Use nautilus_gtk_button_set_standard_padding instead of hardwiring button sizes. This fixed bug 5661.
* added two FIXMEs to this file I checked in moments ago.John Sullivan2001-01-161-0/+6
|
* reviewed by: Darin Adler <darin@eazel.com>John Sullivan2001-01-161-42/+129
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some work on bug 2146 (Properties window for desktop Trash icon should show Trash properties) * src/file-manager/fm-properties-window.c: (is_merged_trash_directory): New helper function, checks whether window is displaying special trash location. (should_show_custom_icon_buttons): New helper function, returns FALSE for special trash location since custom icons don't work with the trash (see bug 5642) (should_show_mime_type): New helper function, extracted for code clarity (returns FALSE for directories). (create_basic_page): Now takes only one parameter, gets file and notebook from details struct; uses should_show_mime_type and should_show_custom_icon_buttons. (create_emblems_page), (create_permissions_page): Now take only one parameter, get file and notebook from details struct. (should_show_emblems): New helper function, returns FALSE for special trash location since emblems don't work with the trash (see bug 5643) (should_show_permissions): New helper function, returns FALSE for special trash location since it's not really a file system object for which permissions make sense. (create_properties_window): Respect should_show_emblems and should_show_permissions. Eli ran into a case where the "can't set permissions" error message was the vague default case when the disk was locked. I added that case to the set of specifically handled cases. * src/file-manager/fm-error-reporting.c: (fm_report_error_renaming_file), (fm_report_error_setting_group), (fm_report_error_setting_owner), (fm_report_error_setting_permissions): Handle GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM cases.
* reviewed by: Pavel Cisler <pavel@eazel.com>Ramiro Estrugo2001-01-111-17/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix bugs 4711, 2322, 3778, 4989, 5044, 5166, 5408, 4418, 3779 (parts), 5051, 2783 and maybe other relating to (ab)use of fonts, backgrounds and other sacred attrbiutes of Gtk themes. * components/hardware/nautilus-hardware-view.c: (setup_form_title), (setup_overview_form), (setup_CPU_form), (setup_RAM_form), (setup_IDE_form): Fix hard coded fonts. * components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (music_view_set_selected_song_title), (reset_playtime), (play_status_display), (slider_moved_callback), (add_play_controls): Fix hard coded fonts. * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_initialize): Fix hard coded fonts. * components/rpmview/nautilus-rpm-view.c: (nautilus_rpm_view_initialize): * components/services/install/nautilus-view/nautilus-service-instal l-view.c: (horizontal_line_new), (install_message_new), (generate_install_form), (nautilus_service_install_view_initialize), (current_progress_bar_complete), (nautilus_service_install_installing): Fix hard coded fonts. * components/services/login/nautilus-view/nautilus-change-password- view.c: (generate_change_password_form), (authn_succeeded), (authn_failed), (change_password_button_cb), (nautilus_change_password_view_initialize): Fix hard coded fonts. Cleanup header inclusion a bit. * components/services/nautilus-dependent-shared/Makefile.am: Retire some crufty code. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.c: (eazel_services_image_new), (eazel_services_image_new_from_uri):, (eazel_services_label_new): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-exte nsions.h: Make the colors opaque. Remove a bunch of hard coded font stuff. Also remove a bunch of hard coded offsets. We use alignments and paddings instead. * components/services/nautilus-dependent-shared/eazel-services-foot er.c: (label_enter_event), (label_leave_event), (image_enter_event), (footer_item_new), (eazel_services_footer_update): Update for label, image and hard coded font changes. * components/services/nautilus-dependent-shared/eazel-services-head er.c: (eazel_services_header_title_new), (eazel_services_header_middle_new): * components/services/nautilus-dependent-shared/shared-service-util ities.c: * components/services/nautilus-dependent-shared/shared-service-util ities.h: * components/services/nautilus-dependent-shared/shared-service-widg ets.c: * components/services/nautilus-dependent-shared/shared-service-widg ets.h: * components/services/summary/nautilus-view/nautilus-summary-callba cks.c: * components/services/summary/nautilus-view/nautilus-summary-dialog s.c: (generate_login_dialog): * components/services/summary/nautilus-view/nautilus-summary-footer .c: * components/services/summary/nautilus-view/nautilus-summary-menu-i tems.c: * components/services/summary/nautilus-view/nautilus-summary-view-p rivate.h: * components/services/summary/nautilus-view/nautilus-summary-view.c : (generate_summary_form), (generate_service_entry_row), (generate_eazel_news_entry_row), (generate_update_news_entry_row): Update for label, image and hard coded font changes. * libnautilus-extensions/Makefile.am: Add new smooth/label/image widget stuff. Retire buffered widget. * libnautilus-extensions/nautilus-art-extensions.c: (nautilus_art_irect_get_width), (nautilus_art_irect_get_height): * libnautilus-extensions/nautilus-art-extensions.h: Two new very simple functions to get the width/height of an ArtIRect. * libnautilus-extensions/nautilus-art-gtk-extensions.c: (nautilus_irect_gtk_widget_get_frame): * libnautilus-extensions/nautilus-art-gtk-extensions.h: New simple function to get the dimensions of a widget as an ArtIRect frame. * libnautilus-extensions/nautilus-buffered-widget.c: * libnautilus-extensions/nautilus-buffered-widget.h: Retire. We dont use this no more. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_get_next_element_for_display): Update for image and hard coded font changes. * libnautilus-extensions/nautilus-debug-drawing.c: (debug_pixbuf_viewer_initialize_class), (debug_pixbuf_viewer_initialize), (debug_pixbuf_viewer_destroy), (debug_pixbuf_viewer_size_request), (debug_pixbuf_viewer_expose_event), (debug_pixbuf_viewer_set_pixbuf), (nautilus_debug_draw_rectangle_and_cross), (destroy_debug_window), (nautilus_debug_show_pixbuf): * libnautilus-extensions/nautilus-debug-drawing.h: Back to using a widget to display the debug pixbuf. But since we cant use NautilusImage (because we want to use this debug stuff to debug NautilusImage itselft) we need something else. Thus a new private and simple widget to display the debug pixbuf. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c: (nautilus_gdk_pixbuf_draw_to_drawable), (nautilus_gdk_pixbuf_draw_to_pixbuf_alpha): Fix a very dumb typo. (draw_tile_to_pixbuf_callback), (nautilus_gdk_pixbuf_draw_to_pixbuf_tiled), (nautilus_gdk_pixbuf_draw_to_drawable_tiled), (nautilus_gdk_pixbuf_get_from_window_safe): Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h: Rename opacity macros to FULLY_OPAQUE and FULLY_TRANSPARENT for clarity. * libnautilus-extensions/nautilus-icon-factory.c: (embed_text): Update opacity macros. Tiny update for change in font constructor. * libnautilus-extensions/nautilus-image-with-background.h: * libnautilus-extensions/nautilus-image-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_image_new_with_background): Create a NautilusImage that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusImage can be used by standalone components in the future. * libnautilus-extensions/nautilus-image.h: * libnautilus-extensions/nautilus-image.c: (nautilus_image_initialize_class), (nautilus_image_initialize), (nautilus_image_destroy), (nautilus_image_set_arg), (nautilus_image_get_arg), (nautilus_image_size_request), (image_paint_pixbuf_callback), (image_composite_pixbuf_callback), (nautilus_image_expose_event), (nautilus_image_set_is_smooth_signal), (image_get_pixbuf_frame), (image_get_pixbuf_bounds), (image_get_tile_frame), (nautilus_image_new), (nautilus_image_set_is_smooth), (nautilus_image_get_is_smooth), (nautilus_image_set_tile_pixbuf), (nautilus_image_get_tile_pixbuf), (nautilus_image_set_pixbuf), (nautilus_image_set_pixbuf_from_file_name), (nautilus_image_get_pixbuf), (nautilus_image_set_pixbuf_opacity), (nautilus_image_get_pixbuf_opacity), (nautilus_image_set_tile_opacity), (nautilus_image_get_tile_opacity), (nautilus_image_set_tile_width), (nautilus_image_get_tile_width), (nautilus_image_set_tile_height), (nautilus_image_get_tile_height), (nautilus_image_set_tile_mode_vertical), (nautilus_image_get_tile_mode_vertical), (nautilus_image_set_tile_mode_horizontal), (nautilus_image_get_tile_mode_horizontal), (nautilus_image_set_tile_pixbuf_from_file_name), (nautilus_image_set_background_mode), (nautilus_image_get_background_mode), (nautilus_image_set_solid_background_color), (nautilus_image_get_solid_background_color), (nautilus_image_new_solid): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honrts the the GtkMisc superclass attrbutes for alignment and padding. The widget is a lot simpler now. * libnautilus-extensions/nautilus-label-with-background.h: * libnautilus-extensions/nautilus-label-with-background.c: (find_background_ancestor), (draw_background_callback), (nautilus_label_new_with_background): Create a NautilusLabel that uses NautilusBackground to draw the background. We put this in a separate file to avoid the ugly dependency chain in NautilusBackground so that NautilusLabel can be used by standalone components in the future. * libnautilus-extensions/nautilus-label.h: * libnautilus-extensions/nautilus-label.c: (nautilus_label_initialize_class), (nautilus_label_initialize), (nautilus_label_destroy), (nautilus_label_set_arg), (nautilus_label_get_arg), (nautilus_label_size_request), (label_paint_pixbuf_callback), (label_composite_pixbuf_callback), (nautilus_label_expose_event), (nautilus_label_set_is_smooth_signal), (label_draw_text_to_pixbuf), (label_get_default_line_wrap_width), (label_get_text_frame), (label_get_text_bounds), (label_get_tile_frame), (label_peek_text), (label_get_empty_line_height), (label_get_total_text_and_line_offset_height), (label_line_geometries_clear), (label_line_geometries_recompute), (nautilus_label_new), (nautilus_label_set_smooth_font), (nautilus_label_get_smooth_font), (nautilus_label_set_smooth_font_size), (nautilus_label_get_smooth_font_size), (nautilus_label_set_is_smooth), (nautilus_label_get_is_smooth), (nautilus_label_set_tile_pixbuf), (nautilus_label_get_tile_pixbuf), (nautilus_label_set_text_opacity), (nautilus_label_get_text_opacity), (nautilus_label_set_tile_opacity), (nautilus_label_get_tile_opacity), (nautilus_label_set_tile_width), (nautilus_label_get_tile_width), (nautilus_label_set_tile_height), (nautilus_label_get_tile_height), (nautilus_label_set_tile_mode_vertical), (nautilus_label_get_tile_mode_vertical), (nautilus_label_set_tile_mode_horizontal), (nautilus_label_get_tile_mode_horizontal), (nautilus_label_set_tile_pixbuf_from_file_name), (nautilus_label_set_background_mode), (nautilus_label_get_background_mode), (nautilus_label_set_solid_background_color), (nautilus_label_get_solid_background_color), (nautilus_label_set_smooth_line_wrap_width), (nautilus_label_get_smooth_line_wrap_width), (nautilus_label_set_text_color), (nautilus_label_get_text_color), (nautilus_label_set_smooth_drop_shadow_offset), (nautilus_label_get_smooth_drop_shadow_offset), (nautilus_label_set_smooth_drop_shadow_color), (nautilus_label_get_smooth_drop_shadow_color), (nautilus_label_set_justify), (nautilus_label_get_text_justify), (nautilus_label_set_text), (nautilus_label_get_text), (nautilus_label_set_wrap), (nautilus_label_get_wrap), (nautilus_label_new_solid), (nautilus_label_make_bold), (nautilus_label_make_larger), (nautilus_label_make_smaller): Fixed many problems. Properly handles rendering on top of arbitrary Gtk backgrounds. Does not allocate a buffer the size of the widget anymore. All rendering occurs on exposure events. Honors the the GtkMisc superclass attrbutes for alignment and padding. NautilusLabel is now subclassed from GtkLabel itself. That means that the is_smooth attribute can be toggled to make both religions happy. Support for making the label larger, smaller and/or bold based on the current font. Renamed a lot of methods to make it obvious that they apply only to the smooth case. Also made the api match GtkLabel more closely. So many functions got renamed. * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_set_entry_pixbuf): Tiny update for changes in the NautilusImage constructor. * libnautilus-extensions/nautilus-scalable-font-private.h: New file. Some private font stuff lives here. I need this changed for a checkin that I will make later regarding improvement of performance in the icon container smooth fonts. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize), (font_entry_new), (font_entry_free), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_draw_text), (nautilus_scalable_font_draw_text_lines_with_dimensions), (nautilus_scalable_font_draw_text_lines), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_rsvg_handle), (nautilus_scalable_font_get_rsvg_context), (nautilus_text_layout_paint): Change the constructor to return the type itself instead of GtkObject. Some minor style tweaks. Keep track of the font entry that was used to allocate the font. New private functions for accessing the rsvg context and font handles. Remove an unsed function. * libnautilus-extensions/nautilus-smooth-widget.h: * libnautilus-extensions/nautilus-smooth-widget.c: (widget_is_smooth), (smooth_widget_set_is_smooth), (preferences_get_is_smooth), (smooth_widget_destroy), (smooth_graphics_mode_changed_callback), (nautilus_smooth_widget_register), (smooth_widget_get_tile_origin_point), (smooth_widget_get_gtk_background), (smooth_widget_get_background), (smooth_widget_paint_tile_opaque), (smooth_widget_paint_tile_transparent), (smooth_widget_paint_content_opaque), (smooth_widget_paint_content_transparent), (smooth_widget_paint_tile_and_content_transparent), (nautilus_smooth_widget_paint), (nautilus_smooth_widget_get_tile_bounds), (nautilus_smooth_widget_get_preferred_frame): Shared code between NautilusLabel and NautilusImage. ALl the code to support smooth toggable widgets lives here. Also, keep track of smooth widgets and toggle their is_smooth attribute in response to nautilus smooth graphics preferences changes. * libnautilus-extensions/nautilus-tabs.c: (nautilus_tabs_initialize), (draw_tab_label): Tiny update for change in font constructor. Add a FIXME for a hard coded font issue im going to fix later. Opacity macro update. * src/file-manager/fm-properties-window.c: (create_image_widget_for_file): Using the new image widget makes this code a lot simpler. No longer need to check smooth preference. It all happens automatically. * src/file-manager/nautilus-indexing-info.c: (update_progress_display), (show_reindex_request_information), (show_index_progress_bar), (show_indexing_info_dialog): Fix a bunch of hard coded font issues. * src/nautilus-about.c: (draw_aa_string), (nautilus_about_draw_info), (nautilus_about_update_authors): Tiny update for change in font constructor. Opacity macro update. * src/nautilus-first-time-druid.c: (label_new_left_justified), (make_hbox_user_level_radio_button), (set_up_user_level_page), (set_up_service_signup_page), (set_up_update_page), (set_up_proxy_config_page), (set_up_update_feedback_page), (nautilus_first_time_druid_show): Fix a bunch of hard coded font issues. Also fix the rendering problems with image usage inside selectable buttons. * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (set_emblem_image_from_file), (make_property_tile), (make_properties_from_directories), (add_reset_property), (make_properties_from_xml_node), (nautilus_property_browser_update_contents): Fix hard coded fonts. Update for NautilusImage and NautilusLabel changes. * src/nautilus-search-bar-criterion.c: Remove unused #include. * src/nautilus-shell.c: (display_caveat): Fix hard coded fonts. * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_load_theme_data), (draw_one_tab_plain), (draw_one_tab_themed): Fix hard coded fonts. Opacity macros update. * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize), (nautilus_sidebar_title_select_text_color), (update_icon), (update_font), (update_title), (update_more_info), (add_emblem), (sidebar_title_create_title_label), (sidebar_title_create_more_info_label), (smooth_graphics_mode_changed_callback): Update for NautilusImage and NautilusLabel changes. Made the widget a lot simpler. We no longer need to keep track of smooth changes in the sidebar title. They are taked care automatically by the widgets. We no longer need to create 2 labels to honor smoothness. NautilusLabel does it all now. Removed a set_background() function that already exists in nautilus-extensions. * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (set_help_label), (exit_remove_mode): Fix hard coded fonts. * test/font-test.sh: Retire. Not needed. * test/.cvsignore: * test/Makefile.am: Add a bunch of tests. * test/test.h: * test/test.c: Put shared test code here. * test/test-nautilus-font-simple.c: * test/test-nautilus-font.c: * test/test-nautilus-image-background.c: * test/test-nautilus-image-scrolled.c: * test/test-nautilus-image-simple.c: * test/test-nautilus-image-tile.c: * test/test-nautilus-image.c: * test/test-nautilus-label-background.c: * test/test-nautilus-label-flavorful.c: * test/test-nautilus-label-scrolled.c: * test/test-nautilus-label-simple.c: * test/test-nautilus-label-wrapped.c: * test/test-nautilus-label.c: * test/test-nautilus-pixbuf-tile.c: * test/test-nautilus-smooth-graphics.c: * test/test-nautilus-wrapped-label.c: Some new tests. Many updates to old label and image tests.
* fixed bug 3256, loading a huge text file crashes nautilus. Now, if theINSTALLER_PR3_ANCHORAndy Hertzfeld2001-01-111-1/+0
| | | | | | | | | | | | | | | | | | | | | | | * components/text/nautilus-text-view.c: (nautilus_text_view_initialize), (nautilus_text_view_destroy), (done_file_read), (file_read_callback), (file_opened_callback), (nautilus_text_view_update): fixed bug 3256, loading a huge text file crashes nautilus. Now, if the file size exceeds a predetermined threshold, currently set at a megabyte, it truncates it to the threshold amount and warns the user with an error dialog. As part of this, I made the text view load files asynchronously and progressively, as Maciej suggested; however, we won't see the benefit of this until Pavel checks in some gnome-vfs optimizations he's working on since currently gnome-vfs doesn't give the main loop much time to run if it has ongoing activity. * components/text/services/Makefile.am: * components/text/services/french_to_english.xml: at Bud's request, checked in the "frech to english" text service * src/file-manager/fm-properties-window.c: (create_emblems_page): removed debug message that I accidentally checked in.
* fixed bugs 5189, 5190 and 5046, pattern and emblem names not translated,Andy Hertzfeld2001-01-071-106/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fixed bugs 5189, 5190 and 5046, pattern and emblem names not translated, and upper-casing emblem names is bad for translation, by introducing a translatable display name specified in the browser xml file. * libnautilus-extensions/nautilus-customization-data.c: (nautilus_customization_data_new), (nautilus_customization_data_get_next_element_for_display), (nautilus_customization_data_destroy), (format_name_for_display), (load_name_map_hash_table): made it load a display name mapping from the browser xml file into a hash table when a nautilus customization is created; use the mapping to return a label with a translated name. * src/file-manager/fm-properties-window.c: (create_emblems_page): rewrote the emblem code in the properties window to use nautilus_customization instead of ad hoc code, so it will use the translated names. * src/nautilus-property-browser.c: (get_color_category): replaced custom xml code with a standard routine from xml_extensions. * src/nautilus-search-bar-criterion.c: (make_emblem_value_menu): fixed a memory leak and tweaked the code a bit for translated names. * data/browser.xml: added display name mappings for patterns and emblems
* reviewed by: Pavel Cisler <pavel@eazel.com>Darin Adler2001-01-041-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix bug 5235 ("Forget History" eliminates history from Go menu, not History sidebar panel). * components/history/nautilus-history-view.c: (install_icons): Fix leak of pixmap and bitmap. (update_history): Replaced dual lock system with a single one. (button_press_callback): Only respect button 1, ignore others. (button_release_callback): Only respect button 1, ignore others, (history_changed_callback): A new single callback for when the history list changes to replace the multiple callbacks before. (nautilus_history_view_initialize_class), (nautilus_history_view_initialize), (nautilus_history_view_destroy), (main): Change the history view to use nautilus_view_standard_main which requires a subclass. This gets rid of a lot of boilerplate code. * libnautilus/nautilus-view-component.idl: Make every NautilusView get an explicit history_changed call instead of requiring them to guess when to get history. Removed the old get_history_list call and also renamed the HistoryList sequence to History. * libnautilus/nautilus-view.h: * libnautilus/nautilus-view.c: (impl_Nautilus_View_history_changed), (nautilus_view_initialize_class): Added the necessary stuff to cover the new history_changed call. * src/nautilus-view-frame.h: * src/nautilus-view-frame.c: (nautilus_view_frame_initialize): Connect handlers so we can send history_changed calls to the NautilusView when either the history or the icons change. (nautilus_view_frame_destroy): Change state to EMPTY so the history signal won't be sent once the frame is destroyed. (view_frame_activated): Send a history_changed to every newly-activated view. (get_CORBA_object): Helper function to make code that makes CORBA calls simpler. (check_if_view_is_gone): Use get_CORBA_object. (attach_client): Gave a nicer name, removed the code that makes the Nautilus_HistoryFrame interface. (nautilus_view_frame_load_client): Do the attach_client (formerly nautilus_view_frame_set_to_component) before calling view_frame_activated. This is needed since view_frame_activated now sends a history_changed to the view. (nautilus_view_frame_load_location), (nautilus_view_frame_stop_loading), (nautilus_view_frame_selection_changed), (nautilus_view_frame_title_changed): Use get_CORBA_object. (get_history_list): Made this private. (send_history): Helper function that sends history to the view if it's in the appropriate state. * src/Makefile.am: * src/nautilus-history-frame.c: * src/nautilus-history-frame.h: Removed the old NautilusHistoryFrame, which is no longer needed since we put the history call right in the NautilusView class. * src/nautilus-window-manage-views.c: (get_history_list_callback): Updated for Nautilus_HistoryList -> Nautilus_History change. Fix bug 5391 ("Esc" Canceling of an icon stretch doesn't restore icon position.). * libnautilus-extensions/nautilus-icon-private.h: * libnautilus-extensions/nautilus-icon-container.c: (clear_drag_state): Add a single bottleneck function to make sure the context menu timeout always gets canceled. (continue_stretching): Remove the unused "update_position" parameter. (undo_stretching): Consolidate the cancel_stretching function and restore the icon's position as well as its size. Also use the new bottleneck to clear the drag state. (button_release_event): Use the new bottleneck to clear the drag state. (show_context_menu_callback): Use the new bottleneck to clear the drag state. (nautilus_icon_container_set_selection), (nautilus_icon_container_select_list_unselect_others): Take advantage of the defaults in g_hash_table_new and use NULL, NULL instead of g_direct_hash, g_direct_equal. (nautilus_icon_container_show_stretch_handles): Save the position as well as the size. (compute_stretch): Add a FIXME with a bug number. Fix bug 5407 (Make "Hardware Overview" title translatable). * components/hardware/nautilus-hardware-view.c: (nautilus_hardware_view_destroy): Remove unused uri field. (extract_info): Fix storage leak. (get_RAM_description): Get rid of code that non-portably relies on long long. Mark strings for translation. (get_IDE_description): Get rid of code that non-portably relies on long long. Mark strings for translation. (setup_overview_form): Marked string for translation. (setup_CPU_form), (setup_RAM_form), (setup_IDE_form), (is_location), (nautilus_hardware_view_load_uri): Disable the views other than the overview for now since they are not ready to be seen. (nautilus_hardware_view_drag_data_received): Get rid of the code that makes the hardware view accept a URI list drag. Fix bug 5405 (nautilus --check fails when using LC_ALL=sv_SE due to missing entry in POTFILES.in). * po/POTFILES.in: Added nautilus-glib-extensions.c. Other changes. * src/nautilus-signaller.h: * src/nautilus-signaller.c: (nautilus_signaller_initialize_class), (nautilus_signaller_get_current): Change the NautilusSignaller class so that the interface calls the object a GtkObject * and the details of the class are hidden. * src/nautilus-property-browser.c: (emit_emblems_changed_signal): * src/nautilus-search-bar-criterion.c: (nautilus_search_bar_criterion_destroy), (nautilus_search_bar_criterion_new_from_values): * src/nautilus-window-menus.c: (nautilus_window_initialize_go_menu): * src/nautilus-window.c: (nautilus_send_history_list_changed): Now that nautilus_signaller_get_current returns a GtkObject, remove some unnecessary casts. * components/html/glibwww-callbacks.c: (get_sock_info), (glibwww_timer_register): * components/tree/nautilus-tree-model.c: (nautilus_tree_model_initialize): * components/tree/nautilus-tree-view.c: (nautilus_tree_view_initialize): * libnautilus-extensions/nautilus-directory-async.c: (async_job_start): * libnautilus-extensions/nautilus-directory.c: (nautilus_directory_notify_files_added), (nautilus_directory_notify_files_removed), (nautilus_directory_notify_files_moved): * libnautilus-extensions/nautilus-icon-factory.c: (nautilus_icon_factory_initialize): * libnautilus-extensions/nautilus-list.c: (nautilus_list_set_selection): * libnautilus-extensions/nautilus-merged-directory.c: (nautilus_merged_directory_initialize): * libnautilus-extensions/nautilus-trash-directory.c: (nautilus_trash_directory_initialize): * src/file-manager/fm-properties-window.c: (fm_properties_window_present): Take advantage of the defaults in g_hash_table_new and use NULL, NULL instead of g_direct_hash, g_direct_equal.
* Fixed bug 5282 (Two file-name-conflict dialogs renaming inJohn Sullivan2000-12-211-14/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | | Properties window) The problem was that the activate signal and the focus-out signal were both trying to rename using the bad name. Fixed by restoring the text in the name field to the original name when an error occurs. * src/file-manager/fm-properties-window.c: (fm_properties_window_initialize_class): Wire up finalize handler. (name_field_restore_original_name): Select text of original name after restoring it into text field. (set_pending_name): Helper function to save pending name. (name_field_done_editing): Remember pending name in case window and name field get destroyed before callback. Ref window so it won't be finalized before callback. (rename_callback): Restore original name when rename fails, use stored pending name for window, unref window. (name_field_focus_out), (name_field_activate): Now take window as callback data so it can be passed to done_editing. (create_basic_page): Remember name field in window details struct so it can be accessed in rename_callback; remove some unnecessary casts; pass window as callback data to two signal handlers. (real_destroy): Don't free details here; do so in finalize (real_finalize): Free pending_name and details here, so pending name is always accessible by rename_callback.
* reviewed by: Pavel Cisler <pavel@eazel.com>John Sullivan2000-12-191-1/+1
| | | | | | | | | | | | | | | | | | | Fixed bug 2392 (need timed wait when activating file) * src/file-manager/fm-directory-view.c: (get_containing_window): Rewrote to avoid applying GTK_WINDOW () cast on potential NULL object. (fm_directory_view_activate_file): Start timed-wait when activating file, so user can cancel it if the call_when_ready takes a really long time. (activate_callback): Cancel timed-wait when we hear back from the call_when_ready. (cancel_activate_callback): Cancel call_when_ready if the user clicks the Cancel button in the timed-wait dialog. * src/file-manager/fm-properties-window.c: (fm_properties_window_present): Fixed a doubled character in a string from my previous checkin.
* reviewed by: Darin Adler <darin@eazel.com>John Sullivan2000-12-191-4/+83
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixed bug 2292 (no way to cancel opening a Properties window, which could wait forever checking if a file is a directory). Now there's a hashtable of pending files, which is used to avoid trying to show the same window twice and to cancel showing a window. * src/file-manager/fm-properties-window.c: (cancel_create_properties_window_callback): New function, used by timed-wait mechanism to give up on not-yet-appearing properties window. (remove_pending_file): New helper function, removes pending file from hashtable and stops timed-wait. (pending_file_succeeded): New helper function called when the wait for info is over and the window can be created. (create_properties_window_callback): call pending_file_succeeded before doing anything else. (directory_view_destroyed_callback): New function, used to cancel timed-wait if the directory view is destroyed before the properties window has appeared. (fm_properties_window_present): Create pending_files hashtable; do nothing if we're already waiting for a properties window for this file; add file to pending_files; wire up directory_view_destroyed_callback; start timed-wait before using call_when_ready to determine if file is a directory; use nautilus_g_hash_table_new_free_at_exit to help catch leaks. Added a couple more bonobo_ui_component_freeze/thaw pairs, though they have only a very small measured effect here. * src/file-manager/fm-icon-view.c: (update_layout_menus), (fm_icon_view_merge_menus): Add freeze/thaw pairs around multiple bonobo-ui operations.
* reviewed by: Darin Adler <darin@eazel.com>John Harper2000-12-151-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-12-15 John Harper <jsh@eazel.com> reviewed by: Darin Adler <darin@eazel.com> * components/html/gnome-dialogs.c: (get_progress), (glibwww_prompt), (glibwww_prompt_password), (glibwww_prompt_username_and_password): * components/music/configure.c: (mpg123_configure): * components/music/fileinfo.c: (mpg123_file_info_box): * components/music/nautilus-music-view.c: (image_button_callback): * helper-utilities/error-dialog/nautilus-error-dialog.c: (show_message_box): * libnautilus-extensions/nautilus-file-operations-progress.c: (nautilus_file_operations_progress_new): * libnautilus-extensions/nautilus-global-preferences.c: (nautilus_global_preferences_set_dialog_title): * libnautilus-extensions/nautilus-program-chooser.c: (run_program_configurator_callback), (nautilus_program_chooser_new): * libnautilus-extensions/nautilus-stock-dialogs.c: (timed_wait_callback), (nautilus_simple_dialog), (show_message_box): * src/file-manager/fm-icon-text-window.c: (create_icon_text_window): * src/file-manager/fm-properties-window.c: (create_properties_window), (select_image_button_callback): * src/nautilus-about.c: (nautilus_about_initialize): * src/nautilus-bookmarks-window.c: (create_bookmarks_window): * src/nautilus-first-time-druid.c: (nautilus_first_time_druid_show): * src/nautilus-link-set-window.c: (nautilus_link_set_configure_window): * src/nautilus-property-browser.c: (nautilus_property_browser_initialize), (nautilus_emblem_dialog_new), (add_new_pattern): * src/nautilus-shell.c: (display_caveat): * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize), (add_new_theme_button_callback): Added calls to gtk_window_set_wmclass with suitable instance names and `Nautilus' class name
* reviewed by: Darin Adler <darin@eazel.com>John Harper2000-12-141-0/+1
| | | | | | | | | | | | | 2000-12-13 John Harper <jsh@eazel.com> reviewed by: Darin Adler <darin@eazel.com> * src/file-manager/fm-properties-window.c: (select_image_button_callback): * src/nautilus-property-browser.c: (add_new_pattern): * src/nautilus-theme-selector.c: (add_new_theme_button_callback): Added calls to gtk_window_set_transient_for for file selectors
* reviewed by: Darin Adler <darin@eazel.com>John Sullivan2000-12-121-16/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | While investigating bug 5147, which I couldn't reproduce, I found and fixed a crashing bug with similar steps. * src/file-manager/fm-desktop-icon-view.c: (fm_desktop_icon_view_destroy): remove preferences callback for home_uri_changed, so we won't crash trying to execute it after the desktop view has been destroyed. Fixed bug 4226 (Non-standard text field auto-selection behavior wreaks havoc with finely tuned middle-click paste feature) The problem here was that I had done some automatic selection changing on focus-in and focus-out a long time ago in an attempt to make the behavior more usable for real copy/paste and tabbing. Unfortunately my attempt to improve the default behavior ran afoul of the hellish X middle-click-to-paste-selected-text feature that is a staple of every poor X window user's life. For now, I just took out my non-standard behaviors as they aren't clearly an overall improvement and I hadn't even tried to deploy them across Nautilus, much less across GTK. * src/file-manager/fm-properties-window.c: (name_field_focus_in): Removed this function, which used to select all the text in the field. (name_field_focus_out): No longer deselects contents. (create_basic_page): Don't connect to focus-in signal. * src/nautilus-bookmarks-window.c: (on_text_field_focus_in_event): Removed this function, which used to select all the text in the field. (on_text_field_focus_out_event): No longer deselects contents. (create_bookmarks_window): Don't connect to focus-in signal.
* fixed bug 4212, emblem doesn't show up when the image is a JPEG file, byAndy Hertzfeld2000-12-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * libnautilus-extensions/nautilus-icon-factory.c: (cache_icon_new), (load_icon_for_scaling), (scale_icon), (get_icon_from_cache), (nautilus_icon_factory_get_pixbuf_for_icon), (nautilus_icon_factory_get_pixbuf_for_file): fixed bug 4212, emblem doesn't show up when the image is a JPEG file, by adding ".jpg" to extensions checked in the icon factory. Fixed bug 3208, generic icon shows up for deleted emblems, by adding a "wants_default" parameter to the icon factory get_pixbuf_for_icon call. If "wants_default" is false, it returns NULL instead of the generic icon. Emblem callers pass FALSE so they don't get pixmaps for deleted emblems. * libnautilus-extensions/nautilus-bookmark.c: (nautilus_bookmark_get_pixbuf): added boolean parameter to get_pixbuf_for_icon call * libnautilus-extensions/nautilus-icon-container.c: (nautilus_icon_container_update_icon): added boolean parameter to get_pixbuf_for_icon call * libnautilus-extensions/nautilus-icon-factory.h: added "wants_default" boolean to get_pixbuf_for_icon definition * src/file-manager/fm-list-view.c: (fm_list_view_get_emblem_pixbufs_for_file): added boolean parameter to get_pixbuf_for_icon call * src/file-manager/fm-properties-window.c: (create_image_widget_for_emblem): added boolean parameter to get_pixbuf_for_icon call * src/nautilus-sidebar-title.c: (update_emblems): added boolean parameter to get_pixbuf_for_icon call
* reviewed by: Pavel Cisler <pavel@eazel.com>Darin Adler2000-12-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixed bug 650 (moving a large number of files is extremely slow) by using a hash table to find metafile nodes given a file name. Fixed bug 3410 (sorting not locale-sensitive) by making nautilus_strcoll suitable for wider use and using it a lot more. * libnautilus-extensions/nautilus-directory-private.h: Add a new hash table for locating metafile nodes by file name. * libnautilus-extensions/nautilus-directory-metafile.h: Add nautilus_directory_set_metafile_contents call so the metafile code will have a crack at the metafile contents right when they are first read in. * libnautilus-extensions/nautilus-directory-metafile.c: (get_file_node): Locate the file node using the hash table, and create a hash table entry when making a new file node. (destroy_xml_string_key), (nautilus_directory_metafile_destroy): Destroy the hash table when the directory is destroyed. (nautilus_directory_rename_file_metadata): Remove the old hash table entry and make a new one when the node's name is changed. (nautilus_directory_set_metafile_contents): Create the hash table and populate it when the metafile is read in. * libnautilus-extensions/nautilus-string.h: * libnautilus-extensions/nautilus-string.c: (nautilus_strcoll): Treat a locale that can't be fetched by setlocale the same as locale "C" and "POSIX", fall back on strcmp if strcoll says two strings are equal, so that only identical strings get a 0. (nautilus_strcmp_compare_func): New name for nautilus_str_compare. (nautilus_strcoll_compare_func): New function. (nautilus_strcasecmp_compare_func): New name for nautilus_istr_compare. * libnautilus-extensions/nautilus-glib-extensions.h: * libnautilus-extensions/nautilus-glib-extensions.c: (nautilus_g_str_list_copy): Removed an unnecessary check for NULL. (nautilus_g_str_list_alphabetize): Replaced the old sort calls with this single call. It sorts in a locale-sensitive way, using nautilus_strcoll. * libnautilus-extensions/nautilus-file.c: (compare_by_name), (compare_by_directory_name), (compare_by_emblems), (compare_by_type), (nautilus_file_compare_name): Use nautilus_strcoll instead of nautilus_strcmp_case_breaks_ties so we use local sorting conventions in locales other than "C" and "POSIX". (nautilus_get_user_names), (nautilus_get_group_names_including): (sort_keyword_list_and_remove_duplicates): Use the new nautilus_g_str_list_alphabetize to sort by locale-specific conventions. * libnautilus-extensions/nautilus-icon-container.c: (compare_icons_by_name): Use nautilus_strcoll instead of nautilus_strcmp_case_breaks_ties so we use local sorting conventions in locales other than "C" and "POSIX". * src/file-manager/fm-properties-window.c: (get_property_names): Use the new nautilus_g_str_list_alphabetize * src/nautilus-window-manage-views.c: (change_selection): Use the new nautilus_g_str_list_alphabetize * src/nautilus-window.c: (load_view_as_menu_callback): Use the new nautilus_g_str_list_alphabetize * libnautilus-extensions/nautilus-directory-async.c: (metafile_read_done_callback), (nautilus_directory_set_up_request): Use nautilus_str_compare under its new name, nautilus_strcmp_compare_func. * components/services/install/command-line/.cvsignore: Added eazel-test-types, a new generated file. * libnautilus-extensions/nautilus-string-list.c: (nautilus_string_list_new): Use nautilus_str_compare and nautilus_istr_compare under their new names, nautilus_strcmp_compare_func and nautilus_strcasecmp_compare_func. * libnautilus-extensions/nautilus-xml-extensions.c: (nautilus_xml_get_child_by_name): Fixed indenting.
* fixed bug 2167, no way to add custom icons for files without a viewer, byAndy Hertzfeld2000-12-101-4/+139
| | | | | | | | | | * src/file-manager/fm-properties-window.c: (create_basic_page), (create_properties_window), (ensure_uri_is_image), (set_custom_image), (select_image_button_callback), (remove_image_button_callback): fixed bug 2167, no way to add custom icons for files without a viewer, by adding buttons for adding and removing custom icons to the properties window.
* reviewed by: Darin Adler <darin@eazel.com>John Sullivan2000-12-091-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixed bug 5029 (File count in sidebar might not match displayed search results list due to filtering) * libnautilus-extensions/nautilus-search-uri.h: * libnautilus-extensions/nautilus-search-uri.c: (nautilus_get_target_uri_from_search_result_name): New function to extract the sooper-secretly encoded actual search result URI from the search result "file name". * libnautilus-extensions/nautilus-directory-async.c: (should_display_file_name): New helper function that users user preferences to determine whether a file should be displayed, based only on its name. (filter_search_uri): New filter function used on search results (get_file_count_filter) New function, result depends on whether directory is a search directory. (start_monitoring_file_list): Use get_file_count_filter. * src/file-manager/fm-search-list-view.c: (real_add_file): Use nautilus_get_target_uri_from_search_result_name instead of spreading out the sooper secret knowledge. Fixed bug 5014 (Control-w should close the properties dialog) I made Control-w close a bunch o' windows without menus. * libnautilus-extensions/nautilus-gtk-extensions.h: * libnautilus-extensions/nautilus-gtk-extensions.c: (handle_standard_close_accelerator): New helper function, closes the window if the key was the close accelerator. (nautilus_gtk_window_event_is_close_accelerator): New public function, checks whether a key event is the close accelerator. (nautilus_gtk_window_set_up_close_accelerator): New public function, one-stop shopping for most clients that want to have Control-w close a window. * libnautilus-extensions/nautilus-preferences-dialog.c: (nautilus_preferences_dialog_construct): * src/file-manager/fm-icon-text-window.c: (create_icon_text_window): * src/nautilus-about.c: (nautilus_about_initialize): * src/nautilus-profiler.c: (dump_dialog_new): * src/nautilus-theme-selector.c: (nautilus_theme_selector_initialize): * src/file-manager/fm-properties-window.c: (fm_properties_window_initialize): Simple cases, just use nautilus_gtk_window_set_up_close_accelerator so Control-w closes window. * src/nautilus-bookmarks-window.c: (save_geometry_and_hide): New helper function, saves geometry before hiding window. (on_window_delete_event): Call save_geometry_and_hide; move other code into hide event handler since it should happen on every hide. (restore_geometry): Idle function to restore geometry after window is hidden (sounds strange, but that's the way it works). (on_window_hide_event): Do the every-hide work formerly done in delete_event handler; call restore_geometry at idle time because it must be called after window is hidden to work right. (on_window_destroy_event): remove idle handler in this case (only happens when Nautilus is exiting). (handle_close_accelerator), (set_up_close_accelerator): Similar to nautilus_gtk_window_ versions of these functions, but also handle saving the geometry before hiding. (create_bookmarks_window): Call set_up_close_accelerator; wire up "hide" and "destroy" events. * src/nautilus-property-browser.c: (nautilus_property_browser_delete_event_callback), (nautilus_property_browser_hide_callback): Move code that should run on "hide" from "delete_event" handler to "hide" handler; this didn't matter before when clicking was the only way to close the window. (nautilus_property_browser_initialize): Wire up "hide" handler; call nautilus_gtk_window_set_up_close_accelerator.
* reviewed by: Pavel Cisler <pavel@eazel.com>John Sullivan2000-12-011-1/+15
| | | | | | | | | | | | | | | Worked around without fixing cause of bug 2151 (crash in Undo manager on quit). We can defer fixing the bug properly until we have Undo working again. * libnautilus-extensions/nautilus-undo-signal-handlers.c: (nautilus_undo_editable_set_undo_key): Added FIXMEs with bug number 3515 ("Undo doesn't work"). * src/nautilus-shell-ui.xml: Added FIXME with bug number 3515. * src/file-manager/fm-properties-window.c: (create_basic_page), (create_properties_window_callback): #ifdeffed out undo code and added FIXME with bug number 2151.
* reviewed by: Pavel Cisler <pavel@eazel.com>John Sullivan2000-12-011-44/+109
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixed bug 4911 (Crash emptying trash while displaying properties window for trashed file) This crawled out of the woodwork recently, and required several small fixes here and there to solve it nicely, including making FMPropertiesWindow a subclass -- formerly it was just a GtkWindow with a bunch of wired-up widgets. * libnautilus-extensions/nautilus-file.c: (nautilus_file_get_directory_item_count), (nautilus_file_get_deep_counts): Allow non-directory items (files marked gone don't count as directories). Fill in return values in all cases, even return_if_fail cases. * src/file-manager/fm-error-reporting.c: (fm_report_error_renaming_file): Specific error message for the case where the file being renamed no longer exists. I ran into this partway through my changes, tested this fix, then changed the caller to not hit this case. * src/file-manager/fm-properties-window.h: Standard header stuff now that FMPropertiesWindow is a class and not just some grouped functions. * src/file-manager/fm-properties-window.c: (fm_properties_window_initialize_class), (fm_properties_window_initialize): Standard functions needed for class. (name_field_done_editing): Don't try to rename file that's gone. (create_group_menu_item), (create_owner_menu_item): Added some parameter checking. (synch_groups_menu), (synch_owner_menu): Check for NULL result from nautilus_file_get_string_attribute before making a menu item from it (GTK is unhappy with using NULL for a label). (directory_contents_value_field_update): Soften assert to make it not fire when file is gone. (update_permissions_check_button_state): Bail out if file is gone. (create_properties_window): Create an FMPropertiesWindow instead of a GtkWindow; set up its Details. (create_properties_window_callback): Removed signal handler for "destroy" now that there's a default handler for this class. (forget_properties_window): Removed function, guts now in real_destroy. (real_shutdown): Disconnect file-changed signal here. This is the core fix of the infinite loop reported in bug 4911. (real_destroy): Do the stuff formerly done in forget_properties_window here.
* reviewed by: Rebecca Schulman <rebecka@eazel.com>John Sullivan2000-11-301-125/+172
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixed bug 4899 (Bookmark for nonexistent file can cause infinite loop at startup) Changed NautilusBookmark's internal logic so that it doesn't keep around a file object for known non-existent URIs. The trick is to get it to notice when the URI is no longer non-existent and get a fresh file object then. This is done imperfectly, but the new symptom is very minor and deferrable (wrote it up as bug 4906). * libnautilus-extensions/nautilus-bookmark.c: (nautilus_bookmark_connect_file): Don't get a new NautilusFile object if we know the URI doesn't exist; instead just set the missing-bookmark icon. Also made it safe to call this routine when there's already a file object in hand (just bails out early). (nautilus_bookmark_get_icon), (nautilus_bookmark_get_uri): Call nautilus_bookmark_connect_file so that it will connect to a now-existing file if possible (and thus get the right icon). Since callers that try to activate the bookmark will call get_uri, one way to kick a reincarnated bookmark's icon into appearing is to select it in a menu. (nautilus_bookmark_get_pixbuf): Call nautilus_bookmark_get_icon to benefit from its connect_file logic. Fixed bug 3847 (Icon in properties window flashes while folder count increments) * libnautilus-extensions/nautilus-image.c: (nautilus_image_set_pixbuf): Don't call gtk_widget_queue_resize if the pixbuf hasn't changed. Fixed bug 1454 (Properties dialog needs mucho tweaking) Mostly this was changes to match Arlo's design that he gave me ages ago. I also fixed a few other problems. * libnautilus-extensions/nautilus-file.c: (nautilus_file_get_date_as_string): Change format of date strings from "<date> <time>" to "<date> at <time>" to match Arlo's design. * src/file-manager/fm-properties-window.c: (attach_label): Now handles requests for a bold font. (attach_value_label): Renamed from attach_left_aligned_label, use bold font here. (attach_value_field),(attach_directory_contents_value_field): updated for name change. (attach_right_aligned_label): Removed, guts moved to caller. (attach_title_field): Use bold font here. (attach_option_menu): New helper function to share code between attach_group_menu and attach_owner_menu; now uses gtk_alignment to make the menu be minimally-sized and left-aligned. (attach_group_menu), (attach_owner_menu): Use attach_option_menu. (attach_separator): New helper function to install a separator across both columns of a properties window table. (create_basic_page): Use gtk_alignment to make the icon right-aligned; make the blank row above date rows be standard height. (create_emblems_page): Changed layout so name appears below emblem rather than to its right; this matches Customize window and allows the Properties window to be a smaller width, which looks much better for the other panes. Also, the emblems are now layed out lrtb instead of tblr. (add_permissions_column_label): Make these labels bold. (add_special_execution_flags): Attach a separator. (get_adjusted_permissions_row): Helper function to account for the "special flags" rows, which are not always displayed. (create_permissions_page): Deploy get_adjusted_permissions_row wherever a raw row number was used; insert separators. (create_properties_window): Allow window to be stretched, since the emblems don't all fit at initial window height (so user can stretch rather than scrolling if desired).
* Use `nautilus_file_get_existing', not `nautilus_file_get', to check if aMaciej Stachowiak2000-10-121-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * libnautilus-extensions/nautilus-directory.c: (nautilus_directory_notify_files_removed, nautilus_directory_notify_files_moved): Use `nautilus_file_get_existing', not `nautilus_file_get', to check if a file is already known. `nautilus_file_get' would have created new NautilusFiles and NautilusDirectories only to do redundant notification later in the function. Also, the old code was a bit silly because `nautilus_file_get' only returns NULL for a NULL URI. Work towards bug 3362, eliminate directory metadata. * libnautilus-extensions/nautilus-file-attributes.h: Added NAUTILUS_FILE_ATTRIBUTE_METADATA attribute. * libnautilus-extensions/nautilus-directory-async.c (set_up_request_by_file_attributes): * libnautilus-extensions/nautilus-wait-until-ready.h, libnautilus-extensions/nautilus-file.h, libnautilus-extensions/nautilus-directory.h, libnautilus-extensions/nautilus-directory.c, libnautilus-extensions/nautilus-file.c (nautilus_directory_call_when_ready, nautilus_directory_wait_until_ready, nautilus_directory_file_monitor_add, nautilus_self_check_directory, nautilus_file_monitor_add, nautilus_file_call_when_ready, nautilus_file_wait_until_ready): Remove monitor_metadata or wait_for_metadata attribtues from these calls; the new way to do it is to monitor or wait for the METADATA file attribute. * libnautilus-extensions/nautilus-directory-private.h libnautilus-extensions/nautilus-directory-async.c: (nautilus_directory_monitor_add_internal, nautilus_directory_call_when_ready_internal, nautilus_directory_check_if_ready_internal): Eliminate monitor_metadata, wait_for_metadata, etc arguments. * libnautilus-extensions/nautilus-merged-directory.c: (merged_callback_connect_directory), (merged_call_when_ready), (merged_file_monitor_add), (monitor_add_directory): * libnautilus-extensions/nautilus-vfs-directory.c: (vfs_call_when_ready), (vfs_file_monitor_add): * libnautilus-extensions/nautilus-directory-background.c (nautilus_connect_background_to_directory_metadata): Monitor metadata the new approved way. * libnautilus-extensions/nautilus-mime-actions.c (nautilus_directory_wait_for_metadata, nautilus_mime_get_default_component_for_uri_internal, nautilus_mime_get_short_list_components_for_uri, nautilus_mime_get_all_components_for_uri, get_mime_type_from_file): Wait for metadata the new approved way. * src/file-manager/fm-directory-view.c (fm_directory_view_activate_file, fm_directory_view_load_uri, finish_loading_uri, metadata_ready_callback): Monitor/call_when_ready using the new API. * src/file-manager/fm-properties-window.c: (create_properties_window, fm_properties_window_present): Monitor/call_when_ready using the new API. * src/file-manager/fm-search-list-view.c (real_adding_file): Monitor/call_when_ready using the new API. * src/file-manager/nautilus-trash-monitor.c (nautilus_trash_monitor_initialize): Monitor/call_when_ready using the new API. * src/nautilus-applicable-views.c (nautilus_navigation_info_new): Monitor/call_when_ready using the new API. * components/notes/nautilus-notes.c (notes_load_metainfo): Monitor/call_when_ready using the new API. * components/tree/nautilus-tree-model.c: (nautilus_tree_model_monitor_add, nautilus_tree_model_monitor_node): Monitor/call_when_ready using the new API. * src/nautilus-sidebar-title.c, src/nautilus-sidebar-title.h (nautilus_sidebar_title_set_uri): Monitor/call_when_ready using the new API, and use file metadata instead of directory metadata. * src/nautilus-sidebar.c (nautilus_sidebar_destroy, nautilus_sidebar_add_panel_items, nautilus_sidebar_background_is_default, receive_dropped_uri_list, receive_dropped_color, receive_dropped_keyword, (background_settings_changed_callback, background_appearance_changed_callback, background_reset_callback, open_with_callback, nautilus_sidebar_update_buttons, nautilus_sidebar_update_appearance, nautilus_sidebar_set_uri): Monitor/call_when_ready using the new API, and use file metadata instead of directory metadata. Keep around a NautilusFile representing the current sidebar location, simplifying bunches of code and hopefully eliminating potential redundant I/O. * src/nautilus-window-manage-views.c (viewed_file_changed_callback, position_and_show_window_callback, nautilus_window_end_location_change_callback): Monitor/call_when_ready using the new API, and use file metadata instead of directory metadata. Keep around a NautilusFile representing the current sidebar location, simplifying bunches of code and hopefully eliminating potential redundant I/O. * src/nautilus-window.c (nautilus_window_save_geometry): Use file metadata instead of directory metadata.
* More work on whittling the state machine down to size.Darin Adler2000-10-031-7/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * README: libunicode, libglade, and eog are no longer required. * components/history/nautilus-history-view.c: (history_title_changed): * libnautilus/nautilus-view-component.idl: * libnautilus/nautilus-view.c: (impl_Nautilus_View_title_changed), (nautilus_view_initialize_class): * libnautilus/nautilus-view.h: * src/nautilus-view-frame.c: (nautilus_view_frame_title_changed): * src/nautilus-view-frame.h: Added title parameter for the title_changed function. * src/nautilus-view-frame.c: (nautilus_view_frame_report_load_complete): Got rid of extra emission of report_load_complete, which is handled by view_frame_loaded now. * libnautilus-extensions/nautilus-background.c: (nautilus_background_initialize_class): * libnautilus-extensions/nautilus-entry.c: (nautilus_entry_initialize_class): * libnautilus-extensions/nautilus-icon-text-item.c: (iti_class_init): * libnautilus-extensions/nautilus-list.c: (nautilus_list_initialize_class): * src/nautilus-bookmark-list.c: (nautilus_bookmark_list_initialize_class): * src/nautilus-navigation-bar.c: (nautilus_navigation_bar_initialize_class): * src/nautilus-search-bar-criterion.c: (nautilus_search_bar_criterion_initialize_class): * src/nautilus-sidebar.c: (nautilus_sidebar_initialize_class): * src/nautilus-switchable-navigation-bar.c: (nautilus_switchable_navigation_bar_initialize_class): Use GTK_RUN_LAST instead of GTK_RUN_FIRST. * libnautilus-extensions/nautilus-directory-background.c: * libnautilus-extensions/nautilus-link-set.c: * libnautilus-extensions/nautilus-link.c: * src/file-manager/fm-icon-text-window.c: * src/file-manager/fm-icon-view.c: * src/file-manager/fm-properties-window.c: * src/nautilus-complex-search-bar.c: * src/nautilus-link-set-window.c: * src/nautilus-simple-search-bar.c: * src/nautilus-switchable-search-bar.c: Add includes needed now that the #include <gnome.h> was removed from nautilus-global-preferences.h. * libnautilus-extensions/nautilus-string.h: * libnautilus-extensions/nautilus-string.c: (nautilus_strcmp_case_breaks_ties): Added function, like g_strcasecmp, but falls back on strcmp for strings that match case-insensitive-wise. (nautilus_istr_compare): Use nautilus_strcmp_case_breaks_ties instead of nautilus_strcasecmp. * libnautilus-extensions/nautilus-file.c: (nautilus_file_compare_by_name): Use nautilus_strcmp_case_breaks_ties instead of g_strcasecmp. (nautilus_file_compare_by_directory_name): Use nautilus_strcmp_case_breaks_ties instead of g_strcasecmp. (get_automatic_emblems_as_integer): Convert automatic emblems to integer form for simple sorting. (prepend_automatic_emblem_names): Separate out the code that puts on automatic emblem names, and make it put them first, before any keyword-based emblems. (nautilus_file_compare_by_emblems): Compare the automatic emblems first, using the integer form. (nautilus_file_compare_by_type): Use nautilus_strcmp_case_breaks_ties instead of nautilus_strcmp. (nautilus_file_compare_for_sort): Use nautilus_strcmp_case_breaks_ties instead of g_strcasecmp. (nautilus_file_compare_name): Use nautilus_strcmp_case_breaks_ties instead of g_strcasecmp. (nautilus_file_is_mime_type): Use nautilus_strcasecmp instead of nautilus_strcmp. (nautilus_file_get_emblem_names): Use prepend_automatic_emblem_names. (sort_keyword_list_and_remove_duplicates): Sort with nautilus_strcmp_case_breaks_ties instead of compare_emblem_names. Automatic emblem names are now dealt with elsewhere. * libnautilus-extensions/nautilus-icon-container.c: (compare_icons_by_name): Use nautilus_strcmp_case_breaks_ties instead of nautilus_strcasecmp. * libnautilus-extensions/nautilus-glib-extensions.c: (nautilus_g_str_list_sort): Use nautilus_str_compare. (nautilus_g_str_list_sort_case_insensitive): Use nautilus_istr_compare. * components/services/vault/command-line/main.c: (main): * test/test-nautilus-mime-actions-set.c: (str_to_action_type): Use g_strcasecmp, not strcasecmp, for portability. * libnautilus-extensions/nautilus-global-preferences.h: * libnautilus-extensions/nautilus-global-preferences.c: Removed _get_disabled_sidebar_panel_view_identifiers since the logic now removes any not in the enabled list instead. * libnautilus-extensions/nautilus-view-identifier.h: * libnautilus-extensions/nautilus-view-identifier.c: (nautilus_view_identifier_list_copy): New function. (nautilus_view_identifier_compare): Now sorts properly instead of returning 1 for any two identifiers that are !=. * nautilus-clean.sh: Removed unadorned gconfd now that it's ancient history and because it makes the script seem to fail all the time. * src/nautilus-window-manage-views.h: * src/nautilus-window-manage-views.c: (compute_title): Renamed to a shorter name since it's a local function. (update_title): Renamed to a shorter name since it's a local function and made it do nothing if the title is already correct. (nautilus_window_update_internals): Simplified code by using the new cached title. (nautilus_window_has_really_changed): Removed sidebar panel logic that is no longer needed. (nautilus_window_free_load_info): Remove some unused fields. (nautilus_window_open_location): Removed unused parameter. (nautilus_window_open_location_in_new_window): Removed unused parameter. (load_content_view): Renamed to shorter name since it's a local function. (handle_view_failure), (cancel_location_change), (load_view_for_new_location), (set_view_location_and_selection): Broke out big pieces of code used by the state machine. Soon we won't have a state machine at all, but we'll still need functions like these. (nautilus_window_update_state): Removed a lot of the code and broke the remaining bits into the above functions. (nautilus_window_set_state_info): Removed sidebar management code and some now-unused state variables. (nautilus_window_stop_loading): Moved this function in here and renamed it so the whole state machine is in one place. (nautilus_window_set_content_view): Moved this function in here and renamed it so the whole state machine is in one place. (compare_view_identifier_with_iid), (nautilus_window_set_sidebar_panels): Wrote new code to set up the sidebar panels based on a list of view identifiers, based on the code that was used before when preferences change. Moved here so the whole state machine is in one place. * src/nautilus-window-toolbars.c: (toolbar_stop_callback): Call the new function nautilus_window_stop_loading. * src/nautilus-window-private.h: * src/nautilus-window.h: * src/nautilus-window.c: (nautilus_window_initialize_class): Removed the "content_view" argument. (nautilus_window_goto_uri): Removed the view frame parameter from the open_location call. (nautilus_window_constructed): Set up sidebars based on preferences when the window is created. (nautilus_window_set_arg): Removed the "content_view" argument. (nautilus_window_get_arg): Removed the "content_view" argument. (view_menu_switch_views_callback): Call the new function nautilus_window_set_content_view. (chose_component_callback), Call the new function nautilus_window_set_content_view. (nautilus_window_open_location_callback): Removed the view frame parameter from the open_location call. (nautilus_window_open_location_in_new_window_callback): Removed the view frame parameter from the open_location_in_new_window call. (nautilus_window_connect_view): Don't connect to report_load_progress any more. The view frame now handles this for us. (nautilus_window_set_content_view_widget): Renamed this to avoid confusion with the new nautilus_window_set_content_view which is used to change content views, given a new view identifier. (update_sidebar_panels_from_preferences): Renamed and changed to use the new nautilus_window_set_sidebar_panels call.
* fixed bug 3332, erase emblem was mistakenly included in properties window.Andy Hertzfeld2000-09-291-0/+7
| | | | | | | | | fixed bug 3332, erase emblem was mistakenly included in properties window. tweaked images from Susan for the property browser Susan fixed Eli's time signature bug in the music icon
* Storage leak fixes. Today I concentrated on leaks that happenDarin Adler2000-09-231-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | when you change views from Icon to List View and back. * components/tree/nautilus-tree-view.c: (nautilus_tree_view_insert_model_node): Unref a pixmap and bitmap, free a string. (nautilus_tree_view_update_model_node): Unref a pixmap and bitmap, free a string. (notify_node_seen): Free a string. (nautilus_tree_view_uri_to_name): Removed extra g_strdup. * libnautilus-extensions/nautilus-glib-extensions.c: (free_hash_tables_at_exit): Free a list. * libnautilus-extensions/nautilus-list.c: (draw_cell): Skip the excess work of re-getting the pixmap and bitmap, not using them, and leaking them. * libnautilus-extensions/nautilus-preferences.c: (preferences_hash_node_remove_callback): Free a list. * src/file-manager/fm-directory-view.c: (queue_pending_files): Free a list. * src/file-manager/fm-icon-view.c: (get_icon_text_callback): Free a string in all code paths (was freed in some before). * src/file-manager/fm-list-view.c: (add_to_list): Free the column text in a way that works even though some columns have NULL. (install_row_images): Unref a pixmap and bitmap. * libnautilus-extensions/nautilus-scalable-font.c: (destroy_global_rsvg_ft_context), (initialize_global_stuff_if_needed): Free the rsvg_ft font cache at exit. * libnautilus-extensions/nautilus-theme.c: (free_last_theme), (nautilus_theme_get_theme_data): Free the cached theme XML document at exit. * components/help/converters/gnome-db2html2/gdb3html.c: (remove_head), (start_element), (end_element), (cdata_block): * components/tree/nautilus-tree-model.c: (nautilus_tree_model_for_each_postorder), (nautilus_tree_model_monitor_add): * libnautilus-extensions/nautilus-directory-async.c: (remove_monitor_link), (dequeue_pending_idle_callback), (remove_callback_link_keep_data), (remove_callback_link): * libnautilus-extensions/nautilus-drag.c: (nautilus_drag_file_receive_dropped_keyword): * libnautilus-extensions/nautilus-file-changes-queue.c: (nautilus_file_changes_queue_get_change): * libnautilus-extensions/nautilus-thumbnails.c: (check_for_thumbnails): * src/file-manager/fm-properties-window.c: (property_button_toggled): * src/nautilus-window-manage-views.c: (handle_go_back), (handle_go_forward): * src/nautilus-window.c: (nautilus_add_to_history_list): Fixed a bunch of callers of g_list_remove_link to also free the removed link. This seems to be an error-prone API from glib. About half of the callers had it wrong. * src/nautilus-bookmark-list.c: (nautilus_bookmark_list_delete_item_at), (nautilus_bookmark_list_delete_items_with_uri): * src/nautilus-sidebar.c: (receive_dropped_keyword): Changed to use g_list_free_1 for clarity. * src/nautilus-location-bar.c: Coding style tweaks. * src/nautilus-main.c: (main): Run the self-checks a second time if they succeed the first time. More thorough check this way (make sure the test works even after it's been run once), and better to notice one-time vs. per-test leaks. * tools/leak-checker/nautilus-leak-checker.c: (g_slist_alloc), (g_slist_free), (g_slist_free_1), (g_mem_chunk_new), (g_mem_chunk_destroy), (g_mem_chunk_alloc), (g_mem_chunk_alloc0), (g_mem_chunk_free), (g_mem_chunk_clean), (g_mem_chunk_reset), (g_mem_chunk_print): Made the GSList and GMemChunk code dumb down when using the leak checker. * tools/leak-checker/nautilus-leak-checker.c: Added more symbols of "known to leak" functions so we can see the real leakers.
* Fixed bug 3236 (Window titles are indistinguishable in taskbar)John Sullivan2000-09-221-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Removed "Nautilus: " from the main Nautilus window and all the dialogs. Took this opportunity to standardize book title capitalization for all dialog titles. Also softened the caveat text just a bit. * components/music/nautilus-music-view.c: (play_current_file): * components/rpmview/nautilus-rpm-view-install.c: (nautilus_rpm_view_install_done): * libnautilus-extensions/nautilus-file-operations.c: (handle_xfer_vfs_error), (handle_xfer_overwrite), (nautilus_file_operations_copy_move), (nautilus_file_operations_move_to_trash), (confirm_empty_trash): * libnautilus-extensions/nautilus-program-chooser.c: (nautilus_program_chooser_new), (nautilus_program_chooser_show_no_choices_message): * libnautilus-extensions/nautilus-stock-dialogs.c: (nautilus_info_dialog), (nautilus_warning_dialog), (nautilus_error_dialog), (nautilus_error_dialog_with_details), (nautilus_yes_no_dialog): * src/file-manager/fm-directory-view.c: (fm_directory_view_confirm_multiple_windows), (fm_directory_view_confirm_deletion), (confirm_delete_from_trash), (report_broken_symbolic_link): * src/file-manager/fm-error-reporting.c: (fm_report_error_renaming_file), (fm_report_error_setting_group), (fm_report_error_setting_owner), (fm_report_error_setting_permissions): * src/file-manager/fm-icon-text-window.c: (create_icon_text_window): * src/file-manager/fm-properties-window.c: (update_properties_window_title): * src/nautilus-application.c: (nautilus_application_check_user_directories): * src/nautilus-bookmarks-window.c: (create_bookmarks_window): * src/nautilus-first-time-druid.c: (nautilus_first_time_druid_show): * src/nautilus-property-browser.c: (emblem_image_file_changed), (add_background_to_browser): * src/nautilus-shell.c: (display_caveat): * src/nautilus-sidebar.c: (receive_dropped_uri_list): * src/nautilus-window-manage-views.c: (nautilus_window_update_title), (handle_unreadable_location), (report_content_view_failure_to_user), (report_sidebar_panel_failure_to_user), (nautilus_window_end_location_change_callback): * src/nautilus-window-menus.c: (forget_history_if_confirmed), (user_level_customize_callback), (show_bogus_bookmark_window):
* Unmark strings that are unlikely candidates for localization at theDarin Adler2000-09-131-2/+1
| | | | | | | | | | | | | | | | | | | * libnautilus-extensions/nautilus-file.c: (nautilus_file_get_string_attribute_with_default), (nautilus_file_get_top_left_text): Unmark strings that are unlikely candidates for localization at the request of one of the translators (menthos). * libnautilus-extensions/nautilus-icon-canvas-item.c: (draw_or_measure_label_text), (draw_or_measure_label_text_aa): Move line break characters into a separate string constant, in part to make the comment about why it's localizable appear in the pot file. * src/file-manager/fm-properties-window.c: (directory_contents_value_field_update): Unmark strings that are unlikely candidates for localization at the request of one of the translators (menthos).
* Fixed bugs in Nautilus link management, some other minor problemsDarin Adler2000-09-131-19/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I encountered along the way, and did the first cut at a state machine for NautilusViewFrame based on Maciej's design that can mostly replace the super-complicated one for NautilusWindow. * README: We no longer can use the ORBit that comes with HC1.2 with cvs HEAD, since warnings have been fixed in the code generated by the newer ORBit, so fix that line in the README. * libnautilus-extensions/nautilus-directory.c: (nautilus_directory_new): Use the new nautilus_uri_is_trash function to avoid hard-coding incorrect checks for "trash:". (nautilus_directory_copy_move_metadata_key): Make simple fix for empty metadata. This code gets replaced soon anyway. * libnautilus-extensions/nautilus-drag.c: (nautilus_drag_can_accept_item): Simplify code to get rid of illegal sync. I/O. It's OK to assume all NautilusLink objects point to directories for now, and if we make a change to do something fancier later, we have to do it with async. (nautilus_drag_default_drop_action_for_icons): Use the new nautilus_uri_is_trash function to avoid hard-coding incorrect checks for "trash:". * libnautilus-extensions/nautilus-drag.h: Fixed a typo. * libnautilus-extensions/nautilus-file-operations.c: (get_link_name): Fix unintialized variable warning in a simple way that avoids adding too much code. (get_duplicate_name): Fix unintialized variable warning in a simple way that avoids adding too much code. (nautilus_file_operations_copy_move): Use the new nautilus_uri_is_trash function to avoid hard-coding incorrect checks for "trash:". * libnautilus-extensions/nautilus-file-utilities.h: * libnautilus-extensions/nautilus-file-utilities.c: (nautilus_uri_is_trash): Add new function to avoid hard-coding incorrect checks for "trash:". (nautilus_make_uri_canonical), Use nautilus_uri_is_trash. * libnautilus-extensions/nautilus-icon-container.h: * libnautilus-extensions/nautilus-icon-container.c: Remove nautilus_icon_container_trash_link_is_in_selection for 3 reasons. It doesn't belong in NautilusIconContainer, the use of it in drag code was incorrectly looking at the destination directory's selection, and it used sync. I/O. * libnautilus-extensions/nautilus-icon-dnd.c: (selection_includes_trash), (nautilus_icon_container_receive_dropped_icons): Changed code to actually check selection -- the old code would check the selection in the target window. Unfortunately this still uses sync. I/O, but that's now covered by bug 3020. * libnautilus-extensions/nautilus-icon-factory.c: (nautilus_icon_factory_get_icon_for_file): Change to use new "local" API for links to make it clear that it uses sync. I/O and only works on local files. * libnautilus-extensions/nautilus-link.h: * libnautilus-extensions/nautilus-link.c: (get_tag), (get_link_type): Added functions to handle tags internally as part of getting rid of tag string values from the API. (nautilus_link_local_create): Changed name to local to emphasize this takes a path not a URI and uses sync. I/O. (local_set_root_property): Share code among the set functions. Before there were a lot of copies of the same code. Also made sure that it does no rewrite of the file if called to set a property to the same value it already has. (nautilus_link_local_set_icon), (nautilus_link_local_set_link_uri), (nautilus_link_local_set_type): Changed name to local to emphasize these take a path not a URI and use sync. I/O. Reimplement by calling local_set_root_property. (nautilus_link_local_get_additional_text): Change name to local and make it take a path instead of a URI to make it clear it uses sync. I/O and doesn't work on remote URIs. (nautilus_link_local_get_image_uri): Change name to local and make it take a path instead of a URI to make it clear it uses sync. I/O and doesn't work on remote URIs. (nautilus_link_local_get_link_uri): Change name to local and make it take a path instead of a URI to make it clear it uses sync. I/O and doesn't work on remote URIs. (nautilus_link_local_get_link_type): Change return value to be the NautilusLinkType enum instead of the type tag string to make the interface cleaner. Also changed name to local to make it clear that it takes a path instead of a URI and uses sync. I/O. (nautilus_link_local_is_volume_link), (nautilus_link_local_is_home_link), (nautilus_link_local_is_trash_link): Changed all three of these to take advantage of the new simpler get_link_type, and changed name to local to make it clear that they take a path instead of a URI and use sync. I/O. * src/file-manager/fm-desktop-icon-view.c: (create_mount_link): Use call by new "local" name. (trash_link_is_selection): Call new "local" function, which now requires a path rather than a URI. (fm_desktop_icon_view_trash_state_changed_callback): Use call by new "local" name. (volume_unmounted_callback): Fix bug where the unmounted callback was using a path as a URI without converting. (find_and_update_home_link): Use call by new "local" name. (place_home_directory): Use call by new "local" name. (find_and_rename_trash_link): Use call by new "local" name. (create_or_rename_trash): Use call by new "local" name. (remove_old_mount_links): Use call by new "local" name. (get_sort_category): Use new get_link_type call and a case statement instead of the old one and a list of string compares. * src/file-manager/fm-directory-view.c: (fm_directory_trash_link_in_selection): Wrote a new version of this function. This is similar to what was in NautilusIconContainer, but the one in there didn't belong there, and didn't really work for other callers. Also, the one in there didn't work at all for the list view case. This new function works for either icon or list view. It still has the limitation that it won't recognize a trash link if it's not local. * src/file-manager/fm-icon-view.c: (get_icon_drop_target_uri_callback): Fix to use new local calls, but still does sync. I/O. Bug 3020 reported about that. (get_icon_text_callback): Changed to use new local calls. Still a problem that it works only locally and uses sync. I/O. Bug 2531 was already reported about that. * src/file-manager/fm-properties-window.c: (get_and_ref_file_to_display): Changed to use new local calls and the simpler link type interface. * src/nautilus-view-frame-private.h: Moved some private declarations here since they are for objects used in one file and declared in another. * src/nautilus-view-frame.h: * src/nautilus-view-frame.c: (nautilus_view_frame_destroy_client): Destroy the "check if view is gone" timeout here; makes more sense than the way it was managed before. (nautilus_view_frame_destroy): Don't destroy the timeout here any more. Also, label was moved into details. (nautilus_view_frame_handle_client_gone): Renamed from handle_client_destroy_2. (view_frame_wait), (view_frame_underway), (view_frame_wait_is_over), (view_frame_loaded), (view_frame_failed): Added functions to implement view frame state machine transitions. (check_if_view_is_gone): Moved code to check if view is gone here; it's now activated automatically without requiring an explicit call to turn it on, since all callers were turning it on at load_client time. (nautilus_view_frame_load_client): Add state management. Moved the code to turn on the object check timeout here. (nautilus_view_frame_load_location): Add state management. (nautilus_view_frame_open_location): Add state management. (nautilus_view_frame_open_location_in_new_window): Add state management. (nautilus_view_frame_open_in_new_window_and_select): Add state management. (nautilus_view_frame_report_location_change): Add state management. (nautilus_view_frame_report_selection_change): Add state management. (nautilus_view_frame_report_status): Add state management. (nautilus_view_frame_report_load_underway): Add state management. (nautilus_view_frame_report_load_progress): Add state management. (nautilus_view_frame_report_load_complete): Add state management. (nautilus_view_frame_report_load_failed): Add state management. (nautilus_view_frame_set_title): Add state management. (nautilus_view_frame_zoom_level_changed): Add state management., (nautilus_view_frame_get_label), (nautilus_view_frame_set_label): Moved label into details structure. * src/nautilus-window-manage-views.c: (nautilus_window_load_sidebar_panel): Fixed code structure a bit (fixes bug 2463) and got rid of call to old nautilus_view_frame_set_active_errors function, which is no longer needed. (nautilus_window_load_content_view): Got rid of call to old nautilus_view_frame_set_active_errors function, which is no longer needed. * src/nautilus-window.c: (window_update_sidebar_panels_from_preferences): Got rid of call to old nautilus_view_frame_set_active_errors function, which is no longer needed.
* fixed problem with extra slash in comment breaking the buildAndy Hertzfeld2000-08-281-1/+1
| | | | fixed problem with extra slash in comment breaking the build