示例#1
0
    def getPowerArmorItems(self):
        equipedPA = []
        for item in powerArmorPaperDollSlots:
            self.paHP[item + 'Cur'] = 0

        if (self.pipInventoryInfo):
            def _filterFunc(item):
                return inventoryutils.itemHasAnyFilterCategory(item, inventoryutils.eItemFilterCategory.Apparel)

            power_armor = inventoryutils.inventoryGetItems(self.pipInventoryInfo, _filterFunc)
            for item in power_armor:

                if (item.child('isPowerArmorItem').value() and (item.child('equipState').value() == 1)):
                    itemHealthTxt = inventoryutils.itemFindItemCardInfoValue(item, '$health')
                    itemHealth = itemHealthTxt.split('/')
                    i = 0
                    paperDollLoc = None
                    for section in item.child('PaperdollSection').value():
                        if section.value():
                                self.paHP[powerArmorPaperDollSlots[i] + 'Cur'] = int(itemHealth[0])
                                self.paHP[powerArmorPaperDollSlots[i] + 'Max'] = int(itemHealth[1])
                                maxHP = self.paHP[powerArmorPaperDollSlots[i] + 'Max']
                                curHP = self.paHP[powerArmorPaperDollSlots[i] + 'Cur']
                                percentHP = (curHP*100/maxHP)
                                paSlot = powerArmorPaperDollSlots[i]
                                self.setPowerArmorCondition(paSlot,percentHP, paCords[paSlot]['x'],paCords[paSlot]['y'])
                                equipedPA.append(powerArmorPaperDollSlots[i])
                        i+=1
            for item in powerArmorPaperDollSlots:
                if (not item in equipedPA and (not item == 'None')):
                    paSlot = item
                    self.setPowerArmorCondition(paSlot,'Empty', paCords[paSlot]['x'],paCords[paSlot]['y'])
    def getPowerArmorItems(self):
        equipedPA = []
        for item in powerArmorPaperDollSlots:
            self.paHP[item + 'Cur'] = 0

        if (self.pipInventoryInfo):
            def _filterFunc(item):
                return inventoryutils.itemHasAnyFilterCategory(item, inventoryutils.eItemFilterCategory.Apparel)

            power_armor = inventoryutils.inventoryGetItems(self.pipInventoryInfo, _filterFunc)
            for item in power_armor:

                if (item.child('isPowerArmorItem').value() and (item.child('equipState').value() == 1)):
                    itemHealthTxt = inventoryutils.itemFindItemCardInfoValue(item, '$health')
                    itemHealth = itemHealthTxt.split('/')
                    itemTxt = item.child('text').value()

                    i = 0
                    paperDollLoc = None
                    for section in item.child('PaperdollSection').value():
                        if section.value():
                                self.paHP[powerArmorPaperDollSlots[i] + 'Cur'] = int(itemHealth[0])
                                self.paHP[powerArmorPaperDollSlots[i] + 'Max'] = int(itemHealth[1])
                                maxHP = self.paHP[powerArmorPaperDollSlots[i] + 'Max']
                                curHP = self.paHP[powerArmorPaperDollSlots[i] + 'Cur']
                                percentHP = (curHP*100/maxHP)
                                if itemTxt:
                                    self.widget.headItemLabel.setText(itemTxt)
                                self.setWidgetValues(powerArmorPaperDollSlots[i],percentHP, itemHealthTxt,itemTxt)
                                equipedPA.append(powerArmorPaperDollSlots[i])
                        i+=1
            for item in powerArmorPaperDollSlots:
                if (not item in equipedPA and (not item == 'Body')):
                    self.setWidgetValues(item,0, 'Empty',' ')
