Beispiel #1
0
 def OnInputTimer(self, event):
     event.Skip()
     if self.block:
         return
     if self.validateFields():
         p = self.entityEditor.getActiveEntity()
         TargetProfile.getInstance().saveChanges(p)
         wx.PostEvent(self.mainFrame, GE.TargetProfileChanged(profileID=p.ID))
Beispiel #2
0
    def display(self, callingWindow, srcContext):
        if srcContext != 'graphTgtList':
            return False

        sTR = svc_TargetProfile.getInstance()
        self.callingWindow = callingWindow
        self.profiles = sTR.getTargetProfileList()
        self.profiles.sort(key=lambda p: (p.name in ['None'], p.name))

        return len(self.profiles) > 0
Beispiel #3
0
    def display(self, callingWindow, srcContext):
        if self.mainFrame.getActiveFit(
        ) is None or srcContext != 'firepowerViewFull':
            return False

        sTR = svc_TargetProfile.getInstance()
        self.profiles = sTR.getTargetProfileList()
        self.profiles.sort(key=lambda p: (p.name in ['None'], p.name))

        return len(self.profiles) > 0
Beispiel #4
0
    def getSubMenu(self, callingWindow, context, rootMenu, i, pitem):
        sTR = svc_TargetProfile.getInstance()
        profiles = list(
            chain(sTR.getBuiltinTargetProfileList(),
                  sTR.getUserTargetProfileList()))
        profiles.sort(key=lambda p: smartSort(p.fullName))

        self.profileEventMap = {}
        items = (OrderedDict(), OrderedDict())
        for profile in profiles:
            container = items
            for categoryName in profile.hierarchy:
                categoryName = _t(
                    categoryName) if profile.builtin else categoryName
                container = container[1].setdefault(
                    categoryName, (OrderedDict(), OrderedDict()))
            shortName = _t(
                profile.shortName) if profile.builtin else profile.shortName
            container[0][shortName] = profile

        # Category as menu item - expands further
        msw = "wxMSW" in wx.PlatformInfo

        def makeMenu(container, parentMenu, first=False):
            menu = wx.Menu()
            if first:
                mitem, checked = self._addProfile(
                    rootMenu if msw else parentMenu, None, _t('No Profile'))
                menu.Append(mitem)
                mitem.Check(checked)
                if len(container[0]) > 0 or len(container[1]) > 0:
                    menu.AppendSeparator()
            for name, pattern in container[0].items():
                menuItem, checked = self._addProfile(
                    rootMenu if msw else parentMenu, pattern, name)
                menu.Append(menuItem)
                menuItem.Check(checked)
            for name, subcontainer in container[1].items():
                menuItem = self._addCategory(rootMenu if msw else parentMenu,
                                             name)
                subMenu = makeMenu(subcontainer, menu)
                menuItem.SetSubMenu(subMenu)
                menu.Append(menuItem)
            menu.Bind(wx.EVT_MENU, self.handleResistSwitch)
            return menu

        subMenu = makeMenu(items, rootMenu, first=True)
        return subMenu
Beispiel #5
0
    def getSubMenu(self, callingWindow, context, rootMenu, i, pitem):
        self.callingWindow = callingWindow
        sTR = svc_TargetProfile.getInstance()
        profiles = list(
            chain(sTR.getBuiltinTargetProfileList(),
                  sTR.getUserTargetProfileList()))
        profiles.sort(key=lambda p: smartSort(p.fullName))

        self.eventProfileMap = {}
        items = (OrderedDict(), OrderedDict())
        for profile in profiles:
            container = items
            for categoryName in profile.hierarchy:
                container = container[1].setdefault(
                    categoryName, (OrderedDict(), OrderedDict()))
            container[0][profile.shortName] = profile

        # Category as menu item - expands further
        msw = "wxMSW" in wx.PlatformInfo

        def makeMenu(container, parentMenu, first=False):
            menu = wx.Menu()
            if first:
                idealProfile = TargetProfile.getIdeal()
                mitem = self._addProfile(rootMenu if msw else parentMenu,
                                         idealProfile, idealProfile.fullName)
                menu.Append(mitem)
            for name, pattern in container[0].items():
                menuItem = self._addProfile(rootMenu if msw else parentMenu,
                                            pattern, name)
                menu.Append(menuItem)
            for name, subcontainer in container[1].items():
                menuItem = self._addCategory(rootMenu if msw else parentMenu,
                                             name)
                subMenu = makeMenu(subcontainer, menu)
                menuItem.SetSubMenu(subMenu)
                menu.Append(menuItem)
            menu.Bind(wx.EVT_MENU, self.handleProfileAdd)
            return menu

        subMenu = makeMenu(items, rootMenu, first=True)
        return subMenu
Beispiel #6
0
    def importPatterns(self, event):
        """Event fired when import from clipboard button is clicked"""

        text = fromClipboard()
        if text:
            sTR = TargetProfile.getInstance()
            try:
                sTR.importPatterns(text)
                self.stNotice.SetLabel("Profiles successfully imported from clipboard")
            except ImportError as e:
                pyfalog.error(e)
                self.stNotice.SetLabel(str(e))
            except Exception as e:
                msg = "Could not import from clipboard:"
                pyfalog.warning(msg)
                pyfalog.error(e)
                self.stNotice.SetLabel(msg)
            finally:
                self.entityEditor.refreshEntityList()
        else:
            self.stNotice.SetLabel("Could not import from clipboard")
Beispiel #7
0
 def DoRename(self, entity, name):
     sTR = TargetProfile.getInstance()
     sTR.renamePattern(entity, name)
     wx.PostEvent(self.mainFrame, GE.TargetProfileChanged(profileID=entity.ID))
Beispiel #8
0
 def DoNew(self, name):
     sTR = TargetProfile.getInstance()
     return sTR.newPattern(name)
Beispiel #9
0
 def getEntitiesFromContext(self):
     sTR = TargetProfile.getInstance()
     choices = sorted(sTR.getTargetProfileList(), key=lambda p: p.name)
     return choices
Beispiel #10
0
 def exportPatterns(self, event):
     """Event fired when export to clipboard button is clicked"""
     sTR = TargetProfile.getInstance()
     toClipboard(sTR.exportPatterns())
     self.stNotice.SetLabel("Profiles exported to clipboard")
Beispiel #11
0
 def DoDelete(self, entity):
     sTR = TargetProfile.getInstance()
     sTR.deletePattern(entity)
     wx.PostEvent(self.mainFrame, GE.TargetProfileRemoved(profileID=entity.ID))
Beispiel #12
0
 def DoCopy(self, entity, name):
     sTR = TargetProfile.getInstance()
     copy = sTR.copyPattern(entity)
     sTR.renamePattern(copy, name)
     return copy