mirror of
https://github.com/olivierkes/manuskript.git
synced 2024-05-09 23:42:27 +12:00
109 lines
3.6 KiB
Python
109 lines
3.6 KiB
Python
#!/usr/bin/env python
|
|
#--!-- coding: utf8 --!--
|
|
|
|
from __future__ import print_function
|
|
from __future__ import unicode_literals
|
|
|
|
import random
|
|
from PyQt4.QtCore import *
|
|
from PyQt4.QtGui import *
|
|
|
|
from ui.mainWindow import *
|
|
|
|
class MainWindow(QMainWindow, Ui_MainWindow):
|
|
def __init__(self):
|
|
QMainWindow.__init__(self)
|
|
self.setupUi(self)
|
|
|
|
|
|
self.splitterPersos.setStretchFactor(0, 25)
|
|
self.splitterPersos.setStretchFactor(1, 75)
|
|
|
|
self.splitterPlot.setStretchFactor(0, 25)
|
|
self.splitterPlot.setStretchFactor(1, 75)
|
|
|
|
self.splitterPlan.setStretchFactor(0, 25)
|
|
self.splitterPlan.setStretchFactor(1, 75)
|
|
|
|
self.splitterRedac.setStretchFactor(0, 20)
|
|
self.splitterRedac.setStretchFactor(1, 60)
|
|
self.splitterRedac.setStretchFactor(2, 20)
|
|
|
|
|
|
# Summary
|
|
self.mapper = QSignalMapper(self)
|
|
for t, i in [
|
|
(self.txtSummarySentance, 0),
|
|
(self.txtSummaryPara, 1),
|
|
(self.txtSummaryPage, 2),
|
|
(self.txtSummaryFull, 3)
|
|
]:
|
|
t.textChanged.connect(self.mapper.map)
|
|
self.mapper.setMapping(t, i)
|
|
|
|
self.mapper.mapped.connect(self.textChanged)
|
|
|
|
# Snowflake Method Cycle
|
|
self.mapperCycle = QSignalMapper(self)
|
|
for t, i in [
|
|
(self.btnStepTwo, 0),
|
|
(self.btnStepThree, 1),
|
|
(self.btnStepFour, 2),
|
|
(self.btnStepFive, 3),
|
|
(self.btnStepSix, 4),
|
|
(self.btnStepSeven, 5),
|
|
(self.btnStepEight, 6)
|
|
]:
|
|
t.clicked.connect(self.mapperCycle.map)
|
|
self.mapperCycle.setMapping(t, i)
|
|
|
|
self.mapperCycle.mapped.connect(self.clickCycle)
|
|
|
|
def clickCycle(self, i):
|
|
if i == 0: # step 2 - paragraph summary
|
|
self.tabMain.setCurrentIndex(1)
|
|
self.tabSummary.setCurrentIndex(1)
|
|
if i == 1: # step 3 - characters summary
|
|
self.tabMain.setCurrentIndex(2)
|
|
self.tabPersos.setCurrentIndex(0)
|
|
if i == 2: # step 4 - page summary
|
|
self.tabMain.setCurrentIndex(1)
|
|
self.tabSummary.setCurrentIndex(2)
|
|
if i == 3: # step 5 - characters description
|
|
self.tabMain.setCurrentIndex(2)
|
|
self.tabPersos.setCurrentIndex(1)
|
|
if i == 4: # step 6 - four page synopsis
|
|
self.tabMain.setCurrentIndex(1)
|
|
self.tabSummary.setCurrentIndex(3)
|
|
if i == 5: # step 7 - full character charts
|
|
self.tabMain.setCurrentIndex(2)
|
|
self.tabPersos.setCurrentIndex(2)
|
|
if i == 6: # step 8 - scene list
|
|
self.tabMain.setCurrentIndex(3)
|
|
|
|
|
|
|
|
"Updates Summary fields over tabs"
|
|
def textChanged(self, i):
|
|
if i < 3:
|
|
src, dst = {
|
|
0:(self.txtSummarySentance, self.txtSummarySentance_2),
|
|
1:(self.txtSummaryPara, self.txtSummaryPara_2),
|
|
2:(self.txtSummaryPage, self.txtSummaryPage_2)
|
|
}[i]
|
|
|
|
dst.setPlainText(src.toPlainText())
|
|
else:
|
|
src = self.txtSummaryFull
|
|
|
|
lbl = {
|
|
0:self.lblSummaryWCSentance,
|
|
1:self.lblSummaryWCPara,
|
|
2:self.lblSummaryWCPage,
|
|
3:self.lblSummaryWCFull
|
|
}[i]
|
|
|
|
wc = len(src.toPlainText().split(" ")) if src.toPlainText() else 0
|
|
if i in [2, 3]: pages = " (~{} pages)".format(int(wc / 25) / 10.)
|
|
else: pages = ""
|
|
lbl.setText("Mots: {}{}".format(wc, pages)) |