Items can now be renamed.
This commit is contained in:
@@ -50,6 +50,7 @@ class nwItemAction(Enum):
|
||||
DELETE = 10
|
||||
DELETE_ROOT = 11
|
||||
EMPTY_TRASH = 12
|
||||
RENAME = 13
|
||||
|
||||
# END Enum nwItemAction
|
||||
|
||||
|
||||
+13
-1
@@ -16,7 +16,7 @@ import nw
|
||||
from os import path
|
||||
from PyQt5.QtGui import QIcon
|
||||
from PyQt5.QtCore import Qt, QSize
|
||||
from PyQt5.QtWidgets import QTreeWidget, QTreeWidgetItem, QAbstractItemView
|
||||
from PyQt5.QtWidgets import QTreeWidget, QTreeWidgetItem, QAbstractItemView, QInputDialog, QLineEdit
|
||||
|
||||
from nw.enum import nwItemType, nwItemClass
|
||||
from nw.project.item import NWItem
|
||||
@@ -87,6 +87,18 @@ class GuiDocTree(QTreeWidget):
|
||||
pItem.insertChild(nIndex, cItem)
|
||||
return
|
||||
|
||||
def renameTreeItem(self, tHandle):
|
||||
tItem = self.theMap[tHandle]
|
||||
oldName = tItem.text(0)
|
||||
newName, isOk = QInputDialog.getText(self, "Rename Item", "New Name", QLineEdit.Normal,oldName)
|
||||
if isOk:
|
||||
newName = newName.strip()
|
||||
if newName == "":
|
||||
newName = oldName
|
||||
tItem.setText(0,newName)
|
||||
self.theProject.setItemName(tHandle, newName)
|
||||
return
|
||||
|
||||
def saveTreeOrder(self):
|
||||
theList = []
|
||||
for i in range(self.topLevelItemCount()):
|
||||
|
||||
+10
-1
@@ -42,7 +42,6 @@ class GuiDocTreeCtx(QMenu):
|
||||
self.selHandle = None
|
||||
else:
|
||||
self.selHandle = selItems[0].text(3)
|
||||
print(self.selHandle)
|
||||
|
||||
self._buildMenu()
|
||||
|
||||
@@ -54,6 +53,8 @@ class GuiDocTreeCtx(QMenu):
|
||||
|
||||
def _buildMenu(self):
|
||||
vActs = self.theProject.getActionList(self.selHandle)
|
||||
if nwItemAction.RENAME in vActs.keys():
|
||||
self._buildMenuRename(vActs)
|
||||
if nwItemAction.ADD_ROOT in vActs.keys():
|
||||
self._buildMenuAddRoot(vActs)
|
||||
if nwItemAction.ADD_FOLDER in vActs.keys():
|
||||
@@ -84,6 +85,14 @@ class GuiDocTreeCtx(QMenu):
|
||||
# Build Sub Menus
|
||||
##
|
||||
|
||||
def _buildMenuRename(self, vActs):
|
||||
mnuItem = QAction("Rename", self)
|
||||
mnuItem.triggered.connect(lambda: self._ctxSignal(
|
||||
nwItemAction.RENAME, None, None
|
||||
))
|
||||
self.addAction(mnuItem)
|
||||
return
|
||||
|
||||
def _buildMenuDelete(self, vActs):
|
||||
mnuItem = QAction("Delete Permanently", self)
|
||||
mnuItem.triggered.connect(lambda: self._ctxSignal(
|
||||
|
||||
+3
-1
@@ -211,7 +211,7 @@ class GuiMain(QMainWindow):
|
||||
selType = ctxMenu.selType
|
||||
selTarget = ctxMenu.selTarget
|
||||
|
||||
print(selHandle, selAction, selClass, selType, selTarget)
|
||||
# print(selHandle, selAction, selClass, selType, selTarget)
|
||||
|
||||
if selAction == nwItemAction.ADD_ROOT:
|
||||
self.treeView.newTreeItem(selHandle, selType, selClass)
|
||||
@@ -237,6 +237,8 @@ class GuiMain(QMainWindow):
|
||||
pass
|
||||
elif selAction == nwItemAction.EMPTY_TRASH:
|
||||
pass
|
||||
elif selAction == nwItemAction.RENAME:
|
||||
self.treeView.renameTreeItem(selHandle)
|
||||
|
||||
return
|
||||
|
||||
|
||||
@@ -230,6 +230,10 @@ class NWProject():
|
||||
self.treeOrder = newOrder
|
||||
return True
|
||||
|
||||
def setItemName(self, tHandle, theName):
|
||||
self.projTree[tHandle].setName(theName)
|
||||
return
|
||||
|
||||
##
|
||||
# Get Functions
|
||||
##
|
||||
@@ -300,6 +304,7 @@ class NWProject():
|
||||
}
|
||||
|
||||
# Other actions available to novel or plot items
|
||||
validActions[nwItemAction.RENAME] = {}
|
||||
validActions[nwItemAction.MOVE_UP] = {}
|
||||
validActions[nwItemAction.MOVE_DOWN] = {}
|
||||
if tType == nwItemType.ROOT:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<novelWriterXML appVersion="0.0.1" fileVersion="1.0" timeStamp="2019-04-23 16:16:49">
|
||||
<novelWriterXML appVersion="0.0.1" fileVersion="1.0" timeStamp="2019-04-24 18:07:47">
|
||||
<project>
|
||||
<name>Sample Project</name>
|
||||
<title>Sample Project</title>
|
||||
@@ -35,7 +35,7 @@
|
||||
<paraCount>5</paraCount>
|
||||
</item>
|
||||
<item handle="636b6aa9b697b" order="1" parent="e7ded148d6e4a">
|
||||
<name>New File</name>
|
||||
<name>Test File</name>
|
||||
<type>FILE</type>
|
||||
<class>NOVEL</class>
|
||||
<depth>2</depth>
|
||||
|
||||
Reference in New Issue
Block a user