public DisplayPreferences(string id, Folder folder) { this.Id = new Guid(id); Folder = folder; ArrayList list = new ArrayList(); foreach (ViewType v in Enum.GetValues(typeof(ViewType))) list.Add(ViewTypeNames.GetName(v)); viewType.Options = list; try { this.viewType.Chosen = folder.DisplayPreferences != null ? folder.DisplayPreferences.ViewType ?? Config.Instance.DefaultViewType.ToString() : Config.Instance.DefaultViewType.ToString(); } catch (ArgumentException) { Logging.Logger.ReportError("Invalid view type stored for {0}. Setting to Poster.", folder.Name ?? folder.GetType().Name); viewType.Chosen = Localization.LocalizedStrings.Instance.GetString("PosterDispPref"); } //set our dynamic choice options this.sortDict = folder.SortOrderOptions; this.sortOrders.Options = sortDict.Keys.ToArray(); this.indexDict = folder.IndexByOptions; this.indexBy.Options = folder.IndexByOptions.Keys.ToArray(); verticalScroll = new BooleanChoice {Value = folder.DisplayPreferences != null && folder.DisplayPreferences.ScrollDirection == ScrollDirection.Vertical}; useBanner = new BooleanChoice(); showLabels = new BooleanChoice(); useCoverflow = new BooleanChoice {Value = false}; useBackdrop = new BooleanChoice {Value = folder.DisplayPreferences != null ? folder.DisplayPreferences.ShowBackdrop : Config.Instance.ShowBackdrop}; if (folder.DisplayPreferences != null) { var width = folder.DisplayPreferences.PrimaryImageWidth > 0 ? folder.DisplayPreferences.PrimaryImageWidth : Config.Instance.DefaultPosterSize.Width; var height = folder.DisplayPreferences.PrimaryImageHeight > 0 ? folder.DisplayPreferences.PrimaryImageHeight : Config.Instance.DefaultPosterSize.Height; customParms = folder.DisplayPreferences.CustomPrefs ?? new Dictionary<string, string>(); thumbConstraint = new SizeRef(new Size(width, height)); useBanner.Value = (customParms.GetValueOrDefault("MBCUseBanner", "false") == "true"); showLabels.Value = (customParms.GetValueOrDefault("MBCShowLabels", "false") == "true"); try { if (Config.Instance.RememberIndexing) indexBy.Chosen = folder.DisplayPreferences.IndexBy; } catch { indexBy.Chosen = Localization.LocalizedStrings.Instance.GetString("NoneDispPref"); } } try { sortOrders.Chosen = folder.DisplayPreferences != null ? folder.DisplayPreferences.SortBy ?? "Name" : "Name"; } catch (ArgumentException) { Logging.Logger.ReportError("Invalid sort by stored for {0}. Setting to Name.", folder.Name ?? folder.GetType().Name); sortOrders.Chosen = Localization.LocalizedStrings.Instance.GetString("NameDispPref"); } ListenForChanges(); }
public DisplayPreferences(string id, Folder folder) { this.Id = new Guid(id); Folder = folder; ArrayList list = new ArrayList(); foreach (ViewType v in Enum.GetValues(typeof(ViewType))) { list.Add(ViewTypeNames.GetName(v)); } viewType.Options = list; try { this.viewType.Chosen = folder.DisplayPreferences != null ? folder.DisplayPreferences.ViewType ?? Config.Instance.DefaultViewType.ToString() : Config.Instance.DefaultViewType.ToString(); } catch (ArgumentException) { Logging.Logger.ReportError("Invalid view type stored for {0}. Setting to Poster.", folder.Name ?? folder.GetType().Name); viewType.Chosen = Localization.LocalizedStrings.Instance.GetString("PosterDispPref"); } //set our dynamic choice options this.sortDict = folder.SortOrderOptions; this.sortOrders.Options = sortDict.Keys.ToArray(); this.indexDict = folder.IndexByOptions; this.indexBy.Options = folder.IndexByOptions.Keys.ToArray(); verticalScroll = new BooleanChoice { Value = folder.DisplayPreferences != null && folder.DisplayPreferences.ScrollDirection == ScrollDirection.Vertical }; useBanner = new BooleanChoice(); showLabels = new BooleanChoice(); useCoverflow = new BooleanChoice { Value = false }; useBackdrop = new BooleanChoice { Value = folder.DisplayPreferences != null ? folder.DisplayPreferences.ShowBackdrop : Config.Instance.ShowBackdrop }; if (folder.DisplayPreferences != null) { var width = folder.DisplayPreferences.PrimaryImageWidth > 0 ? folder.DisplayPreferences.PrimaryImageWidth : Config.Instance.DefaultPosterSize.Width; var height = folder.DisplayPreferences.PrimaryImageHeight > 0 ? folder.DisplayPreferences.PrimaryImageHeight : Config.Instance.DefaultPosterSize.Height; customParms = folder.DisplayPreferences.CustomPrefs ?? new Dictionary <string, string>(); thumbConstraint = new SizeRef(new Size(width, height)); useBanner.Value = (customParms.GetValueOrDefault("MBCUseBanner", "false") == "true"); showLabels.Value = (customParms.GetValueOrDefault("MBCShowLabels", "false") == "true"); try { if (Config.Instance.RememberIndexing) { indexBy.Chosen = folder.DisplayPreferences.IndexBy; } } catch { indexBy.Chosen = Localization.LocalizedStrings.Instance.GetString("NoneDispPref"); } } try { sortOrders.Chosen = folder.DisplayPreferences != null ? folder.DisplayPreferences.SortBy ?? "Name" : "Name"; } catch (ArgumentException) { Logging.Logger.ReportError("Invalid sort by stored for {0}. Setting to first available.", folder.Name ?? folder.GetType().Name); sortOrders.Chosen = folder.SortOrderOptions.Any() ? folder.SortOrderOptions.FirstOrDefault().Key : Localization.LocalizedStrings.Instance.GetString("NameDispPref"); } ListenForChanges(); }