Bump to 1.1.5
[gonvert] / gonvert / util / qml_utils.py
1 #!/usr/bin/env python
2
3 """
4 QML Tips:
5         Large images:
6                 QML asynchronous = true; cache = false; [1]
7         Insert properties at top of element declarations [1]
8         Non-visible items: set opacity to 0 [2]
9         Use Loader [1]
10         Keep QML files small [1]
11
12 [1] http://sf2011.meego.com/program/sessions/performance-tips-and-tricks-qtqml-applications-0
13 [2] http://doc.qt.nokia.com/4.7/qdeclarativeperformance.html
14 """
15
16 from __future__ import with_statement
17 from __future__ import division
18
19 import logging
20
21 import util.qt_compat as qt_compat
22 QtCore = qt_compat.QtCore
23 QtGui = qt_compat.import_module("QtGui")
24 QtDeclarative = qt_compat.import_module("QtDeclarative")
25
26
27 _moduleLogger = logging.getLogger(__name__)
28
29
30 class DeclarativeView(QtDeclarative.QDeclarativeView):
31
32         def __init__(self):
33                 QtDeclarative.QDeclarativeView.__init__(self)
34
35         closing = qt_compat.Signal()
36
37         def closeEvent(self, event):
38                 self.closing.emit()
39                 event.ignore()
40
41
42 def disable_default_window_painting(view):
43         """
44         See http://doc.qt.nokia.com/4.7-snapshot/qdeclarativeperformance.html
45         """
46         view.setAttribute(QtCore.Qt.WA_OpaquePaintEvent)
47         view.setAttribute(QtCore.Qt.WA_NoSystemBackground)
48         view.viewport().setAttribute(QtCore.Qt.WA_OpaquePaintEvent)
49         view.viewport().setAttribute(QtCore.Qt.WA_NoSystemBackground)
50
51
52 if __name__ == "__main__":
53         pass
54