Plugins/VcsPlugins/vcsGit/GitRemoteCredentialsDialog.py

changeset 6324
b11c36cba2a1
child 6645
ad476851d7e0
equal deleted inserted replaced
6323:610b676336be 6324:b11c36cba2a1
1 # -*- coding: utf-8 -*-
2
3 # Copyright (c) 2014 - 2018 Detlev Offenbach <detlev@die-offenbachs.de>
4 #
5
6 """
7 Module implementing a dialog to enter the data of a remote repository.
8 """
9
10 from __future__ import unicode_literals
11
12 from PyQt5.QtCore import pyqtSlot, Qt, QUrl
13 from PyQt5.QtWidgets import QDialog
14
15 from .Ui_GitRemoteCredentialsDialog import Ui_GitRemoteCredentialsDialog
16
17
18 class GitRemoteCredentialsDialog(QDialog, Ui_GitRemoteCredentialsDialog):
19 """
20 Class implementing a dialog to enter the data of a remote repository.
21 """
22 def __init__(self, remoteName, remoteUrl, parent=None):
23 """
24 Constructor
25
26 @param remoteName name of the remote repository
27 @type str
28 @param remoteUrl URL of the remote repository
29 @type str
30 @param parent reference to the parent widget
31 @type QWidget
32 """
33 super(GitRemoteCredentialsDialog, self).__init__(parent)
34 self.setupUi(self)
35
36 url = QUrl(remoteUrl)
37
38 self.nameEdit.setText(remoteName)
39 self.urlEdit.setText(url.toString(QUrl.RemoveUserInfo))
40 self.userEdit.setText(url.userName())
41 self.passwordEdit.setText(url.password())
42
43 self.userEdit.setFocus(Qt.OtherFocusReason)
44
45 msh = self.minimumSizeHint()
46 self.resize(max(self.width(), msh.width()), msh.height())
47
48 @pyqtSlot(str)
49 def on_userEdit_textChanged(self, txt):
50 """
51 Private slot handling changes of the entered user name.
52
53 @param txt current text
54 @type str
55 """
56 self.passwordEdit.setEnabled(bool(txt))
57
58 def getData(self):
59 """
60 Public method to get the entered data.
61
62 @return tuple with name and URL of the remote repository
63 @rtype tuple of (str, str)
64 """
65 url = QUrl.fromUserInput(self.urlEdit.text())
66 userName = self.userEdit.text()
67 if userName:
68 url.setUserName(userName)
69 password = self.passwordEdit.text()
70 if password:
71 url.setPassword(password)
72
73 return self.nameEdit.text(), url.toString()

eric ide

mercurial