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