diff options
author | Hugo Lima <hugo.lima@openbossa.org> | 2009-11-18 16:47:12 -0200 |
---|---|---|
committer | Hugo Lima <hugo.lima@openbossa.org> | 2009-11-18 16:47:12 -0200 |
commit | 5521bb2fd048be3cd74c427f7965926b816f82d8 (patch) | |
tree | ac691be83628a715607d5942823b966d3e1ed804 | |
parent | b8a07a9e0eca74ebdbd1d4e1537d47764f494c15 (diff) |
Added inject codes for methods like QString::toDouble, QByteArray::toFloat, etc.
-rw-r--r-- | CMakeLists.txt | 2 | ||||
-rw-r--r-- | PySide/CMakeLists.txt | 3 | ||||
-rw-r--r-- | PySide/QtCore/typesystem_core.xml | 84 | ||||
-rw-r--r-- | PySide/typesystem_templates.xml | 12 |
4 files changed, 88 insertions, 13 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 312898da7..99e19315d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,5 @@ include(icecc.cmake) # this must be the first line! -project(pyside) - cmake_minimum_required(VERSION 2.6) set(CMAKE_CXX_FLAGS_RELEASE "-Wall -DNDEBUG -Os -Wl,-O1 -Wl,--hash-style=gnu -Wno-strict-aliasing") diff --git a/PySide/CMakeLists.txt b/PySide/CMakeLists.txt index 1d7c38006..08cc795ee 100644 --- a/PySide/CMakeLists.txt +++ b/PySide/CMakeLists.txt @@ -1,3 +1,4 @@ +project(pyside) install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/__init__.py DESTINATION ${SITE_PACKAGE}/${BINDING_NAME}) @@ -6,7 +7,7 @@ add_custom_command(OUTPUT ${${sources}} COMMAND ${GENERATOR} ${GENERATOR_EXTRA_FLAGS} ${CMAKE_CURRENT_SOURCE_DIR}/../global.h --include-paths=${QT_INCLUDE_DIR} - --typesystem-paths=${typesystem_SOURCE_DIR} + --typesystem-paths=${pyside_SOURCE_DIR} --output-directory=${CMAKE_CURRENT_BINARY_DIR} --license-file=${CMAKE_CURRENT_SOURCE_DIR}/../licensecomment.txt ${CMAKE_CURRENT_SOURCE_DIR}/typesystem_${module}.xml diff --git a/PySide/QtCore/typesystem_core.xml b/PySide/QtCore/typesystem_core.xml index e210d527e..d165ed29f 100644 --- a/PySide/QtCore/typesystem_core.xml +++ b/PySide/QtCore/typesystem_core.xml @@ -1,5 +1,6 @@ <?xml version="1.0"?> <typesystem package="PySide.QtCore"> + <load-typesystem name="typesystem_templates.xml" generate="no"/> <!-- Stream manipulators does not fits into python language, so we need to do a lot of inject code to handle them. @@ -907,10 +908,24 @@ <modify-function signature="fromStdString(std::string)" remove="all"/> <modify-function signature="toStdString()const" remove="all"/> <modify-function signature="toStdWString()const" remove="all"/> -<!-- <modify-function signature="operator+=(char)" remove="all"/> --> + <modify-function signature="operator+=(char)" remove="all"/> <modify-function signature="toUShort(bool*,int)const" remove="all" /> - <modify-function signature="toDouble(bool*)const" remove="all" /> - <modify-function signature="toFloat(bool*)const" remove="all" /> + <modify-function signature="toDouble(bool*)const"> + <modify-argument index="1"> + <remove-argument/> + </modify-argument> + <inject-code class="target" position="beginning"> + <insert-template name="only_bool*_fix"/> + </inject-code> + </modify-function> + <modify-function signature="toFloat(bool*)const"> + <modify-argument index="1"> + <remove-argument/> + </modify-argument> + <inject-code class="target" position="beginning"> + <insert-template name="only_bool*_fix"/> + </inject-code> + </modify-function> <modify-function signature="toInt(bool*,int)const" remove="all" /> <modify-function signature="toLong(bool*,int)const" remove="all" /> <modify-function signature="toLongLong(bool*,int)const" remove="all" /> @@ -1215,11 +1230,46 @@ <modify-function signature="QVariant(const QUrl&)" remove="all"/> <modify-function signature="QVariant(const QLocale&)" remove="all"/> <modify-function signature="QVariant(const QRegExp&)" remove="all"/> - <modify-function signature="toDouble(bool*)const" remove="all" /> - <modify-function signature="toInt(bool*)const" remove="all" /> - <modify-function signature="toLongLong(bool*)const" remove="all" /> - <modify-function signature="toUInt(bool*)const" remove="all" /> - <modify-function signature="toULongLong(bool*)const" remove="all" /> + <modify-function signature="toDouble(bool*)const"> + <modify-argument index="1"> + <remove-argument/> + </modify-argument> + <inject-code class="target" position="beginning"> + <insert-template name="only_bool*_fix"/> + </inject-code> + </modify-function> + <modify-function signature="toInt(bool*)const"> + <modify-argument index="1"> + <remove-argument/> + </modify-argument> + <inject-code class="target" position="beginning"> + <insert-template name="only_bool*_fix"/> + </inject-code> + </modify-function> + <modify-function signature="toLongLong(bool*)const"> + <modify-argument index="1"> + <remove-argument/> + </modify-argument> + <inject-code class="target" position="beginning"> + <insert-template name="only_bool*_fix"/> + </inject-code> + </modify-function> + <modify-function signature="toUInt(bool*)const"> + <modify-argument index="1"> + <remove-argument/> + </modify-argument> + <inject-code class="target" position="beginning"> + <insert-template name="only_bool*_fix"/> + </inject-code> + </modify-function> + <modify-function signature="toULongLong(bool*)const"> + <modify-argument index="1"> + <remove-argument/> + </modify-argument> + <inject-code class="target" position="beginning"> + <insert-template name="only_bool*_fix"/> + </inject-code> + </modify-function> </value-type> <value-type name="QStringList"> <modify-function signature="fromVector(QVector<QString>)" remove="all" /> @@ -1415,8 +1465,22 @@ <modify-argument index="0" replace-value="this"/> <rename to="setFloat"/> </modify-function> - <modify-function signature="toDouble(bool*)const" remove="all" /> - <modify-function signature="toFloat(bool*)const" remove="all" /> + <modify-function signature="toDouble(bool*)const"> + <modify-argument index="1"> + <remove-argument/> + </modify-argument> + <inject-code class="target" position="beginning"> + <insert-template name="only_bool*_fix"/> + </inject-code> + </modify-function> + <modify-function signature="toFloat(bool*)const"> + <modify-argument index="1"> + <remove-argument/> + </modify-argument> + <inject-code class="target" position="beginning"> + <insert-template name="only_bool*_fix"/> + </inject-code> + </modify-function> <modify-function signature="toInt(bool*,int)const" remove="all" /> <modify-function signature="toUShort(bool*,int)const" remove="all" /> <add-function signature="__len__"> diff --git a/PySide/typesystem_templates.xml b/PySide/typesystem_templates.xml new file mode 100644 index 000000000..a7e209738 --- /dev/null +++ b/PySide/typesystem_templates.xml @@ -0,0 +1,12 @@ +<?xml version="1.0"?> +<typesystem> + <!-- Templates to fix bool* parameters --> + + <template name="only_bool*_fix"> + bool ok_; + %RETURN_TYPE retval_ = %CPPSELF.%FUNCTION_NAME(&ok_); + %0 = PyTuple_Pack(2, %CONVERTTOPYTHON[%RETURN_TYPE](retval_), %CONVERTTOPYTHON[%RETURN_TYPE](ok_)); + </template> + +</typesystem> + |