diff --git a/manuskript/ui/views/metadataView.py b/manuskript/ui/views/metadataView.py index 4e45423a..81a9707f 100644 --- a/manuskript/ui/views/metadataView.py +++ b/manuskript/ui/views/metadataView.py @@ -1,6 +1,7 @@ #!/usr/bin/env python # --!-- coding: utf8 --!-- from PyQt5.QtWidgets import QWidget, QAbstractItemView +from PyQt5.QtCore import QModelIndex from manuskript.enums import Outline from manuskript.ui.views.metadataView_ui import Ui_metadataView @@ -52,24 +53,45 @@ class metadataView(QWidget, Ui_metadataView): if self._lastIndexes == indexes: return + # No item selected if len(indexes) == 0: self.setEnabled(False) self.revisions.setEnabled(False) + # One item selected elif len(indexes) == 1: self.setEnabled(True) idx = indexes[0] + self.txtSummarySentence.setEnabled(True) + self.txtSummaryFull.setEnabled(True) + self.txtNotes.setEnabled(True) self.txtSummarySentence.setCurrentModelIndex(idx) self.txtSummaryFull.setCurrentModelIndex(idx) self.txtNotes.setCurrentModelIndex(idx) self.revisions.setEnabled(True) self.revisions.setCurrentModelIndex(idx) + # Multiple items selected else: self.setEnabled(True) - self.txtSummarySentence.setCurrentModelIndexes(indexes) - self.txtSummaryFull.setCurrentModelIndexes(indexes) - self.txtNotes.setCurrentModelIndexes(indexes) + + # Behavior 1: + # We disable the text areas when multiple indexes are selected + self.txtSummarySentence.setEnabled(False) + self.txtSummaryFull.setEnabled(False) + self.txtNotes.setEnabled(False) + self.txtSummarySentence.setCurrentModelIndex(QModelIndex()) + self.txtSummaryFull.setCurrentModelIndex(QModelIndex()) + self.txtNotes.setCurrentModelIndex(QModelIndex()) + + # Behavior 2: + # Allow edition of multiple indexes. + # Bug: Multiple selections of items sometimes gets Notes/references + # field to be ereased. See #10 on github. + #self.txtSummarySentence.setCurrentModelIndexes(indexes) + #self.txtSummaryFull.setCurrentModelIndexes(indexes) + #self.txtNotes.setCurrentModelIndexes(indexes) + self.revisions.setEnabled(False) self.properties.selectionChanged(selectionModel) diff --git a/manuskript/ui/views/textEditView.py b/manuskript/ui/views/textEditView.py index c81349aa..5e3a1973 100644 --- a/manuskript/ui/views/textEditView.py +++ b/manuskript/ui/views/textEditView.py @@ -299,7 +299,7 @@ class textEditView(QTextEdit): if self._updating: return # print("Submitting", self.objectName()) - if self._index: + if self._index and self._index.isValid(): # item = self._index.internalPointer() if self.toPlainText() != self._model.data(self._index): # print(" Submitting plain text")