aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Amland <thomas.amland@gmail.com>2014-11-18 15:04:27 +0100
committerThomas Amland <thomas.amland@gmail.com>2014-11-18 15:25:40 +0100
commite7bcbe437d6cb866fe29b1d5def190b9feab5c52 (patch)
treecab9ed7611c7e021dc593fd954f92013e75611d3
parent2cd94380e3fe59003ffe7938dd3afa34ea10a5c6 (diff)
[addons] add toggle for hiding broken addons. hide by default
-rw-r--r--system/settings/settings.xml4
-rw-r--r--xbmc/addons/GUIWindowAddonBrowser.cpp17
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())