- for(list<const Category *>::const_iterator i=categs.begin(); i!=categs.end(); ++i)
- if(find(obj.categories.begin(), obj.categories.end(), *i)==obj.categories.end())
- obj.categories.push_back(*i);
+ for(vector<const Category *>::const_iterator i=categs.begin(); i!=categs.end(); ++i)
+ for(list<Block>::iterator j=obj.blocks.begin(); j!=obj.blocks.end(); ++j)
+ if(j->category==*i)
+ {
+ obj.blocks.erase(j);
+ break;
+ }
+}
+
+void Filter::Loader::hide(const string &name)
+{
+ add_categories(name, false);
+}
+
+void Filter::Loader::include(const string &name)
+{
+ const Filter &base = poe.get_filter(name);
+ obj.blocks.insert(obj.blocks.end(), base.blocks.begin(), base.blocks.end());
+}
+
+void Filter::Loader::show(const string &name)
+{
+ add_categories(name, true);