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)