diff options
author | Thomas Amland <thomas.amland@gmail.com> | 2014-11-18 15:04:27 +0100 |
---|---|---|
committer | Thomas Amland <thomas.amland@gmail.com> | 2014-11-18 15:25:40 +0100 |
commit | e7bcbe437d6cb866fe29b1d5def190b9feab5c52 (patch) | |
tree | cab9ed7611c7e021dc593fd954f92013e75611d3 | |
parent | 2cd94380e3fe59003ffe7938dd3afa34ea10a5c6 (diff) |
[addons] add toggle for hiding broken addons. hide by default
-rw-r--r-- | system/settings/settings.xml | 4 | ||||
-rw-r--r-- | xbmc/addons/GUIWindowAddonBrowser.cpp | 17 |
2 files changed, 21 insertions, 0 deletions
diff --git a/system/settings/settings.xml b/system/settings/settings.xml index 90d0fabd37..367542d81a 100644 --- a/system/settings/settings.xml +++ b/system/settings/settings.xml @@ -2979,6 +2979,10 @@ <level>4</level> <default>false</default> </setting> + <setting id="general.addonbrokenfilter" type="boolean" label="0" help="36415"> + <level>4</level> + <default>true</default> + </setting> </group> </category> </section> diff --git a/xbmc/addons/GUIWindowAddonBrowser.cpp b/xbmc/addons/GUIWindowAddonBrowser.cpp index 547c871e48..a016a7c905 100644 --- a/xbmc/addons/GUIWindowAddonBrowser.cpp +++ b/xbmc/addons/GUIWindowAddonBrowser.cpp @@ -51,6 +51,7 @@ #define CONTROL_AUTOUPDATE 5 #define CONTROL_SHUTUP 6 #define CONTROL_FOREIGNFILTER 7 +#define CONTROL_BROKENFILTER 8 using namespace ADDON; using namespace XFILE; @@ -110,6 +111,13 @@ bool CGUIWindowAddonBrowser::OnMessage(CGUIMessage& message) Refresh(); return true; } + else if (iControl == CONTROL_BROKENFILTER) + { + CSettings::Get().ToggleBool("general.addonbrokenfilter"); + CSettings::Get().Save(); + Refresh(); + return true; + } else if (m_viewControl.HasControl(iControl)) // list/thumb control { // get selected item @@ -317,6 +325,7 @@ void CGUIWindowAddonBrowser::UpdateButtons() } SET_CONTROL_SELECTED(GetID(),CONTROL_SHUTUP, CSettings::Get().GetBool("general.addonnotifications")); SET_CONTROL_SELECTED(GetID(),CONTROL_FOREIGNFILTER, CSettings::Get().GetBool("general.addonforeignfilter")); + SET_CONTROL_SELECTED(GetID(),CONTROL_BROKENFILTER, CSettings::Get().GetBool("general.addonbrokenfilter")); CGUIMediaWindow::UpdateButtons(); } @@ -378,6 +387,14 @@ bool CGUIWindowAddonBrowser::GetDirectory(const std::string& strDirectory, items.Remove(i); } } + if (CSettings::Get().GetBool("general.addonbrokenfilter")) + { + for (int i = items.Size() - 1; i >= 0; i--) + { + if (!items[i]->GetProperty("Addon.Broken").empty()) + items.Remove(i); + } + } } if (strDirectory.empty() && CAddonInstaller::Get().IsDownloading()) |