Skip to content

Commit

Permalink
Added the possibility to set the default start page (#149)
Browse files Browse the repository at this point in the history
  • Loading branch information
Leo-Peyronnet committed Jul 8, 2022
1 parent 54d6407 commit 864eb4c
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 1 deletion.
2 changes: 1 addition & 1 deletion ColorPicker/App.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ protected override void OnStartup(StartupEventArgs e)
{
int? pageID = (e.Args.Length >= 2 && e.Args[0] == "/page") ? int.Parse(e.Args[1]) : null;

new MainWindow(pageID == null ? null : (Enums.Pages)pageID).Show(); // Launch ColorPicker
new MainWindow(pageID == null ? Global.Settings.StartupPage : (Enums.Pages)pageID).Show(); // Launch ColorPicker
Global.CreateJumpLists(); // Create the jump lists
}
}
Expand Down
6 changes: 6 additions & 0 deletions ColorPicker/Classes/Settings.cs
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,11 @@ public class Settings
/// True if the window is pinned
/// </summary>
public bool? IsPinned { get; set; }

/// <summary>
/// The startup page of ColorPicker.
/// </summary>
public Enums.Pages? StartupPage { get; set; }
}

/// <summary>
Expand Down Expand Up @@ -149,6 +154,7 @@ public static void Load()
CopyKeyboardShortcut = "Shift+C",
SelectKeyboardShortcut = "Shift+S",
IsPinned = false,
StartupPage = Enums.Pages.Picker,
}; // Create a new settings file

Save(); // Save the changes
Expand Down
31 changes: 31 additions & 0 deletions ColorPicker/Pages/SettingsPage.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -86,10 +86,15 @@ private async void InitUI()
{
try
{
if (Global.Settings.StartupPage is null) Global.Settings.StartupPage = Enums.Pages.Picker; // Set default startup page

// Load RadioButtons
DarkRadioBtn.IsChecked = Global.Settings.IsDarkTheme; // Change IsChecked property
LightRadioBtn.IsChecked = !Global.Settings.IsDarkTheme; // Change IsChecked property
SystemRadioBtn.IsChecked = Global.Settings.IsThemeSystem; // Change IsChecked property
PickerPageRadioBtn.IsChecked = Global.Settings.StartupPage == Enums.Pages.Picker; // Change IsChecked property
ConverterPageRadioBtn.IsChecked = Global.Settings.StartupPage == Enums.Pages.Converter; // Change IsChecked property
PalettePageRadioBtn.IsChecked = Global.Settings.StartupPage == Enums.Pages.Palette; // Change IsChecked property

// Borders
if (DarkRadioBtn.IsChecked.Value)
Expand Down Expand Up @@ -176,6 +181,22 @@ private async void InitUI()
Global.Settings.RGBSeparator = ";"; // Set
}

// Load default startup page section
if (PickerPageRadioBtn.IsChecked.Value)
{
PageCheckedBorder = PickerPageBorder; // Set
}
else if (ConverterPageRadioBtn.IsChecked.Value)
{
PageCheckedBorder = ConverterPageBorder; // Set
}
else if (PalettePageRadioBtn.IsChecked.Value)
{
PageCheckedBorder = PalettePageBorder; // Set
}

RefreshStartupBorders();

// Load FavoriteColorComboBox
for (int i = 0; i < Enum.GetValues(typeof(Enums.ColorTypes)).Length; i++)
{
Expand Down Expand Up @@ -480,6 +501,7 @@ private void ResetSettingsLink_Click(object sender, RoutedEventArgs e)
CopyKeyboardShortcut = "Shift+C",
SelectKeyboardShortcut = "Shift+S",
IsPinned = false,
StartupPage = Enums.Pages.Picker,
}; // Create default settings

SettingsManager.Save(); // Save the changes
Expand Down Expand Up @@ -569,20 +591,29 @@ private void PickerPageBorder_MouseLeftButtonUp(object sender, MouseButtonEventA
PageCheckedBorder = PickerPageBorder; // Set
PickerPageRadioBtn.IsChecked = true;
RefreshStartupBorders(); // Refresh

Global.Settings.StartupPage = Enums.Pages.Picker; // Set
SettingsManager.Save(); // Save changes
}

private void ConverterPageBorder_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
PageCheckedBorder = ConverterPageBorder; // Set
ConverterPageRadioBtn.IsChecked = true;
RefreshStartupBorders(); // Refresh

Global.Settings.StartupPage = Enums.Pages.Converter; // Set
SettingsManager.Save(); // Save changes
}

private void PalettePageBorder_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
PageCheckedBorder = PalettePageBorder; // Set
PalettePageRadioBtn.IsChecked = true;
RefreshStartupBorders(); // Refresh

Global.Settings.StartupPage = Enums.Pages.Palette; // Set
SettingsManager.Save(); // Save changes
}

private void EditSelectShortcutBtn_Click(object sender, RoutedEventArgs e)
Expand Down

0 comments on commit 864eb4c

Please sign in to comment.