Skip to content

Commit 4fde2a4

Browse files
committed
Aboutページ追加
1 parent 3cfede7 commit 4fde2a4

File tree

6 files changed

+84
-6
lines changed

6 files changed

+84
-6
lines changed
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
using Microsoft.Extensions.Logging;
2+
3+
namespace RemoteLogViewer.ViewModels.Info;
4+
5+
[AddSingleton]
6+
public class AboutPageViewModel : InfoPageViewModel<AboutPageViewModel> {
7+
public AboutPageViewModel(ILogger<AboutPageViewModel> logger) : base("About", logger) {
8+
}
9+
10+
public string AppName {
11+
get;
12+
} = "RemoteLogViewer";
13+
public string Version {
14+
get;
15+
} = "1.0.0";
16+
public string Description {
17+
get;
18+
} = "A Windows application for viewing remote log files over SSH.";
19+
public string Repository {
20+
get;
21+
} = "https://github.com/southernwind/RemoteLogViewer";
22+
}

RemoteLogViewer/ViewModels/Info/InfoWindowViewModel.cs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,10 @@ public List<IInfoPageViewModel> Pages {
1818
get;
1919
} = [];
2020

21+
public AboutPageViewModel AboutPageViewModel {
22+
get;
23+
}
24+
2125
public LicensePageViewModel LicensePageViewModel {
2226
get;
2327
}
@@ -26,10 +30,11 @@ public ReactiveCommand SaveCommand {
2630
get;
2731
} = new();
2832

29-
public InfoWindowViewModel(LicensePageViewModel licensePageViewModel, ILogger<InfoWindowViewModel> logger) : base(logger) {
33+
public InfoWindowViewModel(AboutPageViewModel aboutPageViewModel, LicensePageViewModel licensePageViewModel, ILogger<InfoWindowViewModel> logger) : base(logger) {
34+
this.AboutPageViewModel = aboutPageViewModel;
3035
this.LicensePageViewModel = licensePageViewModel;
3136

32-
this.Pages.AddRange([this.LicensePageViewModel]);
37+
this.Pages.AddRange([this.AboutPageViewModel, this.LicensePageViewModel]);
3338
this.SelectedSettingsPage.Value = this.Pages[0];
3439
}
3540
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<Page
2+
x:Class="RemoteLogViewer.Views.Info.AboutPage"
3+
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
4+
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
5+
xmlns:local="using:RemoteLogViewer.Views.Info"
6+
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
7+
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
8+
mc:Ignorable="d">
9+
10+
<Grid>
11+
<ScrollViewer VerticalScrollBarVisibility="Auto">
12+
<StackPanel Spacing="16" Margin="16">
13+
<TextBlock Text="{x:Bind ViewModel.AppName}" FontSize="24" FontWeight="Bold" TextWrapping="Wrap"/>
14+
<TextBlock Text="{x:Bind ViewModel.Version}" FontSize="16" TextWrapping="Wrap"/>
15+
<TextBlock Text="{x:Bind ViewModel.Description}" TextWrapping="Wrap"/>
16+
<TextBlock Text="Repository:" FontWeight="SemiBold"/>
17+
<HyperlinkButton NavigateUri="{x:Bind ViewModel.Repository}">
18+
<TextBlock Text="{x:Bind ViewModel.Repository}" TextWrapping="Wrap"/>
19+
</HyperlinkButton>
20+
</StackPanel>
21+
</ScrollViewer>
22+
</Grid>
23+
</Page>
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
using Microsoft.UI.Xaml.Controls;
2+
using Microsoft.UI.Xaml.Navigation;
3+
using RemoteLogViewer.ViewModels.Info;
4+
5+
namespace RemoteLogViewer.Views.Info {
6+
public sealed partial class AboutPage : Page {
7+
public AboutPageViewModel? ViewModel {
8+
get;
9+
set;
10+
}
11+
12+
public AboutPage() {
13+
this.InitializeComponent();
14+
}
15+
16+
protected override void OnNavigatedTo(NavigationEventArgs e) {
17+
if (e.Parameter is AboutPageViewModel vm) {
18+
this.ViewModel = vm;
19+
}
20+
base.OnNavigatedTo(e);
21+
}
22+
}
23+
}

RemoteLogViewer/Views/Info/InfoWindow.xaml.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public InfoWindowViewModel ViewModel {
1313
public InfoWindow(InfoWindowViewModel vm) {
1414
this.ViewModel = vm;
1515
this.InitializeComponent();
16-
this.AppWindow?.Resize(new Windows.Graphics.SizeInt32(1200, 800));
16+
this.AppWindow?.Resize(new Windows.Graphics.SizeInt32(800, 800));
1717
this.ViewModel.SelectedSettingsPage.Subscribe(vm => {
1818
if (vm is null) {
1919
return;
@@ -23,6 +23,9 @@ public InfoWindow(InfoWindowViewModel vm) {
2323
case LicensePageViewModel _:
2424
view = typeof(LicensePage);
2525
break;
26+
case AboutPageViewModel _:
27+
view = typeof(AboutPage);
28+
break;
2629
default:
2730
return;
2831
}

RemoteLogViewer/Views/Info/LicensePage.xaml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,14 @@
1515
<DataTemplate x:DataType="vm:LicenseInfo">
1616
<Border BorderBrush="{ThemeResource CardStrokeColorDefaultBrush}" BorderThickness="1" CornerRadius="4" Margin="0,0,0,8" Padding="12">
1717
<StackPanel Spacing="4">
18-
<TextBlock>
18+
<TextBlock TextWrapping="Wrap">
1919
<Run Text="{x:Bind Name}" FontWeight="SemiBold"/>
2020
<Run Text="{x:Bind License}" FontFamily="Consolas" Foreground="DarkGray"/>
2121
</TextBlock>
22-
<HyperlinkButton Content="{x:Bind Url}" NavigateUri="{x:Bind Url}"/>
23-
</StackPanel>
22+
<HyperlinkButton NavigateUri="{x:Bind Url}" >
23+
<TextBlock Text="{x:Bind Url}" TextWrapping="Wrap"/>
24+
</HyperlinkButton>
25+
</StackPanel>
2426
</Border>
2527
</DataTemplate>
2628
</ListView.ItemTemplate>

0 commit comments

Comments
 (0)