manuskript/manuskript/ui/views/propertiesView.py

80 lines
2.7 KiB
Python
Raw Normal View History

#!/usr/bin/env python
2016-02-07 00:34:22 +13:00
# --!-- coding: utf8 --!--
from PyQt5.QtWidgets import QWidget
from PyQt5.QtGui import QIntValidator
2016-02-07 00:34:22 +13:00
from manuskript.enums import Outline
from manuskript.ui.views.propertiesView_ui import Ui_propertiesView
from manuskript.models.characterPOVModel import characterPOVModel
2016-02-07 00:34:22 +13:00
import logging
LOGGER = logging.getLogger(__name__)
class propertiesView(QWidget, Ui_propertiesView):
def __init__(self, parent=None):
QWidget.__init__(self)
self.setupUi(self)
2017-11-16 08:58:12 +13:00
self.txtGoal.setColumn(Outline.setGoal)
2016-02-07 00:34:22 +13:00
def setModels(self, mdlOutline, mdlCharacter, mdlLabels, mdlStatus):
self.cmbPOV.setModels(characterPOVModel(mdlCharacter), mdlOutline)
self.cmbLabel.setModels(mdlLabels, mdlOutline)
self.cmbStatus.setModels(mdlStatus, mdlOutline)
self.chkCompile.setModel(mdlOutline)
self.txtTitle.setModel(mdlOutline)
self.txtGoal.setModel(mdlOutline)
self.txtGoal.setValidator(QIntValidator(0, 9999999))
2016-02-07 00:34:22 +13:00
def getIndexes(self, sourceView):
2016-02-07 00:34:22 +13:00
"""Returns a list of indexes from list of QItemSelectionRange"""
indexes = []
2016-02-07 00:34:22 +13:00
2016-04-12 01:14:24 +12:00
for i in sourceView.selection().indexes():
2016-02-07 00:34:22 +13:00
if i.column() != 0:
continue
2016-02-07 00:34:22 +13:00
if i not in indexes:
indexes.append(i)
2016-02-07 00:34:22 +13:00
return indexes
2016-02-07 00:34:22 +13:00
def selectionChanged(self, sourceView):
2016-02-07 00:34:22 +13:00
indexes = self.getIndexes(sourceView)
# LOGGER.debug("selectionChanged indexes: %s", indexes)
if len(indexes) == 0:
self.setEnabled(False)
2016-02-07 00:34:22 +13:00
elif len(indexes) == 1:
self.setEnabled(True)
self.setLabelsItalic(False)
idx = indexes[0]
self.cmbPOV.setCurrentModelIndex(idx)
self.cmbLabel.setCurrentModelIndex(idx)
self.cmbStatus.setCurrentModelIndex(idx)
self.chkCompile.setCurrentModelIndex(idx)
self.txtTitle.setCurrentModelIndex(idx)
self.txtGoal.setCurrentModelIndex(idx)
2016-02-07 00:34:22 +13:00
else:
self.setEnabled(True)
self.setLabelsItalic(True)
self.txtTitle.setCurrentModelIndexes(indexes)
self.txtGoal.setCurrentModelIndexes(indexes)
2015-06-11 08:51:52 +12:00
self.chkCompile.setCurrentModelIndexes(indexes)
self.cmbPOV.setCurrentModelIndexes(indexes)
self.cmbLabel.setCurrentModelIndexes(indexes)
self.cmbStatus.setCurrentModelIndexes(indexes)
2016-02-07 00:34:22 +13:00
def setLabelsItalic(self, value):
f = self.lblPOV.font()
f.setItalic(value)
for lbl in [
self.lblPOV,
self.lblStatus,
self.lblLabel,
self.lblCompile,
self.lblGoal
2016-02-07 00:34:22 +13:00
]:
lbl.setFont(f)