signals: Support after keyword

This commit is contained in:
Gregor Niehl 2024-05-30 22:34:05 +00:00 committed by James Westman
parent 07e824d8e7
commit 25d08e56cb
4 changed files with 14 additions and 6 deletions

View file

@ -166,11 +166,18 @@ class Signal(AstNode):
@decompiler("signal")
def decompile_signal(ctx, gir, name, handler, swapped="false", object=None):
def decompile_signal(
ctx, gir, name, handler, swapped="false", after="false", object=None
):
object_name = object or ""
name = name.replace("_", "-")
line = f"{name} => ${handler}({object_name})"
if decompile.truthy(swapped):
ctx.print(f"{name} => ${handler}({object_name}) swapped;")
else:
ctx.print(f"{name} => ${handler}({object_name});")
line += " swapped"
if decompile.truthy(after):
line += " after"
line += ";"
ctx.print(line)
return gir

View file

@ -161,6 +161,7 @@ class XmlOutput(OutputFormat):
name=name,
handler=signal.handler,
swapped=signal.is_swapped or None,
after=signal.is_after or None,
object=(
self._object_id(signal, signal.object_id) if signal.object_id else None
),

View file

@ -5,6 +5,6 @@ Entry {
}
Button button {
clicked => $on_button_clicked() swapped;
clicked => $on_button_clicked() swapped after;
notify::visible => $on_button_notify_visible();
}

View file

@ -10,7 +10,7 @@ corresponding .blp file and regenerate this file with blueprint-compiler.
<signal name="activate" handler="click" object="button"/>
</object>
<object class="GtkButton" id="button">
<signal name="clicked" handler="on_button_clicked" swapped="True"/>
<signal name="clicked" handler="on_button_clicked" swapped="True" after="True"/>
<signal name="notify::visible" handler="on_button_notify_visible"/>
</object>
</interface>