From bbf8360b91ba3712efb1ed67b221984ba3709308 Mon Sep 17 00:00:00 2001 From: Olivier Keshavjee Date: Tue, 30 Jun 2015 10:29:08 +0200 Subject: [PATCH] Avoid error when moving indexes opened in tabs --- src/mainWindow.py | 4 ++-- src/ui/editors/editorWidget.py | 10 ++++++++++ src/ui/editors/mainEditor.py | 8 +------- src/ui/views/textEditView.py | 2 +- 4 files changed, 14 insertions(+), 10 deletions(-) diff --git a/src/mainWindow.py b/src/mainWindow.py index aad0e468..d8f4368e 100644 --- a/src/mainWindow.py +++ b/src/mainWindow.py @@ -863,8 +863,8 @@ class MainWindow(QMainWindow, Ui_MainWindow): self.splitterOutlineV.setStretchFactor(0, 75) self.splitterOutlineV.setStretchFactor(1, 25) - self.splitterRedac.setStretchFactor(0, 20) - self.splitterRedac.setStretchFactor(1, 60) + self.splitterRedac.setStretchFactor(0, 30) + self.splitterRedac.setStretchFactor(1, 50) self.splitterRedac.setStretchFactor(2, 20) # Help box diff --git a/src/ui/editors/editorWidget.py b/src/ui/editors/editorWidget.py index 4fdccfc1..16df68cd 100644 --- a/src/ui/editors/editorWidget.py +++ b/src/ui/editors/editorWidget.py @@ -19,6 +19,7 @@ class editorWidget(QWidget, Ui_editorWidget_ui): QWidget.__init__(self, parent) self.setupUi(self) self.currentIndex = QModelIndex() + self.currentID = None self.txtEdits = [] self.scroll.setBackgroundRole(QPalette.Base) self.toggledSpellcheck.connect(self.txtRedacText.toggleSpellcheck, AUC) @@ -196,13 +197,22 @@ class editorWidget(QWidget, Ui_editorWidget_ui): def setCurrentModelIndex(self, index=None): if index.isValid(): self.currentIndex = index + self.currentID = self.mw.mdlOutline.ID(index) #self._model = index.model() else: self.currentIndex = QModelIndex() self.setView() + + def updateIndexFromID(self): + idx = self.mw.mdlOutline.getIndexByID(self.currentID) + if idx != self.currentIndex: + self.currentIndex = idx + self.setView() def modelDataChanged(self, topLeft, bottomRight): + if self.currentID: + self.updateIndexFromID() if not self.currentIndex: return if topLeft.row() <= self.currentIndex.row() <= bottomRight.row(): diff --git a/src/ui/editors/mainEditor.py b/src/ui/editors/mainEditor.py index fb4805b1..741435ae 100644 --- a/src/ui/editors/mainEditor.py +++ b/src/ui/editors/mainEditor.py @@ -87,6 +87,7 @@ class mainEditor(QWidget, Ui_mainEditor): if len(self.mw.treeRedacOutline.selectionModel(). selection().indexes()) == 0: hidden = False + idx = QModelIndex() else: idx = self.mw.treeRedacOutline.currentIndex() @@ -121,10 +122,6 @@ class mainEditor(QWidget, Ui_mainEditor): self.currentEditor().setCurrentModelIndex(index) self.tab.setTabText(self.tab.currentIndex(), title) - #FIXME: check if tab is already open - - #self.redacEditor.txtRedacText.setCurrentModelIndex - #FIXME ############################################################################### # UI @@ -182,11 +179,8 @@ class mainEditor(QWidget, Ui_mainEditor): ############################################################################### def setFolderView(self, view): - #FIXME if self.currentEditor(): self.currentEditor().setFolderView(view) - pass - #self.redacEditor.setFolderView(settings.folderView) def setCorkSizeFactor(self, val): for w in self.allTabs(): diff --git a/src/ui/views/textEditView.py b/src/ui/views/textEditView.py index ecd94822..a9bec30e 100644 --- a/src/ui/views/textEditView.py +++ b/src/ui/views/textEditView.py @@ -76,7 +76,7 @@ class textEditView(QTextEdit): self.spellcheck = False if self._highlighting and not self.highlighter: - self.highlighter = t2tHighlighter(self) + self.highlighter = basicHighlighter(self) self.highlighter.setDefaultBlockFormat(self._defaultBlockFormat) def setModel(self, model):