Skip to content

Commit

Permalink
修复部分异常捕获问题,QuerySubmitted 绑定问题
Browse files Browse the repository at this point in the history
  • Loading branch information
natsurainko committed Sep 5, 2024
1 parent c364c5e commit 0f841e5
Show file tree
Hide file tree
Showing 16 changed files with 272 additions and 133 deletions.
128 changes: 98 additions & 30 deletions Natsurainko.FluentLauncher/Dictionaries/TaskViewStyleDictionary.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,37 @@
</StackPanel>
</Grid>
</Expander.Header>

<StackPanel Padding="30,5" Spacing="5">
<Grid Visibility="{Binding ShowException, Converter={ThemeResource BoolToVisibilityConverter}}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="20" />
<ColumnDefinition Width="1*" />
</Grid.ColumnDefinitions>

<TextBlock
VerticalAlignment="Center"
TextTrimming="CharacterEllipsis"
TextWrapping="WrapWholeWords">
<Run x:Uid="Tasks_LaunchPage_Item_H5" Text="Reason:" />
<Run Text="{Binding ExceptionReason}" />
</TextBlock>

<Button
Grid.Column="2"
HorizontalAlignment="Right"
Command="{Binding NotifyExceptionCommand}">
<StackPanel Orientation="Horizontal" Spacing="5">
<FontIcon FontSize="14" Glyph="&#xf000;" />
<TextBlock
x:Uid="Tasks_LaunchPage_B4"
Text="Show Details"
TextTrimming="CharacterEllipsis" />
</StackPanel>
</Button>
</Grid>
</StackPanel>
</Expander>
</DataTemplate>
<DataTemplate x:Key="InstallInstanceTaskTemplate">
Expand Down Expand Up @@ -166,35 +197,69 @@
</Grid>
</Expander.Header>

<ItemsRepeater Margin="30,5" ItemsSource="{Binding StageViewModels}">
<ItemsRepeater.ItemTemplate>
<DataTemplate>
<Grid Margin="0,3.75">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="10" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="10" />
<ColumnDefinition Width="1*" />
</Grid.ColumnDefinitions>
<ProgressRing
Width="16"
Height="16"
IsActive="{Binding IsRunning}" />
<FontIcon
FontSize="16"
Glyph="{Binding FontIcon}"
Visibility="{Binding IsRunning, Converter={ThemeResource InvertedBoolToVisibilityConverter}}" />
<TextBlock Grid.Column="2" HorizontalAlignment="Right">
<Run Text="{Binding FinishedTasks}" />
<Run Text="/" />
<Run Text="{Binding TotalTasks}" />
</TextBlock>
<TextBlock Grid.Column="4" Text="{Binding TaskName}" />
</Grid>
</DataTemplate>
</ItemsRepeater.ItemTemplate>
</ItemsRepeater>
<StackPanel Padding="30,5" Spacing="5">
<ItemsRepeater ItemsSource="{Binding StageViewModels}">
<ItemsRepeater.ItemTemplate>
<DataTemplate>
<Grid Margin="0,3.75">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="10" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="10" />
<ColumnDefinition Width="1*" />
</Grid.ColumnDefinitions>
<ProgressRing
Width="16"
Height="16"
IsActive="{Binding IsRunning}" />
<FontIcon
FontSize="16"
Glyph="{Binding FontIcon}"
Visibility="{Binding IsRunning, Converter={ThemeResource InvertedBoolToVisibilityConverter}}" />
<TextBlock Grid.Column="2" HorizontalAlignment="Right">
<Run Text="{Binding FinishedTasks}" />
<Run Text="/" />
<Run Text="{Binding TotalTasks}" />
</TextBlock>
<TextBlock
Grid.Column="4"
Text="{Binding TaskName}"
TextTrimming="CharacterEllipsis" />
</Grid>
</DataTemplate>
</ItemsRepeater.ItemTemplate>
</ItemsRepeater>

<Grid Visibility="{Binding ShowException, Converter={ThemeResource BoolToVisibilityConverter}}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="20" />
<ColumnDefinition Width="1*" />
</Grid.ColumnDefinitions>

<TextBlock
VerticalAlignment="Center"
TextTrimming="CharacterEllipsis"
TextWrapping="WrapWholeWords">
<Run x:Uid="Tasks_LaunchPage_Item_H5" Text="Reason:" />
<Run Text="{Binding ExceptionReason}" />
</TextBlock>

