def __init__(self, scene): QListView.__init__(self) self.scene = scene decorateWindow(self, i18n('Explain Scores').replace('&', '')) self.setGeometry(0, 0, 300, 400) self.model = QStringListModel() self.setModel(self.model) StateSaver(self) self.refresh()
def __init__(self, parent=None): super(ErrorMessageDialog, self).__init__(parent) self.ui = Ui_ErrorMessageDialog() self.ui.setupUi(self) self.model = QStringListModel(self) self.ui.listView.setModel(self.model)
class ExplainView(QListView): """show a list explaining all score computations""" def __init__(self, scene): QListView.__init__(self) self.scene = scene decorateWindow(self, i18n('Explain Scores').replace('&', '')) self.setGeometry(0, 0, 300, 400) self.model = QStringListModel() self.setModel(self.model) StateSaver(self) self.refresh() @property def game(self): """a proxy""" return self.scene.game def refresh(self): """refresh for new values""" lines = [] if self.game is None: lines.append(i18n('There is no active game')) else: i18nName = i18n(self.game.ruleset.name) lines.append(i18n('%1', i18nName)) lines.append('') for player in self.game.players: pLines = [] explainHand = player.explainHand() if explainHand.hasTiles(): total = explainHand.total() if total: pLines = ['%s - %s' % (player.localName, total)] for line in explainHand.explain(): pLines.append('- ' + line) elif player.handTotal: pLines.append( i18n('Manual score for %1: %2 points', player.localName, player.handTotal)) if pLines: pLines.append('') lines.extend(pLines) if 'xxx'.join(lines) != 'xxx'.join( str(x) for x in self.model.stringList()): # TODO: ohne? # QStringListModel does not optimize identical lists away, so we do self.model.setStringList(lines)
class ExplainView(QListView): """show a list explaining all score computations""" def __init__(self, scene): QListView.__init__(self) self.scene = scene decorateWindow(self, m18n("Explain Scores").replace("&", "")) self.setGeometry(0, 0, 300, 400) self.model = QStringListModel() self.setModel(self.model) StateSaver(self) self.refresh() @property def game(self): """a proxy""" return self.scene.game def refresh(self): """refresh for new values""" lines = [] if self.game is None: lines.append(m18n("There is no active game")) else: i18nName = m18n(self.game.ruleset.name) lines.append(m18n("%1", i18nName)) lines.append("") for player in self.game.players: pLines = [] explainHand = player.explainHand() if explainHand.hasTiles(): total = explainHand.total() if total: pLines = ["%s - %s" % (player.localName, total)] for line in explainHand.explain(): pLines.append("- " + line) elif player.handTotal: pLines.append(m18n("Manual score for %1: %2 points", player.localName, player.handTotal)) if pLines: pLines.append("") lines.extend(pLines) if "xxx".join(lines) != "xxx".join(unicode(x) for x in self.model.stringList()): # QStringListModel does not optimize identical lists away, so we do self.model.setStringList(lines)
def __init__(self, scene): QListView.__init__(self) self.scene = scene decorateWindow(self, m18n("Explain Scores").replace("&", "")) self.setGeometry(0, 0, 300, 400) self.model = QStringListModel() self.setModel(self.model) StateSaver(self) self.refresh()
class ErrorMessageDialog(QDialog): def __init__(self, parent=None): super(ErrorMessageDialog, self).__init__(parent) self.ui = Ui_ErrorMessageDialog() self.ui.setupUi(self) self.model = QStringListModel(self) self.ui.listView.setModel(self.model) @pyqtSlot(QAbstractButton) def on_buttonBox_clicked(self, button): if button == self.ui.buttonBox.button(QDialogButtonBox.Close): self.close() elif button == self.ui.buttonBox.button(QDialogButtonBox.Reset): self.model.setStringList([]) @pyqtSlot(QString) def appendMessage(self, msg): strs = self.model.stringList() strs.append(msg) self.model.setStringList(strs)