--- 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: