mirror of
https://github.com/olivierkes/manuskript.git
synced 2024-06-16 18:04:33 +12:00
Drag n Drop support different actions
This commit is contained in:
parent
b8deb873ad
commit
110eaa9ddb
|
@ -8,7 +8,6 @@ from qt import *
|
|||
|
||||
from ui.mainWindow import *
|
||||
from ui.helpLabel import helpLabel
|
||||
from ui.treeOutlineDelegates import *
|
||||
from loadSave import *
|
||||
from enums import *
|
||||
from models.outlineModel import *
|
||||
|
@ -138,26 +137,10 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
|||
# Outline
|
||||
self.mdlOutline = outlineModel()
|
||||
self.treeRedacOutline.setModel(self.mdlOutline)
|
||||
self.treePlanOutline.setModelPersos(self.mdlPersos)
|
||||
self.treePlanOutline.setModel(self.mdlOutline)
|
||||
self.treePlanOutlinePersoDelegate = treeOutlinePersoDelegate(self.mdlPersos)
|
||||
self.treePlanOutline.setItemDelegateForColumn(Outline.POV.value, self.treePlanOutlinePersoDelegate)
|
||||
self.treePlanOutlineCompileDelegate = treeOutlineCompileDelegate()
|
||||
self.treePlanOutline.setItemDelegateForColumn(Outline.compile.value, self.treePlanOutlineCompileDelegate)
|
||||
self.treePlanOutlineStatusDelegate = treeOutlineStatusDelegate()
|
||||
self.treePlanOutline.setItemDelegateForColumn(Outline.status.value, self.treePlanOutlineStatusDelegate)
|
||||
self.treePlanOutlineGoalPercentageDelegate = treeOutlineGoalPercentageDelegate()
|
||||
self.treePlanOutline.setItemDelegateForColumn(Outline.goalPercentage.value, self.treePlanOutlineGoalPercentageDelegate)
|
||||
|
||||
self.cmbPlanPOV.setModels(self.mdlPersos, self.mdlOutline)
|
||||
|
||||
self.treePlanOutline.header().setSectionResizeMode(Outline.title.value, QHeaderView.Stretch)
|
||||
self.treePlanOutline.header().setSectionResizeMode(Outline.POV.value, QHeaderView.ResizeToContents)
|
||||
self.treePlanOutline.header().setSectionResizeMode(Outline.status.value, QHeaderView.ResizeToContents)
|
||||
self.treePlanOutline.header().setSectionResizeMode(Outline.compile.value, QHeaderView.ResizeToContents)
|
||||
self.treePlanOutline.header().setSectionResizeMode(Outline.wordCount.value, QHeaderView.ResizeToContents)
|
||||
self.treePlanOutline.header().setSectionResizeMode(Outline.goal.value, QHeaderView.ResizeToContents)
|
||||
self.treePlanOutline.header().setSectionResizeMode(Outline.goalPercentage.value, QHeaderView.ResizeToContents)
|
||||
|
||||
self.mprPlan = QDataWidgetMapper()
|
||||
self.mprPlan.setModel(self.mdlOutline)
|
||||
mapping = [
|
||||
|
@ -175,12 +158,6 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
|||
|
||||
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, 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"))
|
||||
|
@ -221,7 +198,9 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
|||
|
||||
self.sldCorkSizeFactor.valueChanged.connect(self.redacEditor.setCorkSizeFactor)
|
||||
self.btnRedacFolderCork.toggled.connect(self.sldCorkSizeFactor.setVisible)
|
||||
self.btnRedacFolderText.toggled.connect(lambda v: self.redacEditor.setFolderView("text" if v else "cork"))
|
||||
self.btnRedacFolderText.clicked.connect(lambda v: self.redacEditor.setFolderView("text"))
|
||||
self.btnRedacFolderCork.clicked.connect(lambda v: self.redacEditor.setFolderView("cork"))
|
||||
self.btnRedacFolderOutline.clicked.connect(lambda v: self.redacEditor.setFolderView("outline"))
|
||||
|
||||
#Debug
|
||||
self.mdlFlatData.setVerticalHeaderLabels(["Infos générales", "Summary"])
|
||||
|
@ -249,6 +228,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
|||
self.cmbPlanPOV.setHidden(idx.internalPointer().isFolder())
|
||||
self.btnRedacFolderText.setHidden(not idx.internalPointer().isFolder())
|
||||
self.btnRedacFolderCork.setHidden(not idx.internalPointer().isFolder())
|
||||
self.btnRedacFolderOutline.setHidden(not idx.internalPointer().isFolder())
|
||||
self.sldCorkSizeFactor.setHidden(not idx.internalPointer().isFolder())
|
||||
|
||||
def outlineAddItem(self, type="folder"):
|
||||
|
|
|
@ -176,8 +176,7 @@ class outlineModel(QAbstractItemModel):
|
|||
|
||||
def supportedDropActions(self):
|
||||
|
||||
return Qt.MoveAction # Qt.CopyAction |
|
||||
#return Qt.CopyAction | Qt.MoveAction
|
||||
return Qt.CopyAction | Qt.MoveAction
|
||||
|
||||
#def canDropMimeData(self, data, action, row, column, parent):
|
||||
#if not data.hasFormat("application/xml"):
|
||||
|
@ -276,7 +275,6 @@ class outlineModel(QAbstractItemModel):
|
|||
return self.removeRows(row, 1, parent)
|
||||
|
||||
def removeRows(self, row, count, parent=QModelIndex()):
|
||||
print("Removing")
|
||||
if not parent.isValid():
|
||||
parentItem = self.rootItem
|
||||
else:
|
||||
|
|
|
@ -8,7 +8,6 @@ from qt import *
|
|||
from enums import *
|
||||
from ui.editors.editorWidget_ui import *
|
||||
from ui.editors.customTextEdit import *
|
||||
from ui.editors.corkDelegate import *
|
||||
from functions import *
|
||||
|
||||
class editorWidget(QWidget, Ui_editorWidget_ui):
|
||||
|
@ -28,18 +27,12 @@ class editorWidget(QWidget, Ui_editorWidget_ui):
|
|||
self.spellcheck = True
|
||||
self.folderView = "cork"
|
||||
|
||||
self.corkView.setResizeMode(QListView.Adjust)
|
||||
self.corkView.setWrapping(True)
|
||||
self.corkView.setItemDelegate(corkDelegate())
|
||||
self.corkView.setSpacing(5)
|
||||
self.corkView.setStyleSheet("""QListView {
|
||||
background:#926239;
|
||||
}""")
|
||||
|
||||
def setFolderView(self, v):
|
||||
oldV = self.folderView
|
||||
if v == "cork":
|
||||
self.folderView = "cork"
|
||||
elif v == "outline":
|
||||
self.folderView = "outline"
|
||||
else:
|
||||
self.folderView = "text"
|
||||
|
||||
|
@ -61,7 +54,67 @@ class editorWidget(QWidget, Ui_editorWidget_ui):
|
|||
|
||||
item = index.internalPointer()
|
||||
|
||||
if item.isFolder() and self.folderView == "text":
|
||||
# Couting the number of selected items
|
||||
sel = [index]
|
||||
for i in mainWindow().treeRedacOutline.selectionModel().selection().indexes():
|
||||
if i.column() != 0: continue
|
||||
if i not in sel: sel.append(i)
|
||||
|
||||
def addTitle(itm):
|
||||
edt = customTextEdit(self, html="<h{l}>{t}</h{l}>".format(l=min(itm.level()+1, 5), t=itm.title()), autoResize=True)
|
||||
edt.setFrameShape(QFrame.NoFrame)
|
||||
self.txtEdits.append(edt)
|
||||
l.addWidget(edt)
|
||||
|
||||
def addLine():
|
||||
line = QFrame(self.scene)
|
||||
line.setFrameShape(QFrame.HLine)
|
||||
line.setFrameShadow(QFrame.Sunken)
|
||||
l.addWidget(line)
|
||||
|
||||
def addScene(itm):
|
||||
edt = customTextEdit(self, index=itm.index(), spellcheck=self.spellcheck, dict=self.currentDict, autoResize=True)
|
||||
edt.setFrameShape(QFrame.NoFrame)
|
||||
edt.setStatusTip(itm.path())
|
||||
self.toggledSpellcheck.connect(edt.toggleSpellcheck)
|
||||
self.dictChanged.connect(edt.setDict)
|
||||
#edt.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Preferred)
|
||||
self.txtEdits.append(edt)
|
||||
l.addWidget(edt)
|
||||
|
||||
def addChildren(itm):
|
||||
for c in range(itm.childCount()):
|
||||
child = itm.child(c)
|
||||
|
||||
if child.isFolder():
|
||||
addTitle(child)
|
||||
addChildren(child)
|
||||
|
||||
else:
|
||||
addScene(child)
|
||||
addLine()
|
||||
|
||||
def addSpacer():
|
||||
l.addItem(QSpacerItem(10, 1000, QSizePolicy.Minimum, QSizePolicy.Expanding))
|
||||
|
||||
# Display multiple selected items
|
||||
if len(sel) > 1 and False: # Buggy and not very useful, skip
|
||||
self.stack.setCurrentIndex(1)
|
||||
w = QWidget()
|
||||
l = QVBoxLayout(w)
|
||||
self.txtEdits = []
|
||||
for idx in sel:
|
||||
sItem = idx.internalPointer()
|
||||
addTitle(sItem)
|
||||
if sItem.isFolder():
|
||||
addChildren(sItem)
|
||||
else:
|
||||
addScene(sItem)
|
||||
addLine()
|
||||
addSpacer()
|
||||
self.scroll.setWidget(w)
|
||||
|
||||
elif item.isFolder() and self.folderView == "text":
|
||||
self.stack.setCurrentIndex(1)
|
||||
|
||||
w = QWidget()
|
||||
|
@ -70,44 +123,9 @@ class editorWidget(QWidget, Ui_editorWidget_ui):
|
|||
|
||||
self.txtEdits = []
|
||||
|
||||
def addTitle(itm):
|
||||
edt = customTextEdit(self, html="<h{l}>{t}</h{l}>".format(l=min(itm.level()+1, 5), t=itm.title()), autoResize=True)
|
||||
edt.setFrameShape(QFrame.NoFrame)
|
||||
self.txtEdits.append(edt)
|
||||
l.addWidget(edt)
|
||||
|
||||
def addLine():
|
||||
line = QFrame(self.scene)
|
||||
line.setFrameShape(QFrame.HLine)
|
||||
line.setFrameShadow(QFrame.Sunken)
|
||||
l.addWidget(line)
|
||||
|
||||
def addScene(itm):
|
||||
edt = customTextEdit(self, index=itm.index(), spellcheck=self.spellcheck, dict=self.currentDict, autoResize=True)
|
||||
edt.setFrameShape(QFrame.NoFrame)
|
||||
edt.setStatusTip(itm.path())
|
||||
self.toggledSpellcheck.connect(edt.toggleSpellcheck)
|
||||
self.dictChanged.connect(edt.setDict)
|
||||
#edt.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Preferred)
|
||||
self.txtEdits.append(edt)
|
||||
l.addWidget(edt)
|
||||
|
||||
def addChildren(itm):
|
||||
|
||||
for c in range(itm.childCount()):
|
||||
child = itm.child(c)
|
||||
|
||||
if child.isFolder():
|
||||
addTitle(child)
|
||||
addChildren(child)
|
||||
|
||||
else:
|
||||
addScene(child)
|
||||
addLine()
|
||||
|
||||
addTitle(item)
|
||||
addChildren(item)
|
||||
l.addItem(QSpacerItem(10, 1000, QSizePolicy.Minimum, QSizePolicy.Expanding))
|
||||
addSpacer()
|
||||
self.scroll.setWidget(w)
|
||||
|
||||
elif item.isFolder() and self.folderView == "cork":
|
||||
|
@ -115,6 +133,12 @@ class editorWidget(QWidget, Ui_editorWidget_ui):
|
|||
self.corkView.setModel(self._model)
|
||||
self.corkView.setRootIndex(self.currentIndex)
|
||||
|
||||
elif item.isFolder() and self.folderView == "outline":
|
||||
self.stack.setCurrentIndex(3)
|
||||
self.outlineView.setModelPersos(mainWindow().mdlPersos)
|
||||
self.outlineView.setModel(self._model)
|
||||
self.outlineView.setRootIndex(self.currentIndex)
|
||||
|
||||
else:
|
||||
self.stack.setCurrentIndex(0)
|
||||
|
||||
|
|
|
@ -47,16 +47,19 @@ class Ui_editorWidget_ui(object):
|
|||
self.horizontalLayout_3 = QtWidgets.QHBoxLayout(self.cork)
|
||||
self.horizontalLayout_3.setContentsMargins(0, 0, 0, 0)
|
||||
self.horizontalLayout_3.setObjectName("horizontalLayout_3")
|
||||
self.corkView = QtWidgets.QListView(self.cork)
|
||||
self.corkView.setDragDropMode(QtWidgets.QAbstractItemView.DragDrop)
|
||||
self.corkView.setDefaultDropAction(QtCore.Qt.MoveAction)
|
||||
self.corkView.setSelectionMode(QtWidgets.QAbstractItemView.ExtendedSelection)
|
||||
self.corkView.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows)
|
||||
self.corkView.setVerticalScrollMode(QtWidgets.QAbstractItemView.ScrollPerPixel)
|
||||
self.corkView.setFlow(QtWidgets.QListView.LeftToRight)
|
||||
self.corkView = corkView(self.cork)
|
||||
self.corkView.setObjectName("corkView")
|
||||
self.horizontalLayout_3.addWidget(self.corkView)
|
||||
self.stack.addWidget(self.cork)
|
||||
self.outline = QtWidgets.QWidget()
|
||||
self.outline.setObjectName("outline")
|
||||
self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.outline)
|
||||
self.verticalLayout_3.setContentsMargins(0, 0, 0, 0)
|
||||
self.verticalLayout_3.setObjectName("verticalLayout_3")
|
||||
self.outlineView = outlineView(self.outline)
|
||||
self.outlineView.setObjectName("outlineView")
|
||||
self.verticalLayout_3.addWidget(self.outlineView)
|
||||
self.stack.addWidget(self.outline)
|
||||
self.verticalLayout_2.addWidget(self.stack)
|
||||
|
||||
self.retranslateUi(editorWidget_ui)
|
||||
|
@ -68,3 +71,5 @@ class Ui_editorWidget_ui(object):
|
|||
editorWidget_ui.setWindowTitle(_translate("editorWidget_ui", "Form"))
|
||||
|
||||
from ui.editors.customTextEdit import customTextEdit
|
||||
from ui.views.outlineView import outlineView
|
||||
from ui.views.corkView import corkView
|
||||
|
|
|
@ -68,26 +68,17 @@
|
|||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QListView" name="corkView">
|
||||
<property name="dragDropMode">
|
||||
<enum>QAbstractItemView::DragDrop</enum>
|
||||
</property>
|
||||
<property name="defaultDropAction">
|
||||
<enum>Qt::MoveAction</enum>
|
||||
</property>
|
||||
<property name="selectionMode">
|
||||
<enum>QAbstractItemView::ExtendedSelection</enum>
|
||||
</property>
|
||||
<property name="selectionBehavior">
|
||||
<enum>QAbstractItemView::SelectRows</enum>
|
||||
</property>
|
||||
<property name="verticalScrollMode">
|
||||
<enum>QAbstractItemView::ScrollPerPixel</enum>
|
||||
</property>
|
||||
<property name="flow">
|
||||
<enum>QListView::LeftToRight</enum>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="corkView" name="corkView"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="outline">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_3">
|
||||
<property name="margin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="outlineView" name="outlineView"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
|
@ -101,6 +92,16 @@
|
|||
<extends>QTextEdit</extends>
|
||||
<header>ui.editors.customTextEdit.h</header>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>outlineView</class>
|
||||
<extends>QTreeView</extends>
|
||||
<header>ui.views.outlineView.h</header>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>corkView</class>
|
||||
<extends>QListView</extends>
|
||||
<header>ui.views.corkView.h</header>
|
||||
</customwidget>
|
||||
</customwidgets>
|
||||
<resources/>
|
||||
<connections/>
|
||||
|
|
|
@ -703,7 +703,7 @@ class Ui_MainWindow(object):
|
|||
self.splitterOutlineV = QtWidgets.QSplitter(self.layoutWidget)
|
||||
self.splitterOutlineV.setOrientation(QtCore.Qt.Vertical)
|
||||
self.splitterOutlineV.setObjectName("splitterOutlineV")
|
||||
self.treePlanOutline = QtWidgets.QTreeView(self.splitterOutlineV)
|
||||
self.treePlanOutline = outlineView(self.splitterOutlineV)
|
||||
self.treePlanOutline.setDragEnabled(True)
|
||||
self.treePlanOutline.setDragDropMode(QtWidgets.QAbstractItemView.DragDrop)
|
||||
self.treePlanOutline.setDefaultDropAction(QtCore.Qt.MoveAction)
|
||||
|
@ -800,10 +800,7 @@ class Ui_MainWindow(object):
|
|||
self.verticalLayout_30 = QtWidgets.QVBoxLayout(self.widget)
|
||||
self.verticalLayout_30.setContentsMargins(0, 0, 0, 0)
|
||||
self.verticalLayout_30.setObjectName("verticalLayout_30")
|
||||
self.treeRedacOutline = QtWidgets.QTreeView(self.widget)
|
||||
self.treeRedacOutline.setDragDropMode(QtWidgets.QAbstractItemView.DragDrop)
|
||||
self.treeRedacOutline.setDefaultDropAction(QtCore.Qt.MoveAction)
|
||||
self.treeRedacOutline.setSelectionMode(QtWidgets.QAbstractItemView.ExtendedSelection)
|
||||
self.treeRedacOutline = treeView(self.widget)
|
||||
self.treeRedacOutline.setObjectName("treeRedacOutline")
|
||||
self.verticalLayout_30.addWidget(self.treeRedacOutline)
|
||||
self.horizontalLayout_31 = QtWidgets.QHBoxLayout()
|
||||
|
@ -870,6 +867,11 @@ class Ui_MainWindow(object):
|
|||
self.btnRedacFolderCork.setObjectName("btnRedacFolderCork")
|
||||
self.buttonGroup.addButton(self.btnRedacFolderCork)
|
||||
self.horizontalLayout_19.addWidget(self.btnRedacFolderCork)
|
||||
self.btnRedacFolderOutline = QtWidgets.QPushButton(self.layoutWidget1)
|
||||
self.btnRedacFolderOutline.setCheckable(True)
|
||||
self.btnRedacFolderOutline.setObjectName("btnRedacFolderOutline")
|
||||
self.buttonGroup.addButton(self.btnRedacFolderOutline)
|
||||
self.horizontalLayout_19.addWidget(self.btnRedacFolderOutline)
|
||||
self.sldCorkSizeFactor = QtWidgets.QSlider(self.layoutWidget1)
|
||||
self.sldCorkSizeFactor.setMinimumSize(QtCore.QSize(100, 0))
|
||||
self.sldCorkSizeFactor.setMaximumSize(QtCore.QSize(200, 16777215))
|
||||
|
@ -1276,6 +1278,7 @@ class Ui_MainWindow(object):
|
|||
self.tabMain.setTabText(self.tabMain.indexOf(self.lytTabOutline), _translate("MainWindow", "Outline"))
|
||||
self.btnRedacFolderText.setText(_translate("MainWindow", "Text"))
|
||||
self.btnRedacFolderCork.setText(_translate("MainWindow", "Cork"))
|
||||
self.btnRedacFolderOutline.setText(_translate("MainWindow", "Outline"))
|
||||
self.btnRedacFullscreen.setShortcut(_translate("MainWindow", "F11"))
|
||||
self.groupBox_4.setTitle(_translate("MainWindow", "Properties"))
|
||||
self.lblRedacPOV.setText(_translate("MainWindow", "POV"))
|
||||
|
@ -1329,9 +1332,11 @@ class Ui_MainWindow(object):
|
|||
self.actSpellcheck.setText(_translate("MainWindow", "Spellcheck"))
|
||||
self.actSpellcheck.setShortcut(_translate("MainWindow", "F8"))
|
||||
|
||||
from ui.sldImportance import sldImportance
|
||||
from ui.chkOutlineCompile import chkOutlineCompile
|
||||
from ui.editors.editorWidget import editorWidget
|
||||
from ui.cmbOutlineStatusChoser import cmbOutlineStatusChoser
|
||||
from ui.cmbOutlinePersoChoser import cmbOutlinePersoChoser
|
||||
from ui.collapsibleGroupBox2 import collapsibleGroupBox2
|
||||
from ui.sldImportance import sldImportance
|
||||
from ui.views.treeView import treeView
|
||||
from ui.editors.editorWidget import editorWidget
|
||||
from ui.views.outlineView import outlineView
|
||||
from ui.chkOutlineCompile import chkOutlineCompile
|
||||
from ui.cmbOutlineStatusChoser import cmbOutlineStatusChoser
|
||||
|
|
|
@ -1341,7 +1341,7 @@
|
|||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<widget class="QTreeView" name="treePlanOutline">
|
||||
<widget class="outlineView" name="treePlanOutline">
|
||||
<property name="dragEnabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
|
@ -1549,17 +1549,7 @@
|
|||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QTreeView" name="treeRedacOutline">
|
||||
<property name="dragDropMode">
|
||||
<enum>QAbstractItemView::DragDrop</enum>
|
||||
</property>
|
||||
<property name="defaultDropAction">
|
||||
<enum>Qt::MoveAction</enum>
|
||||
</property>
|
||||
<property name="selectionMode">
|
||||
<enum>QAbstractItemView::ExtendedSelection</enum>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="treeView" name="treeRedacOutline"/>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_31">
|
||||
|
@ -1689,6 +1679,19 @@
|
|||
</attribute>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="btnRedacFolderOutline">
|
||||
<property name="text">
|
||||
<string>Outline</string>
|
||||
</property>
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<attribute name="buttonGroup">
|
||||
<string notr="true">buttonGroup</string>
|
||||
</attribute>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QSlider" name="sldCorkSizeFactor">
|
||||
<property name="minimumSize">
|
||||
|
@ -2324,6 +2327,16 @@
|
|||
<header>ui.collapsibleGroupBox2.h</header>
|
||||
<container>1</container>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>outlineView</class>
|
||||
<extends>QTreeView</extends>
|
||||
<header>ui.views.outlineView.h</header>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>treeView</class>
|
||||
<extends>QTreeView</extends>
|
||||
<header>ui.views.treeView.h</header>
|
||||
</customwidget>
|
||||
</customwidgets>
|
||||
<resources/>
|
||||
<connections>
|
||||
|
|
0
src/ui/views/__init__.py
Normal file
0
src/ui/views/__init__.py
Normal file
|
@ -249,6 +249,18 @@ class corkDelegate(QStyledItemDelegate):
|
|||
p.drawLine(bottomRect.topLeft(), bottomRect.topRight())
|
||||
p.restore()
|
||||
|
||||
# Lines
|
||||
if True:
|
||||
p.save()
|
||||
p.setPen(QColor("#EEE"))
|
||||
fm = QFontMetrics(option.font)
|
||||
h = fm.lineSpacing()
|
||||
l = self.mainTextRect.topLeft() + QPoint(0, h)
|
||||
while self.mainTextRect.contains(l):
|
||||
p.drawLine(l, QPoint(self.mainTextRect.right(), l.y()))
|
||||
l.setY(l.y() + h)
|
||||
p.restore()
|
||||
|
||||
# Draw status
|
||||
mainRect = self.mainRect
|
||||
status = item.data(Outline.status.value)
|
||||
|
@ -281,18 +293,6 @@ class corkDelegate(QStyledItemDelegate):
|
|||
p.setFont(option.font)
|
||||
p.drawText(self.mainTextRect, Qt.TextWordWrap, fullSummary)
|
||||
|
||||
# Lines
|
||||
if True:
|
||||
p.save()
|
||||
p.setPen(QColor("#EEE"))
|
||||
fm = QFontMetrics(option.font)
|
||||
h = fm.lineSpacing()
|
||||
l = self.mainTextRect.topLeft() + QPoint(0, h)
|
||||
while self.mainTextRect.contains(l):
|
||||
p.drawLine(l, QPoint(self.mainTextRect.right(), l.y()))
|
||||
l.setY(l.y() + h)
|
||||
p.restore()
|
||||
|
||||
#Debug
|
||||
#for r in [self.itemRect, self.iconRect, self.titleRect, self.bottomRect, self.mainLineRect, self.mainTextRect]:
|
||||
#p.drawRect(r)
|
32
src/ui/views/corkView.py
Normal file
32
src/ui/views/corkView.py
Normal file
|
@ -0,0 +1,32 @@
|
|||
#!/usr/bin/env python
|
||||
#--!-- coding: utf8 --!--
|
||||
|
||||
|
||||
|
||||
|
||||
from qt import *
|
||||
from enums import *
|
||||
from functions import *
|
||||
from ui.views.corkDelegate import *
|
||||
from ui.views.dndView import *
|
||||
|
||||
class corkView(QListView, dndView):
|
||||
|
||||
def __init__(self, parent=None):
|
||||
QListView.__init__(self, parent)
|
||||
dndView.__init__(self, parent)
|
||||
|
||||
self.setResizeMode(QListView.Adjust)
|
||||
self.setWrapping(True)
|
||||
self.setItemDelegate(corkDelegate())
|
||||
self.setSpacing(5)
|
||||
self.setStyleSheet("""QListView {
|
||||
background:#926239;
|
||||
}""")
|
||||
self.setVerticalScrollMode(self.ScrollPerPixel)
|
||||
self.setFlow(self.LeftToRight)
|
||||
self.setSelectionBehavior(self.SelectRows)
|
||||
|
||||
def dragMoveEvent(self, event):
|
||||
dndView.dragMoveEvent(self, event)
|
||||
QListView.dragMoveEvent(self, event)
|
25
src/ui/views/dndView.py
Normal file
25
src/ui/views/dndView.py
Normal file
|
@ -0,0 +1,25 @@
|
|||
#!/usr/bin/env python
|
||||
#--!-- coding: utf8 --!--
|
||||
|
||||
|
||||
|
||||
|
||||
from qt import *
|
||||
from enums import *
|
||||
from functions import *
|
||||
|
||||
class dndView(QAbstractItemView):
|
||||
|
||||
def __init__(self, parent=None):
|
||||
QAbstractItemView.__init__(self, parent)
|
||||
self.setDragDropMode(self.DragDrop)
|
||||
self.setDefaultDropAction(Qt.MoveAction)
|
||||
self.setSelectionMode(self.ExtendedSelection)
|
||||
|
||||
def dragMoveEvent(self, event):
|
||||
#return QAbstractItemView.dragMoveEvent(self, event)
|
||||
#print(a)
|
||||
if event.keyboardModifiers() & Qt.ControlModifier:
|
||||
event.setDropAction(Qt.CopyAction)
|
||||
else:
|
||||
event.setDropAction(Qt.MoveAction)
|
61
src/ui/views/outlineView.py
Normal file
61
src/ui/views/outlineView.py
Normal file
|
@ -0,0 +1,61 @@
|
|||
#!/usr/bin/env python
|
||||
#--!-- coding: utf8 --!--
|
||||
|
||||
|
||||
|
||||
|
||||
from qt import *
|
||||
from enums import *
|
||||
from functions import *
|
||||
from ui.views.treeOutlineDelegates import *
|
||||
from ui.views.dndView import *
|
||||
|
||||
class outlineView(QTreeView, dndView):
|
||||
|
||||
def __init__(self, parent=None, modelPersos=None):
|
||||
QTreeView.__init__(self, parent)
|
||||
dndView.__init__(self, parent)
|
||||
self.modelPersos = modelPersos
|
||||
self.header().setStretchLastSection(False)
|
||||
|
||||
def setModelPersos(self, model):
|
||||
# This is used by treeOutlinePersoDelegate to select character
|
||||
self.modelPersos = model
|
||||
|
||||
def setModel(self, model):
|
||||
QTreeView.setModel(self, model)
|
||||
|
||||
# Setting delegates
|
||||
self.treePlanOutlinePersoDelegate = treeOutlinePersoDelegate(self.modelPersos)
|
||||
self.setItemDelegateForColumn(Outline.POV.value, self.treePlanOutlinePersoDelegate)
|
||||
self.treePlanOutlineCompileDelegate = treeOutlineCompileDelegate()
|
||||
self.setItemDelegateForColumn(Outline.compile.value, self.treePlanOutlineCompileDelegate)
|
||||
self.treePlanOutlineStatusDelegate = treeOutlineStatusDelegate()
|
||||
self.setItemDelegateForColumn(Outline.status.value, self.treePlanOutlineStatusDelegate)
|
||||
self.treePlanOutlineGoalPercentageDelegate = treeOutlineGoalPercentageDelegate()
|
||||
self.setItemDelegateForColumn(Outline.goalPercentage.value, self.treePlanOutlineGoalPercentageDelegate)
|
||||
|
||||
# Hiding columns
|
||||
for c in range(1, self.model().columnCount()):
|
||||
self.hideColumn(c)
|
||||
for c in [Outline.POV.value, Outline.status.value, Outline.compile.value,
|
||||
Outline.wordCount.value, Outline.goal.value, Outline.goalPercentage.value]:
|
||||
self.showColumn(c)
|
||||
|
||||
self.header().setSectionResizeMode(Outline.title.value, QHeaderView.Stretch)
|
||||
self.header().setSectionResizeMode(Outline.POV.value, QHeaderView.ResizeToContents)
|
||||
self.header().setSectionResizeMode(Outline.status.value, QHeaderView.ResizeToContents)
|
||||
self.header().setSectionResizeMode(Outline.compile.value, QHeaderView.ResizeToContents)
|
||||
self.header().setSectionResizeMode(Outline.wordCount.value, QHeaderView.ResizeToContents)
|
||||
self.header().setSectionResizeMode(Outline.goal.value, QHeaderView.ResizeToContents)
|
||||
self.header().setSectionResizeMode(Outline.goalPercentage.value, QHeaderView.ResizeToContents)
|
||||
|
||||
def setRootIndex(self, index):
|
||||
QTreeView.setRootIndex(self, index)
|
||||
self.treePlanOutlineGoalPercentageDelegate = treeOutlineGoalPercentageDelegate(index)
|
||||
self.setItemDelegateForColumn(Outline.goalPercentage.value, self.treePlanOutlineGoalPercentageDelegate)
|
||||
|
||||
def dragMoveEvent(self, event):
|
||||
dndView.dragMoveEvent(self, event)
|
||||
QTreeView.dragMoveEvent(self, event)
|
||||
|
|
@ -59,8 +59,15 @@ class treeOutlineCompileDelegate(QStyledItemDelegate):
|
|||
return ""
|
||||
|
||||
class treeOutlineGoalPercentageDelegate(QStyledItemDelegate):
|
||||
def __init__(self, parent=None):
|
||||
def __init__(self, rootIndex=None, parent=None):
|
||||
QStyledItemDelegate.__init__(self, parent)
|
||||
self.rootIndex = rootIndex
|
||||
|
||||
def sizeHint(self, option, index):
|
||||
sh = QStyledItemDelegate.sizeHint(self, option, index)
|
||||
#if sh.width() > 50:
|
||||
sh.setWidth(100)
|
||||
return sh
|
||||
|
||||
def paint(self, painter, option, index):
|
||||
if not index.isValid():
|
||||
|
@ -78,6 +85,8 @@ class treeOutlineGoalPercentageDelegate(QStyledItemDelegate):
|
|||
typ = item.data(Outline.type.value)
|
||||
|
||||
level = item.level()
|
||||
if self.rootIndex:
|
||||
level -= self.rootIndex.internalPointer().level() + 1
|
||||
|
||||
margin = 5
|
||||
height = max(min(option.rect.height() - 2*margin, 12) - 2 * level, 6)
|
28
src/ui/views/treeView.py
Normal file
28
src/ui/views/treeView.py
Normal file
|
@ -0,0 +1,28 @@
|
|||
#!/usr/bin/env python
|
||||
#--!-- coding: utf8 --!--
|
||||
|
||||
|
||||
|
||||
|
||||
from qt import *
|
||||
from enums import *
|
||||
from functions import *
|
||||
from ui.views.dndView import *
|
||||
|
||||
class treeView(QTreeView, dndView):
|
||||
|
||||
def __init__(self, parent=None):
|
||||
QTreeView.__init__(self, parent)
|
||||
dndView.__init__(self, parent)
|
||||
|
||||
|
||||
def setModel(self, model):
|
||||
QTreeView.setModel(self, model)
|
||||
|
||||
# Hiding columns
|
||||
for c in range(1, self.model().columnCount()):
|
||||
self.hideColumn(c)
|
||||
|
||||
def dragMoveEvent(self, event):
|
||||
dndView.dragMoveEvent(self, event)
|
||||
QTreeView.dragMoveEvent(self, event)
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<outlineItem title="root" type="folder" compile="2" wordCount="1875" setGoal="112">
|
||||
<outlineItem title="root" type="folder" compile="2" wordCount="2221" setGoal="112">
|
||||
<outlineItem title="Nouveau" type="folder" compile="2" wordCount="15">
|
||||
<outlineItem title="Nouveau" type="scene" compile="2" text="return QTextEdit.resizeEvent(self, e) ad ad ad ad adaasd ad adsdasd ad e drset" wordCount="15"/>
|
||||
</outlineItem>
|
||||
|
@ -17,12 +17,13 @@
|
|||
<outlineItem title="B" type="scene" compile="2" text="asd asd asd asd asd asd asd asd asd asd asd" wordCount="12" setGoal="10"/>
|
||||
</outlineItem>
|
||||
<outlineItem title="Nouveau" type="folder" compile="2" wordCount="727">
|
||||
<outlineItem title="Nouveau" type="folder" compile="2"/>
|
||||
<outlineItem title="Nouveau" type="folder" compile="2" wordCount="48">
|
||||
<outlineItem title="B" type="scene" compile="2" text="asd asd asd asd asd asd asd asd asd asd asd" wordCount="12" setGoal="10"/>
|
||||
<outlineItem title="B" type="scene" compile="2" text="asd asd asd asd asd asd asd asd asd asd asd" wordCount="12" setGoal="10"/>
|
||||
<outlineItem title="B" type="scene" compile="2" text="asd asd asd asd asd asd asd asd asd asd asd" wordCount="12" setGoal="10"/>
|
||||
<outlineItem title="B" type="scene" compile="2" text="asd asd asd asd asd asd asd asd asd asd asd" wordCount="12" setGoal="10"/>
|
||||
</outlineItem>
|
||||
<outlineItem title="Nouveau" type="scene" compile="2" text="ASDASd ASD ASDASd ASD asd asd ASDASd ASD ASDASd ASD asd asd ASDASd ASD ASDASd ASD asd asd ASDASd ASD ASDASd ASD asd asd ASDASd ASD **ASDASd** ASD asd asd ASDASd ASD ASDASd ASD asd asd ASDASd ASD ASDASd ASD asd asd ASDASd ASD ASDASd ASD asd asd ASDASd ASD ASDASd ASD asd asd ASDASd ASD ASDASd ASD asd asd ASDASd ASD ASDASd ASD asd asd ASDASd ASD ASDASd ASD asd asd ASDASd ASD ASDASd ASD asd asd ASDASd ASD ASDASd ASD asd asd ASDASd ASD ASDASd ASD asd asd ASDASd ASD ASDASd ASD asd asd ASDASd ASD ASDASd ASD asd asd ASDASd ASD ASDASd ASD asd asd ASDASd ASD ASDASd ASD asd asd ASDASd ASD ASDASd ASD asd asd ASDASd ASD ASDASd ASD asd asd ASDASd ASD ASDASd ASD asd asd ASDASd ASD ASDASd ASD asd asd ASDASd ASD ASDASd ASD asd asd ASDASd ASD ASDASd ASD asd asd " wordCount="199" setGoal="100"/>
|
||||
<outlineItem title="B" type="scene" compile="2" text="asd asd asd asd asd asd asd asd asd asd asd" wordCount="12" setGoal="10"/>
|
||||
<outlineItem title="B" type="scene" compile="2" text="asd asd asd asd asd asd asd asd asd asd asd" wordCount="12" setGoal="10"/>
|
||||
<outlineItem title="B" type="scene" compile="2" text="asd asd asd asd asd asd asd asd asd asd asd" wordCount="12" setGoal="10"/>
|
||||
<outlineItem title="B" type="scene" compile="2" text="asd asd asd asd asd asd asd asd asd asd asd" wordCount="12" setGoal="10"/>
|
||||
<outlineItem title="Nouveau s" type="scene" summaryFull="asd asdasd asaa asd asd " POV="1" compile="2" text="ASDASd ASD ASDASd ASD asd sss ad ad ssss" wordCount="9" setGoal="10"/>
|
||||
<outlineItem title="MOIMOIMOI" type="scene" POV="1" compile="2" text="ASDASd ASD ASDASd ASD ASDASd ASD **ssss**" wordCount="7" setGoal="10"/>
|
||||
<outlineItem title="Nouveau s" type="scene" POV="1" compile="2" text="ASDASd ASD ASDASd ASD asd sss ad ad ssss" wordCount="9" setGoal="10"/>
|
||||
|
@ -36,28 +37,24 @@
|
|||
</outlineItem>
|
||||
<outlineItem title="MOIMOIMOI" type="scene" summarySentance="Résumé" summaryFull="Là ça joue, et on est content. Pas de raison de se plaindre. **OK**? Là ça joue, et on est content. Pas de raison de se plaindre. **OK**? Là ça joue, et on est content. Pas de raison de se plaindre. **OK**? Là ça joue, et on est content. Pas de raison de se plaindre. **OK**? Là ça joue, et on est content. Pas de raison de se plaindre. **OK**? Là ça joue, et on est content. Pas de raison de se plaindre. **OK**? Là ça joue, et on est content. Pas de raison de se plaindre. **OK**?" status="Second draft" compile="2" text="Là ça joue, et on est content. Pas de raison de se plaindre. **OK**? Ben voilà, suffisait de demander ! " wordCount="21" setGoal="250"/>
|
||||
</outlineItem>
|
||||
<outlineItem title="Nouveau A" type="folder" compile="2" wordCount="989" setGoal="250">
|
||||
<outlineItem title="Nouveau Avec un nom franchement très long et on est mal barré pour l'imprimer correctement" type="scene" compile="2" text="ASDASd ASD ASDASd ASD " wordCount="4"/>
|
||||
<outlineItem title="Nouveau A" type="folder" compile="2" wordCount="1084" setGoal="250">
|
||||
<outlineItem title="Nouveau" type="scene" compile="2" text="ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD adasaas adasds adssdawdas saasdASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD adasaas adasds adssdawdas saasdASDASd ASD ASDASd ASD ASDASd ASD aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" wordCount="211"/>
|
||||
<outlineItem title="Titre cool" type="scene" compile="2" text="asdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasd asd aasdasd asd asd asd asd asdasd asdaasd " wordCount="58" setGoal="50"/>
|
||||
<outlineItem title="Nouveau" type="scene" status="First draft" compile="2" text="ASDASd ASD " wordCount="2"/>
|
||||
<outlineItem title="A" type="scene" compile="2" text="asdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasd asd aasdasd asd asd asd asd asdasd asdaasd " wordCount="58" setGoal="50"/>
|
||||
<outlineItem title="Nouveau Avec un nom franchement très long et on est mal barré pour l'imprimer correctement" type="scene" POV="2" compile="2" text="ASDASd ASD ASDASd ASD " wordCount="4"/>
|
||||
<outlineItem title="Nouveau" type="scene" compile="2" text="ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD adasaas adasds adssdawdas saasdASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD adasaas adasds adssdawdas saasdASDASd ASD ASDASd ASD ASDASd ASD aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" wordCount="211"/>
|
||||
<outlineItem title="B" type="scene" compile="2" text="asd asd asd asd asd asd asd asd asd asd asd" wordCount="12" setGoal="10"/>
|
||||
<outlineItem title="Nouveau" type="scene" compile="2" text="ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD adasaas adasds adssdawdas saasdASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD adasaas adasds adssdawdas saasdASDASd ASD ASDASd ASD ASDASd ASD aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" wordCount="211"/>
|
||||
<outlineItem title="B" type="scene" compile="2" text="asd asd asd asd asd asd asd asd asd asd asd" wordCount="12" setGoal="10"/>
|
||||
<outlineItem title="B" type="scene" compile="2" text="asd asd asd asd asd asd asd asd asd asd asd" wordCount="12" setGoal="10"/>
|
||||
<outlineItem title="B" type="scene" compile="2" text="asd asd asd asd asd asd asd asd asd asd asd" wordCount="12" setGoal="10"/>
|
||||
<outlineItem title="Nouveau" type="scene" compile="2"/>
|
||||
<outlineItem title="A" type="scene" status="Final" compile="2" text="asdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasd asd aasdasd asd asd asd asd asdasd asdaasd " wordCount="58" setGoal="50"/>
|
||||
<outlineItem title="Nouveau" type="scene" compile="2" text="ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD adasaas adasds adssdawdas saasdASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD adasaas adasds adssdawdas saasdASDASd ASD ASDASd ASD ASDASd ASD aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" wordCount="211"/>
|
||||
<outlineItem title="B" type="scene" compile="2" text="asd asd asd asd asd asd asd asd asd asd asd" wordCount="12" setGoal="10"/>
|
||||
<outlineItem title="Nouveau" type="scene" compile="2" text="ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD adasaas adasds adssdawdas saasdASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD adasaas adasds adssdawdas saasdASDASd ASD ASDASd ASD ASDASd ASD aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" wordCount="211"/>
|
||||
<outlineItem title="B" type="scene" compile="2" text="asd asd asd asd asd asd asd asd asd asd asd" wordCount="12" setGoal="10"/>
|
||||
<outlineItem title="Nouveau" type="scene" compile="2" text="ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD adasaas adasds adssdawdas saasdASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD adasaas adasds adssdawdas saasdASDASd ASD ASDASd ASD ASDASd ASD aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" wordCount="211"/>
|
||||
<outlineItem title="B" type="scene" compile="2" text="asd asd asd asd asd asd asd asd asd asd asd" wordCount="12" setGoal="10"/>
|
||||
<outlineItem title="B" type="scene" compile="2" text="asd asd asd asd asd asd asd asd asd asd asd" wordCount="12" setGoal="10"/>
|
||||
<outlineItem title="A" type="scene" status="TODO" compile="2" text="asdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasd asd aasdasd asd asd asd asd asdasd asdaasd " wordCount="58" setGoal="50"/>
|
||||
<outlineItem title="B" type="scene" compile="2" text="asd asd asd asd asd asd asd asd asd asd asd" wordCount="12" setGoal="10"/>
|
||||
<outlineItem title="Nouveau" type="scene" status="First draft" compile="2" text="ASDASd ASD " wordCount="2"/>
|
||||
<outlineItem title="A" type="scene" status="Final" compile="2" text="asdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasd asd aasdasd asd asd asd asd asdasd asdaasd " wordCount="58" setGoal="50"/>
|
||||
</outlineItem>
|
||||
<outlineItem title="B" type="scene" compile="2" text="asd asd asd asd asd asd asd asd asd asd asd" wordCount="12" setGoal="10"/>
|
||||
<outlineItem title="B" type="scene" compile="2" text="asd asd asd asd asd asd asd asd asd asd asd" wordCount="12" setGoal="10"/>
|
||||
<outlineItem title="B" type="scene" compile="2" text="asd asd asd asd asd asd asd asd asd asd asd" wordCount="12" setGoal="10"/>
|
||||
<outlineItem title="B" type="scene" compile="2" text="asd asd asd asd asd asd asd asd asd asd asd" wordCount="12" setGoal="10"/>
|
||||
<outlineItem title="B" type="scene" compile="2" text="asd asd asd asd asd asd asd asd asd asd asd" wordCount="12" setGoal="10"/>
|
||||
<outlineItem title="B" type="scene" compile="2" text="asd asd asd asd asd asd asd asd asd asd asd" wordCount="12" setGoal="10"/>
|
||||
<outlineItem title="B" type="scene" compile="2" text="asd asd asd asd asd asd asd asd asd asd asd" wordCount="12" setGoal="10"/>
|
||||
<outlineItem title="A" type="scene" compile="2" text="asdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasd asd aasdasd asd asd asd asd asdasd asdaasd " wordCount="58" setGoal="50"/>
|
||||
<outlineItem title="A" type="scene" compile="2" text="asdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasd asd aasdasd asd asd asd asd asdasd asdaasd " wordCount="58" setGoal="50"/>
|
||||
</outlineItem>
|
||||
|
|
Loading…
Reference in a new issue