[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [kreport/nonvisual-T517-staniek] tools: SDC: add custom_getter, custom, invokable flags, add syntax
From: Jaroslaw Staniek <staniek () kde ! org>
Date: 2015-08-01 0:04:25
Message-ID: E1ZLKHp-00044c-Vk () scm ! kde ! org
[Download RAW message or body]
Git commit 40e43f0ea33c8e1ae4e94c568f78866bc18a4a46 by Jaroslaw Staniek.
Committed on 30/07/2015 at 23:15.
Pushed by staniek into branch 'nonvisual-T517-staniek'.
SDC: add custom_getter,custom,invokable flags, add syntax docs
M +31 -14 tools/sdc.py
http://commits.kde.org/kreport/40e43f0ea33c8e1ae4e94c568f78866bc18a4a46
diff --git a/tools/sdc.py b/tools/sdc.py
index ed3f916..ca39838 100755
--- a/tools/sdc.py
+++ b/tools/sdc.py
@@ -288,7 +288,7 @@ def try_read_member_docs(comment):
result += line
return None
-""" makes setter out of name or returns forceSetter is specified """
+""" makes setter out of name or returns forceSetter if specified """
def makeSetter(name, forceSetter):
if forceSetter:
return forceSetter
@@ -306,11 +306,17 @@ def update_data_accesors():
getter = member['getter']
if not getter:
getter = member['name']
- val = """
- %s %s() const {
+ invokable = 'Q_INVOKABLE ' if member['invokable'] else ''
+ if member['custom_getter']:
+ val = """
+ %s%s %s() const;
+""" % (invokable, member['type'], getter)
+ else:
+ val = """
+ %s%s %s() const {
return d->%s;
}
-""" % (member['type'], getter, member['name'])
+""" % (invokable, member['type'], getter, member['name'])
if member['access'] == 'public':
data_accesors += val
else: # protected
@@ -327,19 +333,18 @@ def update_data_accesors():
if arg_type.lower() != arg_type and not member['simple_type']:
arg_type = 'const %s&' % arg_type
setter = makeSetter(member['name'], member['setter'])
- default_setter = ''
- if member['default_setter']:
- default_setter = ' = ' + member['default_setter']
+ default_setter = (' = ' + member['default_setter']) if \
member['default_setter'] else '' + invokable = 'Q_INVOKABLE ' if \
member['invokable'] else '' if member['custom_setter']:
val = """
- void %s(%s %s%s);
-""" % (setter, arg_type, member['name'], default_setter)
+ %svoid %s(%s %s%s);
+""" % (invokable, setter, arg_type, member['name'], default_setter)
else:
val = """
- void %s(%s %s%s) {
+ %svoid %s(%s %s%s) {
d->%s = %s;
}
-""" % (setter, arg_type, member['name'], default_setter, member['name'], \
member['name']) +""" % (invokable, setter, arg_type, member['name'], default_setter, \
member['name'], member['name']) if member['access'] == 'public':
data_accesors += val
else: # protected
@@ -598,7 +603,15 @@ def process():
if lst[-1].endswith(';'):
lst[-1] = lst[-1][:-1]
#print lst
- # syntax: data_member <TYPE> <NAME> [default=<DEFAULT_VAL>] \
[default_setter=<DEFAULT_SETTER_VAL>] + # syntax: data_member TYPE NAME \
[default=DEFAULT_VALUE] + # [no_getter] \
[getter=CUSTOM_GETTER_NAME] + # [custom]
+ # [custom_getter]
+ # [default_setter=DEFAULT_SETTER'S_PARAM]
+ # [no_setter] [setter=CUSTOM_SETTER_NAME]
+ # [custom_setter]
+ # [mutable] [simple_type]
+ # [invokable]
# output: getter, setter methods, data memeber
if lst[0] == 'data_method':
#if member.has_key('docs'):
@@ -620,9 +633,12 @@ def process():
member['getter'] = param(lst, 'getter')
member['no_setter'] = param_exists(lst, 'no_setter')
member['setter'] = param(lst, 'setter')
- member['custom_setter'] = param_exists(lst, 'custom_setter')
+ member['custom'] = param_exists(lst, 'custom')
+ member['custom_getter'] = param_exists(lst, 'custom_getter') or \
member['custom'] + member['custom_setter'] = param_exists(lst, \
'custom_setter') or member['custom'] member['mutable'] = param_exists(lst, \
'mutable') member['simple_type'] = param_exists(lst, 'simple_type')
+ member['invokable'] = param_exists(lst, 'invokable')
#print member
if not data_class_ctor_changed:
data_class_ctor = """ //! Internal data class used to implement \
implicitly shared class %s.\n //! Provides thread-safe reference counting. @@ \
-666,7 +682,8 @@ def process(): setter = makeSetter(member['name'], \
member['setter'])
data_class_members += "%s::%s()" % (shared_class_name, setter)
data_class_members += "\n"
- data_class_members += " %s%s %s;\n" % (('mutable ' if \
member['mutable'] else ''), member['type'], member['name']) + mutable = \
'mutable ' if member['mutable'] else '' + data_class_members += " \
%s%s %s;\n" % (mutable, member['type'], member['name']) if \
shared_class_options['with_from_to_map']:
toMap_impl += ' map[QLatin1String(\"%s\")] = %s;\n' % \
(member['name'], generate_toString_conversion(member['name'], \
member['type']))
fromMap_impl += ' %s\n' % \
generate_fromString_conversion(member['name'], member['type'])
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic