- def _on_toggle_fullscreen(self, checked = False):
- for window in self._walk_children():
- window.set_fullscreen(checked)
-
- @misc_utils.log_exception(_moduleLogger)
- def _on_log(self, checked = False):
- with open(constants._user_logpath_, "r") as f:
- logLines = f.xreadlines()
- log = "".join(logLines)
- self._clipboard.setText(log)
-
- @misc_utils.log_exception(_moduleLogger)
- def _on_quit(self, checked = False):
- self._close_windows()
-
-
-class QErrorDisplay(object):
-
- def __init__(self):
- self._messages = []
-
- icon = QtGui.QIcon.fromTheme("gtk-dialog-error")
- self._severityIcon = icon.pixmap(32, 32)
- self._severityLabel = QtGui.QLabel()
- self._severityLabel.setPixmap(self._severityIcon)
-
- self._message = QtGui.QLabel()
- self._message.setText("Boo")
-
- icon = QtGui.QIcon.fromTheme("gtk-close")
- self._closeLabel = QtGui.QPushButton(icon, "")
- self._closeLabel.clicked.connect(self._on_close)
-
- self._controlLayout = QtGui.QHBoxLayout()
- self._controlLayout.addWidget(self._severityLabel)
- self._controlLayout.addWidget(self._message)
- self._controlLayout.addWidget(self._closeLabel)
-
- self._topLevelLayout = QtGui.QHBoxLayout()
- self._topLevelLayout.addLayout(self._controlLayout)
- self._hide_message()
-
- @property
- def toplevel(self):
- return self._topLevelLayout
-
- def push_message(self, message):
- self._messages.append(message)
- if 1 == len(self._messages):
- self._show_message(message)
-
- def push_exception(self):
- userMessage = str(sys.exc_info()[1])
- _moduleLogger.exception(userMessage)
- self.push_message(userMessage)
-
- def pop_message(self):
- del self._messages[0]
- if 0 == len(self._messages):
- self._hide_message()
- else:
- self._message.setText(self._messages[0])
-
- def _on_close(self, *args):
- self.pop_message()
-
- def _show_message(self, message):
- self._message.setText(message)
- self._severityLabel.show()
- self._message.show()
- self._closeLabel.show()
-
- def _hide_message(self):
- self._message.setText("")
- self._severityLabel.hide()
- self._message.hide()
- self._closeLabel.hide()