* libnautilus-extensions/nautilus-label.c: (render_buffer_pixbuf):
* libnautilus-extensions/nautilus-scalable-font.c:
(nautilus_scalable_font_draw_text_lines_with_dimensions),
(nautilus_scalable_font_draw_text_lines):
* libnautilus-extensions/nautilus-scalable-font.h:
Simpify the text line drawing function to not reuqire passing in
the number of lines or their dimensions. Compute these when
needed. An alternate function that accepts the dimensions is
available as well.
* test/test-nautilus-font.c: (main):
Draw both text lines and single line clipped text to test more
stuff.
* libnautilus-extensions/nautilus-scalable-font.c:
(nautilus_scalable_font_draw_text),
(nautilus_scalable_font_measure_text_lines),
(nautilus_scalable_font_draw_text_lines):
* libnautilus-extensions/nautilus-scalable-font.h:
Change text rendering api to take in x,y coordinates along with a
clip_area.
Remove some #if 0 code i left in before.
Also change the text lines rendering api to optionally do its own
line measuring - for the convenience of the caller.
* libnautilus-extensions/nautilus-label.c: (render_buffer_pixbuf):
Update for text rendering changes.
Fix the justification bug.
Fix the multiple newlines bug.
* src/nautilus-about.c: (draw_aa_string):
Update for text rendering changes.
* src/nautilus-sidebar-tabs.c: (draw_one_tab_plain),
(draw_one_tab_themed):
Update for text rendering changes.
* test/test-nautilus-font.c: (main):
Update for text rendering changes.
Also add multiple new lines test and clipping test.
* test/test-nautilus-label.c: (main):
Update for text rendering changes.
* libnautilus-extensions/nautilus-scalable-font.c:
(nautilus_scalable_font_measure_text),
(nautilus_scalable_font_draw_text),
(nautilus_scalable_font_measure_text_lines),
(nautilus_scalable_font_draw_text_lines),
(nautilus_scalable_font_measure_text_lines),
(nautilus_scalable_font_draw_text_lines),
(nautilus_scalable_font_largest_fitting_font_size):
* libnautilus-extensions/nautilus-scalable-font.h:
Change api to accept a string with embedded new lines instead of
an array of strings. This simplifies many things.
* libnautilus-extensions/nautilus-label.c:
(nautilus_label_initialize), (nautilus_label_destroy),
(render_buffer_pixbuf), (label_recompute_line_geometries):
Update for NautilusScalalbleFont api changes. No longer need to
tokenize the text string. we can feed the string to the rendering
api as is.
* librsvg/rsvg-ft.c: (rsvg_ft_render_string):
* librsvg/rsvg-ft.h:
Change the string to glyph rendering api to accept the string
length rather than computing it. This makes it possible to feed
it arbitrary lengths.
* librsvg/rsvg.c: (rsvg_text_handler_characters):
* librsvg/test-ft-gtk.c: (draw_line):
* librsvg/test-ft.c: (main):
Update for api changes.
* src/nautilus-about.c: (draw_aa_string):
* src/nautilus-sidebar-tabs.c: (draw_one_tab_plain),
(draw_one_tab_themed), (get_tab_width):
* test/test-nautilus-font.c: (main):
Update test to use text lines drawing api.
* test/test-nautilus-label.c:
(alpha_background_color_value_changed_callback), (main):
Update test for 2 new lines in a row.
* libnautilus-extensions/nautilus-buffered-widget.c:
(nautilus_buffered_widget_initialize),
(nautilus_buffered_widget_destroy),
(buffered_widget_update_pixbuf),
(create_background_pixbuf_from_none),
(create_background_pixbuf_from_solid),
(create_background_pixbuf_from_ancestor),
(create_background_pixbuf),
(nautilus_buffered_widget_get_vertical_offset),
(nautilus_buffered_widget_set_background_type),
(nautilus_buffered_widget_get_background_type),
(nautilus_buffered_widget_set_background_color),
(nautilus_buffered_widget_get_background_color):
* libnautilus-extensions/nautilus-buffered-widget.h:
* libnautilus-extensions/nautilus-gdk-extensions.c:
(nautilus_gdk_gc_ref_if_not_null),
(nautilus_gdk_gc_unref_if_not_null):
* libnautilus-extensions/nautilus-gdk-extensions.h:
Add unref/ref functions for gcs that take NULL.
* libnautilus-extensions/nautilus-label.c: (nautilus_label_new):
* libnautilus-extensions/nautilus-label.h:
Make the constructor work just like GtkLabel by accepting a string.
* components/music/nautilus-music-view.c:
(nautilus_music_view_initialize), (add_play_controls):
Use the new NautilusLabel constructor.
* components/services/nautilus-dependent-shared/shared-service-widg
ets.c: (create_label_widget):
Use the new NautilusLabel constructor.
* src/nautilus-first-time-druid.c: (make_anti_aliased_label),
(set_up_update_feedback_page):
Use the new NautilusLabel constructor.
* src/nautilus-property-browser.c:
(nautilus_property_browser_initialize),
(make_properties_from_directory_path),
(make_properties_from_xml_node), (make_category_link):
Use the new NautilusLabel constructor.
Fix the tile names to be antialises by using the new buffered
widget SOLID background mode.
* src/nautilus-sidebar-title.c:
(sidebar_create_smooth_components_if_needed):
Use the new NautilusLabel constructor.
* src/nautilus-theme-selector.c:
(nautilus_theme_selector_initialize):
Use the new NautilusLabel constructor.
* test/test-nautilus-image.c: (main):
* test/test-nautilus-label.c: (main):
Use the new NautilusLabel constructor.
* libnautilus-extensions/nautilus-scalable-font.c:
* libnautilus-extensions/nautilus-scalable-font.h:
New GtkObject subclass that provdes a simple interface to raph's
librsvg FreeType2 bases anti aliased text rendering.
* libnautilus-extensions/nautilus-font-picker.c:
* libnautilus-extensions/nautilus-font-picker.h:
New font picker class. I will soon use it in the preferences
dialog instead of the current one.
* libnautilus-extensions/nautilus-buffered-widget.c:
* libnautilus-extensions/nautilus-buffered-widget.h:
New virtual widget class that encapsulates the details of finding
a suitable background for compositing pixbufs.
* libnautilus-extensions/nautilus-image.c:
* libnautilus-extensions/nautilus-image.h:
Rewritten NautilusImage class. Took out all the label stuff,
which lives in its own class. Now subclassed from
NautilusBufferedWidget so that background the image gets
composited on is always correct and groks NautilusBackground.
* libnautilus-extensions/nautilus-label.c:
* libnautilus-extensions/nautilus-label.h:
New NautilusLabel widget class. A label widget that is capable of
displaying anti aliased text composited over a complex background.
The background can be installed as NautilusBackground on a
NautilusLabel widget or any of its ancestors. The best background
will automatically be found and used by the widget.
* services/nautilus-dependant-shared/shared-service-widgets.c,
* services/nautilus-dependant-shared/shared-service-widgets.h,
* services/startup/nautilus-view/nautilus-service-startup-view.c:
Update for changes in the NautilusImage api. Unfortunately, these
components are slightly broken now cause of the NautilusImage
changes. I will fix them shortly.
* libnautilus-extensions/nautilus-string-map.c:
* libnautilus-extensions/nautilus-string-map.h:
New simple class to map an arbitrary number of strings to a single
string.
* libnautilus-extensions/nautilus-lib-self-check-functions.h:
Add tests for the new string map class.
* libnautilus-extensions/Makefile.am:
Build the new widgets. Also add some depedencies on the static
libraries we link into this beast. This way,
libnautilus-extensions will rebuild of one if its dependency
static libs is touched.
* test/.cvsignore,
* test/Makefile.am,
* test/test-nautilus-font-picker.c,
* test/test-nautilus-font.c,
* test/test-nautilus-image.c,
* test/test-nautilus-label.c:
Update test programs for new widgets.
* libnautilus-extensions/nautilus-string-picker.c:
(nautilus_string_picker_initialize),
(nautilus_string_picker_destroy),
(nautilus_string_picker_set_string_list),
(nautilus_string_picker_get_string_list),
(nautilus_string_picker_get_selected_string),
(nautilus_string_picker_set_selected_string),
(nautilus_string_picker_insert_string):
* libnautilus-extensions/nautilus-string-picker.h:
New function to insert a string without having to access the
string list first. Also renamed some poorly named functions.
* libnautilus-extensions/nautilus-preferences-item.c:
(preferences_item_create_font_family),
(preferences_item_create_theme), (text_item_changed_callback):
Update for string picker api changes.
* test/test-nautilus-widgets.c: (test_string_picker),
(string_picker_changed_callback):
Update for string picker api changes.
* libnautilus-extensions/nautilus-radio-button-group.c:
(nautilus_radio_button_group_initialize),
(nautilus_radio_button_group_new),
(nautilus_radio_button_group_set_entry_pixbuf),
(nautilus_radio_button_group_set_entry_description_text):
* libnautilus-extensions/nautilus-radio-button-group.h:
Have only one constructor and feed it whether the radio button
group is horizontal or not.
Changed the login of some assertions on code that is meant for the
NOT horzontal case. This should fix the torrent of assertions at
startup.
* libnautilus-extensions/nautilus-preferences-item.c:
(preferences_item_create_enum),
(preferences_item_create_short_enum):
Update for radio button group constructor change.
* src/nautilus-first-time-druid.c: (set_up_user_level_page),
(set_up_service_signup_page):
Update for radio button group constructor change.
* test/test-nautilus-widgets.c: (main), (radio_group_load_it_up),
(test_radio_group), (test_radio_group_horizontal):
Add a test for the radio button group horizontal case.
* Makefile.am:
* components/hardware/Makefile.am:
* components/help/Makefile.am:
* components/history/Makefile.am:
* components/html/Makefile.am:
* components/loser/content/Makefile.am:
* components/loser/sidebar/Makefile.am:
* components/music/Makefile.am:
* components/notes/Makefile.am:
* components/rpmview/Makefile.am:
* components/services/install/nautilus-view/Makefile.am:
* components/services/inventory/nautilus-view/Makefile.am:
* components/services/login/nautilus-view/Makefile.am:
* components/services/startup/nautilus-view/Makefile.am:
* components/services/summary/nautilus-view/Makefile.am:
* components/services/time/nautilus-view/Makefile.am:
* components/services/trilobite/sample/nautilus-view/Makefile.am:
* components/services/vault/nautilus-view/Makefile.am:
* components/tree/Makefile.am:
* components/websearch/Makefile.am:
* cut-n-paste-code/widgets/e-paned/Makefile.am:
* cut-n-paste-code/widgets/nautilus-druid/Makefile.am:
* helper-utilities/authenticate/Makefile.am:
* libnautilus-extensions/Makefile.am:
* librsvg/Makefile.am:
* src/Makefile.am:
* test/Makefile.am:
Make the cut-n-paste libraries be only static archives. Link all
the private libraries statically into libnautilus-extensions.
Remove all the references to private libraries in all the
components and other users of libnautilus-extensions so that
dependencies can be managed in just one place.
* libnautilus-extensions/nautilus-radio-button-group.c:
(button_toggled), (nautilus_radio_button_group_insert),
(nautilus_radio_button_group_get_active_index),
(nautilus_radio_button_group_set_entry_pixbuf),
(nautilus_radio_button_group_set_entry_description_text):
* libnautilus-extensions/nautilus-radio-button-group.h:
Add support for nicely aligned description labels.
* src/nautilus-first-time-druid.c: (create_named_pixbuf),
(set_up_user_level_page), (nautilus_first_time_druid_show):
Add icons for each of the user levels.
Use radio group description labels for the description blurb so
that they align nicely.
* test/test-nautilus-widgets.c: (test_radio_group):
Update for description label support.
* libnautilus-extensions/nautilus-radio-button-group.c:
(nautilus_radio_button_group_initialize_class),
(nautilus_radio_button_group_initialize),
(nautilus_radio_button_group_destroy),
(radio_button_group_free_button_group),
(nautilus_radio_button_group_insert),
(nautilus_radio_button_group_get_active_index),
(nautilus_radio_button_group_set_active_index),
(nautilus_radio_button_group_set_pixbuf):
* libnautilus-extensions/nautilus-radio-button-group.h:
Add support for displaying an option icon with each radio button
pixbuf. Use NautilusImage for this.
* test/test-nautilus-widgets.c: (create_pixbuf),
(test_radio_group):
Update test to include icon support.
* src/nautilus-main.c: (main):
Yank the leak checker intitialization code. Its not needed no
more cause the leak checker automatically does it when its
pre loaded.
* test/nautilus-leak-checker.c: (print_leaks_at_exit),
(__libc_start_main), (nautilus_leak_print_leaks):
Call atexit() with the leak dumping function.
* src/nautilus-view-frame.c: (nautilus_view_frame_destroy_client):
Change to use bonobo_object_unref now that the leaks have been
fixed. This requires the new Bonobo or you'll have lots of leaked
processes. Luckily, Nautilus won't compile without the new Bonobo
due to my use of bonobo_object_shutdown in main :-)
* configure.in:
Fix the way -Werror works so it affects all directories, not just
ones where we use WERROR.
* components/hardware/Makefile.am:
* components/help/Makefile.am:
* components/history/Makefile.am:
* components/loser/content/Makefile.am:
* components/loser/sidebar/Makefile.am:
* components/mozilla/Makefile.am:
* components/music/Makefile.am:
* components/notes/Makefile.am:
* components/rpmview/Makefile.am:
* components/sample/Makefile.am:
* components/services/install/command-line/Makefile.am:
* components/services/install/lib/Makefile.am:
* components/services/install/nautilus-view/Makefile.am:
* components/services/install/server/Makefile.am:
* components/services/inventory/lib/Makefile.am:
* components/services/inventory/nautilus-view/Makefile.am:
* components/services/inventory/service/Makefile.am:
* components/services/login/lib/Makefile.am:
* components/services/login/nautilus-view/Makefile.am:
* components/services/login/service/Makefile.am:
* components/services/startup/command-line/Makefile.am:
* components/services/startup/lib/Makefile.am:
* components/services/startup/nautilus-view/Makefile.am:
* components/services/summary/lib/Makefile.am:
* components/services/summary/nautilus-view/Makefile.am:
* components/services/summary/service/Makefile.am:
* components/services/time/command-line/Makefile.am:
* components/services/time/nautilus-view/Makefile.am:
* components/services/time/service/Makefile.am:
* components/services/trilobite/helper/Makefile.am:
* components/services/trilobite/libtrilobite/Makefile.am:
* components/services/trilobite/sample/command-line/.cvsignore:
* components/services/trilobite/sample/command-line/Makefile.am:
* components/services/trilobite/sample/lib/Makefile.am:
* components/services/trilobite/sample/nautilus-view/Makefile.am:
* components/services/trilobite/sample/service/Makefile.am:
* components/services/vault/command-line/Makefile.am:
* components/services/vault/lib/Makefile.am:
* components/services/vault/nautilus-view/Makefile.am:
* components/services/vault/service/Makefile.am:
* components/tree/Makefile.am:
* components/websearch/Makefile.am:
* cut-n-paste-code/widgets/nautilus-druid/Makefile.am:
* helper-utilities/authenticate/Makefile.am:
* libnautilus-extensions/Makefile.am:
* libnautilus/Makefile.am:
* librsvg/Makefile.am:
* nautilus-installer/src/Makefile.am:
* src/Makefile.am:
* src/file-manager/Makefile.am:
* test/Makefile.am:
Got rid of the WERROR shell variable. The -Werror switch is no
longer a per-directory thing.
* librsvg/Makefile.am:
Added libpng to the libraries for the test program. Maybe this was
the wrong thing to do, but before this change the link failed.
* components/sample/Makefile.am:
* components/sample/main.c:
* components/sample/nautilus-sample-content-view.c:
* components/sample/nautilus-sample-content-view.h:
A clean-up of the sample, including fixing many bugs and adding
lots of comments. I figure we want this to be as close to
exemplary as possible since people will continue to start with it
for new components.
* libnautilus-extensions/nautilus-bookmark.c:
(nautilus_bookmark_new_with_icon): Removed a bogus extra ref of a
NautilusFile object that I spotted in here.
* src/nautilus-application.c: (nautilus_application_destroy_window):
Re-added the code to quit when the last window is closed that Mike
removed in his recent check-in.
* src/nautilus-main.c: (main): Added a call to bonobo_shutdown.
We don't need this call, but I say, "Why not?"
* libnautilus-extensions/nautilus-password-dialog.c:
(nautilus_password_dialog_initialize_class),
(nautilus_password_dialog_initialize),
(nautilus_password_dialog_destroy), (dialog_show_callback),
(dialog_close_callback), (caption_table_activate_callback),
(nautilus_password_dialog_new),
(nautilus_password_dialog_run_and_block),
(nautilus_password_dialog_set_username),
(nautilus_password_dialog_set_password),
(nautilus_password_dialog_set_readonly_username),
(nautilus_password_dialog_get_username),
(nautilus_password_dialog_get_password),
(nautilus_password_dialog_get_remember),
(nautilus_password_dialog_set_remember),
(nautilus_password_dialog_set_remember_label_text):
* libnautilus-extensions/nautilus-password-dialog.h:
Many cleanups and improvements. Use the GnomeDialog run_and_close
call instead of our own event loop hack. Removed many unneeded
callbacks and details member variables. Add checks for all
callbacks. Add support for remembering the password.
* test/.cvsignore:
* test/Makefile.am:
* test/test-nautilus-password-dialog.c:
(authenticate_boink_callback), (exit_callback), (main):
Add a new test for the password dialog.
* test/test-nautilus-widgets.c: (main),
(text_caption_changed_callback):
Removed the old password dialog test.
* libnautilus-extensions/nautilus-graphic.c:
(nautilus_graphic_initialize), (nautilus_graphic_size_allocate),
(nautilus_graphic_size_request), (nautilus_graphic_set_label_text),
(nautilus_graphic_set_label_font),
(nautilus_graphic_set_left_offset),
(nautilus_graphic_set_right_offset),
(nautilus_graphic_set_top_offset),
(nautilus_graphic_set_bottom_offset),
(nautilus_graphic_set_extra_width),
(nautilus_graphic_set_extra_height):
* libnautilus-extensions/nautilus-graphic.h:
Add support for boundary offset and extra width and height.
* test/test-nautilus-graphic.c: (main):
Update for new boundary offset support.
components/services/install/nautilus-view/nautilus-service-install-
view.c: (generate_install_form), (create_graphic_widget),
(create_title_widget):
* components/services/login/nautilus-view/nautilus-login-view.c:
(generate_login_form), (create_graphic_widget),
(create_title_widget):
Use new graphic widget to make things prettier.
* libnautilus-extensions/nautilus-gdk-pixbuf-extensions.c:
(nautilus_gdk_pixbuf_scale_to_fit),
(nautilus_gdk_pixbuf_draw_text):
* libnautilus-extensions/nautilus-gdk-pixbuf-extensions.h:
New function to draw text into a pixbuf given a rect and a
string. Factored from the icon factoyr.
* libnautilus-extensions/nautilus-graphic.c:
(nautilus_graphic_size_allocate):
Add support for drawing text.
* libnautilus-extensions/nautilus-icon-factory.c: (embed_text):
Factored out gdk pixbuf text drawing. Use the new text drawing
function.
* test/test-nautilus-graphic.c: (create_color_scale):
Update for text support.
2000-06-29 Pavel Cisler <pavel@eazel.com>
Fixed some memory leaks.
* libnautilus-extensions/nautilus-mime-actions.c:
(nautilus_mime_get_short_list_components_for_uri):
Fix a leaked string.
* src/nautilus-zoom-control.c:
(nautilus_zoom_control_set_preferred_zoom_levels):
Fix a leaky setter call.
* test/Makefile.am:
Add a make target for a leak checker tester.
* test/nautilus-leak-checker.c:
(nautilus_leak_allocation_record_init),
(nautilus_leak_record_malloc), (nautilus_leak_record_realloc),
(nautilus_leak_record_free), (print_one_leak),
(nautilus_leak_print_leaks), (allocate_lots), (leak_mem2),
(leak_mem), (main):
* test/nautilus-leak-symbol-lookup.c:
(nautilus_leak_print_symbol_address):
Tweak the leak checker output a bit to make it more nicer and
indicate the level of stack frame grouping.
* src/nautilus-main.c: (print_leaks):
Tweak the parameters a bit to print more leaks.
* components/Makefile.am:
Rearranged so libeazelinstall is built before rpmview
* components/help/Makefile.am:
Added a missing .h file so make dist works
* components/rpmview/Makefile.am:
* components/rpmview/nautilus-rpm-view-install.c:
(nautilus_rpm_view_download_progress_signal),
(nautilus_rpm_view_install_progress_signal),
(nautilus_rpm_view_download_failed),
(nautilus_rpm_view_install_failed_helper),
(nautilus_rpm_view_install_failed),
(nautilus_rpm_view_dependency_check),
(nautilus_rpm_view_install_done),
(nautilus_rpm_view_install_package_callback):
* components/rpmview/nautilus-rpm-view-install.h:
* components/rpmview/nautilus-rpm-view.c:
(nautilus_rpm_view_initialize):
Added a callback and some skeleton code to the install
button. So it now does rpm installs.
* components/services/install/lib/Makefile.am:
* components/services/install/command-line/Makefile.am:
Changed the libnames.
*
components/services/install/command-line/eazel-alt-install-corba.c:
(done), (main):
* components/services/install/lib/eazel-install-corba-callback.c:
(eazel_install_callback_destroy),
(eazel_install_callback_initialize), (eazel_install_callback_new),
(eazel_install_callback_corba_objref),
(eazel_install_callback_install_packages),
(eazel_install_callback_query):
* components/services/install/lib/eazel-install-corba-callback.h:
* components/services/install/lib/eazel-install-corba-types.h:
* components/services/install/lib/eazel-install-protocols.c:
(get_search_url_for_package):
* components/services/install/server/Makefile.am:
* components/services/install/server/main.c:
Changed the object destroction scheme, so eazel_install_callback
now unrefs and destroys the bonobo object.
* components/services/trilobite/sample/lib/Makefile.am:
Fixed to pass make dist
* nautilus-installer/src/Makefile:
* nautilus-installer/src/Makefile.am:
Patching so it works with the new installer libs (and still some
stroking because of the static stuff)
* nautilus.spec.in:
* po/POTFILES.in:
* test/Makefile.am:
Slice and dice so make dist and rpm -ta works again.
2000-06-20 Ramiro Estrugo <ramiro@eazel.com>
* configure.in:
* libnautilus-extensions/Makefile.am:
* libnautilus/Makefile.am:
* librsvg/Makefile.am:
* nautilus-installer/src/Makefile:
* src/Makefile.am:
* src/file-manager/Makefile.am:
* test/Makefile.am:
Remove the GNOMECANVASPIXBUF depedency. Its not used no more.
Tue Jun 20 01:49:08 2000 George Lebl <jirka@5z.com>
* test/nautilus-leak-symbol-lookup.c
(nautilus_leak_symbol_map_get_offsets): Do the sscanf into a
gulong and then assign to the inode which is of type ino_t to avoid
#ifdefs or other hacks to make it work on alpha.
2000-06-18 Pavel <pavel@eazel.com>
* test/nautilus-leak-symbol-lookup.c:
(nautilus_leak_symbol_map_get_offsets):
Do a better 64-bit clean fix avoiding messy ifdefs.
Sun Jun 18 02:50:47 2000 George Lebl <jirka@5z.com>
* components/help/help-method.c (file_in_info_path):
s/g_str_freev/g_strfreev/ as that's the correct glib name
* components/help/hyperbola-main.c,
components/help/hyperbola-nav-index.c,
components/help/hyperbola-nav-search.c
components/help/hyperbola-nav-tree.c,
components/help/hyperbola-nav.h: Use hyperbola-nav.h as a header
to put the prototypes from the hyperbola-nav-*.c files. And
include this file in hyperbola-main.c and hyperbola-nav-*.c
* libnautilus-extensions/nautilus-global-preferences.c
(global_preferences_register_boolean_with_defaults)
(global_preferences_register_enum_with_defaults),
libnautilus-extensions/nautilus-preferences.c
(preferences_hash_node_check_changes_func)
(user_level_changed_callback):
use GU?INT_TO_POINTER and GPOINTER_TO_U?INT macros to get and pass
ints and uints as pointers.
* librsvg/rsvg-bpath-util.c, test/nautilus-leak-checker.c:
include <string.h>
* test/nautilus-leak-checker.c (nautilus_leak_record_malloc)
(nautilus_leak_record_realloc) (nautilus_leak_record_free)
(print_one_leak): Store pointers in gulongs not guints and
when printing size_t, cast to long and use %ld.
* test/nautilus-leak-symbol-lookup.c
(nautilus_leak_symbol_map_get_offsets): When reading in gint64,
check if long is actually 64bit, in which case use %lx otherwise
use %Lx for sscanf.
2000-06-15 JP Rosevear <jpr@arcavia.com>
* test/Makefile.am: Make sure that libleakcheck does not rely
on the /gnome prefix to build. Make sure libleakcheck is cleaned
and uninstalled properly.
2000-06-14 Pavel Cisler <pavel@eazel.com>
* test/Makefile.am:
* test/nautilus-leak-checker.c: (detect_reentry),
(nautilus_leak_record_malloc), (nautilus_leak_record_realloc),
(nautilus_leak_record_free), (allocate_temporary_fallback_memory),
(__libc_malloc), (__libc_memalign), (__libc_realloc),
(__libc_free), (malloc), (realloc), (memalign), (calloc), (free),
(main):
Fix problems in the reentry detection code that caused malloc/frees
sometimes getting counted twice.
Add reentry detection for malloc getting reentered as a result of
calling realloc.
2000-06-13 Pavel Cisler <pavel@eazel.com>
* test/Makefile.am:
Couldn't figure out how to build the leakchecker shared library
with libtool, added a simple link rule instead.
* test/nautilus-leak-symbol-lookup.c:
(nautilus_leak_find_symbol_in_map),
(nautilus_leak_symbol_map_get_offsets),
(nautilus_leak_symbol_map_load),
(nautilus_leak_symbol_map_load_if_needed),
(nautilus_leak_find_symbol_address),
(nautilus_leak_print_symbol_address):
Redo symbol lookup to work better in some cases.
* test/nautilus-leak-checker.c: (allocate_lots), (leak_mem2),
(leak_mem), (main):
tweaks to testing code.
There's still a long way to go.
* components/music/nautilus-music-view.c: (fetch_play_time),
(format_play_time), (fetch_song_info), (play_status_display),
(play_current_file), (nautilus_music_view_update_from_uri):
Changed the music view so it doesn't use NautilusFile any more
since it already has what it needs from gnome-vfs. There's still
the issue of sync. vs. async. for this component.
* libnautilus-extensions/Makefile.am:
* libnautilus-extensions/nautilus-stock-dialogs.c:
(nautilus_timed_wait_start), (nautilus_timed_wait_free),
(nautilus_timed_wait_stop):
* libnautilus-extensions/nautilus-stock-dialogs.h:
Started on something called nautilus_timed_wait that we need to
use when all our lines are busy. Checked it in since I'll be in
Palo Alto and don't want any non-checked-in changes.
* libnautilus-extensions/nautilus-background-canvas-group.c:
Added comments and removed some dead code.
* src/nautilus-window-menus.c: (uri_known_not_to_exist):
Rewrote this to use sync. I/O on local files instead of using
nautilus_file_get.
* test/.cvsignore: Ignore some of the new files in this directory.
2000-06-13 Pavel Cisler <pavel@eazel.com>
* test/nautilus-leak-checker-stubs.h:
* test/nautilus-leak-checker.c:
(nautilus_leak_allocation_record_init),
(nautilus_leak_allocation_record_copy),
(nautilus_leak_allocation_record_finalize),
(nautilus_leak_allocation_record_free),
(nautilus_leak_stack_crawl_compare), (nautilus_leak_initialize),
(get_stack_trace), (detect_reentry), (nautilus_leak_record_malloc),
(nautilus_leak_record_realloc), (nautilus_leak_record_free),
(nautilus_leak_initialize_if_needed), (__libc_malloc),
(__libc_memalign), (__libc_calloc), (__libc_realloc),
(__libc_free), (malloc), (realloc), (memalign), (calloc), (free),
(print_one_leak), (nautilus_leak_print_leaks),
(nautilus_leak_checker_init), (allocate_lots), (leak_mem2),
(leak_mem), (main):
* test/nautilus-leak-checker.h:
* test/nautilus-leak-hash-table.c:
(nautilus_leak_hash_element_finalize),
(nautilus_leak_hash_element_hash),
(nautilus_leak_hash_element_match),
(nautilus_leak_hash_element_vector_inititalize),
(nautilus_leak_hash_element_vector_finalize),
(nautilus_leak_hash_element_vector_at),
(nautilus_leak_hash_element_vector_add),
(nautilus_leak_hash_element_vector_remove),
(nautilus_leak_hash_table_optimal_size),
(nautilus_leak_hash_table_initialize),
(nautilus_leak_hash_table_finalize),
(nautilus_leak_hash_table_new), (nautilus_leak_hash_table_free),
(nautilus_leak_hash_table_hash), (nautilus_leak_hash_table_find),
(nautilus_leak_hash_table_add),
(nautilus_leak_hash_table_remove_element),
(nautilus_leak_hash_table_remove),
(nautilus_leak_table_new_entry_at),
(nautilus_leak_table_add_entry), (nautilus_leak_table_new),
(nautilus_leak_table_free), (sort_by_count),
(nautilus_leak_table_sort_by_count), (sort_by_size),
(nautilus_leak_table_sort_by_size),
(nautilus_leak_table_each_item):
* test/nautilus-leak-hash-table.h:
* test/nautilus-leak-symbol-lookup.c:
(nautilus_leak_find_symbol_in_map),
(nautilus_leak_symbol_map_load),
(nautilus_leak_symbol_map_load_if_needed),
(nautilus_leak_print_symbol_cleanup),
(nautilus_leak_find_symbol_address),
(nautilus_leak_print_symbol_address):
* test/nautilus-leak-symbol-lookup.h:
New small leakchecking library. It is a bit simpler than MemProf in that
it doesn't try to find leaks, just lists all the outstanding allocations
(which if done at application quit is a list of leaks). It borrows heavily
from MemProf.
* test/Makefile.am:
Currently broken makefile changes for the leakchecker library. Needs some
libtool wrestling that Ramiro kindly offered to help with.
* src/nautilus-main.c: (nautilus_leak_checker_init),
(nautilus_leak_print_leaks), (main):
Call the leakchecker. Noop unless the leakchecker lib is loaded with
Nautilus using the LD_PRELOAD variable (the only way of turning the
thing on/off).
* components/services/install/idl/.cvsignore:
* components/services/time/idl/.cvsignore:
Ignore some Makefile and Makefile.in files.
* data/linksets/Makefile.am:
* data/linksets/desktop.xml:
Added a link set for the trash on the desktop.
* icons/Makefile.am:
Added a trash icon (actually a copy of the Nautilus icon right
now :-).
* libnautilus-extensions/nautilus-link-set.h:
* libnautilus-extensions/nautilus-link-set.c: (create_new_link),
(nautilus_link_set_install), (nautilus_link_set_remove):
Fixed some URI-related issues and added a special case for the ~
character so we can have link sets that are for the home directory.
* libnautilus-extensions/nautilus-string.c:
(nautilus_str_capitalize): Got rid of the unneeded call to strlen.
strlen == 0 is the slowest way I know to check for an empty string.
Also check islower before calling toupper for paranoia like the
calls in glib do (internally).
* src/nautilus-desktop-window.c: (nautilus_desktop_window_new):
Install the desktop link set when we are created. For now this
installs the trash (in a fairly lame way).
* src/nautilus-property-browser.c: (remove_color),
(add_color_to_file), (make_properties_from_xml_node),
(nautilus_property_browser_update_contents):
Changed code to not reference "childs" directly so it's easy to
switch to a new version of gnome-xml.
* test/.cvsignore: Ignore test-nautilus-mime-actions-set.
* libnautilus-extensions/nautilus-directory-metafile.c:
(nautilus_directory_set_metadata_list): Added this function.
The guts was already there.
* test/.cvsignore: Ignore some newly generated files.
* libnautilus-extensions/nautilus-program-choosing.h,
libnautilus-extensions/nautilus-program-choosing.c:
(nautilus_launch_application): Take a GnomeVFSMimeApplication *
instead of a command string; add gnome-terminal -x
(nautilus_launch_application_from_command): Old version that takes
a command string renamed. Also, uses `system' instead of `execlp',
so command-line arguments in the command string work.
* libnautilus-extensions/nautilus-program-chooser.c
(launch_mime_capplet): Adjusted to conform.
* src/file-manager/fm-directory-view.c
(fm_directory_view_launch_application): Likewise.
* src/nautilus-sidebar.c: (command_button_callback,
nautilus_sidebar_chose_application_callback, add_command_buttons):
Likewise.
* test/test-nautilus-mime-actions.c (print_application): Show the
requires_terminal field for applications.
* libnautilus-extensions/nautilus-directory.h,
libnautilus-extensions/nautilus-directory.c:
(nautilus_directory_wait_until_ready): Non-asynchronous equivalent
of `nautilus_directory_call_when_ready'. However, it doesn't block
the UI while waiting.
(nautilus_directory_wait_until_ready_callback): Helper function
for implementing the above.
* libnautilus-extensions/nautilus-mime-actions.c:
(nautilus_mime_get_default_action_type_for_uri,
nautilus_mime_get_default_action_for_uri,
nautilus_mime_get_default_application_for_uri,
nautilus_mime_get_default_component_for_uri): Implemented with
fully with proper metadata checking and interface querying, etc.
(nautilus_mime_get_short_list_applications_for_uri,
nautilus_mime_get_short_list_components_for_uri,
nautilus_mime_get_all_applications_for_uri,
nautilus_mime_get_all_components_for_uri): Adjusted to deal with
the mime type checking function changing names.
(OAF_ServerInfo__copy, extract_prefix_add_suffix,
mime_type_get_supertype, uri_string_get_scheme),
get_explicit_content_view_iids_from_metafile,
make_oaf_query_for_explicit_content_view_iids,
make_oaf_query_with_known_mime_type,
make_oaf_query_with_uri_scheme_only,
file_list_to_mime_type_hash_table, free_key,
mime_type_hash_table_destroy, server_matches_content_requirements,
nautilus_do_component_query): Oodles of helper functions, many cut
& pasted from elswhere and only slightly modified.
get_mime_type_from_uri: Removed `_hack' from the name.
* libnautilus-extensions/nautilus-mime-actions.h: Added prototype
for nautilus_mime_get_default_action_type_for_uri.
* test/test-nautilus-mime-actions.c (main): Call gnome_init.
* src/nautilus-applicable-views.c: Removed a stray comment that no
longer applies.
* test/test-nautilus-mime-actions.c: Simple test program to check
_for_uri nautilus metadata calls in nautilus.
* test/Makefile.am: Build test-nautilus-mime-actions
* Makefile.am, configure.in: add test directory to the build.
* libnautilus-extensions/nautilus-mime-actions.c
(nautilus_mime_get_default_action_for_uri,
nautilus_mime_get_default_application_for_uri,
nautilus_mime_get_default_component_for_uri): Implemented in the
same temporary stub way as the other calls.