Skip to content

Commit d32ee37

Browse files
committed
Hopefully last tweaks in context menu (#229) and optimization
1 parent 82c2449 commit d32ee37

File tree

2 files changed

+39
-51
lines changed

2 files changed

+39
-51
lines changed

manuskript/ui/views/outlineBasics.py

Lines changed: 39 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
class outlineBasics(QAbstractItemView):
1818
def __init__(self, parent=None):
1919
self._indexesToOpen = None
20+
self.menuCustomIcons = None
2021

2122
def getSelection(self):
2223
sel = []
@@ -112,8 +113,6 @@ def makePopupMenu(self):
112113
self.actPaste.triggered.connect(self.paste)
113114
menu.addAction(self.actPaste)
114115

115-
menu.addSeparator()
116-
117116
# Rename / duplicate / remove items
118117
self.actDelete = QAction(QIcon.fromTheme("edit-delete"),
119118
qApp.translate("outlineBasics", "&Delete"),
@@ -190,53 +189,50 @@ def makePopupMenu(self):
190189
menu.addSeparator()
191190

192191
# Custom icons
193-
self.menuCustomIcons = QMenu(qApp.translate("outlineBasics", "Set Custom Icon"), menu)
194-
a = QAction(qApp.translate("outlineBasics", "Restore to default"), self.menuCustomIcons)
195-
a.triggered.connect(lambda: self.setCustomIcon(""))
196-
self.menuCustomIcons.addAction(a)
197-
self.menuCustomIcons.addSeparator()
198-
199-
txt = QLineEdit()
200-
txt.textChanged.connect(self.filterLstIcons)
201-
txt.setPlaceholderText("Filter icons")
202-
txt.setStyleSheet("background: transparent; border: none;")
203-
act = QWidgetAction(self.menuCustomIcons)
204-
act.setDefaultWidget(txt)
205-
self.menuCustomIcons.addAction(act)
206-
207-
self.lstIcons = QListWidget()
208-
for i in customIcons():
209-
item = QListWidgetItem()
210-
item.setIcon(QIcon.fromTheme(i))
211-
item.setData(Qt.UserRole, i)
212-
item.setToolTip(i)
213-
self.lstIcons.addItem(item)
214-
self.lstIcons.itemClicked.connect(self.setCustomIconFromItem)
215-
self.lstIcons.setViewMode(self.lstIcons.IconMode)
216-
self.lstIcons.setUniformItemSizes(True)
217-
self.lstIcons.setResizeMode(self.lstIcons.Adjust)
218-
self.lstIcons.setMovement(self.lstIcons.Static)
219-
self.lstIcons.setStyleSheet("background: transparent; background: none;")
220-
self.filterLstIcons("")
221-
act = QWidgetAction(self.menuCustomIcons)
222-
act.setDefaultWidget(self.lstIcons)
223-
self.menuCustomIcons.addAction(act)
224-
225-
menu.addMenu(self.menuCustomIcons)
192+
if self.menuCustomIcons:
193+
menu.addMenu(self.menuCustomIcons)
194+
else:
195+
self.menuCustomIcons = QMenu(qApp.translate("outlineBasics", "Set Custom Icon"), menu)
196+
a = QAction(qApp.translate("outlineBasics", "Restore to default"), self.menuCustomIcons)
197+
a.triggered.connect(lambda: self.setCustomIcon(""))
198+
self.menuCustomIcons.addAction(a)
199+
self.menuCustomIcons.addSeparator()
200+
201+
txt = QLineEdit()
202+
txt.textChanged.connect(self.filterLstIcons)
203+
txt.setPlaceholderText("Filter icons")
204+
txt.setStyleSheet("background: transparent; border: none;")
205+
act = QWidgetAction(self.menuCustomIcons)
206+
act.setDefaultWidget(txt)
207+
self.menuCustomIcons.addAction(act)
208+
209+
self.lstIcons = QListWidget()
210+
for i in customIcons():
211+
item = QListWidgetItem()
212+
item.setIcon(QIcon.fromTheme(i))
213+
item.setData(Qt.UserRole, i)
214+
item.setToolTip(i)
215+
self.lstIcons.addItem(item)
216+
self.lstIcons.itemClicked.connect(self.setCustomIconFromItem)
217+
self.lstIcons.setViewMode(self.lstIcons.IconMode)
218+
self.lstIcons.setUniformItemSizes(True)
219+
self.lstIcons.setResizeMode(self.lstIcons.Adjust)
220+
self.lstIcons.setMovement(self.lstIcons.Static)
221+
self.lstIcons.setStyleSheet("background: transparent; background: none;")
222+
self.filterLstIcons("")
223+
act = QWidgetAction(self.menuCustomIcons)
224+
act.setDefaultWidget(self.lstIcons)
225+
self.menuCustomIcons.addAction(act)
226+
227+
menu.addMenu(self.menuCustomIcons)
226228

227229
# Disabling stuff
228-
if len(sel) > 0 and index.isValid() and not index.internalPointer().isFolder() \
229-
or not clipboard.mimeData().hasFormat("application/xml"):
230+
if not clipboard.mimeData().hasFormat("application/xml"):
230231
self.actPaste.setEnabled(False)
231232

232-
if len(sel) > 0 and index.isValid() and not index.internalPointer().isFolder():
233-
self.actAddFolder.setEnabled(False)
234-
self.actAddText.setEnabled(False)
235-
236233
if len(sel) == 0:
237234
self.actCopy.setEnabled(False)
238235
self.actCut.setEnabled(False)
239-
self.actDuplicate.setEnabled(False)
240236
self.actRename.setEnabled(False)
241237
self.actDelete.setEnabled(False)
242238
self.menuPOV.setEnabled(False)
@@ -298,7 +294,7 @@ def paste(self, mimeData=None):
298294
if len(self.getSelection()) == 0:
299295
index = self.rootIndex()
300296

301-
if mimeData is None:
297+
if not mimeData:
302298
mimeData = qApp.clipboard().mimeData()
303299

304300
self.model().dropMimeData(mimeData, Qt.CopyAction, -1, 0, index)

manuskript/ui/views/treeView.py

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -87,11 +87,3 @@ def collapseCurrentIndex(self, index=None):
8787
def dragMoveEvent(self, event):
8888
dndView.dragMoveEvent(self, event)
8989
QTreeView.dragMoveEvent(self, event)
90-
91-
def mousePressEvent(self, event):
92-
if event.button() == Qt.RightButton:
93-
# Capture mouse press so that selection doesn't change
94-
# on right click
95-
pass
96-
else:
97-
QTreeView.mousePressEvent(self, event)

0 commit comments

Comments
 (0)