mirror of
https://github.com/olivierkes/manuskript.git
synced 2024-06-14 17:04:33 +12:00
Hopefully last tweaks in context menu (#229) and optimization
This commit is contained in:
parent
82c24498bb
commit
d32ee37e84
|
@ -17,6 +17,7 @@ from manuskript.ui.tools.splitDialog import splitDialog
|
||||||
class outlineBasics(QAbstractItemView):
|
class outlineBasics(QAbstractItemView):
|
||||||
def __init__(self, parent=None):
|
def __init__(self, parent=None):
|
||||||
self._indexesToOpen = None
|
self._indexesToOpen = None
|
||||||
|
self.menuCustomIcons = None
|
||||||
|
|
||||||
def getSelection(self):
|
def getSelection(self):
|
||||||
sel = []
|
sel = []
|
||||||
|
@ -112,8 +113,6 @@ class outlineBasics(QAbstractItemView):
|
||||||
self.actPaste.triggered.connect(self.paste)
|
self.actPaste.triggered.connect(self.paste)
|
||||||
menu.addAction(self.actPaste)
|
menu.addAction(self.actPaste)
|
||||||
|
|
||||||
menu.addSeparator()
|
|
||||||
|
|
||||||
# Rename / duplicate / remove items
|
# Rename / duplicate / remove items
|
||||||
self.actDelete = QAction(QIcon.fromTheme("edit-delete"),
|
self.actDelete = QAction(QIcon.fromTheme("edit-delete"),
|
||||||
qApp.translate("outlineBasics", "&Delete"),
|
qApp.translate("outlineBasics", "&Delete"),
|
||||||
|
@ -190,53 +189,50 @@ class outlineBasics(QAbstractItemView):
|
||||||
menu.addSeparator()
|
menu.addSeparator()
|
||||||
|
|
||||||
# Custom icons
|
# Custom icons
|
||||||
self.menuCustomIcons = QMenu(qApp.translate("outlineBasics", "Set Custom Icon"), menu)
|
if self.menuCustomIcons:
|
||||||
a = QAction(qApp.translate("outlineBasics", "Restore to default"), self.menuCustomIcons)
|
menu.addMenu(self.menuCustomIcons)
|
||||||
a.triggered.connect(lambda: self.setCustomIcon(""))
|
else:
|
||||||
self.menuCustomIcons.addAction(a)
|
self.menuCustomIcons = QMenu(qApp.translate("outlineBasics", "Set Custom Icon"), menu)
|
||||||
self.menuCustomIcons.addSeparator()
|
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 = QLineEdit()
|
||||||
txt.textChanged.connect(self.filterLstIcons)
|
txt.textChanged.connect(self.filterLstIcons)
|
||||||
txt.setPlaceholderText("Filter icons")
|
txt.setPlaceholderText("Filter icons")
|
||||||
txt.setStyleSheet("background: transparent; border: none;")
|
txt.setStyleSheet("background: transparent; border: none;")
|
||||||
act = QWidgetAction(self.menuCustomIcons)
|
act = QWidgetAction(self.menuCustomIcons)
|
||||||
act.setDefaultWidget(txt)
|
act.setDefaultWidget(txt)
|
||||||
self.menuCustomIcons.addAction(act)
|
self.menuCustomIcons.addAction(act)
|
||||||
|
|
||||||
self.lstIcons = QListWidget()
|
self.lstIcons = QListWidget()
|
||||||
for i in customIcons():
|
for i in customIcons():
|
||||||
item = QListWidgetItem()
|
item = QListWidgetItem()
|
||||||
item.setIcon(QIcon.fromTheme(i))
|
item.setIcon(QIcon.fromTheme(i))
|
||||||
item.setData(Qt.UserRole, i)
|
item.setData(Qt.UserRole, i)
|
||||||
item.setToolTip(i)
|
item.setToolTip(i)
|
||||||
self.lstIcons.addItem(item)
|
self.lstIcons.addItem(item)
|
||||||
self.lstIcons.itemClicked.connect(self.setCustomIconFromItem)
|
self.lstIcons.itemClicked.connect(self.setCustomIconFromItem)
|
||||||
self.lstIcons.setViewMode(self.lstIcons.IconMode)
|
self.lstIcons.setViewMode(self.lstIcons.IconMode)
|
||||||
self.lstIcons.setUniformItemSizes(True)
|
self.lstIcons.setUniformItemSizes(True)
|
||||||
self.lstIcons.setResizeMode(self.lstIcons.Adjust)
|
self.lstIcons.setResizeMode(self.lstIcons.Adjust)
|
||||||
self.lstIcons.setMovement(self.lstIcons.Static)
|
self.lstIcons.setMovement(self.lstIcons.Static)
|
||||||
self.lstIcons.setStyleSheet("background: transparent; background: none;")
|
self.lstIcons.setStyleSheet("background: transparent; background: none;")
|
||||||
self.filterLstIcons("")
|
self.filterLstIcons("")
|
||||||
act = QWidgetAction(self.menuCustomIcons)
|
act = QWidgetAction(self.menuCustomIcons)
|
||||||
act.setDefaultWidget(self.lstIcons)
|
act.setDefaultWidget(self.lstIcons)
|
||||||
self.menuCustomIcons.addAction(act)
|
self.menuCustomIcons.addAction(act)
|
||||||
|
|
||||||
menu.addMenu(self.menuCustomIcons)
|
menu.addMenu(self.menuCustomIcons)
|
||||||
|
|
||||||
# Disabling stuff
|
# Disabling stuff
|
||||||
if len(sel) > 0 and index.isValid() and not index.internalPointer().isFolder() \
|
if not clipboard.mimeData().hasFormat("application/xml"):
|
||||||
or not clipboard.mimeData().hasFormat("application/xml"):
|
|
||||||
self.actPaste.setEnabled(False)
|
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:
|
if len(sel) == 0:
|
||||||
self.actCopy.setEnabled(False)
|
self.actCopy.setEnabled(False)
|
||||||
self.actCut.setEnabled(False)
|
self.actCut.setEnabled(False)
|
||||||
self.actDuplicate.setEnabled(False)
|
|
||||||
self.actRename.setEnabled(False)
|
self.actRename.setEnabled(False)
|
||||||
self.actDelete.setEnabled(False)
|
self.actDelete.setEnabled(False)
|
||||||
self.menuPOV.setEnabled(False)
|
self.menuPOV.setEnabled(False)
|
||||||
|
@ -298,7 +294,7 @@ class outlineBasics(QAbstractItemView):
|
||||||
if len(self.getSelection()) == 0:
|
if len(self.getSelection()) == 0:
|
||||||
index = self.rootIndex()
|
index = self.rootIndex()
|
||||||
|
|
||||||
if mimeData is None:
|
if not mimeData:
|
||||||
mimeData = qApp.clipboard().mimeData()
|
mimeData = qApp.clipboard().mimeData()
|
||||||
|
|
||||||
self.model().dropMimeData(mimeData, Qt.CopyAction, -1, 0, index)
|
self.model().dropMimeData(mimeData, Qt.CopyAction, -1, 0, index)
|
||||||
|
|
|
@ -87,11 +87,3 @@ class treeView(QTreeView, dndView, outlineBasics):
|
||||||
def dragMoveEvent(self, event):
|
def dragMoveEvent(self, event):
|
||||||
dndView.dragMoveEvent(self, event)
|
dndView.dragMoveEvent(self, event)
|
||||||
QTreeView.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)
|
|
||||||
|
|
Loading…
Reference in a new issue