Adds: better harmonization between Documents menu and context menu #229

This commit is contained in:
Olivier Keshavjee 2017-11-24 20:50:18 +01:00
parent 66f09729b5
commit 52af71757e
7 changed files with 64 additions and 34 deletions

View file

@ -121,6 +121,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
self.actCopy.triggered.connect(self.documentsCopy)
self.actCut.triggered.connect(self.documentsCut)
self.actPaste.triggered.connect(self.documentsPaste)
self.actRename.triggered.connect(self.documentsRename)
self.actDuplicate.triggered.connect(self.documentsDuplicate)
self.actDelete.triggered.connect(self.documentsDelete)
self.actMoveUp.triggered.connect(self.documentsMoveUp)
@ -449,6 +450,9 @@ class MainWindow(QMainWindow, Ui_MainWindow):
def documentsPaste(self):
"Paste clipboard item(s) into selected item."
if self._lastFocus: self._lastFocus.paste()
def documentsRename(self):
"Rename selected item."
if self._lastFocus: self._lastFocus.rename()
def documentsDuplicate(self):
"Duplicate selected item(s)."
if self._lastFocus: self._lastFocus.duplicate()

View file

@ -362,6 +362,8 @@ class editorWidget(QWidget, Ui_editorWidget_ui):
if self.getCurrentItemView(): self.getCurrentItemView().cut()
def paste(self):
if self.getCurrentItemView(): self.getCurrentItemView().paste()
def rename(self):
if self.getCurrentItemView(): self.getCurrentItemView().rename()
def duplicate(self):
if self.getCurrentItemView(): self.getCurrentItemView().duplicate()
def delete(self):

View file

@ -252,6 +252,7 @@ class mainEditor(QWidget, Ui_mainEditor):
def copy(self): self.currentEditor().copy()
def cut(self): self.currentEditor().cut()
def paste(self): self.currentEditor().paste()
def rename(self): self.currentEditor().rename()
def duplicate(self): self.currentEditor().duplicate()
def delete(self): self.currentEditor().delete()
def moveUp(self): self.currentEditor().moveUp()

View file

