Clear rows (cleaners) and add them fresh
(self)
| 175 | options.set_tree(parent, child, value) |
| 176 | |
| 177 | def refresh_rows(self): |
| 178 | """Clear rows (cleaners) and add them fresh""" |
| 179 | if self.row_changed_handler_id: |
| 180 | self.tree_store.disconnect(self.row_changed_handler_id) |
| 181 | self.tree_store.clear() |
| 182 | hidden_cleaners = [] |
| 183 | for key in sorted(backends): |
| 184 | if not any(backends[key].get_options()): |
| 185 | # localizations has no options, so it should be hidden |
| 186 | # https://github.com/az0/bleachbit/issues/110 |
| 187 | continue |
| 188 | c_name = backends[key].get_name() |
| 189 | c_id = backends[key].get_id() |
| 190 | c_value = options.get_tree(c_id, None) |
| 191 | if not c_value and options.get('auto_hide') and backends[key].auto_hide(): |
| 192 | hidden_cleaners.append(c_id) |
| 193 | continue |
| 194 | parent = self.tree_store.append( |
| 195 | None, (c_name, c_value, c_id, "", "")) |
| 196 | for (o_id, o_name) in backends[key].get_options(): |
| 197 | o_value = options.get_tree(c_id, o_id) |
| 198 | self.tree_store.append(parent, (o_name, o_value, o_id, "", "")) |
| 199 | if hidden_cleaners: |
| 200 | logger.debug("automatically hid %d cleaners: %s", len( |
| 201 | hidden_cleaners), ', '.join(hidden_cleaners)) |
| 202 | self.row_changed_handler_id = self.tree_store.connect("row-changed", |
| 203 | self.on_row_changed) |
| 204 | |
| 205 | def sort_func(self, model, iter1, iter2, _user_data): |
| 206 | """Sort the tree by the id |