eric6/E5Gui/E5LineEdit.py

branch
maintenance
changeset 8273
698ae46f40a4
parent 8176
31965986ecd1
parent 8268
6b8128e0c9d1
--- a/eric6/E5Gui/E5LineEdit.py	Fri Apr 02 11:59:41 2021 +0200
+++ b/eric6/E5Gui/E5LineEdit.py	Sat May 01 14:27:20 2021 +0200
@@ -7,6 +7,8 @@
 Module implementing specialized line edits.
 """
 
+import enum
+
 from PyQt5.QtCore import pyqtSignal, Qt, QEvent
 from PyQt5.QtWidgets import (
     QLineEdit, QWidget, QHBoxLayout, QBoxLayout, QLayout, QApplication,
@@ -30,7 +32,7 @@
         
         @param parent reference to the parent widget (QWidget)
         """
-        super(E5LineEditSideWidget, self).__init__(parent)
+        super().__init__(parent)
     
     def event(self, evt):
         """
@@ -44,13 +46,18 @@
         return QWidget.event(self, evt)
 
 
+class E5LineEditSide(enum.Enum):
+    """
+    Class defining the line edit sides.
+    """
+    LEFT = 0
+    RIGHT = 1
+
+
 class E5LineEdit(QLineEdit):
     """
     Class implementing a line edit widget showing some inactive text.
     """
-    LeftSide = 0
-    RightSide = 1
-    
     def __init__(self, parent=None, inactiveText=""):
         """
         Constructor
@@ -58,7 +65,7 @@
         @param parent reference to the parent widget (QWidget)
         @param inactiveText text to be shown on inactivity (string)
         """
-        super(E5LineEdit, self).__init__(parent)
+        super().__init__(parent)
         
         self.setMinimumHeight(22)
         
@@ -151,10 +158,11 @@
         """
         Protected slot to update the text margins.
         """
-        if self.__leftMargin == 0:
-            left = self.__leftWidget.sizeHint().width()
-        else:
-            left = self.__leftMargin
+        left = (
+            self.__leftWidget.sizeHint().width()
+            if self.__leftMargin == 0 else
+            self.__leftMargin
+        )
         right = self.__rightWidget.sizeHint().width()
         top = 0
         bottom = 0
@@ -164,19 +172,20 @@
         """
         Public method to add a widget to a side.
         
-        @param widget reference to the widget to add (QWidget)
-        @param position position to add to (E5LineEdit.LeftSide,
-            E5LineEdit.RightSide)
+        @param widget reference to the widget to add
+        @type QWidget
+        @param position position to add to
+        @type E5LineEditSide
         """
         if widget is None:
             return
         
         if self.isRightToLeft():
-            if position == self.LeftSide:
-                position = self.RightSide
+            if position == E5LineEditSide.LEFT:
+                position = E5LineEditSide.RIGHT
             else:
-                position = self.LeftSide
-        if position == self.LeftSide:
+                position = E5LineEditSide.LEFT
+        if position == E5LineEditSide.LEFT:
             self.__leftLayout.addWidget(widget)
         else:
             self.__rightLayout.insertWidget(1, widget)
@@ -185,7 +194,8 @@
         """
         Public method to remove a widget from a side.
         
-        @param widget reference to the widget to remove (QWidget)
+        @param widget reference to the widget to remove
+        @type QWidget
         """
         if widget is None:
             return
@@ -216,16 +226,18 @@
         """
         Public method to get the text margin for a side.
         
-        @param position side to get margin for (E5LineEdit.LeftSide,
-            E5LineEdit.RightSide)
-        @return text margin (integer)
+        @param position side to get margin for
+        @type E5LineEditSide
+        @return text margin
+        @rtype int
         """
         spacing = self.__rightLayout.spacing()
         w = 0
-        if position == self.LeftSide:
-            w = self.__leftWidget.sizeHint().width()
-        else:
-            w = self.__rightWidget.sizeHint().width()
+        w = (
+            self.__leftWidget.sizeHint().width()
+            if position == E5LineEditSide.LEFT else
+            self.__rightWidget.sizeHint().width()
+        )
         if w == 0:
             return 0
         return w + spacing * 2
@@ -253,20 +265,18 @@
     clear button, if it has some contents.
     """
     def __init__(self, parent=None, inactiveText="",
-                 side=E5LineEdit.RightSide):
+                 side=E5LineEditSide.RIGHT):
         """
         Constructor
         
-        @param parent reference to the parent widget (QWidget)
-        @param inactiveText text to be shown on inactivity (string)
+        @param parent reference to the parent widget
+        @type QWidget
+        @param inactiveText text to be shown on inactivity
+        @type str
         @param side side the clear button should be shown at
-            (E5LineEdit.RightSide, E5LineEdit.LeftSide)
-        @exception ValueError raised to indicate a bad parameter value
+        @type E5LineEditSide
         """
-        if side not in [E5LineEdit.RightSide, E5LineEdit.LeftSide]:
-            raise ValueError("Bad value for 'side' parameter.")
-        
-        super(E5ClearableLineEdit, self).__init__(parent, inactiveText)
+        super().__init__(parent, inactiveText)
         
         from E5Gui.E5LineEditButton import E5LineEditButton
         self.__clearButton = E5LineEditButton(self)

eric ide

mercurial