diff --git a/manuskript/ui/views/outlineBasics.py b/manuskript/ui/views/outlineBasics.py index 3b089ea..9e32663 100644 --- a/manuskript/ui/views/outlineBasics.py +++ b/manuskript/ui/views/outlineBasics.py @@ -17,6 +17,7 @@ from manuskript.ui.tools.splitDialog import splitDialog class outlineBasics(QAbstractItemView): def __init__(self, parent=None): self._indexesToOpen = None + self.menuCustomIcons = None def getSelection(self): sel = [] @@ -99,42 +100,34 @@ class outlineBasics(QAbstractItemView): menu.addSeparator() # Copy, cut, paste, duplicate - self.actCopy = QAction(QIcon.fromTheme("edit-copy"), - qApp.translate("outlineBasics", "&Copy"), menu) - self.actCopy.triggered.connect(self.copy) - menu.addAction(self.actCopy) - self.actCut = QAction(QIcon.fromTheme("edit-cut"), qApp.translate("outlineBasics", "C&ut"), menu) self.actCut.triggered.connect(self.cut) menu.addAction(self.actCut) + self.actCopy = QAction(QIcon.fromTheme("edit-copy"), + qApp.translate("outlineBasics", "&Copy"), menu) + self.actCopy.triggered.connect(self.copy) + menu.addAction(self.actCopy) + self.actPaste = QAction(QIcon.fromTheme("edit-paste"), qApp.translate("outlineBasics", "&Paste"), menu) self.actPaste.triggered.connect(self.paste) menu.addAction(self.actPaste) - menu.addSeparator() - # Rename / duplicate / remove items - self.actRename = QAction(QIcon.fromTheme("edit-rename"), - qApp.translate("outlineBasics", "&Rename"), - menu) - self.actRename.triggered.connect(self.rename) - menu.addAction(self.actRename) - - self.actDuplicate = QAction(QIcon.fromTheme("folder-copy"), - qApp.translate("outlineBasics", "Dup&licate"), - menu) - self.actDuplicate.triggered.connect(self.duplicate) - menu.addAction(self.actDuplicate) - self.actDelete = QAction(QIcon.fromTheme("edit-delete"), qApp.translate("outlineBasics", "&Delete"), menu) self.actDelete.triggered.connect(self.delete) menu.addAction(self.actDelete) + self.actRename = QAction(QIcon.fromTheme("edit-rename"), + qApp.translate("outlineBasics", "&Rename"), + menu) + self.actRename.triggered.connect(self.rename) + menu.addAction(self.actRename) + menu.addSeparator() # POV @@ -198,53 +191,50 @@ class outlineBasics(QAbstractItemView): menu.addSeparator() # Custom icons - self.menuCustomIcons = QMenu(qApp.translate("outlineBasics", "Set Custom Icon"), menu) - a = QAction(qApp.translate("outlineBasics", "Restore to default"), self.menuCustomIcons) - a.triggered.connect(lambda: self.setCustomIcon("")) - self.menuCustomIcons.addAction(a) - self.menuCustomIcons.addSeparator() + if self.menuCustomIcons: + menu.addMenu(self.menuCustomIcons) + else: + self.menuCustomIcons = QMenu(qApp.translate("outlineBasics", "Set Custom Icon"), menu) + a = QAction(qApp.translate("outlineBasics", "Restore to default"), self.menuCustomIcons) + a.triggered.connect(lambda: self.setCustomIcon("")) + self.menuCustomIcons.addAction(a) + self.menuCustomIcons.addSeparator() - txt = QLineEdit() - txt.textChanged.connect(self.filterLstIcons) - txt.setPlaceholderText("Filter icons") - txt.setStyleSheet("background: transparent; border: none;") - act = QWidgetAction(self.menuCustomIcons) - act.setDefaultWidget(txt) - self.menuCustomIcons.addAction(act) + txt = QLineEdit() + txt.textChanged.connect(self.filterLstIcons) + txt.setPlaceholderText("Filter icons") + txt.setStyleSheet("background: transparent; border: none;") + act = QWidgetAction(self.menuCustomIcons) + act.setDefaultWidget(txt) + self.menuCustomIcons.addAction(act) - self.lstIcons = QListWidget() - for i in customIcons(): - item = QListWidgetItem() - item.setIcon(QIcon.fromTheme(i)) - item.setData(Qt.UserRole, i) - item.setToolTip(i) - self.lstIcons.addItem(item) - self.lstIcons.itemClicked.connect(self.setCustomIconFromItem) - self.lstIcons.setViewMode(self.lstIcons.IconMode) - self.lstIcons.setUniformItemSizes(True) - self.lstIcons.setResizeMode(self.lstIcons.Adjust) - self.lstIcons.setMovement(self.lstIcons.Static) - self.lstIcons.setStyleSheet("background: transparent; background: none;") - self.filterLstIcons("") - act = QWidgetAction(self.menuCustomIcons) - act.setDefaultWidget(self.lstIcons) - self.menuCustomIcons.addAction(act) + self.lstIcons = QListWidget() + for i in customIcons(): + item = QListWidgetItem() + item.setIcon(QIcon.fromTheme(i)) + item.setData(Qt.UserRole, i) + item.setToolTip(i) + self.lstIcons.addItem(item) + self.lstIcons.itemClicked.connect(self.setCustomIconFromItem) + self.lstIcons.setViewMode(self.lstIcons.IconMode) + self.lstIcons.setUniformItemSizes(True) + self.lstIcons.setResizeMode(self.lstIcons.Adjust) + self.lstIcons.setMovement(self.lstIcons.Static) + self.lstIcons.setStyleSheet("background: transparent; background: none;") + self.filterLstIcons("") + act = QWidgetAction(self.menuCustomIcons) + act.setDefaultWidget(self.lstIcons) + self.menuCustomIcons.addAction(act) - menu.addMenu(self.menuCustomIcons) + menu.addMenu(self.menuCustomIcons) # Disabling stuff - if len(sel) > 0 and index.isValid() and not index.internalPointer().isFolder() \ - or not clipboard.mimeData().hasFormat("application/xml"): + if not clipboard.mimeData().hasFormat("application/xml"): self.actPaste.setEnabled(False) - if len(sel) > 0 and index.isValid() and not index.internalPointer().isFolder(): - self.actAddFolder.setEnabled(False) - self.actAddText.setEnabled(False) - if len(sel) == 0: self.actCopy.setEnabled(False) self.actCut.setEnabled(False) - self.actDuplicate.setEnabled(False) self.actRename.setEnabled(False) self.actDelete.setEnabled(False) self.menuPOV.setEnabled(False) @@ -306,7 +296,7 @@ class outlineBasics(QAbstractItemView): if len(self.getSelection()) == 0: index = self.rootIndex() - if mimeData is None: + if not mimeData: mimeData = qApp.clipboard().mimeData() self.model().dropMimeData(mimeData, Qt.CopyAction, -1, 0, index) diff --git a/manuskript/ui/views/treeView.py b/manuskript/ui/views/treeView.py index aafaca8..3fa7271 100644 --- a/manuskript/ui/views/treeView.py +++ b/manuskript/ui/views/treeView.py @@ -90,14 +90,6 @@ class treeView(QTreeView, dndView, outlineBasics): dndView.dragMoveEvent(self, event) QTreeView.dragMoveEvent(self, event) - def mousePressEvent(self, event): - if event.button() == Qt.RightButton: - # Capture mouse press so that selection doesn't change - # on right click - pass - else: - QTreeView.mousePressEvent(self, event) - def mouseReleaseEvent(self, event): QTreeView.mouseReleaseEvent(self, event) outlineBasics.mouseReleaseEvent(self, event)