Fix menus

- Menus require an ID
- The top level menu block can't have attributes
This commit is contained in:
James Westman 2022-12-19 14:36:32 -06:00
parent 8a1dba662a
commit 51d8969ced
No known key found for this signature in database
GPG key ID: CE2DBA0ADB654EA6
9 changed files with 43 additions and 13 deletions

View file

@ -0,0 +1,3 @@
using Gtk 4.0;
menu {}

View file

@ -0,0 +1 @@
3,1,4,Menu requires an ID

View file

@ -0,0 +1,5 @@
using Gtk 4.0;
menu {
not-allowed: true;
}

View file

@ -0,0 +1,2 @@
4,5,19,Attributes are not permitted at the top level of a menu
4,16,8,Unexpected tokens

View file

@ -1,9 +1,6 @@
using Gtk 4.0;
menu {
label: _("menu label");
test-custom-attribute: 3.1415;
menu my-menu {
submenu {
section {
label: "test section";

View file

@ -1,9 +1,7 @@
<?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">
<submenu>
<section>
<attribute name="label">test section</attribute>

View file

@ -1,9 +1,6 @@
using Gtk 4.0;
menu {
label: _("menu label");
test-custom-attribute: "3.1415";
menu my-menu {
submenu {
section {
label: "test section";

View file

@ -156,7 +156,7 @@ class TestSamples(unittest.TestCase):
self.assert_sample("flags", skip_run=True) # TODO: Fix
self.assert_sample("id_prop")
self.assert_sample("layout")
self.assert_sample("menu", skip_run=True) # TODO: Fix
self.assert_sample("menu")
self.assert_sample("numbers")
self.assert_sample("object_prop")
self.assert_sample(
@ -213,6 +213,8 @@ class TestSamples(unittest.TestCase):
self.assert_sample_error("inline_menu")
self.assert_sample_error("invalid_bool")
self.assert_sample_error("layout_in_non_widget")
self.assert_sample_error("menu_no_id")
self.assert_sample_error("menu_toplevel_attribute")
self.assert_sample_error("no_import_version")
self.assert_sample_error("ns_not_imported")
self.assert_sample_error("not_a_class")