Added server monitor window startup state to global settings.

This commit is contained in:
Brett Hewitson 2022-01-25 12:53:13 +10:00
parent 09938ce932
commit bcb7dce84e
18 changed files with 122 additions and 32 deletions

View file

@ -876,6 +876,9 @@
<setting name="ServerStartMinimized" serializeAs="String"> <setting name="ServerStartMinimized" serializeAs="String">
<value>False</value> <value>False</value>
</setting> </setting>
<setting name="ServerMonitorWindow_WindowState" serializeAs="String">
<value>Normal</value>
</setting>
</ServerManagerTool.Config> </ServerManagerTool.Config>
</userSettings> </userSettings>
</configuration> </configuration>

View file

@ -3102,5 +3102,17 @@ namespace ServerManagerTool {
this["ServerStartMinimized"] = value; this["ServerStartMinimized"] = value;
} }
} }
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("Normal")]
public global::System.Windows.WindowState ServerMonitorWindow_WindowState {
get {
return ((global::System.Windows.WindowState)(this["ServerMonitorWindow_WindowState"]));
}
set {
this["ServerMonitorWindow_WindowState"] = value;
}
}
} }
} }

View file

@ -854,5 +854,8 @@
<Setting Name="ServerStartMinimized" Type="System.Boolean" Scope="User"> <Setting Name="ServerStartMinimized" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value> <Value Profile="(Default)">False</Value>
</Setting> </Setting>
<Setting Name="ServerMonitorWindow_WindowState" Type="System.Windows.WindowState" Scope="User">
<Value Profile="(Default)">Normal</Value>
</Setting>
</Settings> </Settings>
</SettingsFile> </SettingsFile>

View file

@ -491,6 +491,7 @@
<sys:String x:Key="GlobalSettings_RunAsAdministratorLabel">Enable Run as Administrator Prompt on Startup</sys:String> <sys:String x:Key="GlobalSettings_RunAsAdministratorLabel">Enable Run as Administrator Prompt on Startup</sys:String>
<sys:String x:Key="GlobalSettings_CheckIfServerManagerRunningOnStartupLabel">Check if Server Manager Running on Startup</sys:String> <sys:String x:Key="GlobalSettings_CheckIfServerManagerRunningOnStartupLabel">Check if Server Manager Running on Startup</sys:String>
<sys:String x:Key="GlobalSettings_StartModeLabel">Main Window Start Mode:</sys:String> <sys:String x:Key="GlobalSettings_StartModeLabel">Main Window Start Mode:</sys:String>
<sys:String x:Key="GlobalSettings_StartModeServerMonitorLabel">Server Monitor Window Start Mode:</sys:String>
<sys:String x:Key="GlobalSettings_MinimizeToTrayLabel">Minimize To Tray</sys:String> <sys:String x:Key="GlobalSettings_MinimizeToTrayLabel">Minimize To Tray</sys:String>
<sys:String x:Key="GlobalSettings_ManageFirewallLabel">Manage firewall settings automatically</sys:String> <sys:String x:Key="GlobalSettings_ManageFirewallLabel">Manage firewall settings automatically</sys:String>
<sys:String x:Key="GlobalSettings_ManagePublicIPLabel">Manage Public IP automatically</sys:String> <sys:String x:Key="GlobalSettings_ManagePublicIPLabel">Manage Public IP automatically</sys:String>

View file