@ -2,7 +2,7 @@
# Form implementation generated from reading ui file 'manuskript/ui/mainWindow.ui'
#
# Created by: PyQt5 UI code generator 5.9
# Created by: PyQt5 UI code generator 5.5.1
#
# WARNING! All changes made in this file will be lost!
@ -24,7 +24,6 @@ class Ui_MainWindow(object):
self.welcomePage = QtWidgets.QWidget()
self.welcomePage.setObjectName("welcomePage")
self.gridLayout = QtWidgets.QGridLayout(self.welcomePage)
self.gridLayout.setContentsMargins(0, 0, 0, 0)
self.gridLayout.setObjectName("gridLayout")
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.gridLayout.addItem(spacerItem, 1, 0, 1, 1)
@ -161,7 +160,6 @@ class Ui_MainWindow(object):
self.tabSummaryPage1 = QtWidgets.QWidget()
self.tabSummaryPage1.setObjectName("tabSummaryPage1")
self.verticalLayout_5 = QtWidgets.QVBoxLayout(self.tabSummaryPage1)
self.verticalLayout_5.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_5.setObjectName("verticalLayout_5")
self.label = QtWidgets.QLabel(self.tabSummaryPage1)
self.label.setObjectName("label")
@ -184,7 +182,6 @@ class Ui_MainWindow(object):
self.tabSummaryPage2 = QtWidgets.QWidget()
self.tabSummaryPage2.setObjectName("tabSummaryPage2")
self.horizontalLayout_4 = QtWidgets.QHBoxLayout(self.tabSummaryPage2)
self.horizontalLayout_4.setContentsMargins(0, 0, 0, 0)
self.horizontalLayout_4.setObjectName("horizontalLayout_4")
self.verticalLayout = QtWidgets.QVBoxLayout()
self.verticalLayout.setObjectName("verticalLayout")
@ -227,7 +224,6 @@ class Ui_MainWindow(object):
self.tabSummaryPage3 = QtWidgets.QWidget()
self.tabSummaryPage3.setObjectName("tabSummaryPage3")
self.horizontalLayout_7 = QtWidgets.QHBoxLayout(self.tabSummaryPage3)
self.horizontalLayout_7.setContentsMargins(0, 0, 0, 0)
self.horizontalLayout_7.setObjectName("horizontalLayout_7")
self.verticalLayout_6 = QtWidgets.QVBoxLayout()
self.verticalLayout_6.setObjectName("verticalLayout_6")
@ -263,7 +259,6 @@ class Ui_MainWindow(object):
self.tabSummaryPage4 = QtWidgets.QWidget()
self.tabSummaryPage4.setObjectName("tabSummaryPage4")
self.horizontalLayout_8 = QtWidgets.QHBoxLayout(self.tabSummaryPage4)
self.horizontalLayout_8.setContentsMargins(0, 0, 0, 0)
self.horizontalLayout_8.setObjectName("horizontalLayout_8")
self.verticalLayout_7 = QtWidgets.QVBoxLayout()
self.verticalLayout_7.setObjectName("verticalLayout_7")
@ -387,7 +382,6 @@ class Ui_MainWindow(object):
self.scrollAreaPersoInfosWidget.setObjectName("scrollAreaPersoInfosWidget")
self.formLayout_8 = QtWidgets.QFormLayout(self.scrollAreaPersoInfosWidget)
self.formLayout_8.setFieldGrowthPolicy(QtWidgets.QFormLayout.AllNonFixedFieldsGrow)
self.formLayout_8.setContentsMargins(0, 0, 0, 0)
self.formLayout_8.setObjectName("formLayout_8")
self.label_4 = QtWidgets.QLabel(self.scrollAreaPersoInfosWidget)
self.label_4.setObjectName("label_4")
@ -703,7 +697,6 @@ class Ui_MainWindow(object):
self.page = QtWidgets.QWidget()
self.page.setObjectName("page")
self.horizontalLayout_6 = QtWidgets.QHBoxLayout(self.page)
self.horizontalLayout_6.setContentsMargins(0, 0, 0, 0)
self.horizontalLayout_6.setObjectName("horizontalLayout_6")
self.txtPlotSummaryPara = textEditView(self.page)
self.txtPlotSummaryPara.setObjectName("txtPlotSummaryPara")
@ -712,7 +705,6 @@ class Ui_MainWindow(object):
self.page_2 = QtWidgets.QWidget()
self.page_2.setObjectName("page_2")
self.horizontalLayout_10 = QtWidgets.QHBoxLayout(self.page_2)
self.horizontalLayout_10.setContentsMargins(0, 0, 0, 0)
self.horizontalLayout_10.setObjectName("horizontalLayout_10")
self.txtPlotSummaryPage = textEditView(self.page_2)
self.txtPlotSummaryPage.setObjectName("txtPlotSummaryPage")
@ -721,7 +713,6 @@ class Ui_MainWindow(object):
self.page_3 = QtWidgets.QWidget()
self.page_3.setObjectName("page_3")
self.horizontalLayout_13 = QtWidgets.QHBoxLayout(self.page_3)
self.horizontalLayout_13.setContentsMargins(0, 0, 0, 0)
self.horizontalLayout_13.setObjectName("horizontalLayout_13")
self.txtPlotSummaryFull = textEditView(self.page_3)
self.txtPlotSummaryFull.setObjectName("txtPlotSummaryFull")
@ -839,7 +830,6 @@ class Ui_MainWindow(object):
self.layoutWidget = QtWidgets.QWidget(self.splitterOutlineH)
self.layoutWidget.setObjectName("layoutWidget")
self.verticalLayout_14 = QtWidgets.QVBoxLayout(self.layoutWidget)
self.verticalLayout_14.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_14.setObjectName("verticalLayout_14")
self.splitterOutlineV = QtWidgets.QSplitter(self.layoutWidget)
self.splitterOutlineV.setOrientation(QtCore.Qt.Vertical)
@ -1220,6 +1210,10 @@ class Ui_MainWindow(object):
icon = QtGui.QIcon.fromTheme("arrow-down")
self.actMoveDown.setIcon(icon)
self.actMoveDown.setObjectName("actMoveDown")
self.actRename = QtWidgets.QAction(MainWindow)
icon = QtGui.QIcon.fromTheme("edit-rename")
self.actRename.setIcon(icon)
self.actRename.setObjectName("actRename")
self.menuFile.addAction(self.actOpen)
self.menuFile.addAction(self.menuRecents.menuAction())
self.menuFile.addAction(self.actSave)
@ -1245,6 +1239,8 @@ class Ui_MainWindow(object):
self.menuDocuments.addAction(self.actCopy)
self.menuDocuments.addAction(self.actCut)
self.menuDocuments.addAction(self.actPaste)
self.menuDocuments.addSeparator()
self.menuDocuments.addAction(self.actRename)
self.menuDocuments.addAction(self.actDuplicate)
self.menuDocuments.addAction(self.actDelete)
self.menuDocuments.addSeparator()
@ -1418,16 +1414,18 @@ class Ui_MainWindow(object):
self.actSplitDialog.setShortcut(_translate("MainWindow", "Ctrl+Shift+K"))
self.actSplitCursor.setText(_translate("MainWindow", "Sp&lit at cursor"))
self.actSplitCursor.setShortcut(_translate("MainWindow", "Ctrl+K"))
self.actMerge.setText(_translate("MainWindow", "Me&rge"))
self.actMerge.setText(_translate("MainWindow", "&Merge"))
self.actMerge.setShortcut(_translate("MainWindow", "Ctrl+M"))
self.actDuplicate.setText(_translate("MainWindow", "&Duplicate"))
self.actDuplicate.setText(_translate("MainWindow", "Dupl&icate"))
self.actDuplicate.setShortcut(_translate("MainWindow", "Ctrl+D"))
self.actDelete.setText(_translate("MainWindow", "D&elete"))
self.actDelete.setText(_translate("MainWindow", "&Delete"))
self.actDelete.setShortcut(_translate("MainWindow", "Del"))
self.actMoveUp.setText(_translate("MainWindow", "&Move Up"))
self.actMoveUp.setShortcut(_translate("MainWindow", "Ctrl+Shift+Up"))
self.actMoveDown.setText(_translate("MainWindow", "M&ove Down"))
self.actMoveDown.setShortcut(_translate("MainWindow", "Ctrl+Shift+Down"))
self.actRename.setText(_translate("MainWindow", "&Rename"))
self.actRename.setShortcut(_translate("MainWindow", "F2"))
from manuskript.ui.cheatSheet import cheatSheet
from manuskript.ui.editors.mainEditor import mainEditor