示例#3
0
 def _data(self, item, column, role=QtCore.Qt.DisplayRole):
     if role == QtCore.Qt.DisplayRole:
         if column == 0:
             return item.child('text').value()
         elif column == 1:
             return item.child('count').value()
         elif column == 2:
             return round(
                 inventoryutils.itemFindItemCardInfoValue(
                     item, inventoryutils.eItemCardInfoValueText.Value), 2)
         elif column == 3:
             return round(
                 inventoryutils.itemFindItemCardInfoValue(
                     item, inventoryutils.eItemCardInfoValueText.Weight), 2)
         elif column == 4:
             value = inventoryutils.itemFindItemCardInfoValue(
                 item, inventoryutils.eItemCardInfoValueText.Value)
             weight = inventoryutils.itemFindItemCardInfoValue(
                 item, inventoryutils.eItemCardInfoValueText.Weight)
             try:
                 if value == 0.0:
                     return 0.0
                 elif weight == 0.0:
                     return float('inf')
                 else:
                     return round(value / weight, 2)
             except:
                 return None
     elif role == QtCore.Qt.TextAlignmentRole:
         if column == 0:
             return QtCore.Qt.AlignVCenter | QtCore.Qt.AlignLeft
         elif column == 1:
             return QtCore.Qt.AlignVCenter | QtCore.Qt.AlignRight
         elif column == 2:
             return QtCore.Qt.AlignVCenter | QtCore.Qt.AlignRight
         elif column == 3:
             return QtCore.Qt.AlignVCenter | QtCore.Qt.AlignRight
         elif column == 4:
             return QtCore.Qt.AlignVCenter | QtCore.Qt.AlignRight
     elif role == QtCore.Qt.FontRole:
         if item.child('equipState').value() > 0:
             font = QtGui.QFont()
             font.setBold(True)
             return font
     return None
