aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Amland <thomas.amland@gmail.com>2015-10-17 16:06:33 +0200
committerThomas Amland <thomas.amland@gmail.com>2015-10-18 15:23:03 +0200
commit76d1fc6f6c6369ae17c2de0fc6c49fadbf2c43c7 (patch)
tree2d7eebbbc11f7d1bffd7719ba8e07b4969070155
parent41cd3d15d925fe9f2e089b9ee6d0035079cf6d91 (diff)
[addons] add radio button to info dialog for toggling auto updates
-rw-r--r--addons/resource.language.en_gb/resources/strings.po7
-rw-r--r--addons/skin.confluence/720p/DialogAddonInfo.xml8
-rw-r--r--xbmc/addons/GUIDialogAddonInfo.cpp26
-rw-r--r--xbmc/addons/GUIDialogAddonInfo.h1
4 files changed, 41 insertions, 1 deletions
diff --git a/addons/resource.language.en_gb/resources/strings.po b/addons/resource.language.en_gb/resources/strings.po
index 5af9e1950e..67f09c5489 100644
--- a/addons/resource.language.en_gb/resources/strings.po
+++ b/addons/resource.language.en_gb/resources/strings.po
@@ -11988,7 +11988,12 @@ msgctxt "#21339"
msgid "Version %s"
msgstr ""
-#empty strings from id 21340 to 21358
+#: xbmc/addons/GUIDialogAddonInfo.cpp
+msgctxt "#21340"
+msgid "Auto-update"
+msgstr ""
+
+#empty strings from id 21341 to 21358
#: xbmc/dialogs/GUIDialogFileBrowser.cpp
msgctxt "#21359"
diff --git a/addons/skin.confluence/720p/DialogAddonInfo.xml b/addons/skin.confluence/720p/DialogAddonInfo.xml
index 3802a0c6ea..3beac8d161 100644
--- a/addons/skin.confluence/720p/DialogAddonInfo.xml
+++ b/addons/skin.confluence/720p/DialogAddonInfo.xml
@@ -297,6 +297,14 @@
<align>center</align>
<font>font12_title</font>
</control>
+ <control type="radiobutton" id="13">
+ <description>Auto-update button</description>
+ <width>220</width>
+ <height>43</height>
+ <label>21340</label>
+ <align>center</align>
+ <font>font12_title</font>
+ </control>
<control type="button" id="12">
<description>Launch Addon button</description>
<width>220</width>
diff --git a/xbmc/addons/GUIDialogAddonInfo.cpp b/xbmc/addons/GUIDialogAddonInfo.cpp
index 8e51a4a1d0..da9e03bffb 100644
--- a/xbmc/addons/GUIDialogAddonInfo.cpp
+++ b/xbmc/addons/GUIDialogAddonInfo.cpp
@@ -35,6 +35,7 @@
#include "GUIUserMessages.h"
#include "guilib/GUIWindowManager.h"
#include "input/Key.h"
+#include "settings/Settings.h"
#include "utils/JobManager.h"
#include "utils/FileOperationJob.h"
#include "utils/StringUtils.h"
@@ -52,6 +53,7 @@
#define CONTROL_BTN_SETTINGS 9
#define CONTROL_BTN_CHANGELOG 10
#define CONTROL_BTN_SELECT 12
+#define CONTROL_BTN_AUTOUPDATE 13
using namespace ADDON;
using namespace XFILE;
@@ -139,6 +141,11 @@ bool CGUIDialogAddonInfo::OnMessage(CGUIMessage& message)
OnChangeLog();
return true;
}
+ else if (iControl == CONTROL_BTN_AUTOUPDATE)
+ {
+ OnToggleAutoUpdates();
+ return true;
+ }
}
break;
default:
@@ -181,6 +188,12 @@ void CGUIDialogAddonInfo::UpdateControls()
CONTROL_ENABLE_ON_CONDITION(CONTROL_BTN_UPDATE, isInstalled);
+ bool autoUpdatesOn = CSettings::GetInstance().GetInt(CSettings::SETTING_GENERAL_ADDONUPDATES) == AUTO_UPDATES_ON;
+ CONTROL_ENABLE_ON_CONDITION(CONTROL_BTN_AUTOUPDATE, isInstalled && autoUpdatesOn);
+ SET_CONTROL_SELECTED(GetID(), CONTROL_BTN_AUTOUPDATE, isInstalled && autoUpdatesOn &&
+ !CAddonMgr::GetInstance().IsBlacklisted(m_localAddon->ID()));
+ SET_CONTROL_LABEL(CONTROL_BTN_AUTOUPDATE, 21340);
+
CONTROL_ENABLE_ON_CONDITION(CONTROL_BTN_SELECT, isEnabled && (CanOpen() ||
CanRun() || (CanUse() && !m_localAddon->IsInUse())));
SET_CONTROL_LABEL(CONTROL_BTN_SELECT, CanUse() ? 21480 : (CanOpen() ? 21478 : 21479));
@@ -283,6 +296,19 @@ void CGUIDialogAddonInfo::OnUpdate()
}
}
+void CGUIDialogAddonInfo::OnToggleAutoUpdates()
+{
+ CGUIMessage msg(GUI_MSG_IS_SELECTED, GetID(), CONTROL_BTN_AUTOUPDATE);
+ if (OnMessage(msg))
+ {
+ bool selected = msg.GetParam1() == 1;
+ if (selected)
+ CAddonMgr::GetInstance().RemoveFromUpdateBlacklist(m_localAddon->ID());
+ else
+ CAddonMgr::GetInstance().AddToUpdateBlacklist(m_localAddon->ID());
+ }
+}
+
void CGUIDialogAddonInfo::OnInstall()
{
if (!g_passwordManager.CheckMenuLock(WINDOW_ADDON_BROWSER))
diff --git a/xbmc/addons/GUIDialogAddonInfo.h b/xbmc/addons/GUIDialogAddonInfo.h
index 3e44824523..8b4f10e045 100644
--- a/xbmc/addons/GUIDialogAddonInfo.h
+++ b/xbmc/addons/GUIDialogAddonInfo.h
@@ -59,6 +59,7 @@ private:
void OnSettings();
void OnChangeLog();
void OnSelect();
+ void OnToggleAutoUpdates();
/*! Returns true if current addon can be opened (i.e is a plugin)*/
bool CanOpen() const;