Esempio n. 1
0
    def GetSubContent(self, data, *args):
        scrolllist = []
        for typeID, quantity in data.groupItems.iteritems():
            data = KeyVal()
            data.label = '%s<t>%s' % (evetypes.GetName(typeID), quantity)
            data.typeID = typeID
            data.GetMenu = self.OnGetEntryMenu
            data.itemID = None
            data.getIcon = 1
            scrolllist.append(listentry.Get('Item', data=data))

        return scrolllist
Esempio n. 2
0
    def GetSubContent(self, data, *args):
        scrolllist = []
        for typeID, quantity in data.groupItems.iteritems():
            data = KeyVal()
            data.label = '%s<t>%s' % (evetypes.GetName(typeID), quantity)
            data.typeID = typeID
            data.GetMenu = self.OnGetEntryMenu
            data.itemID = None
            data.getIcon = 1
            scrolllist.append(listentry.Get('Item', data=data))

        return scrolllist
    def ShowDirectionalSearchResult(self, *args):
        self.listtype = 'location'
        scrolllist = []
        if self.scanresult and len(self.scanresult):
            myball = None
            ballpark = sm.GetService('michelle').GetBallpark()
            if ballpark:
                myball = ballpark.GetBall(eve.session.shipid)
            prime = []
            for result in self.scanresult:
                slimItem, ball, celestialRec = result
                if not slimItem and celestialRec:
                    prime.append(celestialRec.id)

            if prime:
                cfg.evelocations.Prime(prime)
            for slimItem, ball, celestialRec in self.scanresult:
                if self is None or self.destroyed:
                    return
                if slimItem:
                    typeName = evetypes.GetName(slimItem.typeID)
                    entryname = GetSlimItemName(slimItem)
                    itemID = slimItem.itemID
                    typeID = slimItem.typeID
                    if not entryname:
                        entryname = evetypes.GetGroupName(slimItem.typeID)
                elif celestialRec:
                    typeName = evetypes.GetName(celestialRec.typeID)
                    if evetypes.GetGroupID(celestialRec.typeID) == const.groupHarvestableCloud:
                        entryname = GetByLabel('UI/Inventory/SlimItemNames/SlimHarvestableCloud', typeName)
                    elif evetypes.GetCategoryID(celestialRec.typeID) == const.categoryAsteroid:
                        entryname = GetByLabel('UI/Inventory/SlimItemNames/SlimAsteroid', typeName)
                    else:
                        entryname = cfg.evelocations.Get(celestialRec.id).name
                    if not entryname:
                        entryname = typeName
                    itemID = celestialRec.id
                    typeID = celestialRec.typeID
                else:
                    continue
                if ball is not None:
                    dist = ball.surfaceDist
                    diststr = FmtDist(dist, maxdemicals=1)
                else:
                    dist = 0
                    diststr = '-'
                groupID = evetypes.GetGroupID(typeID)
                if not eve.session.role & (service.ROLE_GML | service.ROLE_WORLDMOD):
                    if groupID == const.groupCloud:
                        continue
                data = KeyVal()
                data.label = '%s<t>%s<t>%s' % (entryname, typeName, diststr)
                data.entryName = entryname
                data.typeName = typeName
                data.Set('sort_%s' % GetByLabel('UI/Common/Distance'), dist)
                data.columnID = 'directionalResultGroupColumn'
                data.result = result
                data.itemID = itemID
                data.typeID = typeID
                data.GetMenu = self.DirectionalResultMenu
                scrolllist.append(listentry.Get('DirectionalScanResults', data=data))
                blue.pyos.BeNice()

        if not len(scrolllist):
            data = KeyVal()
            data.label = GetByLabel('UI/Inflight/Scanner/DirectionalNoResult')
            data.hideLines = 1
            scrolllist.append(listentry.Get('Generic', data=data))
            headers = []
        else:
            headers = [GetByLabel('UI/Common/Name'), GetByLabel('UI/Common/Type'), GetByLabel('UI/Common/Distance')]
        self.sr.dirscroll.Load(contentList=scrolllist, headers=headers)