示例#4
0
 def _data(self, item, column, role=QtCore.Qt.DisplayRole):
     if role == QtCore.Qt.DisplayRole:
         if column == 0:
             return item.child("text").value()
         elif column == 1:
             return item.child("count").value()
         elif column == 2:
             return round(
                 inventoryutils.itemFindItemCardInfoValue(item, inventoryutils.eItemCardInfoValueText.Value), 2
             )
         elif column == 3:
             return round(
                 inventoryutils.itemFindItemCardInfoValue(item, inventoryutils.eItemCardInfoValueText.Weight), 2
             )
         elif column == 4:
             value = inventoryutils.itemFindItemCardInfoValue(item, inventoryutils.eItemCardInfoValueText.Value)
             weight = inventoryutils.itemFindItemCardInfoValue(item, inventoryutils.eItemCardInfoValueText.Weight)
             try:
                 if value == 0.0:
                     return 0.0
                 elif weight == 0.0:
                     return float("inf")
                 else:
                     return round(value / weight, 2)
             except:
                 return None
     elif role == QtCore.Qt.TextAlignmentRole:
         if column == 0:
             return QtCore.Qt.AlignVCenter | QtCore.Qt.AlignLeft
         elif column == 1:
             return QtCore.Qt.AlignVCenter | QtCore.Qt.AlignRight
         elif column == 2:
             return QtCore.Qt.AlignVCenter | QtCore.Qt.AlignRight
         elif column == 3:
             return QtCore.Qt.AlignVCenter | QtCore.Qt.AlignRight
         elif column == 4:
             return QtCore.Qt.AlignVCenter | QtCore.Qt.AlignRight
     elif role == QtCore.Qt.FontRole:
         if item.child("equipState").value() > 0:
             font = QtGui.QFont()
             font.setBold(True)
             return font
     return None
    def updateWeaponViews(self):
        self.grenademodel.clear()
        selectedgrenade = -1
        grenadecounter = 0

        self.widget.label_EquipedWeapon.setText('')
        self.widget.lblRofAccRng.setText('')
        self.widget.lblPdmgIcon.setVisible(False)
        self.widget.lblPdmg.setVisible(False)
        self.widget.lblEdmgIcon.setVisible(False)
        self.widget.lblEdmg.setVisible(False)
        self.widget.lblRdmgIcon.setVisible(False)
        self.widget.lblRdmg.setVisible(False)
        self.widget.lblPodmgIcon.setVisible(False)
        self.widget.lblPodmg.setVisible(False)

        def _filterFunc(item):
            return inventoryutils.itemHasAnyFilterCategory(
                item, inventoryutils.eItemFilterCategory.Weapon)

        weapons = inventoryutils.inventoryGetItems(self.pipInventoryInfo,
                                                   _filterFunc)
        if (not weapons):
            return
        for weapon in weapons:
            name = weapon.child('text').value()
            if inventoryutils.itemIsWeaponThrowable(weapon):
                grenadecounter += 1

                count = str(weapon.child('count').value())
                if (weapon.child('equipState').value() == 3):
                    equipState = "+"
                else:
                    equipState = ""

                if (equipState == "+"):
                    selectedgrenade = grenadecounter

                item = [
                    QStandardItem(equipState),
                    QStandardItem(name),
                    QStandardItem(count)
                ]

                item[2].setData(QtCore.Qt.AlignCenter,
                                QtCore.Qt.TextAlignmentRole)

                self.grenademodel.appendRow(item)

            else:
                if (weapon.child('equipState').value() > 0):
                    strEquipedWeapon = weapon.child('text').value()
                    strAmmo = ''
                    valueAmmo = inventoryutils.itemFindItemCardInfoValue(
                        weapon, 10, 'damageType')
                    if valueAmmo != None:
                        strAmmo += ' (' + str(valueAmmo) + ')'

                    self.widget.label_EquipedWeapon.setText(strEquipedWeapon +
                                                            strAmmo)

                    damageInfos = inventoryutils.itemFindItemCardInfos(
                        weapon, inventoryutils.eItemCardInfoValueText.Damage)
                    for info in damageInfos:
                        damageType = info.child('damageType').value()
                        value = info.child('Value').value()
                        if itemCardInfoDamageTypes[
                                damageType] == 'Phy' and value != 0.0:
                            self.widget.lblPdmg.setText(str(int(value)))
                            self.widget.lblPdmg.setVisible(True)
                            self.widget.lblPdmgIcon.setVisible(True)
                        elif itemCardInfoDamageTypes[
                                damageType] == 'En' and value != 0.0:
                            self.widget.lblEdmg.setText(str(int(value)))
                            self.widget.lblEdmg.setVisible(True)
                            self.widget.lblEdmgIcon.setVisible(True)
                        elif itemCardInfoDamageTypes[
                                damageType] == 'Rad' and value != 0.0:
                            self.widget.lblRdmg.setText(str(int(value)))
                            self.widget.lblRdmg.setVisible(True)
                            self.widget.lblRdmgIcon.setVisible(True)
                        elif itemCardInfoDamageTypes[
                                damageType] == 'Po' and value != 0.0:
                            self.widget.lblPodmg.setText(str(int(value)))
                            self.widget.lblPodmg.setVisible(True)
                            self.widget.lblPodmgIcon.setVisible(True)
                            pass

                    RofAccRngStr = ''

                    rof = inventoryutils.itemFindItemCardInfoValue(
                        weapon,
                        inventoryutils.eItemCardInfoValueText.RateOfFire)
                    if rof == None:
                        speed = inventoryutils.itemFindItemCardInfoValue(
                            weapon,
                            inventoryutils.eItemCardInfoValueText.Speed)
                        if speed:
                            RofAccRngStr = 'Speed: ' + speed[1:].lower()
                    else:
                        RofAccRngStr = 'RoF: ' + str(round(rof, 2))

                    acc = inventoryutils.itemFindItemCardInfoValue(
                        weapon, inventoryutils.eItemCardInfoValueText.Accuracy)
                    if acc != None:
                        RofAccRngStr += '  Acc: ' + str(round(acc, 2))

                    rng = inventoryutils.itemFindItemCardInfoValue(
                        weapon, inventoryutils.eItemCardInfoValueText.Range)
                    if rng != None:
                        RofAccRngStr += '  Rng: ' + str(round(rng, 2))

                    self.widget.lblRofAccRng.setText(RofAccRngStr)

        self.widget.grenadeView.horizontalHeader().setSectionResizeMode(
            QHeaderView.ResizeToContents)
        self.widget.grenadeView.verticalHeader().setSectionResizeMode(
            QHeaderView.Fixed)
        self.widget.grenadeView.verticalHeader().setStretchLastSection(False)
        self.widget.grenadeView.horizontalHeader().setStretchLastSection(True)
        self.widget.grenadeView.setModel(self.grenademodel)

        if (selectedgrenade >= 1):
            self.widget.grenadeView.selectRow(selectedgrenade - 1)
        self.widget.grenadeView.hideColumn(0)
        self.widget.grenadeView.sortByColumn(1, QtCore.Qt.AscendingOrder)
