diff -r 33e7b9d3f91c -r ffe7432f716b src/eric7/EricNetwork/EricHostnameInputWidget.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/eric7/EricNetwork/EricHostnameInputWidget.py Thu Aug 03 17:33:07 2023 +0200 @@ -0,0 +1,37 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2023 Detlev Offenbach <detlev@die-offenbachs.de> +# + +""" +Module implementing an input widget for network host names. +""" + +from PyQt6.QtCore import QRegularExpression +from PyQt6.QtGui import QRegularExpressionValidator +from PyQt6.QtWidgets import QLineEdit + + +class EricHostnameInputWidget(QLineEdit): + """ + Class implementing an input widget for network host names. + """ + def __init__(self, parent=None): + """ + Constructor + + @param parent reference to the parent widget (defaults to None) + @type QWidget (optional) + """ + super().__init__(parent) + + self.setClearButtonEnabled(True) + + self.setValidator( + QRegularExpressionValidator( + QRegularExpression( + r"""([A-Za-z]|[A-Za-z][A-Za-z0-9\-]*[A-Za-z0-9])""" + ) + ) + ) + self.setMaxLength(63)