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