@ -64,20 +64,23 @@
<CheckBox Grid.Row="1" Grid.Column="2" Grid.ColumnSpan="2" Margin="5" Content="{DynamicResource GlobalSettings_CheckIfServerManagerRunningOnStartupLabel}" IsChecked="{Binding Config.CheckIfServerManagerRunningOnStartup, Mode=TwoWay}" HorizontalAlignment="Left"/> <CheckBox Grid.Row="1" Grid.Column="2" Grid.ColumnSpan="2" Margin="5" Content="{DynamicResource GlobalSettings_CheckIfServerManagerRunningOnStartupLabel}" IsChecked="{Binding Config.CheckIfServerManagerRunningOnStartup, Mode=TwoWay}" HorizontalAlignment="Left"/>
<Label Grid.Row="2" Grid.Column="0" Margin="1" Content="{DynamicResource GlobalSettings_StartModeLabel}" VerticalAlignment="Center"/> <Label Grid.Row="2" Grid.Column="0" Margin="1" Content="{DynamicResource GlobalSettings_StartModeLabel}" VerticalAlignment="Center"/>
<ComboBox Name="WindowStateComboBox" Grid.Row="2" Grid.Column="1" Margin="5" ItemsSource="{Binding ElementName=GlobalSettings, Path=WindowStates}" SelectedValue="{Binding Config.MainWindow_WindowState}" SelectedValuePath="ValueMember" DisplayMemberPath="DisplayMember" PreviewMouseWheel="ComboBox_PreviewMouseWheel"/> <ComboBox Name="WindowStateMainWindowComboBox" Grid.Row="2" Grid.Column="1" Margin="5" ItemsSource="{Binding ElementName=GlobalSettings, Path=WindowStates}" SelectedValue="{Binding Config.MainWindow_WindowState}" SelectedValuePath="ValueMember" DisplayMemberPath="DisplayMember" PreviewMouseWheel="ComboBox_PreviewMouseWheel"/>
<CheckBox Grid.Row="2" Grid.Column="2" Grid.ColumnSpan="2" Margin="5" Content="{DynamicResource GlobalSettings_MinimizeToTrayLabel}" IsChecked="{Binding Config.MainWindow_MinimizeToTray, Mode=TwoWay}" HorizontalAlignment="Left" VerticalAlignment="Center"/> <CheckBox Grid.Row="2" Grid.Column="2" Grid.ColumnSpan="2" Margin="5" Content="{DynamicResource GlobalSettings_MinimizeToTrayLabel}" IsChecked="{Binding Config.MainWindow_MinimizeToTray, Mode=TwoWay}" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<CheckBox Grid.Row="3" Grid.Column="0" Grid.ColumnSpan="2" Margin="5" Content="{DynamicResource GlobalSettings_ManageFirewallLabel}" IsChecked="{Binding Config.ManageFirewallAutomatically, Mode=TwoWay}" HorizontalAlignment="Left"/> <Label Grid.Row="3" Grid.Column="0" Margin="1" Content="{DynamicResource GlobalSettings_StartModeServerMonitorLabel}" VerticalAlignment="Center"/>
<CheckBox Grid.Row="3" Grid.Column="2" Grid.ColumnSpan="2" Margin="5" Content="{DynamicResource GlobalSettings_ManagePublicIPLabel}" IsChecked="{Binding Config.ManagePublicIPAutomatically, Mode=TwoWay}" HorizontalAlignment="Left"/> <ComboBox Name="WindowStateServerMonitorComboBox" Grid.Row="3" Grid.Column="1" Margin="5" ItemsSource="{Binding ElementName=GlobalSettings, Path=WindowStates}" SelectedValue="{Binding Config.ServerMonitorWindow_WindowState}" SelectedValuePath="ValueMember" DisplayMemberPath="DisplayMember" PreviewMouseWheel="ComboBox_PreviewMouseWheel"/>
<Label Grid.Row="4" Grid.Column="0" Margin="1" Content="{DynamicResource GlobalSettings_DataDirectoryLabel}" VerticalAlignment="Center"/> <CheckBox Grid.Row="4" Grid.Column="0" Grid.ColumnSpan="2" Margin="5" Content="{DynamicResource GlobalSettings_ManageFirewallLabel}" IsChecked="{Binding Config.ManageFirewallAutomatically, Mode=TwoWay}" HorizontalAlignment="Left"/>
<TextBox Grid.Row="4" Grid.Column="1" Grid.ColumnSpan="2" Margin="1" Text="{Binding Config.DataDir, Mode=TwoWay}" IsReadOnly="True" IsReadOnlyCaretVisible="True" VerticalContentAlignment="Center" /> <CheckBox Grid.Row="4" Grid.Column="2" Grid.ColumnSpan="2" Margin="5" Content="{DynamicResource GlobalSettings_ManagePublicIPLabel}" IsChecked="{Binding Config.ManagePublicIPAutomatically, Mode=TwoWay}" HorizontalAlignment="Left"/>
<Button Grid.Row="4" Grid.Column="3" Grid.ColumnSpan="2" Margin="5,1,0,1" VerticalAlignment="Center" HorizontalAlignment="Right" Content="{DynamicResource DataDirectoryButtonContent}" Click="SetDataDir_Click" Visibility="Hidden" />
<Button Grid.Row="4" Grid.Column="3" Grid.ColumnSpan="2" Margin="5,1,0,1" VerticalAlignment="Center" HorizontalAlignment="Right" Content="{DynamicResource DataDirectoryResetButtonContent}" Click="ResetDataDir_Click" />
<Label Grid.Row="5" Grid.Column="0" Margin="1" Content="{DynamicResource GlobalSettings_BackupDirectoryLabel}" VerticalAlignment="Center"/> <Label Grid.Row="5" Grid.Column="0" Margin="1" Content="{DynamicResource GlobalSettings_DataDirectoryLabel}" VerticalAlignment="Center"/>
<TextBox Grid.Row="5" Grid.Column="1" Grid.ColumnSpan="2" Margin="1" Text="{Binding Config.BackupPath, Mode=TwoWay}" IsReadOnly="True" IsReadOnlyCaretVisible="True" VerticalContentAlignment="Center"/> <TextBox Grid.Row="5" Grid.Column="1" Grid.ColumnSpan="2" Margin="1" Text="{Binding Config.DataDir, Mode=TwoWay}" IsReadOnly="True" IsReadOnlyCaretVisible="True" VerticalContentAlignment="Center" />
<StackPanel Grid.Row="5" Grid.Column="3" Orientation="Horizontal" HorizontalAlignment="Right"> <Button Grid.Row="5" Grid.Column="3" Grid.ColumnSpan="2" Margin="5,1,0,1" VerticalAlignment="Center" HorizontalAlignment="Right" Content="{DynamicResource DataDirectoryButtonContent}" Click="SetDataDir_Click" Visibility="Hidden" />
<Button Grid.Row="5" Grid.Column="3" Grid.ColumnSpan="2" Margin="5,1,0,1" VerticalAlignment="Center" HorizontalAlignment="Right" Content="{DynamicResource DataDirectoryResetButtonContent}" Click="ResetDataDir_Click" />
<Label Grid.Row="6" Grid.Column="0" Margin="1" Content="{DynamicResource GlobalSettings_BackupDirectoryLabel}" VerticalAlignment="Center"/>
<TextBox Grid.Row="6" Grid.Column="1" Grid.ColumnSpan="2" Margin="1" Text="{Binding Config.BackupPath, Mode=TwoWay}" IsReadOnly="True" IsReadOnlyCaretVisible="True" VerticalContentAlignment="Center"/>
<StackPanel Grid.Row="6" Grid.Column="3" Orientation="Horizontal" HorizontalAlignment="Right">
<Button Margin="5,1,0,1" VerticalAlignment="Center" Content="{DynamicResource BackupDirectoryButtonContent}" Click="SetBackupDir_Click"/> <Button Margin="5,1,0,1" VerticalAlignment="Center" Content="{DynamicResource BackupDirectoryButtonContent}" Click="SetBackupDir_Click"/>
<Button Margin="5,1,0,1" VerticalAlignment="Center" Content="{DynamicResource ClearButtonContent}" Click="ClearBackupDir_Click"/> <Button Margin="5,1,0,1" VerticalAlignment="Center" Content="{DynamicResource ClearButtonContent}" Click="ClearBackupDir_Click"/>
</StackPanel> </StackPanel>

