#!/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))