feat: 可自选日志日期显示格式

This commit is contained in:
uye
2023-09-08 18:18:37 +08:00
parent c649f30db4
commit 4da676a883
10 changed files with 171 additions and 95 deletions

View File

@@ -29,6 +29,8 @@ namespace MaaWpfGui.Constants
public const string MinimizeToTray = "GUI.MinimizeToTray";
public const string HideCloseButton = "GUI.HideCloseButton";
public const string UseNotify = "GUI.UseNotify";
public const string UseLogItemDateFormat = "GUI.UseLogItemDateFormat";
public const string LogItemDateFormat = "GUI.LogItemDateFormatString";
public const string WindowPlacement = "GUI.Placement";
public const string LoadWindowPlacement = "GUI.Placement.Load";
public const string SaveWindowPlacement = "GUI.Placement.SaveOnClosing";

View File

@@ -239,6 +239,8 @@ Please do not check it when the stage OF-1 is not unlocked.</system:String>
<system:String x:Key="MinimizeToTray">Hide to tray when minimized</system:String>
<system:String x:Key="SystemNotification">System Notification</system:String>
<system:String x:Key="HideCloseButton">Hide close button</system:String>
<system:String x:Key="UseLogItemDateFormat">Custom log date format</system:String>
<system:String x:Key="LogItemDateFormatString">Date format string</system:String>
<system:String x:Key="DarkModeSetColorsTip">Whether to restart immediately to apply changes?</system:String>
<system:String x:Key="UseAlternateStage">Use alternative stage</system:String>
<system:String x:Key="UseRemainingSanityStage">Use remaining sanity stage</system:String>

View File

@@ -231,6 +231,8 @@
<system:String x:Key="MinimizeToTray">最小化した際にトレイに表示</system:String>
<system:String x:Key="SystemNotification">重要な通知をポップアップする</system:String>
<system:String x:Key="HideCloseButton">「閉じる」ボタンを隠す</system:String>
<system:String x:Key="UseLogItemDateFormat">カスタムログ日付形式</system:String>
<system:String x:Key="LogItemDateFormatString">日付書式文字列</system:String>
<system:String x:Key="DarkModeSetColorsTip">変更を適用するためにすぐに再起動しますか?</system:String>
<system:String x:Key="UseAlternateStage">代替ステージを選択可能にする</system:String>
<system:String x:Key="UseRemainingSanityStage">余剰理性の使用</system:String>

View File

@@ -243,6 +243,8 @@ OF-1을 해금하지 않았다면 선택하지 말아 주세요.</system:String>
<system:String x:Key="MinimizeToTray">트레이로 최소화</system:String>
<system:String x:Key="SystemNotification">중요 알림 팝업</system:String>
<system:String x:Key="HideCloseButton">닫기 버튼 숨기기</system:String>
<system:String x:Key="UseLogItemDateFormat">사용자 정의 로그 날짜 형식</system:String>
<system:String x:Key="LogItemDateFormatString">날짜 형식 문자열</system:String>
<system:String x:Key="DarkModeSetColorsTip">변경 사항을 적용하려면 즉시 다시 시작하시겠습니까?</system:String>
<system:String x:Key="UseAlternateStage">대체 스테이지 사용</system:String>
<system:String x:Key="UseRemainingSanityStage">남은 이성 활용</system:String>

View File

@@ -243,6 +243,8 @@
<system:String x:Key="MinimizeToTray">最小化时隐藏至托盘</system:String>
<system:String x:Key="SystemNotification">重要信息弹出系统通知</system:String>
<system:String x:Key="HideCloseButton">隐藏关闭按钮</system:String>
<system:String x:Key="UseLogItemDateFormat">自选日志日期格式</system:String>
<system:String x:Key="LogItemDateFormatString">日期格式字符串</system:String>
<system:String x:Key="DarkModeSetColorsTip">是否立刻重启应用更改?</system:String>
<system:String x:Key="UseAlternateStage">使用备选关卡</system:String>
<system:String x:Key="UseRemainingSanityStage">使用剩余理智</system:String>

View File

@@ -242,7 +242,9 @@
<system:String x:Key="MinimizeToTray">最小化時隱藏至工作列</system:String>
<system:String x:Key="SystemNotification">重要訊息彈出系統通知</system:String>
<system:String x:Key="HideCloseButton">隱藏關閉按鈕</system:String>
<system:String x:Key="DarkModeSetColorsTip">是否立刻重開應用更改?</system:String>
<system:String x:Key="UseLogItemDateFormat">自訂日誌日期格式</system:String>
<system:String x:Key="LogItemDateFormatString">日期格式字串</system:String>
<system:String x:Key="DarkModeSetColorsTip">是否立刻重啟應用更改?</system:String>
<system:String x:Key="UseAlternateStage">使用備選關卡</system:String>
<system:String x:Key="UseRemainingSanityStage">使用剩餘理智</system:String>
<system:String x:Key="UseRemainingSanityStageTip">在完成主任務後刷取指定關卡,不再自動回復理智</system:String>

