diff options
author | Emmanuele Bassi <ebassi@gnome.org> | 2020-02-14 14:53:09 +0000 |
---|---|---|
committer | Emmanuele Bassi <ebassi@gmail.com> | 2020-04-24 14:25:21 +0000 |
commit | b4c058bba4d95ae10e1e4238f9417fe954f97795 (patch) | |
tree | a8014c2c550a9cd2909f21c3b66975c7a7227c6f /giscanner | |
parent | 9cb1ac54f5cda256230e76d4d78e960f98c9d2c3 (diff) | |
download | gobject-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.py | 2 | ||||
-rw-r--r-- | giscanner/transformer.py | 3 |
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, |