From a17c38d9425c7eb1cd020be24d7b39a9ae8b5483 Mon Sep 17 00:00:00 2001 From: Kalakoi Date: Thu, 22 May 2025 14:52:34 -0400 Subject: [PATCH] Refactored competition overlay settings to its own window and removed references from home page. --- .../Models/CompetitionOverlaySettingsModel.cs | 53 ++++++++++++++++ osrs-toolbox/Models/HomePageModel.cs | 46 ++------------ .../CompetitionOverlaySettingsViewModel.cs | 63 +++++++++++++++++++ osrs-toolbox/ViewModels/HomePageViewModel.cs | 38 +++-------- .../Views/CompetitionOverlaySettingsView.xaml | 41 ++++++++++++ .../CompetitionOverlaySettingsView.xaml.cs | 35 +++++++++++ osrs-toolbox/Views/HomePageView.xaml | 28 +-------- 7 files changed, 205 insertions(+), 99 deletions(-) create mode 100644 osrs-toolbox/Models/CompetitionOverlaySettingsModel.cs create mode 100644 osrs-toolbox/ViewModels/CompetitionOverlaySettingsViewModel.cs create mode 100644 osrs-toolbox/Views/CompetitionOverlaySettingsView.xaml create mode 100644 osrs-toolbox/Views/CompetitionOverlaySettingsView.xaml.cs diff --git a/osrs-toolbox/Models/CompetitionOverlaySettingsModel.cs b/osrs-toolbox/Models/CompetitionOverlaySettingsModel.cs new file mode 100644 index 0000000..cd04647 --- /dev/null +++ b/osrs-toolbox/Models/CompetitionOverlaySettingsModel.cs @@ -0,0 +1,53 @@ +using System.Windows.Input; + +namespace osrs_toolbox +{ + public abstract class CompetitionOverlaySettingsModel : ModelBase + { + private int _competitionId = -1; + private int _groupId = -1; + private string _playerName = string.Empty; + private bool _hideOtherPlayers = false; + private bool _hideZeroKC = false; + + private ICommand _toggleCompetitionOverlay; + private ICommand _toggleCompetitionOverlayClickThrough; + + public int CompetitionID + { + get { return _competitionId; } + set { SetProperty(ref _competitionId, value, nameof(CompetitionID)); } + } + public int GroupID + { + get { return _groupId; } + set { SetProperty(ref _groupId, value, nameof(GroupID)); } + } + public string PlayerName + { + get { return _playerName; } + set { SetProperty(ref _playerName, value, nameof(PlayerName)); } + } + public bool HideOtherPlayers + { + get { return _hideOtherPlayers; } + set { SetProperty(ref _hideOtherPlayers, value, nameof(HideOtherPlayers)); } + } + public bool HideZeroGained + { + get { return _hideZeroKC; } + set { SetProperty(ref _hideZeroKC, value, nameof(HideZeroGained)); } + } + + public ICommand ToggleCompetitionOverlay + { + get { return _toggleCompetitionOverlay; } + set { SetProperty(ref _toggleCompetitionOverlay, value, nameof(ToggleCompetitionOverlay)); } + } + public ICommand ToggleCompetitionOverlayClickThrough + { + get { return _toggleCompetitionOverlayClickThrough; } + set { SetProperty(ref _toggleCompetitionOverlayClickThrough, value, nameof(ToggleCompetitionOverlayClickThrough)); } + } + } +} diff --git a/osrs-toolbox/Models/HomePageModel.cs b/osrs-toolbox/Models/HomePageModel.cs index 9cc7e9b..d9437f5 100644 --- a/osrs-toolbox/Models/HomePageModel.cs +++ b/osrs-toolbox/Models/HomePageModel.cs @@ -11,50 +11,12 @@ namespace osrs_toolbox { public abstract class HomePageModel : ModelBase { - private int _competitionId = -1; - private int _groupId = -1; - private string _playerName = string.Empty; - private bool _hideOtherPlayers = false; - private bool _hideZeroKC = false; + private ICommand _openCompetitionOverlaySettings; - private ICommand _toggleCompetitionOverlay; - private ICommand _toggleCompetitionOverlayClickThrough; - - public int CompetitionID + public ICommand OpenCompetitionOverlaySettings { - get { return _competitionId; } - set { SetProperty(ref _competitionId, value, nameof(CompetitionID)); } - } - public int GroupID - { - get { return _groupId; } - set { SetProperty(ref _groupId, value, nameof(GroupID)); } - } - public string PlayerName - { - get { return _playerName; } - set { SetProperty(ref _playerName, value, nameof(PlayerName)); } - } - public bool HideOtherPlayers - { - get { return _hideOtherPlayers; } - set { SetProperty(ref _hideOtherPlayers, value, nameof(HideOtherPlayers)); } - } - public bool HideZeroGained - { - get { return _hideZeroKC; } - set { SetProperty(ref _hideZeroKC, value, nameof(HideZeroGained)); } - } - - public ICommand ToggleCompetitionOverlay - { - get { return _toggleCompetitionOverlay; } - set { SetProperty(ref _toggleCompetitionOverlay, value, nameof(ToggleCompetitionOverlay)); } - } - public ICommand ToggleCompetitionOverlayClickThrough - { - get { return _toggleCompetitionOverlayClickThrough; } - set { SetProperty(ref _toggleCompetitionOverlayClickThrough, value, nameof(ToggleCompetitionOverlayClickThrough)); } + get { return _openCompetitionOverlaySettings; } + set { SetProperty(ref _openCompetitionOverlaySettings, value, nameof(OpenCompetitionOverlaySettings)); } } } } diff --git a/osrs-toolbox/ViewModels/CompetitionOverlaySettingsViewModel.cs b/osrs-toolbox/ViewModels/CompetitionOverlaySettingsViewModel.cs new file mode 100644 index 0000000..45567ba --- /dev/null +++ b/osrs-toolbox/ViewModels/CompetitionOverlaySettingsViewModel.cs @@ -0,0 +1,63 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace osrs_toolbox +{ + public class CompetitionOverlaySettingsViewModel : CompetitionOverlaySettingsModel + { + public CompetitionOverlaySettingsViewModel() + { + InitializeVariables(); + InitializeCommands(); + } + + private void InitializeVariables() + { + CompetitionID = Properties.Settings.Default.LastCompetitionID; + GroupID = Properties.Settings.Default.LastGroupID; + PlayerName = Properties.Settings.Default.LastUserName; + HideOtherPlayers = Properties.Settings.Default.LastHideOthers; + HideZeroGained = Properties.Settings.Default.LastHideZeroGained; + } + + private void InitializeCommands() + { + ToggleCompetitionOverlay = new RelayCommand(DoToggleCompetitionOverlay); + ToggleCompetitionOverlayClickThrough = new RelayCommand(DoToggleCompetitionOverlayClickThrough); + } + + private void DoToggleCompetitionOverlay(object obj) + { + if (CompetitionOverlayView.Current != null) + { + CompetitionOverlayView.Current.Close(); + CompetitionOverlayView.Current = null; + } + else + { + CompetitionOverlayView cov = new CompetitionOverlayView(); + (cov.DataContext as CompetitionOverlayViewModel).PlayerName = PlayerName; + (cov.DataContext as CompetitionOverlayViewModel).GroupID = GroupID; + (cov.DataContext as CompetitionOverlayViewModel).CompetitionID = CompetitionID; + (cov.DataContext as CompetitionOverlayViewModel).HideOtherPlayers = HideOtherPlayers; + (cov.DataContext as CompetitionOverlayViewModel).HideZeroGained = HideZeroGained; + cov.Show(); + Properties.Settings.Default.LastUserName = PlayerName; + Properties.Settings.Default.LastGroupID = GroupID; + Properties.Settings.Default.LastCompetitionID = CompetitionID; + Properties.Settings.Default.LastHideOthers = HideOtherPlayers; + Properties.Settings.Default.LastHideZeroGained = HideZeroGained; + Properties.Settings.Default.Save(); + } + } + + private void DoToggleCompetitionOverlayClickThrough(object obj) + { + if (CompetitionOverlayView.Current == null) { return; } + (CompetitionOverlayView.Current as CompetitionOverlayView).MakeClickThrough(); + } + } +} diff --git a/osrs-toolbox/ViewModels/HomePageViewModel.cs b/osrs-toolbox/ViewModels/HomePageViewModel.cs index ce79973..02cce14 100644 --- a/osrs-toolbox/ViewModels/HomePageViewModel.cs +++ b/osrs-toolbox/ViewModels/HomePageViewModel.cs @@ -17,48 +17,26 @@ namespace osrs_toolbox private void InitializeVariables() { - CompetitionID = Properties.Settings.Default.LastCompetitionID; - GroupID = Properties.Settings.Default.LastGroupID; - PlayerName = Properties.Settings.Default.LastUserName; - HideOtherPlayers = Properties.Settings.Default.LastHideOthers; - HideZeroGained = Properties.Settings.Default.LastHideZeroGained; + } private void InitializeCommands() { - ToggleCompetitionOverlay = new RelayCommand(DoToggleCompetitionOverlay); - ToggleCompetitionOverlayClickThrough = new RelayCommand(DoToggleCompetitionOverlayClickThrough); + OpenCompetitionOverlaySettings = new RelayCommand(DoOpenCompetitionOverlaySettings); } - private void DoToggleCompetitionOverlay(object obj) + private void DoOpenCompetitionOverlaySettings(object obj) { - if (CompetitionOverlayView.Current != null) + if (CompetitionOverlaySettingsView.Current != null) { - CompetitionOverlayView.Current.Close(); - CompetitionOverlayView.Current = null; + CompetitionOverlaySettingsView.Current.Close(); + CompetitionOverlaySettingsView.Current = null; } else { - CompetitionOverlayView cov = new CompetitionOverlayView(); - (cov.DataContext as CompetitionOverlayViewModel).PlayerName = PlayerName; - (cov.DataContext as CompetitionOverlayViewModel).GroupID = GroupID; - (cov.DataContext as CompetitionOverlayViewModel).CompetitionID = CompetitionID; - (cov.DataContext as CompetitionOverlayViewModel).HideOtherPlayers = HideOtherPlayers; - (cov.DataContext as CompetitionOverlayViewModel).HideZeroGained = HideZeroGained; - cov.Show(); - Properties.Settings.Default.LastUserName = PlayerName; - Properties.Settings.Default.LastGroupID = GroupID; - Properties.Settings.Default.LastCompetitionID = CompetitionID; - Properties.Settings.Default.LastHideOthers = HideOtherPlayers; - Properties.Settings.Default.LastHideZeroGained = HideZeroGained; - Properties.Settings.Default.Save(); + CompetitionOverlaySettingsView cosv = new CompetitionOverlaySettingsView(); + cosv.Show(); } } - - private void DoToggleCompetitionOverlayClickThrough(object obj) - { - if (CompetitionOverlayView.Current == null) { return; } - (CompetitionOverlayView.Current as CompetitionOverlayView).MakeClickThrough(); - } } } diff --git a/osrs-toolbox/Views/CompetitionOverlaySettingsView.xaml b/osrs-toolbox/Views/CompetitionOverlaySettingsView.xaml new file mode 100644 index 0000000..3e08ac8 --- /dev/null +++ b/osrs-toolbox/Views/CompetitionOverlaySettingsView.xaml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +