src/eric7/Plugins/VcsPlugins/vcsGit/GitChangeRemoteUrlDialog.py

Wed, 04 Oct 2023 17:50:59 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Wed, 04 Oct 2023 17:50:59 +0200
branch
eric7
changeset 10217
7888177e7463
parent 9653
e67609152c5e
child 10439
21c28b0f9e41
permissions
-rw-r--r--

Fixed in issue with several editable combo box selectors, that the value could not be changed if the edited text differed by case only. This was caused by the standard QComboBox completer.

# -*- coding: utf-8 -*-

# Copyright (c) 2018 - 2023 Detlev Offenbach <detlev@die-offenbachs.de>
#

"""
Module implementing a dialog to change the URL of a remote git repository.
"""

from PyQt6.QtCore import Qt, QUrl, pyqtSlot
from PyQt6.QtWidgets import QDialog, QDialogButtonBox

from .Ui_GitChangeRemoteUrlDialog import Ui_GitChangeRemoteUrlDialog


class GitChangeRemoteUrlDialog(QDialog, Ui_GitChangeRemoteUrlDialog):
    """
    Class implementing a dialog to change the URL of a remote git repository.
    """

    def __init__(self, remoteName, remoteUrl, parent=None):
        """
        Constructor

        @param remoteName name of the remote repository
        @type str
        @param remoteUrl URL of the remote repository
        @type str
        @param parent reference to the parent widget
        @type QWidget
        """
        super().__init__(parent)
        self.setupUi(self)

        url = QUrl(remoteUrl)
        self.__userInfo = url.userInfo()

        self.nameEdit.setText(remoteName)
        self.urlEdit.setText(url.toString(QUrl.UrlFormattingOption.RemoveUserInfo))

        self.__updateOK()

        self.newUrlEdit.setFocus(Qt.FocusReason.OtherFocusReason)

        msh = self.minimumSizeHint()
        self.resize(max(self.width(), msh.width()), msh.height())

    def __updateOK(self):
        """
        Private method to update the status of the OK button.
        """
        self.buttonBox.button(QDialogButtonBox.StandardButton.Ok).setEnabled(
            bool(self.newUrlEdit.text())
        )

    @pyqtSlot(str)
    def on_newUrlEdit_textChanged(self, txt):
        """
        Private slot handling changes of the entered URL.

        @param txt current text
        @type str
        """
        self.__updateOK()

    def getData(self):
        """
        Public method to get the entered data.

        @return tuple with name and new URL of the remote repository
        @rtype tuple of (str, str)
        """
        url = QUrl.fromUserInput(self.newUrlEdit.text())
        if self.__userInfo:
            url.setUserInfo(self.__userInfo)

        return self.nameEdit.text(), url.toString()

eric ide

mercurial