From d033a59224abb8574068929ada7ef24c96d299b4 Mon Sep 17 00:00:00 2001 From: Ed Page Date: Tue, 15 Mar 2011 19:03:20 -0500 Subject: [PATCH] Applying various optimizations --- src/dialcentral_qt.py | 6 ++++-- src/util/qui_utils.py | 48 ++++++++++++++++++++++++++---------------------- src/util/qwrappers.py | 6 +++++- 3 files changed, 35 insertions(+), 25 deletions(-) diff --git a/src/dialcentral_qt.py b/src/dialcentral_qt.py index a41676a..b30c5e0 100755 --- a/src/dialcentral_qt.py +++ b/src/dialcentral_qt.py @@ -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): diff --git a/src/util/qui_utils.py b/src/util/qui_utils.py index 9e33f88..66ac791 100644 --- a/src/util/qui_utils.py +++ b/src/util/qui_utils.py @@ -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]) diff --git a/src/util/qwrappers.py b/src/util/qwrappers.py index 2add98c..cc458bf 100644 --- a/src/util/qwrappers.py +++ b/src/util/qwrappers.py @@ -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() -- 1.7.9.5