X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=radiant%2Ffilters.cpp;h=74e7774a704d85ea4d9bda46fad3942d60e66052;hb=61cca6db45d0c7e0c49e41dd26854c2b3b171e3f;hp=e0f157da5722e836e13121c9c6d4e8395da0719d;hpb=12b372f89ce109a4db9d510884fbe7d05af79870;p=xonotic%2Fnetradiant.git diff --git a/radiant/filters.cpp b/radiant/filters.cpp index e0f157da..74e7774a 100644 --- a/radiant/filters.cpp +++ b/radiant/filters.cpp @@ -150,6 +150,12 @@ public: m_item.update(); PerformFiltering(); } + void reset() + { + g_filters_globals.exclude = 0; + m_item.update(); + PerformFiltering(); + } typedef MemberCaller ToggleCaller; }; @@ -163,6 +169,26 @@ void add_filter_command(unsigned int flag, const char* command, const Accelerato GlobalToggles_insert(command, ToggleFilterFlag::ToggleCaller(g_filter_items.back()), ToggleItem::AddCallbackCaller(g_filter_items.back().m_item), accelerator); } +void InvertFilters() +{ + std::list::iterator iter; + + for(iter = g_filter_items.begin(); iter != g_filter_items.end(); ++iter) + { + iter->toggle(); + } +} + +void ResetFilters() +{ + std::list::iterator iter; + + for(iter = g_filter_items.begin(); iter != g_filter_items.end(); ++iter) + { + iter->reset(); + } +} + void Filters_constructMenu(GtkMenu* menu_in_menu) { create_check_menu_item_with_mnemonic(menu_in_menu, "World", "FilterWorldBrushes"); @@ -202,6 +228,10 @@ void Filters_constructMenu(GtkMenu* menu_in_menu) { create_check_menu_item_with_mnemonic(menu_in_menu, "Botclips", "FilterBotClips"); } + // filter manipulation + menu_separator(menu_in_menu); + create_menu_item_with_mnemonic(menu_in_menu, "Invert filters", "InvertFilters"); + create_menu_item_with_mnemonic(menu_in_menu, "Reset filters", "ResetFilters"); } @@ -212,6 +242,9 @@ void ConstructFilters() { GlobalPreferenceSystem().registerPreference("SI_Exclude", SizeImportStringCaller(g_filters_globals.exclude), SizeExportStringCaller(g_filters_globals.exclude)); + GlobalCommands_insert("InvertFilters", FreeCaller()); + GlobalCommands_insert("ResetFilters", FreeCaller()); + add_filter_command(EXCLUDE_WORLD, "FilterWorldBrushes", Accelerator('1', (GdkModifierType)GDK_MOD1_MASK)); add_filter_command(EXCLUDE_ENT, "FilterEntities", Accelerator('2', (GdkModifierType)GDK_MOD1_MASK)); if(g_pGameDescription->mGameType == "doom3")