mirror of
https://github.com/olivierkes/manuskript.git
synced 2024-05-11 08:22:29 +12:00
Merge pull request #748 from TheJackiMonster/optional-pov
Enabling/Disabling POV for a specific character
This commit is contained in:
commit
e18944ee4d
|
@ -16,6 +16,7 @@ class Character(IntEnum):
|
|||
summaryPara = 8
|
||||
summaryFull = 9
|
||||
notes = 10
|
||||
pov = 11
|
||||
|
||||
class Plot(IntEnum):
|
||||
name = 0
|
||||
|
|
|
@ -40,6 +40,7 @@ characterMap = OrderedDict([
|
|||
(Character.name, "Name"),
|
||||
(Character.ID, "ID"),
|
||||
(Character.importance, "Importance"),
|
||||
(Character.pov, "POV"),
|
||||
(Character.motivation, "Motivation"),
|
||||
(Character.goal, "Goal"),
|
||||
(Character.conflict, "Conflict"),
|
||||
|
@ -47,7 +48,7 @@ characterMap = OrderedDict([
|
|||
(Character.summarySentence, "Phrase Summary"),
|
||||
(Character.summaryPara, "Paragraph Summary"),
|
||||
(Character.summaryFull, "Full Summary"),
|
||||
(Character.notes, "Notes"),
|
||||
(Character.notes, "Notes")
|
||||
])
|
||||
|
||||
# If true, logs infos while saving and loading.
|
||||
|
|
|
@ -346,6 +346,9 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
|||
# Slider importance
|
||||
self.updateCharacterImportance(c.ID())
|
||||
|
||||
# POV state
|
||||
self.updateCharacterPOVState(c.ID())
|
||||
|
||||
# Character Infos
|
||||
self.tblPersoInfos.setRootIndex(index)
|
||||
|
||||
|
@ -366,6 +369,18 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
|||
c = self.mdlCharacter.getCharacterByID(ID)
|
||||
self.sldPersoImportance.setValue(int(c.importance()))
|
||||
|
||||
def updateCharacterPOVState(self, ID):
|
||||
c = self.mdlCharacter.getCharacterByID(ID)
|
||||
self.disconnectAll(self.chkPersoPOV.stateChanged, self.lstCharacters.changeCharacterPOVState)
|
||||
|
||||
if c.pov():
|
||||
self.chkPersoPOV.setCheckState(Qt.Checked)
|
||||
else:
|
||||
self.chkPersoPOV.setCheckState(Qt.Unchecked)
|
||||
|
||||
self.chkPersoPOV.stateChanged.connect(self.lstCharacters.changeCharacterPOVState, F.AUC)
|
||||
self.chkPersoPOV.setEnabled(len(self.mdlOutline.findItemsByPOV(ID)) == 0)
|
||||
|
||||
###############################################################################
|
||||
# PLOTS
|
||||
###############################################################################
|
||||
|
@ -935,9 +950,13 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
|||
self.tblPersoInfos.setModel(self.mdlCharacter)
|
||||
|
||||
self.btnAddPerso.clicked.connect(self.mdlCharacter.addCharacter, F.AUC)
|
||||
|
||||
try:
|
||||
self.btnRmPerso.clicked.connect(self.lstCharacters.removeCharacter, F.AUC)
|
||||
|
||||
self.btnPersoColor.clicked.connect(self.lstCharacters.choseCharacterColor, F.AUC)
|
||||
self.chkPersoPOV.stateChanged.connect(self.lstCharacters.changeCharacterPOVState, F.AUC)
|
||||
|
||||
self.btnPersoAddInfo.clicked.connect(self.lstCharacters.addCharacterInfo, F.AUC)
|
||||
self.btnPersoRmInfo.clicked.connect(self.lstCharacters.removeCharacterInfo, F.AUC)
|
||||
except TypeError:
|
||||
|
@ -1091,7 +1110,10 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
|||
# Characters
|
||||
self.disconnectAll(self.btnAddPerso.clicked, self.mdlCharacter.addCharacter)
|
||||
self.disconnectAll(self.btnRmPerso.clicked, self.lstCharacters.removeCharacter)
|
||||
|
||||
self.disconnectAll(self.btnPersoColor.clicked, self.lstCharacters.choseCharacterColor)
|
||||
self.disconnectAll(self.chkPersoPOV.stateChanged, self.lstCharacters.changeCharacterPOVState)
|
||||
|
||||
self.disconnectAll(self.btnPersoAddInfo.clicked, self.lstCharacters.addCharacterInfo)
|
||||
self.disconnectAll(self.btnPersoRmInfo.clicked, self.lstCharacters.removeCharacterInfo)
|
||||
|
||||
|
|
|
@ -132,6 +132,9 @@ class characterModel(QAbstractItemModel):
|
|||
def importance(self, row):
|
||||
return self.character(row).importance()
|
||||
|
||||
def pov(self, row):
|
||||
return self.character(row).pov()
|
||||
|
||||
###############################################################################
|
||||
# MODEL QUERIES
|
||||
###############################################################################
|
||||
|
@ -143,8 +146,10 @@ class characterModel(QAbstractItemModel):
|
|||
@return: array of array of ´character´, by importance.
|
||||
"""
|
||||
r = [[], [], []]
|
||||
|
||||
for c in self.characters:
|
||||
r[2-int(c.importance())].append(c)
|
||||
|
||||
return r
|
||||
|
||||
def getCharacterByID(self, ID):
|
||||
|
@ -153,6 +158,7 @@ class characterModel(QAbstractItemModel):
|
|||
for c in self.characters:
|
||||
if c.ID() == ID:
|
||||
return c
|
||||
|
||||
return None
|
||||
|
||||
###############################################################################
|
||||
|
@ -231,6 +237,7 @@ class Character():
|
|||
self.assignUniqueID()
|
||||
self.assignRandomColor()
|
||||
self._data[C.importance.value] = "0"
|
||||
self._data[C.pov.value] = "True"
|
||||
|
||||
self.infos = []
|
||||
|
||||
|
@ -274,6 +281,22 @@ class Character():
|
|||
"""
|
||||
return iconColor(self.icon)
|
||||
|
||||
def setPOVEnabled(self, enabled):
|
||||
if enabled != self.pov():
|
||||
if enabled:
|
||||
self._data[C.pov.value] = 'True'
|
||||
else:
|
||||
self._data[C.pov.value] = 'False'
|
||||
|
||||
try:
|
||||
self._model.dataChanged.emit(self.index(), self.index())
|
||||
except:
|
||||
# If it is the initialisation, won't be able to emit
|
||||
pass
|
||||
|
||||
def pov(self):
|
||||
return self._data[C.pov.value] == 'True'
|
||||
|
||||
def assignUniqueID(self, parent=QModelIndex()):
|
||||
"""Assigns an unused character ID."""
|
||||
vals = []
|
||||
|
|
47
manuskript/models/characterPOVModel.py
Normal file
47
manuskript/models/characterPOVModel.py
Normal file
|
@ -0,0 +1,47 @@
|
|||
#!/usr/bin/env python
|
||||
# --!-- coding: utf8 --!--
|
||||
from PyQt5.QtCore import QModelIndex, QSortFilterProxyModel
|
||||
|
||||
|
||||
class characterPOVModel(QSortFilterProxyModel):
|
||||
|
||||
def __init__(self, sourceModel, parent=None):
|
||||
QSortFilterProxyModel.__init__(self, parent)
|
||||
|
||||
self.setSourceModel(sourceModel)
|
||||
|
||||
if sourceModel:
|
||||
sourceModel.dataChanged.connect(self.sourceDataChanged)
|
||||
|
||||
def filterAcceptsRow(self, sourceRow, sourceParent):
|
||||
return self.sourceModel().pov(sourceRow)
|
||||
|
||||
def rowToSource(self, row):
|
||||
index = self.index(row, 0)
|
||||
sourceIndex = self.mapToSource(index)
|
||||
return sourceIndex.row()
|
||||
|
||||
def sourceDataChanged(self, topLeft, bottomRight):
|
||||
self.invalidateFilter()
|
||||
|
||||
###############################################################################
|
||||
# CHARACTER QUERIES
|
||||
###############################################################################
|
||||
|
||||
def character(self, row):
|
||||
return self.sourceModel().character(self.rowToSource(row))
|
||||
|
||||
def name(self, row):
|
||||
return self.sourceModel().name(self.rowToSource(row))
|
||||
|
||||
def icon(self, row):
|
||||
return self.sourceModel().icon(self.rowToSource(row))
|
||||
|
||||
def ID(self, row):
|
||||
return self.sourceModel().ID(self.rowToSource(row))
|
||||
|
||||
def importance(self, row):
|
||||
return self.sourceModel().importance(self.rowToSource(row))
|
||||
|
||||
def pov(self, row):
|
||||
return self.sourceModel().pov(self.rowToSource(row))
|
|
@ -2,12 +2,14 @@
|
|||
|
||||
# Form implementation generated from reading ui file 'manuskript/ui/mainWindow.ui'
|
||||
#
|
||||
# Created by: PyQt5 UI code generator 5.5.1
|
||||
# Created by: PyQt5 UI code generator 5.14.1
|
||||
#
|
||||
# WARNING! All changes made in this file will be lost!
|
||||
|
||||
|
||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||
|
||||
|
||||
class Ui_MainWindow(object):
|
||||
def setupUi(self, MainWindow):
|
||||
MainWindow.setObjectName("MainWindow")
|
||||
|
@ -378,69 +380,11 @@ class Ui_MainWindow(object):
|
|||
self.scrollAreaPersoInfos.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop)
|
||||
self.scrollAreaPersoInfos.setObjectName("scrollAreaPersoInfos")
|
||||
self.scrollAreaPersoInfosWidget = QtWidgets.QWidget()
|
||||
self.scrollAreaPersoInfosWidget.setGeometry(QtCore.QRect(0, 0, 204, 606))
|
||||
self.scrollAreaPersoInfosWidget.setGeometry(QtCore.QRect(0, 0, 453, 695))
|
||||
self.scrollAreaPersoInfosWidget.setObjectName("scrollAreaPersoInfosWidget")
|
||||
self.formLayout_8 = QtWidgets.QFormLayout(self.scrollAreaPersoInfosWidget)
|
||||
self.formLayout_8.setFieldGrowthPolicy(QtWidgets.QFormLayout.AllNonFixedFieldsGrow)
|
||||
self.formLayout_8.setObjectName("formLayout_8")
|
||||
self.label_4 = QtWidgets.QLabel(self.scrollAreaPersoInfosWidget)
|
||||
self.label_4.setObjectName("label_4")
|
||||
self.formLayout_8.setWidget(4, QtWidgets.QFormLayout.LabelRole, self.label_4)
|
||||
self.txtPersoMotivation = MDEditCompleter(self.scrollAreaPersoInfosWidget)
|
||||
self.txtPersoMotivation.setObjectName("txtPersoMotivation")
|
||||
self.formLayout_8.setWidget(4, QtWidgets.QFormLayout.FieldRole, self.txtPersoMotivation)
|
||||
self.label_5 = QtWidgets.QLabel(self.scrollAreaPersoInfosWidget)
|
||||
self.label_5.setObjectName("label_5")
|
||||
self.formLayout_8.setWidget(5, QtWidgets.QFormLayout.LabelRole, self.label_5)
|
||||
self.txtPersoGoal = MDEditCompleter(self.scrollAreaPersoInfosWidget)
|
||||
self.txtPersoGoal.setObjectName("txtPersoGoal")
|
||||
self.formLayout_8.setWidget(5, QtWidgets.QFormLayout.FieldRole, self.txtPersoGoal)
|
||||
self.label_6 = QtWidgets.QLabel(self.scrollAreaPersoInfosWidget)
|
||||
self.label_6.setObjectName("label_6")
|
||||
self.formLayout_8.setWidget(6, QtWidgets.QFormLayout.LabelRole, self.label_6)
|
||||
self.txtPersoConflict = MDEditCompleter(self.scrollAreaPersoInfosWidget)
|
||||
self.txtPersoConflict.setObjectName("txtPersoConflict")
|
||||
self.formLayout_8.setWidget(6, QtWidgets.QFormLayout.FieldRole, self.txtPersoConflict)
|
||||
self.label_7 = QtWidgets.QLabel(self.scrollAreaPersoInfosWidget)
|
||||
self.label_7.setObjectName("label_7")
|
||||
self.formLayout_8.setWidget(7, QtWidgets.QFormLayout.LabelRole, self.label_7)
|
||||
self.txtPersoEpiphany = MDEditCompleter(self.scrollAreaPersoInfosWidget)
|
||||
self.txtPersoEpiphany.setObjectName("txtPersoEpiphany")
|
||||
self.formLayout_8.setWidget(7, QtWidgets.QFormLayout.FieldRole, self.txtPersoEpiphany)
|
||||
self.label_24 = QtWidgets.QLabel(self.scrollAreaPersoInfosWidget)
|
||||
self.label_24.setObjectName("label_24")
|
||||
self.formLayout_8.setWidget(8, QtWidgets.QFormLayout.LabelRole, self.label_24)
|
||||
self.txtPersoSummarySentence = MDEditCompleter(self.scrollAreaPersoInfosWidget)
|
||||
self.txtPersoSummarySentence.setObjectName("txtPersoSummarySentence")
|
||||
self.formLayout_8.setWidget(8, QtWidgets.QFormLayout.FieldRole, self.txtPersoSummarySentence)
|
||||
self.label_8 = QtWidgets.QLabel(self.scrollAreaPersoInfosWidget)
|
||||
self.label_8.setObjectName("label_8")
|
||||
self.formLayout_8.setWidget(9, QtWidgets.QFormLayout.LabelRole, self.label_8)
|
||||
self.txtPersoSummaryPara = MDEditCompleter(self.scrollAreaPersoInfosWidget)
|
||||
self.txtPersoSummaryPara.setObjectName("txtPersoSummaryPara")
|
||||
self.formLayout_8.setWidget(9, QtWidgets.QFormLayout.FieldRole, self.txtPersoSummaryPara)
|
||||
self.horizontalLayout_21 = QtWidgets.QHBoxLayout()
|
||||
self.horizontalLayout_21.setObjectName("horizontalLayout_21")
|
||||
spacerItem10 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
|
||||
self.horizontalLayout_21.addItem(spacerItem10)
|
||||
self.btnStepFour = QtWidgets.QPushButton(self.scrollAreaPersoInfosWidget)
|
||||
icon = QtGui.QIcon.fromTheme("go-next")
|
||||
self.btnStepFour.setIcon(icon)
|
||||
self.btnStepFour.setFlat(True)
|
||||
self.btnStepFour.setObjectName("btnStepFour")
|
||||
self.horizontalLayout_21.addWidget(self.btnStepFour)
|
||||
self.formLayout_8.setLayout(10, QtWidgets.QFormLayout.FieldRole, self.horizontalLayout_21)
|
||||
self.label_18 = QtWidgets.QLabel(self.scrollAreaPersoInfosWidget)
|
||||
self.label_18.setObjectName("label_18")
|
||||
self.formLayout_8.setWidget(3, QtWidgets.QFormLayout.LabelRole, self.label_18)
|
||||
self.sldPersoImportance = sldImportance(self.scrollAreaPersoInfosWidget)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.sldPersoImportance.sizePolicy().hasHeightForWidth())
|
||||
self.sldPersoImportance.setSizePolicy(sizePolicy)
|
||||
self.sldPersoImportance.setObjectName("sldPersoImportance")
|
||||
self.formLayout_8.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.sldPersoImportance)
|
||||
self.label_3 = QtWidgets.QLabel(self.scrollAreaPersoInfosWidget)
|
||||
self.label_3.setObjectName("label_3")
|
||||
self.formLayout_8.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.label_3)
|
||||
|
@ -454,6 +398,73 @@ class Ui_MainWindow(object):
|
|||
self.btnPersoColor.setObjectName("btnPersoColor")
|
||||
self.horizontalLayout_3.addWidget(self.btnPersoColor)
|
||||
self.formLayout_8.setLayout(2, QtWidgets.QFormLayout.FieldRole, self.horizontalLayout_3)
|
||||
self.horizontalLayout_20 = QtWidgets.QHBoxLayout()
|
||||
self.horizontalLayout_20.setObjectName("horizontalLayout_20")
|
||||
self.sldPersoImportance = sldImportance(self.scrollAreaPersoInfosWidget)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.sldPersoImportance.sizePolicy().hasHeightForWidth())
|
||||
self.sldPersoImportance.setSizePolicy(sizePolicy)
|
||||
self.sldPersoImportance.setObjectName("sldPersoImportance")
|
||||
self.horizontalLayout_20.addWidget(self.sldPersoImportance)
|
||||
self.chkPersoPOV = QtWidgets.QCheckBox(self.scrollAreaPersoInfosWidget)
|
||||
self.chkPersoPOV.setChecked(False)
|
||||
self.chkPersoPOV.setAutoRepeat(False)
|
||||
self.chkPersoPOV.setTristate(False)
|
||||
self.chkPersoPOV.setObjectName("chkPersoPOV")
|
||||
self.horizontalLayout_20.addWidget(self.chkPersoPOV)
|
||||
self.formLayout_8.setLayout(4, QtWidgets.QFormLayout.FieldRole, self.horizontalLayout_20)
|
||||
self.label_4 = QtWidgets.QLabel(self.scrollAreaPersoInfosWidget)
|
||||
self.label_4.setObjectName("label_4")
|
||||
self.formLayout_8.setWidget(6, QtWidgets.QFormLayout.LabelRole, self.label_4)
|
||||
self.txtPersoMotivation = MDEditCompleter(self.scrollAreaPersoInfosWidget)
|
||||
self.txtPersoMotivation.setObjectName("txtPersoMotivation")
|
||||
self.formLayout_8.setWidget(6, QtWidgets.QFormLayout.FieldRole, self.txtPersoMotivation)
|
||||
self.label_5 = QtWidgets.QLabel(self.scrollAreaPersoInfosWidget)
|
||||
self.label_5.setObjectName("label_5")
|
||||
self.formLayout_8.setWidget(7, QtWidgets.QFormLayout.LabelRole, self.label_5)
|
||||
self.txtPersoGoal = MDEditCompleter(self.scrollAreaPersoInfosWidget)
|
||||
self.txtPersoGoal.setObjectName("txtPersoGoal")
|
||||
self.formLayout_8.setWidget(7, QtWidgets.QFormLayout.FieldRole, self.txtPersoGoal)
|
||||
self.label_6 = QtWidgets.QLabel(self.scrollAreaPersoInfosWidget)
|
||||
self.label_6.setObjectName("label_6")
|
||||
self.formLayout_8.setWidget(8, QtWidgets.QFormLayout.LabelRole, self.label_6)
|
||||
self.txtPersoConflict = MDEditCompleter(self.scrollAreaPersoInfosWidget)
|
||||
self.txtPersoConflict.setObjectName("txtPersoConflict")
|
||||
self.formLayout_8.setWidget(8, QtWidgets.QFormLayout.FieldRole, self.txtPersoConflict)
|
||||
self.label_7 = QtWidgets.QLabel(self.scrollAreaPersoInfosWidget)
|
||||
self.label_7.setObjectName("label_7")
|
||||
self.formLayout_8.setWidget(9, QtWidgets.QFormLayout.LabelRole, self.label_7)
|
||||
self.txtPersoEpiphany = MDEditCompleter(self.scrollAreaPersoInfosWidget)
|
||||
self.txtPersoEpiphany.setObjectName("txtPersoEpiphany")
|
||||
self.formLayout_8.setWidget(9, QtWidgets.QFormLayout.FieldRole, self.txtPersoEpiphany)
|
||||
self.label_24 = QtWidgets.QLabel(self.scrollAreaPersoInfosWidget)
|
||||
self.label_24.setObjectName("label_24")
|
||||
self.formLayout_8.setWidget(10, QtWidgets.QFormLayout.LabelRole, self.label_24)
|
||||
self.txtPersoSummarySentence = MDEditCompleter(self.scrollAreaPersoInfosWidget)
|
||||
self.txtPersoSummarySentence.setObjectName("txtPersoSummarySentence")
|
||||
self.formLayout_8.setWidget(10, QtWidgets.QFormLayout.FieldRole, self.txtPersoSummarySentence)
|
||||
self.label_8 = QtWidgets.QLabel(self.scrollAreaPersoInfosWidget)
|
||||
self.label_8.setObjectName("label_8")
|
||||
self.formLayout_8.setWidget(11, QtWidgets.QFormLayout.LabelRole, self.label_8)
|
||||
self.txtPersoSummaryPara = MDEditCompleter(self.scrollAreaPersoInfosWidget)
|
||||
self.txtPersoSummaryPara.setObjectName("txtPersoSummaryPara")
|
||||
self.formLayout_8.setWidget(11, QtWidgets.QFormLayout.FieldRole, self.txtPersoSummaryPara)
|
||||
self.horizontalLayout_21 = QtWidgets.QHBoxLayout()
|
||||
self.horizontalLayout_21.setObjectName("horizontalLayout_21")
|
||||
spacerItem10 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
|
||||
self.horizontalLayout_21.addItem(spacerItem10)
|
||||
self.btnStepFour = QtWidgets.QPushButton(self.scrollAreaPersoInfosWidget)
|
||||
icon = QtGui.QIcon.fromTheme("go-next")
|
||||
self.btnStepFour.setIcon(icon)
|
||||
self.btnStepFour.setFlat(True)
|
||||
self.btnStepFour.setObjectName("btnStepFour")
|
||||
self.horizontalLayout_21.addWidget(self.btnStepFour)
|
||||
self.formLayout_8.setLayout(12, QtWidgets.QFormLayout.FieldRole, self.horizontalLayout_21)
|
||||
self.label_18 = QtWidgets.QLabel(self.scrollAreaPersoInfosWidget)
|
||||
self.label_18.setObjectName("label_18")
|
||||
self.formLayout_8.setWidget(4, QtWidgets.QFormLayout.LabelRole, self.label_18)
|
||||
self.scrollAreaPersoInfos.setWidget(self.scrollAreaPersoInfosWidget)
|
||||
self.verticalLayout_20.addWidget(self.scrollAreaPersoInfos)
|
||||
self.tabPersos.addTab(self.info, "")
|
||||
|
@ -745,7 +756,7 @@ class Ui_MainWindow(object):
|
|||
self.treeWorld.setRootIsDecorated(False)
|
||||
self.treeWorld.setObjectName("treeWorld")
|
||||
self.treeWorld.header().setVisible(False)
|
||||
self.treeWorld.header().setDefaultSectionSize(0)
|
||||
self.treeWorld.header().setDefaultSectionSize(25)
|
||||
self.verticalLayout_32.addWidget(self.treeWorld)
|
||||
self.horizontalLayout_19 = QtWidgets.QHBoxLayout()
|
||||
self.horizontalLayout_19.setObjectName("horizontalLayout_19")
|
||||
|
@ -833,6 +844,7 @@ 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)
|
||||
|
@ -1029,7 +1041,7 @@ class Ui_MainWindow(object):
|
|||
self.horizontalLayout_2.addWidget(self.stack)
|
||||
MainWindow.setCentralWidget(self.centralwidget)
|
||||
self.menubar = QtWidgets.QMenuBar(MainWindow)
|
||||
self.menubar.setGeometry(QtCore.QRect(0, 0, 1112, 30))
|
||||
self.menubar.setGeometry(QtCore.QRect(0, 0, 1112, 24))
|
||||
self.menubar.setObjectName("menubar")
|
||||
self.menuFile = QtWidgets.QMenu(self.menubar)
|
||||
self.menuFile.setObjectName("menuFile")
|
||||
|
@ -1339,7 +1351,7 @@ class Ui_MainWindow(object):
|
|||
|
||||
self.retranslateUi(MainWindow)
|
||||
self.stack.setCurrentIndex(1)
|
||||
self.tabMain.setCurrentIndex(0)
|
||||
self.tabMain.setCurrentIndex(2)
|
||||
self.tabSummary.setCurrentIndex(0)
|
||||
self.tabPersos.setCurrentIndex(0)
|
||||
self.tabPlot.setCurrentIndex(0)
|
||||
|
@ -1484,6 +1496,8 @@ class Ui_MainWindow(object):
|
|||
self.tabMain.setTabText(self.tabMain.indexOf(self.lytTabSummary), _translate("MainWindow", "Summary"))
|
||||
self.groupBox.setTitle(_translate("MainWindow", "Names"))
|
||||
self.txtPersosFilter.setPlaceholderText(_translate("MainWindow", "Filter"))
|
||||
self.label_3.setText(_translate("MainWindow", "Name"))
|
||||
self.chkPersoPOV.setText(_translate("MainWindow", "Allow POV"))
|
||||
self.label_4.setText(_translate("MainWindow", "Motivation"))
|
||||
self.label_5.setText(_translate("MainWindow", "Goal"))
|
||||
self.label_6.setText(_translate("MainWindow", "Conflict"))
|
||||
|
@ -1492,7 +1506,6 @@ class Ui_MainWindow(object):
|
|||
self.label_8.setText(_translate("MainWindow", "<html><head/><body><p align=\"right\">One paragraph<br/>summary</p></body></html>"))
|
||||
self.btnStepFour.setText(_translate("MainWindow", "Next"))
|
||||
self.label_18.setText(_translate("MainWindow", "Importance"))
|
||||
self.label_3.setText(_translate("MainWindow", "Name"))
|
||||
self.tabPersos.setTabText(self.tabPersos.indexOf(self.info), _translate("MainWindow", "Basic info"))
|
||||
self.btnStepSix.setText(_translate("MainWindow", "Next"))
|
||||
self.tabPersos.setTabText(self.tabPersos.indexOf(self.tab_11), _translate("MainWindow", "Summary"))
|
||||
|
@ -1635,7 +1648,6 @@ class Ui_MainWindow(object):
|
|||
self.actFormatOrderedList.setText(_translate("MainWindow", "&Ordered list"))
|
||||
self.actFormatList.setText(_translate("MainWindow", "&Unordered list"))
|
||||
self.actFormatBlockquote.setText(_translate("MainWindow", "B&lockquote"))
|
||||
|
||||
from manuskript.ui.cheatSheet import cheatSheet
|
||||
from manuskript.ui.editors.mainEditor import mainEditor
|
||||
from manuskript.ui.search import search
|
||||
|
|
|
@ -124,7 +124,7 @@
|
|||
<enum>QTabWidget::Rounded</enum>
|
||||
</property>
|
||||
<property name="currentIndex">
|
||||
<number>0</number>
|
||||
<number>2</number>
|
||||
</property>
|
||||
<property name="documentMode">
|
||||
<bool>true</bool>
|
||||
|
@ -815,75 +815,126 @@
|
|||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>204</width>
|
||||
<height>606</height>
|
||||
<width>453</width>
|
||||
<height>695</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QFormLayout" name="formLayout_8">
|
||||
<property name="fieldGrowthPolicy">
|
||||
<enum>QFormLayout::AllNonFixedFieldsGrow</enum>
|
||||
</property>
|
||||
<item row="4" column="0">
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="text">
|
||||
<string>Name</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||
<item>
|
||||
<widget class="lineEditView" name="txtPersoName"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="btnPersoColor">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_20">
|
||||
<item>
|
||||
<widget class="sldImportance" name="sldPersoImportance" native="true">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="chkPersoPOV">
|
||||
<property name="text">
|
||||
<string>Allow POV</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="autoRepeat">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="tristate">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="6" column="0">
|
||||
<widget class="QLabel" name="label_4">
|
||||
<property name="text">
|
||||
<string>Motivation</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<item row="6" column="1">
|
||||
<widget class="MDEditCompleter" name="txtPersoMotivation"/>
|
||||
</item>
|
||||
<item row="5" column="0">
|
||||
<item row="7" column="0">
|
||||
<widget class="QLabel" name="label_5">
|
||||
<property name="text">
|
||||
<string>Goal</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="1">
|
||||
<item row="7" column="1">
|
||||
<widget class="MDEditCompleter" name="txtPersoGoal"/>
|
||||
</item>
|
||||
<item row="6" column="0">
|
||||
<item row="8" column="0">
|
||||
<widget class="QLabel" name="label_6">
|
||||
<property name="text">
|
||||
<string>Conflict</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="1">
|
||||
<item row="8" column="1">
|
||||
<widget class="MDEditCompleter" name="txtPersoConflict"/>
|
||||
</item>
|
||||
<item row="7" column="0">
|
||||
<item row="9" column="0">
|
||||
<widget class="QLabel" name="label_7">
|
||||
<property name="text">
|
||||
<string>Epiphany</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="1">
|
||||
<item row="9" column="1">
|
||||
<widget class="MDEditCompleter" name="txtPersoEpiphany"/>
|
||||
</item>
|
||||
<item row="8" column="0">
|
||||
<item row="10" column="0">
|
||||
<widget class="QLabel" name="label_24">
|
||||
<property name="text">
|
||||
<string><html><head/><body><p align="right">One sentence<br/>summary</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="8" column="1">
|
||||
<item row="10" column="1">
|
||||
<widget class="MDEditCompleter" name="txtPersoSummarySentence"/>
|
||||
</item>
|
||||
<item row="9" column="0">
|
||||
<item row="11" column="0">
|
||||
<widget class="QLabel" name="label_8">
|
||||
<property name="text">
|
||||
<string><html><head/><body><p align="right">One paragraph<br/>summary</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="9" column="1">
|
||||
<item row="11" column="1">
|
||||
<widget class="MDEditCompleter" name="txtPersoSummaryPara"/>
|
||||
</item>
|
||||
<item row="10" column="1">
|
||||
<item row="12" column="1">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_21">
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_3">
|
||||
|
@ -914,44 +965,13 @@
|
|||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<item row="4" column="0">
|
||||
<widget class="QLabel" name="label_18">
|
||||
<property name="text">
|
||||
<string>Importance</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="sldImportance" name="sldPersoImportance" native="true">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="text">
|
||||
<string>Name</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||
<item>
|
||||
<widget class="lineEditView" name="txtPersoName"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="btnPersoColor">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
|
@ -1547,7 +1567,7 @@
|
|||
<bool>false</bool>
|
||||
</attribute>
|
||||
<attribute name="headerDefaultSectionSize">
|
||||
<number>0</number>
|
||||
<number>25</number>
|
||||
</attribute>
|
||||
</widget>
|
||||
</item>
|
||||
|
@ -2095,7 +2115,7 @@
|
|||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1112</width>
|
||||
<height>30</height>
|
||||
<height>24</height>
|
||||
</rect>
|
||||
</property>
|
||||
<widget class="QMenu" name="menuFile">
|
||||
|
|
|
@ -130,22 +130,30 @@ class characterTreeView(QTreeWidget):
|
|||
def choseCharacterColor(self):
|
||||
ID = self.currentCharacterID()
|
||||
c = self._model.getCharacterByID(ID)
|
||||
|
||||
if c:
|
||||
color = iconColor(c.icon)
|
||||
else:
|
||||
color = Qt.white
|
||||
|
||||
self.colorDialog = QColorDialog(color, mainWindow())
|
||||
color = self.colorDialog.getColor(color)
|
||||
|
||||
if color.isValid():
|
||||
c.setColor(color)
|
||||
mainWindow().updateCharacterColor(ID)
|
||||
|
||||
def changeCharacterPOVState(self, state):
|
||||
ID = self.currentCharacterID()
|
||||
c = self._model.getCharacterByID(ID)
|
||||
c.setPOVEnabled(state == Qt.Checked)
|
||||
mainWindow().updateCharacterPOVState(ID)
|
||||
|
||||
def addCharacterInfo(self):
|
||||
self._model.addCharacterInfo(self.currentCharacterID())
|
||||
|
||||
def removeCharacterInfo(self):
|
||||
self._model.removeCharacterInfo(self.currentCharacterID(),
|
||||
)
|
||||
self._model.removeCharacterInfo(self.currentCharacterID())
|
||||
|
||||
def currentCharacterID(self):
|
||||
ID = None
|
||||
|
|
|
@ -5,6 +5,7 @@ from PyQt5.QtGui import QIntValidator
|
|||
|
||||
from manuskript.enums import Outline
|
||||
from manuskript.ui.views.propertiesView_ui import Ui_propertiesView
|
||||
from manuskript.models.characterPOVModel import characterPOVModel
|
||||
|
||||
|
||||
class propertiesView(QWidget, Ui_propertiesView):
|
||||
|
@ -14,7 +15,7 @@ class propertiesView(QWidget, Ui_propertiesView):
|
|||
self.txtGoal.setColumn(Outline.setGoal)
|
||||
|
||||
def setModels(self, mdlOutline, mdlCharacter, mdlLabels, mdlStatus):
|
||||
self.cmbPOV.setModels(mdlCharacter, mdlOutline)
|
||||
self.cmbPOV.setModels(characterPOVModel(mdlCharacter), mdlOutline)
|
||||
self.cmbLabel.setModels(mdlLabels, mdlOutline)
|
||||
self.cmbStatus.setModels(mdlStatus, mdlOutline)
|
||||
self.chkCompile.setModel(mdlOutline)
|
||||
|
|
Loading…
Reference in a new issue