-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMainWindowViewModel.cs
70 lines (51 loc) · 2.19 KB
/
MainWindowViewModel.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
using System.Collections.ObjectModel;
using System.Windows;
using System.Windows.Media.Imaging;
using Gh61.EdgePdfPreviewEnabler.Commands;
using Gh61.EdgePdfPreviewEnabler.DependencyRules;
using Gh61.EdgePdfPreviewEnabler.RegistryRules;
namespace Gh61.EdgePdfPreviewEnabler
{
public class MainWindowViewModel
{
public MainWindowViewModel()
{
#region Is Admin
NonAdminMessageVisibility = WinUtils.IsAdmin() ? Visibility.Collapsed : Visibility.Visible;
AdminShieldBitmapSource = WinUtils.GetWindowsAdminShield();
#endregion
#region Rules
var msInstalledRule = new MsEdgeInstalledRule();
DependencyRules = new ObservableCollection<DependencyRuleBase>()
{
msInstalledRule,
new MsWebView2InstalledRule(msInstalledRule)
};
RegistryRules = new ObservableCollection<RegistryRuleBase>()
{
new PdfOpenWithRule(),
new PdfPersistentHelperRule(),
new ClsidPreviewHandlerRule(msInstalledRule),
new PreviewHandlerListRule(),
};
if (ClsidX64PreviewHandlerRule.ShouldBeUsed())
{
RegistryRules.Insert(3, new ClsidX64PreviewHandlerRule(msInstalledRule));
}
if (PreviewHandlerX64ListRule.ShouldBeUsed())
{
RegistryRules.Add(new PreviewHandlerX64ListRule());
}
SetAsDefaultRule = new SetAsDefaultPreviewerRule();
#endregion
DefaultPreviewer = new DefaultPreviewerViewModel(SetAsDefaultRule);
}
public Visibility NonAdminMessageVisibility { get; }
public BitmapSource AdminShieldBitmapSource { get; }
public ObservableCollection<DependencyRuleBase> DependencyRules { get; }
public ObservableCollection<RegistryRuleBase> RegistryRules { get; }
public SetAsDefaultPreviewerRule SetAsDefaultRule { get; }
public ApplyRegistryRuleCommand ApplyRegistryRuleCommand { get; } = ApplyRegistryRuleCommand.Instance;
public DefaultPreviewerViewModel DefaultPreviewer { get; }
}
}