diff --git a/.editorconfig b/.editorconfig index 73cfb445..0d920fb0 100644 --- a/.editorconfig +++ b/.editorconfig @@ -87,7 +87,7 @@ csharp_style_conditional_delegate_call = true:suggestion csharp_preferred_modifier_order = public,private,protected,internal,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,volatile,async # Code-block preferences -csharp_prefer_braces = true:suggestion +csharp_prefer_braces = true:none # Expression-level preferences csharp_prefer_simple_default_expression = true:suggestion @@ -144,3 +144,6 @@ csharp_space_between_square_brackets = false csharp_preserve_single_line_blocks = true csharp_preserve_single_line_statements = true + +# IDE0011: Add braces +dotnet_diagnostic.IDE0011.severity = none diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f4a98eee..dec4ef97 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -83,9 +83,9 @@ jobs: GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} # Needed to get PR information, if any SONAR_TOKEN: ${{secrets.SONAR_TOKEN}} shell: powershell - run: > - .\.sonar\scanner\dotnet-sonarscanner - begin /k:"TorisanKitsune_MinoriEditorShell" /o:"torisankitsune" + run: > + .\.sonar\scanner\dotnet-sonarscanner + begin /k:"TorisanKitsune_MinoriEditorShell" /o:"torisankitsune" /d:sonar.login="${{secrets.SONAR_TOKEN}}" /d:sonar.host.url="https://sonarcloud.io" /d:sonar.cs.opencover.reportsPaths=**/coverage.opencover.xml /v:${{steps.gitversion.outputs.semVer}} diff --git a/.sonarlint/MinoriEditorShell.slconfig b/.sonarlint/MinoriEditorShell.slconfig index edbf02e2..ae55e19b 100644 --- a/.sonarlint/MinoriEditorShell.slconfig +++ b/.sonarlint/MinoriEditorShell.slconfig @@ -9,7 +9,7 @@ "Profiles": { "CSharp": { "ProfileKey": "AXHDDFLUVHc24qBALL5K", - "ProfileTimestamp": "2021-05-05T07:40:20Z" + "ProfileTimestamp": "2021-10-27T09:08:11Z" } } } \ No newline at end of file diff --git a/.sonarlint/torisankitsune_minorieditorshell2/CSharp/SonarLint.xml b/.sonarlint/torisankitsune_minorieditorshell2/CSharp/SonarLint.xml new file mode 100644 index 00000000..21acd70e --- /dev/null +++ b/.sonarlint/torisankitsune_minorieditorshell2/CSharp/SonarLint.xml @@ -0,0 +1,89 @@ + + + + + sonar.cs.analyzeGeneratedCode + false + + + sonar.cs.file.suffixes + .cs + + + sonar.cs.ignoreHeaderComments + true + + + sonar.cs.roslyn.ignoreIssues + false + + + + + S107 + + + max + 7 + + + + + S110 + + + max + 5 + + + + + S1479 + + + maximum + 30 + + + + + S2342 + + + flagsAttributeFormat + ^([A-Z]{1,3}[a-z0-9]+)*([A-Z]{2})?s$ + + + format + ^([A-Z]{1,3}[a-z0-9]+)*([A-Z]{2})?$ + + + + + S2436 + + + max + 2 + + + maxMethod + 3 + + + + + S3776 + + + propertyThreshold + 3 + + + threshold + 15 + + + + + \ No newline at end of file diff --git a/.sonarlint/torisankitsune_minorieditorshellcsharp.ruleset b/.sonarlint/torisankitsune_minorieditorshellcsharp.ruleset index f9145a58..6bc76dac 100644 --- a/.sonarlint/torisankitsune_minorieditorshellcsharp.ruleset +++ b/.sonarlint/torisankitsune_minorieditorshellcsharp.ruleset @@ -169,6 +169,7 @@ + @@ -194,11 +195,13 @@ + + diff --git a/CreateArtifacts.ps1 b/CreateArtifacts.ps1 index 0c7b9f0b..57200697 100644 --- a/CreateArtifacts.ps1 +++ b/CreateArtifacts.ps1 @@ -19,7 +19,7 @@ foreach ($nupkg in $nupkgs) { #mkdir Artifacts\$basedir\Demos cp Demos\SimpleDemo\SimpleDemo.WPF\bin\Release\net5.0-windows Artifacts\$basedir\Demos\SimpleDemo.WPF -Recurse cp Demos\SimpleDemo\SimpleDemo.RibbonWPF\bin\Release\net5.0-windows Artifacts\$basedir\Demos\SimpleDemo.RibbonWPF -Recurse -cp Demos\MinoriDemo\MinoriDemo.WPF\bin\Release\net5.0-windows Artifacts\$basedir\Demos\MinoriDemo.WPF -Recurse +cp Demos\SimpleDemo\SimpleDemo.Avalonia\bin\Release\net5.0 Artifacts\$basedir\Demos\SimpleDemo.Avalonia -Recurse cp Demos\MinoriDemo\MinoriDemo.RibbonWPF\bin\Release\net5.0-windows Artifacts\$basedir\Demos\MinoriDemo.RibbonWPF -Recurse # Compress folder into 7z file diff --git a/Demos/MinoriDemo/MinoriDemo.Core/ViewModels/MainViewModel.cs b/Demos/MinoriDemo/MinoriDemo.Core/ViewModels/MainViewModel.cs index 757e5ac9..f2a2c91e 100644 --- a/Demos/MinoriDemo/MinoriDemo.Core/ViewModels/MainViewModel.cs +++ b/Demos/MinoriDemo/MinoriDemo.Core/ViewModels/MainViewModel.cs @@ -1,8 +1,6 @@ -using Microsoft.Extensions.Logging; using MinoriEditorShell.Services; using MvvmCross; using MvvmCross.Commands; -using MvvmCross.Logging; using MvvmCross.Navigation; using MvvmCross.ViewModels; using System; diff --git a/Demos/MinoriDemo/MinoriDemo.RibbonWpf/App.xaml.cs b/Demos/MinoriDemo/MinoriDemo.RibbonWPF/App.xaml.cs similarity index 100% rename from Demos/MinoriDemo/MinoriDemo.RibbonWpf/App.xaml.cs rename to Demos/MinoriDemo/MinoriDemo.RibbonWPF/App.xaml.cs diff --git a/Demos/MinoriDemo/MinoriDemo.RibbonWPF/DataClasses/ThemeItem.cs b/Demos/MinoriDemo/MinoriDemo.RibbonWPF/DataClasses/ThemeItem.cs new file mode 100644 index 00000000..d33218d2 --- /dev/null +++ b/Demos/MinoriDemo/MinoriDemo.RibbonWPF/DataClasses/ThemeItem.cs @@ -0,0 +1,63 @@ +using MinoriDemo.RibbonWPF.Modules.Themes; +using MvvmCross; +using MvvmCross.Base; +using MvvmCross.ViewModels; +using System; +using System.Collections.Generic; +using System.Windows.Media; + +namespace MinoriDemo.RibbonWPF.DataClasses +{ + internal class ThemeItem : MvxNotifyPropertyChanged + { + private Color _color; + private String _key; + private Boolean _canEdit = false; + private String _modeText = "Edit"; + + public ThemeHelper ThemeHelper { get; set; } + + public String ModeText + { + get => _modeText; + set => SetProperty(ref _modeText, value); + } + + public Boolean CanEdit + { + get => _canEdit; + set + { + if (SetProperty(ref _canEdit, value)) + { + ModeText = value ? "Done" : "Edit"; + } + } + } + + public String Key + { + get => _key; + set => SetProperty(ref _key, value); + } + + public Color Color + { + get => _color; + set + { + _color = value; + + Mvx.IoCProvider.Resolve() + .ExecuteOnMainThreadAsync(() => + { + IDictionary brushes = ThemeHelper.GetBrushes(); + brushes[Key] = new SolidColorBrush(value); + ThemeHelper.SetBrushes(brushes); + }); + } + } + + public String OriginalKey { get; internal set; } + } +} \ No newline at end of file diff --git a/Demos/MinoriDemo/MinoriDemo.RibbonWpf/MainWindow.xaml b/Demos/MinoriDemo/MinoriDemo.RibbonWPF/MainWindow.xaml similarity index 90% rename from Demos/MinoriDemo/MinoriDemo.RibbonWpf/MainWindow.xaml rename to Demos/MinoriDemo/MinoriDemo.RibbonWPF/MainWindow.xaml index c28a2f14..668aa875 100644 --- a/Demos/MinoriDemo/MinoriDemo.RibbonWpf/MainWindow.xaml +++ b/Demos/MinoriDemo/MinoriDemo.RibbonWPF/MainWindow.xaml @@ -1,4 +1,4 @@ - - \ No newline at end of file + diff --git a/Demos/MinoriDemo/MinoriDemo.WPF/MinoriDemo.Wpf.ruleset b/Demos/MinoriDemo/MinoriDemo.RibbonWPF/MinoriDemo.RibbonWPF.ruleset similarity index 100% rename from Demos/MinoriDemo/MinoriDemo.WPF/MinoriDemo.Wpf.ruleset rename to Demos/MinoriDemo/MinoriDemo.RibbonWPF/MinoriDemo.RibbonWPF.ruleset diff --git a/Demos/MinoriDemo/MinoriDemo.Wpf/Setup.cs b/Demos/MinoriDemo/MinoriDemo.RibbonWPF/Setup.cs similarity index 93% rename from Demos/MinoriDemo/MinoriDemo.Wpf/Setup.cs rename to Demos/MinoriDemo/MinoriDemo.RibbonWPF/Setup.cs index c013254e..5ef6c2ca 100644 --- a/Demos/MinoriDemo/MinoriDemo.Wpf/Setup.cs +++ b/Demos/MinoriDemo/MinoriDemo.RibbonWPF/Setup.cs @@ -1,7 +1,7 @@ using Microsoft.Extensions.Logging; using MinoriEditorShell.Platforms.Wpf; -namespace MinoriDemo.WpfCore +namespace MinoriDemo.RibbonWPF { internal class Setup : MesWpfSetup { diff --git a/Demos/MinoriDemo/MinoriDemo.RibbonWpf/Views/MainView.xaml b/Demos/MinoriDemo/MinoriDemo.RibbonWPF/Views/MainView.xaml similarity index 100% rename from Demos/MinoriDemo/MinoriDemo.RibbonWpf/Views/MainView.xaml rename to Demos/MinoriDemo/MinoriDemo.RibbonWPF/Views/MainView.xaml diff --git a/Demos/MinoriDemo/MinoriDemo.RibbonWpf/Views/MainView.xaml.cs b/Demos/MinoriDemo/MinoriDemo.RibbonWPF/Views/MainView.xaml.cs similarity index 100% rename from Demos/MinoriDemo/MinoriDemo.RibbonWpf/Views/MainView.xaml.cs rename to Demos/MinoriDemo/MinoriDemo.RibbonWPF/Views/MainView.xaml.cs diff --git a/Demos/MinoriDemo/MinoriDemo.RibbonWPF/Views/ThemeEditorView.xaml b/Demos/MinoriDemo/MinoriDemo.RibbonWPF/Views/ThemeEditorView.xaml new file mode 100644 index 00000000..c73ea261 --- /dev/null +++ b/Demos/MinoriDemo/MinoriDemo.RibbonWPF/Views/ThemeEditorView.xaml @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + +