eric6/E5Gui/E5SideBar.py

changeset 8268
6b8128e0c9d1
parent 8218
7c09585bd960
--- a/eric6/E5Gui/E5SideBar.py	Tue Apr 27 17:42:00 2021 +0200
+++ b/eric6/E5Gui/E5SideBar.py	Wed Apr 28 19:42:28 2021 +0200
@@ -7,6 +7,8 @@
 Module implementing a sidebar class.
 """
 
+import enum
+
 from PyQt5.QtCore import (
     QEvent, QSize, Qt, QByteArray, QDataStream, QIODevice, QTimer
 )
@@ -19,6 +21,16 @@
 import UI.PixmapCache
 
 
+class E5SideBarSide(enum.Enum):
+    """
+    Class defining the sidebar sides.
+    """
+    NORTH = 0
+    EAST = 1
+    SOUTH = 2
+    WEST = 3
+
+
 class E5SideBar(QWidget):
     """
     Class implementing a sidebar with a widget area, that is hidden or shown,
@@ -26,20 +38,16 @@
     """
     Version = 2
     
-    North = 0
-    East = 1
-    South = 2
-    West = 3
-    
     def __init__(self, orientation=None, delay=200, parent=None):
         """
         Constructor
         
-        @param orientation orientation of the sidebar widget (North, East,
-            South, West)
+        @param orientation orientation of the sidebar widget
+        @type E5SideBarSide
         @param delay value for the expand/shrink delay in milliseconds
-            (integer)
-        @param parent parent widget (QWidget)
+        @type int
+        @param parent parent widget
+        @type QWidget
         """
         super().__init__(parent)
         
@@ -89,9 +97,9 @@
         
         self.__tabBar.installEventFilter(self)
         
-        self.__orientation = E5SideBar.North
+        self.__orientation = E5SideBarSide.NORTH
         if orientation is None:
-            orientation = E5SideBar.North
+            orientation = E5SideBarSide.NORTH
         self.setOrientation(orientation)
         
         self.__tabBar.currentChanged[int].connect(
@@ -168,7 +176,7 @@
         """
         self.__minimized = True
         self.__bigSize = self.size()
-        if self.__orientation in [E5SideBar.North, E5SideBar.South]:
+        if self.__orientation in (E5SideBarSide.NORTH, E5SideBarSide.SOUTH):
             self.__minSize = self.minimumSizeHint().height()
             self.__maxSize = self.maximumHeight()
         else:
@@ -179,7 +187,7 @@
         
         self.__stackedWidget.hide()
         
-        if self.__orientation in [E5SideBar.North, E5SideBar.South]:
+        if self.__orientation in (E5SideBarSide.NORTH, E5SideBarSide.SOUTH):
             self.setFixedHeight(self.__tabBar.minimumSizeHint().height())
         else:
             self.setFixedWidth(self.__tabBar.minimumSizeHint().width())
@@ -201,7 +209,7 @@
         self.__minimized = False
         self.__stackedWidget.show()
         self.resize(self.__bigSize)
-        if self.__orientation in [E5SideBar.North, E5SideBar.South]:
+        if self.__orientation in (E5SideBarSide.NORTH, E5SideBarSide.SOUTH):
             minSize = max(self.__minSize, self.minimumSizeHint().height())
             self.setMinimumHeight(minSize)
             self.setMaximumHeight(self.__maxSize)
@@ -280,7 +288,7 @@
             index = self.__tabBar.addTab(iconOrLabel)
             self.__tabBar.setTabToolTip(index, iconOrLabel)
         self.__stackedWidget.addWidget(widget)
-        if self.__orientation in [E5SideBar.North, E5SideBar.South]:
+        if self.__orientation in (E5SideBarSide.NORTH, E5SideBarSide.SOUTH):
             self.__minSize = self.minimumSizeHint().height()
         else:
             self.__minSize = self.minimumSizeHint().width()
