Patchwork [for-denzil] Save proxy settings

login
register
mail settings
Submitter Bogdan Marinescu
Date Sept. 10, 2012, 10:41 a.m.
Message ID <1347273698-26576-1-git-send-email-bogdan.a.marinescu@intel.com>
Download mbox | patch
Permalink /patch/36187/
State New
Headers show

Comments

Bogdan Marinescu - Sept. 10, 2012, 10:40 a.m.
Sorry, wrong list. Please disregard this.

On Mon, Sep 10, 2012 at 1:41 PM, Bogdan Marinescu <
bogdan.a.marinescu@intel.com> wrote:

> Proxy settings were not properly saved between Hob runs. This
> fix is mostly a backport of code in master.
>
> [YOCTO #3024]
>
> Signed-off-by: Bogdan Marinescu <bogdan.a.marinescu@intel.com>
> ---
>  bitbake/lib/bb/ui/crumbs/builder.py |   18 ++++++++---
>  bitbake/lib/bb/ui/crumbs/hig.py     |   58
> +++++++++++++++++------------------
>  2 files changed, 43 insertions(+), 33 deletions(-)
>
> diff --git a/bitbake/lib/bb/ui/crumbs/builder.py
> b/bitbake/lib/bb/ui/crumbs/builder.py
> index df85326..000a838 100755
> --- a/bitbake/lib/bb/ui/crumbs/builder.py
> +++ b/bitbake/lib/bb/ui/crumbs/builder.py
> @@ -70,6 +70,7 @@ class Configuration:
>          self.all_proxy = self.http_proxy = self.ftp_proxy =
> self.https_proxy = ""
>          self.git_proxy_host = self.git_proxy_port = ""
>          self.cvs_proxy_host = self.cvs_proxy_port = ""
> +        self.enable_proxy = None
>
>      def clear_selection(self):
>          self.selected_image = None
> @@ -99,6 +100,9 @@ class Configuration:
>          self.default_task = params["default_task"]
>
>          # proxy settings
> +        self.enable_proxy = params["http_proxy"] != "" or
> params["https_proxy"] != "" or params["ftp_proxy"] != "" \
> +            or params["git_proxy_host"] != "" or params["git_proxy_port"]
> != ""                                    \
> +            or params["cvs_proxy_host"] != "" or params["cvs_proxy_port"]
> != "" or params["all_proxy"] != ""
>          self.all_proxy = params["all_proxy"]
>          self.http_proxy = params["http_proxy"]
>          self.ftp_proxy = params["ftp_proxy"]
> @@ -146,6 +150,7 @@ class Configuration:
>          self.selected_recipes = template.getVar("DEPENDS").split()
>          self.selected_packages = template.getVar("IMAGE_INSTALL").split()
>          # proxy
> +        self.enable_proxy = eval(template.getVar("enable_proxy"))
>          self.all_proxy = template.getVar("all_proxy")
>          self.http_proxy = template.getVar("http_proxy")
>          self.ftp_proxy = template.getVar("ftp_proxy")
> @@ -183,6 +188,7 @@ class Configuration:
>              template.setVar("DEPENDS", self.selected_recipes)
>              template.setVar("IMAGE_INSTALL", self.user_selected_packages)
>          # proxy
> +        template.setVar("enable_proxy", self.enable_proxy)
>          template.setVar("all_proxy", self.all_proxy)
>          template.setVar("http_proxy", self.http_proxy)
>          template.setVar("ftp_proxy", self.ftp_proxy)
> @@ -212,7 +218,6 @@ class Parameters:
>          self.all_sdk_machines = []
>          self.all_layers = []
>          self.image_names = []
> -        self.enable_proxy = False
>
>          # for build log to show
>          self.bb_version = ""
> @@ -581,13 +586,20 @@ class Builder(gtk.Window):
>          self.handler.set_extra_inherit("packageinfo")
>          self.handler.set_extra_inherit("image_types")
>          # set proxies
> -        if self.parameters.enable_proxy:
> +        if self.configuration.enable_proxy == True:
>              self.handler.set_http_proxy(self.configuration.http_proxy)
>              self.handler.set_https_proxy(self.configuration.https_proxy)
>              self.handler.set_ftp_proxy(self.configuration.ftp_proxy)
>              self.handler.set_all_proxy(self.configuration.all_proxy)
>              self.handler.set_git_proxy(self.configuration.git_proxy_host,
> self.configuration.git_proxy_port)
>              self.handler.set_cvs_proxy(self.configuration.cvs_proxy_host,
> self.configuration.cvs_proxy_port)
> +        elif self.configuration.enable_proxy == False:
> +            self.handler.set_http_proxy('')
> +            self.handler.set_https_proxy('')
> +            self.handler.set_ftp_proxy('')
> +            self.handler.set_all_proxy('')
> +            self.handler.set_git_proxy('', '')
> +            self.handler.set_cvs_proxy('', '')
>
>      def update_recipe_model(self, selected_image, selected_recipes):
>          self.recipe_model.set_selected_image(selected_image)
> @@ -1009,7 +1021,6 @@ class Builder(gtk.Window):
>              all_distros = self.parameters.all_distros,
>              all_sdk_machines = self.parameters.all_sdk_machines,
>              max_threads = self.parameters.max_threads,
> -            enable_proxy = self.parameters.enable_proxy,
>              parent = self,
>              flags = gtk.DIALOG_MODAL
>                      | gtk.DIALOG_DESTROY_WITH_PARENT
> @@ -1021,7 +1032,6 @@ class Builder(gtk.Window):
>          response = dialog.run()
>          settings_changed = False
>          if response == gtk.RESPONSE_YES:
> -            self.parameters.enable_proxy = dialog.enable_proxy
>              self.configuration = dialog.configuration
>              self.save_defaults() # remember settings
>              settings_changed = dialog.settings_changed
> diff --git a/bitbake/lib/bb/ui/crumbs/hig.py
> b/bitbake/lib/bb/ui/crumbs/hig.py
> index 4baf960..b6c970b 100644
> --- a/bitbake/lib/bb/ui/crumbs/hig.py
> +++ b/bitbake/lib/bb/ui/crumbs/hig.py
> @@ -309,7 +309,7 @@ class AdvancedSettingDialog (CrumbsDialog):
>
>      def __init__(self, title, configuration, all_image_types,
>              all_package_formats, all_distros, all_sdk_machines,
> -            max_threads, enable_proxy, parent, flags, buttons=None):
> +            max_threads, parent, flags, buttons=None):
>          super(AdvancedSettingDialog, self).__init__(title, parent, flags,
> buttons)
>
>          # class members from other objects
> @@ -320,7 +320,6 @@ class AdvancedSettingDialog (CrumbsDialog):
>          self.all_distros = all_distros
>          self.all_sdk_machines = all_sdk_machines
>          self.max_threads = max_threads
> -        self.enable_proxy = enable_proxy
>
>          # class members for internal use
>          self.distro_combo = None
> @@ -356,7 +355,8 @@ class AdvancedSettingDialog (CrumbsDialog):
>          data += ("SDK_MACHINE: "          +
> self._get_sorted_value(self.configuration.curr_sdk_machine))
>          data += ("TOOLCHAIN_BUILD: "      +
> self._get_sorted_value(self.configuration.toolchain_build))
>          data += ("IMAGE_FSTYPES: "        +
> self._get_sorted_value(self.configuration.image_fstypes))
> -        if self.enable_proxy:
> +        data += ("ENABLE_PROXY: "         +
> self._get_sorted_value(self.configuration.enable_proxy))
> +        if self.configuration.enable_proxy:
>              data += ("ALL_PROXY: "            +
> self._get_sorted_value(self.configuration.all_proxy))
>              data += ("HTTP_PROXY: "           +
> self._get_sorted_value(self.configuration.http_proxy))
>              data += ("HTTPS_PROXY: "          +
> self._get_sorted_value(self.configuration.https_proxy))
> @@ -531,55 +531,55 @@ class AdvancedSettingDialog (CrumbsDialog):
>          advanced_vbox.pack_start(sub_vbox, expand=False, fill=False)
>          self.proxy_checkbox = gtk.CheckButton("Enable proxy")
>          self.proxy_checkbox.set_tooltip_text("Check this box to setup the
> proxy you specified")
> -        self.proxy_checkbox.set_active(self.enable_proxy)
> +        self.proxy_checkbox.set_active(self.configuration.enable_proxy)
>          self.proxy_checkbox.connect("toggled",
> self.proxy_checkbox_toggled_cb)
>          sub_vbox.pack_start(self.proxy_checkbox, expand=False, fill=False)
>
>          label = self.gen_label_widget("<span weight=\"bold\">Set all
> proxy:</span>")
>          tooltip = "Set the all proxy that will be used if the proxy for a
> URL isn't specified."
>          proxy_widget, self.all_proxy_text =
> self.gen_entry_widget(self.configuration.all_proxy, self, tooltip, False)
> -        self.all_proxy_text.set_editable(self.enable_proxy)
> -        self.all_proxy_text.set_sensitive(self.enable_proxy)
> +        self.all_proxy_text.set_editable(self.configuration.enable_proxy)
> +        self.all_proxy_text.set_sensitive(self.configuration.enable_proxy)
>          sub_vbox.pack_start(label, expand=False, fill=False)
>          sub_vbox.pack_start(proxy_widget, expand=False, fill=False)
>
>          label = self.gen_label_widget("<span weight=\"bold\">Set http
> proxy:</span>")
>          tooltip = "Set the http proxy that will be used in do_fetch()
> source code"
>          proxy_widget, self.http_proxy_text =
> self.gen_entry_widget(self.configuration.http_proxy, self, tooltip, False)
> -        self.http_proxy_text.set_editable(self.enable_proxy)
> -        self.http_proxy_text.set_sensitive(self.enable_proxy)
> +        self.http_proxy_text.set_editable(self.configuration.enable_proxy)
> +
>  self.http_proxy_text.set_sensitive(self.configuration.enable_proxy)
>          sub_vbox.pack_start(label, expand=False, fill=False)
>          sub_vbox.pack_start(proxy_widget, expand=False, fill=False)
>
>          label = self.gen_label_widget("<span weight=\"bold\">Set https
> proxy:</span>")
>          tooltip = "Set the https proxy that will be used in do_fetch()
> source code"
>          proxy_widget, self.https_proxy_text =
> self.gen_entry_widget(self.configuration.https_proxy, self, tooltip, False)
> -        self.https_proxy_text.set_editable(self.enable_proxy)
> -        self.https_proxy_text.set_sensitive(self.enable_proxy)
> +
>  self.https_proxy_text.set_editable(self.configuration.enable_proxy)
> +
>  self.https_proxy_text.set_sensitive(self.configuration.enable_proxy)
>          sub_vbox.pack_start(label, expand=False, fill=False)
>          sub_vbox.pack_start(proxy_widget, expand=False, fill=False)
>
>          label = self.gen_label_widget("<span weight=\"bold\">Set ftp
> proxy:</span>")
>          tooltip = "Set the ftp proxy that will be used in do_fetch()
> source code"
>          proxy_widget, self.ftp_proxy_text =
> self.gen_entry_widget(self.configuration.ftp_proxy, self, tooltip, False)
> -        self.ftp_proxy_text.set_editable(self.enable_proxy)
> -        self.ftp_proxy_text.set_sensitive(self.enable_proxy)
> +        self.ftp_proxy_text.set_editable(self.configuration.enable_proxy)
> +        self.ftp_proxy_text.set_sensitive(self.configuration.enable_proxy)
>          sub_vbox.pack_start(label, expand=False, fill=False)
>          sub_vbox.pack_start(proxy_widget, expand=False, fill=False)
>
>          label = self.gen_label_widget("<span weight=\"bold\">Set git
> proxy:</span>")
>          tooltip = "Set the git proxy that will be used in do_fetch()
> source code"
>          proxy_widget, self.git_proxy_text =
> self.gen_entry_widget(self.configuration.git_proxy_host + ':' +
> self.configuration.git_proxy_port, self, tooltip, False)
> -        self.git_proxy_text.set_editable(self.enable_proxy)
> -        self.git_proxy_text.set_sensitive(self.enable_proxy)
> +        self.git_proxy_text.set_editable(self.configuration.enable_proxy)
> +        self.git_proxy_text.set_sensitive(self.configuration.enable_proxy)
>          sub_vbox.pack_start(label, expand=False, fill=False)
>          sub_vbox.pack_start(proxy_widget, expand=False, fill=False)
>
>          label = self.gen_label_widget("<span weight=\"bold\">Set cvs
> proxy:</span>")
>          tooltip = "Set the cvs proxy that will be used in do_fetch()
> source code"
>          proxy_widget, self.cvs_proxy_text =
> self.gen_entry_widget(self.configuration.cvs_proxy_host + ':' +
> self.configuration.cvs_proxy_port, self, tooltip, False)
> -        self.cvs_proxy_text.set_editable(self.enable_proxy)
> -        self.cvs_proxy_text.set_sensitive(self.enable_proxy)
> +        self.cvs_proxy_text.set_editable(self.configuration.enable_proxy)
> +        self.cvs_proxy_text.set_sensitive(self.configuration.enable_proxy)
>          sub_vbox.pack_start(label, expand=False, fill=False)
>          sub_vbox.pack_start(proxy_widget, expand=False, fill=False)
>
> @@ -600,19 +600,19 @@ class AdvancedSettingDialog (CrumbsDialog):
>          return advanced_vbox
>
>      def proxy_checkbox_toggled_cb(self, button):
> -        self.enable_proxy = self.proxy_checkbox.get_active()
> -        self.all_proxy_text.set_editable(self.enable_proxy)
> -        self.all_proxy_text.set_sensitive(self.enable_proxy)
> -        self.http_proxy_text.set_editable(self.enable_proxy)
> -        self.http_proxy_text.set_sensitive(self.enable_proxy)
> -        self.https_proxy_text.set_editable(self.enable_proxy)
> -        self.https_proxy_text.set_sensitive(self.enable_proxy)
> -        self.ftp_proxy_text.set_editable(self.enable_proxy)
> -        self.ftp_proxy_text.set_sensitive(self.enable_proxy)
> -        self.git_proxy_text.set_editable(self.enable_proxy)
> -        self.git_proxy_text.set_sensitive(self.enable_proxy)
> -        self.cvs_proxy_text.set_editable(self.enable_proxy)
> -        self.cvs_proxy_text.set_sensitive(self.enable_proxy)
> +        self.configuration.enable_proxy = self.proxy_checkbox.get_active()
> +        self.all_proxy_text.set_editable(self.configuration.enable_proxy)
> +        self.all_proxy_text.set_sensitive(self.configuration.enable_proxy)
> +        self.http_proxy_text.set_editable(self.configuration.enable_proxy)
> +
>  self.http_proxy_text.set_sensitive(self.configuration.enable_proxy)
> +
>  self.https_proxy_text.set_editable(self.configuration.enable_proxy)
> +
>  self.https_proxy_text.set_sensitive(self.configuration.enable_proxy)
> +        self.ftp_proxy_text.set_editable(self.configuration.enable_proxy)
> +        self.ftp_proxy_text.set_sensitive(self.configuration.enable_proxy)
> +        self.git_proxy_text.set_editable(self.configuration.enable_proxy)
> +        self.git_proxy_text.set_sensitive(self.configuration.enable_proxy)
> +        self.cvs_proxy_text.set_editable(self.configuration.enable_proxy)
> +        self.cvs_proxy_text.set_sensitive(self.configuration.enable_proxy)
>
>      def response_cb(self, dialog, response_id):
>          package_format = []
> --
> 1.7.9.5
>
>
Bogdan Marinescu - Sept. 10, 2012, 10:41 a.m.
Proxy settings were not properly saved between Hob runs. This
fix is mostly a backport of code in master.

[YOCTO #3024]

Signed-off-by: Bogdan Marinescu <bogdan.a.marinescu@intel.com>
---
 bitbake/lib/bb/ui/crumbs/builder.py |   18 ++++++++---
 bitbake/lib/bb/ui/crumbs/hig.py     |   58 +++++++++++++++++------------------
 2 files changed, 43 insertions(+), 33 deletions(-)

Patch

diff --git a/bitbake/lib/bb/ui/crumbs/builder.py b/bitbake/lib/bb/ui/crumbs/builder.py
index df85326..000a838 100755
--- a/bitbake/lib/bb/ui/crumbs/builder.py
+++ b/bitbake/lib/bb/ui/crumbs/builder.py
@@ -70,6 +70,7 @@  class Configuration:
         self.all_proxy = self.http_proxy = self.ftp_proxy = self.https_proxy = ""
         self.git_proxy_host = self.git_proxy_port = ""
         self.cvs_proxy_host = self.cvs_proxy_port = ""
+        self.enable_proxy = None
 
     def clear_selection(self):
         self.selected_image = None
@@ -99,6 +100,9 @@  class Configuration:
         self.default_task = params["default_task"]
 
         # proxy settings
+        self.enable_proxy = params["http_proxy"] != "" or params["https_proxy"] != "" or params["ftp_proxy"] != "" \
+            or params["git_proxy_host"] != "" or params["git_proxy_port"] != ""                                    \
+            or params["cvs_proxy_host"] != "" or params["cvs_proxy_port"] != "" or params["all_proxy"] != ""
         self.all_proxy = params["all_proxy"]
         self.http_proxy = params["http_proxy"]
         self.ftp_proxy = params["ftp_proxy"]
@@ -146,6 +150,7 @@  class Configuration:
         self.selected_recipes = template.getVar("DEPENDS").split()
         self.selected_packages = template.getVar("IMAGE_INSTALL").split()
         # proxy
+        self.enable_proxy = eval(template.getVar("enable_proxy"))
         self.all_proxy = template.getVar("all_proxy")
         self.http_proxy = template.getVar("http_proxy")
         self.ftp_proxy = template.getVar("ftp_proxy")
@@ -183,6 +188,7 @@  class Configuration:
             template.setVar("DEPENDS", self.selected_recipes)
             template.setVar("IMAGE_INSTALL", self.user_selected_packages)
         # proxy
+        template.setVar("enable_proxy", self.enable_proxy)
         template.setVar("all_proxy", self.all_proxy)
         template.setVar("http_proxy", self.http_proxy)
         template.setVar("ftp_proxy", self.ftp_proxy)
@@ -212,7 +218,6 @@  class Parameters:
         self.all_sdk_machines = []
         self.all_layers = []
         self.image_names = []
-        self.enable_proxy = False
 
         # for build log to show
         self.bb_version = ""
@@ -581,13 +586,20 @@  class Builder(gtk.Window):
         self.handler.set_extra_inherit("packageinfo")
         self.handler.set_extra_inherit("image_types")
         # set proxies
-        if self.parameters.enable_proxy:
+        if self.configuration.enable_proxy == True:
             self.handler.set_http_proxy(self.configuration.http_proxy)
             self.handler.set_https_proxy(self.configuration.https_proxy)
             self.handler.set_ftp_proxy(self.configuration.ftp_proxy)
             self.handler.set_all_proxy(self.configuration.all_proxy)
             self.handler.set_git_proxy(self.configuration.git_proxy_host, self.configuration.git_proxy_port)
             self.handler.set_cvs_proxy(self.configuration.cvs_proxy_host, self.configuration.cvs_proxy_port)
+        elif self.configuration.enable_proxy == False:
+            self.handler.set_http_proxy('')
+            self.handler.set_https_proxy('')
+            self.handler.set_ftp_proxy('')
+            self.handler.set_all_proxy('')
+            self.handler.set_git_proxy('', '')
+            self.handler.set_cvs_proxy('', '')
 
     def update_recipe_model(self, selected_image, selected_recipes):
         self.recipe_model.set_selected_image(selected_image)
@@ -1009,7 +1021,6 @@  class Builder(gtk.Window):
             all_distros = self.parameters.all_distros,
             all_sdk_machines = self.parameters.all_sdk_machines,
             max_threads = self.parameters.max_threads,
-            enable_proxy = self.parameters.enable_proxy,
             parent = self,
             flags = gtk.DIALOG_MODAL
                     | gtk.DIALOG_DESTROY_WITH_PARENT
@@ -1021,7 +1032,6 @@  class Builder(gtk.Window):
         response = dialog.run()
         settings_changed = False
         if response == gtk.RESPONSE_YES:
-            self.parameters.enable_proxy = dialog.enable_proxy
             self.configuration = dialog.configuration
             self.save_defaults() # remember settings
             settings_changed = dialog.settings_changed
diff --git a/bitbake/lib/bb/ui/crumbs/hig.py b/bitbake/lib/bb/ui/crumbs/hig.py
index 4baf960..b6c970b 100644
--- a/bitbake/lib/bb/ui/crumbs/hig.py
+++ b/bitbake/lib/bb/ui/crumbs/hig.py
@@ -309,7 +309,7 @@  class AdvancedSettingDialog (CrumbsDialog):
 
     def __init__(self, title, configuration, all_image_types,
             all_package_formats, all_distros, all_sdk_machines,
-            max_threads, enable_proxy, parent, flags, buttons=None):
+            max_threads, parent, flags, buttons=None):
         super(AdvancedSettingDialog, self).__init__(title, parent, flags, buttons)
 
         # class members from other objects
@@ -320,7 +320,6 @@  class AdvancedSettingDialog (CrumbsDialog):
         self.all_distros = all_distros
         self.all_sdk_machines = all_sdk_machines
         self.max_threads = max_threads
-        self.enable_proxy = enable_proxy
 
         # class members for internal use
         self.distro_combo = None
@@ -356,7 +355,8 @@  class AdvancedSettingDialog (CrumbsDialog):
         data += ("SDK_MACHINE: "          + self._get_sorted_value(self.configuration.curr_sdk_machine))
         data += ("TOOLCHAIN_BUILD: "      + self._get_sorted_value(self.configuration.toolchain_build))
         data += ("IMAGE_FSTYPES: "        + self._get_sorted_value(self.configuration.image_fstypes))
-        if self.enable_proxy:
+        data += ("ENABLE_PROXY: "         + self._get_sorted_value(self.configuration.enable_proxy))
+        if self.configuration.enable_proxy:
             data += ("ALL_PROXY: "            + self._get_sorted_value(self.configuration.all_proxy))
             data += ("HTTP_PROXY: "           + self._get_sorted_value(self.configuration.http_proxy))
             data += ("HTTPS_PROXY: "          + self._get_sorted_value(self.configuration.https_proxy))
@@ -531,55 +531,55 @@  class AdvancedSettingDialog (CrumbsDialog):
         advanced_vbox.pack_start(sub_vbox, expand=False, fill=False)
         self.proxy_checkbox = gtk.CheckButton("Enable proxy")
         self.proxy_checkbox.set_tooltip_text("Check this box to setup the proxy you specified")
-        self.proxy_checkbox.set_active(self.enable_proxy)
+        self.proxy_checkbox.set_active(self.configuration.enable_proxy)
         self.proxy_checkbox.connect("toggled", self.proxy_checkbox_toggled_cb)
         sub_vbox.pack_start(self.proxy_checkbox, expand=False, fill=False)
 
         label = self.gen_label_widget("<span weight=\"bold\">Set all proxy:</span>")
         tooltip = "Set the all proxy that will be used if the proxy for a URL isn't specified."
         proxy_widget, self.all_proxy_text = self.gen_entry_widget(self.configuration.all_proxy, self, tooltip, False)
-        self.all_proxy_text.set_editable(self.enable_proxy)
-        self.all_proxy_text.set_sensitive(self.enable_proxy)
+        self.all_proxy_text.set_editable(self.configuration.enable_proxy)
+        self.all_proxy_text.set_sensitive(self.configuration.enable_proxy)
         sub_vbox.pack_start(label, expand=False, fill=False)
         sub_vbox.pack_start(proxy_widget, expand=False, fill=False)
 
         label = self.gen_label_widget("<span weight=\"bold\">Set http proxy:</span>")
         tooltip = "Set the http proxy that will be used in do_fetch() source code"
         proxy_widget, self.http_proxy_text = self.gen_entry_widget(self.configuration.http_proxy, self, tooltip, False)
-        self.http_proxy_text.set_editable(self.enable_proxy)
-        self.http_proxy_text.set_sensitive(self.enable_proxy)
+        self.http_proxy_text.set_editable(self.configuration.enable_proxy)
+        self.http_proxy_text.set_sensitive(self.configuration.enable_proxy)
         sub_vbox.pack_start(label, expand=False, fill=False)
         sub_vbox.pack_start(proxy_widget, expand=False, fill=False)
 
         label = self.gen_label_widget("<span weight=\"bold\">Set https proxy:</span>")
         tooltip = "Set the https proxy that will be used in do_fetch() source code"
         proxy_widget, self.https_proxy_text = self.gen_entry_widget(self.configuration.https_proxy, self, tooltip, False)
-        self.https_proxy_text.set_editable(self.enable_proxy)
-        self.https_proxy_text.set_sensitive(self.enable_proxy)
+        self.https_proxy_text.set_editable(self.configuration.enable_proxy)
+        self.https_proxy_text.set_sensitive(self.configuration.enable_proxy)
         sub_vbox.pack_start(label, expand=False, fill=False)
         sub_vbox.pack_start(proxy_widget, expand=False, fill=False)
 
         label = self.gen_label_widget("<span weight=\"bold\">Set ftp proxy:</span>")
         tooltip = "Set the ftp proxy that will be used in do_fetch() source code"
         proxy_widget, self.ftp_proxy_text = self.gen_entry_widget(self.configuration.ftp_proxy, self, tooltip, False)
-        self.ftp_proxy_text.set_editable(self.enable_proxy)
-        self.ftp_proxy_text.set_sensitive(self.enable_proxy)
+        self.ftp_proxy_text.set_editable(self.configuration.enable_proxy)
+        self.ftp_proxy_text.set_sensitive(self.configuration.enable_proxy)
         sub_vbox.pack_start(label, expand=False, fill=False)
         sub_vbox.pack_start(proxy_widget, expand=False, fill=False)
 
         label = self.gen_label_widget("<span weight=\"bold\">Set git proxy:</span>")
         tooltip = "Set the git proxy that will be used in do_fetch() source code"
         proxy_widget, self.git_proxy_text = self.gen_entry_widget(self.configuration.git_proxy_host + ':' + self.configuration.git_proxy_port, self, tooltip, False)
-        self.git_proxy_text.set_editable(self.enable_proxy)
-        self.git_proxy_text.set_sensitive(self.enable_proxy)
+        self.git_proxy_text.set_editable(self.configuration.enable_proxy)
+        self.git_proxy_text.set_sensitive(self.configuration.enable_proxy)
         sub_vbox.pack_start(label, expand=False, fill=False)
         sub_vbox.pack_start(proxy_widget, expand=False, fill=False)
 
         label = self.gen_label_widget("<span weight=\"bold\">Set cvs proxy:</span>")
         tooltip = "Set the cvs proxy that will be used in do_fetch() source code"
         proxy_widget, self.cvs_proxy_text = self.gen_entry_widget(self.configuration.cvs_proxy_host + ':' + self.configuration.cvs_proxy_port, self, tooltip, False)
-        self.cvs_proxy_text.set_editable(self.enable_proxy)
-        self.cvs_proxy_text.set_sensitive(self.enable_proxy)
+        self.cvs_proxy_text.set_editable(self.configuration.enable_proxy)
+        self.cvs_proxy_text.set_sensitive(self.configuration.enable_proxy)
         sub_vbox.pack_start(label, expand=False, fill=False)
         sub_vbox.pack_start(proxy_widget, expand=False, fill=False)
 
@@ -600,19 +600,19 @@  class AdvancedSettingDialog (CrumbsDialog):
         return advanced_vbox
 
     def proxy_checkbox_toggled_cb(self, button):
-        self.enable_proxy = self.proxy_checkbox.get_active()
-        self.all_proxy_text.set_editable(self.enable_proxy)
-        self.all_proxy_text.set_sensitive(self.enable_proxy)
-        self.http_proxy_text.set_editable(self.enable_proxy)
-        self.http_proxy_text.set_sensitive(self.enable_proxy)
-        self.https_proxy_text.set_editable(self.enable_proxy)
-        self.https_proxy_text.set_sensitive(self.enable_proxy)
-        self.ftp_proxy_text.set_editable(self.enable_proxy)
-        self.ftp_proxy_text.set_sensitive(self.enable_proxy)
-        self.git_proxy_text.set_editable(self.enable_proxy)
-        self.git_proxy_text.set_sensitive(self.enable_proxy)
-        self.cvs_proxy_text.set_editable(self.enable_proxy)
-        self.cvs_proxy_text.set_sensitive(self.enable_proxy)
+        self.configuration.enable_proxy = self.proxy_checkbox.get_active()
+        self.all_proxy_text.set_editable(self.configuration.enable_proxy)
+        self.all_proxy_text.set_sensitive(self.configuration.enable_proxy)
+        self.http_proxy_text.set_editable(self.configuration.enable_proxy)
+        self.http_proxy_text.set_sensitive(self.configuration.enable_proxy)
+        self.https_proxy_text.set_editable(self.configuration.enable_proxy)
+        self.https_proxy_text.set_sensitive(self.configuration.enable_proxy)
+        self.ftp_proxy_text.set_editable(self.configuration.enable_proxy)
+        self.ftp_proxy_text.set_sensitive(self.configuration.enable_proxy)
+        self.git_proxy_text.set_editable(self.configuration.enable_proxy)
+        self.git_proxy_text.set_sensitive(self.configuration.enable_proxy)
+        self.cvs_proxy_text.set_editable(self.configuration.enable_proxy)
+        self.cvs_proxy_text.set_sensitive(self.configuration.enable_proxy)
 
     def response_cb(self, dialog, response_id):
         package_format = []