View file

@ -48,7 +48,8 @@ namespace ServerManagerTool
InitializeComponent(); InitializeComponent();
WindowUtils.RemoveDefaultResourceDictionary(this, Config.Default.DefaultGlobalizationFile); WindowUtils.RemoveDefaultResourceDictionary(this, Config.Default.DefaultGlobalizationFile);
PopulateWindowsStatesComboBox(); PopulateWindowsStatesMainWindowComboBox();
PopulateWindowsStatesServerMonitorWindowComboBox();
PopulateDiscordBotLogLevelsComboBox(); PopulateDiscordBotLogLevelsComboBox();
DiscordBotWhitelist = new List<DiscordBotWhitelistItem>(); DiscordBotWhitelist = new List<DiscordBotWhitelistItem>();
@ -402,7 +403,8 @@ namespace ServerManagerTool
{ {
Config.CultureName = AvailableLanguages.Instance.SelectedLanguage; Config.CultureName = AvailableLanguages.Instance.SelectedLanguage;
PopulateWindowsStatesComboBox(); PopulateWindowsStatesMainWindowComboBox();
PopulateWindowsStatesServerMonitorWindowComboBox();
App.Instance.OnResourceDictionaryChanged(Config.CultureName); App.Instance.OnResourceDictionaryChanged(Config.CultureName);
} }
@ -489,9 +491,9 @@ namespace ServerManagerTool
} }
} }
private void PopulateWindowsStatesComboBox() private void PopulateWindowsStatesMainWindowComboBox()
{ {
var selectedValue = this.WindowStateComboBox?.SelectedValue ?? Config.MainWindow_WindowState; var selectedValue = this.WindowStateMainWindowComboBox?.SelectedValue ?? Config.MainWindow_WindowState;
var comboBoxList = new ComboBoxItemList(); var comboBoxList = new ComboBoxItemList();
foreach (WindowState windowState in Enum.GetValues(typeof(WindowState))) foreach (WindowState windowState in Enum.GetValues(typeof(WindowState)))
@ -501,9 +503,27 @@ namespace ServerManagerTool
} }
this.WindowStates = comboBoxList; this.WindowStates = comboBoxList;
if (this.WindowStateComboBox != null) if (this.WindowStateMainWindowComboBox != null)
{ {
this.WindowStateComboBox.SelectedValue = selectedValue; this.WindowStateMainWindowComboBox.SelectedValue = selectedValue;
}
}
private void PopulateWindowsStatesServerMonitorWindowComboBox()
{
var selectedValue = this.WindowStateServerMonitorComboBox?.SelectedValue ?? Config.ServerMonitorWindow_WindowState;
var comboBoxList = new ComboBoxItemList();
foreach (WindowState windowState in Enum.GetValues(typeof(WindowState)))
{
var displayMember = _globalizer.GetResourceString($"WindowState_{windowState}") ?? windowState.ToString();
comboBoxList.Add(new Common.Model.ComboBoxItem(windowState.ToString(), displayMember));
}
this.WindowStates = comboBoxList;
if (this.WindowStateServerMonitorComboBox != null)
{
this.WindowStateServerMonitorComboBox.SelectedValue = selectedValue;
} }
} }