View File

@@ -12,7 +12,9 @@
// </copyright>
using System;
using System.Collections.Generic;
using MaaWpfGui.Constants;
using MaaWpfGui.Helper;
using Stylet;
namespace MaaWpfGui.ViewModels
@@ -28,9 +30,15 @@ namespace MaaWpfGui.ViewModels
/// <param name="content">The content.</param>
/// <param name="color">The font color.</param>
/// <param name="weight">The font weight.</param>
public LogItemViewModel(string content, string color = UiLogColor.Message, string weight = "Regular")
/// <param name="dateFormat">The Date format string</param>
public LogItemViewModel(string content, string color = UiLogColor.Message, string weight = "Regular", string dateFormat = "MM'-'dd' 'HH':'mm':'ss")
{
Time = DateTime.Now.ToString("MM'-'dd' 'HH':'mm':'ss");
if (Instances.SettingsViewModel.UseLogItemDateFormat)
{
dateFormat = Instances.SettingsViewModel.LogItemDateFormatString;
}
Time = DateTime.Now.ToString(dateFormat);
Content = content;
Color = color;
Weight = weight;

View File

@@ -2902,6 +2902,41 @@ namespace MaaWpfGui.ViewModels.UI
}
}
private bool _useLogItemDateFormat = Convert.ToBoolean(ConfigurationHelper.GetValue(ConfigurationKeys.UseLogItemDateFormat, bool.FalseString));
public bool UseLogItemDateFormat
{
get => _useLogItemDateFormat;
set
{
SetAndNotify(ref _useLogItemDateFormat, value);
ConfigurationHelper.SetValue(ConfigurationKeys.UseLogItemDateFormat, value.ToString());
}
}
public List<string> LogItemDateFormatStringList { get; } = new List<string>
{
"HH:mm:ss",
"MM-dd HH:mm:ss",
"MM/dd HH:mm:ss",
"MM.dd HH:mm:ss",
"dd-MM HH:mm:ss",
"dd/MM HH:mm:ss",
"dd.MM HH:mm:ss",
};
private string _logItemDateFormatString = ConfigurationHelper.GetValue(ConfigurationKeys.LogItemDateFormat, "HH:mm:ss");
public string LogItemDateFormatString
{
get => _logItemDateFormatString;
set
{
SetAndNotify(ref _logItemDateFormatString, value);
ConfigurationHelper.SetValue(ConfigurationKeys.LogItemDateFormat, value);
}
}
private bool _useAlternateStage = Convert.ToBoolean(ConfigurationHelper.GetValue(ConfigurationKeys.UseAlternateStage, bool.FalseString));
/// <summary>

View File

@@ -288,23 +288,30 @@
ItemsSource="{Binding Path=LogItemViewModels}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Grid MaxWidth="400">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<controls:TextBlock
Width="95"
Margin="0,5"
VerticalAlignment="Top"
Grid.Column="0"
Margin="0,5,20,0"
HorizontalAlignment="Left"
VerticalAlignment="Stretch"
Foreground="{DynamicResource TraceLogBrush}"
Text="{Binding Time}"
TextWrapping="Wrap" />
<controls:TextBlock
Width="135"
Grid.Column="1"
Margin="0,5"
VerticalAlignment="Top"
HorizontalAlignment="Left"
VerticalAlignment="Stretch"
FontWeight="{Binding Weight}"
ForegroundKey="{Binding Color}"
Text="{Binding Content}"
TextWrapping="Wrap" />
</StackPanel>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>

View File

