bool CGUIWindowSettingsCategory::OnAction(const CAction &action) { switch (action.GetID()) { case ACTION_SETTINGS_RESET: { if (CGUIDialogYesNo::ShowAndGetInput(10041, 0, 10042, 0)) { for(vector<BaseSettingControlPtr>::iterator it = m_settingControls.begin(); it != m_settingControls.end(); ++it) { CSetting *setting = (*it)->GetSetting(); if (setting != NULL) setting->Reset(); } } return true; } case ACTION_SETTINGS_LEVEL_CHANGE: { //Test if we can access the new level if (!g_passwordManager.CheckSettingLevelLock(CViewStateSettings::Get().GetNextSettingLevel(), true)) return false; CViewStateSettings::Get().CycleSettingLevel(); CSettings::Get().Save(); // try to keep the current position std::string oldCategory; if (m_iCategory >= 0 && m_iCategory < (int)m_categories.size()) oldCategory = m_categories[m_iCategory]->GetId(); SET_CONTROL_LABEL(CONTRL_BTN_LEVELS, 10036 + (int)CViewStateSettings::Get().GetSettingLevel()); // only re-create the categories, the settings will be created later SetupControls(false); m_iCategory = 0; // try to find the category that was previously selected if (!oldCategory.empty()) { for (int i = 0; i < (int)m_categories.size(); i++) { if (m_categories[i]->GetId() == oldCategory) { m_iCategory = i; break; } } } CreateSettings(); return true; } default: break; } return CGUIWindow::OnAction(action); }
JSONRPC_STATUS CSettingsOperations::ResetSettingValue(const std::string &method, ITransportLayer *transport, IClient *client, const CVariant ¶meterObject, CVariant &result) { string settingId = parameterObject["setting"].asString(); CSetting* setting = CSettings::Get().GetSetting(settingId); if (setting == NULL || !setting->IsVisible()) return InvalidParams; switch (setting->GetType()) { case SettingTypeBool: case SettingTypeInteger: case SettingTypeNumber: case SettingTypeString: case SettingTypeList: setting->Reset(); break; case SettingTypeNone: case SettingTypeAction: default: return InvalidParams; } return ACK; }
void CGUIDialogSettingsBase::OnResetSettings() { if (CGUIDialogYesNo::ShowAndGetInput(10041, 0, 10042, 0)) { for(vector<BaseSettingControlPtr>::iterator it = m_settingControls.begin(); it != m_settingControls.end(); it++) { CSetting *setting = (*it)->GetSetting(); if (setting != NULL) setting->Reset(); } } }
void CGUIDialogSettingsBase::OnResetSettings() { if (CGUIDialogYesNo::ShowAndGetInput(CVariant{10041}, CVariant{10042})) { for(std::vector<BaseSettingControlPtr>::iterator it = m_settingControls.begin(); it != m_settingControls.end(); ++it) { CSetting *setting = (*it)->GetSetting(); if (setting != NULL) setting->Reset(); } } }
bool CGUIWindowSettingsCategory::OnAction(const CAction &action) { switch (action.GetID()) { case ACTION_SETTINGS_RESET: { if (CGUIDialogYesNo::ShowAndGetInput(10041, 0, 10042, 0)) { for(vector<BaseSettingControlPtr>::iterator it = m_settingControls.begin(); it != m_settingControls.end(); it++) { CSetting *setting = (*it)->GetSetting(); if (setting != NULL) setting->Reset(); } } return true; } case ACTION_SETTINGS_LEVEL_CHANGE: { CViewStateSettings::Get().CycleSettingLevel(); CSettings::Get().Save(); // try to keep the current position std::string oldCategory; if (m_iCategory >= 0 && m_iCategory < (int)m_categories.size()) oldCategory = m_categories[m_iCategory]->GetId(); SET_CONTROL_LABEL(CONTRL_BTN_LEVELS, 10036 + (int)CViewStateSettings::Get().GetSettingLevel()); // only re-create the categories, the settings will be created later SetupControls(false); m_iCategory = 0; // try to find the category that was previously selected if (!oldCategory.empty()) { for (int i = 0; i < (int)m_categories.size(); i++) { if (m_categories[i]->GetId() == oldCategory) { m_iCategory = i; break; } } } CreateSettings(); return true; } case ACTION_SHOW_INFO: { int label = -1; int help = -1; int focusedControl = GetFocusedControlID(); // check if we are focusing a category if (focusedControl >= CONTROL_START_BUTTONS && focusedControl < (int)(CONTROL_START_BUTTONS + m_categories.size())) { CSettingCategory *category = m_categories[focusedControl - CONTROL_START_BUTTONS]; label = category->GetLabel(); help = category->GetHelp(); } else if (focusedControl >= CONTROL_START_CONTROL && focusedControl < (int)(CONTROL_START_CONTROL + m_settingControls.size())) { CSetting *setting = GetSettingControl(focusedControl)->GetSetting(); if (setting != NULL) { label = setting->GetLabel(); help = setting->GetHelp(); } } else break; if (help >= 0) { CGUIDialogTextViewer *dialog = (CGUIDialogTextViewer*)g_windowManager.GetWindow(WINDOW_DIALOG_TEXT_VIEWER); if (dialog != NULL) { if (label < 0) label = 10043; // "Help" dialog->SetHeading(g_localizeStrings.Get(label)); dialog->SetText(g_localizeStrings.Get(help)); dialog->DoModal(); } } else CGUIDialogKaiToast::QueueNotification(CGUIDialogKaiToast::Info, g_localizeStrings.Get(10043), g_localizeStrings.Get(10044), 2000U); return true; } default: break; } return CGUIWindow::OnAction(action); }