View file

@ -2163,6 +2163,8 @@
<addaction name="actCopy"/>
<addaction name="actCut"/>
<addaction name="actPaste"/>
<addaction name="separator"/>
<addaction name="actRename"/>
<addaction name="actDuplicate"/>
<addaction name="actDelete"/>
<addaction name="separator"/>
@ -2551,11 +2553,10 @@
</action>
<action name="actMerge">
<property name="icon">
<iconset theme="merge">
<normaloff>.</normaloff>.</iconset>
<iconset theme="merge"/>
</property>
<property name="text">
<string>Me&amp;rge</string>
<string>&amp;Merge</string>
</property>
<property name="shortcut">
<string>Ctrl+M</string>
@ -2567,7 +2568,7 @@
<normaloff>.</normaloff>.</iconset>
</property>
<property name="text">
<string>&amp;Duplicate</string>
<string>Dupl&amp;icate</string>
</property>
<property name="shortcut">
<string>Ctrl+D</string>
@ -2579,7 +2580,7 @@
<normaloff>.</normaloff>.</iconset>
</property>
<property name="text">
<string>D&amp;elete</string>
<string>&amp;Delete</string>
</property>
<property name="shortcut">
<string>Del</string>
@ -2609,6 +2610,18 @@
<string>Ctrl+Shift+Down</string>
</property>
</action>
<action name="actRename">
<property name="icon">
<iconset theme="edit-rename">
<normaloff>.</normaloff>.</iconset>
</property>
<property name="text">
<string>&amp;Rename</string>
</property>
<property name="shortcut">
<string>F2</string>
</property>
</action>
</widget>
<customwidgets>
<customwidget>

View file

@ -81,47 +81,58 @@ class outlineBasics(QAbstractItemView):
menu.addSeparator()
# Rename / add / 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.actAddFolder = QAction(QIcon.fromTheme("folder-new"), qApp.translate("outlineBasics", "New Folder"), menu)
# Add text / folder
self.actAddFolder = QAction(QIcon.fromTheme("folder-new"),
qApp.translate("outlineBasics", "New &Folder"),
menu)
self.actAddFolder.triggered.connect(self.addFolder)
menu.addAction(self.actAddFolder)
self.actAddText = QAction(QIcon.fromTheme("document-new"), qApp.translate("outlineBasics", "New Text"), menu)
self.actAddText = QAction(QIcon.fromTheme("document-new"),
qApp.translate("outlineBasics", "New &Text"),
menu)
self.actAddText.triggered.connect(self.addText)
menu.addAction(self.actAddText)
self.actDelete = QAction(QIcon.fromTheme("edit-delete"), qApp.translate("outlineBasics", "Delete"), menu)
self.actDelete.triggered.connect(self.delete)
menu.addAction(self.actDelete)
menu.addSeparator()
# Copy, cut, paste, duplicate
self.actCopy = QAction(QIcon.fromTheme("edit-copy"),
qApp.translate("outlineBasics", "Copy"), menu)
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", "Cut"), menu)
qApp.translate("outlineBasics", "C&ut"), menu)
self.actCut.triggered.connect(self.cut)
menu.addAction(self.actCut)
self.actPaste = QAction(QIcon.fromTheme("edit-paste"),
qApp.translate("outlineBasics", "Paste"), menu)
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", "Duplicate"),
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)
menu.addSeparator()
# POV

View file

@ -567,6 +567,7 @@ class textEditView(QTextEdit):
function = getattr(F.mainWindow().treeRedacOutline, functionName)
function()
def rename(self): self.callMainTreeView("rename")
def duplicate(self): self.callMainTreeView("duplicate")
def moveUp(self): self.callMainTreeView("moveUp")
def moveDown(self): self.callMainTreeView("moveDown")