diff options
author | Thomas Amland <thomas.amland@gmail.com> | 2015-10-17 16:06:33 +0200 |
---|---|---|
committer | Thomas Amland <thomas.amland@gmail.com> | 2015-10-18 15:23:03 +0200 |
commit | 76d1fc6f6c6369ae17c2de0fc6c49fadbf2c43c7 (patch) | |
tree | 2d7eebbbc11f7d1bffd7719ba8e07b4969070155 | |
parent | 41cd3d15d925fe9f2e089b9ee6d0035079cf6d91 (diff) |
[addons] add radio button to info dialog for toggling auto updates
-rw-r--r-- | addons/resource.language.en_gb/resources/strings.po | 7 | ||||
-rw-r--r-- | addons/skin.confluence/720p/DialogAddonInfo.xml | 8 | ||||
-rw-r--r-- | xbmc/addons/GUIDialogAddonInfo.cpp | 26 | ||||
-rw-r--r-- | xbmc/addons/GUIDialogAddonInfo.h | 1 |
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; |