mirror of
https://gitlab.gnome.org/jwestman/blueprint-compiler.git
synced 2025-05-05 16:09:07 -04:00
language: Fix some issues with menus
Blueprint's handling of menus didn't line up with how GtkBuilder handles them. The root <menu> element must have an ID and may not have attributes, and menus may not be used inline in a property.
This commit is contained in:
parent
93f2a27e35
commit
bbad6988fa
18 changed files with 52 additions and 53 deletions
|
@ -1,5 +0,0 @@
|
|||
using Gtk 4.0;
|
||||
|
||||
Button {
|
||||
label: menu {};
|
||||
}
|
|
@ -1 +0,0 @@
|
|||
4,3,15,Cannot assign Gio.MenuModel to string
|
7
tests/sample_errors/assign_menu.blp
Normal file
7
tests/sample_errors/assign_menu.blp
Normal file
|
@ -0,0 +1,7 @@
|
|||
using Gtk 4.0;
|
||||
|
||||
Button {
|
||||
label: my_menu;
|
||||
}
|
||||
|
||||
menu my_menu {}
|
1
tests/sample_errors/assign_menu.err
Normal file
1
tests/sample_errors/assign_menu.err
Normal file
|
@ -0,0 +1 @@
|
|||
4,10,7,Cannot assign Gio.MenuModel to string
|
5
tests/sample_errors/menu_errors.blp
Normal file
5
tests/sample_errors/menu_errors.blp
Normal file
|
@ -0,0 +1,5 @@
|
|||
using Gtk 4.0;
|
||||
|
||||
menu {
|
||||
label: "hi";
|
||||
}
|
2
tests/sample_errors/menu_errors.err
Normal file
2
tests/sample_errors/menu_errors.err
Normal file
|
@ -0,0 +1,2 @@
|
|||
3,1,4,Menu requires an ID
|
||||
4,3,12,Menu root may not have attributes
|
|
@ -1,5 +0,0 @@
|
|||
using Gtk 4.0;
|
||||
|
||||
MenuButton {
|
||||
menu-model: menu primary_menu {};
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<interface>
|
||||
<requires lib="gtk" version="4.0"/>
|
||||
<object class="GtkMenuButton">
|
||||
<property name="menu-model">
|
||||
<menu id="primary_menu"></menu>
|
||||
</property>
|
||||
</object>
|
||||
</interface>
|
|
@ -1,13 +1,12 @@
|
|||
using Gtk 4.0;
|
||||
|
||||
menu {
|
||||
label: _("menu label");
|
||||
test-custom-attribute: 3.1415;
|
||||
menu my_menu {
|
||||
section {
|
||||
label: "test section";
|
||||
}
|
||||
|
||||
submenu {
|
||||
section {
|
||||
label: "test section";
|
||||
}
|
||||
label: "test submenu";
|
||||
|
||||
item {
|
||||
label: "test item";
|
||||
|
|
|
@ -1,13 +1,12 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<interface>
|
||||
<requires lib="gtk" version="4.0"/>
|
||||
<menu>
|
||||
<attribute name="label" translatable="true">menu label</attribute>
|
||||
<attribute name="test-custom-attribute">3.1415</attribute>
|
||||
<menu id="my_menu">
|
||||
<section>
|
||||
<attribute name="label">test section</attribute>
|
||||
</section>
|
||||
<submenu>
|
||||
<section>
|
||||
<attribute name="label">test section</attribute>
|
||||
</section>
|
||||
<attribute name="label">test submenu</attribute>
|
||||
<item>
|
||||
<attribute name="label">test item</attribute>
|
||||
</item>
|
||||
|
@ -25,4 +24,4 @@
|
|||
</item>
|
||||
</submenu>
|
||||
</menu>
|
||||
</interface>
|
||||
</interface>
|
||||
|
|
|
@ -1,13 +1,12 @@
|
|||
using Gtk 4.0;
|
||||
|
||||
menu {
|
||||
label: _("menu label");
|
||||
test-custom-attribute: "3.1415";
|
||||
menu my_menu {
|
||||
section {
|
||||
label: "test section";
|
||||
}
|
||||
|
||||
submenu {
|
||||
section {
|
||||
label: "test section";
|
||||
}
|
||||
label: "test submenu";
|
||||
|
||||
item {
|
||||
label: "test item";
|
||||
|
|
|
@ -124,7 +124,6 @@ class TestSamples(unittest.TestCase):
|
|||
self.assert_sample("file_filter")
|
||||
self.assert_sample("flags")
|
||||
self.assert_sample("id_prop")
|
||||
self.assert_sample("inline_menu")
|
||||
self.assert_sample("layout")
|
||||
self.assert_sample("menu")
|
||||
self.assert_sample("object_prop")
|
||||
|
@ -147,7 +146,7 @@ class TestSamples(unittest.TestCase):
|
|||
self.assert_sample_error("a11y_prop_dne")
|
||||
self.assert_sample_error("a11y_prop_obj_dne")
|
||||
self.assert_sample_error("a11y_prop_type")
|
||||
self.assert_sample_error("assign_inline_menu")
|
||||
self.assert_sample_error("assign_menu")
|
||||
self.assert_sample_error("action_widget_float_response")
|
||||
self.assert_sample_error("action_widget_have_no_id")
|
||||
self.assert_sample_error("action_widget_multiple_default")
|
||||
|
@ -165,6 +164,7 @@ class TestSamples(unittest.TestCase):
|
|||
self.assert_sample_error("filters_in_non_file_filter")
|
||||
self.assert_sample_error("invalid_bool")
|
||||
self.assert_sample_error("layout_in_non_widget")
|
||||
self.assert_sample_error("menu_errors")
|
||||
self.assert_sample_error("ns_not_imported")
|
||||
self.assert_sample_error("not_a_class")
|
||||
self.assert_sample_error("object_dne")
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue