self.page_id = ''\r
self.page_list = {}\r
self.conf_list = {}\r
+ self.cfg_page_dict = {}\r
self.cfg_data_obj = None\r
self.org_cfg_data_bin = None\r
self.in_left = state()\r
self.in_right = state()\r
self.search_text = ''\r
- self.binseg_dict = {}\r
\r
# Check if current directory contains a file with a .yaml extension\r
# if not default self.last_dir to a Platform directory where it is\r
return visible\r
if self.cfg_data_obj.binseg_dict:\r
str_split = item['path'].split('.')\r
- if self.cfg_data_obj.binseg_dict[str_split[-2]] == -1:\r
- visible = False\r
- widget.grid_remove()\r
- return visible\r
+ if str_split[-2] not in CGenYamlCfg.available_fv and \\r
+ str_split[-2] not in CGenYamlCfg.missing_fv:\r
+ if self.cfg_data_obj.binseg_dict[str_split[-3]] == -1:\r
+ visible = False\r
+ widget.grid_remove()\r
+ return visible\r
+ else:\r
+ if self.cfg_data_obj.binseg_dict[str_split[-2]] == -1:\r
+ visible = False\r
+ widget.grid_remove()\r
+ return visible\r
result = 1\r
if item['condition']:\r
result = self.evaluate_condition(item)\r
self.clear_widgets_inLayout()\r
self.on_config_page_select_change(None)\r
\r
+ def set_config_data_page(self):\r
+ page_id_list = []\r
+ for idx, page in enumerate(\r
+ self.cfg_data_obj._cfg_page['root']['child']):\r
+ page_id_list.append(list(page.keys())[0])\r
+ page_list = self.cfg_data_obj.get_cfg_list(page_id_list[idx])\r
+ self.cfg_page_dict[page_id_list[idx]] = 0\r
+ for item in page_list:\r
+ str_split = item['path'].split('.')\r
+ if str_split[-2] not in CGenYamlCfg.available_fv and \\r
+ str_split[-2] not in CGenYamlCfg.missing_fv:\r
+ if self.cfg_data_obj.binseg_dict[str_split[-3]] != -1:\r
+ self.cfg_page_dict[page_id_list[idx]] += 1\r
+ else:\r
+ if self.cfg_data_obj.binseg_dict[str_split[-2]] != -1:\r
+ self.cfg_page_dict[page_id_list[idx]] += 1\r
+ removed_page = 0\r
+ for idx, id in enumerate(page_id_list):\r
+ if self.cfg_page_dict[id] == 0:\r
+ del self.cfg_data_obj._cfg_page['root']['child'][idx-removed_page] # noqa: E501\r
+ removed_page += 1\r
+\r
def reload_config_data_from_bin(self, bin_dat):\r
self.cfg_data_obj.load_default_from_bin(bin_dat)\r
+ self.set_config_data_page()\r
+ self.left.delete(*self.left.get_children())\r
+ self.build_config_page_tree(self.cfg_data_obj.get_cfg_page()['root'],\r
+ '')\r
self.refresh_config_data_page()\r
\r
def set_config_item_value(self, item, value_str):\r