Wed, 20 Jun 2018 02:13:44 -0400
prefs: Add binding versions of pref widget functions.
These just bind settings to existing widgets and copy the saved value to
the widget, except for combos which are produced from runtime lists.
Those are populated in a similar way as before.
There are some extra _bind_ words that will probably be dropped once the
other functions are unused.
|
27568
437768598637
Add auto-generated D-Bus signals introspection, though parameter names
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
1 | # This program takes a C source as the input and produces the list of |
|
437768598637
Add auto-generated D-Bus signals introspection, though parameter names
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
2 | # all signals registered. |
|
437768598637
Add auto-generated D-Bus signals introspection, though parameter names
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
3 | # |
|
437768598637
Add auto-generated D-Bus signals introspection, though parameter names
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
4 | # Output is: |
|
437768598637
Add auto-generated D-Bus signals introspection, though parameter names
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
5 | # <signal name="Changed"> |
|
437768598637
Add auto-generated D-Bus signals introspection, though parameter names
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
6 | # <arg name="new_value" type="b"/> |
|
437768598637
Add auto-generated D-Bus signals introspection, though parameter names
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
7 | # </signal> |
|
38313
38a40ddbb9b7
Ensure all Python scripts are Py3k compatible.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33932
diff
changeset
|
8 | from __future__ import absolute_import, division, print_function |
|
37936
65e477a02dd6
Refactor DBus Python scripts to avoid redirection.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33932
diff
changeset
|
9 | |
|
65e477a02dd6
Refactor DBus Python scripts to avoid redirection.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33932
diff
changeset
|
10 | import argparse |
|
65e477a02dd6
Refactor DBus Python scripts to avoid redirection.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33932
diff
changeset
|
11 | import fileinput |
|
27568
437768598637
Add auto-generated D-Bus signals introspection, though parameter names
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
12 | import re |
|
437768598637
Add auto-generated D-Bus signals introspection, though parameter names
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
13 | import sys |
|
437768598637
Add auto-generated D-Bus signals introspection, though parameter names
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
14 | |
|
37984
6a5ca046a90d
Make all Python files PEP8 compatible.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37983
diff
changeset
|
15 | |
|
27568
437768598637
Add auto-generated D-Bus signals introspection, though parameter names
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
16 | # List "excluded" contains signals that shouldn't be exported via |
|
437768598637
Add auto-generated D-Bus signals introspection, though parameter names
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
17 | # DBus. If you remove a signal from this list, please make sure |
|
437768598637
Add auto-generated D-Bus signals introspection, though parameter names
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
18 | # that it does not break "make" with the configure option |
|
437768598637
Add auto-generated D-Bus signals introspection, though parameter names
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
19 | # "--enable-dbus" turned on. |
|
437768598637
Add auto-generated D-Bus signals introspection, though parameter names
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
20 | |
|
37984
6a5ca046a90d
Make all Python files PEP8 compatible.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37983
diff
changeset
|
21 | excluded = [ |
|
27568
437768598637
Add auto-generated D-Bus signals introspection, though parameter names
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
22 | # purple_dbus_signal_emit_purple prevents our "dbus-method-called" |
|
437768598637
Add auto-generated D-Bus signals introspection, though parameter names
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
23 | # signal from being propagated to dbus. |
|
37984
6a5ca046a90d
Make all Python files PEP8 compatible.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37983
diff
changeset
|
24 | "dbus-method-called", |
|
6a5ca046a90d
Make all Python files PEP8 compatible.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37983
diff
changeset
|
25 | ] |
|
27568
437768598637
Add auto-generated D-Bus signals introspection, though parameter names
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
26 | |
|
37984
6a5ca046a90d
Make all Python files PEP8 compatible.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37983
diff
changeset
|
27 | registerregex = re.compile( |
|
6a5ca046a90d
Make all Python files PEP8 compatible.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37983
diff
changeset
|
28 | "purple_signal_register[^;]+\"([\w\-]+)\"[^;]+(purple_marshal_\w+)[^;]+;") |
|
27568
437768598637
Add auto-generated D-Bus signals introspection, though parameter names
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
29 | nameregex = re.compile('[-_][a-z]') |
|
437768598637
Add auto-generated D-Bus signals introspection, though parameter names
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
30 | |
|
37936
65e477a02dd6
Refactor DBus Python scripts to avoid redirection.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33932
diff
changeset
|
31 | parser = argparse.ArgumentParser() |
|
65e477a02dd6
Refactor DBus Python scripts to avoid redirection.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33932
diff
changeset
|
32 | parser.add_argument('input', nargs='*', |
|
65e477a02dd6
Refactor DBus Python scripts to avoid redirection.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33932
diff
changeset
|
33 | help='Input files (or stdin if not specified)') |
|
65e477a02dd6
Refactor DBus Python scripts to avoid redirection.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33932
diff
changeset
|
34 | parser.add_argument('-o', '--output', type=argparse.FileType('w'), |
|
65e477a02dd6
Refactor DBus Python scripts to avoid redirection.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33932
diff
changeset
|
35 | help='Output to file instead of stdout') |
|
65e477a02dd6
Refactor DBus Python scripts to avoid redirection.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33932
diff
changeset
|
36 | cmd_args = parser.parse_args() |
|
65e477a02dd6
Refactor DBus Python scripts to avoid redirection.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33932
diff
changeset
|
37 | |
|
37984
6a5ca046a90d
Make all Python files PEP8 compatible.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37983
diff
changeset
|
38 | print("/* Generated by %s. Do not edit! */" % (sys.argv[0], ), |
|
37936
65e477a02dd6
Refactor DBus Python scripts to avoid redirection.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33932
diff
changeset
|
39 | file=cmd_args.output) |
|
65e477a02dd6
Refactor DBus Python scripts to avoid redirection.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33932
diff
changeset
|
40 | print("const char *dbus_signals = ", file=cmd_args.output) |
|
65e477a02dd6
Refactor DBus Python scripts to avoid redirection.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33932
diff
changeset
|
41 | input = ''.join(list(fileinput.input(cmd_args.input))) |
|
65e477a02dd6
Refactor DBus Python scripts to avoid redirection.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33932
diff
changeset
|
42 | for match in registerregex.finditer(input): |
|
27568
437768598637
Add auto-generated D-Bus signals introspection, though parameter names
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
43 | signal = match.group(1) |
|
437768598637
Add auto-generated D-Bus signals introspection, though parameter names
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
44 | marshal = match.group(2) |
|
437768598637
Add auto-generated D-Bus signals introspection, though parameter names
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
45 | if signal in excluded: |
|
437768598637
Add auto-generated D-Bus signals introspection, though parameter names
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
46 | continue |
|
437768598637
Add auto-generated D-Bus signals introspection, though parameter names
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
47 | |
|
37984
6a5ca046a90d
Make all Python files PEP8 compatible.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37983
diff
changeset
|
48 | signal = nameregex.sub(lambda x: x.group()[1].upper(), '-' + signal) |
|
6a5ca046a90d
Make all Python files PEP8 compatible.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37983
diff
changeset
|
49 | print("\" <signal name='%s'>\\n\"" % (signal, ), file=cmd_args.output) |
|
27568
437768598637
Add auto-generated D-Bus signals introspection, though parameter names
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
50 | |
|
437768598637
Add auto-generated D-Bus signals introspection, though parameter names
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
51 | args = marshal.split('_') |
|
437768598637
Add auto-generated D-Bus signals introspection, though parameter names
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
52 | # ['purple', 'marshal', <return type>, '', args...] |
|
437768598637
Add auto-generated D-Bus signals introspection, though parameter names
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
53 | if len(args) > 4: |
|
437768598637
Add auto-generated D-Bus signals introspection, though parameter names
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
54 | for arg in args[4:]: |
|
437768598637
Add auto-generated D-Bus signals introspection, though parameter names
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
55 | if arg == "POINTER": |
|
437768598637
Add auto-generated D-Bus signals introspection, though parameter names
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
56 | type = 'p' |
|
437768598637
Add auto-generated D-Bus signals introspection, though parameter names
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
57 | elif arg == "ENUM": |
|
437768598637
Add auto-generated D-Bus signals introspection, though parameter names
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
58 | type = 'i' |
|
437768598637
Add auto-generated D-Bus signals introspection, though parameter names
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
59 | elif arg == "INT": |
|
437768598637
Add auto-generated D-Bus signals introspection, though parameter names
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
60 | type = 'i' |
|
437768598637
Add auto-generated D-Bus signals introspection, though parameter names
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
61 | elif arg == "UINT": |
|
437768598637
Add auto-generated D-Bus signals introspection, though parameter names
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
62 | type = 'u' |
|
437768598637
Add auto-generated D-Bus signals introspection, though parameter names
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
63 | elif arg == "INT64": |
|
437768598637
Add auto-generated D-Bus signals introspection, though parameter names
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
64 | type = 'x' |
|
437768598637
Add auto-generated D-Bus signals introspection, though parameter names
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
65 | elif arg == "UINT64": |
|
437768598637
Add auto-generated D-Bus signals introspection, though parameter names
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
66 | type = 't' |
|
437768598637
Add auto-generated D-Bus signals introspection, though parameter names
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
67 | elif arg == "BOOLEAN": |
|
437768598637
Add auto-generated D-Bus signals introspection, though parameter names
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
68 | type = 'b' |
|
37984
6a5ca046a90d
Make all Python files PEP8 compatible.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37983
diff
changeset
|
69 | print("\" <arg type='%s'/>\\n\"" % (type, ), |
|
6a5ca046a90d
Make all Python files PEP8 compatible.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37983
diff
changeset
|
70 | file=cmd_args.output) |
|
27568
437768598637
Add auto-generated D-Bus signals introspection, though parameter names
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
71 | |
|
37936
65e477a02dd6
Refactor DBus Python scripts to avoid redirection.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33932
diff
changeset
|
72 | print("\" </signal>\\n\"", file=cmd_args.output) |
|
27568
437768598637
Add auto-generated D-Bus signals introspection, though parameter names
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
73 | |
|
37936
65e477a02dd6
Refactor DBus Python scripts to avoid redirection.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33932
diff
changeset
|
74 | print(";", file=cmd_args.output) |