decompiler: Support GtkFileFilter tags

This commit is contained in:
James Westman 2021-12-14 20:25:28 -06:00
parent 3ab2fbe5a0
commit 34e78de338
No known key found for this signature in database
GPG key ID: CE2DBA0ADB654EA6
3 changed files with 39 additions and 3 deletions

View file

@ -375,6 +375,31 @@ def decompile_state(ctx, gir, name, cdata, translatable="false"):
ctx.print_attribute(name, cdata, gtk_a11y.get_types(ctx.gir).get(name)) ctx.print_attribute(name, cdata, gtk_a11y.get_types(ctx.gir).get(name))
@decompiler("mime-types")
def decompile_mime_types(ctx, gir):
ctx.print("mime-types [")
@decompiler("mime-type", cdata=True)
def decompile_mime_type(ctx, gir, cdata):
ctx.print(f'"{cdata}",')
@decompiler("patterns")
def decompile_patterns(ctx, gir):
ctx.print("patterns [")
@decompiler("pattern", cdata=True)
def decompile_pattern(ctx, gir, cdata):
ctx.print(f'"{cdata}",')
@decompiler("suffixes")
def decompile_suffixes(ctx, gir):
ctx.print("suffixes [")
@decompiler("suffix", cdata=True)
def decompile_suffix(ctx, gir, cdata):
ctx.print(f'"{cdata}",')
@dataclass @dataclass
class UnsupportedError(Exception): class UnsupportedError(Exception):
message: str = "unsupported feature" message: str = "unsupported feature"

View file

@ -2,7 +2,17 @@ using Gtk 4.0;
FileFilter { FileFilter {
name: "File Filter Name"; name: "File Filter Name";
mime-types ["text/plain", "image/ *"]
patterns ["*.txt"] mime-types [
suffixes ["png"] "text/plain",
"image/ *",
]
patterns [
"*.txt",
]
suffixes [
"png",
]
} }

View file

@ -168,6 +168,7 @@ class TestSamples(unittest.TestCase):
self.assert_decompile("accessibility_dec") self.assert_decompile("accessibility_dec")
self.assert_decompile("binding") self.assert_decompile("binding")
self.assert_decompile("child_type") self.assert_decompile("child_type")
self.assert_decompile("file_filter")
self.assert_decompile("flags") self.assert_decompile("flags")
self.assert_decompile("id_prop") self.assert_decompile("id_prop")
self.assert_decompile("layout_dec") self.assert_decompile("layout_dec")