18337 PM inconsistent behavior in Modify and Preferences dialog
authorJohn Rice <john.rice@oracle.com>
Wed, 18 May 2011 16:30:44 +0100
changeset 2363 493a9a6537a9
parent 2362 960c668ee440
child 2364 7598ee41dcbc
18337 PM inconsistent behavior in Modify and Preferences dialog
src/gui/modules/preferences.py
src/gui/modules/repository.py
--- a/src/gui/modules/preferences.py	Tue May 17 09:16:12 2011 -0700
+++ b/src/gui/modules/preferences.py	Wed May 18 16:30:44 2011 +0100
@@ -124,6 +124,7 @@
                 self.facet_g11_locales_dict = {}
                 self.facetlocales_list = []
                 self.facets_to_set = {}
+                self.locales_setup = False
                 self.locales_treeview_selection = []
                 self.locales_list = self.__get_locales_liststore()
                 self.__init_locales_tree_view(self.locales_list)
@@ -202,6 +203,8 @@
                 return True
 
         def __prepare_img_signature_policy(self):
+                if self.orig_gsig_policy:
+                        return
                 sig_policy = self.__fetch_img_signature_policy()
                 self.orig_gsig_policy = sig_policy
                 self.w_gsig_ignored_radiobutton.set_active(
@@ -230,11 +233,9 @@
 
         def __on_notebook_change(self, widget, event, pagenum):
                 if pagenum == PREFERENCES_NOTEBOOK_LANGUAGES_PAGE:
-                        locales_not_setup = len(self.orig_facets_dict) == 0
-                        if locales_not_setup:
-                                self.w_preferencesdialog.window.set_cursor(
-                                    self.watch )
-                                gobject.idle_add(self.__prepare_locales)
+                        self.w_preferencesdialog.window.set_cursor(
+                            self.watch )
+                        gobject.idle_add(self.__prepare_locales)
                 elif pagenum == PREFERENCES_NOTEBOOK_SIG_POL_PAGE:
                         gobject.idle_add(self.__prepare_img_signature_policy)
 
@@ -366,6 +367,8 @@
 
         def __prepare_locales(self):
                 try:
+                        if self.locales_setup:
+                                return
                         self.__prepare_locales_list()
                 finally:
                         self.w_preferencesdialog.window.set_cursor(None)
@@ -514,6 +517,7 @@
                                 self.orig_facet_lang_dict, \
                                 self.orig_facet_lang_star_dict, \
                                 self.orig_facet_locale_dict
+                self.locales_setup = True
 
         def __get_system_locales(self):
                 try:
@@ -749,6 +753,9 @@
                 return True
 
         def __on_preferencesdialog_show(self, widget):
+                self.orig_gsig_policy = {}
+                self.locales_setup = False
+
                 pagenum = self.w_preferences_notebook.get_current_page()
                 if pagenum == PREFERENCES_NOTEBOOK_LANGUAGES_PAGE:
                         self.w_preferencesdialog.window.set_cursor(self.watch)
--- a/src/gui/modules/repository.py	Tue May 17 09:16:12 2011 -0700
+++ b/src/gui/modules/repository.py	Wed May 18 16:30:44 2011 +0100
@@ -312,6 +312,7 @@
                 self.removed_orig_pub_cert_dict = {}# Removed Orig Pub Certs from model
                                                     # - key/val: [sha-hash] = ips-hash
                 self.orig_sig_policy = {}
+                self.pub_certs_setup = False
                 
                 if self.action == enumerations.ADD_PUBLISHER:
                         gui_misc.set_modal_and_transient(self.w_add_publisher_dialog, 
@@ -396,7 +397,7 @@
                      self.__on_manage_help_clicked),
 
                     (self.w_modify_repository_dialog, "delete_event", 
-                     self.__delete_widget_handler_hide),
+                     self.__on_modifydialog_delete_event),
                     (self.w_modkeybrowse, "clicked", 
                      self.__on_modkeybrowse_clicked),
                     (self.w_modcertbrowse, "clicked", 
@@ -497,6 +498,9 @@
                 return errors
         
         def __prepare_pub_signature_policy(self):
+                if self.orig_sig_policy:
+                        return
+
                 sig_policy = self.__fetch_pub_signature_policy()
                 self.orig_sig_policy = sig_policy
                 self.w_pub_sig_ignored_radiobutton.set_active(
@@ -628,6 +632,9 @@
                 return display_name
 
         def __prepare_pub_certs(self):
+                if self.pub_certs_setup:
+                        return
+
                 pub = self.repository_modify_publisher
                 if not pub:
                         return
@@ -664,13 +671,15 @@
                 self.w_pub_cert_treeview.set_model(sorted_model)
                 if len(pub.revoked_ca_certs) == 0 and len(pub.approved_ca_certs) == 0:
                         self.__set_empty_pub_cert()
+                        self.pub_certs_setup = True
                         return
 
                 sel_path = (0,)
                 if len(selected_rows) > 1 and len(selected_rows[1]) > 0:
                         sel_path = selected_rows[1][0]
                 self.__set_pub_cert_selection(sorted_model, sel_path)
-
+                self.pub_certs_setup = True
+                
         def __add_cert_to_model(self, model, cert, ips_hash, status, path = "",
             scroll_to=False, new=False):
                 pub = self.repository_modify_publisher
@@ -1391,6 +1400,9 @@
                     self.modify_repo_origins_treeview)
 
         def __modify_publisher_dialog(self, pub):
+                self.orig_sig_policy = {}
+                self.pub_certs_setup = False
+
                 gui_misc.set_modal_and_transient(self.w_modify_repository_dialog,
                     self.w_manage_publishers_dialog)
                 try:
@@ -2400,6 +2412,10 @@
                 self.__run_with_prog_in_thread(self.__proceed_modifyrepo_ok,
                     self.w_manage_publishers_dialog)
 
+        def __on_modifydialog_delete_event(self, widget, event):
+                self.__on_repositorymodifyok_clicked(None)
+                return True
+                
         def __on_repositorymodifycancel_clicked(self, widget):
                 self.__delete_widget_handler_hide(
                     self.w_modify_repository_dialog, None)