# HG changeset patch
# User Yuki KODAMA <[email protected]>
# Date 1244215934 -32400
# Node ID b52387396aac7115d1349441779356f4e11365db
# Parent 74b21b77095551373c417129f4f1a2d5d4620461
thgconfig: provide the way to input a path directly
With this fix, the user can input directly a path to
'URL' textbox in PathEditDialog.
diff --git a/hggtk/thgconfig.py b/hggtk/thgconfig.py
--- a/hggtk/thgconfig.py
+++ b/hggtk/thgconfig.py
@@ -236,10 +236,9 @@
('Alias', _('Alias'))):
entry = gtk.Entry()
label = gtk.Label(name[1])
- self.entries[name[0]] = (entry, label)
+ self.entries[name[0]] = [entry, label, None]
self.entries['URL'][0].set_width_chars(50)
- self.entries['URL'][0].set_editable(False)
self.entries['Password'][0].set_visibility(False)
hbox = gtk.HBox()
@@ -274,24 +273,27 @@
hbox.pack_start(self.entries[n][0], True, True, 2)
vbox.pack_start(hbox, False, False, 2)
- user, host, port, folder, pw, scheme = self.urlparse(path)
+ self.setentries(path, alias)
- self.entries['URL'][0].set_text(path)
- self.entries['Alias'][0].set_text(alias)
- self.entries['User'][0].set_text(user or '')
- self.entries['Host'][0].set_text(host or '')
- self.entries['Port'][0].set_text(port or '')
- self.entries['Folder'][0].set_text(folder or '')
- self.entries['Password'][0].set_text(pw or '')
- for n, (e, l) in self.entries.iteritems():
- e.connect('changed', self.changed)
+ self.sethandlers()
self.lastproto = None
self.protcombo.connect('changed', self.changed)
- i = self._protocols.index(scheme)
- self.protcombo.set_active(i)
self.show_all()
+ def sethandlers(self, enable=True):
+ for n, (e, l, h) in self.entries.iteritems():
+ if n == 'URL':
+ if enable:
+ self.entries[n][2] = e.connect('changed', self.changedurl)
+ else:
+ e.disconnect(h)
+ else:
+ if enable:
+ self.entries[n][2] = e.connect('changed', self.changed)
+ else:
+ e.disconnect(h)
+
def urlparse(self, path):
if path.startswith('ssh://'):
m = re.match(r'^ssh://(([...@]+)@)?([^:/]+)(:(\d+))?(/(.*))?$',
path)
@@ -312,6 +314,25 @@
scheme = 'local'
return user, host, port, folder, passwd, scheme
+ def setentries(self, path, alias=None):
+ if alias == None:
+ alias = self.entries['Alias'][0].get_text()
+
+ user, host, port, folder, pw, scheme = result = self.urlparse(path)
+
+ print result
+
+ self.entries['Alias'][0].set_text(alias)
+ self.entries['URL'][0].set_text(path)
+ self.entries['User'][0].set_text(user or '')
+ self.entries['Host'][0].set_text(host or '')
+ self.entries['Port'][0].set_text(port or '')
+ self.entries['Folder'][0].set_text(folder or '')
+ self.entries['Password'][0].set_text(pw or '')
+
+ i = self._protocols.index(scheme)
+ self.protcombo.set_active(i)
+
def changed(self, combo):
newurl = self.buildurl()
self.entries['URL'][0].set_text(url.hidepassword(newurl))
@@ -334,6 +355,12 @@
self.entries[n][0].set_sensitive(True)
self.entries[n][1].set_sensitive(True)
+ def changedurl(self, combo):
+ print 'changedurl: ' + self.entries['URL'][0].get_text()
+ self.sethandlers(False)
+ self.setentries(self.entries['URL'][0].get_text())
+ self.sethandlers(True)
+
def response(self, widget, response_id):
if response_id != gtk.RESPONSE_OK:
self.destroy()
------------------------------------------------------------------------------
OpenSolaris 2009.06 is a cutting edge operating system for enterprises
looking to deploy the next generation of Solaris that includes the latest
innovations from Sun and the OpenSource community. Download a copy and
enjoy capabilities such as Networking, Storage and Virtualization.
Go to: http://p.sf.net/sfu/opensolaris-get
_______________________________________________
Tortoisehg-develop mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tortoisehg-develop