diff --git a/TODO.t2t b/TODO.t2t
index c314ad5..b1f7b5f 100644
--- a/TODO.t2t
+++ b/TODO.t2t
@@ -3,4 +3,7 @@
Features
- Coach (entrer le nombre de mot viser, se fixer des objectifs quotidiens / hebdomadaires (en temps, ou en mots, min ou max), faire des statistiques)
- Différents modes: simple (que le outliner / rédacteur), snowflake strict (cache les éléments tant que le précédent n'a pas été accompli), snowflake souple (tout est affiché mais permet de naviger, avec conseils)
-- Boîte à sable: endroit pour expérimenter, des scenes particulières ou des perso en situations spéciales. Avec suggestions de thèmes / lieux / ...
\ No newline at end of file
+- Boîte à sable: endroit pour expérimenter, des scenes particulières ou des perso en situations spéciales. Avec suggestions de thèmes / lieux / ...
+
+Outline:
+- Afficher le nombre de mots, et la cible, et une barre de progressions
\ No newline at end of file
diff --git a/src/enums.py b/src/enums.py
index 46fcc5b..f226aba 100644
--- a/src/enums.py
+++ b/src/enums.py
@@ -36,3 +36,6 @@ class Outline(Enum):
status = 7
compile = 8
text = 9
+ wordCount = 10
+ goal = 11
+ goalPercentage = 12
diff --git a/src/functions.py b/src/functions.py
new file mode 100644
index 0000000..498d45f
--- /dev/null
+++ b/src/functions.py
@@ -0,0 +1,8 @@
+#!/usr/bin/env python
+#--!-- coding: utf8 --!--
+
+from __future__ import print_function
+from __future__ import unicode_literals
+
+def wordCount(text):
+ return len(text.strip().split(" ")) if text else 0
\ No newline at end of file
diff --git a/src/mainWindow.py b/src/mainWindow.py
index 220e512..863464b 100644
--- a/src/mainWindow.py
+++ b/src/mainWindow.py
@@ -13,6 +13,7 @@ from loadSave import *
from enums import *
from models.outlineModel import *
from models.persosProxyModel import *
+from functions import *
class MainWindow(QMainWindow, Ui_MainWindow):
def __init__(self):
@@ -148,16 +149,20 @@ class MainWindow(QMainWindow, Ui_MainWindow):
]
for w, i in mapping:
self.mprPlan.addMapping(w, i)
+
+ self.treePlanOutline.selectionModel().currentChanged.connect(lambda idx: self.mprPlan.setRootIndex(idx.parent()))
self.treePlanOutline.selectionModel().currentChanged.connect(self.mprPlan.setCurrentModelIndex)
self.treePlanOutline.selectionModel().currentChanged.connect(self.cmbPlanPOV.setCurrentModelIndex)
self.treeRedacOutline.setSelectionModel(self.treePlanOutline.selectionModel())
+
for c in range(1, self.mdlOutline.columnCount()):
self.treeRedacOutline.hideColumn(c)
self.treePlanOutline.hideColumn(c)
- for c in [Outline.POV.value, Outline.status.value, Outline.compile.value]:
+ for c in [Outline.POV.value, Outline.status.value, Outline.compile.value, Outline.wordCount.value, Outline.goal.value, Outline.goalPercentage.value]:
self.treePlanOutline.showColumn(c)
+
self.btnRedacAddFolder.clicked.connect(lambda: self.outlineAddItem("folder"))
self.btnPlanAddFolder.clicked.connect(lambda: self.outlineAddItem("folder"))
self.btnRedacAddScene.clicked.connect(lambda: self.outlineAddItem("scene"))
@@ -167,6 +172,8 @@ class MainWindow(QMainWindow, Ui_MainWindow):
self.cmbRedacPOV.setModels(self.mdlPersos, self.mdlOutline)
self.cmbRedacStatus.setModel(self.mdlOutline)
+ #self.chkRedacCompile.setModel(self.mdlOutline)
+
self.mprOutline = QDataWidgetMapper()
self.mprOutline.setModel(self.mdlOutline)
mapping = [
@@ -174,16 +181,18 @@ class MainWindow(QMainWindow, Ui_MainWindow):
(self.txtRedacSummarySentance, Outline.summarySentance.value),
(self.txtRedacSummaryFull, Outline.summaryFull.value),
(self.txtRedacNotes, Outline.notes.value),
- (self.cmbRedacStatus, Outline.status.value),
- (self.chkRedacCompile, Outline.compile.value),
- (self.txtRedacTitle, Outline.title.value)
+ (self.txtRedacTitle, Outline.title.value),
+ (self.txtRedacGoal, Outline.goal.value)
]
for w, i in mapping:
self.mprOutline.addMapping(w, i)
+ self.treeRedacOutline.selectionModel().currentChanged.connect(lambda idx: self.mprOutline.setRootIndex(idx.parent()))
self.treeRedacOutline.selectionModel().currentChanged.connect(self.mprOutline.setCurrentModelIndex)
self.treeRedacOutline.selectionModel().currentChanged.connect(self.cmbRedacPOV.setCurrentModelIndex)
self.treeRedacOutline.selectionModel().currentChanged.connect(self.cmbRedacStatus.setCurrentModelIndex)
+ self.treeRedacOutline.selectionModel().currentChanged.connect(self.chkRedacCompile.setCurrentModelIndex)
+
self.treeRedacOutline.selectionModel().currentChanged.connect(lambda idx: self.lblRedacPOV.setHidden(idx.internalPointer().isFolder()))
self.treeRedacOutline.selectionModel().currentChanged.connect(lambda idx: self.cmbRedacPOV.setHidden(idx.internalPointer().isFolder()))
self.treePlanOutline.selectionModel().currentChanged.connect(lambda idx: self.lblPlanPOV.setHidden(idx.internalPointer().isFolder()))
@@ -351,9 +360,6 @@ class MainWindow(QMainWindow, Ui_MainWindow):
if i == 6: # step 8 - scene list
self.tabMain.setCurrentIndex(3)
-
-
- "Updates word counts over tabs"
def wordCount(self, i):
src= {
@@ -370,7 +376,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
3:self.lblSummaryWCFull
}[i]
- wc = len(src.toPlainText().strip().split(" ")) if src.toPlainText() else 0
+ wc = wordCount(src.toPlainText())
if i in [2, 3]: pages = " (~{} pages)".format(int(wc / 25) / 10.)
else: pages = ""
lbl.setText("Mots: {}{}".format(wc, pages))
@@ -382,11 +388,14 @@ class MainWindow(QMainWindow, Ui_MainWindow):
self.splitterPersos.setStretchFactor(1, 75)
self.splitterPlot.setStretchFactor(0, 20)
- self.splitterPlot.setStretchFactor(1, 40)
- self.splitterPlot.setStretchFactor(2, 40)
+ self.splitterPlot.setStretchFactor(1, 60)
+ self.splitterPlot.setStretchFactor(2, 30)
+
+ self.splitterOutlineH.setStretchFactor(0, 25)
+ self.splitterOutlineH.setStretchFactor(1, 75)
+ self.splitterOutlineV.setStretchFactor(0, 75)
+ self.splitterOutlineV.setStretchFactor(1, 25)
- self.splitterPlan.setStretchFactor(0, 25)
- self.splitterPlan.setStretchFactor(1, 75)
self.splitterRedac.setStretchFactor(0, 20)
self.splitterRedac.setStretchFactor(1, 60)
diff --git a/src/models/outlineModel.py b/src/models/outlineModel.py
index de02a2c..d9cd01d 100644
--- a/src/models/outlineModel.py
+++ b/src/models/outlineModel.py
@@ -10,6 +10,8 @@ from enums import *
from enum import Enum
from lxml import etree as ET
+from functions import *
+
class outlineModel(QAbstractItemModel):
newStatuses = pyqtSignal()
@@ -74,7 +76,7 @@ class outlineModel(QAbstractItemModel):
def setData(self, index, value, role=Qt.EditRole):
item = index.internalPointer()
- item.setData(index.column(), value)
+ item.setData(index.column(), value, role)
if index.column() == Outline.status.value:
self.generateStatuses()
@@ -316,9 +318,13 @@ class outlineItem():
return len(Outline)
def data(self, column, role=Qt.DisplayRole):
+
+ #print("Data: ", column, role)
+
if role == Qt.DisplayRole or role == Qt.EditRole:
if column == Outline.compile.value:
return self.data(column, Qt.CheckStateRole)
+
elif Outline(column) in self._data:
return self._data[Outline(column)]
else:
@@ -340,7 +346,23 @@ class outlineItem():
else:
return Qt.Unchecked
- def setData(self, column, data):
+ def setData(self, column, data, role=Qt.DisplayRole):
+ if role not in [Qt.DisplayRole, Qt.EditRole, Qt.CheckStateRole]:
+ print(column, column == Outline.text.value, data, role)
+ return
+
+ if column == Outline.text.value:
+ wc = wordCount(data)
+ self.setData(Outline.wordCount.value, wc)
+
+ if column in [Outline.wordCount.value, Outline.goal.value]:
+ wc = self.data(Outline.wordCount.value)
+ goal = self.data(Outline.goal.value)
+ if goal and wc:
+ self.setData(Outline.goalPercentage.value, int(wc) / float(goal))
+ else:
+ self.setData(Outline.goalPercentage.value, "0")
+
self._data[Outline(column)] = data
def row(self):
@@ -373,7 +395,7 @@ class outlineItem():
item = ET.Element("outlineItem")
for attrib in Outline:
- val = self.data(attrib)
+ val = self.data(attrib.value)
if val:
item.set(attrib.name, unicode(val))
@@ -387,7 +409,7 @@ class outlineItem():
for k in root.attrib:
if k in Outline.__members__:
- self._data[Outline.__members__[k]] = unicode(root.attrib[k])
+ self.setData(Outline.__members__[k].value, unicode(root.attrib[k]))
for child in root:
item = outlineItem(xml=ET.tostring(child))
diff --git a/src/ui/chkOutlineCompile.py b/src/ui/chkOutlineCompile.py
new file mode 100644
index 0000000..321a761
--- /dev/null
+++ b/src/ui/chkOutlineCompile.py
@@ -0,0 +1,45 @@
+#!/usr/bin/env python
+#--!-- coding: utf8 --!--
+
+from __future__ import print_function
+from __future__ import unicode_literals
+
+from qt import *
+from enums import *
+
+# Because I have trouble with QDataWidgetMapper and the checkbox, I don't know why.
+
+class chkOutlineCompile(QCheckBox):
+
+ def __init__(self, parent=None):
+ QCheckBox.__init__(self, parent)
+ self.stateChanged.connect(self.changed)
+ self.currentModelIndex = None
+
+ def setModel(self, mdlOutline):
+ self.mdlOutline = mdlOutline
+ self.mdlOutline.dataChanged.connect(self.updateSelectedItem)
+
+ def setCurrentModelIndex(self, idx):
+ self.currentModelIndex = idx
+ self.updateSelectedItem()
+
+ def updateSelectedItem(self, idx1=None, idx2=None):
+ if not self.currentModelIndex:
+ self.setChecked(False)
+ self.setEnabled(False)
+ else:
+ self.setEnabled(True)
+ item = self.currentModelIndex.internalPointer()
+ c = item.data(Outline.compile)
+ if c:
+ c = int(c)
+ else:
+ c = Qt.Unchecked
+ self.setCheckState(c)
+
+ def changed(self, state):
+ if self.currentModelIndex:
+ mdl = self.currentModelIndex.model()
+ modelIndex = mdl.index(self.currentModelIndex.row(), Outline.compile.value, self.currentModelIndex.parent())
+ mdl.setData(modelIndex, state)
\ No newline at end of file
diff --git a/src/ui/cmbOutlinePersoChoser.py b/src/ui/cmbOutlinePersoChoser.py
index ae25000..197c706 100644
--- a/src/ui/cmbOutlinePersoChoser.py
+++ b/src/ui/cmbOutlinePersoChoser.py
@@ -25,7 +25,7 @@ class cmbOutlinePersoChoser(QComboBox):
self.setCurrentIndex(0)
else:
item = self.currentModelIndex.internalPointer()
- POV = item.data(Outline.POV)
+ POV = item.data(Outline.POV.value)
idx = self.findData(POV)
if idx <> -1:
self.setCurrentIndex(idx)
diff --git a/src/ui/mainWindow.py b/src/ui/mainWindow.py
index 40dec65..32e3ee9 100644
--- a/src/ui/mainWindow.py
+++ b/src/ui/mainWindow.py
@@ -486,6 +486,7 @@ class Ui_MainWindow(object):
self.horizontalLayout_15.addWidget(self.btnPlotShowSummary)
self.verticalLayout_10.addLayout(self.horizontalLayout_15)
self.tabPlot = QtWidgets.QTabWidget(self.splitterPlot)
+ self.tabPlot.setDocumentMode(True)
self.tabPlot.setObjectName("tabPlot")
self.infos_2 = QtWidgets.QWidget()
self.infos_2.setObjectName("infos_2")
@@ -678,11 +679,10 @@ class Ui_MainWindow(object):
self.lytTabOutline.setObjectName("lytTabOutline")
self.verticalLayout_27 = QtWidgets.QVBoxLayout(self.lytTabOutline)
self.verticalLayout_27.setObjectName("verticalLayout_27")
- self.splitterPlan = QtWidgets.QSplitter(self.lytTabOutline)
- self.splitterPlan.setOrientation(QtCore.Qt.Horizontal)
- self.splitterPlan.setChildrenCollapsible(False)
- self.splitterPlan.setObjectName("splitterPlan")
- self.treeWidget_2 = QtWidgets.QTreeWidget(self.splitterPlan)
+ self.splitterOutlineH = QtWidgets.QSplitter(self.lytTabOutline)
+ self.splitterOutlineH.setOrientation(QtCore.Qt.Horizontal)
+ self.splitterOutlineH.setObjectName("splitterOutlineH")
+ self.treeWidget_2 = QtWidgets.QTreeWidget(self.splitterOutlineH)
self.treeWidget_2.setDragEnabled(True)
self.treeWidget_2.setDragDropMode(QtWidgets.QAbstractItemView.DragOnly)
self.treeWidget_2.setObjectName("treeWidget_2")
@@ -692,57 +692,62 @@ class Ui_MainWindow(object):
item_0 = QtWidgets.QTreeWidgetItem(self.treeWidget_2)
item_1 = QtWidgets.QTreeWidgetItem(item_0)
item_1 = QtWidgets.QTreeWidgetItem(item_0)
- self.layoutWidget = QtWidgets.QWidget(self.splitterPlan)
- self.layoutWidget.setObjectName("layoutWidget")
- self.verticalLayout_14 = QtWidgets.QVBoxLayout(self.layoutWidget)
+ self.widget = QtWidgets.QWidget(self.splitterOutlineH)
+ self.widget.setObjectName("widget")
+ self.verticalLayout_14 = QtWidgets.QVBoxLayout(self.widget)
self.verticalLayout_14.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_14.setObjectName("verticalLayout_14")
- self.treePlanOutline = QtWidgets.QTreeView(self.layoutWidget)
+ self.splitterOutlineV = QtWidgets.QSplitter(self.widget)
+ self.splitterOutlineV.setOrientation(QtCore.Qt.Vertical)
+ self.splitterOutlineV.setObjectName("splitterOutlineV")
+ self.treePlanOutline = QtWidgets.QTreeView(self.splitterOutlineV)
self.treePlanOutline.setDragEnabled(True)
self.treePlanOutline.setDragDropMode(QtWidgets.QAbstractItemView.DragDrop)
self.treePlanOutline.setDefaultDropAction(QtCore.Qt.MoveAction)
self.treePlanOutline.setSelectionMode(QtWidgets.QAbstractItemView.ExtendedSelection)
self.treePlanOutline.setObjectName("treePlanOutline")
- self.verticalLayout_14.addWidget(self.treePlanOutline)
- self.groupbox = QtWidgets.QGroupBox(self.layoutWidget)
- self.groupbox.setObjectName("groupbox")
- self.verticalLayout_13 = QtWidgets.QVBoxLayout(self.groupbox)
+ self.frame = QtWidgets.QFrame(self.splitterOutlineV)
+ self.frame.setFrameShape(QtWidgets.QFrame.StyledPanel)
+ self.frame.setFrameShadow(QtWidgets.QFrame.Raised)
+ self.frame.setObjectName("frame")
+ self.verticalLayout_13 = QtWidgets.QVBoxLayout(self.frame)
self.verticalLayout_13.setObjectName("verticalLayout_13")
self.horizontalLayout_11 = QtWidgets.QHBoxLayout()
self.horizontalLayout_11.setObjectName("horizontalLayout_11")
- self.lblPlanPOV = QtWidgets.QLabel(self.groupbox)
+ self.lblPlanPOV = QtWidgets.QLabel(self.frame)
+ self.lblPlanPOV.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
self.lblPlanPOV.setObjectName("lblPlanPOV")
self.horizontalLayout_11.addWidget(self.lblPlanPOV)
- self.cmbPlanPOV = cmbOutlinePersoChoser(self.groupbox)
+ self.cmbPlanPOV = cmbOutlinePersoChoser(self.frame)
self.cmbPlanPOV.setFrame(False)
self.cmbPlanPOV.setObjectName("cmbPlanPOV")
self.horizontalLayout_11.addWidget(self.cmbPlanPOV)
self.verticalLayout_13.addLayout(self.horizontalLayout_11)
- self.txtPlanSummarySentance = QtWidgets.QLineEdit(self.groupbox)
+ self.txtPlanSummarySentance = QtWidgets.QLineEdit(self.frame)
self.txtPlanSummarySentance.setObjectName("txtPlanSummarySentance")
self.verticalLayout_13.addWidget(self.txtPlanSummarySentance)
- self.label_9 = QtWidgets.QLabel(self.groupbox)
+ self.label_9 = QtWidgets.QLabel(self.frame)
self.label_9.setObjectName("label_9")
self.verticalLayout_13.addWidget(self.label_9)
- self.txtPlanSummaryFull = QtWidgets.QPlainTextEdit(self.groupbox)
+ self.txtPlanSummaryFull = QtWidgets.QPlainTextEdit(self.frame)
self.txtPlanSummaryFull.setObjectName("txtPlanSummaryFull")
self.verticalLayout_13.addWidget(self.txtPlanSummaryFull)
- self.verticalLayout_14.addWidget(self.groupbox)
+ self.verticalLayout_14.addWidget(self.splitterOutlineV)
self.horizontalLayout_18 = QtWidgets.QHBoxLayout()
self.horizontalLayout_18.setObjectName("horizontalLayout_18")
- self.btnPlanAddFolder = QtWidgets.QPushButton(self.layoutWidget)
+ self.btnPlanAddFolder = QtWidgets.QPushButton(self.widget)
self.btnPlanAddFolder.setText("")
icon = QtGui.QIcon.fromTheme("folder-new")
self.btnPlanAddFolder.setIcon(icon)
self.btnPlanAddFolder.setObjectName("btnPlanAddFolder")
self.horizontalLayout_18.addWidget(self.btnPlanAddFolder)
- self.btnPlanAddScene = QtWidgets.QPushButton(self.layoutWidget)
+ self.btnPlanAddScene = QtWidgets.QPushButton(self.widget)
self.btnPlanAddScene.setText("")
icon = QtGui.QIcon.fromTheme("document-new")
self.btnPlanAddScene.setIcon(icon)
self.btnPlanAddScene.setObjectName("btnPlanAddScene")
self.horizontalLayout_18.addWidget(self.btnPlanAddScene)
- self.btnPlanRemoveItem = QtWidgets.QPushButton(self.layoutWidget)
+ self.btnPlanRemoveItem = QtWidgets.QPushButton(self.widget)
self.btnPlanRemoveItem.setText("")
icon = QtGui.QIcon.fromTheme("list-remove")
self.btnPlanRemoveItem.setIcon(icon)
@@ -750,30 +755,32 @@ class Ui_MainWindow(object):
self.horizontalLayout_18.addWidget(self.btnPlanRemoveItem)
spacerItem8 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_18.addItem(spacerItem8)
- self.pushButton_23 = QtWidgets.QPushButton(self.layoutWidget)
- self.pushButton_23.setText("")
+ self.btnPlanShowDetails = QtWidgets.QPushButton(self.widget)
+ self.btnPlanShowDetails.setText("")
icon = QtGui.QIcon.fromTheme("text-x-generic")
- self.pushButton_23.setIcon(icon)
- self.pushButton_23.setCheckable(True)
- self.pushButton_23.setChecked(True)
- self.pushButton_23.setObjectName("pushButton_23")
- self.horizontalLayout_18.addWidget(self.pushButton_23)
+ self.btnPlanShowDetails.setIcon(icon)
+ self.btnPlanShowDetails.setCheckable(True)
+ self.btnPlanShowDetails.setChecked(True)
+ self.btnPlanShowDetails.setObjectName("btnPlanShowDetails")
+ self.horizontalLayout_18.addWidget(self.btnPlanShowDetails)
self.verticalLayout_14.addLayout(self.horizontalLayout_18)
- self.verticalLayout_27.addWidget(self.splitterPlan)
+ self.verticalLayout_27.addWidget(self.splitterOutlineH)
self.tabMain.addTab(self.lytTabOutline, "")
self.lytTabRedac = QtWidgets.QWidget()
self.lytTabRedac.setObjectName("lytTabRedac")
self.verticalLayout_28 = QtWidgets.QVBoxLayout(self.lytTabRedac)
+ self.verticalLayout_28.setSpacing(0)
+ self.verticalLayout_28.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_28.setObjectName("verticalLayout_28")
self.splitterRedac = QtWidgets.QSplitter(self.lytTabRedac)
self.splitterRedac.setOrientation(QtCore.Qt.Horizontal)
self.splitterRedac.setObjectName("splitterRedac")
- self.layoutWidget1 = QtWidgets.QWidget(self.splitterRedac)
- self.layoutWidget1.setObjectName("layoutWidget1")
- self.verticalLayout_19 = QtWidgets.QVBoxLayout(self.layoutWidget1)
+ self.layoutWidget = QtWidgets.QWidget(self.splitterRedac)
+ self.layoutWidget.setObjectName("layoutWidget")
+ self.verticalLayout_19 = QtWidgets.QVBoxLayout(self.layoutWidget)
self.verticalLayout_19.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_19.setObjectName("verticalLayout_19")
- self.treeRedacOutline = QtWidgets.QTreeView(self.layoutWidget1)
+ self.treeRedacOutline = QtWidgets.QTreeView(self.layoutWidget)
self.treeRedacOutline.setDragDropMode(QtWidgets.QAbstractItemView.DragDrop)
self.treeRedacOutline.setDefaultDropAction(QtCore.Qt.MoveAction)
self.treeRedacOutline.setSelectionMode(QtWidgets.QAbstractItemView.ExtendedSelection)
@@ -781,19 +788,19 @@ class Ui_MainWindow(object):
self.verticalLayout_19.addWidget(self.treeRedacOutline)
self.horizontalLayout_31 = QtWidgets.QHBoxLayout()
self.horizontalLayout_31.setObjectName("horizontalLayout_31")
- self.btnRedacAddFolder = QtWidgets.QPushButton(self.layoutWidget1)
+ self.btnRedacAddFolder = QtWidgets.QPushButton(self.layoutWidget)
self.btnRedacAddFolder.setText("")
icon = QtGui.QIcon.fromTheme("folder-new")
self.btnRedacAddFolder.setIcon(icon)
self.btnRedacAddFolder.setObjectName("btnRedacAddFolder")
self.horizontalLayout_31.addWidget(self.btnRedacAddFolder)
- self.btnRedacAddScene = QtWidgets.QPushButton(self.layoutWidget1)
+ self.btnRedacAddScene = QtWidgets.QPushButton(self.layoutWidget)
self.btnRedacAddScene.setText("")
icon = QtGui.QIcon.fromTheme("document-new")
self.btnRedacAddScene.setIcon(icon)
self.btnRedacAddScene.setObjectName("btnRedacAddScene")
self.horizontalLayout_31.addWidget(self.btnRedacAddScene)
- self.btnRedacRemoveItem = QtWidgets.QPushButton(self.layoutWidget1)
+ self.btnRedacRemoveItem = QtWidgets.QPushButton(self.layoutWidget)
self.btnRedacRemoveItem.setText("")
icon = QtGui.QIcon.fromTheme("list-remove")
self.btnRedacRemoveItem.setIcon(icon)
@@ -802,12 +809,12 @@ class Ui_MainWindow(object):
spacerItem9 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_31.addItem(spacerItem9)
self.verticalLayout_19.addLayout(self.horizontalLayout_31)
- self.layoutWidget2 = QtWidgets.QWidget(self.splitterRedac)
- self.layoutWidget2.setObjectName("layoutWidget2")
- self.verticalLayout_16 = QtWidgets.QVBoxLayout(self.layoutWidget2)
+ self.layoutWidget1 = QtWidgets.QWidget(self.splitterRedac)
+ self.layoutWidget1.setObjectName("layoutWidget1")
+ self.verticalLayout_16 = QtWidgets.QVBoxLayout(self.layoutWidget1)
self.verticalLayout_16.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_16.setObjectName("verticalLayout_16")
- self.txtRedacTitle = QtWidgets.QLineEdit(self.layoutWidget2)
+ self.txtRedacTitle = QtWidgets.QLineEdit(self.layoutWidget1)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
@@ -817,12 +824,12 @@ class Ui_MainWindow(object):
self.txtRedacTitle.setFrame(False)
self.txtRedacTitle.setObjectName("txtRedacTitle")
self.verticalLayout_16.addWidget(self.txtRedacTitle)
- self.txtRedacText = QtWidgets.QPlainTextEdit(self.layoutWidget2)
+ self.txtRedacText = QtWidgets.QPlainTextEdit(self.layoutWidget1)
self.txtRedacText.setObjectName("txtRedacText")
self.verticalLayout_16.addWidget(self.txtRedacText)
self.horizontalLayout_19 = QtWidgets.QHBoxLayout()
self.horizontalLayout_19.setObjectName("horizontalLayout_19")
- self.pushButton_20 = QtWidgets.QPushButton(self.layoutWidget2)
+ self.pushButton_20 = QtWidgets.QPushButton(self.layoutWidget1)
self.pushButton_20.setText("")
icon = QtGui.QIcon.fromTheme("text-x-generic")
self.pushButton_20.setIcon(icon)
@@ -832,7 +839,7 @@ class Ui_MainWindow(object):
self.horizontalLayout_19.addWidget(self.pushButton_20)
spacerItem10 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_19.addItem(spacerItem10)
- self.pushButton_19 = QtWidgets.QPushButton(self.layoutWidget2)
+ self.pushButton_19 = QtWidgets.QPushButton(self.layoutWidget1)
self.pushButton_19.setText("")
icon = QtGui.QIcon.fromTheme("edit-find")
self.pushButton_19.setIcon(icon)
@@ -849,6 +856,7 @@ class Ui_MainWindow(object):
self.tab_17.setObjectName("tab_17")
self.verticalLayout_20 = QtWidgets.QVBoxLayout(self.tab_17)
self.verticalLayout_20.setSizeConstraint(QtWidgets.QLayout.SetMaximumSize)
+ self.verticalLayout_20.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_20.setObjectName("verticalLayout_20")
self.groupBox_4 = collapsibleGroupBox(self.tab_17)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
@@ -856,9 +864,11 @@ class Ui_MainWindow(object):
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.groupBox_4.sizePolicy().hasHeightForWidth())
self.groupBox_4.setSizePolicy(sizePolicy)
+ self.groupBox_4.setFlat(True)
self.groupBox_4.setCheckable(True)
self.groupBox_4.setObjectName("groupBox_4")
self.formLayout_5 = QtWidgets.QFormLayout(self.groupBox_4)
+ self.formLayout_5.setContentsMargins(0, 0, 0, 0)
self.formLayout_5.setObjectName("formLayout_5")
self.lblRedacPOV = QtWidgets.QLabel(self.groupBox_4)
self.lblRedacPOV.setObjectName("lblRedacPOV")
@@ -869,6 +879,7 @@ class Ui_MainWindow(object):
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.cmbRedacPOV.sizePolicy().hasHeightForWidth())
self.cmbRedacPOV.setSizePolicy(sizePolicy)
+ self.cmbRedacPOV.setFrame(False)
self.cmbRedacPOV.setObjectName("cmbRedacPOV")
self.formLayout_5.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.cmbRedacPOV)
self.label_30 = QtWidgets.QLabel(self.groupBox_4)
@@ -881,22 +892,40 @@ class Ui_MainWindow(object):
sizePolicy.setHeightForWidth(self.cmbRedacStatus.sizePolicy().hasHeightForWidth())
self.cmbRedacStatus.setSizePolicy(sizePolicy)
self.cmbRedacStatus.setEditable(True)
+ self.cmbRedacStatus.setFrame(False)
self.cmbRedacStatus.setObjectName("cmbRedacStatus")
self.formLayout_5.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.cmbRedacStatus)
self.label_32 = QtWidgets.QLabel(self.groupBox_4)
self.label_32.setObjectName("label_32")
self.formLayout_5.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.label_32)
- self.chkRedacCompile = QtWidgets.QCheckBox(self.groupBox_4)
+ self.chkRedacCompile = chkOutlineCompile(self.groupBox_4)
self.chkRedacCompile.setText("")
self.chkRedacCompile.setObjectName("chkRedacCompile")
self.formLayout_5.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.chkRedacCompile)
+ self.label_29 = QtWidgets.QLabel(self.groupBox_4)
+ self.label_29.setObjectName("label_29")
+ self.formLayout_5.setWidget(3, QtWidgets.QFormLayout.LabelRole, self.label_29)
+ self.txtRedacGoal = QtWidgets.QLineEdit(self.groupBox_4)
+ sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.txtRedacGoal.sizePolicy().hasHeightForWidth())
+ self.txtRedacGoal.setSizePolicy(sizePolicy)
+ self.txtRedacGoal.setAutoFillBackground(False)
+ self.txtRedacGoal.setStyleSheet("border-radius: 6px;")
+ self.txtRedacGoal.setFrame(False)
+ self.txtRedacGoal.setObjectName("txtRedacGoal")
+ self.formLayout_5.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.txtRedacGoal)
self.verticalLayout_20.addWidget(self.groupBox_4)
self.groupBox_5 = collapsibleGroupBox(self.tab_17)
+ self.groupBox_5.setFlat(True)
self.groupBox_5.setCheckable(True)
self.groupBox_5.setObjectName("groupBox_5")
self.verticalLayout_22 = QtWidgets.QVBoxLayout(self.groupBox_5)
+ self.verticalLayout_22.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_22.setObjectName("verticalLayout_22")
self.txtRedacSummarySentance = QtWidgets.QLineEdit(self.groupBox_5)
+ self.txtRedacSummarySentance.setInputMask("")
self.txtRedacSummarySentance.setObjectName("txtRedacSummarySentance")
self.verticalLayout_22.addWidget(self.txtRedacSummarySentance)
self.txtRedacSummaryFull = QtWidgets.QPlainTextEdit(self.groupBox_5)
@@ -904,9 +933,11 @@ class Ui_MainWindow(object):
self.verticalLayout_22.addWidget(self.txtRedacSummaryFull)
self.verticalLayout_20.addWidget(self.groupBox_5)
self.groupBox_6 = collapsibleGroupBox(self.tab_17)
+ self.groupBox_6.setFlat(True)
self.groupBox_6.setCheckable(True)
self.groupBox_6.setObjectName("groupBox_6")
self.horizontalLayout_29 = QtWidgets.QHBoxLayout(self.groupBox_6)
+ self.horizontalLayout_29.setContentsMargins(0, 0, 0, 0)
self.horizontalLayout_29.setObjectName("horizontalLayout_29")
self.txtRedacNotes = QtWidgets.QPlainTextEdit(self.groupBox_6)
self.txtRedacNotes.setObjectName("txtRedacNotes")
@@ -916,10 +947,13 @@ class Ui_MainWindow(object):
self.tab_18 = QtWidgets.QWidget()
self.tab_18.setObjectName("tab_18")
self.verticalLayout_21 = QtWidgets.QVBoxLayout(self.tab_18)
+ self.verticalLayout_21.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_21.setObjectName("verticalLayout_21")
self.groupBox_3 = QtWidgets.QGroupBox(self.tab_18)
+ self.groupBox_3.setFlat(True)
self.groupBox_3.setObjectName("groupBox_3")
self.verticalLayout_15 = QtWidgets.QVBoxLayout(self.groupBox_3)
+ self.verticalLayout_15.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_15.setObjectName("verticalLayout_15")
self.lineEdit_3 = QtWidgets.QLineEdit(self.groupBox_3)
self.lineEdit_3.setObjectName("lineEdit_3")
@@ -1047,18 +1081,18 @@ class Ui_MainWindow(object):
self.menubar.addAction(self.menu_Aide.menuAction())
self.retranslateUi(MainWindow)
- self.tabMain.setCurrentIndex(2)
+ self.tabMain.setCurrentIndex(6)
self.tabSummary.setCurrentIndex(0)
self.tabPersos.setCurrentIndex(0)
self.tabPlot.setCurrentIndex(0)
- self.comboBox_2.setCurrentIndex(1)
+ self.comboBox_2.setCurrentIndex(0)
self.stkPlotSummary.setCurrentIndex(1)
self.tabWidget_2.setCurrentIndex(0)
self.tabWidget.setCurrentIndex(3)
self.pushButton_16.toggled['bool'].connect(self.plainTextEdit_7.setVisible)
- self.pushButton_23.toggled['bool'].connect(self.groupbox.setVisible)
self.btnPlotShowSummary.toggled['bool'].connect(self.grpPlotSummary.setVisible)
self.comboBox_2.currentIndexChanged['int'].connect(self.stkPlotSummary.setCurrentIndex)
+ self.btnPlanShowDetails.toggled['bool'].connect(self.frame.setVisible)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
@@ -1149,7 +1183,7 @@ class Ui_MainWindow(object):
self.grpPlotSummary.setTitle(_translate("MainWindow", "Résumé"))
self.comboBox_2.setItemText(0, _translate("MainWindow", "Un paragraphe"))
self.comboBox_2.setItemText(1, _translate("MainWindow", "Une page"))
- self.comboBox_2.setItemText(2, _translate("MainWindow", "4 pages"))
+ self.comboBox_2.setItemText(2, _translate("MainWindow", "Complet"))
self.tabMain.setTabText(self.tabMain.indexOf(self.lytTabPlot), _translate("MainWindow", "Intrigues"))
self.tabMain.setTabText(self.tabMain.indexOf(self.tab_5), _translate("MainWindow", "Contexte"))
self.treeWidget_2.headerItem().setText(0, _translate("MainWindow", "Liste de scènes"))
@@ -1162,15 +1196,16 @@ class Ui_MainWindow(object):
self.treeWidget_2.topLevelItem(1).child(0).setText(0, _translate("MainWindow", "Scène 1"))
self.treeWidget_2.topLevelItem(1).child(1).setText(0, _translate("MainWindow", "Scène 2"))
self.treeWidget_2.setSortingEnabled(__sortingEnabled)
- self.groupbox.setTitle(_translate("MainWindow", "Détails"))
self.lblPlanPOV.setText(_translate("MainWindow", "POV"))
self.txtPlanSummarySentance.setPlaceholderText(_translate("MainWindow", "Résumé de la scène en une ligne"))
- self.label_9.setText(_translate("MainWindow", "Résumé en quelques phrases"))
+ self.label_9.setText(_translate("MainWindow", "Résumé en quelques phrases:"))
self.tabMain.setTabText(self.tabMain.indexOf(self.lytTabOutline), _translate("MainWindow", "Plan"))
self.groupBox_4.setTitle(_translate("MainWindow", "Propriétés"))
self.lblRedacPOV.setText(_translate("MainWindow", "POV"))
self.label_30.setText(_translate("MainWindow", "Status"))
self.label_32.setText(_translate("MainWindow", "Compile"))
+ self.label_29.setText(_translate("MainWindow", "Goal"))
+ self.txtRedacGoal.setPlaceholderText(_translate("MainWindow", "Nombre de mots"))
self.groupBox_5.setTitle(_translate("MainWindow", "Résumé de la scène"))
self.txtRedacSummarySentance.setPlaceholderText(_translate("MainWindow", "Résumé de la scène en une ligne"))
self.groupBox_6.setTitle(_translate("MainWindow", "Notes pour la scène"))
@@ -1214,7 +1249,8 @@ class Ui_MainWindow(object):
self.actShowHelp.setText(_translate("MainWindow", "Afficher les &bulles d\'aide"))
self.actShowHelp.setShortcut(_translate("MainWindow", "Ctrl+Shift+B"))
-from ui.cmbOutlinePersoChoser import cmbOutlinePersoChoser
from ui.cmbOutlineStatusChoser import cmbOutlineStatusChoser
from ui.sldImportance import sldImportance
from ui.collapsibleGroupBox import collapsibleGroupBox
+from ui.chkOutlineCompile import chkOutlineCompile
+from ui.cmbOutlinePersoChoser import cmbOutlinePersoChoser
diff --git a/src/ui/mainWindow.ui b/src/ui/mainWindow.ui
index efda77c..bc8de3f 100644
--- a/src/ui/mainWindow.ui
+++ b/src/ui/mainWindow.ui
@@ -18,7 +18,7 @@
-
- 2
+ 6
true
@@ -935,6 +935,9 @@
0
+
+ true
+
Informations générales
@@ -1202,7 +1205,7 @@
-
- 1
+ 0
false
@@ -1219,7 +1222,7 @@
-
- 4 pages
+ Complet
@@ -1281,13 +1284,10 @@
-
-
+
Qt::Horizontal
-
- false
-
true
@@ -1331,66 +1331,75 @@
-
+
-
-
-
- true
+
+
+ Qt::Vertical
-
- QAbstractItemView::DragDrop
-
-
- Qt::MoveAction
-
-
- QAbstractItemView::ExtendedSelection
-
-
-
- -
-
-
- Détails
-
-
-
-
-
-
-
-
-
- POV
-
-
-
- -
-
-
- false
-
-
-
-
-
- -
-
-
- Résumé de la scène en une ligne
-
-
-
- -
-
-
- Résumé en quelques phrases
-
-
-
- -
-
-
-
+
+
+ true
+
+
+ QAbstractItemView::DragDrop
+
+
+ Qt::MoveAction
+
+
+ QAbstractItemView::ExtendedSelection
+
+
+
+
+ QFrame::StyledPanel
+
+
+ QFrame::Raised
+
+
+ -
+
+
-
+
+
+ POV
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+
+ -
+
+
+ false
+
+
+
+
+
+ -
+
+
+ Résumé de la scène en une ligne
+
+
+
+ -
+
+
+ Résumé en quelques phrases:
+
+
+
+ -
+
+
+
+
-
@@ -1445,7 +1454,7 @@
-
-
+
@@ -1475,6 +1484,12 @@
Rédaction
+
+ 0
+
+
+ 0
+
-
@@ -1647,6 +1662,9 @@
QLayout::SetMaximumSize
+
+ 0
+
-
@@ -1658,10 +1676,16 @@
Propriétés
+
+ true
+
true
+
+ 0
+
-
@@ -1677,6 +1701,9 @@
0
+
+ false
+
-
@@ -1697,6 +1724,9 @@
true
+
+ false
+
-
@@ -1707,12 +1737,41 @@
-
-
+
+ -
+
+
+ Goal
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ false
+
+
+ border-radius: 6px;
+
+
+ false
+
+
+ Nombre de mots
+
+
+
@@ -1721,12 +1780,21 @@
Résumé de la scène
+
+ true
+
true
+
+ 0
+
-
+
+
+
Résumé de la scène en une ligne
@@ -1743,10 +1811,16 @@
Notes pour la scène
+
+ true
+
true
+
+ 0
+
-
@@ -1760,12 +1834,21 @@
Tools
+
+ 0
+
-
Aide mémoire
+
+ true
+
+
+ 0
+
-
@@ -2045,6 +2128,11 @@
QComboBox
ui.cmbOutlineStatusChoser.h
+
+ chkOutlineCompile
+ QCheckBox
+
+
@@ -2055,28 +2143,12 @@
setVisible(bool)
- 117
- 124
+ 436
+ 127
- 105
- 88
-
-
-
-
- pushButton_23
- toggled(bool)
- groupbox
- setVisible(bool)
-
-
- 111
- 102
-
-
- 111
- 102
+ 436
+ 120
@@ -2087,12 +2159,12 @@
setVisible(bool)
- 111
- 102
+ 332
+ 762
- 111
- 102
+ 860
+ 170
@@ -2103,12 +2175,28 @@
setCurrentIndex(int)
- 111
- 102
+ 868
+ 129
- 111
- 102
+ 868
+ 232
+
+
+
+
+ btnPlanShowDetails
+ toggled(bool)
+ frame
+ setVisible(bool)
+
+
+ 505
+ 617
+
+
+ 508
+ 566
diff --git a/src/ui/treeOutlineDelegates.py b/src/ui/treeOutlineDelegates.py
index 16dd960..c295954 100644
--- a/src/ui/treeOutlineDelegates.py
+++ b/src/ui/treeOutlineDelegates.py
@@ -48,8 +48,8 @@ class treeOutlineCompileDelegate(QStyledItemDelegate):
def __init__(self, parent=None):
QStyledItemDelegate.__init__(self, parent)
- def displayText(self, value, locale):
- return ""
+ #def displayText(self, value, locale):
+ #return ""
class treeOutlineStatusDelegate(QStyledItemDelegate):
diff --git a/test_project/outline.xml b/test_project/outline.xml
index 2f55492..f7beed6 100644
--- a/test_project/outline.xml
+++ b/test_project/outline.xml
@@ -1,30 +1,11 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
-
+