Esempio n. 4
0
    def ShowDirectionalSearchResult(self, *args):
        self.listtype = 'location'
        scrolllist = []
        if self.scanresult and len(self.scanresult):
            myball = None
            ballpark = sm.GetService('michelle').GetBallpark()
            if ballpark:
                myball = ballpark.GetBall(eve.session.shipid)
            prime = []
            for result in self.scanresult:
                slimItem, ball, celestialRec = result
                if not slimItem and celestialRec:
                    prime.append(celestialRec.id)

            if prime:
                cfg.evelocations.Prime(prime)
            for slimItem, ball, celestialRec in self.scanresult:
                if self is None or self.destroyed:
                    return
                if slimItem:
                    typeinfo = cfg.invtypes.Get(slimItem.typeID)
                    entryname = GetSlimItemName(slimItem)
                    itemID = slimItem.itemID
                    typeID = slimItem.typeID
                    if not entryname:
                        entryname = typeinfo.Group().name
                elif celestialRec:
                    typeinfo = cfg.invtypes.Get(celestialRec.typeID)
                    if typeinfo.groupID == const.groupHarvestableCloud:
                        entryname = GetByLabel('UI/Inventory/SlimItemNames/SlimHarvestableCloud', typeinfo.name)
                    elif typeinfo.categoryID == const.categoryAsteroid:
                        entryname = GetByLabel('UI/Inventory/SlimItemNames/SlimAsteroid', typeinfo.name)
                    else:
                        entryname = cfg.evelocations.Get(celestialRec.id).name
                    if not entryname:
                        entryname = typeinfo.name
                    itemID = celestialRec.id
                    typeID = celestialRec.typeID
                else:
                    continue
                if ball is not None:
                    dist = ball.surfaceDist
                    diststr = FmtDist(dist, maxdemicals=1)
                else:
                    dist = 0
                    diststr = '-'
                groupID = cfg.invtypes.Get(typeID).groupID
                if not eve.session.role & (service.ROLE_GML | service.ROLE_WORLDMOD):
                    if groupID == const.groupCloud:
                        continue
                data = KeyVal()
                data.label = '%s<t>%s<t>%s' % (entryname, typeinfo.name, diststr)
                data.entryName = entryname
                data.typeName = typeinfo.name
                data.Set('sort_%s' % GetByLabel('UI/Common/Distance'), dist)
                data.columnID = 'directionalResultGroupColumn'
                data.result = result
                data.itemID = itemID
                data.typeID = typeID
                data.GetMenu = self.DirectionalResultMenu
                scrolllist.append(listentry.Get('DirectionalScanResults', data=data))
                blue.pyos.BeNice()

        if not len(scrolllist):
            data = KeyVal()
            data.label = GetByLabel('UI/Inflight/Scanner/DirectionalNoResult')
            data.hideLines = 1
            scrolllist.append(listentry.Get('Generic', data=data))
            headers = []
        else:
            headers = [GetByLabel('UI/Common/Name'), GetByLabel('UI/Common/Type'), GetByLabel('UI/Common/Distance')]
        self.sr.dirscroll.Load(contentList=scrolllist, headers=headers)
Esempio n. 5
0
    def LoadComposition(self):
        fleetSvc = sm.GetService('fleet')
        if not fleetSvc.IsCommanderOrBoss():
            raise UserError('FleetNotCommanderOrBoss')
        scrolllist = []
        composition = fleetSvc.GetFleetComposition()
        fleetHierarchy = fleetSvc.GetFleetHierarchy()
        fleetPositionText = localization.GetByLabel(
            'UI/Fleet/FleetWindow/FleetPosition')
        for kv in composition:
            blue.pyos.BeNice()
            member = fleetSvc.GetMemberInfo(kv.characterID, fleetHierarchy)
            if not fleetSvc.IsMySubordinate(
                    kv.characterID) and not fleetSvc.IsBoss():
                continue
            data = KeyVal()
            charName = localization.GetByLabel('UI/Common/CharacterNameLabel',
                                               charID=kv.characterID)
            locationName = localization.GetByLabel('UI/Common/LocationDynamic',
                                                   location=kv.solarSystemID)
            if kv.stationID:
                locationName = '%s %s' % (
                    locationName,
                    localization.GetByLabel('UI/Fleet/FleetComposition/Docked')
                )
            if kv.shipTypeID is not None:
                shipTypeName = evetypes.GetName(kv.shipTypeID)
                shipGroupName = evetypes.GetGroupName(kv.shipTypeID)
            else:
                shipTypeName = ''
                shipGroupName = ''
            if kv.skills:
                skillLevels = localization.GetByLabel(
                    'UI/Fleet/FleetComposition/SkillLevels',
                    skillLevelA=kv.skills[2],
                    skillLevelB=kv.skills[1],
                    skillLevelC=kv.skills[0])
                data.hint = localization.GetByLabel(
                    'UI/Fleet/FleetComposition/SkillsHint',
                    skillTypeA=kv.skillIDs[2],
                    skillLevelA=kv.skills[2],
                    skillTypeB=kv.skillIDs[1],
                    skillLevelB=kv.skills[1],
                    skillTypeC=kv.skillIDs[0],
                    skillLevelC=kv.skills[0])
            else:
                skillLevels = ''
            if not member.wingName:
                fleetPosition = ''
                positionSortValue = (None, None)
            elif not member.squadName:
                fleetPosition = member.wingName
                positionSortValue = (fleetPosition, None)
            else:
                fleetPosition = '%s / %s ' % (member.wingName,
                                              member.squadName)
                positionSortValue = (member.wingName, member.squadName)
            data.label = '<t>'.join([
                charName, locationName, shipTypeName, shipGroupName,
                member.roleName, skillLevels, fleetPosition
            ])
            data.GetMenu = self.OnCompositionEntryMenu
            data.cfgname = charName
            data.retval = None
            data.charID = kv.characterID
            data.shipTypeID = kv.shipTypeID
            data.solarSystemID = kv.solarSystemID
            data.info = cfg.eveowners.Get(kv.characterID)
            data.Set('sort_%s' % fleetPositionText, positionSortValue)
            scrolllist.append(listentry.Get('FleetCompositionEntry',
                                            data=data))

        self.counterLabel.text = localization.GetByLabel(
            'UI/Fleet/FleetComposition/PilotsSelected',
            numSelected=0,
            numTotalPilots=len(scrolllist))
        self.sr.scrollBroadcasts.sr.id = 'scrollComposition'
        headers = [
            localization.GetByLabel('UI/Common/Name'),
            localization.GetByLabel('UI/Common/Location'),
            localization.GetByLabel('UI/Fleet/FleetComposition/ShipType'),
            localization.GetByLabel('UI/Fleet/FleetComposition/ShipGroup'),
            localization.GetByLabel('UI/Fleet/FleetComposition/FleetRole'),
            localization.GetByLabel('UI/Fleet/FleetComposition/FleetSkills'),
            fleetPositionText
        ]
        self.sr.scrollBroadcasts.Load(headers=headers, contentList=scrolllist)
