diff --git a/manuskript/ui/mainWindow.py b/manuskript/ui/mainWindow.py
index dba45bcf..dbcda034 100644
--- a/manuskript/ui/mainWindow.py
+++ b/manuskript/ui/mainWindow.py
@@ -2,7 +2,8 @@
# Form implementation generated from reading ui file 'manuskript/ui/mainWindow.ui'
#
-# Created by: PyQt5 UI code generator 5.4.2
+# Created: Sun Feb 28 09:13:29 2016
+# by: PyQt5 UI code generator 5.2.1
#
# WARNING! All changes made in this file will be lost!
@@ -16,8 +17,8 @@ class Ui_MainWindow(object):
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.centralwidget)
- self.horizontalLayout_2.setContentsMargins(0, 6, 0, 0)
self.horizontalLayout_2.setSpacing(0)
+ self.horizontalLayout_2.setContentsMargins(0, 6, 0, 0)
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
self.stack = QtWidgets.QStackedWidget(self.centralwidget)
self.stack.setObjectName("stack")
@@ -808,6 +809,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)
@@ -1299,18 +1301,18 @@ class Ui_MainWindow(object):
self.actCompile.setShortcut(_translate("MainWindow", "F6"))
self.actToolFrequency.setText(_translate("MainWindow", "&Frequency Analyzer"))
-from manuskript.ui.cheatSheet import cheatSheet
-from manuskript.ui.editors.mainEditor import mainEditor
-from manuskript.ui.search import search
-from manuskript.ui.sldImportance import sldImportance
-from manuskript.ui.views.basicItemView import basicItemView
-from manuskript.ui.views.lineEditView import lineEditView
-from manuskript.ui.views.metadataView import metadataView
-from manuskript.ui.views.outlineView import outlineView
-from manuskript.ui.views.persoTreeView import persoTreeView
from manuskript.ui.views.plotTreeView import plotTreeView
from manuskript.ui.views.storylineView import storylineView
-from manuskript.ui.views.textEditCompleter import textEditCompleter
-from manuskript.ui.views.textEditView import textEditView
+from manuskript.ui.views.basicItemView import basicItemView
from manuskript.ui.views.treeView import treeView
+from manuskript.ui.views.outlineView import outlineView
+from manuskript.ui.search import search
+from manuskript.ui.sldImportance import sldImportance
+from manuskript.ui.views.textEditCompleter import textEditCompleter
+from manuskript.ui.views.metadataView import metadataView
+from manuskript.ui.views.persoTreeView import persoTreeView
+from manuskript.ui.cheatSheet import cheatSheet
from manuskript.ui.welcome import welcome
+from manuskript.ui.editors.mainEditor import mainEditor
+from manuskript.ui.views.lineEditView import lineEditView
+from manuskript.ui.views.textEditView import textEditView
diff --git a/manuskript/ui/views/storylineView.py b/manuskript/ui/views/storylineView.py
index 67088684..058be9db 100644
--- a/manuskript/ui/views/storylineView.py
+++ b/manuskript/ui/views/storylineView.py
@@ -1,7 +1,7 @@
#!/usr/bin/env python
# --!-- coding: utf8 --!--
from PyQt5.QtCore import Qt, QTimer
-from PyQt5.QtGui import QBrush, QPen
+from PyQt5.QtGui import QBrush, QPen, QFontMetrics
from PyQt5.QtWidgets import QWidget, QGraphicsScene, QGraphicsSimpleTextItem, QMenu, QAction, QGraphicsRectItem, \
QGraphicsLineItem
@@ -14,7 +14,6 @@ class storylineView(QWidget, Ui_storylineView):
QWidget.__init__(self, parent)
self.setupUi(self)
self._mdlPlots = None
- self.btnRefresh.clicked.connect(self.refresh)
self.scene = QGraphicsScene()
self.view.setScene(self.scene)
@@ -23,6 +22,9 @@ class storylineView(QWidget, Ui_storylineView):
self.reloadTimer.setSingleShot(True)
self.reloadTimer.setInterval(500)
+ self.btnRefresh.clicked.connect(self.refresh)
+ self.sldTxtSize.sliderMoved.connect(self.reloadTimer.start)
+
self.generateMenu()
def generateMenu(self):
@@ -58,14 +60,13 @@ class storylineView(QWidget, Ui_storylineView):
LINE_HEIGHT = 32
SPACING = 6
- RECT_WIDTH = 200
- TEXT_WIDTH = 25
+ TEXT_WIDTH = self.sldTxtSize.value()
LEVEL_HEIGHT = 12
s = self.scene
s.clear()
- # Get Max Level
+ # Get Max Level (max depth)
root = self._mdlOutline.rootItem
def maxLevel(item, level=0, max=0):
if level > max:
@@ -81,18 +82,23 @@ class storylineView(QWidget, Ui_storylineView):
# Get plots
plotsID = self._mdlPlots.getPlotsByImportance()
plots = []
+ fm = QFontMetrics(s.font())
+ max_name = 0
+
for importance in plotsID:
for ID in importance:
name = self._mdlPlots.getPlotNameByID(ID)
plots.append((ID, name))
+ max_name = max(fm.width(name), max_name)
ROWS_HEIGHT = len(plots) * (LINE_HEIGHT + SPACING )
+ TITLE_WIDTH = max_name + 2 * SPACING
# Add Folders and Texts
outline = OutlineRect(0, 0, 0, ROWS_HEIGHT + SPACING + MAX_LEVEL * LEVEL_HEIGHT)
s.addItem(outline)
- outline.setPos(RECT_WIDTH + SPACING, 0)
+ outline.setPos(TITLE_WIDTH + SPACING, 0)
# A Function to add a rect with centered text
def addRectText(x, w, parent, text="", level=0, tooltip=""):
@@ -114,7 +120,7 @@ class storylineView(QWidget, Ui_storylineView):
r = 0
for c in item.children():
r += itemWidth(c)
- return r
+ return r or TEXT_WIDTH
else:
return TEXT_WIDTH
@@ -142,7 +148,7 @@ class storylineView(QWidget, Ui_storylineView):
color = randomColor()
# Rect
- r = QGraphicsRectItem(0, 0, RECT_WIDTH, LINE_HEIGHT, itemsRect)
+ r = QGraphicsRectItem(0, 0, TITLE_WIDTH, LINE_HEIGHT, itemsRect)
r.setPen(QPen(Qt.NoPen))
r.setBrush(QBrush(color))
r.setPos(0, i * LINE_HEIGHT + i * SPACING)
@@ -153,9 +159,9 @@ class storylineView(QWidget, Ui_storylineView):
txt.setPos(r.boundingRect().center() - txt.boundingRect().center())
# Line
- line = PlotLine(RECT_WIDTH,
+ line = PlotLine(TITLE_WIDTH,
r.mapToScene(r.rect().center()).y(),
- OUTLINE_WIDTH + RECT_WIDTH + SPACING,
+ OUTLINE_WIDTH + TITLE_WIDTH + SPACING,
r.mapToScene(r.rect().center()).y())
s.addItem(line)
line.setPen(QPen(color, 5))
diff --git a/manuskript/ui/views/storylineView_ui.py b/manuskript/ui/views/storylineView_ui.py
index c9413c2b..9f886ffd 100644
--- a/manuskript/ui/views/storylineView_ui.py
+++ b/manuskript/ui/views/storylineView_ui.py
@@ -2,7 +2,8 @@
# Form implementation generated from reading ui file 'manuskript/ui/views/storylineView_ui.ui'
#
-# Created by: PyQt5 UI code generator 5.4.2
+# Created: Sun Feb 28 09:13:29 2016
+# by: PyQt5 UI code generator 5.2.1
#
# WARNING! All changes made in this file will be lost!
@@ -13,8 +14,8 @@ class Ui_storylineView(object):
storylineView.setObjectName("storylineView")
storylineView.resize(1040, 130)
self.horizontalLayout = QtWidgets.QHBoxLayout(storylineView)
- self.horizontalLayout.setContentsMargins(0, 0, 0, 0)
self.horizontalLayout.setSpacing(0)
+ self.horizontalLayout.setContentsMargins(0, 0, 0, 0)
self.horizontalLayout.setObjectName("horizontalLayout")
self.verticalLayout = QtWidgets.QVBoxLayout()
self.verticalLayout.setSpacing(0)
@@ -37,8 +38,13 @@ class Ui_storylineView(object):
self.btnRefresh.setFlat(True)
self.btnRefresh.setObjectName("btnRefresh")
self.verticalLayout.addWidget(self.btnRefresh)
- spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
- self.verticalLayout.addItem(spacerItem)
+ self.sldTxtSize = QtWidgets.QSlider(storylineView)
+ self.sldTxtSize.setMinimum(1)
+ self.sldTxtSize.setMaximum(100)
+ self.sldTxtSize.setProperty("value", 20)
+ self.sldTxtSize.setOrientation(QtCore.Qt.Vertical)
+ self.sldTxtSize.setObjectName("sldTxtSize")
+ self.verticalLayout.addWidget(self.sldTxtSize)
self.btnSettings = QtWidgets.QPushButton(storylineView)
self.btnSettings.setMaximumSize(QtCore.QSize(32, 32))
self.btnSettings.setText("")
diff --git a/manuskript/ui/views/storylineView_ui.ui b/manuskript/ui/views/storylineView_ui.ui
index 71741da9..069de66e 100644
--- a/manuskript/ui/views/storylineView_ui.ui
+++ b/manuskript/ui/views/storylineView_ui.ui
@@ -88,17 +88,20 @@
-
-
+
+
+ 1
+
+
+ 100
+
+
+ 20
+
Qt::Vertical
-
-
- 20
- 40
-
-
-
+
-