<Button
Grid.Column="2"
HorizontalAlignment="Right"
Command="{Binding NotifyExceptionCommand}">
<StackPanel Orientation="Horizontal" Spacing="5">
<FontIcon FontSize="14" Glyph="&#xf000;" />
<TextBlock
x:Uid="Tasks_LaunchPage_B4"
Text="Show Details"
TextTrimming="CharacterEllipsis" />
</StackPanel>
</Button>
</Grid>
</StackPanel>
</Expander>
</DataTemplate>
<DataTemplate x:Key="LaunchTaskTemplate">
Expand Down Expand Up @@ -295,7 +360,10 @@
<Run Text="/" />
<Run Text="{Binding TotalTasks}" />
</TextBlock>
<TextBlock Grid.Column="4" Text="{Binding TaskName}" />
<TextBlock
Grid.Column="4"
Text="{Binding TaskName}"
TextTrimming="CharacterEllipsis" />
</Grid>
</DataTemplate>
</ItemsRepeater.ItemTemplate>
Expand Down
43 changes: 26 additions & 17 deletions Natsurainko.FluentLauncher/Models/UI/ChooseModLoaderData.cs
Original file line number Diff line number Diff line change
Expand Up @@ -68,27 +68,36 @@ public ChooseModLoaderData(ModLoaderType type, VersionManifestItem manifestItem,

async Task LoadInstallDatas()
{
string requestUrl = Type switch
object[] installDatas = [];

try
{
ModLoaderType.NeoForge => $"https://bmclapi2.bangbang93.com/neoforge/list/{_manifestItem.Id}",
ModLoaderType.Forge => $"https://bmclapi2.bangbang93.com/forge/minecraft/{_manifestItem.Id}",
ModLoaderType.OptiFine => $"https://bmclapi2.bangbang93.com/optifine/{_manifestItem.Id}",
ModLoaderType.Fabric => $"https://meta.fabricmc.net/v2/versions/loader/{_manifestItem.Id}",
ModLoaderType.Quilt => $"https://meta.quiltmc.org/v3/versions/loader/{_manifestItem.Id}",
_ => throw new NotImplementedException()
};
string requestUrl = Type switch
{
ModLoaderType.NeoForge => $"https://bmclapi2.bangbang93.com/neoforge/list/{_manifestItem.Id}",
ModLoaderType.Forge => $"https://bmclapi2.bangbang93.com/forge/minecraft/{_manifestItem.Id}",
ModLoaderType.OptiFine => $"https://bmclapi2.bangbang93.com/optifine/{_manifestItem.Id}",
ModLoaderType.Fabric => $"https://meta.fabricmc.net/v2/versions/loader/{_manifestItem.Id}",
ModLoaderType.Quilt => $"https://meta.quiltmc.org/v3/versions/loader/{_manifestItem.Id}",
_ => throw new NotImplementedException()
};

string jsonContent = await cacheInterfaceService.RequestStringAsync(requestUrl, Services.Network.Data.InterfaceRequestMethod.AlwaysLatest);
string jsonContent = await cacheInterfaceService.RequestStringAsync(requestUrl, Services.Network.Data.InterfaceRequestMethod.AlwaysLatest);

object[] installDatas = Type switch
installDatas = Type switch
{
ModLoaderType.NeoForge => JsonNode.Parse(jsonContent).Deserialize<ForgeInstallData[]>()!,
ModLoaderType.Forge => JsonNode.Parse(jsonContent).Deserialize<ForgeInstallData[]>()!,
ModLoaderType.OptiFine => JsonNode.Parse(jsonContent).Deserialize<OptiFineInstallData[]>()!,
ModLoaderType.Fabric => JsonNode.Parse(jsonContent).Deserialize<FabricInstallData[]>()!,
ModLoaderType.Quilt => JsonNode.Parse(jsonContent).Deserialize<QuiltInstallData[]>()!,
_ => throw new InvalidOperationException()
};
}
catch (Exception)
{
ModLoaderType.NeoForge => JsonNode.Parse(jsonContent).Deserialize<ForgeInstallData[]>()!,
ModLoaderType.Forge => JsonNode.Parse(jsonContent).Deserialize<ForgeInstallData[]>()!,
ModLoaderType.OptiFine => JsonNode.Parse(jsonContent).Deserialize<OptiFineInstallData[]>()!,
ModLoaderType.Fabric => JsonNode.Parse(jsonContent).Deserialize<FabricInstallData[]>()!,
ModLoaderType.Quilt => JsonNode.Parse(jsonContent).Deserialize<QuiltInstallData[]>()!,
_ => throw new InvalidOperationException()
};

}

App.DispatcherQueue.TryEnqueue(() =>
{
Expand Down
5 changes: 3 additions & 2 deletions Natsurainko.FluentLauncher/Natsurainko.FluentLauncher.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,8 @@
<PackageReference Include="CommunityToolkit.WinUI.UI.Controls" Version="7.1.2" />
<PackageReference Include="HelixToolkit.SharpDX.Assimp" Version="2.25.0" />
<PackageReference Include="HelixToolkit.WinUI" Version="2.25.0" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="9.0.0-preview.7.24405.7" />
<PackageReference Include="Microsoft.Extensions.Hosting" Version="9.0.0-preview.7.24405.7" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Hosting" Version="8.0.0" />
<PackageReference Include="Microsoft.WindowsAppSDK" Version="1.6.240829007" />
<PackageReference Include="Microsoft.Windows.SDK.BuildTools" Version="10.0.26100.1" />
<PackageReference Include="Microsoft.Xaml.Behaviors.WinUI.Managed" Version="2.0.9" />
Expand All @@ -61,6 +61,7 @@
<PackageReference Include="ReverseMarkdown" Version="4.6.0" />
<PackageReference Include="System.Management" Version="8.0.0" />
<PackageReference Include="System.Net.Http" Version="4.3.4" />
<PackageReference Include="System.Text.Json" Version="8.0.4" />
<PackageReference Include="System.Text.RegularExpressions" Version="4.3.1" />
<PackageReference Include="WindowsAPICodePack.Shell.CommonFileDialogs" Version="1.1.5" />
<PackageReference Include="WinUIEx" Version="2.3.4" />
Expand Down
3 changes: 1 addition & 2 deletions Natsurainko.FluentLauncher/Services/Launch/GameService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -107,8 +107,7 @@ public virtual void RefreshGames()
instance = _games.Where(i => i.InstanceId == clientId).FirstOrDefault();
}

if (instance is null)
instance = _games.FirstOrDefault();
instance ??= _games.FirstOrDefault();

ActivateGame(instance);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,6 @@ public void Confirm()
_navigationService.Parent.NavigateTo("Tasks/Download");
}

[RelayCommand]
public void SaveFile()
{
var saveFileDialog = new SaveFileDialog
Expand Down
Loading

0 comments on commit 0f841e5

Please sign in to comment.