src/gui/modules/repository.py
changeset 2387 6a57682e2017
parent 2377 8e97dd53f9e4
child 2388 aa600f1de478
--- a/src/gui/modules/repository.py	Fri May 27 13:27:03 2011 -0700
+++ b/src/gui/modules/repository.py	Tue May 31 15:22:20 2011 +0100
@@ -34,8 +34,6 @@
 PUBCERT_NOTSET_HASH = "HASH-NOTSET" #No L10N required
 PUBCERT_NOTAVAILABLE = _("Not available")
 
-PREFERRED_PRIORITY = 0
-
 import sys
 import os
 import pango
@@ -529,8 +527,10 @@
         def __fetch_pub_signature_policy(self):
                 pub = self.repository_modify_publisher
                 prop_sig_pol = pub.signature_policy.name
-                prop_sig_req_names = \
-                        pub.properties[gui_misc.PROP_SIGNATURE_REQUIRED_NAMES]
+                prop_sig_req_names = None
+                if gui_misc.PROP_SIGNATURE_REQUIRED_NAMES in pub.properties:
+                        prop_sig_req_names = \
+                                pub.properties[gui_misc.PROP_SIGNATURE_REQUIRED_NAMES]
                 return gui_misc.create_sig_policy_from_property(
                     prop_sig_pol, prop_sig_req_names)
 
@@ -1266,6 +1266,8 @@
                                 model.insert(j, publisher_row)
 
                 self.w_publishers_treeview.set_model(sorted_model)
+                if len(sorted_model) == 0:
+                        self.__set_empty_pub_list()
 
                 if restore_changes:
                         if self.new_pub:
@@ -1279,6 +1281,14 @@
                                             selected_rows[1][0])
                                         selection.select_path(selected_rows[1][0])
 
+        def __set_empty_pub_list(self):
+                details_buffer = self.w_manage_publishers_details.get_buffer()
+                details_buffer.set_text("")
+                self.w_manage_modify_btn.set_sensitive(False)
+                self.w_manage_remove_btn.set_sensitive(False)
+                self.w_manage_up_btn.set_sensitive(False)
+                self.w_manage_down_btn.set_sensitive(False)
+
         def __select_last_publisher(self):
                 sorted_model = self.w_publishers_treeview.get_model()
                 itr = sorted_model.get_iter_first()
@@ -1599,10 +1609,10 @@
                 model = filtered_model.get_model()
                 itr = model.get_iter(path)
                 if itr == None:
-                        return
-                preferred = 0 == model.get_value(itr,
-                    enumerations.PUBLISHER_PRIORITY_CHANGED)
-                if preferred:
+                        self.w_manage_modify_btn.set_sensitive(False)
+                        self.w_manage_remove_btn.set_sensitive(False)
+                        self.w_manage_up_btn.set_sensitive(False)
+                        self.w_manage_down_btn.set_sensitive(False)
                         return
                 pub = model.get_value(itr, enumerations.PUBLISHER_OBJECT)
                 if pub.sys_pub:
@@ -1616,24 +1626,27 @@
         @staticmethod
         def __is_at_least_one_entry(treeview):
                 model = treeview.get_model()
-                if len(model) > 1:
+                if len(model) >= 1:
                         return True
                 return False
 
         def __enable_disable_remove_modify_btn(self, itr, model):
                 if itr == None:
+                        self.w_manage_modify_btn.set_sensitive(False)
+                        self.w_manage_remove_btn.set_sensitive(False)
+                        self.w_manage_up_btn.set_sensitive(False)
+                        self.w_manage_down_btn.set_sensitive(False)
                         return
                 remove_val = False
                 modify_val = False
                 if self.__is_at_least_one_entry(self.w_publishers_treeview):
+                        remove_val = True
+                        modify_val = True
                         pub = model.get_value(itr,
                                 enumerations.PUBLISHER_OBJECT)
-                        if not  pub.sys_pub:
-                                current_priority = model.get_value(itr,
-                                    enumerations.PUBLISHER_PRIORITY_CHANGED)
-                                if current_priority != PREFERRED_PRIORITY:
-                                        remove_val = True
-                                modify_val = True
+                        if pub.sys_pub:
+                                remove_val = False
+                                modify_val = False
                 self.w_manage_modify_btn.set_sensitive(modify_val)
                 self.w_manage_remove_btn.set_sensitive(remove_val)
 
@@ -1643,8 +1656,6 @@
                 sorted_size = len(self.w_publishers_treeview.get_model())
 
                 if itr:
-                        enabled = model.get_value(itr,
-                            enumerations.PUBLISHER_ENABLED)
                         current_priority = model.get_value(itr,
                             enumerations.PUBLISHER_PRIORITY_CHANGED)
                         is_sys_pub = model.get_value(itr,
@@ -1666,21 +1677,7 @@
                                 if prev_pub.sys_pub:
                                         prev_sys_pub = True
              
-                        if current_priority == PREFERRED_PRIORITY:
-                                up_enabled = False
-                                if next_sys_pub or is_sys_pub:
-                                        down_enabled = False
-                                else:
-                                        if next_itr:
-                                                down_enabled = model.get_value(
-                                                    next_itr, 
-                                                    enumerations.PUBLISHER_ENABLED)
-                        elif (current_priority == PREFERRED_PRIORITY + 1) and not enabled:
-                                up_enabled = False
-                                down_enabled = True
-                                if current_priority == sorted_size - 1:
-                                        down_enabled = False
-                        elif current_priority == sorted_size - 1:
+                        if current_priority == sorted_size - 1:
                                 up_enabled = True
                                 down_enabled = False
 
@@ -2375,6 +2372,8 @@
                                 row = sorted_path[0]-1
                                 if row >= 0:
                                         tsel.select_path((row,))
+                if len(sorted_model) == 0:
+                        self.__set_empty_pub_list()
 
         def __on_manage_move_up_clicked(self, widget):
                 before_name = None
@@ -2834,18 +2833,13 @@
         @staticmethod
         def __toggle_data_function(column, renderer, model, itr, data):
                 if itr:
-                        # Do not allow to remove the publisher of first priority search
-                        # or if it is a system publisher
+                        # Do not allow to remove the publisher if it is a system
+                        # publisher
                         val = True
-                        priority = model.get_value(itr, 
-                            enumerations.PUBLISHER_PRIORITY_CHANGED)
-                        if priority == PREFERRED_PRIORITY:
+                        pub = model.get_value(itr,
+                            enumerations.PUBLISHER_OBJECT)
+                        if pub.sys_pub:
                                 val = False
-                        else:
-                                pub = model.get_value(itr, 
-                                    enumerations.PUBLISHER_OBJECT)
-                                if pub.sys_pub:
-                                        val = False
                         renderer.set_property("sensitive", val)
 
         @staticmethod