summaryrefslogtreecommitdiff
path: root/giscanner
diff options
context:
space:
mode:
authorEmmanuele Bassi <ebassi@gnome.org>2020-02-14 14:53:09 +0000
committerEmmanuele Bassi <ebassi@gmail.com>2020-04-24 14:25:21 +0000
commitb4c058bba4d95ae10e1e4238f9417fe954f97795 (patch)
treea8014c2c550a9cd2909f21c3b66975c7a7227c6f /giscanner
parent9cb1ac54f5cda256230e76d4d78e960f98c9d2c3 (diff)
downloadgobject-introspection-b4c058bba4d95ae10e1e4238f9417fe954f97795.tar.gz
Add element-type support to GListModel
GListModel is an interface for creating typed, list-like containers. The data stored is GObject instances, but it's useful to be able to annotate the actual type, for both documentation and code generation purposes. Fixes: #328
Diffstat (limited to 'giscanner')
-rw-r--r--giscanner/girparser.py2
-rw-r--r--giscanner/transformer.py3
2 files changed, 4 insertions, 1 deletions
diff --git a/giscanner/girparser.py b/giscanner/girparser.py
index 35206a41..d31b26cf 100644
--- a/giscanner/girparser.py
+++ b/giscanner/girparser.py
@@ -492,7 +492,7 @@ class GIRParser(object):
if ctype is None:
return ast.TypeUnknown()
return ast.Type(ctype=ctype)
- elif name in ['GLib.List', 'GLib.SList']:
+ elif name in ['GLib.List', 'GLib.SList', 'Gio.ListModel']:
subchild = self._find_first_child(typenode,
list(map(_corens, ('callback', 'array',
' varargs', 'type'))))
diff --git a/giscanner/transformer.py b/giscanner/transformer.py
index bcabdedc..7f230a20 100644
--- a/giscanner/transformer.py
+++ b/giscanner/transformer.py
@@ -698,6 +698,9 @@ raise ValueError."""
elif base in ('GHashTable', 'GLib.HashTable', 'GObject.HashTable'):
return ast.Map(ast.TYPE_ANY, ast.TYPE_ANY, ctype=ctype, is_const=is_const,
complete_ctype=complete_ctype)
+ elif base in ('GListModel', 'Gio.ListModel'):
+ return ast.List('Gio.ListModel', ast.TYPE_ANY, ctype=ctype,
+ is_const=is_const, complete_ctype=complete_ctype)
return None
def create_type_from_ctype_string(self, ctype, is_const=False,