Adding support for PySide's handling of QVariant
[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         sip.setapi('QVariant', 2)
14         import PyQt4.QtCore as _QtCore
15         QtCore = _QtCore
16         USES_PYSIDE = False
17
18
19 def _pyside_import_module(moduleName):
20         pyside = __import__('PySide', globals(), locals(), [moduleName], -1)
21         return getattr(pyside, moduleName)
22
23
24 def _pyqt4_import_module(moduleName):
25         pyside = __import__('PyQt4', globals(), locals(), [moduleName], -1)
26         return getattr(pyside, moduleName)
27
28
29 if USES_PYSIDE:
30         import_module = _pyside_import_module
31
32         Signal = QtCore.Signal
33         Slot = QtCore.Slot
34         Property = QtCore.Property
35 else:
36         import_module = _pyqt4_import_module
37
38         Signal = QtCore.pyqtSignal
39         Slot = QtCore.pyqtSlot
40         Property = QtCore.pyqtProperty
41
42
43 if __name__ == "__main__":
44         pass
45