Esempio n. 6
0
def GetCombatEntries(recent, filterText=''):
    showAsCondensed = settings.user.ui.Get('charsheet_condensedcombatlog', 0)
    if showAsCondensed:
        headers = [
            GetByLabel('UI/Common/Date'),
            GetByLabel('UI/Common/Type'),
            GetByLabel('UI/Common/Name'),
            GetByLabel('UI/Common/Corporation'),
            GetByLabel('UI/Common/Alliance'),
            GetByLabel('UI/Common/Faction')
        ]
    else:
        headers = []
    primeEveOwners = set()
    primeEveLocations = set()
    primeCorps = set()
    primeAlliances = set()
    ret = []
    unknownShipLabel = GetByLabel(
        'UI/CharacterSheet/CharacterSheetWindow/KillsTabs/UnknownShip')
    unknownNameLabel = GetByLabel(
        'UI/CharacterSheet/CharacterSheetWindow/KillsTabs/UnknownName')
    unknownCorporationLabel = GetByLabel(
        'UI/CharacterSheet/CharacterSheetWindow/KillsTabs/UnknownCorporation')
    unknownAllianceLabel = GetByLabel(
        'UI/CharacterSheet/CharacterSheetWindow/KillsTabs/UnknownAlliance')
    unknownFactionLabel = GetByLabel(
        'UI/CharacterSheet/CharacterSheetWindow/KillsTabs/UnknownFaction')
    for kill in recent:
        primeEveLocations.add(kill.solarSystemID)
        primeEveLocations.add(kill.moonID)
        primeEveOwners.add(kill.victimCharacterID)
        primeEveOwners.add(kill.victimCorporationID)
        primeCorps.add(kill.victimCorporationID)
        primeEveOwners.add(kill.victimAllianceID)
        primeAlliances.add(kill.victimAllianceID)
        primeEveOwners.add(kill.victimFactionID)
        primeEveOwners.add(kill.finalCharacterID)
        primeEveOwners.add(kill.finalCorporationID)
        primeCorps.add(kill.finalCorporationID)
        primeEveOwners.add(kill.finalAllianceID)
        primeAlliances.add(kill.finalAllianceID)
        primeEveOwners.add(kill.finalFactionID)

    cfg.eveowners.Prime(filter(None, primeEveOwners))
    cfg.evelocations.Prime(filter(None, primeEveLocations))
    cfg.corptickernames.Prime(filter(None, primeCorps))
    cfg.allianceshortnames.Prime(filter(None, primeAlliances))

    def GetOwnerName(ownerID):
        owner = cfg.eveowners.GetIfExists(ownerID)
        return getattr(owner, 'name', '')

    def GetTypeName(typeID):
        try:
            return evetypes.GetName(typeID)
        except evetypes.TypeNotFoundException:
            return ''

    def FilterOut(kill):
        if not filterText:
            return False
        if GetTypeName(kill.victimShipTypeID).lower().find(filterText) >= 0:
            return False
        for ownerID in [
                kill.victimCharacterID, kill.victimCorporationID,
                kill.victimAllianceID
        ]:
            ownerName = GetOwnerName(ownerID)
            if ownerName.lower().find(filterText) >= 0:
                return False

        return True

    for kill in recent:
        if FilterOut(kill):
            continue
        if showAsCondensed:
            data = KeyVal()
            timeOfKill = FmtDate(kill.killTime)
            shipOfCharacterKilled = GetTypeName(
                kill.victimShipTypeID) or unknownShipLabel
            characterKilled = GetOwnerName(
                kill.victimCharacterID) or unknownNameLabel
            corporationOfCharacterKilled = GetOwnerName(
                kill.victimCorporationID) or unknownCorporationLabel
            allianceOfCharacterKilled = GetOwnerName(
                kill.victimAllianceID) or unknownAllianceLabel
            factionOfCharacterKilled = GetOwnerName(
                kill.victimFactionID) or unknownFactionLabel
            labelList = [
                timeOfKill, shipOfCharacterKilled, characterKilled,
                corporationOfCharacterKilled, allianceOfCharacterKilled,
                factionOfCharacterKilled
            ]
            data.label = '<t>'.join(labelList)
            data.GetMenu = GetCombatMenu
            data.OnDblClick = (GetCombatDblClick, data)
            data.kill = kill
            data.mail = kill
            ret.append(entries.Get('KillMailCondensed', data=data))
        else:
            ret.append(entries.Get('KillMail', {'mail': kill}))

    return (ret, headers)
