Mercurial > hg > easyhg
comparison easyhg.py @ 160:98fa31128e9d
* That string scraping was much too fiddly -- best keep it simpler for now
author | Chris Cannam |
---|---|
date | Fri, 03 Dec 2010 12:32:59 +0000 |
parents | 006630304b69 |
children | 07b908b4fa5f |
comparison
equal
deleted
inserted
replaced
159:087d7cdde662 | 160:98fa31128e9d |
---|---|
16 import sys | 16 import sys |
17 from mercurial import ui, getpass, util | 17 from mercurial import ui, getpass, util |
18 from mercurial.i18n import _ | 18 from mercurial.i18n import _ |
19 from PyQt4 import QtGui | 19 from PyQt4 import QtGui |
20 | 20 |
21 # This is a gross hack throughout | |
22 | |
23 easyhg_qtapp = None | 21 easyhg_qtapp = None |
24 easyhg_userprompt = '' | |
25 easyhg_pwdprompt = '' | |
26 | 22 |
27 def uisetup(ui): | 23 def uisetup(ui): |
28 ui.__class__.write = easyhg_write | |
29 ui.__class__.prompt = easyhg_prompt | 24 ui.__class__.prompt = easyhg_prompt |
30 ui.__class__.getpass = easyhg_getpass | 25 ui.__class__.getpass = easyhg_getpass |
31 global easyhg_qtapp, easyhg_pwdprompt, easyhg_userprompt | 26 global easyhg_qtapp |
32 easyhg_qtapp = QtGui.QApplication([]) | 27 easyhg_qtapp = QtGui.QApplication([]) |
33 easyhg_pwdprompt = '' | |
34 easyhg_userprompt = '' | |
35 | |
36 def easyhg_write(self, *args, **opts): | |
37 global easyhg_pwdprompt | |
38 global easyhg_userprompt | |
39 for a in args: | |
40 (pfx, div, sfx) = a.partition(': '); | |
41 if pfx == 'realm' and sfx != '': | |
42 easyhg_userprompt = easyhg_pwdprompt = '<qt>' + sfx + '<br>'; | |
43 elif pfx == 'user' and sfx != '': | |
44 easyhg_pwdprompt += _('Password for user') + ' <b>' + sfx + '</b>:'; | |
45 sys.stdout.write(str(a)) | |
46 | 28 |
47 def easyhg_prompt(self, msg, default="y"): | 29 def easyhg_prompt(self, msg, default="y"): |
48 if not self.interactive(): | 30 if not self.interactive(): |
49 self.write(msg, ' ', default, "\n") | 31 self.write(msg, ' ', default, "\n") |
50 return default | 32 return default |
51 if msg == _('user:'): | 33 if msg == _('user:'): |
52 msg = _('User:') | 34 msg = _('User:') |
53 global easyhg_userprompt, easyhg_pwdprompt | 35 (r,ok) = QtGui.QInputDialog.getText(None, _('Information needed'), |
54 if easyhg_userprompt != '': | |
55 msg = easyhg_userprompt + msg; | |
56 (r,ok) = QtGui.QInputDialog.getText(None, _('Question'), | |
57 msg, QtGui.QLineEdit.Normal) | 36 msg, QtGui.QLineEdit.Normal) |
58 if not ok: | 37 if not ok: |
59 raise util.Abort(_('response expected')) | 38 raise util.Abort(_('response expected')) |
60 if not r: | 39 if not r: |
61 easyhg_pwdprompt += _('Password:'); | |
62 return default | 40 return default |
63 easyhg_pwdprompt += _('Password for user') + ' <b>' + r + '</b>:'; | |
64 return r | 41 return r |
65 | 42 |
66 def easyhg_getpass(self, prompt=None, default=None): | 43 def easyhg_getpass(self, prompt=None, default=None): |
67 if not self.interactive(): | 44 if not self.interactive(): |
68 return default | 45 return default |
69 global easyhg_pwdprompt | 46 if not prompt or prompt == _('password:'): |
70 if easyhg_pwdprompt != '': | 47 prompt = _('Password:'); |
71 msg = easyhg_pwdprompt | 48 (r,ok) = QtGui.QInputDialog.getText(None, _('Password'), prompt, |
72 else: | |
73 msg = _('Password:'); | |
74 (r,ok) = QtGui.QInputDialog.getText(None, _('Password'), msg, | |
75 QtGui.QLineEdit.Password) | 49 QtGui.QLineEdit.Password) |
76 if not ok: | 50 if not ok: |
77 raise util.Abort(_('response expected')) | 51 raise util.Abort(_('response expected')) |
78 if not r: | 52 if not r: |
79 return default | 53 return default |