Skip to content

Commit 76d6994

Browse files
committed
feat(Avalonia): add not implemented yet view
1 parent 7ac21b6 commit 76d6994

File tree

7 files changed

+123
-31
lines changed

7 files changed

+123
-31
lines changed

SnapX.Avalonia/App.axaml.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1011,6 +1011,9 @@ public static void ConfigureServices(IServiceCollection services)
10111011

10121012
services.AddTransient<HomePageView>();
10131013
services.AddSingleton<HomePageViewModel>();
1014+
services.AddTransient<NotImplemented>();
1015+
services.AddSingleton<NotImplementedVM>();
1016+
10141017

10151018
services.AddSingleton<IMessenger>(WeakReferenceMessenger.Default);
10161019
}

SnapX.Avalonia/ViewLocator.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ public ViewLocator()
2626
RegisterViewFactory<DatabaseVM, DatabaseView>();
2727
RegisterViewFactory<CoreUploaderVM, BuiltInUploaderSettingsView>();
2828
RegisterViewFactory<SettingsHomePageViewVM, SettingsHomePageView>();
29+
RegisterViewFactory<NotImplementedVM, NotImplemented>();
30+
2931

3032
}
3133

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
namespace SnapX.Avalonia.ViewModels;
2+
3+
public class NotImplementedVM : ViewModelBase
4+
{
5+
6+
}

SnapX.Avalonia/ViewModels/Settings/SettingsMainViewVM.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ public SettingsMainViewVM()
2626
// RegisterPage<ScreenRecordOptionsVM>("ScreenRecordOptions");
2727
RegisterPage<DatabaseVM>("Database");
2828
RegisterPage<CoreUploaderVM>("BuiltInUploader");
29+
RegisterPage<NotImplementedVM>("NotImplemented");
2930
foreach (var category in Enum.GetValues<UploaderCategory>())
3031
{
3132
var pageKey = category.ToString();
@@ -103,12 +104,11 @@ public void Navigate(string? categoryTag, string destinationTag)
103104
}
104105
else
105106
{
106-
DebugHelper.WriteLine($"SettingsMainViewVM.Navigate: Unknown destination, defaulting to home page");
107-
// fallback, e.g. Home page
107+
DebugHelper.WriteLine($"SettingsMainViewVM.Navigate: Unknown destination, defaulting to NotImplemented Page");
108108
_history.Push(CurrentPage);
109109
CurrentPage = (Design.IsDesignMode
110-
? Activator.CreateInstance<SettingsHomePageViewVM>()
111-
: Ioc.Default.GetService<SettingsHomePageViewVM>())!;
110+
? Activator.CreateInstance<NotImplementedVM>()
111+
: Ioc.Default.GetService<NotImplementedVM>())!;
112112
}
113113
}
114114
public bool TryGetPage(string tag, out Type type)
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
<UserControl
2+
d:DesignHeight="450"
3+
d:DesignWidth="800"
4+
mc:Ignorable="d"
5+
x:Class="SnapX.Avalonia.Views.Settings.Views.NotImplemented"
6+
xmlns="https://github.com/avaloniaui"
7+
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
8+
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
9+
xmlns:ui="using:FluentAvalonia.UI.Controls"
10+
xmlns:viewModels="clr-namespace:SnapX.Avalonia.ViewModels"
11+
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
12+
<Design.DataContext>
13+
<viewModels:NotImplementedVM />
14+
</Design.DataContext>
15+
<Grid RowDefinitions="*,Auto,Auto,*">
16+
<Ellipse
17+
Fill="{DynamicResource SystemAccentColor}"
18+
Grid.Row="0"
19+
Grid.RowSpan="4"
20+
Height="300"
21+
Opacity="0.05"
22+
Width="300" />
23+
24+
<StackPanel
25+
Grid.Row="1"
26+
HorizontalAlignment="Center"
27+
Spacing="12">
28+
<ui:SymbolIcon
29+
FontSize="72"
30+
Foreground="{DynamicResource SystemAccentColor}"
31+
Symbol="Setting" />
32+
33+
<TextBlock
34+
FontSize="28"
35+
FontWeight="SemiBold"
36+
HorizontalAlignment="Center"
37+
Text="Under Construction" />
38+
</StackPanel>
39+
40+
<StackPanel
41+
Grid.Row="2"
42+
Margin="0,20,0,0"
43+
MaxWidth="450"
44+
Spacing="8">
45+
<TextBlock
46+
FontSize="14"
47+
Foreground="{DynamicResource TextFillColorSecondaryBrush}"
48+
Text="This feature hasn't been written yet. ChatGPT is down."
49+
TextAlignment="Center"
50+
TextWrapping="Wrap" />
51+
52+
<TextBlock
53+
FontSize="12"
54+
FontStyle="Italic"
55+
Foreground="{DynamicResource TextFillColorTertiaryBrush}"
56+
Text="The developer is likely busy fighting Linux file permissions or arguing with YAML serializers. Check back after the next caffeine cycle."
57+
TextAlignment="Center"
58+
TextWrapping="Wrap" />
59+
60+
<!-- <Button Content="Go Back" -->
61+
<!-- HorizontalAlignment="Center" -->
62+
<!-- Margin="0,20,0,0" -->
63+
<!-- Classes="accent" -->
64+
<!-- Command="{Binding NavigateBackCommand}" /> -->
65+
</StackPanel>
66+
</Grid>
67+
</UserControl>
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
using Avalonia;
2+
using Avalonia.Controls;
3+
using Avalonia.Markup.Xaml;
4+
5+
namespace SnapX.Avalonia.Views.Settings.Views;
6+
7+
public partial class NotImplemented : UserControl
8+
{
9+
public NotImplemented()
10+
{
11+
InitializeComponent();
12+
}
13+
}
14+

