Adding support for PySide's handling of QString
[gc-dialer] / src / util / qt_compat.py
1 #!/usr/bin/env python
2
3 from __future__ import with_statement
4 from __future__ import division
5
6 try:
7         import PySide.QtCore as _QtCore
8         QtCore = _QtCore
9         USES_PYSIDE = True
10 except ImportError:
11         import sip
12         sip.setapi('QString', 2)
13         import PyQt4.QtCore as _QtCore
14         QtCore = _QtCore
15         USES_PYSIDE = False
16
17
18 def _pyside_import_module(moduleName):
19         pyside = __import__('PySide', globals(), locals(), [moduleName], -1)
20         return getattr(pyside, moduleName)
21
22
23 def _pyqt4_import_module(moduleName):
24         pyside = __import__('PyQt4', globals(), locals(), [moduleName], -1)
25         return getattr(pyside, moduleName)
26
27
28 if USES_PYSIDE:
29         import_module = _pyside_import_module
30
31         Signal = QtCore.Signal
32         Slot = QtCore.Slot
33         Property = QtCore.Property
34 else:
35         import_module = _pyqt4_import_module
36
37         Signal = QtCore.pyqtSignal
38         Slot = QtCore.pyqtSlot
39         Property = QtCore.pyqtProperty
40
41
42
43 if __name__ == "__main__":
44         pass
45