From 7176a11853bd9c47bcaeed3a4834ab83ce3b552a Mon Sep 17 00:00:00 2001 From: Mark Kromis <143529142+mkromis@users.noreply.github.com> Date: Sat, 19 Jun 2021 15:19:08 -0400 Subject: [PATCH 01/15] Net5 upgrade (#77) * nuget update * net5 tweaks * nuget updates * Use only net5 projects instead of both types * First attempt to resolve nuget changes * dotnet update * set Logging to Debug * Testing for basic wpf app * Add more MvxContextPresintation * Fix settings window * fix tests * fix more logging * tweak nugets * remove gitversion for test --- .../MinoriDemo.Core/MinoriDemo.Core.csproj | 8 +- .../ViewModels/MainViewModel.cs | 47 ++-- .../MinoriDemo.RibbonWPF/App.config | 6 - .../MinoriDemo.RibbonWPF.csproj | 240 +++--------------- .../Properties/AssemblyInfo.cs | 51 ---- .../App.xaml | 0 .../App.xaml.cs | 0 .../DataClasses/ThemeItem.cs | 0 .../MainWindow.xaml | 0 .../MainWindow.xaml.cs | 0 .../MinoriDemo.RibbonWpf.csproj} | 21 +- .../Modules/Themes/CyberTheme.cs | 0 .../Modules/Themes/CyberTheme.xaml | 0 .../Modules/Themes/ThemeHelper.cs | 0 .../Modules/VirtualCanvas/Models/TestShape.cs | 0 .../MinoriDemo/MinoriDemo.RibbonWpf/Setup.cs | 32 +++ .../Views/MainView.xaml | 0 .../Views/MainView.xaml.cs | 2 + .../Views/ThemeEditorView.xaml | 0 .../Views/ThemeEditorView.xaml.cs | 100 ++++---- .../Views/ToolSampleView.xaml | 0 .../Views/ToolSampleView.xaml.cs | 5 +- .../Views/VirtualCanvasView.xaml | 0 .../Views/VirtualCanvasView.xaml.cs | 2 + .../MinoriDemo.RibbonWpfCore/AssemblyInfo.cs | 35 --- .../Resources/Splash.png | Bin 24971 -> 0 bytes .../MinoriDemo.RibbonWpfCore/Setup.cs | 21 -- Demos/MinoriDemo/MinoriDemo.WPF/App.config | 6 - Demos/MinoriDemo/MinoriDemo.WPF/App.xaml | 4 +- Demos/MinoriDemo/MinoriDemo.WPF/App.xaml.cs | 4 +- .../MinoriDemo/MinoriDemo.WPF/MainWindow.xaml | 4 +- .../MinoriDemo.WPF/MainWindow.xaml.cs | 2 +- .../MinoriDemo.WPF/MinoriDemo.WPF.csproj | 174 ++----------- .../MinoriDemo.WPF/Properties/AssemblyInfo.cs | 51 ---- .../Properties/Resources.Designer.cs | 71 ------ .../MinoriDemo.WPF/Properties/Resources.resx | 117 --------- .../Properties/Settings.Designer.cs | 30 --- .../Properties/Settings.settings | 7 - .../MinoriDemo.WPF/Views/MainView.xaml | 4 +- .../MinoriDemo.WPF/Views/MainView.xaml.cs | 4 +- .../MinoriDemo.Wpf.csproj} | 17 +- Demos/MinoriDemo/MinoriDemo.Wpf/Setup.cs | 16 ++ Demos/MinoriDemo/MinoriDemo.WpfCore/App.xaml | 10 - .../MinoriDemo/MinoriDemo.WpfCore/App.xaml.cs | 14 - .../MinoriDemo.WpfCore/AssemblyInfo.cs | 35 --- .../MinoriDemo.WpfCore/MainWindow.xaml | 14 - .../MinoriDemo.WpfCore/MainWindow.xaml.cs | 13 - .../MinoriDemo.WpfCore/Views/MainView.xaml | 22 -- .../MinoriDemo.WpfCore/Views/MainView.xaml.cs | 12 - .../SimpleDemo.Core/SimpleDemo.Core.csproj | 6 +- .../ViewModels/MainViewModel.cs | 11 +- .../ViewModels/TipViewModel.cs | 45 ++-- .../SimpleDemo.RibbonWPF/App.config | 6 - .../SimpleDemo/SimpleDemo.RibbonWPF/App.xaml | 3 +- .../SimpleDemo.RibbonWPF/App.xaml.cs | 4 +- .../SimpleDemo.RibbonWPF/MainWindow.xaml | 2 +- .../SimpleDemo.RibbonWPF/MainWindow.xaml.cs | 2 +- .../Properties/AssemblyInfo.cs | 51 ---- .../Properties/Resources.Designer.cs | 71 ------ .../Properties/Resources.resx | 117 --------- .../Properties/Settings.Designer.cs | 30 --- .../Properties/Settings.settings | 7 - .../SimpleDemo.RibbonWPF.csproj | 179 ++----------- .../SimpleDemo.RibbonWPF/Views/MainView.xaml | 3 +- .../Views/MainView.xaml.cs | 4 +- .../SimpleDemo.RibbonWPF/Views/TipView.xaml | 3 +- .../Views/TipView.xaml.cs | 4 +- .../SimpleDemo/SimpleDemo.RibbonWpf/Setup.cs | 16 ++ .../SimpleDemo.RibbonWpf.csproj} | 17 +- .../SimpleDemo.RibbonWpfCore/App.xaml | 15 -- .../SimpleDemo.RibbonWpfCore/App.xaml.cs | 14 - .../SimpleDemo.RibbonWpfCore/AssemblyInfo.cs | 35 --- .../SimpleDemo.RibbonWpfCore/MainWindow.xaml | 13 - .../MainWindow.xaml.cs | 18 -- .../Views/MainView.xaml | 24 -- .../Views/MainView.xaml.cs | 12 - .../Views/TipView.xaml | 24 -- .../Views/TipView.xaml.cs | 12 - Demos/SimpleDemo/SimpleDemo.WPF/App.config | 6 - Demos/SimpleDemo/SimpleDemo.WPF/App.xaml | 6 +- Demos/SimpleDemo/SimpleDemo.WPF/App.xaml.cs | 13 +- .../SimpleDemo/SimpleDemo.WPF/MainWindow.xaml | 6 +- .../SimpleDemo.WPF/MainWindow.xaml.cs | 6 +- .../SimpleDemo.WPF/Properties/AssemblyInfo.cs | 51 ---- .../Properties/Resources.Designer.cs | 71 ------ .../SimpleDemo.WPF/Properties/Resources.resx | 117 --------- .../Properties/Settings.Designer.cs | 30 --- .../Properties/Settings.settings | 7 - .../SimpleDemo.WPF/SimpleDemo.WPF.csproj | 168 ++---------- .../SimpleDemo.WPF/Views/MainView.xaml | 11 +- .../SimpleDemo.WPF/Views/MainView.xaml.cs | 9 +- .../SimpleDemo.WPF/Views/TipView.xaml | 18 +- .../SimpleDemo.WPF/Views/TipView.xaml.cs | 16 +- Demos/SimpleDemo/SimpleDemo.Wpf/Setup.cs | 14 + .../SimpleDemo.Wpf/SimpleDemo.Wpf.csproj | 23 ++ Demos/SimpleDemo/SimpleDemo.WpfCore/App.xaml | 10 - .../SimpleDemo/SimpleDemo.WpfCore/App.xaml.cs | 14 - .../SimpleDemo.WpfCore/AssemblyInfo.cs | 35 --- .../SimpleDemo.WpfCore/MainWindow.xaml | 13 - .../SimpleDemo.WpfCore/MainWindow.xaml.cs | 15 -- .../SimpleDemo.WpfCore.csproj | 28 -- .../SimpleDemo.WpfCore/Views/MainView.xaml | 29 --- .../SimpleDemo.WpfCore/Views/MainView.xaml.cs | 15 -- .../SimpleDemo.WpfCore/Views/TipView.xaml | 24 -- .../SimpleDemo.WpfCore/Views/TipView.xaml.cs | 15 -- MinoriEditorShell.sln | 96 +++---- .../Core/MesWpfSetup.cs | 65 ++--- .../MinoriEditorShell.Platforms.Wpf.csproj | 56 ++-- .../Presenters/MesWpfPresenter.cs | 24 +- .../Services/MesThemeManager.cs | 25 +- .../Views/MesSettingsView.xaml.cs | 4 +- .../MinoriEditorShell.Ribbon.csproj | 16 +- ...orShell.VirtualCanvas.Platforms.Wpf.csproj | 8 +- .../MinoriEditorShell.VirtualCanvas.csproj | 15 +- .../MinoriEditorShell.csproj | 32 ++- .../ViewModels/MesSettingsManagerViewModel.cs | 21 +- README.md | 8 +- ...inoriEditorShell.Platforms.WpfTests.csproj | 20 +- .../Themes/IThemeTests.cs | 29 +-- .../MinoriEditorShell.RibbonTests.csproj | 20 +- .../CultureInfoNameConverterTests.cs | 31 +++ .../MinoriEditorShellTests.csproj | 26 ++ 122 files changed, 695 insertions(+), 2520 deletions(-) delete mode 100644 Demos/MinoriDemo/MinoriDemo.RibbonWPF/App.config delete mode 100644 Demos/MinoriDemo/MinoriDemo.RibbonWPF/Properties/AssemblyInfo.cs rename Demos/MinoriDemo/{MinoriDemo.RibbonWpfCore => MinoriDemo.RibbonWpf}/App.xaml (100%) rename Demos/MinoriDemo/{MinoriDemo.RibbonWpfCore => MinoriDemo.RibbonWpf}/App.xaml.cs (100%) rename Demos/MinoriDemo/{MinoriDemo.RibbonWpfCore => MinoriDemo.RibbonWpf}/DataClasses/ThemeItem.cs (100%) rename Demos/MinoriDemo/{MinoriDemo.RibbonWpfCore => MinoriDemo.RibbonWpf}/MainWindow.xaml (100%) rename Demos/MinoriDemo/{MinoriDemo.RibbonWpfCore => MinoriDemo.RibbonWpf}/MainWindow.xaml.cs (100%) rename Demos/MinoriDemo/{MinoriDemo.RibbonWpfCore/MinoriDemo.RibbonWpfCore.csproj => MinoriDemo.RibbonWpf/MinoriDemo.RibbonWpf.csproj} (64%) rename Demos/MinoriDemo/{MinoriDemo.RibbonWpfCore => MinoriDemo.RibbonWpf}/Modules/Themes/CyberTheme.cs (100%) rename Demos/MinoriDemo/{MinoriDemo.RibbonWpfCore => MinoriDemo.RibbonWpf}/Modules/Themes/CyberTheme.xaml (100%) rename Demos/MinoriDemo/{MinoriDemo.RibbonWpfCore => MinoriDemo.RibbonWpf}/Modules/Themes/ThemeHelper.cs (100%) rename Demos/MinoriDemo/{MinoriDemo.RibbonWpfCore => MinoriDemo.RibbonWpf}/Modules/VirtualCanvas/Models/TestShape.cs (100%) create mode 100644 Demos/MinoriDemo/MinoriDemo.RibbonWpf/Setup.cs rename Demos/MinoriDemo/{MinoriDemo.RibbonWpfCore => MinoriDemo.RibbonWpf}/Views/MainView.xaml (100%) rename Demos/MinoriDemo/{MinoriDemo.RibbonWpfCore => MinoriDemo.RibbonWpf}/Views/MainView.xaml.cs (76%) rename Demos/MinoriDemo/{MinoriDemo.RibbonWpfCore => MinoriDemo.RibbonWpf}/Views/ThemeEditorView.xaml (100%) rename Demos/MinoriDemo/{MinoriDemo.RibbonWpfCore => MinoriDemo.RibbonWpf}/Views/ThemeEditorView.xaml.cs (98%) rename Demos/MinoriDemo/{MinoriDemo.RibbonWpfCore => MinoriDemo.RibbonWpf}/Views/ToolSampleView.xaml (100%) rename Demos/MinoriDemo/{MinoriDemo.RibbonWpfCore => MinoriDemo.RibbonWpf}/Views/ToolSampleView.xaml.cs (65%) rename Demos/MinoriDemo/{MinoriDemo.RibbonWpfCore => MinoriDemo.RibbonWpf}/Views/VirtualCanvasView.xaml (100%) rename Demos/MinoriDemo/{MinoriDemo.RibbonWpfCore => MinoriDemo.RibbonWpf}/Views/VirtualCanvasView.xaml.cs (86%) delete mode 100644 Demos/MinoriDemo/MinoriDemo.RibbonWpfCore/AssemblyInfo.cs delete mode 100644 Demos/MinoriDemo/MinoriDemo.RibbonWpfCore/Resources/Splash.png delete mode 100644 Demos/MinoriDemo/MinoriDemo.RibbonWpfCore/Setup.cs delete mode 100644 Demos/MinoriDemo/MinoriDemo.WPF/App.config delete mode 100644 Demos/MinoriDemo/MinoriDemo.WPF/Properties/AssemblyInfo.cs delete mode 100644 Demos/MinoriDemo/MinoriDemo.WPF/Properties/Resources.Designer.cs delete mode 100644 Demos/MinoriDemo/MinoriDemo.WPF/Properties/Resources.resx delete mode 100644 Demos/MinoriDemo/MinoriDemo.WPF/Properties/Settings.Designer.cs delete mode 100644 Demos/MinoriDemo/MinoriDemo.WPF/Properties/Settings.settings rename Demos/MinoriDemo/{MinoriDemo.WpfCore/MinoriDemo.WpfCore.csproj => MinoriDemo.Wpf/MinoriDemo.Wpf.csproj} (59%) create mode 100644 Demos/MinoriDemo/MinoriDemo.Wpf/Setup.cs delete mode 100644 Demos/MinoriDemo/MinoriDemo.WpfCore/App.xaml delete mode 100644 Demos/MinoriDemo/MinoriDemo.WpfCore/App.xaml.cs delete mode 100644 Demos/MinoriDemo/MinoriDemo.WpfCore/AssemblyInfo.cs delete mode 100644 Demos/MinoriDemo/MinoriDemo.WpfCore/MainWindow.xaml delete mode 100644 Demos/MinoriDemo/MinoriDemo.WpfCore/MainWindow.xaml.cs delete mode 100644 Demos/MinoriDemo/MinoriDemo.WpfCore/Views/MainView.xaml delete mode 100644 Demos/MinoriDemo/MinoriDemo.WpfCore/Views/MainView.xaml.cs delete mode 100644 Demos/SimpleDemo/SimpleDemo.RibbonWPF/App.config delete mode 100644 Demos/SimpleDemo/SimpleDemo.RibbonWPF/Properties/AssemblyInfo.cs delete mode 100644 Demos/SimpleDemo/SimpleDemo.RibbonWPF/Properties/Resources.Designer.cs delete mode 100644 Demos/SimpleDemo/SimpleDemo.RibbonWPF/Properties/Resources.resx delete mode 100644 Demos/SimpleDemo/SimpleDemo.RibbonWPF/Properties/Settings.Designer.cs delete mode 100644 Demos/SimpleDemo/SimpleDemo.RibbonWPF/Properties/Settings.settings create mode 100644 Demos/SimpleDemo/SimpleDemo.RibbonWpf/Setup.cs rename Demos/SimpleDemo/{SimpleDemo.RibbonWpfCore/SimpleDemo.RibbonWpfCore.csproj => SimpleDemo.RibbonWpf/SimpleDemo.RibbonWpf.csproj} (53%) delete mode 100644 Demos/SimpleDemo/SimpleDemo.RibbonWpfCore/App.xaml delete mode 100644 Demos/SimpleDemo/SimpleDemo.RibbonWpfCore/App.xaml.cs delete mode 100644 Demos/SimpleDemo/SimpleDemo.RibbonWpfCore/AssemblyInfo.cs delete mode 100644 Demos/SimpleDemo/SimpleDemo.RibbonWpfCore/MainWindow.xaml delete mode 100644 Demos/SimpleDemo/SimpleDemo.RibbonWpfCore/MainWindow.xaml.cs delete mode 100644 Demos/SimpleDemo/SimpleDemo.RibbonWpfCore/Views/MainView.xaml delete mode 100644 Demos/SimpleDemo/SimpleDemo.RibbonWpfCore/Views/MainView.xaml.cs delete mode 100644 Demos/SimpleDemo/SimpleDemo.RibbonWpfCore/Views/TipView.xaml delete mode 100644 Demos/SimpleDemo/SimpleDemo.RibbonWpfCore/Views/TipView.xaml.cs delete mode 100644 Demos/SimpleDemo/SimpleDemo.WPF/App.config delete mode 100644 Demos/SimpleDemo/SimpleDemo.WPF/Properties/AssemblyInfo.cs delete mode 100644 Demos/SimpleDemo/SimpleDemo.WPF/Properties/Resources.Designer.cs delete mode 100644 Demos/SimpleDemo/SimpleDemo.WPF/Properties/Resources.resx delete mode 100644 Demos/SimpleDemo/SimpleDemo.WPF/Properties/Settings.Designer.cs delete mode 100644 Demos/SimpleDemo/SimpleDemo.WPF/Properties/Settings.settings create mode 100644 Demos/SimpleDemo/SimpleDemo.Wpf/Setup.cs create mode 100644 Demos/SimpleDemo/SimpleDemo.Wpf/SimpleDemo.Wpf.csproj delete mode 100644 Demos/SimpleDemo/SimpleDemo.WpfCore/App.xaml delete mode 100644 Demos/SimpleDemo/SimpleDemo.WpfCore/App.xaml.cs delete mode 100644 Demos/SimpleDemo/SimpleDemo.WpfCore/AssemblyInfo.cs delete mode 100644 Demos/SimpleDemo/SimpleDemo.WpfCore/MainWindow.xaml delete mode 100644 Demos/SimpleDemo/SimpleDemo.WpfCore/MainWindow.xaml.cs delete mode 100644 Demos/SimpleDemo/SimpleDemo.WpfCore/SimpleDemo.WpfCore.csproj delete mode 100644 Demos/SimpleDemo/SimpleDemo.WpfCore/Views/MainView.xaml delete mode 100644 Demos/SimpleDemo/SimpleDemo.WpfCore/Views/MainView.xaml.cs delete mode 100644 Demos/SimpleDemo/SimpleDemo.WpfCore/Views/TipView.xaml delete mode 100644 Demos/SimpleDemo/SimpleDemo.WpfCore/Views/TipView.xaml.cs create mode 100644 Tests/MinoriEditorShellTests/Converters/CultureInfoNameConverterTests.cs create mode 100644 Tests/MinoriEditorShellTests/MinoriEditorShellTests.csproj diff --git a/Demos/MinoriDemo/MinoriDemo.Core/MinoriDemo.Core.csproj b/Demos/MinoriDemo/MinoriDemo.Core/MinoriDemo.Core.csproj index 1e758e9c..c0ea1d84 100644 --- a/Demos/MinoriDemo/MinoriDemo.Core/MinoriDemo.Core.csproj +++ b/Demos/MinoriDemo/MinoriDemo.Core/MinoriDemo.Core.csproj @@ -16,13 +16,13 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - - - + + + diff --git a/Demos/MinoriDemo/MinoriDemo.Core/ViewModels/MainViewModel.cs b/Demos/MinoriDemo/MinoriDemo.Core/ViewModels/MainViewModel.cs index 4cbe38f9..757e5ac9 100644 --- a/Demos/MinoriDemo/MinoriDemo.Core/ViewModels/MainViewModel.cs +++ b/Demos/MinoriDemo/MinoriDemo.Core/ViewModels/MainViewModel.cs @@ -1,3 +1,4 @@ +using Microsoft.Extensions.Logging; using MinoriEditorShell.Services; using MvvmCross; using MvvmCross.Commands; @@ -12,14 +13,30 @@ namespace MinoriDemo.Core.ViewModels { - public class MainViewModel : MvxNavigationViewModel + public class MainViewModel : MvxViewModel { + private readonly IMesDocumentManager _manager; + + private readonly IMesStatusBar _statusBar; + // Handles data context for ribbon. private VirtualCanvasViewModel _canvasModel; private Color _testcolor = Color.CornflowerBlue; - private readonly IMesDocumentManager _manager; - private readonly IMesStatusBar _statusBar; + + public MainViewModel( + IMvxNavigationService navigationService, + IMesDocumentManager manager, IMesStatusBar statusBar) + { + NavigationService = navigationService; + _manager = manager; + + _statusBar = statusBar; + _statusBar.Text = "Ready"; + + Mvx.IoCProvider.Resolve().DisplayName = + $"Minori Demo v{Assembly.GetExecutingAssembly().GetName().Version.ToString(3)}"; + } public VirtualCanvasViewModel CanvasModel { @@ -27,6 +44,8 @@ public VirtualCanvasViewModel CanvasModel set => SetProperty(ref _canvasModel, value); } + public IMvxNavigationService NavigationService { get; } + public ICommand OpenCanvasCommand => new MvxAsyncCommand(async () => { if (CanvasModel == null) @@ -40,17 +59,17 @@ public VirtualCanvasViewModel CanvasModel } }); + public ICommand SettingsCommand => Mvx.IoCProvider.Resolve().ShowCommand; + public Color TestColor { get => _testcolor; set => SetProperty(ref _testcolor, value); } - public Double ZoomValue { get; set; } - - public ICommand ToolTestCommand => new MvxCommand(() => NavigationService.Navigate()); public ICommand ThemeEditorCommand => new MvxCommand(() => NavigationService.Navigate()); - public ICommand SettingsCommand => Mvx.IoCProvider.Resolve().ShowCommand; + public ICommand ToolTestCommand => new MvxCommand(() => NavigationService.Navigate()); + public Double ZoomValue { get; set; } private T OpenAndFocus() where T : MesDocument { @@ -65,19 +84,5 @@ private T OpenAndFocus() where T : MesDocument _manager.ActiveItem = vm; return vm; } - - public MainViewModel( - IMvxLogProvider logProvider, IMvxNavigationService navigationService, - IMesDocumentManager manager, IMesStatusBar statusBar) - : base(logProvider, navigationService) - { - _manager = manager; - - _statusBar = statusBar; - _statusBar.Text = "Ready"; - - Mvx.IoCProvider.Resolve().DisplayName = - $"Minori Demo v{Assembly.GetExecutingAssembly().GetName().Version.ToString(3)}"; - } } } \ No newline at end of file diff --git a/Demos/MinoriDemo/MinoriDemo.RibbonWPF/App.config b/Demos/MinoriDemo/MinoriDemo.RibbonWPF/App.config deleted file mode 100644 index 5534e287..00000000 --- a/Demos/MinoriDemo/MinoriDemo.RibbonWPF/App.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/Demos/MinoriDemo/MinoriDemo.RibbonWPF/MinoriDemo.RibbonWPF.csproj b/Demos/MinoriDemo/MinoriDemo.RibbonWPF/MinoriDemo.RibbonWPF.csproj index de9cb688..9cec42a7 100644 --- a/Demos/MinoriDemo/MinoriDemo.RibbonWPF/MinoriDemo.RibbonWPF.csproj +++ b/Demos/MinoriDemo/MinoriDemo.RibbonWPF/MinoriDemo.RibbonWPF.csproj @@ -1,203 +1,39 @@ - - - - - Debug - AnyCPU - {9D695910-476E-4156-8AEE-4F2DDBE984FD} - WinExe - MinoriDemo.RibbonWPF - MinoriDemo.RibbonWPF - v4.6.1 - 512 - {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - 4 - true - true - ..\..\..\.sonarlint\minorieditorshellcsharp.ruleset - - - AnyCPU - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - ..\..\..\.sonarlint\minorieditorshellcsharp.ruleset - - - AnyCPU - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - ..\..\..\.sonarlint\minorieditorshellcsharp.ruleset - - - - - - - - - - - - 4.0 - - - - - - - - App.xaml.cs - App.xaml - - - DataClasses\ThemeItem.cs - - - MainWindow.xaml.cs - MainWindow.xaml - - - Modules\Themes\CyberTheme.cs - - - Modules\Themes\ThemeHelper.cs - - - Modules\VirtualCanvas\Models\TestShape.cs - - - Setup.cs - - - Views\MainView.xaml.cs - MainView.xaml - - - Views\ThemeEditorView.xaml.cs - ThemeEditorView.xaml - - - Views\ToolSampleView.xaml.cs - ToolSampleView.xaml - - - Views\VirtualCanvasView.xaml.cs - VirtualCanvasView.xaml - - - App.xaml - MSBuild:Compile - Designer - - - MainWindow.xaml - MSBuild:Compile - Designer - - - Modules\Themes\CyberTheme.xaml - MSBuild:Compile - Designer - - - Views\MainView.xaml - MSBuild:Compile - Designer - - - Views\ThemeEditorView.xaml - MSBuild:Compile - Designer - - - Views\ToolSampleView.xaml - MSBuild:Compile - Designer - - - Views\VirtualCanvasView.xaml - MSBuild:Compile - Designer - - - - - Code - - - minorieditorshellcsharp.ruleset - - - - - - - - {79572320-e719-4053-a12a-9d74e111fc5e} - MinoriEditorShell.Platforms.Wpf - - - {ed2e6a4c-fe20-4cb8-953e-880c1ee31ae6} - MinoriEditorShell.Ribbon - - - {acd61563-7365-4287-8fe8-6b0c38c5e8e3} - MinoriEditorShell.VirtualCanvas.Platforms.Wpf - - - {B8BA7A12-25B1-445D-93B8-D0F34226D053} - MinoriEditorShell.VirtualCanvas - - - {320b6932-9c96-4a1c-a2fc-f393516ae13f} - MinoriEditorShell - - - {E2733B2F-5C55-4C2E-879F-1495C5E11A4B} - MinoriDemo.Core - - - - - 1.6.0 - - - 8.0.0 - - - 5.3.7 - runtime; build; native; contentfiles; analyzers; buildtransitive - all - - - 7.0.0 - - - 7.0.0 - - - 7.0.0 - - - 1.1.1 - - - - - SonarLint.xml - - - - - - + + + + WinExe + net5.0-windows + true + ..\..\..\.sonarlint\minorieditorshellcsharp.ruleset + + + + + + + + + + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Demos/MinoriDemo/MinoriDemo.RibbonWPF/Properties/AssemblyInfo.cs b/Demos/MinoriDemo/MinoriDemo.RibbonWPF/Properties/AssemblyInfo.cs deleted file mode 100644 index 91dac924..00000000 --- a/Demos/MinoriDemo/MinoriDemo.RibbonWPF/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,51 +0,0 @@ -using System.Reflection; -using System.Runtime.InteropServices; -using System.Windows; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("MinoriDemo.RibbonWPF")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("MinoriDemo.RibbonWPF")] -[assembly: AssemblyCopyright("Copyright © 2019")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -//In order to begin building localizable applications, set -//CultureYouAreCodingWith in your .csproj file -//inside a . For example, if you are using US english -//in your source files, set the to en-US. Then uncomment -//the NeutralResourceLanguage attribute below. Update the "en-US" in -//the line below to match the UICulture setting in the project file. - -//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] - -[assembly: ThemeInfo( - ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located - //(used if a resource is not found in the page, - // or application resource dictionaries) - ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located - //(used if a resource is not found in the page, - // app, or any theme specific resource dictionaries) -)] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] \ No newline at end of file diff --git a/Demos/MinoriDemo/MinoriDemo.RibbonWpfCore/App.xaml b/Demos/MinoriDemo/MinoriDemo.RibbonWpf/App.xaml similarity index 100% rename from Demos/MinoriDemo/MinoriDemo.RibbonWpfCore/App.xaml rename to Demos/MinoriDemo/MinoriDemo.RibbonWpf/App.xaml diff --git a/Demos/MinoriDemo/MinoriDemo.RibbonWpfCore/App.xaml.cs b/Demos/MinoriDemo/MinoriDemo.RibbonWpf/App.xaml.cs similarity index 100% rename from Demos/MinoriDemo/MinoriDemo.RibbonWpfCore/App.xaml.cs rename to Demos/MinoriDemo/MinoriDemo.RibbonWpf/App.xaml.cs diff --git a/Demos/MinoriDemo/MinoriDemo.RibbonWpfCore/DataClasses/ThemeItem.cs b/Demos/MinoriDemo/MinoriDemo.RibbonWpf/DataClasses/ThemeItem.cs similarity index 100% rename from Demos/MinoriDemo/MinoriDemo.RibbonWpfCore/DataClasses/ThemeItem.cs rename to Demos/MinoriDemo/MinoriDemo.RibbonWpf/DataClasses/ThemeItem.cs diff --git a/Demos/MinoriDemo/MinoriDemo.RibbonWpfCore/MainWindow.xaml b/Demos/MinoriDemo/MinoriDemo.RibbonWpf/MainWindow.xaml similarity index 100% rename from Demos/MinoriDemo/MinoriDemo.RibbonWpfCore/MainWindow.xaml rename to Demos/MinoriDemo/MinoriDemo.RibbonWpf/MainWindow.xaml diff --git a/Demos/MinoriDemo/MinoriDemo.RibbonWpfCore/MainWindow.xaml.cs b/Demos/MinoriDemo/MinoriDemo.RibbonWpf/MainWindow.xaml.cs similarity index 100% rename from Demos/MinoriDemo/MinoriDemo.RibbonWpfCore/MainWindow.xaml.cs rename to Demos/MinoriDemo/MinoriDemo.RibbonWpf/MainWindow.xaml.cs diff --git a/Demos/MinoriDemo/MinoriDemo.RibbonWpfCore/MinoriDemo.RibbonWpfCore.csproj b/Demos/MinoriDemo/MinoriDemo.RibbonWpf/MinoriDemo.RibbonWpf.csproj similarity index 64% rename from Demos/MinoriDemo/MinoriDemo.RibbonWpfCore/MinoriDemo.RibbonWpfCore.csproj rename to Demos/MinoriDemo/MinoriDemo.RibbonWpf/MinoriDemo.RibbonWpf.csproj index dc962913..9cec42a7 100644 --- a/Demos/MinoriDemo/MinoriDemo.RibbonWpfCore/MinoriDemo.RibbonWpfCore.csproj +++ b/Demos/MinoriDemo/MinoriDemo.RibbonWpf/MinoriDemo.RibbonWpf.csproj @@ -1,27 +1,27 @@ - + WinExe - netcoreapp3.1 - false + net5.0-windows true ..\..\..\.sonarlint\minorieditorshellcsharp.ruleset - + - + - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + @@ -34,7 +34,6 @@ - + - \ No newline at end of file diff --git a/Demos/MinoriDemo/MinoriDemo.RibbonWpfCore/Modules/Themes/CyberTheme.cs b/Demos/MinoriDemo/MinoriDemo.RibbonWpf/Modules/Themes/CyberTheme.cs similarity index 100% rename from Demos/MinoriDemo/MinoriDemo.RibbonWpfCore/Modules/Themes/CyberTheme.cs rename to Demos/MinoriDemo/MinoriDemo.RibbonWpf/Modules/Themes/CyberTheme.cs diff --git a/Demos/MinoriDemo/MinoriDemo.RibbonWpfCore/Modules/Themes/CyberTheme.xaml b/Demos/MinoriDemo/MinoriDemo.RibbonWpf/Modules/Themes/CyberTheme.xaml similarity index 100% rename from Demos/MinoriDemo/MinoriDemo.RibbonWpfCore/Modules/Themes/CyberTheme.xaml rename to Demos/MinoriDemo/MinoriDemo.RibbonWpf/Modules/Themes/CyberTheme.xaml diff --git a/Demos/MinoriDemo/MinoriDemo.RibbonWpfCore/Modules/Themes/ThemeHelper.cs b/Demos/MinoriDemo/MinoriDemo.RibbonWpf/Modules/Themes/ThemeHelper.cs similarity index 100% rename from Demos/MinoriDemo/MinoriDemo.RibbonWpfCore/Modules/Themes/ThemeHelper.cs rename to Demos/MinoriDemo/MinoriDemo.RibbonWpf/Modules/Themes/ThemeHelper.cs diff --git a/Demos/MinoriDemo/MinoriDemo.RibbonWpfCore/Modules/VirtualCanvas/Models/TestShape.cs b/Demos/MinoriDemo/MinoriDemo.RibbonWpf/Modules/VirtualCanvas/Models/TestShape.cs similarity index 100% rename from Demos/MinoriDemo/MinoriDemo.RibbonWpfCore/Modules/VirtualCanvas/Models/TestShape.cs rename to Demos/MinoriDemo/MinoriDemo.RibbonWpf/Modules/VirtualCanvas/Models/TestShape.cs diff --git a/Demos/MinoriDemo/MinoriDemo.RibbonWpf/Setup.cs b/Demos/MinoriDemo/MinoriDemo.RibbonWpf/Setup.cs new file mode 100644 index 00000000..552f23dc --- /dev/null +++ b/Demos/MinoriDemo/MinoriDemo.RibbonWpf/Setup.cs @@ -0,0 +1,32 @@ +using Microsoft.Extensions.Logging; +using MinoriEditorShell.Platforms.Wpf; +using MinoriEditorShell.Services; +using MvvmCross; +using MvvmCross.IoC; +using MvvmCross.ViewModels; +using System; + +namespace MinoriDemo.RibbonWPF +{ + internal class Setup : MesWpfSetup + { + protected override ILoggerFactory CreateLogFactory() => + LoggerFactory.Create((builder) => + builder + .SetMinimumLevel(0) + .AddDebug()); + + protected override ILoggerProvider CreateLogProvider() => null; + + protected override void InitializeLastChance(IMvxIoCProvider iocProvider) + { + base.InitializeLastChance(iocProvider); + + IMesThemeManager manager = Mvx.IoCProvider.Resolve(); + foreach (IMesTheme theme in manager.Themes) + { + theme.Add(new Uri("pack://application:,,,/ColorPickerLib;component/Themes/Generic.xaml")); + } + } + } +} \ No newline at end of file diff --git a/Demos/MinoriDemo/MinoriDemo.RibbonWpfCore/Views/MainView.xaml b/Demos/MinoriDemo/MinoriDemo.RibbonWpf/Views/MainView.xaml similarity index 100% rename from Demos/MinoriDemo/MinoriDemo.RibbonWpfCore/Views/MainView.xaml rename to Demos/MinoriDemo/MinoriDemo.RibbonWpf/Views/MainView.xaml diff --git a/Demos/MinoriDemo/MinoriDemo.RibbonWpfCore/Views/MainView.xaml.cs b/Demos/MinoriDemo/MinoriDemo.RibbonWpf/Views/MainView.xaml.cs similarity index 76% rename from Demos/MinoriDemo/MinoriDemo.RibbonWpfCore/Views/MainView.xaml.cs rename to Demos/MinoriDemo/MinoriDemo.RibbonWpf/Views/MainView.xaml.cs index 89fa03fd..1d7f6494 100644 --- a/Demos/MinoriDemo/MinoriDemo.RibbonWpfCore/Views/MainView.xaml.cs +++ b/Demos/MinoriDemo/MinoriDemo.RibbonWpf/Views/MainView.xaml.cs @@ -1,3 +1,4 @@ +using MvvmCross.Platforms.Wpf.Presenters.Attributes; using MvvmCross.Platforms.Wpf.Views; namespace MinoriDemo.RibbonWPF.Views @@ -5,6 +6,7 @@ namespace MinoriDemo.RibbonWPF.Views /// /// Interaction logic for MainView.xaml /// + [MvxContentPresentation] public partial class MainView : MvxWpfView { public MainView() => InitializeComponent(); diff --git a/Demos/MinoriDemo/MinoriDemo.RibbonWpfCore/Views/ThemeEditorView.xaml b/Demos/MinoriDemo/MinoriDemo.RibbonWpf/Views/ThemeEditorView.xaml similarity index 100% rename from Demos/MinoriDemo/MinoriDemo.RibbonWpfCore/Views/ThemeEditorView.xaml rename to Demos/MinoriDemo/MinoriDemo.RibbonWpf/Views/ThemeEditorView.xaml diff --git a/Demos/MinoriDemo/MinoriDemo.RibbonWpfCore/Views/ThemeEditorView.xaml.cs b/Demos/MinoriDemo/MinoriDemo.RibbonWpf/Views/ThemeEditorView.xaml.cs similarity index 98% rename from Demos/MinoriDemo/MinoriDemo.RibbonWpfCore/Views/ThemeEditorView.xaml.cs rename to Demos/MinoriDemo/MinoriDemo.RibbonWpf/Views/ThemeEditorView.xaml.cs index cfae57ef..951fe41a 100644 --- a/Demos/MinoriDemo/MinoriDemo.RibbonWpfCore/Views/ThemeEditorView.xaml.cs +++ b/Demos/MinoriDemo/MinoriDemo.RibbonWpf/Views/ThemeEditorView.xaml.cs @@ -1,6 +1,7 @@ using Microsoft.Win32; using MinoriDemo.RibbonWPF.DataClasses; using MinoriDemo.RibbonWPF.Modules.Themes; +using MvvmCross.Platforms.Wpf.Presenters.Attributes; using System; using System.Collections.Generic; using System.IO; @@ -14,13 +15,14 @@ namespace MinoriDemo.RibbonWPF.Views /// /// Interaction logic for ToolSampleView.xaml /// + [MvxContentPresentation] public partial class ThemeEditorView { + public ThemeHelper _themeHelper; + // TODO: I18n private const String _newKey = "Unnamed"; - public ThemeHelper _themeHelper; - public ThemeEditorView() { InitializeComponent(); @@ -32,17 +34,22 @@ public ThemeEditorView() } /// - /// Updates list from + /// Add new item to list. /// - private void UpdateList(IDictionary brushes) + /// + /// + private void Add_Click(Object sender, RoutedEventArgs e) { - MainResourceList.ItemsSource = - brushes.Select(x => new ThemeItem - { - ThemeHelper = _themeHelper, - Key = x.Key, - Color = x.Value.Color, - }); + IDictionary brushes = _themeHelper.GetBrushes(); + if (brushes.Keys.Contains(_newKey)) + { + MessageBox.Show($"{_newKey} already exists, please rename key before adding a new one", "Duplicate key"); + return; + } + brushes[_newKey] = new SolidColorBrush(); + _themeHelper.SetBrushes(brushes); + + UpdateList(brushes); } private void Export_Click(Object sender, RoutedEventArgs e) @@ -65,44 +72,6 @@ private void Export_Click(Object sender, RoutedEventArgs e) } } - private void Search_Click(Object sender, RoutedEventArgs e) - { - IDictionary brushes = _themeHelper.GetBrushes(); - if (!String.IsNullOrWhiteSpace(search.Text)) - { - IEnumerable> select = brushes - .Where(x => x.Key.ToLower().Contains(search.Text.ToLower())); - - SortedDictionary result = new SortedDictionary(); - foreach (KeyValuePair item in select) { result[item.Key] = item.Value; } - - UpdateList(result); - } - else - { - UpdateList(brushes); - } - } - - /// - /// Add new item to list. - /// - /// - /// - private void Add_Click(Object sender, RoutedEventArgs e) - { - IDictionary brushes = _themeHelper.GetBrushes(); - if (brushes.Keys.Contains(_newKey)) - { - MessageBox.Show($"{_newKey} already exists, please rename key before adding a new one", "Duplicate key"); - return; - } - brushes[_newKey] = new SolidColorBrush(); - _themeHelper.SetBrushes(brushes); - - UpdateList(brushes); - } - private void RemoveClick(Object sender, RoutedEventArgs e) { if (sender is Button button && button.DataContext is ThemeItem item) @@ -155,6 +124,25 @@ private void RenameClick(Object sender, RoutedEventArgs e) } } + private void Search_Click(Object sender, RoutedEventArgs e) + { + IDictionary brushes = _themeHelper.GetBrushes(); + if (!String.IsNullOrWhiteSpace(search.Text)) + { + IEnumerable> select = brushes + .Where(x => x.Key.ToLower().Contains(search.Text.ToLower())); + + SortedDictionary result = new SortedDictionary(); + foreach (KeyValuePair item in select) { result[item.Key] = item.Value; } + + UpdateList(result); + } + else + { + UpdateList(brushes); + } + } + private void search_KeyDown(Object sender, System.Windows.Input.KeyEventArgs e) { if (e.Key == System.Windows.Input.Key.Enter) @@ -172,5 +160,19 @@ private void ThemeChanged(Object sender, SelectionChangedEventArgs e) UpdateList(_themeHelper.GetBrushes()); } } + + /// + /// Updates list from + /// + private void UpdateList(IDictionary brushes) + { + MainResourceList.ItemsSource = + brushes.Select(x => new ThemeItem + { + ThemeHelper = _themeHelper, + Key = x.Key, + Color = x.Value.Color, + }); + } } } \ No newline at end of file diff --git a/Demos/MinoriDemo/MinoriDemo.RibbonWpfCore/Views/ToolSampleView.xaml b/Demos/MinoriDemo/MinoriDemo.RibbonWpf/Views/ToolSampleView.xaml similarity index 100% rename from Demos/MinoriDemo/MinoriDemo.RibbonWpfCore/Views/ToolSampleView.xaml rename to Demos/MinoriDemo/MinoriDemo.RibbonWpf/Views/ToolSampleView.xaml diff --git a/Demos/MinoriDemo/MinoriDemo.RibbonWpfCore/Views/ToolSampleView.xaml.cs b/Demos/MinoriDemo/MinoriDemo.RibbonWpf/Views/ToolSampleView.xaml.cs similarity index 65% rename from Demos/MinoriDemo/MinoriDemo.RibbonWpfCore/Views/ToolSampleView.xaml.cs rename to Demos/MinoriDemo/MinoriDemo.RibbonWpf/Views/ToolSampleView.xaml.cs index 117534fe..6bcc5ea1 100644 --- a/Demos/MinoriDemo/MinoriDemo.RibbonWpfCore/Views/ToolSampleView.xaml.cs +++ b/Demos/MinoriDemo/MinoriDemo.RibbonWpf/Views/ToolSampleView.xaml.cs @@ -1,8 +1,11 @@ -namespace MinoriDemo.RibbonWPF.Views +using MvvmCross.Platforms.Wpf.Presenters.Attributes; + +namespace MinoriDemo.RibbonWPF.Views { /// /// Interaction logic for ToolSampleView.xaml /// + [MvxContentPresentation] public partial class ToolSampleView { public ToolSampleView() diff --git a/Demos/MinoriDemo/MinoriDemo.RibbonWpfCore/Views/VirtualCanvasView.xaml b/Demos/MinoriDemo/MinoriDemo.RibbonWpf/Views/VirtualCanvasView.xaml similarity index 100% rename from Demos/MinoriDemo/MinoriDemo.RibbonWpfCore/Views/VirtualCanvasView.xaml rename to Demos/MinoriDemo/MinoriDemo.RibbonWpf/Views/VirtualCanvasView.xaml diff --git a/Demos/MinoriDemo/MinoriDemo.RibbonWpfCore/Views/VirtualCanvasView.xaml.cs b/Demos/MinoriDemo/MinoriDemo.RibbonWpf/Views/VirtualCanvasView.xaml.cs similarity index 86% rename from Demos/MinoriDemo/MinoriDemo.RibbonWpfCore/Views/VirtualCanvasView.xaml.cs rename to Demos/MinoriDemo/MinoriDemo.RibbonWpf/Views/VirtualCanvasView.xaml.cs index f552118f..596c27a7 100644 --- a/Demos/MinoriDemo/MinoriDemo.RibbonWpfCore/Views/VirtualCanvasView.xaml.cs +++ b/Demos/MinoriDemo/MinoriDemo.RibbonWpf/Views/VirtualCanvasView.xaml.cs @@ -1,10 +1,12 @@ using MinoriEditorShell.VirtualCanvas.Services; +using MvvmCross.Platforms.Wpf.Presenters.Attributes; namespace MinoriDemo.RibbonWPF.Views { /// /// Interaction logic for VirtualCanvasView.xaml /// + [MvxContentPresentation] public partial class VirtualCanvasView { public VirtualCanvasView() diff --git a/Demos/MinoriDemo/MinoriDemo.RibbonWpfCore/AssemblyInfo.cs b/Demos/MinoriDemo/MinoriDemo.RibbonWpfCore/AssemblyInfo.cs deleted file mode 100644 index 41b0c858..00000000 --- a/Demos/MinoriDemo/MinoriDemo.RibbonWpfCore/AssemblyInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System.Reflection; -using System.Windows; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("SimpleDemo.WPF")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("SimpleDemo.WPF")] -[assembly: AssemblyCopyright("Copyright © 2019")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] -[assembly: ThemeInfo( - ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located - //(used if a resource is not found in the page, - // or application resource dictionaries) - ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located - //(used if a resource is not found in the page, - // app, or any theme specific resource dictionaries) -)] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] \ No newline at end of file diff --git a/Demos/MinoriDemo/MinoriDemo.RibbonWpfCore/Resources/Splash.png b/Demos/MinoriDemo/MinoriDemo.RibbonWpfCore/Resources/Splash.png deleted file mode 100644 index 4167b397d8c3d4d9606efc176eca8216caaae917..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24971 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 - { - protected override void InitializeLastChance() - { - base.InitializeLastChance(); - - IMesThemeManager manager = Mvx.IoCProvider.Resolve(); - foreach (IMesTheme theme in manager.Themes) - { - theme.Add(new Uri("pack://application:,,,/ColorPickerLib;component/Themes/Generic.xaml")); - } - } - } -} \ No newline at end of file diff --git a/Demos/MinoriDemo/MinoriDemo.WPF/App.config b/Demos/MinoriDemo/MinoriDemo.WPF/App.config deleted file mode 100644 index 5534e287..00000000 --- a/Demos/MinoriDemo/MinoriDemo.WPF/App.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/Demos/MinoriDemo/MinoriDemo.WPF/App.xaml b/Demos/MinoriDemo/MinoriDemo.WPF/App.xaml index 8698d40c..55644a02 100644 --- a/Demos/MinoriDemo/MinoriDemo.WPF/App.xaml +++ b/Demos/MinoriDemo/MinoriDemo.WPF/App.xaml @@ -1,8 +1,8 @@ diff --git a/Demos/MinoriDemo/MinoriDemo.WPF/App.xaml.cs b/Demos/MinoriDemo/MinoriDemo.WPF/App.xaml.cs index 7cbe1816..505a3b5f 100644 --- a/Demos/MinoriDemo/MinoriDemo.WPF/App.xaml.cs +++ b/Demos/MinoriDemo/MinoriDemo.WPF/App.xaml.cs @@ -2,13 +2,13 @@ using MvvmCross.Core; using MvvmCross.Platforms.Wpf.Views; -namespace MinoriDemo.WPF +namespace MinoriDemo.WpfCore { /// /// Interaction logic for App.xaml /// public partial class App : MvxApplication { - protected override void RegisterSetup() => this.RegisterSetupType>(); + protected override void RegisterSetup() => this.RegisterSetupType(); } } \ No newline at end of file diff --git a/Demos/MinoriDemo/MinoriDemo.WPF/MainWindow.xaml b/Demos/MinoriDemo/MinoriDemo.WPF/MainWindow.xaml index f36f27f5..719c4c9d 100644 --- a/Demos/MinoriDemo/MinoriDemo.WPF/MainWindow.xaml +++ b/Demos/MinoriDemo/MinoriDemo.WPF/MainWindow.xaml @@ -1,11 +1,11 @@ diff --git a/Demos/MinoriDemo/MinoriDemo.WPF/MainWindow.xaml.cs b/Demos/MinoriDemo/MinoriDemo.WPF/MainWindow.xaml.cs index a03a70e6..b8579e8f 100644 --- a/Demos/MinoriDemo/MinoriDemo.WPF/MainWindow.xaml.cs +++ b/Demos/MinoriDemo/MinoriDemo.WPF/MainWindow.xaml.cs @@ -1,4 +1,4 @@ -namespace MinoriDemo.WPF +namespace MinoriDemo.WpfCore { /// /// Interaction logic for MainWindow.xaml diff --git a/Demos/MinoriDemo/MinoriDemo.WPF/MinoriDemo.WPF.csproj b/Demos/MinoriDemo/MinoriDemo.WPF/MinoriDemo.WPF.csproj index a173ed06..3e6fd5da 100644 --- a/Demos/MinoriDemo/MinoriDemo.WPF/MinoriDemo.WPF.csproj +++ b/Demos/MinoriDemo/MinoriDemo.WPF/MinoriDemo.WPF.csproj @@ -1,148 +1,28 @@ - - - - - Debug - AnyCPU - {0CF393F5-88BF-435F-A294-1C118F67AD3F} - WinExe - MinoriDemo.WPF - MinoriDemo.WPF - v4.6.1 - 512 - {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - 4 - true - true - ..\..\..\.sonarlint\minorieditorshellcsharp.ruleset - - - AnyCPU - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - ..\..\..\.sonarlint\minorieditorshellcsharp.ruleset - - - AnyCPU - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - ..\..\..\.sonarlint\minorieditorshellcsharp.ruleset - - - - - - - - - - - - 4.0 - - - - - - - - MSBuild:Compile - Designer - - - MainView.xaml - - - MSBuild:Compile - Designer - - - App.xaml - Code - - - MainWindow.xaml - Code - - - Designer - MSBuild:Compile - - - - - Code - - - True - True - Resources.resx - - - True - Settings.settings - True - - - ResXFileCodeGenerator - Resources.Designer.cs - - - minorieditorshellcsharp.ruleset - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - - - - - - {79572320-e719-4053-a12a-9d74e111fc5e} - MinoriEditorShell.Platforms.Wpf - - - {acd61563-7365-4287-8fe8-6b0c38c5e8e3} - MinoriEditorShell.VirtualCanvas.Platforms.Wpf - - - {b8ba7a12-25b1-445d-93b8-d0f34226d053} - MinoriEditorShell.VirtualCanvas - - - {320b6932-9c96-4a1c-a2fc-f393516ae13f} - MinoriEditorShell - - - {e2733b2f-5c55-4c2e-879f-1495c5e11a4b} - MinoriDemo.Core - - - - - 5.3.7 - runtime; build; native; contentfiles; analyzers; buildtransitive - all - - - 7.0.0 - - - - - SonarLint.xml - - - + + + + WinExe + net5.0-windows + true + ..\..\..\.sonarlint\minorieditorshellcsharp.ruleset + + + + + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + + + + + \ No newline at end of file diff --git a/Demos/MinoriDemo/MinoriDemo.WPF/Properties/AssemblyInfo.cs b/Demos/MinoriDemo/MinoriDemo.WPF/Properties/AssemblyInfo.cs deleted file mode 100644 index 9c16f37a..00000000 --- a/Demos/MinoriDemo/MinoriDemo.WPF/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,51 +0,0 @@ -using System.Reflection; -using System.Runtime.InteropServices; -using System.Windows; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("MinoriDemo.WPF")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("MinoriDemo.WPF")] -[assembly: AssemblyCopyright("Copyright © 2019")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -//In order to begin building localizable applications, set -//CultureYouAreCodingWith in your .csproj file -//inside a . For example, if you are using US english -//in your source files, set the to en-US. Then uncomment -//the NeutralResourceLanguage attribute below. Update the "en-US" in -//the line below to match the UICulture setting in the project file. - -//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] - -[assembly: ThemeInfo( - ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located - //(used if a resource is not found in the page, - // or application resource dictionaries) - ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located - //(used if a resource is not found in the page, - // app, or any theme specific resource dictionaries) -)] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] \ No newline at end of file diff --git a/Demos/MinoriDemo/MinoriDemo.WPF/Properties/Resources.Designer.cs b/Demos/MinoriDemo/MinoriDemo.WPF/Properties/Resources.Designer.cs deleted file mode 100644 index c141c9a6..00000000 --- a/Demos/MinoriDemo/MinoriDemo.WPF/Properties/Resources.Designer.cs +++ /dev/null @@ -1,71 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace MinoriDemo.WPF.Properties -{ - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources - { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() - { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager - { - get - { - if ((resourceMan == null)) - { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("MinoriDemo.WPF.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture - { - get - { - return resourceCulture; - } - set - { - resourceCulture = value; - } - } - } -} diff --git a/Demos/MinoriDemo/MinoriDemo.WPF/Properties/Resources.resx b/Demos/MinoriDemo/MinoriDemo.WPF/Properties/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/Demos/MinoriDemo/MinoriDemo.WPF/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/Demos/MinoriDemo/MinoriDemo.WPF/Properties/Settings.Designer.cs b/Demos/MinoriDemo/MinoriDemo.WPF/Properties/Settings.Designer.cs deleted file mode 100644 index 81482beb..00000000 --- a/Demos/MinoriDemo/MinoriDemo.WPF/Properties/Settings.Designer.cs +++ /dev/null @@ -1,30 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace MinoriDemo.WPF.Properties -{ - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase - { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default - { - get - { - return defaultInstance; - } - } - } -} diff --git a/Demos/MinoriDemo/MinoriDemo.WPF/Properties/Settings.settings b/Demos/MinoriDemo/MinoriDemo.WPF/Properties/Settings.settings deleted file mode 100644 index 033d7a5e..00000000 --- a/Demos/MinoriDemo/MinoriDemo.WPF/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/Demos/MinoriDemo/MinoriDemo.WPF/Views/MainView.xaml b/Demos/MinoriDemo/MinoriDemo.WPF/Views/MainView.xaml index ea284b99..fa389e12 100644 --- a/Demos/MinoriDemo/MinoriDemo.WPF/Views/MainView.xaml +++ b/Demos/MinoriDemo/MinoriDemo.WPF/Views/MainView.xaml @@ -1,10 +1,10 @@ /// Interaction logic for MainView.xaml /// + [MvxContentPresentation] public partial class MainView : MvxWpfView { public MainView() => InitializeComponent(); diff --git a/Demos/MinoriDemo/MinoriDemo.WpfCore/MinoriDemo.WpfCore.csproj b/Demos/MinoriDemo/MinoriDemo.Wpf/MinoriDemo.Wpf.csproj similarity index 59% rename from Demos/MinoriDemo/MinoriDemo.WpfCore/MinoriDemo.WpfCore.csproj rename to Demos/MinoriDemo/MinoriDemo.Wpf/MinoriDemo.Wpf.csproj index 6cb8ba1a..3e6fd5da 100644 --- a/Demos/MinoriDemo/MinoriDemo.WpfCore/MinoriDemo.WpfCore.csproj +++ b/Demos/MinoriDemo/MinoriDemo.Wpf/MinoriDemo.Wpf.csproj @@ -1,22 +1,22 @@ - + WinExe - netcoreapp3.1 - false + net5.0-windows true ..\..\..\.sonarlint\minorieditorshellcsharp.ruleset - + - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + @@ -25,5 +25,4 @@ - \ No newline at end of file diff --git a/Demos/MinoriDemo/MinoriDemo.Wpf/Setup.cs b/Demos/MinoriDemo/MinoriDemo.Wpf/Setup.cs new file mode 100644 index 00000000..c013254e --- /dev/null +++ b/Demos/MinoriDemo/MinoriDemo.Wpf/Setup.cs @@ -0,0 +1,16 @@ +using Microsoft.Extensions.Logging; +using MinoriEditorShell.Platforms.Wpf; + +namespace MinoriDemo.WpfCore +{ + internal class Setup : MesWpfSetup + { + protected override ILoggerFactory CreateLogFactory() => + LoggerFactory.Create((builder) => + builder + .SetMinimumLevel(0) + .AddDebug()); + + protected override ILoggerProvider CreateLogProvider() => null; + } +} \ No newline at end of file diff --git a/Demos/MinoriDemo/MinoriDemo.WpfCore/App.xaml b/Demos/MinoriDemo/MinoriDemo.WpfCore/App.xaml deleted file mode 100644 index 55644a02..00000000 --- a/Demos/MinoriDemo/MinoriDemo.WpfCore/App.xaml +++ /dev/null @@ -1,10 +0,0 @@ - - - - \ No newline at end of file diff --git a/Demos/MinoriDemo/MinoriDemo.WpfCore/App.xaml.cs b/Demos/MinoriDemo/MinoriDemo.WpfCore/App.xaml.cs deleted file mode 100644 index 3c8d6757..00000000 --- a/Demos/MinoriDemo/MinoriDemo.WpfCore/App.xaml.cs +++ /dev/null @@ -1,14 +0,0 @@ -using MinoriEditorShell.Platforms.Wpf; -using MvvmCross.Core; -using MvvmCross.Platforms.Wpf.Views; - -namespace MinoriDemo.WpfCore -{ - /// - /// Interaction logic for App.xaml - /// - public partial class App : MvxApplication - { - protected override void RegisterSetup() => this.RegisterSetupType>(); - } -} \ No newline at end of file diff --git a/Demos/MinoriDemo/MinoriDemo.WpfCore/AssemblyInfo.cs b/Demos/MinoriDemo/MinoriDemo.WpfCore/AssemblyInfo.cs deleted file mode 100644 index 41b0c858..00000000 --- a/Demos/MinoriDemo/MinoriDemo.WpfCore/AssemblyInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System.Reflection; -using System.Windows; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("SimpleDemo.WPF")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("SimpleDemo.WPF")] -[assembly: AssemblyCopyright("Copyright © 2019")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] -[assembly: ThemeInfo( - ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located - //(used if a resource is not found in the page, - // or application resource dictionaries) - ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located - //(used if a resource is not found in the page, - // app, or any theme specific resource dictionaries) -)] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] \ No newline at end of file diff --git a/Demos/MinoriDemo/MinoriDemo.WpfCore/MainWindow.xaml b/Demos/MinoriDemo/MinoriDemo.WpfCore/MainWindow.xaml deleted file mode 100644 index 719c4c9d..00000000 --- a/Demos/MinoriDemo/MinoriDemo.WpfCore/MainWindow.xaml +++ /dev/null @@ -1,14 +0,0 @@ - - - - \ No newline at end of file diff --git a/Demos/MinoriDemo/MinoriDemo.WpfCore/MainWindow.xaml.cs b/Demos/MinoriDemo/MinoriDemo.WpfCore/MainWindow.xaml.cs deleted file mode 100644 index b8579e8f..00000000 --- a/Demos/MinoriDemo/MinoriDemo.WpfCore/MainWindow.xaml.cs +++ /dev/null @@ -1,13 +0,0 @@ -namespace MinoriDemo.WpfCore -{ - /// - /// Interaction logic for MainWindow.xaml - /// - public partial class MainWindow - { - public MainWindow() - { - InitializeComponent(); - } - } -} \ No newline at end of file diff --git a/Demos/MinoriDemo/MinoriDemo.WpfCore/Views/MainView.xaml b/Demos/MinoriDemo/MinoriDemo.WpfCore/Views/MainView.xaml deleted file mode 100644 index fa389e12..00000000 --- a/Demos/MinoriDemo/MinoriDemo.WpfCore/Views/MainView.xaml +++ /dev/null @@ -1,22 +0,0 @@ - - - -