--- a/eric6/E5Gui/E5ToolButton.py Tue Apr 27 17:42:00 2021 +0200 +++ b/eric6/E5Gui/E5ToolButton.py Wed Apr 28 19:42:28 2021 +0200 @@ -7,6 +7,8 @@ Module implementing a specialized tool button subclass. """ +import enum + from PyQt5.QtCore import pyqtSlot, pyqtSignal, Qt, QTimer, QSize from PyQt5.QtWidgets import ( QToolButton, QStyle, QStyleOptionToolButton, QStyleOption, QApplication, @@ -14,6 +16,15 @@ ) +class E5ToolButtonOptions(enum.IntEnum): + """ + Class defining the tool button options. + """ + DEFAULT = 0 + SHOW_MENU_INSIDE = 1 + TOOLBAR_LOOKUP = 2 + + class E5ToolButton(QToolButton): """ Class implementing a specialized tool button subclass. @@ -26,10 +37,6 @@ @signal doubleClicked() emitted when the left mouse button was double clicked """ - NoOptions = 0 - ShowMenuInsideOption = 1 - ToolBarLookOption = 2 - aboutToShowMenu = pyqtSignal() aboutToHideMenu = pyqtSignal() middleClicked = pyqtSignal() @@ -48,7 +55,7 @@ self.setMinimumWidth(16) self.__menu = None - self.__options = E5ToolButton.NoOptions + self.__options = E5ToolButtonOptions.DEFAULT self.__badgeLabel = QLabel(self) font = self.__badgeLabel.font() @@ -104,7 +111,7 @@ @return flag indicating that the menu edge shall be aligned @rtype bool """ - return bool(self.__options & E5ToolButton.ShowMenuInsideOption) + return bool(self.__options & E5ToolButtonOptions.SHOW_MENU_INSIDE) def setShowMenuInside(self, enable): """ @@ -115,9 +122,9 @@ @type bool """ if enable: - self.__options |= E5ToolButton.ShowMenuInsideOption + self.__options |= E5ToolButtonOptions.SHOW_MENU_INSIDE else: - self.__options &= ~E5ToolButton.ShowMenuInsideOption + self.__options &= ~E5ToolButtonOptions.SHOW_MENU_INSIDE @pyqtSlot() def __showMenu(self): @@ -129,7 +136,7 @@ self.aboutToShowMenu.emit() - if self.__options & E5ToolButton.ShowMenuInsideOption: + if self.__options & E5ToolButtonOptions.SHOW_MENU_INSIDE: pos = self.mapToGlobal(self.rect().bottomRight()) if ( QApplication.layoutDirection() == @@ -162,7 +169,7 @@ @return flag indicating toolbar look @rtype bool """ - return bool(self.__options & E5ToolButton.ToolBarLookOption) + return bool(self.__options & E5ToolButtonOptions.TOOLBAR_LOOKUP) def setToolbarButtonLook(self, enable): """ @@ -172,7 +179,7 @@ @type bool """ if enable: - self.__options |= E5ToolButton.ToolBarLookOption + self.__options |= E5ToolButtonOptions.TOOLBAR_LOOKUP opt = QStyleOption() opt.initFrom(self) @@ -180,7 +187,7 @@ QStyle.PixelMetric.PM_ToolBarIconSize, opt, self) self.setIconSize(QSize(size, size)) else: - self.__options &= ~E5ToolButton.ToolBarLookOption + self.__options &= ~E5ToolButtonOptions.TOOLBAR_LOOKUP self.setProperty("toolbar-look", enable) self.style().unpolish(self)