View file

@ -20,6 +20,7 @@
<br/> <br/>
<ul> <ul>
<li>Added prefix launcher option to launcher arguments.</li> <li>Added prefix launcher option to launcher arguments.</li>
<li>Added server monitor window startup state to global settings.</li>
</ul> </ul>
</p> </p>
</div> </div>

View file

@ -20,6 +20,7 @@
<br/> <br/>
<ul> <ul>
<li>Added prefix launcher option to launcher arguments.</li> <li>Added prefix launcher option to launcher arguments.</li>
<li>Added server monitor window startup state to global settings.</li>
</ul> </ul>
</p> </p>
</div> </div>

View file

@ -57,6 +57,7 @@ namespace ServerManagerTool.Windows
this.Top = Config.Default.ServerMonitorWindow_Top; this.Top = Config.Default.ServerMonitorWindow_Top;
this.Height = Config.Default.ServerMonitorWindow_Height; this.Height = Config.Default.ServerMonitorWindow_Height;
this.Width = Config.Default.ServerMonitorWindow_Width; this.Width = Config.Default.ServerMonitorWindow_Width;
this.WindowState = Config.Default.ServerMonitorWindow_WindowState;
// hook into the language change event // hook into the language change event
GlobalizedApplication.Instance.GlobalizationManager.ResourceDictionaryChangedEvent += ResourceDictionaryChangedEvent; GlobalizedApplication.Instance.GlobalizationManager.ResourceDictionaryChangedEvent += ResourceDictionaryChangedEvent;

