mirror of
https://github.com/olivierkes/manuskript.git
synced 2024-05-18 20:02:32 +12:00
Adds: perso color
This commit is contained in:
parent
59073fa9dd
commit
ed95481ead
|
@ -1,8 +1,5 @@
|
|||
#!/usr/bin/env python
|
||||
#--!-- coding: utf8 --!--
|
||||
|
||||
|
||||
|
||||
|
||||
from qt import *
|
||||
|
||||
|
@ -58,7 +55,11 @@ def mainWindow():
|
|||
|
||||
def iconColor(icon):
|
||||
"Returns a QRgb from a QIcon, assuming its all the same color"
|
||||
return QColor(QImage(icon.pixmap(5, 5)).pixel(2, 2))
|
||||
px = icon.pixmap(5, 5)
|
||||
if px.width() != 0:
|
||||
return QColor(QImage(px).pixel(2, 2))
|
||||
else:
|
||||
return Qt.transparent
|
||||
|
||||
def iconFromColor(color):
|
||||
px = QPixmap(32, 32)
|
||||
|
|
|
@ -95,21 +95,25 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
|||
|
||||
# Persos
|
||||
self.mdlPersos = QStandardItemModel(0, 10)
|
||||
self.mdlPersosProxy = persosProxyModel()
|
||||
self.mdlPersosProxy = None #persosProxyModel()
|
||||
#self.mdlPersoProxyFilter = QSortFilterProxyModel()
|
||||
self.mdlPersosProxy.setSourceModel(self.mdlPersos)
|
||||
if self.mdlPersosProxy:
|
||||
self.mdlPersosProxy.setSourceModel(self.mdlPersos)
|
||||
self.lstPersos.setModel(self.mdlPersosProxy)
|
||||
else:
|
||||
self.lstPersos.setModel(self.mdlPersos)
|
||||
|
||||
self.mdlPersosInfos = QStandardItemModel(1, 0)
|
||||
self.mdlPersosInfos.insertColumn(0, [QStandardItem("ID")])
|
||||
self.mdlPersosInfos.setHorizontalHeaderLabels(["Description"])
|
||||
#self.lstPersos.setModel(self.mdlPersos)
|
||||
self.lstPersos.setModel(self.mdlPersosProxy)
|
||||
|
||||
self.tblPersoInfos.setModel(self.mdlPersosInfos)
|
||||
self.tblPersoInfos.setRowHidden(0, True)
|
||||
|
||||
self.btnAddPerso.clicked.connect(self.createPerso)
|
||||
self.btnRmPerso.clicked.connect(self.removePerso)
|
||||
self.btnPersoColor.clicked.connect(self.setPersoColor)
|
||||
self.btnPersoAddInfo.clicked.connect(lambda: self.mdlPersosInfos.insertRow(self.mdlPersosInfos.rowCount()))
|
||||
self.mprPersos = QDataWidgetMapper()
|
||||
self.mprPersos.setModel(self.mdlPersos)
|
||||
|
@ -142,7 +146,8 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
|||
(Qt.yellow, self.tr("Idea")),
|
||||
(Qt.green, self.tr("Note")),
|
||||
(Qt.blue, self.tr("Chapter")),
|
||||
(Qt.red, self.tr("Scene"))
|
||||
(Qt.red, self.tr("Scene")),
|
||||
(Qt.cyan, self.tr("Research"))
|
||||
]:
|
||||
self.mdlLabels.appendRow(QStandardItem(iconFromColor(color), text))
|
||||
|
||||
|
@ -288,14 +293,25 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
|||
self.mdlPersos.setItem(i, Perso.ID.value, item)
|
||||
|
||||
def removePerso(self):
|
||||
i = self.mdlPersosProxy.mapToSource(self.lstPersos.currentIndex())
|
||||
if self.mdlPersosProxy:
|
||||
i = self.mdlPersosProxy.mapToSource(self.lstPersos.currentIndex())
|
||||
else:
|
||||
i = self.lstPersos.currentIndex()
|
||||
self.mdlPersos.takeRow(i.row())
|
||||
self.mdlPersosInfos.takeColumn(i.row()+1)
|
||||
|
||||
def changeCurrentPerso(self, trash=None):
|
||||
idx = self.mdlPersosProxy.mapToSource(self.lstPersos.currentIndex())
|
||||
if self.mdlPersosProxy:
|
||||
idx = self.mdlPersosProxy.mapToSource(self.lstPersos.currentIndex())
|
||||
else:
|
||||
idx = self.lstPersos.currentIndex()
|
||||
|
||||
self.mprPersos.setCurrentModelIndex(idx)
|
||||
|
||||
# Button color
|
||||
self.updatePersoColor()
|
||||
|
||||
# detailed infos
|
||||
pid = self.mdlPersos.item(idx.row(), Perso.ID.value).text()
|
||||
for c in range(self.mdlPersosInfos.columnCount()):
|
||||
pid2 = self.mdlPersosInfos.item(0, c).text()
|
||||
|
@ -303,13 +319,48 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
|||
|
||||
self.resizePersosInfos()
|
||||
|
||||
def updatePersoColor(self):
|
||||
if self.mdlPersosProxy:
|
||||
idx = self.mdlPersosProxy.mapToSource(self.lstPersos.currentIndex())
|
||||
else:
|
||||
idx = self.lstPersos.currentIndex()
|
||||
|
||||
px = QPixmap(32, 32)
|
||||
icon = self.mdlPersos.item(idx.row()).icon()
|
||||
if icon:
|
||||
px.fill(iconColor(icon))
|
||||
self.btnPersoColor.setIcon(QIcon(px))
|
||||
|
||||
def resizePersosInfos(self):
|
||||
self.tblPersoInfos.resizeColumnToContents(0)
|
||||
w = self.tblPersoInfos.viewport().width()
|
||||
w2 = self.tblPersoInfos.columnWidth(0)
|
||||
current = self.mdlPersosProxy.mapToSource(self.lstPersos.currentIndex()).row() + 1
|
||||
|
||||
if self.mdlPersosProxy:
|
||||
current = self.mdlPersosProxy.mapToSource(self.lstPersos.currentIndex()).row() + 1
|
||||
else:
|
||||
current = self.lstPersos.currentIndex().row() + 1
|
||||
|
||||
self.tblPersoInfos.setColumnWidth(current, w - w2)
|
||||
|
||||
def setPersoColor(self):
|
||||
if self.mdlPersosProxy:
|
||||
idx = self.mdlPersosProxy.mapToSource(self.lstPersos.currentIndex())
|
||||
else:
|
||||
idx = self.lstPersos.currentIndex()
|
||||
|
||||
item = self.mdlPersos.item(idx.row(), Perso.name.value)
|
||||
if item:
|
||||
color = iconColor(item.icon())
|
||||
else:
|
||||
color = Qt.white
|
||||
self.colorDialog = QColorDialog(color, self)
|
||||
color = self.colorDialog.getColor(color)
|
||||
px = QPixmap(32, 32)
|
||||
px.fill(color)
|
||||
self.mdlPersos.item(idx.row(), Perso.name.value).setIcon(QIcon(px))
|
||||
self.updatePersoColor()
|
||||
|
||||
|
||||
####################################################################################################
|
||||
# GENERAL #
|
||||
|
|
|
@ -302,9 +302,6 @@ class Ui_MainWindow(object):
|
|||
self.label_3 = QtWidgets.QLabel(self.infos)
|
||||
self.label_3.setObjectName("label_3")
|
||||
self.formLayout.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label_3)
|
||||
self.txtPersoName = QtWidgets.QLineEdit(self.infos)
|
||||
self.txtPersoName.setObjectName("txtPersoName")
|
||||
self.formLayout.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.txtPersoName)
|
||||
self.label_18 = QtWidgets.QLabel(self.infos)
|
||||
self.label_18.setObjectName("label_18")
|
||||
self.formLayout.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.label_18)
|
||||
|
@ -362,6 +359,16 @@ class Ui_MainWindow(object):
|
|||
self.sldPersoImportance.setSizePolicy(sizePolicy)
|
||||
self.sldPersoImportance.setObjectName("sldPersoImportance")
|
||||
self.formLayout.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.sldPersoImportance)
|
||||
self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
|
||||
self.horizontalLayout_3.setObjectName("horizontalLayout_3")
|
||||
self.txtPersoName = QtWidgets.QLineEdit(self.infos)
|
||||
self.txtPersoName.setObjectName("txtPersoName")
|
||||
self.horizontalLayout_3.addWidget(self.txtPersoName)
|
||||
self.btnPersoColor = QtWidgets.QPushButton(self.infos)
|
||||
self.btnPersoColor.setText("")
|
||||
self.btnPersoColor.setObjectName("btnPersoColor")
|
||||
self.horizontalLayout_3.addWidget(self.btnPersoColor)
|
||||
self.formLayout.setLayout(0, QtWidgets.QFormLayout.FieldRole, self.horizontalLayout_3)
|
||||
self.tabPersos.addTab(self.infos, "")
|
||||
self.tab_11 = QtWidgets.QWidget()
|
||||
self.tab_11.setObjectName("tab_11")
|
||||
|
@ -1042,7 +1049,7 @@ class Ui_MainWindow(object):
|
|||
self.menubar.addAction(self.menuHelp.menuAction())
|
||||
|
||||
self.retranslateUi(MainWindow)
|
||||
self.tabMain.setCurrentIndex(6)
|
||||
self.tabMain.setCurrentIndex(2)
|
||||
self.tabSummary.setCurrentIndex(0)
|
||||
self.tabPersos.setCurrentIndex(0)
|
||||
self.tabPlot.setCurrentIndex(0)
|
||||
|
@ -1211,11 +1218,11 @@ class Ui_MainWindow(object):
|
|||
self.actLabels.setText(_translate("MainWindow", "Labels..."))
|
||||
self.actStatus.setText(_translate("MainWindow", "Status..."))
|
||||
|
||||
from ui.views.outlineView import outlineView
|
||||
from ui.views.textEditView import textEditView
|
||||
from ui.views.metadataView import metadataView
|
||||
from ui.views.lineEditView import lineEditView
|
||||
from ui.sldImportance import sldImportance
|
||||
from ui.views.basicItemView import basicItemView
|
||||
from ui.editors.editorWidget import editorWidget
|
||||
from ui.views.treeView import treeView
|
||||
from ui.sldImportance import sldImportance
|
||||
from ui.views.lineEditView import lineEditView
|
||||
from ui.editors.editorWidget import editorWidget
|
||||
from ui.views.textEditView import textEditView
|
||||
from ui.views.outlineView import outlineView
|
||||
from ui.views.metadataView import metadataView
|
||||
from ui.views.basicItemView import basicItemView
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
<item>
|
||||
<widget class="QTabWidget" name="tabMain">
|
||||
<property name="currentIndex">
|
||||
<number>6</number>
|
||||
<number>2</number>
|
||||
</property>
|
||||
<property name="documentMode">
|
||||
<bool>true</bool>
|
||||
|
@ -570,9 +570,6 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QLineEdit" name="txtPersoName"/>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_18">
|
||||
<property name="text">
|
||||
|
@ -679,6 +676,20 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||
<item>
|
||||
<widget class="QLineEdit" name="txtPersoName"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="btnPersoColor">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="tab_11">
|
||||
|
|
|
@ -37,7 +37,7 @@
|
|||
</outlineItem>
|
||||
<outlineItem title="MOIMOIMOI" type="text" summarySentance="Résumé" notes="None" 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" POV="1" label="5" status="1" compile="2" wordCount="604">
|
||||
<outlineItem title="Nouveau A" type="folder" POV="0" label="5" status="1" compile="2" wordCount="604">
|
||||
<outlineItem title="Nouveau" type="text" label="0" 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="Nouveau Avec un nom franchement très long et on est mal barré pour l'imprimer correctement" type="text" POV="2" label="0" compile="2" text="ASDASd ASD ASDASd ASD " wordCount="4"/>
|
||||
<outlineItem title="B" type="text" label="0" status="0" compile="2" text="asd asd asd asd asd asd asd asd asd asd asd" wordCount="12" setGoal="10"/>
|
||||
|
|
|
@ -18,11 +18,12 @@
|
|||
<label row="8" text="summaryPara"/>
|
||||
<label row="9" text="summaryFull"/>
|
||||
<label row="10" text="notes"/>
|
||||
<label row="11" text="color"/>
|
||||
</horizontal>
|
||||
</header>
|
||||
<data>
|
||||
<row row="0">
|
||||
<col col="0">Albert le vert</col>
|
||||
<col col="0" color="#ffff0000">Albert le vert</col>
|
||||
<col col="1">0</col>
|
||||
<col col="2">2</col>
|
||||
<col col="3"/>
|
||||
|
@ -36,9 +37,10 @@
|
|||
|
||||
|
||||
Pour voir.</col>
|
||||
<col col="11"/>
|
||||
</row>
|
||||
<row row="1">
|
||||
<col col="0">Ginette La Barbette</col>
|
||||
<col col="0" color="#ff18f0f3">Ginette La Barbette</col>
|
||||
<col col="1">1</col>
|
||||
<col col="2">1</col>
|
||||
<col col="3"/>
|
||||
|
@ -49,11 +51,12 @@ Pour voir.</col>
|
|||
<col col="8"/>
|
||||
<col col="9"/>
|
||||
<col col="10"/>
|
||||
<col col="11"/>
|
||||
</row>
|
||||
<row row="2">
|
||||
<col col="0">Nouveau perso avec un nom très très long pour voir comment ça fait</col>
|
||||
<col col="0" color="#ff0d05f0">Nouveau perso avec un nom très très long pour voir comment ça fait</col>
|
||||
<col col="1">2</col>
|
||||
<col col="2"/>
|
||||
<col col="2">1</col>
|
||||
<col col="3"/>
|
||||
<col col="4"/>
|
||||
<col col="5"/>
|
||||
|
@ -62,6 +65,7 @@ Pour voir.</col>
|
|||
<col col="8"/>
|
||||
<col col="9"/>
|
||||
<col col="10"/>
|
||||
<col col="11"/>
|
||||
</row>
|
||||
</data>
|
||||
</model>
|
||||
|
|
Loading…
Reference in a new issue