aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrenato <renato.filho@openbossa.org>2010-04-16 16:14:03 -0300
committerRenato Filho <renato.filho@openbossa.org>2010-04-22 14:47:17 -0300
commit3468ba1efffc17f532ca69007602e87f19245304 (patch)
tree658290e3cf82e16539fd34b9a834af7c8ac2eaa1
parentde4a1a10b01f54ce03bc484f04f4294ba8b4d314 (diff)
Implemented module QtMaemo5.
Create unittest for module. Fixed generetion of typesystem_gui.xml based on detected system. Reviewer: Hugo Parente Lima <hugo.lima@openbossa.org>, Luciano Wolf <luciano.wolf@openbossa.org>
-rw-r--r--PySide/CMakeLists.txt42
-rw-r--r--PySide/QtGui/CMakeLists.txt18
-rw-r--r--PySide/QtGui/typesystem_gui.xml.in3
-rw-r--r--PySide/QtGui/typesystem_gui_maemo.xml7
-rw-r--r--PySide/QtMaemo5/CMakeLists.txt57
-rw-r--r--PySide/QtMaemo5/typesystem_maemo5.xml14
-rw-r--r--PySide/global.h1
-rw-r--r--tests/qtmaemo5/qmaemo5import_test.py19
8 files changed, 144 insertions, 17 deletions
diff --git a/PySide/CMakeLists.txt b/PySide/CMakeLists.txt
index af3e3b861..32f9b7c75 100644
--- a/PySide/CMakeLists.txt
+++ b/PySide/CMakeLists.txt
@@ -34,18 +34,6 @@ endmacro(HAS_QT_MODULE)
execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink "${CMAKE_CURRENT_SOURCE_DIR}/__init__.py"
"${CMAKE_BINARY_DIR}/PySide/__init__.py")
-HAS_QT_MODULE(QT_QTCORE_FOUND QtCore)
-HAS_QT_MODULE(QT_QTGUI_FOUND QtGui)
-HAS_QT_MODULE(QT_QTNETWORK_FOUND QtNetwork)
-HAS_QT_MODULE(QT_QTWEBKIT_FOUND QtWebKit)
-HAS_QT_MODULE(QT_QTSVG_FOUND QtSvg)
-HAS_QT_MODULE(QT_QTXML_FOUND QtXml)
-HAS_QT_MODULE(QT_QTTEST_FOUND QtTest)
-HAS_QT_MODULE(QT_QTOPENGL_FOUND QtOpenGL)
-HAS_QT_MODULE(QT_QTSQL_FOUND QtSql)
-HAS_QT_MODULE(QT_QTUITOOLS_FOUND QtUiTools)
-HAS_QT_MODULE(QT_QTHELP_FOUND QtHelp)
-HAS_QT_MODULE(QT_QTXMLPATTERNS_FOUND QtXmlPatterns)
# Try to find QtMultimedia
# TODO: Remove this hack when cmake support QtMultimedia module
@@ -60,4 +48,34 @@ if (NOT QT_QTMULTIMEDIA_FOUND AND ${QTVERSION} VERSION_GREATER 4.5.9)
endif()
endif ()
+# Try to find QtMaemo5 this need be before QtGui for enable some flags on that
+# TODO: Remove this hack when cmake support QtMaemo5 module
+if (NOT QT_QTMAEMO5_FOUND AND ${QTVERSION} VERSION_GREATER 4.5.9)
+ find_path(QT_QTMAEMO5_INCLUDE_DIR QtMaemo5
+ PATHS ${QT_HEADERS_DIR}/QtMaemo5
+ ${QT_LIBRARY_DIR}/QtMaemo5.framework/Headers
+ NO_DEFAULT_PATH)
+ find_library(QT_QTMAEMO5_LIBRARY QtMaemo5 PATHS ${QT_LIBRARY_DIR} NO_DEFAULT_PATH)
+ if (QT_QTMAEMO5_INCLUDE_DIR AND QT_QTMAEMO5_LIBRARY)
+ set(QT_QTMAEMO5_FOUND ON)
+ set(Q_WS_MAEMO_5 ON)
+ endif()
+endif ()
+
+HAS_QT_MODULE(QT_QTCORE_FOUND QtCore)
+HAS_QT_MODULE(QT_QTGUI_FOUND QtGui)
+HAS_QT_MODULE(QT_QTNETWORK_FOUND QtNetwork)
+HAS_QT_MODULE(QT_QTWEBKIT_FOUND QtWebKit)
+HAS_QT_MODULE(QT_QTSVG_FOUND QtSvg)
+HAS_QT_MODULE(QT_QTXML_FOUND QtXml)
+HAS_QT_MODULE(QT_QTTEST_FOUND QtTest)
+HAS_QT_MODULE(QT_QTOPENGL_FOUND QtOpenGL)
+HAS_QT_MODULE(QT_QTSQL_FOUND QtSql)
+HAS_QT_MODULE(QT_QTUITOOLS_FOUND QtUiTools)
+HAS_QT_MODULE(QT_QTHELP_FOUND QtHelp)
+HAS_QT_MODULE(QT_QTXMLPATTERNS_FOUND QtXmlPatterns)
+HAS_QT_MODULE(QT_QTMAEMO5_FOUND QtMaemo5)
+
HAS_QT_MODULE(QT_QTMULTIMEDIA_FOUND QtMultimedia)
+
+
diff --git a/PySide/QtGui/CMakeLists.txt b/PySide/QtGui/CMakeLists.txt
index ea181abb2..9701ffb1a 100644
--- a/PySide/QtGui/CMakeLists.txt
+++ b/PySide/QtGui/CMakeLists.txt
@@ -33,21 +33,33 @@ macro(CHECK_QT_GUI_MACRO macro_display_name qt_macro module_sources global_sourc
endif()
endmacro(CHECK_QT_GUI_MACRO)
-
if(Q_WS_X11)
- set(MODULE_NAME gui_x11)
+ set(AUTO_OS "X11")
+ set(MODULE_NAME "x11")
set(SPECIFIC_OS_FILES
${CMAKE_CURRENT_BINARY_DIR}/PySide/QtGui/qx11info_wrapper.cpp
)
+ if(Q_WS_MAEMO_5)
+ set(AUTO_OS "MAEMO 5")
+ set(MODULE_NAME "maemo")
+ set(SPECIFIC_OS_FILES
+ ${SPECIFIC_OS_FILES}
+ ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtGui/qabstractkineticscroller_wrapper.cpp
+ )
+ endif(Q_WS_MAEMO_5)
+
elseif(Q_WS_MAC)
- set(MODULE_NAME gui_mac)
+ set(AUTO_OS "MAC")
+ set(MODULE_NAME "mac")
set(SPECIFIC_OS_FILES
)
else()
message(FATAL_ERROR "OS not supported")
endif(Q_WS_X11)
+message(STATUS "Detected OS: ${AUTO_OS}")
+
if (${QT_VERSION_MAJOR} EQUAL 4 AND ${QT_VERSION_MINOR} LESS 6)
set (QtGui_46_SRC )
else()
diff --git a/PySide/QtGui/typesystem_gui.xml.in b/PySide/QtGui/typesystem_gui.xml.in
index 8ef52b10f..2dc967626 100644
--- a/PySide/QtGui/typesystem_gui.xml.in
+++ b/PySide/QtGui/typesystem_gui.xml.in
@@ -1,6 +1,5 @@
<?xml version="1.0"?>
<typesystem package="PySide.QtGui">
<load-typesystem name="typesystem_core.xml" generate="no"/>
- <!-- TODO: Replace x11 for a proper variable which identifies the current platform -->
- <load-typesystem name="typesystem_gui_x11.xml" generate="yes"/>
+ <load-typesystem name="typesystem_gui_@MODULE_NAME@.xml" generate="yes"/>
</typesystem>
diff --git a/PySide/QtGui/typesystem_gui_maemo.xml b/PySide/QtGui/typesystem_gui_maemo.xml
new file mode 100644
index 000000000..9efac7dfa
--- /dev/null
+++ b/PySide/QtGui/typesystem_gui_maemo.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+<typesystem package="PySide.QtGui">
+
+ <object-type name="QAbstractKineticScroller" />
+
+ <load-typesystem name="typesystem_gui_x11.xml" generate="yes"/>
+</typesystem>
diff --git a/PySide/QtMaemo5/CMakeLists.txt b/PySide/QtMaemo5/CMakeLists.txt
new file mode 100644
index 000000000..b7e997c92
--- /dev/null
+++ b/PySide/QtMaemo5/CMakeLists.txt
@@ -0,0 +1,57 @@
+project(QtMaemo5)
+
+set(QtMaemo5_SRC
+${CMAKE_CURRENT_BINARY_DIR}/${BINDING_NAME}/QtMaemo5/qmaemo5abstractpickselector_wrapper.cpp
+${CMAKE_CURRENT_BINARY_DIR}/${BINDING_NAME}/QtMaemo5/qmaemo5datepickselector_wrapper.cpp
+${CMAKE_CURRENT_BINARY_DIR}/${BINDING_NAME}/QtMaemo5/qmaemo5editbar_wrapper.cpp
+${CMAKE_CURRENT_BINARY_DIR}/${BINDING_NAME}/QtMaemo5/qmaemo5informationbox_wrapper.cpp
+${CMAKE_CURRENT_BINARY_DIR}/${BINDING_NAME}/QtMaemo5/qmaemo5listpickselector_wrapper.cpp
+${CMAKE_CURRENT_BINARY_DIR}/${BINDING_NAME}/QtMaemo5/qmaemo5timepickselector_wrapper.cpp
+${CMAKE_CURRENT_BINARY_DIR}/${BINDING_NAME}/QtMaemo5/qmaemo5valuebutton_wrapper.cpp
+${CMAKE_CURRENT_BINARY_DIR}/${BINDING_NAME}/QtMaemo5/qtmaemo5_module_wrapper.cpp
+)
+
+execute_generator(maemo5 QtMaemo5_SRC
+ "${CMAKE_CURRENT_BINARY_DIR}:${QtCore_SOURCE_DIR}:${QtGui_BINARY_DIR}:${QtGui_SOURCE_DIR}:${QtMaemo5_SOURCE_DIR}")
+
+# QT_QTMAEMO5_* variables are not defined by CMake
+if(NOT QT_QTMAEMO5_INCLUDE_DIR)
+ FIND_PATH(QT_QTMAEMO5_INCLUDE_DIR QtMaemo5
+ PATHS ${QT_HEADERS_DIR}/QtMaemo5 NO_DEFAULT_PATH)
+endif(NOT QT_QTMAEMO5_INCLUDE_DIR)
+if(NOT QT_QTMAEMO5_LIBRARY)
+ FIND_LIBRARY(QT_QTMAEMO5_LIBRARY QtMaemo5
+ PATHS ${QT_LIBRARY_DIR} NO_DEFAULT_PATH)
+endif(NOT QT_QTMAEMO5_LIBRARY)
+
+include_directories(${CMAKE_CURRENT_SOURCE_DIR}
+ ${QT_QTCORE_INCLUDE_DIR}
+ ${QT_QTGUI_INCLUDE_DIR}
+ ${QT_QTMAEMO5_INCLUDE_DIR}
+ ${PYTHON_INCLUDE_PATH}
+ ${SHIBOKEN_INCLUDE_DIR}
+ ${libpyside_SOURCE_DIR}
+ ${QtCore_BINARY_DIR}/${BINDING_NAME}/QtCore/
+ ${QtGui_BINARY_DIR}/${BINDING_NAME}/QtGui/
+ ${CMAKE_CURRENT_BINARY_DIR}/${BINDING_NAME}/QtMaemo5)
+add_library(QtMaemo5 MODULE ${QtMaemo5_SRC})
+
+set_target_properties(QtMaemo5 PROPERTIES
+ PREFIX "")
+
+target_link_libraries(QtMaemo5
+ pyside
+ ${PYTHON_LIBRARIES}
+ ${QT_QTCORE_LIBRARY}
+ ${QT_QTGUI_LIBRARY}
+ ${QT_QTMAEMO5_LIBRARY})
+
+#add_dependencies(QtMaemo5)
+
+# install
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/QtMaemo5.so
+ DESTINATION ${SITE_PACKAGE}/${BINDING_NAME})
+
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtMaemo5/pyside_qtmaemo5_python.h
+ DESTINATION include/${BINDING_NAME}/QtMaemo5/)
+
diff --git a/PySide/QtMaemo5/typesystem_maemo5.xml b/PySide/QtMaemo5/typesystem_maemo5.xml
new file mode 100644
index 000000000..283f939cb
--- /dev/null
+++ b/PySide/QtMaemo5/typesystem_maemo5.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+<typesystem package="PySide.QtMaemo5">
+ <load-typesystem name="typesystem_gui.xml" generate="no"/>
+
+ <enum-type name="QMaemo5ValueButton::ValueLayout"/>
+
+ <object-type name="QMaemo5AbstractPickSelector"/>
+ <object-type name="QMaemo5DatePickSelector"/>
+ <object-type name="QMaemo5EditBar"/>
+ <object-type name="QMaemo5InformationBox"/>
+ <object-type name="QMaemo5ListPickSelector"/>
+ <object-type name="QMaemo5TimePickSelector"/>
+ <object-type name="QMaemo5ValueButton"/>
+</typesystem>
diff --git a/PySide/global.h b/PySide/global.h
index 23acc79f1..cb94eef22 100644
--- a/PySide/global.h
+++ b/PySide/global.h
@@ -23,6 +23,7 @@
#include <QtScript/QtScript>
#include <QtScriptTools/QtScriptTools>
#include <QtMultimedia/QtMultimedia>
+#include <QtMaemo5/QtMaemo5>
// QT_GUI_LIB must be defined to QSqlRelationalDelegate become visible
#define QT_GUI_LIB
diff --git a/tests/qtmaemo5/qmaemo5import_test.py b/tests/qtmaemo5/qmaemo5import_test.py
new file mode 100644
index 000000000..a003f056a
--- /dev/null
+++ b/tests/qtmaemo5/qmaemo5import_test.py
@@ -0,0 +1,19 @@
+#!/usr/bin/python
+import unittest
+from PySide.QtMaemo5 import *
+from PySide import QtGui
+
+from helper import UsesQApplication
+
+class QtMamo5Test(UsesQApplication):
+
+ def testObjectCreate(self):
+ bar = QMaemo5EditBar()
+ self.assert_(isinstance(bar, QMaemo5EditBar))
+
+ def testGui(self):
+ getattr(QtGui, 'QAbstractKineticScroller')
+
+if __name__ == '__main__':
+ unittest.main()
+