diff --git a/src/main.py b/src/main.py index 96d065ee..1a02a0dd 100644 --- a/src/main.py +++ b/src/main.py @@ -5,6 +5,9 @@ from qt import * _version = "0.1" +import faulthandler +faulthandler.enable() + def run(): app = QApplication(sys.argv) app.setOrganizationName("manuskript") @@ -33,7 +36,8 @@ def run(): style = settings.value("applicationStyle") app.setStyle(style) - launch() + launch() # Seperating launch to avoid segfault, so it seem. + # Cf. http://stackoverflow.com/questions/12433491/is-this-pyqt-4-python-bug-or-wrongly-behaving-code def launch(): from mainWindow import MainWindow diff --git a/src/mainWindow.py b/src/mainWindow.py index 88b8d65f..3b62059a 100644 --- a/src/mainWindow.py +++ b/src/mainWindow.py @@ -230,6 +230,7 @@ class MainWindow(QMainWindow, Ui_MainWindow): self.treePlanOutline.setModelPersos(self.mdlPersos) self.treePlanOutline.setModelLabels(self.mdlLabels) self.treePlanOutline.setModelStatus(self.mdlStatus) + self.redacMetadata.setModels(self.mdlOutline, self.mdlPersos, self.mdlLabels, self.mdlStatus) self.outlineItemEditor.setModels(self.mdlOutline, self.mdlPersos, self.mdlLabels, self.mdlStatus) diff --git a/src/ui/views/cmbOutlinePersoChoser.py b/src/ui/views/cmbOutlinePersoChoser.py index d715f6b8..372006d7 100644 --- a/src/ui/views/cmbOutlinePersoChoser.py +++ b/src/ui/views/cmbOutlinePersoChoser.py @@ -28,9 +28,11 @@ class cmbOutlinePersoChoser(QComboBox): self.addItem(QIcon.fromTheme("edit-delete"), self.tr("None")) l = [self.tr("Main"), self.tr("Secondary"), self.tr("Minor")] + for importance in range(3): self.addItem(l[importance]) - self.setItemData(self.count()-1, QBrush(Qt.darkBlue), Qt.ForegroundRole) + # FIXME: segfault sometimes on QBrush next line + self.setItemData(self.count()-1, QBrush(QColor(Qt.darkBlue)), Qt.ForegroundRole) self.setItemData(self.count()-1, QBrush(QColor(Qt.blue).lighter(190)), Qt.BackgroundRole) item = self.model().item(self.count()-1) item.setFlags(Qt.ItemIsEnabled) @@ -41,12 +43,14 @@ class cmbOutlinePersoChoser(QComboBox): else: imp = 0 if not 2-imp == importance: continue + + item = self.mdlPersos.item(i, Perso.name.value) + item2 = self.mdlPersos.item(i, Perso.ID.value) + + if item and item2: # Otherwise error while loading + self.addItem(item.icon(), item.text(), item2.text()) + self.setItemData(i+1, item.text(), Qt.ToolTipRole) - try: - self.addItem(self.mdlPersos.item(i, Perso.name.value).icon(), self.mdlPersos.item(i, Perso.name.value).text(), self.mdlPersos.item(i, Perso.ID.value).text()) - self.setItemData(i+1, self.mdlPersos.item(i, Perso.name.value).text(), Qt.ToolTipRole) - except: - pass self._various = False