示例#6
0
 def _data(self, item, column, role=QtCore.Qt.DisplayRole):
     pc = super().columnCount()
     if role == QtCore.Qt.DisplayRole:
         if column == pc:
             if item.child("equipState").value() > 0:
                 return "◼"
             else:
                 return ""
         elif column == pc + 1:
             if item.child("isLegendary").value() > 0:
                 return "◼"
             else:
                 return ""
         elif column == pc + 2:
             cached = item.getUserCache("damagetext")
             if not cached or cached.dirtyFlag:
                 text = ""
                 isFirst = True
                 damageInfos = inventoryutils.itemFindItemCardInfos(
                     item, inventoryutils.eItemCardInfoValueText.Damage
                 )
                 for info in damageInfos:
                     damageType = info.child("damageType").value()
                     value = info.child("Value").value()
                     if damageType < 10 and value != 0.0:
                         if isFirst:
                             isFirst = False
                         else:
                             text += " + "
                         text += str(int(value))
                         text += " " + itemCardInfoDamageTypes[damageType]
                 item.setUserCache("damagetext", text, 10)
             else:
                 text = cached.value
             return text
         elif column == pc + 3:
             rof = inventoryutils.itemFindItemCardInfoValue(item, inventoryutils.eItemCardInfoValueText.RateOfFire)
             if rof == None:
                 speed = inventoryutils.itemFindItemCardInfoValue(item, inventoryutils.eItemCardInfoValueText.Speed)
                 if speed:
                     return "Speed: " + speed[1:].lower()
                 else:
                     return None
             else:
                 return round(rof, 2)
         elif column == pc + 4:
             rng = inventoryutils.itemFindItemCardInfoValue(item, inventoryutils.eItemCardInfoValueText.Range)
             if rng == None:
                 return None
             else:
                 return round(rng, 2)
         elif column == pc + 5:
             val = inventoryutils.itemFindItemCardInfoValue(item, inventoryutils.eItemCardInfoValueText.Accuracy)
             if val == None:
                 return None
             else:
                 return round(val, 2)
         elif column == pc + 6:
             return inventoryutils.itemFindItemCardInfoValue(item, True, "showAsDescription", "text")
         elif column == pc + 7:
             if inventoryutils.itemIsWeaponGun(item):
                 return "Gun"
             elif inventoryutils.itemIsWeaponMelee(item):
                 return "Melee"
             elif inventoryutils.itemIsWeaponThrowable(item):
                 return "Grenade"
             else:
                 return "Unknown"
         elif column == pc + 8:
             value = inventoryutils.itemFindItemCardInfoValue(item, 10, "damageType")
             text = None
             if value != None:
                 text = inventoryutils.itemFindItemCardInfoValue(item, 10, "damageType", "text")
                 text += " (" + str(value) + ")"
             return text
     elif role == QtCore.Qt.TextAlignmentRole:
         if column == pc:
             return QtCore.Qt.AlignVCenter | QtCore.Qt.AlignCenter
         elif column == pc + 1:
             return QtCore.Qt.AlignVCenter | QtCore.Qt.AlignCenter
         elif column == pc + 2:
             return QtCore.Qt.AlignVCenter | QtCore.Qt.AlignRight
         elif column == pc + 3:
             return QtCore.Qt.AlignVCenter | QtCore.Qt.AlignRight
         elif column == pc + 4:
             return QtCore.Qt.AlignVCenter | QtCore.Qt.AlignRight
         elif column == pc + 5:
             return QtCore.Qt.AlignVCenter | QtCore.Qt.AlignRight
         elif column == pc + 6:
             return QtCore.Qt.AlignVCenter | QtCore.Qt.AlignLeft
         elif column == pc + 7:
             return QtCore.Qt.AlignVCenter | QtCore.Qt.AlignLeft
         elif column == pc + 8:
             return QtCore.Qt.AlignVCenter | QtCore.Qt.AlignLeft
     return super()._data(item, column, role)
    def updateWeaponViews(self):
        self.grenademodel.clear()
        selectedgrenade = -1
        grenadecounter = 0
        
        self.widget.label_EquipedWeapon.setText('')
        self.widget.lblRofAccRng.setText('')
        self.widget.lblPdmgIcon.setVisible(False)
        self.widget.lblPdmg.setVisible(False)
        self.widget.lblEdmgIcon.setVisible(False)
        self.widget.lblEdmg.setVisible(False)
        self.widget.lblRdmgIcon.setVisible(False)
        self.widget.lblRdmg.setVisible(False)
        self.widget.lblPodmgIcon.setVisible(False)
        self.widget.lblPodmg.setVisible(False)
        def _filterFunc(item):
            return inventoryutils.itemHasAnyFilterCategory(item, inventoryutils.eItemFilterCategory.Weapon)
        weapons = inventoryutils.inventoryGetItems(self.pipInventoryInfo, _filterFunc)
        if(not weapons):
            return
        for weapon in weapons:
            name = weapon.child('text').value()
            if inventoryutils.itemIsWeaponThrowable(weapon):
                grenadecounter += 1
                
                count = str(weapon.child('count').value())
                if (weapon.child('equipState').value() == 3):
                    equipState = "+"
                else:
                    equipState = ""

                if (equipState == "+"):
                    selectedgrenade = grenadecounter
                
                item = [
                    QStandardItem(equipState) , 
                    QStandardItem(name) , 
                    QStandardItem(count)
                ]
                
                item[2].setData(QtCore.Qt.AlignCenter, QtCore.Qt.TextAlignmentRole)
                
                self.grenademodel.appendRow(item)
     
            else:
                if ( weapon.child('equipState').value() > 0):
                    strEquipedWeapon = weapon.child('text').value()
                    strAmmo = ''
                    valueAmmo = inventoryutils.itemFindItemCardInfoValue(weapon, 10, 'damageType')
                    if valueAmmo != None:
                        strAmmo += ' (' + str(valueAmmo) + ')'

                    self.widget.label_EquipedWeapon.setText(strEquipedWeapon +  strAmmo)
                    
                    damageInfos = inventoryutils.itemFindItemCardInfos(weapon, inventoryutils.eItemCardInfoValueText.Damage)                 
                    for info in damageInfos:
                        damageType = info.child('damageType').value()
                        value = info.child('Value').value()
                        if itemCardInfoDamageTypes[damageType] == 'Phy' and value != 0.0:
                            self.widget.lblPdmg.setText( str(int(value)))
                            self.widget.lblPdmg.setVisible(True)
                            self.widget.lblPdmgIcon.setVisible(True)
                        elif itemCardInfoDamageTypes[damageType] == 'En' and value != 0.0:
                            self.widget.lblEdmg.setText (str(int(value)))
                            self.widget.lblEdmg.setVisible(True)
                            self.widget.lblEdmgIcon.setVisible(True)
                        elif itemCardInfoDamageTypes[damageType] == 'Rad' and value != 0.0:
                            self.widget.lblRdmg.setText (str(int(value)))
                            self.widget.lblRdmg.setVisible(True)
                            self.widget.lblRdmgIcon.setVisible(True)
                        elif itemCardInfoDamageTypes[damageType] == 'Po' and value != 0.0:
                            self.widget.lblPodmg.setText (str(int(value)))
                            self.widget.lblPodmg.setVisible(True)
                            self.widget.lblPodmgIcon.setVisible(True)
                            pass

                    RofAccRngStr = ''
                            
                    rof = inventoryutils.itemFindItemCardInfoValue(weapon, inventoryutils.eItemCardInfoValueText.RateOfFire)
                    if rof == None:
                        speed = inventoryutils.itemFindItemCardInfoValue(weapon, inventoryutils.eItemCardInfoValueText.Speed)
                        if speed:
                            RofAccRngStr = 'Speed: ' + speed[1:].lower()
                    else:
                        RofAccRngStr = 'RoF: ' + str(round(rof, 2))

                    acc = inventoryutils.itemFindItemCardInfoValue(weapon, inventoryutils.eItemCardInfoValueText.Accuracy)
                    if acc != None:
                        RofAccRngStr += '  Acc: ' + str(round(acc, 2))

                    rng = inventoryutils.itemFindItemCardInfoValue(weapon, inventoryutils.eItemCardInfoValueText.Range)
                    if rng != None:
                        RofAccRngStr += '  Rng: ' + str(round(rng, 2))
                        
                        
                    self.widget.lblRofAccRng.setText(RofAccRngStr)
                            
                
        self.widget.grenadeView.horizontalHeader().setSectionResizeMode(QHeaderView.ResizeToContents)
        self.widget.grenadeView.verticalHeader().setSectionResizeMode(QHeaderView.Fixed)
        self.widget.grenadeView.verticalHeader().setStretchLastSection(False)
        self.widget.grenadeView.horizontalHeader().setStretchLastSection(True)
        self.widget.grenadeView.setModel(self.grenademodel)

        
        if (selectedgrenade >=1):
            self.widget.grenadeView.selectRow(selectedgrenade-1)
        self.widget.grenadeView.hideColumn(0)
        self.widget.grenadeView.sortByColumn(1, QtCore.Qt.AscendingOrder)
            
