void CGUIDialogAddonInfo::OnChangeLog() { CGUIDialogTextViewer* pDlgInfo = (CGUIDialogTextViewer*)g_windowManager.GetWindow(WINDOW_DIALOG_TEXT_VIEWER); CStdString name; if (m_addon) name = m_addon->Name(); else if (m_localAddon) name = m_localAddon->Name(); pDlgInfo->SetHeading(g_localizeStrings.Get(24054)+" - "+name); if (m_item->GetProperty("Addon.Changelog").empty()) { pDlgInfo->SetText(g_localizeStrings.Get(13413)); CFileItemList items; if (m_localAddon && !m_item->GetProperty("Addon.UpdateAvail").asBoolean()) { items.Add(CFileItemPtr(new CFileItem(m_localAddon->ChangeLog(),false))); } else items.Add(CFileItemPtr(new CFileItem(m_addon->ChangeLog(),false))); items[0]->Select(true); m_jobid = CJobManager::GetInstance().AddJob( new CFileOperationJob(CFileOperationJob::ActionCopy,items, "special://temp/"),this); } else pDlgInfo->SetText(m_item->GetProperty("Addon.Changelog").asString()); m_changelog = true; pDlgInfo->DoModal(); m_changelog = false; }
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); }