View file

@ -651,6 +651,9 @@
<setting name="ServerStartMinimized" serializeAs="String"> <setting name="ServerStartMinimized" serializeAs="String">
<value>False</value> <value>False</value>
</setting> </setting>
<setting name="ServerMonitorWindow_WindowState" serializeAs="String">
<value>Normal</value>
</setting>
</ServerManagerTool.Config> </ServerManagerTool.Config>
</userSettings> </userSettings>
</configuration> </configuration>

View file

@ -2285,5 +2285,17 @@ namespace ServerManagerTool {
this["ServerStartMinimized"] = value; this["ServerStartMinimized"] = value;
} }
} }
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("Normal")]
public global::System.Windows.WindowState ServerMonitorWindow_WindowState {
get {
return ((global::System.Windows.WindowState)(this["ServerMonitorWindow_WindowState"]));
}
set {
this["ServerMonitorWindow_WindowState"] = value;
}
}
} }
} }

View file

@ -629,5 +629,8 @@
<Setting Name="ServerStartMinimized" Type="System.Boolean" Scope="User"> <Setting Name="ServerStartMinimized" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value> <Value Profile="(Default)">False</Value>
</Setting> </Setting>
<Setting Name="ServerMonitorWindow_WindowState" Type="System.Windows.WindowState" Scope="User">
<Value Profile="(Default)">Normal</Value>
</Setting>
</Settings> </Settings>
</SettingsFile> </SettingsFile>

View file

@ -671,6 +671,7 @@
<sys:String x:Key="GlobalSettings_RunAsAdministratorLabel">Enable Run as Administrator Prompt on Startup</sys:String> <sys:String x:Key="GlobalSettings_RunAsAdministratorLabel">Enable Run as Administrator Prompt on Startup</sys:String>
<sys:String x:Key="GlobalSettings_CheckIfServerManagerRunningOnStartupLabel">Check if Server Manager Running on Startup</sys:String> <sys:String x:Key="GlobalSettings_CheckIfServerManagerRunningOnStartupLabel">Check if Server Manager Running on Startup</sys:String>
<sys:String x:Key="GlobalSettings_StartModeLabel">Main Window Start Mode:</sys:String> <sys:String x:Key="GlobalSettings_StartModeLabel">Main Window Start Mode:</sys:String>
<sys:String x:Key="GlobalSettings_StartModeServerMonitorLabel">Server Monitor Window Start Mode:</sys:String>
<sys:String x:Key="GlobalSettings_MinimizeToTrayLabel">Minimize To Tray</sys:String> <sys:String x:Key="GlobalSettings_MinimizeToTrayLabel">Minimize To Tray</sys:String>
<sys:String x:Key="GlobalSettings_ManageFirewallLabel">Manage firewall settings automatically</sys:String> <sys:String x:Key="GlobalSettings_ManageFirewallLabel">Manage firewall settings automatically</sys:String>
<sys:String x:Key="GlobalSettings_ManagePublicIPLabel">Manage Public IP automatically</sys:String> <sys:String x:Key="GlobalSettings_ManagePublicIPLabel">Manage Public IP automatically</sys:String>

View file

