public override bool Equals(object obj) { DateSetting _that = obj as DateSetting; if (_that == null) { return(false); } return(string.Equals(this.Format, _that.Format, StringComparison.Ordinal)); }
public SettingsModel(Sidebar sidebar) { DockEdgeItems = new DockItem[2] { new DockItem() { Text = Resources.SettingsDockLeft, Value = DockEdge.Left }, new DockItem() { Text = Resources.SettingsDockRight, Value = DockEdge.Right } }; DockEdge = Framework.Settings.Instance.DockEdge; Monitor[] _monitors = Monitor.GetMonitors(); ScreenItems = _monitors.Select((s, i) => new ScreenItem() { Index = i, Text = string.Format("#{0}", i + 1) }).ToArray(); if (Framework.Settings.Instance.ScreenIndex < _monitors.Length) { ScreenIndex = Framework.Settings.Instance.ScreenIndex; } else { ScreenIndex = _monitors.Where(s => s.IsPrimary).Select((s, i) => i).Single(); } CultureItems = Utilities.Culture.GetAll(); Culture = Framework.Settings.Instance.Culture; UIScale = Framework.Settings.Instance.UIScale; XOffset = Framework.Settings.Instance.XOffset; YOffset = Framework.Settings.Instance.YOffset; PollingInterval = Framework.Settings.Instance.PollingInterval; UseAppBar = Framework.Settings.Instance.UseAppBar; AlwaysTop = Framework.Settings.Instance.AlwaysTop; ToolbarMode = Framework.Settings.Instance.ToolbarMode; ClickThrough = Framework.Settings.Instance.ClickThrough; ShowTrayIcon = Framework.Settings.Instance.ShowTrayIcon; AutoUpdate = Framework.Settings.Instance.AutoUpdate; RunAtStartup = Framework.Settings.Instance.RunAtStartup; SidebarWidth = Framework.Settings.Instance.SidebarWidth; AutoBGColor = Framework.Settings.Instance.AutoBGColor; BGColor = Framework.Settings.Instance.BGColor; BGOpacity = Framework.Settings.Instance.BGOpacity; TextAlignItems = new TextAlignItem[2] { new TextAlignItem() { Text = Resources.SettingsTextAlignLeft, Value = TextAlign.Left }, new TextAlignItem() { Text = Resources.SettingsTextAlignRight, Value = TextAlign.Right } }; TextAlign = Framework.Settings.Instance.TextAlign; FontSettingItems = new FontSetting[5] { FontSetting.x10, FontSetting.x12, FontSetting.x14, FontSetting.x16, FontSetting.x18 }; FontSetting = Framework.Settings.Instance.FontSetting; FontColor = Framework.Settings.Instance.FontColor; AlertFontColor = Framework.Settings.Instance.AlertFontColor; AlertBlink = Framework.Settings.Instance.AlertBlink; DateSettingItems = new DateSetting[4] { DateSetting.Disabled, DateSetting.Short, DateSetting.Normal, DateSetting.Long }; DateSetting = Framework.Settings.Instance.DateSetting; CollapseMenuBar = Framework.Settings.Instance.CollapseMenuBar; InitiallyHidden = Framework.Settings.Instance.InitiallyHidden; ShowClock = Framework.Settings.Instance.ShowClock; Clock24HR = Framework.Settings.Instance.Clock24HR; ObservableCollection<MonitorConfig> _config = new ObservableCollection<MonitorConfig>(Framework.Settings.Instance.MonitorConfig.Select(c => c.Clone()).OrderByDescending(c => c.Order)); if (sidebar.Ready) { foreach (MonitorConfig _record in _config) { _record.HardwareOC = new ObservableCollection<HardwareConfig>( from hw in sidebar.Model.MonitorManager.GetHardware(_record.Type) join config in _record.Hardware on hw.ID equals config.ID into merged from newhw in merged.DefaultIfEmpty(hw).Select(newhw => { newhw.ActualName = hw.ActualName; if (string.IsNullOrEmpty(newhw.Name)) { newhw.Name = hw.ActualName; } return newhw; }) orderby newhw.Order descending, newhw.Name ascending select newhw ); } } MonitorConfig = _config; if (Framework.Settings.Instance.Hotkeys != null) { ToggleKey = Framework.Settings.Instance.Hotkeys.FirstOrDefault(k => k.Action == Hotkey.KeyAction.Toggle); ShowKey = Framework.Settings.Instance.Hotkeys.FirstOrDefault(k => k.Action == Hotkey.KeyAction.Show); HideKey = Framework.Settings.Instance.Hotkeys.FirstOrDefault(k => k.Action == Hotkey.KeyAction.Hide); ReloadKey = Framework.Settings.Instance.Hotkeys.FirstOrDefault(k => k.Action == Hotkey.KeyAction.Reload); CloseKey = Framework.Settings.Instance.Hotkeys.FirstOrDefault(k => k.Action == Hotkey.KeyAction.Close); CycleEdgeKey = Framework.Settings.Instance.Hotkeys.FirstOrDefault(k => k.Action == Hotkey.KeyAction.CycleEdge); CycleScreenKey = Framework.Settings.Instance.Hotkeys.FirstOrDefault(k => k.Action == Hotkey.KeyAction.CycleScreen); ReserveSpaceKey = Framework.Settings.Instance.Hotkeys.FirstOrDefault(k => k.Action == Hotkey.KeyAction.ReserveSpace); } IsChanged = false; }