diff -r fbae2b012fac -r 81c2943be6b6 ProjectDjango/Project.py --- a/ProjectDjango/Project.py Sun Mar 24 13:26:59 2013 +0100 +++ b/ProjectDjango/Project.py Sun Mar 24 14:39:36 2013 +0100 @@ -1165,6 +1165,8 @@ args.append(self.__getPythonExecutable()) args.append("manage.py") args.append("runserver") + if self.__plugin.getPreferences("UseIPv6"): + args.append("--ipv6") addr = self.__plugin.getPreferences("ServerAddress") if addr: args.append(addr) @@ -1205,14 +1207,26 @@ Private slot to start the default web browser with the server URL. """ addr = self.__plugin.getPreferences("ServerAddress") + ipv6 = self.__plugin.getPreferences("UseIPv6") if addr: - if ':' in addr: - port = addr.split(':')[1] + # test for an IPv6 and port address + if ']:' in addr: + addr, port = addr.rsplit(':', 1) + elif ':' in addr: + addr, port = addr.split(':', 1) else: port = addr + if ipv6: + addr = "[::1]" + else: + addr = "127.0.0.1" else: port = "8000" - url = QUrl("http://127.0.0.1:{0}".format(port)) + if ipv6: + addr = "[::1]" + else: + addr = "127.0.0.1" + url = QUrl("http://{0}:{1}".format(addr, port)) res = QDesktopServices.openUrl(url) if not res: E5MessageBox.critical(None, @@ -1644,6 +1658,8 @@ args.append(self.__getPythonExecutable()) args.append("manage.py") args.append("testserver") + if self.__plugin.getPreferences("UseIPv6"): + args.append("--ipv6") addr = self.__plugin.getPreferences("ServerAddress") if addr: args.append("--addrport=%s" % addr)