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',' ')
def _slotInfoUpdated(self): if self.pipInventoryInfo and self.playerDataPath is not None: def _filterFunc(i): if (inventoryutils.itemHasAnyFilterCategory( i, inventoryutils.eItemFilterCategory.Misc) and (self.collectableFormIDs is not None and i.child('formID').value() in self.collectableFormIDs)): return True else: return False collectables = inventoryutils.inventoryGetItems( self.pipInventoryInfo, _filterFunc) index = self._app.settings.value( self.playerDataPath + self.collectedcollectablesuffix, None) if index is None: index = [] if collectables is not None and self.pipPlayerName is not None: for item in collectables: if str(item.child('formID').value()) not in index: index.append(str(item.child('formID').value())) if self.globalMap is not None: if self.fullUpdateFlag: index = list(set(index)) # Remove duplicates self.globalMap.iwcSetCollectablesCollectedState( index, True) self.fullUpdateFlag = False else: self.globalMap.iwcSetCollectablesCollectedState( index, False) else: self._logger.error("No globalmap?") self._app.settings.setValue( self.playerDataPath + self.collectedcollectablesuffix, index)
def _slotInfoUpdated(self): self.availableGrenades = [] if (self.pipInventoryInfo): def _filterFunc(item): return inventoryutils.itemHasAnyFilterCategory(item, inventoryutils.eItemFilterCategory.Weapon) weapons = inventoryutils.inventoryGetItems(self.pipInventoryInfo, _filterFunc) if(not weapons): return for weapon in weapons: equipped = False if inventoryutils.itemIsWeaponThrowable(weapon): count = str(weapon.child('count').value()) name = str(weapon.child('text').value()) if (weapon.child('equipState').value() == 3): equipped = True self.lastEquippedGrenade = name.lower() self.availableGrenades.append([name.lower(), equipped]) self.availableRadioStations = [] if(self.pipRadioInfo): for i in range(0, self.pipRadioInfo.childCount()): station = self.pipRadioInfo.child(i) if station.child('inRange').value(): self.availableRadioStations.append(station) if station.child('active').value(): self.currentRadioStation = station
def _slotInfoUpdated(self): if self.pipInventoryInfo and self.playerDataPath is not None: def _filterFunc(i): if (inventoryutils.itemHasAnyFilterCategory(i, inventoryutils.eItemFilterCategory.Misc) and (self.collectableFormIDs is not None and i.child('formID').value() in self.collectableFormIDs)): return True else: return False collectables = inventoryutils.inventoryGetItems(self.pipInventoryInfo, _filterFunc) index = self._app.settings.value(self.playerDataPath + self.collectedcollectablesuffix, None) if index is None: index = [] if collectables is not None and self.pipPlayerName is not None: for item in collectables: if str(item.child('formID').value()) not in index: index.append(str(item.child('formID').value())) if self.globalMap is not None: if self.fullUpdateFlag: index = list(set(index)) # Remove duplicates self.globalMap.iwcSetCollectablesCollectedState(index, True) self.fullUpdateFlag = False else: self.globalMap.iwcSetCollectablesCollectedState(index, False) else: self._logger.error("No globalmap?") self._app.settings.setValue(self.playerDataPath + self.collectedcollectablesuffix, index)
def ammoWatchListUpdate(self): self.ammoWatchListModel.clear() itemList = self.AmmoWatchList if (self.pipInventoryInfo): def _filterFunc(item): if (inventoryutils.itemHasAnyFilterCategory(item,inventoryutils.eItemFilterCategory.Ammo) and (itemList == None or item.child('text').value() in itemList)): return True else: return False ammoItems = inventoryutils.inventoryGetItems(self.pipInventoryInfo, _filterFunc) if(not ammoItems): return for i in ammoItems: name = i.child('text').value() count = str(i.child('count').value()) item = [ QStandardItem(name) , QStandardItem(count) ] item[1].setData(QtCore.Qt.AlignCenter, QtCore.Qt.TextAlignmentRole) self.ammoWatchListModel.appendRow(item) self.widget.ammoTableView.horizontalHeader().setSectionResizeMode(QHeaderView.ResizeToContents) self.widget.ammoTableView.verticalHeader().setSectionResizeMode(QHeaderView.Fixed) self.widget.ammoTableView.verticalHeader().setStretchLastSection(False) self.widget.ammoTableView.horizontalHeader().setStretchLastSection(True) self.widget.ammoTableView.setModel(self.ammoWatchListModel) self.widget.ammoTableView.sortByColumn(0, QtCore.Qt.AscendingOrder)
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 _slotSortedIdsUpdate(self): self.layoutAboutToBeChanged.emit() for i in self._items: i.unregisterValueUpdatedListener(self._onPipItemUpdate) self._items.clear() self._items = inventoryutils.inventoryGetItems(self.pipInventory, self._acceptItem) for item in self._items: item.registerValueUpdatedListener(self._onPipItemUpdate) self.layoutChanged.emit()
def getAmmoItems(self): if (self.pipInventoryInfo): self.AmmoListModel.clear() def _filterFunc(item): return inventoryutils.itemHasAnyFilterCategory(item, inventoryutils.eItemFilterCategory.Ammo) ammo_list = inventoryutils.inventoryGetItems(self.pipInventoryInfo, _filterFunc) for ammo_item in ammo_list: item = QStandardItem(ammo_item.child('text').value()) item.setCheckable(True) if ammo_item.child('text').value() in self.AmmoWatchList: item.setCheckState(Qt.Checked) else: item.setCheckState(Qt.Unchecked) self.AmmoListModel.appendRow(item)
def updateDrugView(self, itemList, showitemswithzerocount=False): self.drugmodel.clear() if (self.pipInventoryInfo): def _filterFunc(item): if (inventoryutils.itemHasAnyFilterCategory(item, inventoryutils.eItemFilterCategory.Aid) and (itemList is None or item.child('text').value().lower() in itemList)): return True else: return False aidItems = inventoryutils.inventoryGetItems(self.pipInventoryInfo, _filterFunc) if (not aidItems): return for i in aidItems: name = i.child('text').value() count = str(i.child('count').value()) itemtooltip = self.getItemToolTip(i) modelitem = self.createDrugModelItem(name, count, itemtooltip) self.drugmodel.appendRow(modelitem) if showitemswithzerocount: itemsinmodel = [] for row in range(0, self.drugmodel.rowCount()): itemsinmodel.append(self.drugmodel.item(row, 0).text().lower()) for item in itemList: if not item in itemsinmodel: modelitem = self.createDrugModelItem(item.capitalize(), '-', '') self.drugmodel.appendRow(modelitem) if (self.widget.btnCustom.isChecked() and self.drugmodel.rowCount() == 0): self.drugmodel.appendRow([QStandardItem(''), QStandardItem('Right click on items')]) self.drugmodel.appendRow([QStandardItem(''), QStandardItem('in the other lists to ')]) self.drugmodel.appendRow([QStandardItem(''), QStandardItem('add them to this list')]) self.widget.drugView.horizontalHeader().setSectionResizeMode(QHeaderView.ResizeToContents) self.widget.drugView.verticalHeader().setSectionResizeMode(QHeaderView.Fixed) self.widget.drugView.verticalHeader().setStretchLastSection(False) self.widget.drugView.horizontalHeader().setStretchLastSection(True) self.widget.drugView.setModel(self.drugmodel) self.widget.drugView.sortByColumn(0, QtCore.Qt.AscendingOrder)
def setPipInventory(self, datamanager, pipInventory): self.modelAboutToBeReset.emit() self.pipInventory = pipInventory self.datamanager = datamanager for i in self._items: i.unregisterValueUpdatedListener(self._onPipItemUpdate) self._items.clear() if self.pipInvSortedIds: self.pipInvSortedIds.unregisterValueUpdatedListener(self._onPipSortedIdsUpdate) self.pipInvSortedIds = self.pipInventory.child("sortedIDS") if self.pipInvSortedIds: self.pipInvSortedIds.registerValueUpdatedListener(self._onPipSortedIdsUpdate) self._items = inventoryutils.inventoryGetItems(self.pipInventory, self._acceptItem) for item in self._items: item.registerValueUpdatedListener(self._onPipItemUpdate) self.modelReset.emit()
def getAmmoItems(self): if (self.pipInventoryInfo): self.AmmoListModel.clear() def _filterFunc(item): return inventoryutils.itemHasAnyFilterCategory( item, inventoryutils.eItemFilterCategory.Ammo) ammo_list = inventoryutils.inventoryGetItems( self.pipInventoryInfo, _filterFunc) for ammo_item in ammo_list: item = QStandardItem(ammo_item.child('text').value()) item.setCheckable(True) if ammo_item.child('text').value() in self.AmmoWatchList: item.setCheckState(Qt.Checked) else: item.setCheckState(Qt.Unchecked) self.AmmoListModel.appendRow(item)
def unequipAllApparel(self): if (self.pipInventoryInfo): def _filterFunc(item): return inventoryutils.itemHasAnyFilterCategory(item, inventoryutils.eItemFilterCategory.Apparel) apparels = inventoryutils.inventoryGetItems(self.pipInventoryInfo, _filterFunc) if(not apparels): return for apparel in apparels: if (apparel.child('equipState').value() > 0): try: self.dataManager.rpcUseItem(apparel) except Exception as e: self._logger.error('unequipAllApparel Exception in rpc call: ' + str(e)) ### This is a vile hack to allow each rpc call to complete ### before sending the next ### It'll do for now, but should really find a better way ### of handling this, queue action method on datamanager.py ### perhaps? time.sleep(0.1) return
def setPipInventory(self, datamanager, pipInventory): self.modelAboutToBeReset.emit() self.pipInventory = pipInventory self.datamanager = datamanager for i in self._items: i.unregisterValueUpdatedListener(self._onPipItemUpdate) self._items.clear() if self.pipInvSortedIds: self.pipInvSortedIds.unregisterValueUpdatedListener( self._onPipSortedIdsUpdate) self.pipInvSortedIds = self.pipInventory.child('sortedIDS') if self.pipInvSortedIds: self.pipInvSortedIds.registerValueUpdatedListener( self._onPipSortedIdsUpdate) self._items = inventoryutils.inventoryGetItems( self.pipInventory, self._acceptItem) for item in self._items: item.registerValueUpdatedListener(self._onPipItemUpdate) self.modelReset.emit()
def saveEquippedApparelToSlot(self, slotIndex): slotIndex = str(slotIndex) self._logger.debug('saveEquippedApparelToSlot: slot ' + str(slotIndex)) self.savedApparelSlots[slotIndex] = [] selectedSlot = self.savedApparelSlots[slotIndex] if (self.pipInventoryInfo): def _filterFunc(item): return inventoryutils.itemHasAnyFilterCategory(item, inventoryutils.eItemFilterCategory.Apparel) apparels = inventoryutils.inventoryGetItems(self.pipInventoryInfo, _filterFunc) if(not apparels): return for apparel in apparels: if (apparel.child('equipState').value() > 0): selectedSlot.append(apparel.child('text').value()) self._logger.debug('saveEquippedApparelToSlot: saving: ' + str(selectedSlot)) settingPath = 'hotkeyswidget/apparelslots/' self._app.settings.setValue(settingPath+str(slotIndex), selectedSlot) return
def ammoWatchListUpdate(self): self.ammoWatchListModel.clear() itemList = self.AmmoWatchList if (self.pipInventoryInfo): def _filterFunc(item): if (inventoryutils.itemHasAnyFilterCategory( item, inventoryutils.eItemFilterCategory.Ammo) and (itemList == None or item.child('text').value() in itemList)): return True else: return False ammoItems = inventoryutils.inventoryGetItems( self.pipInventoryInfo, _filterFunc) if (not ammoItems): return for i in ammoItems: name = i.child('text').value() count = str(i.child('count').value()) item = [QStandardItem(name), QStandardItem(count)] item[1].setData(QtCore.Qt.AlignCenter, QtCore.Qt.TextAlignmentRole) self.ammoWatchListModel.appendRow(item) self.widget.ammoTableView.horizontalHeader().setSectionResizeMode( QHeaderView.ResizeToContents) self.widget.ammoTableView.verticalHeader().setSectionResizeMode( QHeaderView.Fixed) self.widget.ammoTableView.verticalHeader().setStretchLastSection( False) self.widget.ammoTableView.horizontalHeader().setStretchLastSection( True) self.widget.ammoTableView.setModel(self.ammoWatchListModel) self.widget.ammoTableView.sortByColumn(0, QtCore.Qt.AscendingOrder)
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)
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)
def updateDrugView(self, itemList, showitemswithzerocount=False): self.drugmodel.clear() if (self.pipInventoryInfo): def _filterFunc(item): if (inventoryutils.itemHasAnyFilterCategory( item, inventoryutils.eItemFilterCategory.Aid) and (itemList is None or item.child('text').value().lower() in itemList)): return True else: return False aidItems = inventoryutils.inventoryGetItems( self.pipInventoryInfo, _filterFunc) if (not aidItems): return for i in aidItems: name = i.child('text').value() count = str(i.child('count').value()) itemtooltip = self.getItemToolTip(i) modelitem = self.createDrugModelItem(name, count, itemtooltip) self.drugmodel.appendRow(modelitem) if showitemswithzerocount: itemsinmodel = [] for row in range(0, self.drugmodel.rowCount()): itemsinmodel.append( self.drugmodel.item(row, 0).text().lower()) for item in itemList: if not item in itemsinmodel: modelitem = self.createDrugModelItem( item.capitalize(), '-', '') self.drugmodel.appendRow(modelitem) if (self.widget.btnCustom.isChecked() and self.drugmodel.rowCount() == 0): self.drugmodel.appendRow( [QStandardItem(''), QStandardItem('Right click on items')]) self.drugmodel.appendRow([ QStandardItem(''), QStandardItem('in the other lists to ') ]) self.drugmodel.appendRow([ QStandardItem(''), QStandardItem('add them to this list') ]) self.widget.drugView.horizontalHeader().setSectionResizeMode( QHeaderView.ResizeToContents) self.widget.drugView.verticalHeader().setSectionResizeMode( QHeaderView.Fixed) self.widget.drugView.verticalHeader().setStretchLastSection(False) self.widget.drugView.horizontalHeader().setStretchLastSection(True) self.widget.drugView.setModel(self.drugmodel) self.widget.drugView.sortByColumn(0, QtCore.Qt.AscendingOrder)