@ -68,20 +68,23 @@
<CheckBox Grid.Row="1" Grid.Column="2" Grid.ColumnSpan="2" Margin="5" Content="{DynamicResource GlobalSettings_CheckIfServerManagerRunningOnStartupLabel}" IsChecked="{Binding Config.CheckIfServerManagerRunningOnStartup, Mode=TwoWay}" HorizontalAlignment="Left"/> <CheckBox Grid.Row="1" Grid.Column="2" Grid.ColumnSpan="2" Margin="5" Content="{DynamicResource GlobalSettings_CheckIfServerManagerRunningOnStartupLabel}" IsChecked="{Binding Config.CheckIfServerManagerRunningOnStartup, Mode=TwoWay}" HorizontalAlignment="Left"/>
<Label Grid.Row="2" Grid.Column="0" Margin="1" Content="{DynamicResource GlobalSettings_StartModeLabel}" VerticalAlignment="Center"/> <Label Grid.Row="2" Grid.Column="0" Margin="1" Content="{DynamicResource GlobalSettings_StartModeLabel}" VerticalAlignment="Center"/>
<ComboBox Name="WindowStateComboBox" Grid.Row="2" Grid.Column="1" Margin="5" ItemsSource="{Binding ElementName=GlobalSettings, Path=WindowStates}" SelectedValue="{Binding Config.MainWindow_WindowState}" SelectedValuePath="ValueMember" DisplayMemberPath="DisplayMember" PreviewMouseWheel="ComboBox_PreviewMouseWheel"/> <ComboBox Name="WindowStateMainWindowComboBox" Grid.Row="2" Grid.Column="1" Margin="5" ItemsSource="{Binding ElementName=GlobalSettings, Path=WindowStates}" SelectedValue="{Binding Config.MainWindow_WindowState}" SelectedValuePath="ValueMember" DisplayMemberPath="DisplayMember" PreviewMouseWheel="ComboBox_PreviewMouseWheel"/>
<CheckBox Grid.Row="2" Grid.Column="2" Grid.ColumnSpan="2" Margin="5" Content="{DynamicResource GlobalSettings_MinimizeToTrayLabel}" IsChecked="{Binding Config.MainWindow_MinimizeToTray, Mode=TwoWay}" HorizontalAlignment="Left" VerticalAlignment="Center"/> <CheckBox Grid.Row="2" Grid.Column="2" Grid.ColumnSpan="2" Margin="5" Content="{DynamicResource GlobalSettings_MinimizeToTrayLabel}" IsChecked="{Binding Config.MainWindow_MinimizeToTray, Mode=TwoWay}" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<CheckBox Grid.Row="3" Grid.Column="0" Grid.ColumnSpan="2" Margin="5" Content="{DynamicResource GlobalSettings_ManageFirewallLabel}" IsChecked="{Binding Config.ManageFirewallAutomatically, Mode=TwoWay}" HorizontalAlignment="Left"/> <Label Grid.Row="3" Grid.Column="0" Margin="1" Content="{DynamicResource GlobalSettings_StartModeServerMonitorLabel}" VerticalAlignment="Center"/>
<CheckBox Grid.Row="3" Grid.Column="2" Grid.ColumnSpan="2" Margin="5" Content="{DynamicResource GlobalSettings_ManagePublicIPLabel}" IsChecked="{Binding Config.ManagePublicIPAutomatically, Mode=TwoWay}" HorizontalAlignment="Left"/> <ComboBox Name="WindowStateServerMonitorComboBox" Grid.Row="3" Grid.Column="1" Margin="5" ItemsSource="{Binding ElementName=GlobalSettings, Path=WindowStates}" SelectedValue="{Binding Config.ServerMonitorWindow_WindowState}" SelectedValuePath="ValueMember" DisplayMemberPath="DisplayMember" PreviewMouseWheel="ComboBox_PreviewMouseWheel"/>
<Label Grid.Row="4" Grid.Column="0" Margin="1" Content="{DynamicResource GlobalSettings_DataDirectoryLabel}" VerticalAlignment="Center"/> <CheckBox Grid.Row="4" Grid.Column="0" Grid.ColumnSpan="2" Margin="5" Content="{DynamicResource GlobalSettings_ManageFirewallLabel}" IsChecked="{Binding Config.ManageFirewallAutomatically, Mode=TwoWay}" HorizontalAlignment="Left"/>
<TextBox Grid.Row="4" Grid.Column="1" Grid.ColumnSpan="2" Margin="1" Text="{Binding Config.DataPath, Mode=TwoWay}" IsReadOnly="True" IsReadOnlyCaretVisible="True" VerticalContentAlignment="Center" /> <CheckBox Grid.Row="4" Grid.Column="2" Grid.ColumnSpan="2" Margin="5" Content="{DynamicResource GlobalSettings_ManagePublicIPLabel}" IsChecked="{Binding Config.ManagePublicIPAutomatically, Mode=TwoWay}" HorizontalAlignment="Left"/>
<Button Grid.Row="4" Grid.Column="3" Grid.ColumnSpan="2" Margin="5,1,0,1" VerticalAlignment="Center" HorizontalAlignment="Left" Content="{DynamicResource DataDirectoryButtonContent}" Click="SetDataDir_Click" Visibility="Hidden"/>
<Button Grid.Row="4" Grid.Column="3" Grid.ColumnSpan="2" Margin="5,1,0,1" VerticalAlignment="Center" HorizontalAlignment="Right" Content="{DynamicResource DataDirectoryResetButtonContent}" Click="ResetDataDir_Click" />
<Label Grid.Row="5" Grid.Column="0" Margin="1" Content="{DynamicResource GlobalSettings_BackupDirectoryLabel}" VerticalAlignment="Center"/> <Label Grid.Row="5" Grid.Column="0" Margin="1" Content="{DynamicResource GlobalSettings_DataDirectoryLabel}" VerticalAlignment="Center"/>
<TextBox Grid.Row="5" Grid.Column="1" Grid.ColumnSpan="2" Margin="1" Text="{Binding Config.BackupPath, Mode=TwoWay}" IsReadOnly="True" IsReadOnlyCaretVisible="True" VerticalContentAlignment="Center" /> <TextBox Grid.Row="5" Grid.Column="1" Grid.ColumnSpan="2" Margin="1" Text="{Binding Config.DataPath, Mode=TwoWay}" IsReadOnly="True" IsReadOnlyCaretVisible="True" VerticalContentAlignment="Center" />
<StackPanel Grid.Row="5" Grid.Column="3" Orientation="Horizontal"> <Button Grid.Row="5" Grid.Column="3" Grid.ColumnSpan="2" Margin="5,1,0,1" VerticalAlignment="Center" HorizontalAlignment="Left" Content="{DynamicResource DataDirectoryButtonContent}" Click="SetDataDir_Click" Visibility="Hidden"/>
<Button Grid.Row="5" Grid.Column="3" Grid.ColumnSpan="2" Margin="5,1,0,1" VerticalAlignment="Center" HorizontalAlignment="Right" Content="{DynamicResource DataDirectoryResetButtonContent}" Click="ResetDataDir_Click" />
<Label Grid.Row="6" Grid.Column="0" Margin="1" Content="{DynamicResource GlobalSettings_BackupDirectoryLabel}" VerticalAlignment="Center"/>
<TextBox Grid.Row="6" Grid.Column="1" Grid.ColumnSpan="2" Margin="1" Text="{Binding Config.BackupPath, Mode=TwoWay}" IsReadOnly="True" IsReadOnlyCaretVisible="True" VerticalContentAlignment="Center" />
<StackPanel Grid.Row="6" Grid.Column="3" Orientation="Horizontal">
<Button Margin="5,1,0,1" VerticalAlignment="Center" Content="{DynamicResource BackupDirectoryButtonContent}" Click="SetBackupDir_Click"/> <Button Margin="5,1,0,1" VerticalAlignment="Center" Content="{DynamicResource BackupDirectoryButtonContent}" Click="SetBackupDir_Click"/>
<Button Margin="5,1,0,1" VerticalAlignment="Center" Content="{DynamicResource ClearButtonContent}" Click="ClearBackupDir_Click"/> <Button Margin="5,1,0,1" VerticalAlignment="Center" Content="{DynamicResource ClearButtonContent}" Click="ClearBackupDir_Click"/>
</StackPanel> </StackPanel>

