Example #1
0
    def _update(self, action: QAction, initialize: bool):
        """updates the internal values from the given action."""
        if not self._action:
            return
        self._disconnectAction()
        self.changed.disconnect(self._updateToolTipWithKeySequence)
        if initialize:
            self.setSeparator(action.isSeparator())
            self.setMenuRole(action.menuRole())

        if self.hasAttribute(ProxyActionAttribute.UpdateIcon) or initialize:
            self.setIcon(action.icon())
            self.setIconText(action.iconText())
            self.setIconVisibleInMenu(action.isIconVisibleInMenu())

        if self.hasAttribute(ProxyActionAttribute.UpdateText) or initialize:
            self.setText(action.text())
            self._toolTip = action.toolTip()
            self._updateToolTipWithKeySequence()
            self.setStatusTip(action.statusTip())
            self.setWhatsThis(action.whatsThis())

        self.setCheckable(action.isCheckable())

        if not initialize:
            self.setChecked(action.isChecked())
            self.setEnabled(action.isEnabled())
            self.setVisible(action.isVisible())

        self._connectAction()
        self.changed.connect(self._updateToolTipWithKeySequence)