def removeAction(self, action): self._actions.remove(action) actions = [action] if isinstance(action, ActionGroup): actions = action.getActions() scripts.gui.action.changed.disconnect(self._updateActionGroup, sender=action) for a in actions: for b in self._actionbuttons[:]: if a == b.action: self.gui.removeChild(b) self._actionbuttons.remove(b) self.adaptLayout(False)
def _insertButton(self, action, position): actions = [action] if isinstance(action, ActionGroup): actions = action.getActions() scripts.gui.action.changed.connect(self._updateActionGroup, sender=action) if position >= 0: actions = reversed(actions) # Action groups are counted as one action, add the hidde number of actions to position for i in range(position): if isinstance(self._actions[i], ActionGroup): position += len(self._actions[i].getActions()) - 1 for a in actions: button = ToolbarButton(a, button_style=self._button_style, name=a.text) self.gui.insertChild(button, position) self._actionbuttons.insert(position, button)