Applying various optimizations
authorEd Page <eopage@byu.net>
Wed, 16 Mar 2011 00:03:20 +0000 (19:03 -0500)
committerEd Page <eopage@byu.net>
Tue, 19 Apr 2011 23:49:27 +0000 (18:49 -0500)
src/dialcentral_qt.py
src/util/qui_utils.py
src/util/qwrappers.py

index a41676a..b30c5e0 100755 (executable)
@@ -15,7 +15,6 @@ from PyQt4 import QtCore
 
 import constants
 import alarm_handler
-import led_handler
 from util import qtpie
 from util import qwrappers
 from util import qui_utils
@@ -41,7 +40,7 @@ class Dialcentral(qwrappers.ApplicationWrapper):
                self.notifyOnVoicemail = False
                self.notifyOnSms = False
 
-               self._ledHandler = led_handler.LedHandler()
+               self._ledHandler = None
                self._alarmHandler = alarm_handler.AlarmHandler()
 
                qwrappers.ApplicationWrapper.__init__(self, app, constants)
@@ -185,6 +184,9 @@ class Dialcentral(qwrappers.ApplicationWrapper):
 
        @property
        def ledHandler(self):
+               if self._ledHandler is None:
+                       import led_handler
+                       self._ledHandler = led_handler.LedHandler()
                return self._ledHandler
 
        def _new_main_window(self):
index 9e33f88..66ac791 100644 (file)
@@ -113,21 +113,7 @@ class ErrorDisplay(object):
                self._errorLog.messagePushed.connect(self._on_message_pushed)
                self._errorLog.messagePopped.connect(self._on_message_popped)
 
-               self._icons = {
-                       ErrorMessage.LEVEL_BUSY:
-                               get_theme_icon(
-                                       #("process-working", "view-refresh", "general_refresh", "gtk-refresh")
-                                       ("view-refresh", "general_refresh", "gtk-refresh", )
-                               ).pixmap(32, 32),
-                       ErrorMessage.LEVEL_INFO:
-                               get_theme_icon(
-                                       ("dialog-information", "general_notes", "gtk-info")
-                               ).pixmap(32, 32),
-                       ErrorMessage.LEVEL_ERROR:
-                               get_theme_icon(
-                                       ("dialog-error", "app_install_error", "gtk-dialog-error")
-                               ).pixmap(32, 32),
-               }
+               self._icons = None
                self._severityLabel = QtGui.QLabel()
                self._severityLabel.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter)
 
@@ -136,17 +122,11 @@ class ErrorDisplay(object):
                self._message.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter)
                self._message.setWordWrap(True)
 
-               closeIcon = get_theme_icon(("window-close", "general_close", "gtk-close"), self._SENTINEL_ICON)
-               if closeIcon is not self._SENTINEL_ICON:
-                       self._closeLabel = QtGui.QPushButton(closeIcon, "")
-               else:
-                       self._closeLabel = QtGui.QPushButton("X")
-               self._closeLabel.clicked.connect(self._on_close)
+               self._closeLabel = None
 
                self._controlLayout = QtGui.QHBoxLayout()
                self._controlLayout.addWidget(self._severityLabel, 1, QtCore.Qt.AlignCenter)
                self._controlLayout.addWidget(self._message, 1000)
-               self._controlLayout.addWidget(self._closeLabel, 1, QtCore.Qt.AlignCenter)
 
                self._widget = QtGui.QWidget()
                self._widget.setLayout(self._controlLayout)
@@ -157,6 +137,30 @@ class ErrorDisplay(object):
                return self._widget
 
        def _show_error(self):
+               if self._icons is None:
+                       self._icons = {
+                               ErrorMessage.LEVEL_BUSY:
+                                       get_theme_icon(
+                                               #("process-working", "view-refresh", "general_refresh", "gtk-refresh")
+                                               ("view-refresh", "general_refresh", "gtk-refresh", )
+                                       ).pixmap(32, 32),
+                               ErrorMessage.LEVEL_INFO:
+                                       get_theme_icon(
+                                               ("dialog-information", "general_notes", "gtk-info")
+                                       ).pixmap(32, 32),
+                               ErrorMessage.LEVEL_ERROR:
+                                       get_theme_icon(
+                                               ("dialog-error", "app_install_error", "gtk-dialog-error")
+                                       ).pixmap(32, 32),
+                       }
+               if self._closeLabel is None:
+                       closeIcon = get_theme_icon(("window-close", "general_close", "gtk-close"), self._SENTINEL_ICON)
+                       if closeIcon is not self._SENTINEL_ICON:
+                               self._closeLabel = QtGui.QPushButton(closeIcon, "")
+                       else:
+                               self._closeLabel = QtGui.QPushButton("X")
+                       self._closeLabel.clicked.connect(self._on_close)
+                       self._controlLayout.addWidget(self._closeLabel, 1, QtCore.Qt.AlignCenter)
                error = self._errorLog.peek_message()
                self._message.setText(error.message)
                self._severityLabel.setPixmap(self._icons[error.level])
index 2add98c..cc458bf 100644 (file)
@@ -61,7 +61,7 @@ class ApplicationWrapper(object):
                self._idleDelay = QtCore.QTimer()
                self._idleDelay.setSingleShot(True)
                self._idleDelay.setInterval(0)
-               self._idleDelay.timeout.connect(lambda: self._mainWindow.start())
+               self._idleDelay.timeout.connect(self._on_delayed_start)
                self._idleDelay.start()
 
        def load_settings(self):
@@ -113,6 +113,10 @@ class ApplicationWrapper(object):
                        self._mainWindow = None
 
        @misc_utils.log_exception(_moduleLogger)
+       def _on_delayed_start(self):
+               self._mainWindow.start()
+
+       @misc_utils.log_exception(_moduleLogger)
        def _on_app_quit(self, checked = False):
                if self._mainWindow is not None:
                        self.save_settings()