@@ -26,96 +26,110 @@
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<CheckBox
<UniformGrid
Grid.Row="0"
Grid.Column="0"
Margin="10"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Content="{DynamicResource MinimizeToTray}"
IsChecked="{Binding MinimizeToTray}" />
<CheckBox
Grid.Row="1"
Grid.Column="0"
Margin="10"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Content="{DynamicResource SystemNotification}"
IsChecked="{Binding UseNotify}" />
<CheckBox
Grid.Row="2"
Grid.Column="0"
Margin="10"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Content="{DynamicResource HideCloseButton}"
IsChecked="{Binding HideCloseButton}" />
<controls:TextBlock
Rows="4">
<CheckBox
Margin="10"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Content="{DynamicResource MinimizeToTray}"
IsChecked="{Binding MinimizeToTray}" />
<CheckBox
Margin="10"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Content="{DynamicResource SystemNotification}"
IsChecked="{Binding UseNotify}" />
<CheckBox
Margin="10"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Content="{DynamicResource HideCloseButton}"
IsChecked="{Binding HideCloseButton}" />
<CheckBox
Margin="10"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Content="{DynamicResource UseLogItemDateFormat}"
IsChecked="{Binding UseLogItemDateFormat}" />
</UniformGrid>
<UniformGrid
Grid.Row="0"
Grid.Column="1"
Margin="10"
HorizontalAlignment="Right"
VerticalAlignment="Center"
Block.TextAlignment="Center"
Text="{Binding LanguageInfo, Mode=OneTime}"
TextWrapping="Wrap" />
<ComboBox
x:Name="LanguageSelector"
Rows="4">
<controls:TextBlock
Margin="10"
HorizontalAlignment="Right"
VerticalAlignment="Center"
Block.TextAlignment="Center"
Text="{Binding LanguageInfo, Mode=OneTime}"
TextWrapping="Wrap" />
<controls:TextBlock
Margin="10"
HorizontalAlignment="Right"
VerticalAlignment="Center"
Block.TextAlignment="Center"
Text="UI Theme"
TextWrapping="Wrap" />
<controls:TextBlock
Margin="10"
HorizontalAlignment="Right"
VerticalAlignment="Center"
Block.TextAlignment="Center"
Text="{DynamicResource MainViewButtonFeature}"
TextWrapping="Wrap" />
<controls:TextBlock
Margin="10"
HorizontalAlignment="Right"
VerticalAlignment="Center"
Block.TextAlignment="Center"
Text="{DynamicResource LogItemDateFormatString}"
TextWrapping="Wrap"
Visibility="{c:Binding UseLogItemDateFormat}" />
</UniformGrid>
<UniformGrid
Grid.Row="0"
Grid.Column="2"
Width="120"
Margin="10"
HorizontalAlignment="Left"
VerticalAlignment="Center"
DisplayMemberPath="Display"
ItemsSource="{Binding LanguageList}"
SelectedValue="{Binding Language}"
SelectedValuePath="Value" />
<controls:TextBlock
Grid.Row="1"
Grid.Column="1"
Margin="10"
HorizontalAlignment="Right"
VerticalAlignment="Center"
Block.TextAlignment="Center"
Text="UI Theme"
TextWrapping="Wrap" />
<ComboBox
Grid.Row="1"
Grid.Column="2"
Width="120"
Margin="10"
HorizontalAlignment="Left"
VerticalAlignment="Center"
DisplayMemberPath="Display"
ItemsSource="{Binding DarkModeList}"
SelectedValue="{Binding DarkMode}"
SelectedValuePath="Value" />
<controls:TextBlock
Grid.Row="2"
Grid.Column="1"
Margin="10"
HorizontalAlignment="Right"
VerticalAlignment="Center"
Block.TextAlignment="Center"
Text="{DynamicResource MainViewButtonFeature}"
TextWrapping="Wrap" />
<ComboBox
Grid.Row="2"
Grid.Column="2"
Width="120"
Margin="10"
HorizontalAlignment="Left"
VerticalAlignment="Center"
DisplayMemberPath="Display"
IsHitTestVisible="{Binding Idle}"
ItemsSource="{Binding InverseClearModeList}"
SelectedValue="{Binding InverseClearMode}"
SelectedValuePath="Value" />
Rows="4">
<ComboBox
x:Name="LanguageSelector"
Width="120"
Margin="10"
HorizontalAlignment="Left"
VerticalAlignment="Center"
DisplayMemberPath="Display"
ItemsSource="{Binding LanguageList}"
SelectedValue="{Binding Language}"
SelectedValuePath="Value" />
<ComboBox
Width="120"
Margin="10"
HorizontalAlignment="Left"
VerticalAlignment="Center"
DisplayMemberPath="Display"
ItemsSource="{Binding DarkModeList}"
SelectedValue="{Binding DarkMode}"
SelectedValuePath="Value" />
<ComboBox
Width="120"
Margin="10"
HorizontalAlignment="Left"
VerticalAlignment="Center"
DisplayMemberPath="Display"
IsHitTestVisible="{Binding Idle}"
ItemsSource="{Binding InverseClearModeList}"
SelectedValue="{Binding InverseClearMode}"
SelectedValuePath="Value" />
<ComboBox
Width="120"
Margin="10"
HorizontalAlignment="Left"
VerticalAlignment="Center"
ItemsSource="{Binding LogItemDateFormatStringList}"
SelectedValue="{Binding LogItemDateFormatString}"
Visibility="{c:Binding UseLogItemDateFormat}" />
</UniformGrid>
</Grid>
</UserControl>