eric6/E5Gui/E5ToolButton.py

changeset 8268
6b8128e0c9d1
parent 8228
772103b14c18
child 8758
c3f57225c305
--- 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)

eric ide

mercurial