From 82c24498bbe8267cbdf04870cfaeaacaed8cad34 Mon Sep 17 00:00:00 2001 From: Olivier Keshavjee Date: Wed, 29 Nov 2017 10:24:07 +0100 Subject: [PATCH 1/2] Tweaks Context menu to mirror Edit menu #229 --- manuskript/ui/views/outlineBasics.py | 28 +++++++++++----------------- 1 file changed, 11 insertions(+), 17 deletions(-) diff --git a/manuskript/ui/views/outlineBasics.py b/manuskript/ui/views/outlineBasics.py index a3260e7..5fcb80d 100644 --- a/manuskript/ui/views/outlineBasics.py +++ b/manuskript/ui/views/outlineBasics.py @@ -97,16 +97,16 @@ 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) @@ -115,24 +115,18 @@ class outlineBasics(QAbstractItemView): 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 From d32ee37e84b4e7e3732f75eb36fbe52c77e8171a Mon Sep 17 00:00:00 2001 From: Olivier Keshavjee Date: Wed, 29 Nov 2017 23:16:01 +0100 Subject: [PATCH 2/2] Hopefully last tweaks in context menu (#229) and optimization --- manuskript/ui/views/outlineBasics.py | 76 +++++++++++++--------------- manuskript/ui/views/treeView.py | 8 --- 2 files changed, 36 insertions(+), 48 deletions(-) diff --git a/manuskript/ui/views/outlineBasics.py b/manuskript/ui/views/outlineBasics.py index 5fcb80d..1a27bd6 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 = [] @@ -112,8 +113,6 @@ class outlineBasics(QAbstractItemView): self.actPaste.triggered.connect(self.paste) menu.addAction(self.actPaste) - menu.addSeparator() - # Rename / duplicate / remove items self.actDelete = QAction(QIcon.fromTheme("edit-delete"), qApp.translate("outlineBasics", "&Delete"), @@ -190,53 +189,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) @@ -298,7 +294,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 4e28d1c..df0d641 100644 --- a/manuskript/ui/views/treeView.py +++ b/manuskript/ui/views/treeView.py @@ -87,11 +87,3 @@ class treeView(QTreeView, dndView, outlineBasics): def dragMoveEvent(self, event): 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)