View file

@ -46,7 +46,8 @@ namespace ServerManagerTool
InitializeComponent(); InitializeComponent();
WindowUtils.RemoveDefaultResourceDictionary(this, Config.Default.DefaultGlobalizationFile); WindowUtils.RemoveDefaultResourceDictionary(this, Config.Default.DefaultGlobalizationFile);
PopulateWindowsStatesComboBox(); PopulateWindowsStatesMainWindowComboBox();
PopulateWindowsStatesServerMonitorWindowComboBox();
PopulateDiscordBotLogLevelsComboBox(); PopulateDiscordBotLogLevelsComboBox();
DiscordBotWhitelist = new List<DiscordBotWhitelistItem>(); DiscordBotWhitelist = new List<DiscordBotWhitelistItem>();
@ -404,7 +405,8 @@ namespace ServerManagerTool
{ {
Config.CultureName = AvailableLanguages.Instance.SelectedLanguage; Config.CultureName = AvailableLanguages.Instance.SelectedLanguage;
PopulateWindowsStatesComboBox(); PopulateWindowsStatesMainWindowComboBox();
PopulateWindowsStatesServerMonitorWindowComboBox();
App.Instance.OnResourceDictionaryChanged(Config.CultureName); App.Instance.OnResourceDictionaryChanged(Config.CultureName);
} }
@ -491,9 +493,9 @@ namespace ServerManagerTool
} }
} }
private void PopulateWindowsStatesComboBox() private void PopulateWindowsStatesMainWindowComboBox()
{ {
var selectedValue = this.WindowStateComboBox?.SelectedValue ?? Config.MainWindow_WindowState; var selectedValue = this.WindowStateMainWindowComboBox?.SelectedValue ?? Config.MainWindow_WindowState;
var windowStates = new ComboBoxItemList(); var windowStates = new ComboBoxItemList();
foreach (WindowState windowState in Enum.GetValues(typeof(WindowState))) foreach (WindowState windowState in Enum.GetValues(typeof(WindowState)))
@ -503,9 +505,27 @@ namespace ServerManagerTool
} }
this.WindowStates = windowStates; this.WindowStates = windowStates;
if (this.WindowStateComboBox != null) if (this.WindowStateMainWindowComboBox != null)
{ {
this.WindowStateComboBox.SelectedValue = selectedValue; this.WindowStateMainWindowComboBox.SelectedValue = selectedValue;
}
}
private void PopulateWindowsStatesServerMonitorWindowComboBox()
{
var selectedValue = this.WindowStateServerMonitorComboBox?.SelectedValue ?? Config.ServerMonitorWindow_WindowState;
var comboBoxList = new ComboBoxItemList();
foreach (WindowState windowState in Enum.GetValues(typeof(WindowState)))
{
var displayMember = _globalizer.GetResourceString($"WindowState_{windowState}") ?? windowState.ToString();
comboBoxList.Add(new Common.Model.ComboBoxItem(windowState.ToString(), displayMember));
}
this.WindowStates = comboBoxList;
if (this.WindowStateServerMonitorComboBox != null)
{
this.WindowStateServerMonitorComboBox.SelectedValue = selectedValue;
} }
} }

