Skip to content

Commit 5e03c0a

Browse files
committed
Loading expanders state from settings and saving when app closes
1 parent 0b6699d commit 5e03c0a

File tree

4 files changed

+45
-9
lines changed

4 files changed

+45
-9
lines changed

src/CodeSnip/MainViewModel.cs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,15 @@ public partial class MainViewModel : ObservableObject
7777
[ObservableProperty]
7878
private double _windowHeight = 600;
7979

80+
[ObservableProperty]
81+
private bool _isSearchExpanded = false;
82+
83+
[ObservableProperty]
84+
private bool _isSnippetsExpanded = true;
85+
86+
[ObservableProperty]
87+
private bool _isSnippetMetadataExpanded = true;
88+
8089
[ObservableProperty]
8190
private string _filterText = string.Empty;
8291

@@ -123,6 +132,9 @@ public MainViewModel(IFlyoutService flyoutService)
123132
WindowY = settingsService.WindowY;
124133
WindowWidth = settingsService.WindowWidth;
125134
WindowHeight = settingsService.WindowHeight;
135+
IsSearchExpanded = settingsService.IsSearchExpanded;
136+
IsSnippetsExpanded = settingsService.IsSnippetsExpanded;
137+
IsSnippetMetadataExpanded = settingsService.IsSnippetMetadataExpanded;
126138
opt.EnableEmailHyperlinks = settingsService.EnableEmailLinks;
127139
opt.EnableHyperlinks = settingsService.EnableHyperinks;
128140
opt.ConvertTabsToSpaces = settingsService.TabToSpaces;
@@ -612,6 +624,9 @@ private void SaveSettings()
612624
settingsService.WindowHeight = (int)WindowHeight;
613625
settingsService.PanelLength = (int)SplitViewOpenPaneLength;
614626
settingsService.LastSnippet = SaveSelectedSnippetState();
627+
settingsService.IsSearchExpanded = IsSearchExpanded;
628+
settingsService.IsSnippetsExpanded = IsSnippetsExpanded;
629+
settingsService.IsSnippetMetadataExpanded = IsSnippetMetadataExpanded;
615630
var theme = ThemeManager.Current.DetectTheme(Application.Current);
616631
if (theme != null)
617632
{

src/CodeSnip/MainWindow.xaml

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -54,17 +54,17 @@
5454
<KeyBinding Key="F1" Command="{Binding RelativeSource={RelativeSource AncestorType=Window}, Path=OpenAboutCommand}" />
5555
<!-- Ctrl + S : Save snippet code -->
5656
<KeyBinding Key="S" Modifiers="Ctrl" Command="{Binding SaveCodeCommand}"/>
57-
<!-- Ctrl + A : Add new snippet -->
57+
<!-- Ctrll+Shift + A : Add new snippet -->
5858
<KeyBinding Key="A" Modifiers="Ctrl+Shift" Command="{Binding AddSnippetCommand}"/>
59-
<!-- Ctrl + E : Edit current cnippet metadata -->
59+
<!-- Ctrll+Shift + E : Edit current cnippet metadata -->
6060
<KeyBinding Key="E" Modifiers="Ctrl+Shift" Command="{Binding EditSnippetCommand}"/>
61-
<!-- Ctrl + D : Delete current snippet -->
61+
<!-- Ctrll+Shift + D : Delete current snippet -->
6262
<KeyBinding Key="D" Modifiers="Ctrl+Shift" Command="{Binding DeleteSnippetCommand}"/>
63-
<!-- Ctrl + L : Open Language/Category management -->
63+
<!-- Ctrll+Shift + L : Open Language/Category management -->
6464
<KeyBinding Key="L" Modifiers="Ctrl+Shift" Command="{Binding OpenLanguageCategoryCommand}"/>
65-
<!-- Ctrl + P : Open application settings -->
65+
<!-- Ctrll+Shift + P : Open application settings -->
6666
<KeyBinding Key="P" Modifiers="Ctrl+Shift" Command="{Binding OpenSettingsCommand}"/>
67-
<!-- Ctrl + R : Open Code Runner window -->
67+
<!-- Ctrll+Shift + R : Open Code Runner window -->
6868
<KeyBinding Key="R" Modifiers="Ctrl+Shift" Command="{Binding OpenCodeRunnerViewCommand}"/>
6969
<!-- Ctrl + K : Toggle Single-Line Comment -->
7070
<KeyBinding Key="K" Modifiers="Ctrl"
@@ -110,7 +110,8 @@
110110
<RowDefinition Height="*"/>
111111
<!-- Snippets expander -->
112112
</Grid.RowDefinitions>
113-
<Expander Header="Search" Grid.Row="0" IsExpanded="False" Margin="0,0,2,3">
113+
<Expander Header="Search" Grid.Row="0" Margin="0,0,2,3"
114+
IsExpanded="{Binding IsSearchExpanded, Mode=TwoWay}">
114115
<Grid Margin="0,10,0,0" VerticalAlignment="Center">
115116
<Grid.ColumnDefinitions>
116117
<ColumnDefinition Width="Auto" />
@@ -134,7 +135,8 @@
134135
Text="{Binding FilterText, UpdateSourceTrigger=PropertyChanged}" />
135136
</Grid>
136137
</Expander>
137-
<Expander Header="Snippets" Grid.Row="1" IsExpanded="True" Margin="0,0,2,0">
138+
<Expander Header="Snippets" Grid.Row="1" Margin="0,0,2,0"
139+
IsExpanded="{Binding IsSnippetsExpanded, Mode=TwoWay}">
138140
<Grid>
139141
<Grid.RowDefinitions>
140142
<RowDefinition Height="*"/>
@@ -189,7 +191,8 @@
189191
</TreeView.ItemTemplate>
190192
</TreeView>
191193
<!-- Kontrole ispod TreeView-a -->
192-
<Expander Header="Snippet Metadata" Grid.Row="1" IsExpanded="False" Margin="0,10,0,0">
194+
<Expander Header="Snippet Metadata" Grid.Row="1" Margin="0,10,0,0"
195+
IsExpanded="{Binding IsSnippetMetadataExpanded, Mode=TwoWay}">
193196
<Grid>
194197
<Grid.RowDefinitions>
195198
<RowDefinition Height="Auto"/>

src/CodeSnip/Services/SettingsService.cs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,21 @@ public int PanelLength
5757
get => _settings.MainWindow.PanelLength;
5858
set => _settings.MainWindow.PanelLength = value;
5959
}
60+
public bool IsSearchExpanded
61+
{
62+
get => _settings.MainWindow.IsSearchExpanded;
63+
set => _settings.MainWindow.IsSearchExpanded = value;
64+
}
65+
public bool IsSnippetsExpanded
66+
{
67+
get => _settings.MainWindow.IsSnippetsExpanded;
68+
set => _settings.MainWindow.IsSnippetsExpanded = value;
69+
}
70+
public bool IsSnippetMetadataExpanded
71+
{
72+
get => _settings.MainWindow.IsSnippetMetadataExpanded;
73+
set => _settings.MainWindow.IsSnippetMetadataExpanded = value;
74+
}
6075

6176
public bool TabToSpaces
6277
{

src/CodeSnip/Settnigs.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@ public class MainWindowSettings
1212
public int PanelLength { get; set; } = 350;
1313
public bool ShowEmptyLanguages { get; set; } = false;
1414
public bool ShowEmptyCategories { get; set; } = false;
15+
public bool IsSearchExpanded { get; set; } = false;
16+
public bool IsSnippetsExpanded { get; set; } = true;
17+
public bool IsSnippetMetadataExpanded { get; set; } = false;
1518
}
1619

1720
public class EditorSettings

0 commit comments

Comments
 (0)