Blame SOURCES/ds_xccdf_ids_hide_1254876.patch

fd2bce
From 47bda76d8a951b095c464931f5e9f81ee04fa2a9 Mon Sep 17 00:00:00 2001
fd2bce
From: Vratislav Podzimek <vpodzime@redhat.com>
fd2bce
Date: Mon, 24 Aug 2015 13:18:32 +0200
fd2bce
Subject: [PATCH 3/3] Only allow DS and XCCDF ID selection if it makes sense
fd2bce
 (#1254876)
fd2bce
fd2bce
If there's only one DS and a single XCCDF in it, there's no point in showing the
fd2bce
combo boxes that allow user to select the DS and XCCDF.
fd2bce
fd2bce
Signed-off-by: Vratislav Podzimek <vpodzime@redhat.com>
fd2bce
---
fd2bce
 org_fedora_oscap/gui/spokes/oscap.py | 30 +++++++++++++++++++++++-------
fd2bce
 1 file changed, 23 insertions(+), 7 deletions(-)
fd2bce
fd2bce
diff --git a/org_fedora_oscap/gui/spokes/oscap.py b/org_fedora_oscap/gui/spokes/oscap.py
fd2bce
index af60841..3b8dbd7 100644
fd2bce
--- a/org_fedora_oscap/gui/spokes/oscap.py
fd2bce
+++ b/org_fedora_oscap/gui/spokes/oscap.py
fd2bce
@@ -418,11 +418,8 @@ class OSCAPSpoke(NormalSpoke):
fd2bce
             for dstream in self._ds_checklists.iterkeys():
fd2bce
                 add_ds_ids.add_action(self._add_ds_id, dstream)
fd2bce
             add_ds_ids.fire()
fd2bce
-            fire_gtk_action(really_show, self._ids_box)
fd2bce
-        else:
fd2bce
-            # hide the labels and comboboxes for datastream-id and xccdf-id
fd2bce
-            # selection
fd2bce
-            fire_gtk_action(really_hide, self._ids_box)
fd2bce
+
fd2bce
+        self._update_ids_visibility()
fd2bce
 
fd2bce
         # refresh UI elements
fd2bce
         self.refresh()
fd2bce
@@ -487,6 +484,25 @@ class OSCAPSpoke(NormalSpoke):
fd2bce
         self._ds_store.append([ds_id])
fd2bce
 
fd2bce
     @gtk_action_wait
fd2bce
+    def _update_ids_visibility(self):
fd2bce
+        """
fd2bce
+        Updates visibility of the combo boxes that are used to select the DS and
fd2bce
+        XCCDF IDs.
fd2bce
+
fd2bce
+        """
fd2bce
+
fd2bce
+        if self._using_ds:
fd2bce
+            # only show the combo boxes if there are multiple data streams or
fd2bce
+            # multiple xccdfs (IOW if there's something to choose from)
fd2bce
+            ds_ids = self._ds_checklists.keys()
fd2bce
+            if len(ds_ids) > 1 or len(self._ds_checklists[ds_ids[0]]) > 1:
fd2bce
+                really_show(self._ids_box)
fd2bce
+                return
fd2bce
+
fd2bce
+        # not showing, hide instead
fd2bce
+        really_hide(self._ids_box)
fd2bce
+
fd2bce
+    @gtk_action_wait
fd2bce
     def _update_xccdfs_store(self):
fd2bce
         """
fd2bce
         Clears and repopulates the store with XCCDF IDs from the currently
fd2bce
@@ -818,8 +834,9 @@ class OSCAPSpoke(NormalSpoke):
fd2bce
 
fd2bce
         self._active_profile = self._addon_data.profile_id
fd2bce
 
fd2bce
+        self._update_ids_visibility()
fd2bce
+
fd2bce
         if self._using_ds:
fd2bce
-            fire_gtk_action(really_show, self._ids_box)
fd2bce
             if self._addon_data.datastream_id:
fd2bce
                 set_combo_selection(self._ds_combo,
fd2bce
                                     self._addon_data.datastream_id,
fd2bce
@@ -837,7 +854,6 @@ class OSCAPSpoke(NormalSpoke):
fd2bce
                                         self._addon_data.xccdf_id,
fd2bce
                                         unset_first=True)
fd2bce
         else:
fd2bce
-            fire_gtk_action(really_hide, self._ids_box)
fd2bce
             # no combobox changes --> need to update profiles store manually
fd2bce
             self._update_profiles_store()
fd2bce
 
fd2bce
-- 
fd2bce
2.1.0
fd2bce