Fix some widgets without parent, and update template file record keeping
This commit is contained in:
@@ -186,7 +186,7 @@ class nwLabels:
|
|||||||
nwItemClass.ENTITY: QT_TRANSLATE_NOOP("Constant", "Entities"),
|
nwItemClass.ENTITY: QT_TRANSLATE_NOOP("Constant", "Entities"),
|
||||||
nwItemClass.CUSTOM: QT_TRANSLATE_NOOP("Constant", "Custom"),
|
nwItemClass.CUSTOM: QT_TRANSLATE_NOOP("Constant", "Custom"),
|
||||||
nwItemClass.ARCHIVE: QT_TRANSLATE_NOOP("Constant", "Archive"),
|
nwItemClass.ARCHIVE: QT_TRANSLATE_NOOP("Constant", "Archive"),
|
||||||
nwItemClass.TEMPLATES: QT_TRANSLATE_NOOP("Constant", "Templates"),
|
nwItemClass.TEMPLATE: QT_TRANSLATE_NOOP("Constant", "Templates"),
|
||||||
nwItemClass.TRASH: QT_TRANSLATE_NOOP("Constant", "Trash"),
|
nwItemClass.TRASH: QT_TRANSLATE_NOOP("Constant", "Trash"),
|
||||||
}
|
}
|
||||||
CLASS_ICON = {
|
CLASS_ICON = {
|
||||||
@@ -200,7 +200,7 @@ class nwLabels:
|
|||||||
nwItemClass.ENTITY: "cls_entity",
|
nwItemClass.ENTITY: "cls_entity",
|
||||||
nwItemClass.CUSTOM: "cls_custom",
|
nwItemClass.CUSTOM: "cls_custom",
|
||||||
nwItemClass.ARCHIVE: "cls_archive",
|
nwItemClass.ARCHIVE: "cls_archive",
|
||||||
nwItemClass.TEMPLATES: "cls_custom",
|
nwItemClass.TEMPLATE: "cls_template",
|
||||||
nwItemClass.TRASH: "cls_trash",
|
nwItemClass.TRASH: "cls_trash",
|
||||||
}
|
}
|
||||||
LAYOUT_NAME = {
|
LAYOUT_NAME = {
|
||||||
|
|||||||
@@ -337,15 +337,19 @@ class NWItem:
|
|||||||
return self._class in (
|
return self._class in (
|
||||||
nwItemClass.NOVEL,
|
nwItemClass.NOVEL,
|
||||||
nwItemClass.ARCHIVE,
|
nwItemClass.ARCHIVE,
|
||||||
nwItemClass.TEMPLATES,
|
nwItemClass.TEMPLATE,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def isTemplateFile(self) -> bool:
|
||||||
|
"""Check if the item is a template file."""
|
||||||
|
return self._type == nwItemType.FILE and self._class == nwItemClass.TEMPLATE
|
||||||
|
|
||||||
def documentAllowed(self) -> bool:
|
def documentAllowed(self) -> bool:
|
||||||
"""Check if the item is allowed to be of document layout."""
|
"""Check if the item is allowed to be of document layout."""
|
||||||
return self._class in (
|
return self._class in (
|
||||||
nwItemClass.NOVEL,
|
nwItemClass.NOVEL,
|
||||||
nwItemClass.ARCHIVE,
|
nwItemClass.ARCHIVE,
|
||||||
nwItemClass.TEMPLATES,
|
nwItemClass.TEMPLATE,
|
||||||
nwItemClass.TRASH,
|
nwItemClass.TRASH,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -354,7 +358,7 @@ class NWItem:
|
|||||||
return self._class in (
|
return self._class in (
|
||||||
nwItemClass.NO_CLASS,
|
nwItemClass.NO_CLASS,
|
||||||
nwItemClass.ARCHIVE,
|
nwItemClass.ARCHIVE,
|
||||||
nwItemClass.TEMPLATES,
|
nwItemClass.TEMPLATE,
|
||||||
nwItemClass.TRASH,
|
nwItemClass.TRASH,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ class GuiEditLabel(QDialog):
|
|||||||
mSp = CONFIG.pxInt(12)
|
mSp = CONFIG.pxInt(12)
|
||||||
|
|
||||||
# Item Label
|
# Item Label
|
||||||
self.labelValue = QLineEdit()
|
self.labelValue = QLineEdit(self)
|
||||||
self.labelValue.setMinimumWidth(mVd)
|
self.labelValue.setMinimumWidth(mVd)
|
||||||
self.labelValue.setMaxLength(200)
|
self.labelValue.setMaxLength(200)
|
||||||
self.labelValue.setText(text)
|
self.labelValue.setText(text)
|
||||||
|
|||||||
@@ -361,7 +361,7 @@ class _StatusPage(NFixedPage):
|
|||||||
self.dnButton.clicked.connect(lambda: self._moveItem(1))
|
self.dnButton.clicked.connect(lambda: self._moveItem(1))
|
||||||
|
|
||||||
# Edit Form
|
# Edit Form
|
||||||
self.editName = QLineEdit()
|
self.editName = QLineEdit(self)
|
||||||
self.editName.setMaxLength(40)
|
self.editName.setMaxLength(40)
|
||||||
self.editName.setPlaceholderText(self.tr("Select item to edit"))
|
self.editName.setPlaceholderText(self.tr("Select item to edit"))
|
||||||
self.editName.setEnabled(False)
|
self.editName.setEnabled(False)
|
||||||
@@ -621,12 +621,12 @@ class _ReplacePage(NFixedPage):
|
|||||||
self.delButton.clicked.connect(self._delEntry)
|
self.delButton.clicked.connect(self._delEntry)
|
||||||
|
|
||||||
# Edit Form
|
# Edit Form
|
||||||
self.editKey = QLineEdit()
|
self.editKey = QLineEdit(self)
|
||||||
self.editKey.setPlaceholderText(self.tr("Select item to edit"))
|
self.editKey.setPlaceholderText(self.tr("Select item to edit"))
|
||||||
self.editKey.setEnabled(False)
|
self.editKey.setEnabled(False)
|
||||||
self.editKey.setMaxLength(40)
|
self.editKey.setMaxLength(40)
|
||||||
|
|
||||||
self.editValue = QLineEdit()
|
self.editValue = QLineEdit(self)
|
||||||
self.editValue.setEnabled(False)
|
self.editValue.setEnabled(False)
|
||||||
self.editValue.setMaxLength(80)
|
self.editValue.setMaxLength(80)
|
||||||
|
|
||||||
|
|||||||
@@ -75,7 +75,7 @@ class GuiWordList(QDialog):
|
|||||||
self.listBox.setDragDropMode(QAbstractItemView.NoDragDrop)
|
self.listBox.setDragDropMode(QAbstractItemView.NoDragDrop)
|
||||||
self.listBox.setSortingEnabled(True)
|
self.listBox.setSortingEnabled(True)
|
||||||
|
|
||||||
self.newEntry = QLineEdit()
|
self.newEntry = QLineEdit(self)
|
||||||
|
|
||||||
self.addButton = QPushButton(SHARED.theme.getIcon("add"), "")
|
self.addButton = QPushButton(SHARED.theme.getIcon("add"), "")
|
||||||
self.addButton.clicked.connect(self._doAdd)
|
self.addButton.clicked.connect(self._doAdd)
|
||||||
|
|||||||
+1
-1
@@ -47,7 +47,7 @@ class nwItemClass(Enum):
|
|||||||
ENTITY = 7
|
ENTITY = 7
|
||||||
CUSTOM = 8
|
CUSTOM = 8
|
||||||
ARCHIVE = 9
|
ARCHIVE = 9
|
||||||
TEMPLATES = 10
|
TEMPLATE = 10
|
||||||
TRASH = 11
|
TRASH = 11
|
||||||
|
|
||||||
# END Enum nwItemClass
|
# END Enum nwItemClass
|
||||||
|
|||||||
@@ -431,7 +431,7 @@ class GuiProjectToolBar(QWidget):
|
|||||||
addClass(nwItemClass.ENTITY)
|
addClass(nwItemClass.ENTITY)
|
||||||
addClass(nwItemClass.CUSTOM)
|
addClass(nwItemClass.CUSTOM)
|
||||||
self.mAddRoot.addSeparator()
|
self.mAddRoot.addSeparator()
|
||||||
addClass(nwItemClass.TEMPLATES)
|
addClass(nwItemClass.TEMPLATE)
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -466,6 +466,8 @@ class GuiProjectTree(QTreeWidget):
|
|||||||
D_HANDLE = Qt.ItemDataRole.UserRole
|
D_HANDLE = Qt.ItemDataRole.UserRole
|
||||||
D_WORDS = Qt.ItemDataRole.UserRole + 1
|
D_WORDS = Qt.ItemDataRole.UserRole + 1
|
||||||
|
|
||||||
|
templatesUpdated = pyqtSignal(str)
|
||||||
|
|
||||||
def __init__(self, projView: GuiProjectView) -> None:
|
def __init__(self, projView: GuiProjectView) -> None:
|
||||||
super().__init__(parent=projView)
|
super().__init__(parent=projView)
|
||||||
|
|
||||||
@@ -476,6 +478,7 @@ class GuiProjectTree(QTreeWidget):
|
|||||||
|
|
||||||
# Internal Variables
|
# Internal Variables
|
||||||
self._treeMap = {}
|
self._treeMap = {}
|
||||||
|
self._templateItems = set()
|
||||||
self._timeChanged = 0.0
|
self._timeChanged = 0.0
|
||||||
self._popAlert = None
|
self._popAlert = None
|
||||||
|
|
||||||
@@ -1031,6 +1034,16 @@ class GuiProjectTree(QTreeWidget):
|
|||||||
trFont.setUnderline(hLevel == "H1")
|
trFont.setUnderline(hLevel == "H1")
|
||||||
trItem.setFont(self.C_NAME, trFont)
|
trItem.setFont(self.C_NAME, trFont)
|
||||||
|
|
||||||
|
# Templates
|
||||||
|
if nwItem.isTemplateFile():
|
||||||
|
self._templateItems.add(tHandle)
|
||||||
|
logger.debug("Updated template '%s'", tHandle)
|
||||||
|
self.templatesUpdated.emit(tHandle)
|
||||||
|
elif tHandle in self._templateItems:
|
||||||
|
self._templateItems.discard(tHandle)
|
||||||
|
logger.debug("Removed template '%s'", tHandle)
|
||||||
|
self.templatesUpdated.emit(tHandle)
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
def propagateCount(self, tHandle: str, newCount: int, countChildren: bool = False) -> None:
|
def propagateCount(self, tHandle: str, newCount: int, countChildren: bool = False) -> None:
|
||||||
@@ -1360,8 +1373,7 @@ class GuiProjectTree(QTreeWidget):
|
|||||||
not including) a given item.
|
not including) a given item.
|
||||||
"""
|
"""
|
||||||
if isinstance(trItem, QTreeWidgetItem):
|
if isinstance(trItem, QTreeWidgetItem):
|
||||||
chCount = trItem.childCount()
|
for i in range(trItem.childCount()):
|
||||||
for i in range(chCount):
|
|
||||||
chItem = trItem.child(i)
|
chItem = trItem.child(i)
|
||||||
chItem.setExpanded(isExpanded)
|
chItem.setExpanded(isExpanded)
|
||||||
self._recursiveSetExpanded(chItem, isExpanded)
|
self._recursiveSetExpanded(chItem, isExpanded)
|
||||||
|
|||||||
@@ -99,7 +99,7 @@ class GuiWelcome(QDialog):
|
|||||||
self.tabNew.cancelNewProject.connect(self._showOpenProjectPage)
|
self.tabNew.cancelNewProject.connect(self._showOpenProjectPage)
|
||||||
self.tabNew.openProjectRequest.connect(self._openProjectPath)
|
self.tabNew.openProjectRequest.connect(self._openProjectPath)
|
||||||
|
|
||||||
self.mainStack = QStackedWidget()
|
self.mainStack = QStackedWidget(self)
|
||||||
self.mainStack.addWidget(self.tabOpen)
|
self.mainStack.addWidget(self.tabOpen)
|
||||||
self.mainStack.addWidget(self.tabNew)
|
self.mainStack.addWidget(self.tabNew)
|
||||||
|
|
||||||
@@ -524,13 +524,13 @@ class _NewProjectForm(QWidget):
|
|||||||
# ================
|
# ================
|
||||||
|
|
||||||
# Project Name
|
# Project Name
|
||||||
self.projName = QLineEdit()
|
self.projName = QLineEdit(self)
|
||||||
self.projName.setMaxLength(200)
|
self.projName.setMaxLength(200)
|
||||||
self.projName.setPlaceholderText(self.tr("Required"))
|
self.projName.setPlaceholderText(self.tr("Required"))
|
||||||
self.projName.textChanged.connect(self._updateProjPath)
|
self.projName.textChanged.connect(self._updateProjPath)
|
||||||
|
|
||||||
# Author(s)
|
# Author(s)
|
||||||
self.projAuthor = QLineEdit()
|
self.projAuthor = QLineEdit(self)
|
||||||
self.projAuthor.setMaxLength(200)
|
self.projAuthor.setMaxLength(200)
|
||||||
self.projAuthor.setPlaceholderText(self.tr("Optional"))
|
self.projAuthor.setPlaceholderText(self.tr("Optional"))
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user