private bool CheckMediaForSubtitlesOnOpen(PluginHandler properHandler, bool questionsOnly) { bool resultContinue = true; if (properHandler == null) return resultContinue; if (!_checkMediaForSubtitlesOnOpenDone) { _subtitlesExistForCurrentMedia = SubCentralUtils.MediaHasSubtitles(properHandler.MediaDetail.Files, true, properHandler.GetEmbeddedSubtitles(), false, ref _subtitleFilesForCurrentMedia); _mediaAvailable = FileUtils.mediaIsAvailable(properHandler.MediaDetail.Files); _checkMediaForSubtitlesOnOpenDone = true; } if (_subtitlesExistForCurrentMedia && !properHandler.GetHasSubtitles(false) && properHandler.Type == PluginHandlerType.BASIC) { AskAndTrueHasSubtitles(properHandler, Localization.MediaWrongMarkNoSubtitles, false); } else if (!questionsOnly && _subtitlesExistForCurrentMedia) { //GUIUtils.ShowNotifyDialog(Localization.Warning, string.Format(Localization.MediaHasSubtitles, CurrentHandler == null ? Localization.ExternalPlugin : CurrentHandler.PluginName)); GUIUtils.ShowNotifyDialog(Localization.Warning, Localization.MediaHasSubtitles); } else if (!_subtitlesExistForCurrentMedia && properHandler.GetHasSubtitles(false)) { AskAndFalseHasSubtitles(properHandler, Localization.MediaWrongMarkHasSubtitles, false); resultContinue = false; } return resultContinue; }
private void AskAndFalseHasSubtitles(PluginHandler properHandler, string baseText, bool defaultYes) { string question = baseText; if (!_mediaAvailable && properHandler.GetEmbeddedSubtitles() < 0) question += "\n" + Localization.MediaMaybeInternalSubtitles; if (GUIUtils.ShowYesNoDialog(Localization.Warning, string.Format(question, properHandler == null ? Localization.ExternalPlugin : properHandler.PluginName), defaultYes)) { foreach (FileInfo fi in properHandler.MediaDetail.Files) { properHandler.SetHasSubtitles(fi.FullName, false); } } _subtitlesExistForCurrentMedia = false; }