Merge pull request #662 from vkbo/issue605_focus_char
Issue #605: Focus Character
This commit is contained in:
@@ -453,6 +453,7 @@ a key or key combination for the inserted content.
|
|||||||
":kbd:`Ctrl`:kbd:`K`, :kbd:`Ctrl`:kbd:`D`", "Insert a division sign."
|
":kbd:`Ctrl`:kbd:`K`, :kbd:`Ctrl`:kbd:`D`", "Insert a division sign."
|
||||||
":kbd:`Ctrl`:kbd:`K`, :kbd:`G`", "Insert a ``@tag`` keyword."
|
":kbd:`Ctrl`:kbd:`K`, :kbd:`G`", "Insert a ``@tag`` keyword."
|
||||||
":kbd:`Ctrl`:kbd:`K`, :kbd:`V`", "Insert a ``@pov`` keyword."
|
":kbd:`Ctrl`:kbd:`K`, :kbd:`V`", "Insert a ``@pov`` keyword."
|
||||||
|
":kbd:`Ctrl`:kbd:`K`, :kbd:`F`", "Insert a ``@focus`` keyword."
|
||||||
":kbd:`Ctrl`:kbd:`K`, :kbd:`C`", "Insert a ``@char`` keyword."
|
":kbd:`Ctrl`:kbd:`K`, :kbd:`C`", "Insert a ``@char`` keyword."
|
||||||
":kbd:`Ctrl`:kbd:`K`, :kbd:`P`", "Insert a ``@plot`` keyword."
|
":kbd:`Ctrl`:kbd:`K`, :kbd:`P`", "Insert a ``@plot`` keyword."
|
||||||
":kbd:`Ctrl`:kbd:`K`, :kbd:`T`", "Insert a ``@time`` keyword."
|
":kbd:`Ctrl`:kbd:`K`, :kbd:`T`", "Insert a ``@time`` keyword."
|
||||||
|
|||||||
@@ -51,8 +51,9 @@ no restrictions are enforced by the application. You can use them however you wa
|
|||||||
:guilabel:`Characters`
|
:guilabel:`Characters`
|
||||||
Character notes go in this root folder. These are especially important if one wants to use the
|
Character notes go in this root folder. These are especially important if one wants to use the
|
||||||
Outline view to see which character appears where, and which part of the story is told from a
|
Outline view to see which character appears where, and which part of the story is told from a
|
||||||
specific character's point-of-view. Tags in this folder can be references using the ``@pov``
|
specific character's point-of-view or focusing on a particular character's storyline. Tags in
|
||||||
keyword for point-of-view characters, or the ``@char`` keyword for other characters.
|
this folder can be referenced using the ``@pov`` keyword for point-of-view characters,
|
||||||
|
``@focus`` for a focus character, or the ``@char`` keyword for any other characters.
|
||||||
|
|
||||||
:guilabel:`Locations`
|
:guilabel:`Locations`
|
||||||
The locations folder is for various scene locations that you want to track. Tags in this folder
|
The locations folder is for various scene locations that you want to track. Tags in this folder
|
||||||
|
|||||||
@@ -103,28 +103,33 @@ allow multiple values.
|
|||||||
The point-of-view character for the current section. The target must be a note tag in the
|
The point-of-view character for the current section. The target must be a note tag in the
|
||||||
:guilabel:`Character` type root folder.
|
:guilabel:`Character` type root folder.
|
||||||
|
|
||||||
|
``@focus``
|
||||||
|
The character that has the focus for the current section. This can be used in cases where the
|
||||||
|
focus is not a point-of-view character. The target must be a note tag in the
|
||||||
|
:guilabel:`Character` type root folder.
|
||||||
|
|
||||||
``@char``
|
``@char``
|
||||||
Other characters in the current section. The target must be a note tag in a
|
Other characters in the current section. The target must be a note tag in the
|
||||||
:guilabel:`Character` type root folder. This should not include the point-of-view character.
|
:guilabel:`Character` type root folder. This should not include the point-of-view character.
|
||||||
|
|
||||||
``@plot``
|
``@plot``
|
||||||
The plot or subplot advanced in the current section. The target must be a note tag in a
|
The plot or subplot advanced in the current section. The target must be a note tag in the
|
||||||
:guilabel:`Plot` type root folder.
|
:guilabel:`Plot` type root folder.
|
||||||
|
|
||||||
``@time``
|
``@time``
|
||||||
The timelines touched by the current section. The target must be a note tag in a
|
The timelines touched by the current section. The target must be a note tag in the
|
||||||
:guilabel:`Timeline` type root folder.
|
:guilabel:`Timeline` type root folder.
|
||||||
|
|
||||||
``@location``
|
``@location``
|
||||||
The location the current section takes place in. The target must be a note tag in a
|
The location the current section takes place in. The target must be a note tag in the
|
||||||
:guilabel:`Locations` type root folder.
|
:guilabel:`Locations` type root folder.
|
||||||
|
|
||||||
``@object``
|
``@object``
|
||||||
Objects present in the current section. The target must be a note tag in an :guilabel:`Object`
|
Objects present in the current section. The target must be a note tag in the :guilabel:`Object`
|
||||||
type root folder.
|
type root folder.
|
||||||
|
|
||||||
``@entity``
|
``@entity``
|
||||||
Entities present in the current section. The target must be a note tag in an
|
Entities present in the current section. The target must be a note tag in the
|
||||||
:guilabel:`Entities` type root folder.
|
:guilabel:`Entities` type root folder.
|
||||||
|
|
||||||
``@custom``
|
``@custom``
|
||||||
|
|||||||
@@ -86,6 +86,7 @@ class nwKeyWords:
|
|||||||
|
|
||||||
TAG_KEY = "@tag"
|
TAG_KEY = "@tag"
|
||||||
POV_KEY = "@pov"
|
POV_KEY = "@pov"
|
||||||
|
FOCUS_KEY = "@focus"
|
||||||
CHAR_KEY = "@char"
|
CHAR_KEY = "@char"
|
||||||
PLOT_KEY = "@plot"
|
PLOT_KEY = "@plot"
|
||||||
TIME_KEY = "@time"
|
TIME_KEY = "@time"
|
||||||
@@ -96,14 +97,15 @@ class nwKeyWords:
|
|||||||
|
|
||||||
# Set of Valid Keys
|
# Set of Valid Keys
|
||||||
VALID_KEYS = {
|
VALID_KEYS = {
|
||||||
TAG_KEY, POV_KEY, CHAR_KEY, PLOT_KEY, TIME_KEY,
|
TAG_KEY, POV_KEY, FOCUS_KEY, CHAR_KEY, PLOT_KEY, TIME_KEY,
|
||||||
WORLD_KEY, OBJECT_KEY, ENTITY_KEY, CUSTOM_KEY
|
WORLD_KEY, OBJECT_KEY, ENTITY_KEY, CUSTOM_KEY
|
||||||
}
|
}
|
||||||
|
|
||||||
# Map from Keys to Item Class
|
# Map from Keys to Item Class
|
||||||
KEY_CLASS = {
|
KEY_CLASS = {
|
||||||
CHAR_KEY : nwItemClass.CHARACTER,
|
|
||||||
POV_KEY : nwItemClass.CHARACTER,
|
POV_KEY : nwItemClass.CHARACTER,
|
||||||
|
FOCUS_KEY : nwItemClass.CHARACTER,
|
||||||
|
CHAR_KEY : nwItemClass.CHARACTER,
|
||||||
PLOT_KEY : nwItemClass.PLOT,
|
PLOT_KEY : nwItemClass.PLOT,
|
||||||
TIME_KEY : nwItemClass.TIMELINE,
|
TIME_KEY : nwItemClass.TIMELINE,
|
||||||
WORLD_KEY : nwItemClass.WORLD,
|
WORLD_KEY : nwItemClass.WORLD,
|
||||||
@@ -180,6 +182,7 @@ class nwLabels():
|
|||||||
KEY_NAME = {
|
KEY_NAME = {
|
||||||
nwKeyWords.TAG_KEY : "Tag",
|
nwKeyWords.TAG_KEY : "Tag",
|
||||||
nwKeyWords.POV_KEY : "Point of View",
|
nwKeyWords.POV_KEY : "Point of View",
|
||||||
|
nwKeyWords.FOCUS_KEY : "Focus",
|
||||||
nwKeyWords.CHAR_KEY : "Characters",
|
nwKeyWords.CHAR_KEY : "Characters",
|
||||||
nwKeyWords.PLOT_KEY : "Plot",
|
nwKeyWords.PLOT_KEY : "Plot",
|
||||||
nwKeyWords.TIME_KEY : "Timeline",
|
nwKeyWords.TIME_KEY : "Timeline",
|
||||||
@@ -197,6 +200,7 @@ class nwLabels():
|
|||||||
nwOutline.WCOUNT : "Words",
|
nwOutline.WCOUNT : "Words",
|
||||||
nwOutline.PCOUNT : "Pars",
|
nwOutline.PCOUNT : "Pars",
|
||||||
nwOutline.POV : "POV",
|
nwOutline.POV : "POV",
|
||||||
|
nwOutline.FOCUS : "Focus",
|
||||||
nwOutline.CHAR : KEY_NAME[nwKeyWords.CHAR_KEY],
|
nwOutline.CHAR : KEY_NAME[nwKeyWords.CHAR_KEY],
|
||||||
nwOutline.PLOT : KEY_NAME[nwKeyWords.PLOT_KEY],
|
nwOutline.PLOT : KEY_NAME[nwKeyWords.PLOT_KEY],
|
||||||
nwOutline.TIME : KEY_NAME[nwKeyWords.TIME_KEY],
|
nwOutline.TIME : KEY_NAME[nwKeyWords.TIME_KEY],
|
||||||
|
|||||||
@@ -127,13 +127,14 @@ class nwOutline(Enum):
|
|||||||
WCOUNT = 5
|
WCOUNT = 5
|
||||||
PCOUNT = 6
|
PCOUNT = 6
|
||||||
POV = 7
|
POV = 7
|
||||||
CHAR = 8
|
FOCUS = 8
|
||||||
PLOT = 9
|
CHAR = 9
|
||||||
TIME = 10
|
PLOT = 10
|
||||||
WORLD = 11
|
TIME = 11
|
||||||
OBJECT = 12
|
WORLD = 12
|
||||||
ENTITY = 13
|
OBJECT = 13
|
||||||
CUSTOM = 14
|
ENTITY = 14
|
||||||
SYNOP = 15
|
CUSTOM = 15
|
||||||
|
SYNOP = 16
|
||||||
|
|
||||||
# END Enum nwOutline
|
# END Enum nwOutline
|
||||||
|
|||||||
@@ -728,6 +728,7 @@ class GuiMainMenu(QMenuBar):
|
|||||||
self.mInsKWItems = {}
|
self.mInsKWItems = {}
|
||||||
self.mInsKWItems[nwKeyWords.TAG_KEY] = (QAction(self.mInsKeywords), "Ctrl+K, G")
|
self.mInsKWItems[nwKeyWords.TAG_KEY] = (QAction(self.mInsKeywords), "Ctrl+K, G")
|
||||||
self.mInsKWItems[nwKeyWords.POV_KEY] = (QAction(self.mInsKeywords), "Ctrl+K, V")
|
self.mInsKWItems[nwKeyWords.POV_KEY] = (QAction(self.mInsKeywords), "Ctrl+K, V")
|
||||||
|
self.mInsKWItems[nwKeyWords.FOCUS_KEY] = (QAction(self.mInsKeywords), "Ctrl+K, F")
|
||||||
self.mInsKWItems[nwKeyWords.CHAR_KEY] = (QAction(self.mInsKeywords), "Ctrl+K, C")
|
self.mInsKWItems[nwKeyWords.CHAR_KEY] = (QAction(self.mInsKeywords), "Ctrl+K, C")
|
||||||
self.mInsKWItems[nwKeyWords.PLOT_KEY] = (QAction(self.mInsKeywords), "Ctrl+K, P")
|
self.mInsKWItems[nwKeyWords.PLOT_KEY] = (QAction(self.mInsKeywords), "Ctrl+K, P")
|
||||||
self.mInsKWItems[nwKeyWords.TIME_KEY] = (QAction(self.mInsKeywords), "Ctrl+K, T")
|
self.mInsKWItems[nwKeyWords.TIME_KEY] = (QAction(self.mInsKeywords), "Ctrl+K, T")
|
||||||
|
|||||||
@@ -49,6 +49,7 @@ class GuiOutline(QTreeWidget):
|
|||||||
nwOutline.WCOUNT : 50,
|
nwOutline.WCOUNT : 50,
|
||||||
nwOutline.PCOUNT : 50,
|
nwOutline.PCOUNT : 50,
|
||||||
nwOutline.POV : 100,
|
nwOutline.POV : 100,
|
||||||
|
nwOutline.FOCUS : 100,
|
||||||
nwOutline.CHAR : 100,
|
nwOutline.CHAR : 100,
|
||||||
nwOutline.PLOT : 100,
|
nwOutline.PLOT : 100,
|
||||||
nwOutline.TIME : 100,
|
nwOutline.TIME : 100,
|
||||||
@@ -68,6 +69,7 @@ class GuiOutline(QTreeWidget):
|
|||||||
nwOutline.WCOUNT : False,
|
nwOutline.WCOUNT : False,
|
||||||
nwOutline.PCOUNT : False,
|
nwOutline.PCOUNT : False,
|
||||||
nwOutline.POV : False,
|
nwOutline.POV : False,
|
||||||
|
nwOutline.FOCUS : True,
|
||||||
nwOutline.CHAR : False,
|
nwOutline.CHAR : False,
|
||||||
nwOutline.PLOT : False,
|
nwOutline.PLOT : False,
|
||||||
nwOutline.TIME : True,
|
nwOutline.TIME : True,
|
||||||
@@ -451,6 +453,7 @@ class GuiOutline(QTreeWidget):
|
|||||||
|
|
||||||
theRefs = self.theIndex.getReferences(tHandle, sTitle)
|
theRefs = self.theIndex.getReferences(tHandle, sTitle)
|
||||||
newItem.setText(self.colIndex[nwOutline.POV], ", ".join(theRefs[nwKeyWords.POV_KEY]))
|
newItem.setText(self.colIndex[nwOutline.POV], ", ".join(theRefs[nwKeyWords.POV_KEY]))
|
||||||
|
newItem.setText(self.colIndex[nwOutline.FOCUS], ", ".join(theRefs[nwKeyWords.FOCUS_KEY]))
|
||||||
newItem.setText(self.colIndex[nwOutline.CHAR], ", ".join(theRefs[nwKeyWords.CHAR_KEY]))
|
newItem.setText(self.colIndex[nwOutline.CHAR], ", ".join(theRefs[nwKeyWords.CHAR_KEY]))
|
||||||
newItem.setText(self.colIndex[nwOutline.PLOT], ", ".join(theRefs[nwKeyWords.PLOT_KEY]))
|
newItem.setText(self.colIndex[nwOutline.PLOT], ", ".join(theRefs[nwKeyWords.PLOT_KEY]))
|
||||||
newItem.setText(self.colIndex[nwOutline.TIME], ", ".join(theRefs[nwKeyWords.TIME_KEY]))
|
newItem.setText(self.colIndex[nwOutline.TIME], ", ".join(theRefs[nwKeyWords.TIME_KEY]))
|
||||||
|
|||||||
+25
-15
@@ -105,6 +105,7 @@ class GuiOutlineDetails(QScrollArea):
|
|||||||
|
|
||||||
# Tags
|
# Tags
|
||||||
self.povKeyLabel = QLabel("<b>%s</b>" % nwLabels.KEY_NAME[nwKeyWords.POV_KEY])
|
self.povKeyLabel = QLabel("<b>%s</b>" % nwLabels.KEY_NAME[nwKeyWords.POV_KEY])
|
||||||
|
self.focKeyLabel = QLabel("<b>%s</b>" % nwLabels.KEY_NAME[nwKeyWords.FOCUS_KEY])
|
||||||
self.chrKeyLabel = QLabel("<b>%s</b>" % nwLabels.KEY_NAME[nwKeyWords.CHAR_KEY])
|
self.chrKeyLabel = QLabel("<b>%s</b>" % nwLabels.KEY_NAME[nwKeyWords.CHAR_KEY])
|
||||||
self.pltKeyLabel = QLabel("<b>%s</b>" % nwLabels.KEY_NAME[nwKeyWords.PLOT_KEY])
|
self.pltKeyLabel = QLabel("<b>%s</b>" % nwLabels.KEY_NAME[nwKeyWords.PLOT_KEY])
|
||||||
self.timKeyLabel = QLabel("<b>%s</b>" % nwLabels.KEY_NAME[nwKeyWords.TIME_KEY])
|
self.timKeyLabel = QLabel("<b>%s</b>" % nwLabels.KEY_NAME[nwKeyWords.TIME_KEY])
|
||||||
@@ -114,6 +115,7 @@ class GuiOutlineDetails(QScrollArea):
|
|||||||
self.cstKeyLabel = QLabel("<b>%s</b>" % nwLabels.KEY_NAME[nwKeyWords.CUSTOM_KEY])
|
self.cstKeyLabel = QLabel("<b>%s</b>" % nwLabels.KEY_NAME[nwKeyWords.CUSTOM_KEY])
|
||||||
|
|
||||||
self.povKeyLWrap = QHBoxLayout()
|
self.povKeyLWrap = QHBoxLayout()
|
||||||
|
self.focKeyLWrap = QHBoxLayout()
|
||||||
self.chrKeyLWrap = QHBoxLayout()
|
self.chrKeyLWrap = QHBoxLayout()
|
||||||
self.pltKeyLWrap = QHBoxLayout()
|
self.pltKeyLWrap = QHBoxLayout()
|
||||||
self.timKeyLWrap = QHBoxLayout()
|
self.timKeyLWrap = QHBoxLayout()
|
||||||
@@ -123,6 +125,7 @@ class GuiOutlineDetails(QScrollArea):
|
|||||||
self.cstKeyLWrap = QHBoxLayout()
|
self.cstKeyLWrap = QHBoxLayout()
|
||||||
|
|
||||||
self.povKeyValue = QLabel("")
|
self.povKeyValue = QLabel("")
|
||||||
|
self.focKeyValue = QLabel("")
|
||||||
self.chrKeyValue = QLabel("")
|
self.chrKeyValue = QLabel("")
|
||||||
self.pltKeyValue = QLabel("")
|
self.pltKeyValue = QLabel("")
|
||||||
self.timKeyValue = QLabel("")
|
self.timKeyValue = QLabel("")
|
||||||
@@ -132,6 +135,7 @@ class GuiOutlineDetails(QScrollArea):
|
|||||||
self.cstKeyValue = QLabel("")
|
self.cstKeyValue = QLabel("")
|
||||||
|
|
||||||
self.povKeyValue.setWordWrap(True)
|
self.povKeyValue.setWordWrap(True)
|
||||||
|
self.focKeyValue.setWordWrap(True)
|
||||||
self.chrKeyValue.setWordWrap(True)
|
self.chrKeyValue.setWordWrap(True)
|
||||||
self.pltKeyValue.setWordWrap(True)
|
self.pltKeyValue.setWordWrap(True)
|
||||||
self.timKeyValue.setWordWrap(True)
|
self.timKeyValue.setWordWrap(True)
|
||||||
@@ -141,6 +145,7 @@ class GuiOutlineDetails(QScrollArea):
|
|||||||
self.cstKeyValue.setWordWrap(True)
|
self.cstKeyValue.setWordWrap(True)
|
||||||
|
|
||||||
self.povKeyValue.linkActivated.connect(self._tagClicked)
|
self.povKeyValue.linkActivated.connect(self._tagClicked)
|
||||||
|
self.focKeyValue.linkActivated.connect(self._tagClicked)
|
||||||
self.chrKeyValue.linkActivated.connect(self._tagClicked)
|
self.chrKeyValue.linkActivated.connect(self._tagClicked)
|
||||||
self.pltKeyValue.linkActivated.connect(self._tagClicked)
|
self.pltKeyValue.linkActivated.connect(self._tagClicked)
|
||||||
self.timKeyValue.linkActivated.connect(self._tagClicked)
|
self.timKeyValue.linkActivated.connect(self._tagClicked)
|
||||||
@@ -150,6 +155,7 @@ class GuiOutlineDetails(QScrollArea):
|
|||||||
self.cstKeyValue.linkActivated.connect(self._tagClicked)
|
self.cstKeyValue.linkActivated.connect(self._tagClicked)
|
||||||
|
|
||||||
self.povKeyLWrap.addWidget(self.povKeyValue, 1)
|
self.povKeyLWrap.addWidget(self.povKeyValue, 1)
|
||||||
|
self.focKeyLWrap.addWidget(self.focKeyValue, 1)
|
||||||
self.chrKeyLWrap.addWidget(self.chrKeyValue, 1)
|
self.chrKeyLWrap.addWidget(self.chrKeyValue, 1)
|
||||||
self.pltKeyLWrap.addWidget(self.pltKeyValue, 1)
|
self.pltKeyLWrap.addWidget(self.pltKeyValue, 1)
|
||||||
self.timKeyLWrap.addWidget(self.timKeyValue, 1)
|
self.timKeyLWrap.addWidget(self.timKeyValue, 1)
|
||||||
@@ -190,23 +196,25 @@ class GuiOutlineDetails(QScrollArea):
|
|||||||
|
|
||||||
self.tagsForm.addWidget(self.povKeyLabel, 0, 0, 1, 1, Qt.AlignTop | Qt.AlignLeft)
|
self.tagsForm.addWidget(self.povKeyLabel, 0, 0, 1, 1, Qt.AlignTop | Qt.AlignLeft)
|
||||||
self.tagsForm.addLayout(self.povKeyLWrap, 0, 1, 1, 1, Qt.AlignTop | Qt.AlignLeft)
|
self.tagsForm.addLayout(self.povKeyLWrap, 0, 1, 1, 1, Qt.AlignTop | Qt.AlignLeft)
|
||||||
self.tagsForm.addWidget(self.chrKeyLabel, 1, 0, 1, 1, Qt.AlignTop | Qt.AlignLeft)
|
self.tagsForm.addWidget(self.focKeyLabel, 1, 0, 1, 1, Qt.AlignTop | Qt.AlignLeft)
|
||||||
self.tagsForm.addLayout(self.chrKeyLWrap, 1, 1, 1, 1, Qt.AlignTop | Qt.AlignLeft)
|
self.tagsForm.addLayout(self.focKeyLWrap, 1, 1, 1, 1, Qt.AlignTop | Qt.AlignLeft)
|
||||||
self.tagsForm.addWidget(self.pltKeyLabel, 2, 0, 1, 1, Qt.AlignTop | Qt.AlignLeft)
|
self.tagsForm.addWidget(self.chrKeyLabel, 2, 0, 1, 1, Qt.AlignTop | Qt.AlignLeft)
|
||||||
self.tagsForm.addLayout(self.pltKeyLWrap, 2, 1, 1, 1, Qt.AlignTop | Qt.AlignLeft)
|
self.tagsForm.addLayout(self.chrKeyLWrap, 2, 1, 1, 1, Qt.AlignTop | Qt.AlignLeft)
|
||||||
self.tagsForm.addWidget(self.timKeyLabel, 3, 0, 1, 1, Qt.AlignTop | Qt.AlignLeft)
|
self.tagsForm.addWidget(self.pltKeyLabel, 3, 0, 1, 1, Qt.AlignTop | Qt.AlignLeft)
|
||||||
self.tagsForm.addLayout(self.timKeyLWrap, 3, 1, 1, 1, Qt.AlignTop | Qt.AlignLeft)
|
self.tagsForm.addLayout(self.pltKeyLWrap, 3, 1, 1, 1, Qt.AlignTop | Qt.AlignLeft)
|
||||||
self.tagsForm.addWidget(self.wldKeyLabel, 4, 0, 1, 1, Qt.AlignTop | Qt.AlignLeft)
|
self.tagsForm.addWidget(self.timKeyLabel, 4, 0, 1, 1, Qt.AlignTop | Qt.AlignLeft)
|
||||||
self.tagsForm.addLayout(self.wldKeyLWrap, 4, 1, 1, 1, Qt.AlignTop | Qt.AlignLeft)
|
self.tagsForm.addLayout(self.timKeyLWrap, 4, 1, 1, 1, Qt.AlignTop | Qt.AlignLeft)
|
||||||
self.tagsForm.addWidget(self.objKeyLabel, 5, 0, 1, 1, Qt.AlignTop | Qt.AlignLeft)
|
self.tagsForm.addWidget(self.wldKeyLabel, 5, 0, 1, 1, Qt.AlignTop | Qt.AlignLeft)
|
||||||
self.tagsForm.addLayout(self.objKeyLWrap, 5, 1, 1, 1, Qt.AlignTop | Qt.AlignLeft)
|
self.tagsForm.addLayout(self.wldKeyLWrap, 5, 1, 1, 1, Qt.AlignTop | Qt.AlignLeft)
|
||||||
self.tagsForm.addWidget(self.entKeyLabel, 6, 0, 1, 1, Qt.AlignTop | Qt.AlignLeft)
|
self.tagsForm.addWidget(self.objKeyLabel, 6, 0, 1, 1, Qt.AlignTop | Qt.AlignLeft)
|
||||||
self.tagsForm.addLayout(self.entKeyLWrap, 6, 1, 1, 1, Qt.AlignTop | Qt.AlignLeft)
|
self.tagsForm.addLayout(self.objKeyLWrap, 6, 1, 1, 1, Qt.AlignTop | Qt.AlignLeft)
|
||||||
self.tagsForm.addWidget(self.cstKeyLabel, 7, 0, 1, 1, Qt.AlignTop | Qt.AlignLeft)
|
self.tagsForm.addWidget(self.entKeyLabel, 7, 0, 1, 1, Qt.AlignTop | Qt.AlignLeft)
|
||||||
self.tagsForm.addLayout(self.cstKeyLWrap, 7, 1, 1, 1, Qt.AlignTop | Qt.AlignLeft)
|
self.tagsForm.addLayout(self.entKeyLWrap, 7, 1, 1, 1, Qt.AlignTop | Qt.AlignLeft)
|
||||||
|
self.tagsForm.addWidget(self.cstKeyLabel, 8, 0, 1, 1, Qt.AlignTop | Qt.AlignLeft)
|
||||||
|
self.tagsForm.addLayout(self.cstKeyLWrap, 8, 1, 1, 1, Qt.AlignTop | Qt.AlignLeft)
|
||||||
|
|
||||||
self.tagsForm.setColumnStretch(1, 1)
|
self.tagsForm.setColumnStretch(1, 1)
|
||||||
self.tagsForm.setRowStretch(7, 1)
|
self.tagsForm.setRowStretch(8, 1)
|
||||||
self.tagsForm.setHorizontalSpacing(hSpace)
|
self.tagsForm.setHorizontalSpacing(hSpace)
|
||||||
self.tagsForm.setVerticalSpacing(vSpace)
|
self.tagsForm.setVerticalSpacing(vSpace)
|
||||||
|
|
||||||
@@ -257,6 +265,7 @@ class GuiOutlineDetails(QScrollArea):
|
|||||||
self.pCValue.setText("")
|
self.pCValue.setText("")
|
||||||
self.synopValue.setText("")
|
self.synopValue.setText("")
|
||||||
self.povKeyValue.setText("")
|
self.povKeyValue.setText("")
|
||||||
|
self.focKeyValue.setText("")
|
||||||
self.chrKeyValue.setText("")
|
self.chrKeyValue.setText("")
|
||||||
self.pltKeyValue.setText("")
|
self.pltKeyValue.setText("")
|
||||||
self.timKeyValue.setText("")
|
self.timKeyValue.setText("")
|
||||||
@@ -296,6 +305,7 @@ class GuiOutlineDetails(QScrollArea):
|
|||||||
self.synopValue.setText(novIdx["synopsis"])
|
self.synopValue.setText(novIdx["synopsis"])
|
||||||
|
|
||||||
self.povKeyValue.setText(self._formatTags(theRefs, nwKeyWords.POV_KEY))
|
self.povKeyValue.setText(self._formatTags(theRefs, nwKeyWords.POV_KEY))
|
||||||
|
self.focKeyValue.setText(self._formatTags(theRefs, nwKeyWords.FOCUS_KEY))
|
||||||
self.chrKeyValue.setText(self._formatTags(theRefs, nwKeyWords.CHAR_KEY))
|
self.chrKeyValue.setText(self._formatTags(theRefs, nwKeyWords.CHAR_KEY))
|
||||||
self.pltKeyValue.setText(self._formatTags(theRefs, nwKeyWords.PLOT_KEY))
|
self.pltKeyValue.setText(self._formatTags(theRefs, nwKeyWords.PLOT_KEY))
|
||||||
self.timKeyValue.setText(self._formatTags(theRefs, nwKeyWords.TIME_KEY))
|
self.timKeyValue.setText(self._formatTags(theRefs, nwKeyWords.TIME_KEY))
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
### Another Scene
|
### Another Scene
|
||||||
|
|
||||||
@pov: John
|
@pov: John
|
||||||
|
@focus: Jane
|
||||||
@location: Earth
|
@location: Earth
|
||||||
|
|
||||||
Adding more scenes to a chapter is as easy as adding more scene files, with a level three heading, or just adding another level three heading in the same file if that works for the way you want to structure your files.
|
Adding more scenes to a chapter is as easy as adding more scene files, with a level three heading, or just adding another level three heading in the same file if that works for the way you want to structure your files.
|
||||||
@@ -13,6 +14,7 @@ In fact, if you wish, you can add all the scenes in the chapter file too. All no
|
|||||||
### More Scenes
|
### More Scenes
|
||||||
|
|
||||||
@pov: Jane
|
@pov: Jane
|
||||||
|
@focus: John
|
||||||
@location: Earth
|
@location: Earth
|
||||||
|
|
||||||
This is a second scene in the same file as the previous scene. You can always split the files up later.
|
This is a second scene in the same file as the previous scene. You can always split the files up later.
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
<?xml version='1.0' encoding='utf-8'?>
|
<?xml version='1.0' encoding='utf-8'?>
|
||||||
<novelWriterXML appVersion="1.2a0" hexVersion="0x010200a0" fileVersion="1.2" timeStamp="2021-02-01 23:18:32">
|
<novelWriterXML appVersion="1.2a0" hexVersion="0x010200a0" fileVersion="1.2" timeStamp="2021-02-10 21:46:25">
|
||||||
<project>
|
<project>
|
||||||
<name>Sample Project</name>
|
<name>Sample Project</name>
|
||||||
<title>Sample Project</title>
|
<title>Sample Project</title>
|
||||||
<author>Jane Smith</author>
|
<author>Jane Smith</author>
|
||||||
<author>Jay Doh</author>
|
<author>Jay Doh</author>
|
||||||
<saveCount>886</saveCount>
|
<saveCount>935</saveCount>
|
||||||
<autoCount>158</autoCount>
|
<autoCount>161</autoCount>
|
||||||
<editTime>42826</editTime>
|
<editTime>46219</editTime>
|
||||||
</project>
|
</project>
|
||||||
<settings>
|
<settings>
|
||||||
<doBackup>False</doBackup>
|
<doBackup>False</doBackup>
|
||||||
@@ -120,7 +120,7 @@
|
|||||||
<charCount>1810</charCount>
|
<charCount>1810</charCount>
|
||||||
<wordCount>318</wordCount>
|
<wordCount>318</wordCount>
|
||||||
<paraCount>8</paraCount>
|
<paraCount>8</paraCount>
|
||||||
<cursorPos>219</cursorPos>
|
<cursorPos>3</cursorPos>
|
||||||
</item>
|
</item>
|
||||||
<item handle="bc0cbd2a407f3" order="2" parent="e7ded148d6e4a">
|
<item handle="bc0cbd2a407f3" order="2" parent="e7ded148d6e4a">
|
||||||
<name>Another Scene</name>
|
<name>Another Scene</name>
|
||||||
@@ -132,7 +132,7 @@
|
|||||||
<charCount>476</charCount>
|
<charCount>476</charCount>
|
||||||
<wordCount>93</wordCount>
|
<wordCount>93</wordCount>
|
||||||
<paraCount>3</paraCount>
|
<paraCount>3</paraCount>
|
||||||
<cursorPos>428</cursorPos>
|
<cursorPos>430</cursorPos>
|
||||||
</item>
|
</item>
|
||||||
<item handle="ba8a28a246524" order="3" parent="e7ded148d6e4a">
|
<item handle="ba8a28a246524" order="3" parent="e7ded148d6e4a">
|
||||||
<name>Interlude</name>
|
<name>Interlude</name>
|
||||||
|
|||||||
@@ -500,6 +500,10 @@ def testGuiMenu_Insert(qtbot, monkeypatch, nwGUI, fncDir, fncProj):
|
|||||||
nwGUI.mainMenu.mInsKWItems[nwKeyWords.POV_KEY][0].activate(QAction.Trigger)
|
nwGUI.mainMenu.mInsKWItems[nwKeyWords.POV_KEY][0].activate(QAction.Trigger)
|
||||||
assert nwGUI.docEditor.getText() == "Stuff\n%s: " % nwKeyWords.POV_KEY
|
assert nwGUI.docEditor.getText() == "Stuff\n%s: " % nwKeyWords.POV_KEY
|
||||||
|
|
||||||
|
nwGUI.docEditor.setText("Stuff")
|
||||||
|
nwGUI.mainMenu.mInsKWItems[nwKeyWords.FOCUS_KEY][0].activate(QAction.Trigger)
|
||||||
|
assert nwGUI.docEditor.getText() == "Stuff\n%s: " % nwKeyWords.FOCUS_KEY
|
||||||
|
|
||||||
nwGUI.docEditor.setText("Stuff")
|
nwGUI.docEditor.setText("Stuff")
|
||||||
nwGUI.mainMenu.mInsKWItems[nwKeyWords.CHAR_KEY][0].activate(QAction.Trigger)
|
nwGUI.mainMenu.mInsKWItems[nwKeyWords.CHAR_KEY][0].activate(QAction.Trigger)
|
||||||
assert nwGUI.docEditor.getText() == "Stuff\n%s: " % nwKeyWords.CHAR_KEY
|
assert nwGUI.docEditor.getText() == "Stuff\n%s: " % nwKeyWords.CHAR_KEY
|
||||||
|
|||||||
Reference in New Issue
Block a user