def track_selection(self, *_, **__): new_sel = cmds.ls(sl=True, fl=True, l=True) or [] results = [] for item in self.selected: if item in new_sel: results.append(item) for item in new_sel: if not item in results: results.append(item) self.selected = results Logger.debug("selection %s" % self.selected)
def start(self, *args, **kwargs): Logger.debug("starting selection watcher") self.watcher = SelectionChanged() self.watcher += self.track_selection self.selected = cmds.ls(sl=True, fl=True, l=True) or [] self.watcher.start()