diff --git a/include/core/advdumper.hpp b/include/core/advdumper.hpp index e40b50ad..5643183a 100644 --- a/include/core/advdumper.hpp +++ b/include/core/advdumper.hpp @@ -105,6 +105,10 @@ public: */ virtual dumper_base* start(master_dumper& _mdumper, const std::string& mode, const std::string& targetname) throw(std::bad_alloc, std::runtime_error) = 0; +/** + * Is hidden? + */ + virtual bool hidden() const { return false; } /** * Add dumper update notifier object. */ diff --git a/include/core/ui-services.hpp b/include/core/ui-services.hpp index 80d7b83c..c3950132 100644 --- a/include/core/ui-services.hpp +++ b/include/core/ui-services.hpp @@ -49,6 +49,8 @@ struct dumper_information_1 std::string name; //Is this dumper active? bool active; + //Hidden? + bool hidden; //Modes available (first is internal name, second is human-readable one). std::map modes; }; diff --git a/src/core/ui-services.cpp b/src/core/ui-services.cpp index c9a4ec4b..cab5d118 100644 --- a/src/core/ui-services.cpp +++ b/src/core/ui-services.cpp @@ -32,6 +32,7 @@ namespace for(auto i : mset) inf.modes[i] = d->modename(i); inf.active = inst.mdumper->busy(d); + inf.hidden = d->hidden(); new_dumpers[d->id()] = inf; } } diff --git a/src/platform/wxwidgets/dumpmenu.cpp b/src/platform/wxwidgets/dumpmenu.cpp index 2cac400f..7204ed37 100644 --- a/src/platform/wxwidgets/dumpmenu.cpp +++ b/src/platform/wxwidgets/dumpmenu.cpp @@ -164,6 +164,9 @@ void dumper_menu::update() first = true; menustructure.clear(); for(auto i : dinfo.dumpers) { + //Skip dumper called "NULL" unless actually active, since it doesn't really work. + if(i.second.hidden && !i.second.active) + continue; if(!first) menustructure[last_processed].sep = AppendSeparator(); last_processed = i.first; diff --git a/src/video/null.cpp b/src/video/null.cpp index cf9754dd..7adabe49 100644 --- a/src/video/null.cpp +++ b/src/video/null.cpp @@ -103,6 +103,7 @@ namespace { return new null_dump_obj(_mdumper, *this, mode, prefix); } + bool hidden() const { return true; } } adv; adv_null_dumper::~adv_null_dumper() throw()