Commit Graph

129 Commits

Author SHA1 Message Date
Johan Dahlin
424cc287f1 - Treat enums like enums and not values - Avoid invalid free, in case of
2008-03-07  Johan Dahlin  <johan@gnome.org>

    * gtk/gtkbuilder.c:
    * gtk/gtkbuilderparser.c:
    * gtk/gtkbuilderprivate.h:
    * gtk/gtkiconfactory.c:
    * tests/buildertest.c:
    - Treat enums like enums and not values
    - Avoid invalid free, in case of more than two sources
    - Add better error messages
    - Add much improved tests
    (#520979, Christian Persch)


svn path=/trunk/; revision=19732
2008-03-07 20:03:35 +00:00
Johan Dahlin
e2534d54e1 Add translatable/context and comment attributes on <col> tags under a
2008-02-29  Johan Dahlin  <johan@gnome.org>

	* demos/gtk-demo/demo.ui:
	* gtk/gtkbuilderparser.c:
	* gtk/gtkbuilderprivate.h:
	* gtk/gtkliststore.c:
	* tests/buildertest.c:
	Add translatable/context and comment attributes on
	<col> tags under a GtkListStore. Refactor parts of the
	translation api and make it available inside gtk+ itself.
	Update tests and example.
	Fixes a part of #518642


svn path=/trunk/; revision=19685
2008-03-02 01:14:48 +00:00
Johan Dahlin
a57b66aac2 Do not use g_error for a few more errors, instead set the GError sent in
2008-02-29  Johan Dahlin  <johan@gnome.org>

	* gtk/gtkbuilder.c:
	* gtk/gtkbuilderparser.c:
	* gtk/gtkbuilderprivate.h:
	Do not use g_error for a few more errors, instead set
	the GError sent in through add_from_file/add_from_string.
	* tests/buildertest.c:
	Add a couple of new parsing tests.
	(#519199, Pavel Syomin)


svn path=/trunk/; revision=19681
2008-03-01 13:49:06 +00:00
Matthias Clasen
9d6954734d Fix some i18n errors. Pointed out by Behdad Esfahbod.
2008-02-12  Matthias Clasen  <mclasne@redhat.com>

        * gtk/gtkpapersize.c:
        * gtk/gtkprintoperation.c:
        * gtk/gtkvolumebutton.c:
        * gtk/gtkbulderparser.c: Fix some i18n errors. Pointed
        out by Behdad Esfahbod.



svn path=/trunk/; revision=19547
2008-02-12 22:43:35 +00:00
Michael Natterer
63af2cd041 use the right type for "subparser_data" and remove the (gpointer*) cast.
2008-01-30  Michael Natterer  <mitch@imendio.com>

	* gtk/gtkbuilderparser.c (parse_custom): use the right type for
	"subparser_data" and remove the (gpointer*) cast. Fixes bogus
	aliasing warning.

	* gtk/updateiconcache.c (add_string): cast const gchar* to
	gpointer when inserting in a GHashTable.

	* tests/testcalendar.c (calendar_detail_cb): remove const from
	return value since it's a newly allocated string.

	(calendar_update_details): free the detail.


svn path=/trunk/; revision=19431
2008-01-30 15:06:06 +00:00
Johan Dahlin
0e09e8b3ff Allow domains to be overridden in <interface>'s if a translation-domain is
2008-01-06  Johan Dahlin  <johan@gnome.org>

	* gtk/gtkbuilderparser.c (parse_interface): 
	Allow domains to be overridden in <interface>'s if a translation-domain
	is set in the builder.
	(_gtk_builder_parser_parse_buffer): Do not modify the translation-domain
	of the builder, make the domain set in the <interface> apply only to strings
	in that interface.
	(#496831, Ryan Lortie)


svn path=/trunk/; revision=19316
2008-01-06 15:17:26 +00:00
Matthias Clasen
464ae98495 Leak less in error paths
svn path=/trunk/; revision=18980
2007-11-10 23:57:32 +00:00
Matthias Clasen
6665188687 More robustness improvements of the parser
svn path=/trunk/; revision=18978
2007-11-10 04:50:15 +00:00
Matthias Clasen
f489387039 Don't assert on misplaced signal elements
svn path=/trunk/; revision=18977
2007-11-10 04:15:44 +00:00
Matthias Clasen
c3fcd42eda Handle misplaced property elements without asserting.
2007-11-09  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtkbuilderparser.c (parse_property): Handle misplaced
        property elements without asserting.


svn path=/trunk/; revision=18976
2007-11-10 02:36:56 +00:00
Ryan Lortie
36605333d0 Add GString 'text' to the property info structure. Used to accumulate
2007-11-07  Ryan Lortie  <desrt@desrt.ca>

        * gtk/gtkbuilderprivate.h: Add GString 'text' to the property info
        structure.  Used to accumulate property text across multiple 'text'
        calls.

        * gtk/gtkbuilderparser.c: Instead of translating/copying text on each
        'text' call while in <property> accumulate the text until the end and
        do it all in one go.  This fixes handling of <!-- --> inside
        properties as well as <property/> cases.


svn path=/trunk/; revision=18970
2007-11-08 04:12:52 +00:00
Johan Dahlin
fa13277655 Parse signals after <child> tags and add tests. (#468793, Benjamin Otte)
2007-10-24  Johan Dahlin  <jdahlin@async.com.br>

	* gtk/gtkbuilder.c: (_gtk_builder_construct),
	(_gtk_builder_add_signals):
	* gtk/gtkbuilderparser.c: (end_element):
	* gtk/gtkbuilderprivate.h:
	* tests/buildertest.c: (test_connect_signals):

	Parse signals after <child> tags and add tests.
	(#468793, Benjamin Otte)


svn path=/trunk/; revision=18944
2007-10-24 11:48:17 +00:00
Johan Dahlin
1d332bbb44 Allow empty property nodes so we can set empty strings. (#486420, Xavier
2007-10-24  Johan Dahlin  <jdahlin@async.com.br>

	* gtk/gtkbuilderparser.c (end_element): Allow empty property nodes
	so we can set empty strings. (#486420, Xavier Claessens)


svn path=/trunk/; revision=18943
2007-10-24 09:46:31 +00:00
Hans Breuer
7f1bc40a84 svn path=/trunk/; revision=18842
svn path=/trunk/; revision=18842
2007-09-17 19:53:54 +00:00
Jan Arne Petersen
d18eaf32dd Duplicate the string returned by d[n]gettext before it is potentially
2007-08-23  Jan Arne Petersen  <jpetersen@jpetersen.org>

	* gtk/gtkbuilderparser.c: (text): Duplicate the string returned by
	d[n]gettext before it is potentially freed. (#461945)


svn path=/trunk/; revision=18678
2007-08-23 15:29:59 +00:00
Johan Dahlin
12e1855bba Do not assume that text is null-terminated as pointed out by Christopher
2007-08-07  Johan Dahlin  <jdahlin@async.com.br>

    * gtk/gtkbuilderparser.c (text): 
    * gtk/gtkcelllayout.c (attributes_text_element): 
    * gtk/gtkliststore.c (list_store_text): 
    Do not assume that text is null-terminated as pointed out by
    Christopher Fergeau


svn path=/trunk/; revision=18592
2007-08-07 21:52:29 +00:00
Johan Dahlin
f09b3248af Use g_strdup on the translated string instead of g_strndup() + the length
2007-08-07  Johan Dahlin  <jdahlin@async.com.br>

    * gtk/gtkbuilderparser.c (text): Use g_strdup on the translated
    string instead of g_strndup() + the length of the untranslated
    string. (#461945, Claude Paroz)


svn path=/trunk/; revision=18588
2007-08-07 21:04:23 +00:00
Matthias Clasen
8f98233aff Support old-style message contexts, too.
2007-07-08  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtkbuilderparser.c (pgettext): Support old-style
        message contexts, too.



svn path=/trunk/; revision=18405
2007-07-08 16:37:43 +00:00
Johan Dahlin
db376bf7de Parse last_modification_time attribute in <signal> tag
2007-07-08  Johan Dahlin  <jdahlin@async.com.br>

    * gtk/gtkbuilderparser.c (parse_signal): Parse last_modification_time
    attribute in <signal> tag


svn path=/trunk/; revision=18402
2007-07-08 13:39:42 +00:00
Matthias Clasen
5f3729b87c Add support for context and comments on properties
svn path=/trunk/; revision=18401
2007-07-08 05:27:22 +00:00
Johan Dahlin
aaab9c05a5 Improve error handling for enum/flags, rename the converter functions to
2007-06-30  Johan Dahlin  <jdahlin@async.com.br>

    * gtk/gtkbuilder.c:
    * gtk/gtkbuilder.h:
    * gtk/gtkbuilderparser.c:
    * gtk/gtkbuilderprivate.h:
    * gtk/gtkwidget.c: 
    * tests/buildertest.c:

    Improve error handling for enum/flags, rename the converter functions
    to be consistent. Add tests. Fixes #452465


svn path=/trunk/; revision=18312
2007-06-30 18:27:39 +00:00
Matthias Clasen
8c3832cf03 Be picky
svn path=/trunk/; revision=18307
2007-06-30 07:04:18 +00:00
Johan Dahlin
988a3e2bf4 Move type-func to <object> instead of <child>, add a test to make sure
2007-06-30  Johan Dahlin  <jdahlin@async.com.br>

    * gtk/gtkbuilderparser.c: (_get_type_by_symbol), (parse_object),
    (parse_child):
    * tests/buildertest.c: (test_types):
    Move type-func to <object> instead of <child>, add a test to
    make sure that it works as desired, #452463


svn path=/trunk/; revision=18306
2007-06-30 07:03:34 +00:00
Johan Dahlin
357e2cbfff Make boolean string parsing consistent, #452464
2007-06-30  Johan Dahlin  <jdahlin@async.com.br>

    * gtk/gtkbuilder.c: (gtk_builder_value_from_string_type):
    * gtk/gtkbuilderparser.c: (_gtk_builder_parse_boolean),
    (parse_property), (parse_signal):
    * gtk/gtkbuilderprivate.h:
    * tests/buildertest.c: (test_value_from_string):
    Make boolean string parsing consistent, #452464


svn path=/trunk/; revision=18305
2007-06-30 06:57:47 +00:00
Johan Dahlin
60782920e2 Use the attribute name in the error message instead of the value.
2007-06-27  Johan Dahlin  <jdahlin@async.com.br>

    * gtk/gtkbuilderparser.c (parse_property): Use
    the attribute name in the error message instead of
    the value.


svn path=/trunk/; revision=18272
2007-06-28 02:00:16 +00:00
Johan Dahlin
4c1343a22c Plug leaks in error code paths
* gtk/gtkbuilderparser.c: Plug leaks in error code paths

svn path=/trunk/; revision=18254
2007-06-27 04:03:35 +00:00
Johan Dahlin
ae800a34fa Set an error if we encounter properties without values set (#451303,
* gtk/gtkbuilder.h (enum): 
    * gtk/gtkbuilderparser.c (end_element): 
    * tests/buildertest.c (test_parser): 
    Set an error if we encounter properties without values set
    (#451303, Philip Withnall)


svn path=/trunk/; revision=18252
2007-06-27 00:37:50 +00:00
Johan Dahlin
d0794b1ce2 Swap argument order to dgettext (#448299, Jan Arne Petersen)
2007-06-16  Johan Dahlin  <jdahlin@async.com.br>

    * gtk/gtkbuilderparser.c (text): Swap argument order to dgettext
    (#448299, Jan Arne Petersen)


svn path=/trunk/; revision=18163
2007-06-16 20:36:09 +00:00
Johan Dahlin
4d638bf0c1 Add GtkBuilder, fixes #172535
2007-06-15  Johan Dahlin  <jdahlin@async.com.br>

    * demos/gtk-demo/Makefile.am:
    * demos/gtk-demo/builder.c: (quit_activate), (about_activate),
    (do_builder):
    * demos/gtk-demo/demo.ui:
    * docs/reference/gtk/gtk-docs.sgml:
    * docs/reference/gtk/gtk-sections.txt:
    * docs/reference/gtk/gtk.types:
    * docs/reference/gtk/tmpl/gtkbuildable.sgml:
    * docs/reference/gtk/tmpl/gtkbuilder.sgml:
    * gtk/Makefile.am:
    * gtk/gtk.h:
    * gtk/gtk.symbols:
    * gtk/gtkaction.c: (gtk_action_buildable_init),
    (gtk_action_buildable_set_name), (gtk_action_buildable_get_name):
    * gtk/gtkactiongroup.c: (gtk_action_group_get_type),
    (gtk_action_group_buildable_init),
    (gtk_action_group_buildable_add),
    (gtk_action_group_buildable_set_name),
    (gtk_action_group_buildable_get_name):
    * gtk/gtkbuildable.c: (gtk_buildable_get_type),
    (gtk_buildable_set_name), (gtk_buildable_get_name),
    (gtk_buildable_add), (gtk_buildable_set_property),
    (gtk_buildable_parser_finished), (gtk_buildable_construct_child),
    (gtk_buildable_custom_tag_start), (gtk_buildable_custom_tag_end),
    (gtk_buildable_custom_finished),
    (gtk_buildable_get_internal_child):
    * gtk/gtkbuildable.h:
    * gtk/gtkbuilder.c: (gtk_builder_class_init), (gtk_builder_init),
    (gtk_builder_finalize), (gtk_builder_set_property),
    (gtk_builder_get_property), (_gtk_builder_resolve_type_lazily),
    (gtk_builder_real_get_type_from_name),
    (gtk_builder_get_parameters), (gtk_builder_get_internal_child),
    (_gtk_builder_construct), (_gtk_builder_add),
    (apply_delayed_properties), (_gtk_builder_finish),
    (gtk_builder_new), (gtk_builder_add_from_file),
    (gtk_builder_add_from_string), (gtk_builder_get_object),
    (object_add_to_list), (gtk_builder_get_objects),
    (gtk_builder_set_translation_domain),
    (gtk_builder_get_translation_domain),
    (gtk_builder_connect_signals_default),
    (gtk_builder_connect_signals), (gtk_builder_connect_signals_full),
    (gtk_builder_value_from_string),
    (gtk_builder_value_from_string_type),
    (_gtk_builder_enum_from_string), (_gtk_builder_flags_from_string),
    (gtk_builder_get_type_from_name), (gtk_builder_error_quark):
    * gtk/gtkbuilder.h:
    * gtk/gtkbuilderparser.c: (state_push), (state_peek), (state_pop),
    (error_missing_attribute), (error_invalid_attribute),
    (error_invalid_tag), (builder_construct), (parse_object),
    (free_object_info), (_get_type_by_symbol), (parse_child),
    (free_child_info), (parse_property), (free_property_info),
    (parse_signal), (_free_signal_info), (parse_interface),
    (create_subparser), (free_subparser), (subparser_start),
    (subparser_end), (parse_custom), (start_element), (end_element),
    (text), (_gtk_builder_parser_parse_buffer):
    * gtk/gtkbuilderprivate.h:
    * gtk/gtkcelllayout.c: (attributes_start_element),
    (attributes_text_element),
    (_gtk_cell_layout_buildable_custom_tag_start),
    (_gtk_cell_layout_buildable_custom_tag_end),
    (_gtk_cell_layout_buildable_add):
    * gtk/gtkcelllayout.h:
    * gtk/gtkcellview.c: (gtk_cell_view_buildable_init),
    (gtk_cell_view_buildable_custom_tag_start),
    (gtk_cell_view_buildable_custom_tag_end):
    * gtk/gtkcolorseldialog.c:
    (gtk_color_selection_dialog_buildable_interface_init),
    (gtk_color_selection_dialog_buildable_get_internal_child):
    * gtk/gtkcombobox.c: (gtk_combo_box_buildable_init),
    (gtk_combo_box_buildable_custom_tag_start),
    (gtk_combo_box_buildable_custom_tag_end):
    * gtk/gtkcomboboxentry.c:
    (gtk_combo_box_entry_buildable_interface_init),
    (gtk_combo_box_entry_buildable_get_internal_child):
    * gtk/gtkcontainer.c: (gtk_container_get_type),
    (gtk_container_buildable_init), (gtk_container_buildable_add),
    (gtk_container_buildable_set_child_property),
    (attributes_start_element), (attributes_text_element),
    (gtk_container_buildable_custom_tag_start),
    (gtk_container_buildable_custom_tag_end):
    * gtk/gtkdebug.h:
    * gtk/gtkdialog.c: (gtk_dialog_buildable_interface_init),
    (gtk_dialog_buildable_get_internal_child),
    (attributes_start_element), (attributes_text_element),
    (gtk_dialog_buildable_custom_tag_start),
    (gtk_dialog_buildable_custom_finished):
    * gtk/gtkentrycompletion.c: (gtk_entry_completion_buildable_init):
    * gtk/gtkexpander.c: (gtk_expander_buildable_add),
    (gtk_expander_buildable_init):
    * gtk/gtkfontsel.c:
    (gtk_font_selection_dialog_buildable_interface_init),
    (gtk_font_selection_dialog_buildable_get_internal_child):
    * gtk/gtkframe.c: (gtk_frame_buildable_init),
    (gtk_frame_buildable_add):
    * gtk/gtkiconview.c: (gtk_icon_view_buildable_init),
    (gtk_icon_view_buildable_custom_tag_start),
    (gtk_icon_view_buildable_custom_tag_end):
    * gtk/gtkliststore.c: (gtk_list_store_buildable_init),
    (list_store_start_element), (list_store_end_element),
    (list_store_text), (gtk_list_store_buildable_custom_tag_start),
    (gtk_list_store_buildable_custom_tag_end):
    * gtk/gtkmain.c:
    * gtk/gtknotebook.c: (gtk_notebook_buildable_init),
    (gtk_notebook_buildable_add):
    * gtk/gtksizegroup.c: (gtk_size_group_buildable_init),
    (size_group_start_element),
    (gtk_size_group_buildable_custom_tag_start),
    (gtk_size_group_buildable_custom_finished):
    * gtk/gtktreestore.c: (gtk_tree_store_buildable_init),
    (tree_model_start_element),
    (gtk_tree_store_buildable_custom_tag_start),
    (gtk_tree_store_buildable_custom_finished):
    * gtk/gtktreeview.c: (gtk_tree_view_buildable_init),
    (gtk_tree_view_buildable_add):
    * gtk/gtktreeviewcolumn.c: (gtk_tree_view_column_buildable_init):
    * gtk/gtkuimanager.c: (gtk_ui_manager_buildable_init),
    (gtk_ui_manager_buildable_add),
    (gtk_ui_manager_buildable_construct_child),
    (gtk_ui_manager_buildable_custom_tag_start),
    (gtk_ui_manager_buildable_custom_tag_end):
    * gtk/gtkwidget.c: (gtk_widget_get_type),
    (gtk_widget_buildable_interface_init),
    (gtk_widget_buildable_set_name), (gtk_widget_buildable_get_name),
    (gtk_widget_buildable_set_property),
    (gtk_widget_buildable_parser_finshed), (accel_group_start_element),
    (gtk_widget_buildable_custom_tag_start),
    (gtk_widget_buildable_custom_finshed):
    * gtk/gtkwindow.c: (gtk_window_buildable_interface_init),
    (gtk_window_buildable_set_property),
    (gtk_window_buildable_parser_finished):
    * tests/Makefile.am:
    * tests/buildertest.c: (builder_new_from_string), (test_parser),
    (signal_normal), (signal_after), (signal_object),
    (signal_object_after), (signal_first), (signal_second),
    (signal_extra), (signal_extra2), (test_connect_signals),
    (test_uimanager_simple), (test_domain), (test_translation),
    (test_sizegroup), (test_list_store), (test_tree_store),
    (test_types), (test_spin_button), (test_notebook),
    (test_construct_only_property), (test_children),
    (test_child_properties), (test_treeview_column), (test_icon_view),
    (test_combo_box), (test_combo_box_entry), (test_cell_view),
    (test_dialog), (test_accelerators), (test_widget), (main):

    Add GtkBuilder, fixes #172535


svn path=/trunk/; revision=18141
2007-06-15 17:53:46 +00:00