Esempio n. 7
0
    def ShowMySkillHistory(self):
        def GetPts(lvl):
            return charskills.GetSPForLevelRaw(stc, lvl)

        self.topCont.Hide()
        self.scroll.sr.id = 'charsheet_skillhistory'
        rs = sm.GetService('skills').GetSkillHistory()
        scrolllist = []
        actions = {
            const.skillEventClonePenalty:
            GetByLabel(
                'UI/CharacterSheet/CharacterSheetWindow/SkillTabs/SkillClonePenalty'
            ),
            const.skillEventTrainingStarted:
            GetByLabel(
                'UI/CharacterSheet/CharacterSheetWindow/SkillTabs/SkillTrainingStarted'
            ),
            const.skillEventTrainingComplete:
            GetByLabel(
                'UI/CharacterSheet/CharacterSheetWindow/SkillTabs/SkillTrainingComplete'
            ),
            const.skillEventTrainingCancelled:
            GetByLabel(
                'UI/CharacterSheet/CharacterSheetWindow/SkillTabs/SkillTrainingCanceled'
            ),
            const.skillEventGMGive:
            GetByLabel(
                'UI/CharacterSheet/CharacterSheetWindow/SkillTabs/GMGiveSkill'
            ),
            const.skillEventQueueTrainingCompleted:
            GetByLabel(
                'UI/CharacterSheet/CharacterSheetWindow/SkillTabs/SkillTrainingComplete'
            ),
            const.skillEventFreeSkillPointsUsed:
            GetByLabel(
                'UI/CharacterSheet/CharacterSheetWindow/SkillTabs/SkillPointsApplied'
            ),
            const.skillEventSkillExtracted:
            GetByLabel(
                'UI/CharacterSheet/CharacterSheetWindow/SkillTabs/SkillLevelExtracted'
            )
        }
        for r in rs:
            skill = sm.GetService('skills').GetSkill(r.skillTypeID)
            if skill:
                stc = skill.skillRank
                levels = [
                    0,
                    GetPts(1),
                    GetPts(2),
                    GetPts(3),
                    GetPts(4),
                    GetPts(5)
                ]
                level = 5
                for i in range(len(levels)):
                    if levels[i] > r.absolutePoints:
                        level = i - 1
                        break

                data = KeyVal()
                data.label = FmtDate(r.logDate, 'ls') + '<t>'
                data.label += evetypes.GetName(r.skillTypeID) + '<t>'
                data.label += actions.get(
                    r.eventTypeID, GetByLabel('UI/Generic/Unknown')) + '<t>'
                data.label += FormatNumeric(level)
                data.Set('sort_%s' % GetByLabel('UI/Common/Date'), r.logDate)
                data.id = r.skillTypeID
                data.level = level
                data.GetMenu = self.GetItemMenu
                data.MenuFunction = self.GetItemMenu
                data.OnDblClick = (self.DblClickShowInfo, data)
                addItem = entries.Get('Generic', data=data)
                scrolllist.append(addItem)

        self.scroll.Load(
            contentList=scrolllist,
            headers=[
                GetByLabel('UI/Common/Date'),
                GetByLabel(
                    'UI/CharacterSheet/CharacterSheetWindow/SkillTabs/Skill'),
                GetByLabel(
                    'UI/CharacterSheet/CharacterSheetWindow/SkillTabs/Action'),
                GetByLabel(
                    'UI/CharacterSheet/CharacterSheetWindow/SkillTabs/Level')
            ],
            noContentHint=GetByLabel(
                'UI/CharacterSheet/CharacterSheetWindow/SkillTabs/NoRecordsFound'
            ),
            reversesort=True)