// \brief Show CGUIDialogOK dialog, then wait for user to dismiss it. bool CGUIDialogAddonSettings::ShowAndGetInput(const AddonPtr &addon, bool saveToDisk /* = true */) { if (!addon) return false; if (!g_passwordManager.CheckMenuLock(WINDOW_ADDON_BROWSER)) return false; bool ret(false); if (addon->HasSettings()) { // Create the dialog CGUIDialogAddonSettings* pDialog = NULL; pDialog = (CGUIDialogAddonSettings*) g_windowManager.GetWindow(WINDOW_DIALOG_ADDON_SETTINGS); if (!pDialog) return false; // Set the heading std::string heading = StringUtils::Format("$LOCALIZE[10004] - %s", addon->Name().c_str()); // "Settings - AddonName" pDialog->m_strHeading = heading; pDialog->m_addon = addon; pDialog->m_saveToDisk = saveToDisk; pDialog->DoModal(); ret = true; } else { // addon does not support settings, inform user CGUIDialogOK::ShowAndGetInput(24000,0,24030,0); } return ret; }
//@{ bool CActiveAEDSP::HaveMenuHooks(AE_DSP_MENUHOOK_CAT cat, int iDSPAddonID) { CSingleLock lock(m_critSection); for (AE_DSP_ADDONMAP_CITR citr = m_addonMap.begin(); citr != m_addonMap.end(); ++citr) { if (citr->second->ReadyToUse()) { if (citr->second->HaveMenuHooks(cat)) { if (iDSPAddonID > 0 && citr->second->GetID() == iDSPAddonID) return true; else if (iDSPAddonID < 0) return true; } else if (cat == AE_DSP_MENUHOOK_SETTING) { AddonPtr addon; if (CServiceBroker::GetAddonMgr().GetAddon(citr->second->ID(), addon) && addon->HasSettings()) return true; } } } return false; }
void CGUIWindowAddonBrowser::GetContextButtons(int itemNumber, CContextButtons& buttons) { if (itemNumber < 0 || itemNumber >= m_vecItems->Size()) return; CFileItemPtr pItem = m_vecItems->Get(itemNumber); std::string addonId = pItem->GetProperty("Addon.ID").asString(); if (!addonId.empty()) { buttons.Add(CONTEXT_BUTTON_INFO, 24003); AddonPtr addon; if (CAddonMgr::Get().GetAddon(addonId, addon, ADDON_UNKNOWN, false) && addon->HasSettings()) buttons.Add(CONTEXT_BUTTON_SETTINGS, 24020); } CContextMenuManager::Get().AddVisibleItems(pItem, buttons); }
void CGUIWindowAddonBrowser::GetContextButtons(int itemNumber, CContextButtons& buttons) { CFileItemPtr pItem = m_vecItems->Get(itemNumber); if (pItem->GetPath().Equals("addons://enabled/")) buttons.Add(CONTEXT_BUTTON_SCAN,24034); AddonPtr addon; if (!CAddonMgr::Get().GetAddon(pItem->GetProperty("Addon.ID").asString(), addon, ADDON_UNKNOWN, false)) // allow disabled addons return; if (addon->Type() == ADDON_REPOSITORY && pItem->m_bIsFolder) { buttons.Add(CONTEXT_BUTTON_SCAN,24034); buttons.Add(CONTEXT_BUTTON_UPDATE_LIBRARY,24035); } buttons.Add(CONTEXT_BUTTON_INFO,24003); if (addon->HasSettings()) buttons.Add(CONTEXT_BUTTON_SETTINGS,24020); }