示例#8
0
 def _data(self, item, column, role=QtCore.Qt.DisplayRole):
     pc = super().columnCount()
     if role == QtCore.Qt.DisplayRole:
         if column == pc:
             if item.child('equipState').value() > 0:
                 return '◼'
             else:
                 return ''
         elif column == pc + 1:
             if item.child('isLegendary').value() > 0:
                 return '◼'
             else:
                 return ''
         elif column == pc + 2:
             cached = item.getUserCache('damagetext')
             if not cached or cached.dirtyFlag:
                 text = ''
                 isFirst = True
                 damageInfos = inventoryutils.itemFindItemCardInfos(
                     item, inventoryutils.eItemCardInfoValueText.Damage)
                 for info in damageInfos:
                     damageType = info.child('damageType').value()
                     value = info.child('Value').value()
                     if damageType < 10 and value != 0.0:
                         if isFirst:
                             isFirst = False
                         else:
                             text += ' + '
                         text += str(int(value))
                         text += ' ' + itemCardInfoDamageTypes[damageType]
                 item.setUserCache('damagetext', text, 10)
             else:
                 text = cached.value
             return text
         elif column == pc + 3:
             rof = inventoryutils.itemFindItemCardInfoValue(
                 item, inventoryutils.eItemCardInfoValueText.RateOfFire)
             if rof == None:
                 speed = inventoryutils.itemFindItemCardInfoValue(
                     item, inventoryutils.eItemCardInfoValueText.Speed)
                 if speed:
                     return 'Speed: ' + speed[1:].lower()
                 else:
                     return None
             else:
                 return round(rof, 2)
         elif column == pc + 4:
             rng = inventoryutils.itemFindItemCardInfoValue(
                 item, inventoryutils.eItemCardInfoValueText.Range)
             if rng == None:
                 return None
             else:
                 return round(rng, 2)
         elif column == pc + 5:
             val = inventoryutils.itemFindItemCardInfoValue(
                 item, inventoryutils.eItemCardInfoValueText.Accuracy)
             if val == None:
                 return None
             else:
                 return round(val, 2)
         elif column == pc + 6:
             return inventoryutils.itemFindItemCardInfoValue(
                 item, True, 'showAsDescription', 'text')
         elif column == pc + 7:
             if inventoryutils.itemIsWeaponGun(item):
                 return 'Gun'
             elif inventoryutils.itemIsWeaponMelee(item):
                 return 'Melee'
             elif inventoryutils.itemIsWeaponThrowable(item):
                 return 'Grenade'
             else:
                 return 'Unknown'
         elif column == pc + 8:
             value = inventoryutils.itemFindItemCardInfoValue(
                 item, 10, 'damageType')
             text = None
             if value != None:
                 text = inventoryutils.itemFindItemCardInfoValue(
                     item, 10, 'damageType', 'text')
                 text += ' (' + str(value) + ')'
             return text
     elif role == QtCore.Qt.TextAlignmentRole:
         if column == pc:
             return QtCore.Qt.AlignVCenter | QtCore.Qt.AlignCenter
         elif column == pc + 1:
             return QtCore.Qt.AlignVCenter | QtCore.Qt.AlignCenter
         elif column == pc + 2:
             return QtCore.Qt.AlignVCenter | QtCore.Qt.AlignRight
         elif column == pc + 3:
             return QtCore.Qt.AlignVCenter | QtCore.Qt.AlignRight
         elif column == pc + 4:
             return QtCore.Qt.AlignVCenter | QtCore.Qt.AlignRight
         elif column == pc + 5:
             return QtCore.Qt.AlignVCenter | QtCore.Qt.AlignRight
         elif column == pc + 6:
             return QtCore.Qt.AlignVCenter | QtCore.Qt.AlignLeft
         elif column == pc + 7:
             return QtCore.Qt.AlignVCenter | QtCore.Qt.AlignLeft
         elif column == pc + 8:
             return QtCore.Qt.AlignVCenter | QtCore.Qt.AlignLeft
     return super()._data(item, column, role)