@@ -303,7 +311,7 @@
             index = self.__tabBar.insertTab(index, iconOrLabel)
             self.__tabBar.setTabToolTip(index, iconOrLabel)
         self.__stackedWidget.insertWidget(index, widget)
-        if self.__orientation in [E5SideBar.North, E5SideBar.South]:
+        if self.__orientation in (E5SideBarSide.NORTH, E5SideBarSide.SOUTH):
             self.__minSize = self.minimumSizeHint().height()
         else:
             self.__minSize = self.minimumSizeHint().width()
@@ -316,7 +324,7 @@
         """
         self.__stackedWidget.removeWidget(self.__stackedWidget.widget(index))
         self.__tabBar.removeTab(index)
-        if self.__orientation in [E5SideBar.North, E5SideBar.South]:
+        if self.__orientation in (E5SideBarSide.NORTH, E5SideBarSide.SOUTH):
             self.__minSize = self.minimumSizeHint().height()
         else:
             self.__minSize = self.minimumSizeHint().width()
@@ -428,7 +436,8 @@
         """
         Public method to get the orientation of the sidebar.
         
-        @return orientation of the sidebar (North, East, South, West)
+        @return orientation of the sidebar
+        @rtype E5SideBarSide
         """
         return self.__orientation
     
@@ -436,9 +445,10 @@
         """
         Public method to set the orientation of the sidebar.
 
-        @param orient orientation of the sidebar (North, East, South, West)
+        @param orient orientation of the sidebar
+        @type E5SideBarSide
         """
-        if orient == E5SideBar.North:
+        if orient == E5SideBarSide.NORTH:
             self.__tabBar.setShape(QTabBar.Shape.RoundedNorth)
             self.__tabBar.setSizePolicy(
                 QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Preferred)
@@ -446,14 +456,14 @@
             self.layout.setDirection(QBoxLayout.Direction.TopToBottom)
             self.layout.setAlignment(self.barLayout,
                                      Qt.AlignmentFlag.AlignLeft)
-        elif orient == E5SideBar.East:
+        elif orient == E5SideBarSide.EAST:
             self.__tabBar.setShape(QTabBar.Shape.RoundedEast)
             self.__tabBar.setSizePolicy(
                 QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Expanding)
             self.barLayout.setDirection(QBoxLayout.Direction.TopToBottom)
             self.layout.setDirection(QBoxLayout.Direction.RightToLeft)
             self.layout.setAlignment(self.barLayout, Qt.AlignmentFlag.AlignTop)
-        elif orient == E5SideBar.South:
+        elif orient == E5SideBarSide.SOUTH:
             self.__tabBar.setShape(QTabBar.Shape.RoundedSouth)
             self.__tabBar.setSizePolicy(
                 QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Preferred)
@@ -461,7 +471,7 @@
             self.layout.setDirection(QBoxLayout.Direction.BottomToTop)
             self.layout.setAlignment(self.barLayout,
                                      Qt.AlignmentFlag.AlignLeft)
-        elif orient == E5SideBar.West:
+        elif orient == E5SideBarSide.WEST:
             self.__tabBar.setShape(QTabBar.Shape.RoundedWest)
             self.__tabBar.setSizePolicy(
                 QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Expanding)
@@ -561,7 +571,9 @@
             if self.splitter:
                 self.splitterSizes = self.splitter.sizes()
             self.__bigSize = self.size()
-            if self.__orientation in [E5SideBar.North, E5SideBar.South]:
+            if self.__orientation in (
+                E5SideBarSide.NORTH, E5SideBarSide.SOUTH
+            ):
                 self.__minSize = self.minimumSizeHint().height()
                 self.__maxSize = self.maximumHeight()
             else:
@@ -594,7 +606,7 @@
         if state.isEmpty():
             return False
         
-        if self.__orientation in [E5SideBar.North, E5SideBar.South]:
+        if self.__orientation in (E5SideBarSide.NORTH, E5SideBarSide.SOUTH):
             minSize = self.layout.minimumSize().height()
             maxSize = self.maximumHeight()
         else:

eric ide

mercurial