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))
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
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
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
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
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")
def DoRename(self, entity, name): sTR = TargetProfile.getInstance() sTR.renamePattern(entity, name) wx.PostEvent(self.mainFrame, GE.TargetProfileChanged(profileID=entity.ID))
def DoNew(self, name): sTR = TargetProfile.getInstance() return sTR.newPattern(name)
def getEntitiesFromContext(self): sTR = TargetProfile.getInstance() choices = sorted(sTR.getTargetProfileList(), key=lambda p: p.name) return choices
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")
def DoDelete(self, entity): sTR = TargetProfile.getInstance() sTR.deletePattern(entity) wx.PostEvent(self.mainFrame, GE.TargetProfileRemoved(profileID=entity.ID))
def DoCopy(self, entity, name): sTR = TargetProfile.getInstance() copy = sTR.copyPattern(entity) sTR.renamePattern(copy, name) return copy