SnapX.Avalonia/Views/Settings/Views/SettingsMainView.axaml

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -29,15 +29,15 @@
2929
SelectionChanged="NavigationView_OnSelectionChanged"
3030
UseLayoutRounding="True">
3131
<controls:NavigationView.MenuItems>
32-
<controls:NavigationViewItem Content="Application">
32+
<controls:NavigationViewItem Content="Application" Tag="Application">
3333
<controls:NavigationViewItem.IconSource>
3434
<fluent:FluentIconSource
3535
Icon="WindowApps"
3636
IconSize="Size32"
3737
IconVariant="Regular" />
3838
</controls:NavigationViewItem.IconSource>
3939
<controls:NavigationView.MenuItems>
40-
<controls:NavigationViewItem Content="General">
40+
<controls:NavigationViewItem Content="General" Tag="General">
4141
<controls:NavigationViewItem.IconSource>
4242
<fluent:FluentIconSource
4343
Icon="AppGeneric"
@@ -53,23 +53,23 @@
5353
IconVariant="Regular" />
5454
</controls:NavigationViewItem.IconSource>
5555
</controls:NavigationViewItem>
56-
<controls:NavigationViewItem Content="Integration">
56+
<controls:NavigationViewItem Content="Integration" Tag="Integration">
5757
<controls:NavigationViewItem.IconSource>
5858
<fluent:FluentIconSource
5959
Icon="CalligraphyPen"
6060
IconSize="Size24"
6161
IconVariant="Regular" />
6262
</controls:NavigationViewItem.IconSource>
6363
</controls:NavigationViewItem>
64-
<controls:NavigationViewItem Content="Paths">
64+
<controls:NavigationViewItem Content="Paths" Tag="Paths">
6565
<controls:NavigationViewItem.IconSource>
6666
<fluent:FluentIconSource
6767
Icon="Folder"
6868
IconSize="Size32"
6969
IconVariant="Regular" />
7070
</controls:NavigationViewItem.IconSource>
7171
</controls:NavigationViewItem>
72-
<controls:NavigationViewItem>
72+
<controls:NavigationViewItem Tag="Housekeeping">
7373
<controls:NavigationViewItem.IconSource>
7474
<fluent:FluentIconSource
7575
Icon="BroomSparkle"
@@ -79,47 +79,47 @@
7979
<ToolTip.Tip>Previously, Main window</ToolTip.Tip>
8080
Housekeeping
8181
</controls:NavigationViewItem>
82-
<controls:NavigationViewItem Content="View">
82+
<controls:NavigationViewItem Content="View" Tag="View">
8383
<controls:NavigationViewItem.IconSource>
8484
<fluent:FluentIconSource
8585
Icon="SquareHintApps"
8686
IconSize="Size24"
8787
IconVariant="Regular" />
8888
</controls:NavigationViewItem.IconSource>
8989
</controls:NavigationViewItem>
90-
<controls:NavigationViewItem Content="Upload">
90+
<controls:NavigationViewItem Content="Upload" Tag="Upload">
9191
<controls:NavigationViewItem.IconSource>
9292
<fluent:FluentIconSource
9393
Icon="ArrowUpload"
9494
IconSize="Size32"
9595
IconVariant="Regular" />
9696
</controls:NavigationViewItem.IconSource>
9797
</controls:NavigationViewItem>
98-
<controls:NavigationViewItem Content="History">
98+
<controls:NavigationViewItem Content="History" Tag="History">
9999
<controls:NavigationViewItem.IconSource>
100100
<fluent:FluentIconSource
101101
Icon="History"
102102
IconSize="Size32"
103103
IconVariant="Regular" />
104104
</controls:NavigationViewItem.IconSource>
105105
</controls:NavigationViewItem>
106-
<controls:NavigationViewItem Content="Print">
106+
<controls:NavigationViewItem Content="Print" Tag="Print">
107107
<controls:NavigationViewItem.IconSource>
108108
<fluent:FluentIconSource
109109
Icon="Print"
110110
IconSize="Size32"
111111
IconVariant="Regular" />
112112
</controls:NavigationViewItem.IconSource>
113113
</controls:NavigationViewItem>
114-
<controls:NavigationViewItem Content="Proxy">
114+
<controls:NavigationViewItem Content="Proxy" Tag="Proxy">
115115
<controls:NavigationViewItem.IconSource>
116116
<fluent:FluentIconSource
117117
Icon="ShieldPerson"
118118
IconSize="Size20"
119119
IconVariant="Regular" />
120120
</controls:NavigationViewItem.IconSource>
121121
</controls:NavigationViewItem>
122-
<controls:NavigationViewItem Content="Advanced">
122+
<controls:NavigationViewItem Content="Advanced" Tag="Advanced">
123123
<controls:NavigationViewItem.IconSource>
124124
<fluent:FluentIconSource
125125
Icon="WrenchScrewdriver"
@@ -129,31 +129,31 @@
129129
</controls:NavigationViewItem>
130130
</controls:NavigationView.MenuItems>
131131
</controls:NavigationViewItem>
132-
<controls:NavigationViewItem Content="Tasks">
132+
<controls:NavigationViewItem Content="Tasks" Tag="Tasks">
133133
<controls:NavigationViewItem.IconSource>
134134
<fluent:FluentIconSource
135135
Icon="TaskList"
136136
IconSize="Size24"
137137
IconVariant="Regular" />
138138
</controls:NavigationViewItem.IconSource>
139139
<controls:NavigationView.MenuItems>
140-
<controls:NavigationViewItem Content="Image">
140+
<controls:NavigationViewItem Content="Image" Tag="Image">
141141
<controls:NavigationViewItem.IconSource>
142142
<fluent:FluentIconSource
143143
Icon="Image"
144144
IconSize="Size32"
145145
IconVariant="Regular" />
146146
</controls:NavigationViewItem.IconSource>
147147
<controls:NavigationViewItem.MenuItems>
148-
<controls:NavigationViewItem Content="Effects">
148+
<controls:NavigationViewItem Content="Effects" Tag="Effects">
149149
<controls:NavigationViewItem.IconSource>
150150
<fluent:FluentIconSource
151151
Icon="ImageSparkle"
152152
IconSize="Size24"
153153
IconVariant="Regular" />
154154
</controls:NavigationViewItem.IconSource>
155155
</controls:NavigationViewItem>
156-
<controls:NavigationViewItem Content="Thumbnail">
156+
<controls:NavigationViewItem Content="Thumbnail" Tag="Thumbnail">
157157
<controls:NavigationViewItem.IconSource>
158158
<fluent:FluentIconSource
159159
Icon="TabDesktopImage"
@@ -163,15 +163,15 @@
163163
</controls:NavigationViewItem>
164164
</controls:NavigationViewItem.MenuItems>
165165
</controls:NavigationViewItem>
166-
<controls:NavigationViewItem Content="Capture">
166+
<controls:NavigationViewItem Content="Capture" Tag="Capture">
167167
<controls:NavigationViewItem.IconSource>
168168
<fluent:FluentIconSource
169169
Icon="CameraEdit"
170170
IconSize="Size20"
171171
IconVariant="Regular" />
172172
</controls:NavigationViewItem.IconSource>
173173
<controls:NavigationViewItem.MenuItems>
174-
<controls:NavigationViewItem Content="Region">
174+
<controls:NavigationViewItem Content="Region" Tag="Region">
175175
<controls:NavigationViewItem.IconSource>
176176
<fluent:FluentIconSource
177177
Icon="ImageBorder"
@@ -187,7 +187,7 @@
187187
IconVariant="Regular" />
188188
</controls:NavigationViewItem.IconSource>
189189
</controls:NavigationViewItem>
190-
<controls:NavigationViewItem Content="OCR">
190+
<controls:NavigationViewItem Content="OCR" Tag="OCR">
191191
<controls:NavigationViewItem.IconSource>
192192
<fluent:FluentIconSource
193193
Icon="ImageAltText"
@@ -197,31 +197,31 @@
197197
</controls:NavigationViewItem>
198198
</controls:NavigationViewItem.MenuItems>
199199
</controls:NavigationViewItem>
200-
<controls:NavigationViewItem Content="Upload">
200+
<controls:NavigationViewItem Content="Upload" Tag="Upload">
201201
<controls:NavigationViewItem.IconSource>
202202
<fluent:FluentIconSource
203203
Icon="ArrowUpload"
204204
IconSize="Size32"
205205
IconVariant="Regular" />
206206
</controls:NavigationViewItem.IconSource>
207207
<controls:NavigationViewItem.MenuItems>
208-
<controls:NavigationViewItem Content="File naming">
208+
<controls:NavigationViewItem Content="File naming" Tag="FileNaming">
209209
<controls:NavigationViewItem.IconSource>
210210
<fluent:FluentIconSource
211211
Icon="RenameA"
212212
IconSize="Size20"
213213
IconVariant="Regular" />
214214
</controls:NavigationViewItem.IconSource>
215215
</controls:NavigationViewItem>
216-
<controls:NavigationViewItem Content="Clipboard">
216+
<controls:NavigationViewItem Content="Clipboard" Tag="Clipboard">
217217
<controls:NavigationViewItem.IconSource>
218218
<fluent:FluentIconSource
219219
Icon="ClipboardSettings"
220220
IconSize="Size24"
221221
IconVariant="Regular" />
222222
</controls:NavigationViewItem.IconSource>
223223
</controls:NavigationViewItem>
224-
<controls:NavigationViewItem Content="Filters">
224+
<controls:NavigationViewItem Content="Filters" Tag="Filters">
225225
<controls:NavigationViewItem.IconSource>
226226
<fluent:FluentIconSource
227227
Icon="Filter"
@@ -231,31 +231,31 @@
231231
</controls:NavigationViewItem>
232232
</controls:NavigationViewItem.MenuItems>
233233
</controls:NavigationViewItem>
234-
<controls:NavigationViewItem Content="Actions">
234+
<controls:NavigationViewItem Content="Actions" Tag="Actions">
235235
<controls:NavigationViewItem.IconSource>
236236
<fluent:FluentIconSource
237237
Icon="TaskListSquareSettings"
238238
IconSize="Size20"
239239
IconVariant="Regular" />
240240
</controls:NavigationViewItem.IconSource>
241241
</controls:NavigationViewItem>
242-
<controls:NavigationViewItem Content="Watch folders">
242+
<controls:NavigationViewItem Content="Watch folders" Tag="WatchFolders">
243243
<controls:NavigationViewItem.IconSource>
244244
<fluent:FluentIconSource
245245
Icon="FolderSearch"
246246
IconSize="Size24"
247247
IconVariant="Regular" />
248248
</controls:NavigationViewItem.IconSource>
249249
</controls:NavigationViewItem>
250-
<controls:NavigationViewItem Content="Tools">
250+
<controls:NavigationViewItem Content="Tools" Tag="Tools">
251251
<controls:NavigationViewItem.IconSource>
252252
<fluent:FluentIconSource
253253
Icon="Toolbox"
254254
IconSize="Size32"
255255
IconVariant="Regular" />
256256
</controls:NavigationViewItem.IconSource>
257257
</controls:NavigationViewItem>
258-
<controls:NavigationViewItem Content="Advanced">
258+
<controls:NavigationViewItem Content="Advanced" Tag="Advanced">
259259
<controls:NavigationViewItem.IconSource>
260260
<fluent:FluentIconSource
261261
Icon="WrenchScrewdriver"
@@ -265,7 +265,7 @@
265265
</controls:NavigationViewItem>
266266
</controls:NavigationView.MenuItems>
267267
</controls:NavigationViewItem>
268-
<controls:NavigationViewItem Content="Hotkeys">
268+
<controls:NavigationViewItem Content="Hotkeys" Tag="Hotkeys">
269269
<controls:NavigationViewItem.IconSource>
270270
<fluent:FluentIconSource
271271
Icon="KeyboardShiftUppercase"

0 commit comments

Comments
 (0)