Skip to content

Commit

Permalink
Hopefully last tweaks in context menu (#229) and optimization
Browse files Browse the repository at this point in the history
  • Loading branch information
olivierkes committed Nov 29, 2017
1 parent 82c2449 commit d32ee37
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 51 deletions.
82 changes: 39 additions & 43 deletions manuskript/ui/views/outlineBasics.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
class outlineBasics(QAbstractItemView):
def __init__(self, parent=None):
self._indexesToOpen = None
self.menuCustomIcons = None

def getSelection(self):
sel = []
Expand Down Expand Up @@ -112,8 +113,6 @@ def makePopupMenu(self):
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"),
Expand Down Expand Up @@ -190,53 +189,50 @@ def makePopupMenu(self):
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()

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)

menu.addMenu(self.menuCustomIcons)
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)

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)

# 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)
Expand Down Expand Up @@ -298,7 +294,7 @@ def paste(self, mimeData=None):
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)
Expand Down
8 changes: 0 additions & 8 deletions manuskript/ui/views/treeView.py
Original file line number Diff line number Diff line change
Expand Up @@ -87,11 +87,3 @@ def collapseCurrentIndex(self, index=None):
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)

0 comments on commit d32ee37

Please sign in to comment.