View file

@ -20,6 +20,7 @@
<br/> <br/>
<ul> <ul>
<li>Added prefix launcher option to launcher arguments.</li> <li>Added prefix launcher option to launcher arguments.</li>
<li>Added server monitor window startup state to global settings.</li>
</ul> </ul>
</p> </p>
</div> </div>

View file

@ -20,6 +20,7 @@
<br/> <br/>
<ul> <ul>
<li>Added prefix launcher option to launcher arguments.</li> <li>Added prefix launcher option to launcher arguments.</li>
<li>Added server monitor window startup state to global settings.</li>
</ul> </ul>
</p> </p>
</div> </div>

View file

@ -57,6 +57,7 @@ namespace ServerManagerTool.Windows
this.Top = Config.Default.ServerMonitorWindow_Top; this.Top = Config.Default.ServerMonitorWindow_Top;
this.Height = Config.Default.ServerMonitorWindow_Height; this.Height = Config.Default.ServerMonitorWindow_Height;
this.Width = Config.Default.ServerMonitorWindow_Width; this.Width = Config.Default.ServerMonitorWindow_Width;
this.WindowState = Config.Default.ServerMonitorWindow_WindowState;
// hook into the language change event // hook into the language change event
GlobalizedApplication.Instance.GlobalizationManager.ResourceDictionaryChangedEvent += ResourceDictionaryChangedEvent; GlobalizedApplication.Instance.GlobalizationManager.ResourceDictionaryChangedEvent += ResourceDictionaryChangedEvent;