eric6/E5Gui/E5LineEdit.py

changeset 8268
6b8128e0c9d1
parent 8257
28146736bbfc
child 8273
698ae46f40a4
diff -r 6baca884c73a -r 6b8128e0c9d1 eric6/E5Gui/E5LineEdit.py
--- a/eric6/E5Gui/E5LineEdit.py	Tue Apr 27 17:42:00 2021 +0200
+++ b/eric6/E5Gui/E5LineEdit.py	Wed Apr 28 19:42:28 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,
@@ -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
@@ -165,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)
@@ -186,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
@@ -217,15 +226,16 @@
         """
         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
         w = (
             self.__leftWidget.sizeHint().width()
-            if position == self.LeftSide else
+            if position == E5LineEditSide.LEFT else
             self.__rightWidget.sizeHint().width()
         )
         if w == 0:
@@ -255,19 +265,17 @@
     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().__init__(parent, inactiveText)
         
         from E5Gui.E5LineEditButton import E5LineEditButton

eric ide

mercurial