From 5ce9cffceea054ecc2cc2a5605784ed43bc118c9 Mon Sep 17 00:00:00 2001 From: leo Date: Thu, 6 Aug 2020 16:01:10 +0800 Subject: [PATCH] refactor(*): re-arrange project --- README.md | 4 +- SourceGit.sln | 25 - SourceGit/Properties/AssemblyInfo.cs | 3 - .../theme_dark.png | Bin .../theme_light.png | Bin {SourceGit => src}/App.config | 0 {SourceGit => src}/App.ico | Bin {SourceGit => src}/App.manifest | 0 {SourceGit => src}/App.xaml | 0 {SourceGit => src}/App.xaml.cs | 0 .../Converters/BoolToCollapsed.cs | 0 .../Converters/FileStatusToColor.cs | 0 .../Converters/FileStatusToIcon.cs | 0 .../Converters/IndentToMargin.cs | 0 {SourceGit => src}/Converters/InverseBool.cs | 0 .../Converters/InverseBoolToCollapsed.cs | 0 .../Converters/PercentToDouble.cs | 0 .../Converters/TreeViewItemDepthToMargin.cs | 0 {SourceGit => src}/Git/Blame.cs | 0 {SourceGit => src}/Git/Branch.cs | 0 {SourceGit => src}/Git/Change.cs | 0 {SourceGit => src}/Git/Commit.cs | 0 {SourceGit => src}/Git/Decorator.cs | 0 {SourceGit => src}/Git/Diff.cs | 526 ++-- {SourceGit => src}/Git/MergeTool.cs | 0 {SourceGit => src}/Git/Preference.cs | 0 {SourceGit => src}/Git/Remote.cs | 194 +- {SourceGit => src}/Git/Repository.cs | 12 +- {SourceGit => src}/Git/Stash.cs | 0 {SourceGit => src}/Git/Tag.cs | 0 {SourceGit => src}/Git/User.cs | 0 {SourceGit => src}/Helpers/CommitGraph.cs | 0 {SourceGit => src}/Helpers/TextBoxHelper.cs | 448 ++-- {SourceGit => src}/Helpers/TreeViewHelper.cs | 0 {SourceGit => src}/Helpers/Validations.cs | 0 {SourceGit => src}/Resources/Controls.xaml | 0 {SourceGit => src}/Resources/Icons.xaml | 120 +- .../Resources/Styles/Border.xaml | 0 .../Resources/Styles/Button.xaml | 0 .../Resources/Styles/CheckBox.xaml | 0 .../Resources/Styles/ComboBox.xaml | 0 .../Resources/Styles/ContextMenu.xaml | 0 .../Resources/Styles/DataGrid.xaml | 0 .../Resources/Styles/HyperLink.xaml | 0 .../Resources/Styles/Label.xaml | 0 .../Resources/Styles/ListView.xaml | 0 {SourceGit => src}/Resources/Styles/Path.xaml | 0 .../Resources/Styles/RadioButton.xaml | 0 .../Resources/Styles/ScrollBar.xaml | 0 .../Resources/Styles/ScrollViewer.xaml | 0 .../Resources/Styles/TabControl.xaml | 0 .../Resources/Styles/TextBox.xaml | 250 +- .../Resources/Styles/ToggleButton.xaml | 0 .../Resources/Styles/Tooltip.xaml | 0 .../Resources/Styles/TreeView.xaml | 0 {SourceGit => src}/Resources/Themes/Dark.xaml | 0 .../Resources/Themes/Light.xaml | 0 {SourceGit => src}/SourceGit.csproj | 47 +- {SourceGit => src}/UI/About.xaml | 164 +- {SourceGit => src}/UI/About.xaml.cs | 0 {SourceGit => src}/UI/AddSubmodule.xaml | 0 {SourceGit => src}/UI/AddSubmodule.xaml.cs | 0 {SourceGit => src}/UI/Apply.xaml | 10 +- {SourceGit => src}/UI/Apply.xaml.cs | 0 {SourceGit => src}/UI/Blame.xaml | 12 +- {SourceGit => src}/UI/Blame.xaml.cs | 0 {SourceGit => src}/UI/CherryPick.xaml | 0 {SourceGit => src}/UI/CherryPick.xaml.cs | 0 {SourceGit => src}/UI/Clone.xaml | 0 {SourceGit => src}/UI/Clone.xaml.cs | 0 {SourceGit => src}/UI/CommitViewer.xaml | 0 {SourceGit => src}/UI/CommitViewer.xaml.cs | 1008 ++++---- {SourceGit => src}/UI/Configure.xaml | 0 {SourceGit => src}/UI/Configure.xaml.cs | 0 {SourceGit => src}/UI/CreateBranch.xaml | 0 {SourceGit => src}/UI/CreateBranch.xaml.cs | 0 {SourceGit => src}/UI/CreateTag.xaml | 0 {SourceGit => src}/UI/CreateTag.xaml.cs | 0 {SourceGit => src}/UI/Dashboard.xaml | 0 {SourceGit => src}/UI/Dashboard.xaml.cs | 2136 ++++++++--------- {SourceGit => src}/UI/DeleteBranch.xaml | 0 {SourceGit => src}/UI/DeleteBranch.xaml.cs | 0 {SourceGit => src}/UI/DeleteRemote.xaml | 0 {SourceGit => src}/UI/DeleteRemote.xaml.cs | 0 {SourceGit => src}/UI/DeleteTag.xaml | 0 {SourceGit => src}/UI/DeleteTag.xaml.cs | 0 {SourceGit => src}/UI/DiffViewer.xaml | 406 ++-- {SourceGit => src}/UI/DiffViewer.xaml.cs | 810 +++---- {SourceGit => src}/UI/Discard.xaml | 0 {SourceGit => src}/UI/Discard.xaml.cs | 0 {SourceGit => src}/UI/Fetch.xaml | 0 {SourceGit => src}/UI/Fetch.xaml.cs | 0 {SourceGit => src}/UI/FileHistories.xaml | 0 {SourceGit => src}/UI/FileHistories.xaml.cs | 240 +- .../UI/GitFlowFinishBranch.xaml | 0 .../UI/GitFlowFinishBranch.xaml.cs | 0 {SourceGit => src}/UI/GitFlowSetup.xaml | 0 {SourceGit => src}/UI/GitFlowSetup.xaml.cs | 0 {SourceGit => src}/UI/GitFlowStartBranch.xaml | 0 .../UI/GitFlowStartBranch.xaml.cs | 0 {SourceGit => src}/UI/Histories.xaml | 0 {SourceGit => src}/UI/Histories.xaml.cs | 0 {SourceGit => src}/UI/Init.xaml | 0 {SourceGit => src}/UI/Init.xaml.cs | 0 {SourceGit => src}/UI/InteractiveRebase.xaml | 0 .../UI/InteractiveRebase.xaml.cs | 0 {SourceGit => src}/UI/Launcher.xaml | 0 {SourceGit => src}/UI/Launcher.xaml.cs | 0 {SourceGit => src}/UI/Manager.xaml | 402 ++-- {SourceGit => src}/UI/Manager.xaml.cs | 0 {SourceGit => src}/UI/Merge.xaml | 0 {SourceGit => src}/UI/Merge.xaml.cs | 0 {SourceGit => src}/UI/PopupManager.xaml | 0 {SourceGit => src}/UI/PopupManager.xaml.cs | 0 {SourceGit => src}/UI/Preference.xaml | 362 +-- {SourceGit => src}/UI/Preference.xaml.cs | 440 ++-- {SourceGit => src}/UI/Pull.xaml | 0 {SourceGit => src}/UI/Pull.xaml.cs | 0 {SourceGit => src}/UI/Push.xaml | 0 {SourceGit => src}/UI/Push.xaml.cs | 0 {SourceGit => src}/UI/PushTag.xaml | 0 {SourceGit => src}/UI/PushTag.xaml.cs | 0 {SourceGit => src}/UI/Rebase.xaml | 0 {SourceGit => src}/UI/Rebase.xaml.cs | 0 {SourceGit => src}/UI/Remote.xaml | 0 {SourceGit => src}/UI/Remote.xaml.cs | 0 {SourceGit => src}/UI/RenameBranch.xaml | 0 {SourceGit => src}/UI/RenameBranch.xaml.cs | 0 {SourceGit => src}/UI/Reset.xaml | 0 {SourceGit => src}/UI/Reset.xaml.cs | 0 {SourceGit => src}/UI/Revert.xaml | 0 {SourceGit => src}/UI/Revert.xaml.cs | 0 {SourceGit => src}/UI/Stash.xaml | 0 {SourceGit => src}/UI/Stash.xaml.cs | 0 {SourceGit => src}/UI/Stashes.xaml | 0 {SourceGit => src}/UI/Stashes.xaml.cs | 242 +- {SourceGit => src}/UI/Waiting.xaml | 0 {SourceGit => src}/UI/Waiting.xaml.cs | 0 {SourceGit => src}/UI/WorkingCopy.xaml | 0 {SourceGit => src}/UI/WorkingCopy.xaml.cs | 2122 ++++++++-------- 140 files changed, 4980 insertions(+), 5003 deletions(-) delete mode 100644 SourceGit.sln delete mode 100644 SourceGit/Properties/AssemblyInfo.cs rename Preview_Dark.png => screenshots/theme_dark.png (100%) rename Preview_Light.png => screenshots/theme_light.png (100%) rename {SourceGit => src}/App.config (100%) rename {SourceGit => src}/App.ico (100%) rename {SourceGit => src}/App.manifest (100%) rename {SourceGit => src}/App.xaml (100%) rename {SourceGit => src}/App.xaml.cs (100%) rename {SourceGit => src}/Converters/BoolToCollapsed.cs (100%) rename {SourceGit => src}/Converters/FileStatusToColor.cs (100%) rename {SourceGit => src}/Converters/FileStatusToIcon.cs (100%) rename {SourceGit => src}/Converters/IndentToMargin.cs (100%) rename {SourceGit => src}/Converters/InverseBool.cs (100%) rename {SourceGit => src}/Converters/InverseBoolToCollapsed.cs (100%) rename {SourceGit => src}/Converters/PercentToDouble.cs (100%) rename {SourceGit => src}/Converters/TreeViewItemDepthToMargin.cs (100%) rename {SourceGit => src}/Git/Blame.cs (100%) rename {SourceGit => src}/Git/Branch.cs (100%) rename {SourceGit => src}/Git/Change.cs (100%) rename {SourceGit => src}/Git/Commit.cs (100%) rename {SourceGit => src}/Git/Decorator.cs (100%) rename {SourceGit => src}/Git/Diff.cs (97%) rename {SourceGit => src}/Git/MergeTool.cs (100%) rename {SourceGit => src}/Git/Preference.cs (100%) rename {SourceGit => src}/Git/Remote.cs (96%) rename {SourceGit => src}/Git/Repository.cs (99%) rename {SourceGit => src}/Git/Stash.cs (100%) rename {SourceGit => src}/Git/Tag.cs (100%) rename {SourceGit => src}/Git/User.cs (100%) rename {SourceGit => src}/Helpers/CommitGraph.cs (100%) rename {SourceGit => src}/Helpers/TextBoxHelper.cs (97%) rename {SourceGit => src}/Helpers/TreeViewHelper.cs (100%) rename {SourceGit => src}/Helpers/Validations.cs (100%) rename {SourceGit => src}/Resources/Controls.xaml (100%) rename {SourceGit => src}/Resources/Icons.xaml (99%) rename {SourceGit => src}/Resources/Styles/Border.xaml (100%) rename {SourceGit => src}/Resources/Styles/Button.xaml (100%) rename {SourceGit => src}/Resources/Styles/CheckBox.xaml (100%) rename {SourceGit => src}/Resources/Styles/ComboBox.xaml (100%) rename {SourceGit => src}/Resources/Styles/ContextMenu.xaml (100%) rename {SourceGit => src}/Resources/Styles/DataGrid.xaml (100%) rename {SourceGit => src}/Resources/Styles/HyperLink.xaml (100%) rename {SourceGit => src}/Resources/Styles/Label.xaml (100%) rename {SourceGit => src}/Resources/Styles/ListView.xaml (100%) rename {SourceGit => src}/Resources/Styles/Path.xaml (100%) rename {SourceGit => src}/Resources/Styles/RadioButton.xaml (100%) rename {SourceGit => src}/Resources/Styles/ScrollBar.xaml (100%) rename {SourceGit => src}/Resources/Styles/ScrollViewer.xaml (100%) rename {SourceGit => src}/Resources/Styles/TabControl.xaml (100%) rename {SourceGit => src}/Resources/Styles/TextBox.xaml (98%) rename {SourceGit => src}/Resources/Styles/ToggleButton.xaml (100%) rename {SourceGit => src}/Resources/Styles/Tooltip.xaml (100%) rename {SourceGit => src}/Resources/Styles/TreeView.xaml (100%) rename {SourceGit => src}/Resources/Themes/Dark.xaml (100%) rename {SourceGit => src}/Resources/Themes/Light.xaml (100%) rename {SourceGit => src}/SourceGit.csproj (71%) rename {SourceGit => src}/UI/About.xaml (97%) rename {SourceGit => src}/UI/About.xaml.cs (100%) rename {SourceGit => src}/UI/AddSubmodule.xaml (100%) rename {SourceGit => src}/UI/AddSubmodule.xaml.cs (100%) rename {SourceGit => src}/UI/Apply.xaml (99%) rename {SourceGit => src}/UI/Apply.xaml.cs (100%) rename {SourceGit => src}/UI/Blame.xaml (99%) rename {SourceGit => src}/UI/Blame.xaml.cs (100%) rename {SourceGit => src}/UI/CherryPick.xaml (100%) rename {SourceGit => src}/UI/CherryPick.xaml.cs (100%) rename {SourceGit => src}/UI/Clone.xaml (100%) rename {SourceGit => src}/UI/Clone.xaml.cs (100%) rename {SourceGit => src}/UI/CommitViewer.xaml (100%) rename {SourceGit => src}/UI/CommitViewer.xaml.cs (97%) rename {SourceGit => src}/UI/Configure.xaml (100%) rename {SourceGit => src}/UI/Configure.xaml.cs (100%) rename {SourceGit => src}/UI/CreateBranch.xaml (100%) rename {SourceGit => src}/UI/CreateBranch.xaml.cs (100%) rename {SourceGit => src}/UI/CreateTag.xaml (100%) rename {SourceGit => src}/UI/CreateTag.xaml.cs (100%) rename {SourceGit => src}/UI/Dashboard.xaml (100%) rename {SourceGit => src}/UI/Dashboard.xaml.cs (97%) rename {SourceGit => src}/UI/DeleteBranch.xaml (100%) rename {SourceGit => src}/UI/DeleteBranch.xaml.cs (100%) rename {SourceGit => src}/UI/DeleteRemote.xaml (100%) rename {SourceGit => src}/UI/DeleteRemote.xaml.cs (100%) rename {SourceGit => src}/UI/DeleteTag.xaml (100%) rename {SourceGit => src}/UI/DeleteTag.xaml.cs (100%) rename {SourceGit => src}/UI/DiffViewer.xaml (98%) rename {SourceGit => src}/UI/DiffViewer.xaml.cs (97%) rename {SourceGit => src}/UI/Discard.xaml (100%) rename {SourceGit => src}/UI/Discard.xaml.cs (100%) rename {SourceGit => src}/UI/Fetch.xaml (100%) rename {SourceGit => src}/UI/Fetch.xaml.cs (100%) rename {SourceGit => src}/UI/FileHistories.xaml (100%) rename {SourceGit => src}/UI/FileHistories.xaml.cs (97%) rename {SourceGit => src}/UI/GitFlowFinishBranch.xaml (100%) rename {SourceGit => src}/UI/GitFlowFinishBranch.xaml.cs (100%) rename {SourceGit => src}/UI/GitFlowSetup.xaml (100%) rename {SourceGit => src}/UI/GitFlowSetup.xaml.cs (100%) rename {SourceGit => src}/UI/GitFlowStartBranch.xaml (100%) rename {SourceGit => src}/UI/GitFlowStartBranch.xaml.cs (100%) rename {SourceGit => src}/UI/Histories.xaml (100%) rename {SourceGit => src}/UI/Histories.xaml.cs (100%) rename {SourceGit => src}/UI/Init.xaml (100%) rename {SourceGit => src}/UI/Init.xaml.cs (100%) rename {SourceGit => src}/UI/InteractiveRebase.xaml (100%) rename {SourceGit => src}/UI/InteractiveRebase.xaml.cs (100%) rename {SourceGit => src}/UI/Launcher.xaml (100%) rename {SourceGit => src}/UI/Launcher.xaml.cs (100%) rename {SourceGit => src}/UI/Manager.xaml (98%) rename {SourceGit => src}/UI/Manager.xaml.cs (100%) rename {SourceGit => src}/UI/Merge.xaml (100%) rename {SourceGit => src}/UI/Merge.xaml.cs (100%) rename {SourceGit => src}/UI/PopupManager.xaml (100%) rename {SourceGit => src}/UI/PopupManager.xaml.cs (100%) rename {SourceGit => src}/UI/Preference.xaml (98%) rename {SourceGit => src}/UI/Preference.xaml.cs (97%) rename {SourceGit => src}/UI/Pull.xaml (100%) rename {SourceGit => src}/UI/Pull.xaml.cs (100%) rename {SourceGit => src}/UI/Push.xaml (100%) rename {SourceGit => src}/UI/Push.xaml.cs (100%) rename {SourceGit => src}/UI/PushTag.xaml (100%) rename {SourceGit => src}/UI/PushTag.xaml.cs (100%) rename {SourceGit => src}/UI/Rebase.xaml (100%) rename {SourceGit => src}/UI/Rebase.xaml.cs (100%) rename {SourceGit => src}/UI/Remote.xaml (100%) rename {SourceGit => src}/UI/Remote.xaml.cs (100%) rename {SourceGit => src}/UI/RenameBranch.xaml (100%) rename {SourceGit => src}/UI/RenameBranch.xaml.cs (100%) rename {SourceGit => src}/UI/Reset.xaml (100%) rename {SourceGit => src}/UI/Reset.xaml.cs (100%) rename {SourceGit => src}/UI/Revert.xaml (100%) rename {SourceGit => src}/UI/Revert.xaml.cs (100%) rename {SourceGit => src}/UI/Stash.xaml (100%) rename {SourceGit => src}/UI/Stash.xaml.cs (100%) rename {SourceGit => src}/UI/Stashes.xaml (100%) rename {SourceGit => src}/UI/Stashes.xaml.cs (97%) rename {SourceGit => src}/UI/Waiting.xaml (100%) rename {SourceGit => src}/UI/Waiting.xaml.cs (100%) rename {SourceGit => src}/UI/WorkingCopy.xaml (100%) rename {SourceGit => src}/UI/WorkingCopy.xaml.cs (97%) diff --git a/README.md b/README.md index c0fd512f..f40071ef 100644 --- a/README.md +++ b/README.md @@ -6,11 +6,11 @@ * DarkTheme -![Preview_Dark](./Preview_Dark.png) +![Theme Dark](./screenshots/theme_dark.png) * LightTheme -![Preview_Light](./Preview_Light.png) +![Theme Light](./screenshots/theme_light.png) ## Thanks diff --git a/SourceGit.sln b/SourceGit.sln deleted file mode 100644 index 50aba2bc..00000000 --- a/SourceGit.sln +++ /dev/null @@ -1,25 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.30011.22 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SourceGit", "SourceGit\SourceGit.csproj", "{0A04DD59-7A6C-410C-B427-7DC8183993BD}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {0A04DD59-7A6C-410C-B427-7DC8183993BD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0A04DD59-7A6C-410C-B427-7DC8183993BD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0A04DD59-7A6C-410C-B427-7DC8183993BD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0A04DD59-7A6C-410C-B427-7DC8183993BD}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {01F4EC04-5B3C-4D74-BB48-1C251B2D2853} - EndGlobalSection -EndGlobal diff --git a/SourceGit/Properties/AssemblyInfo.cs b/SourceGit/Properties/AssemblyInfo.cs deleted file mode 100644 index c0ea722f..00000000 --- a/SourceGit/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,3 +0,0 @@ -using System.Windows; - -[assembly: ThemeInfo(ResourceDictionaryLocation.None, ResourceDictionaryLocation.SourceAssembly)] \ No newline at end of file diff --git a/Preview_Dark.png b/screenshots/theme_dark.png similarity index 100% rename from Preview_Dark.png rename to screenshots/theme_dark.png diff --git a/Preview_Light.png b/screenshots/theme_light.png similarity index 100% rename from Preview_Light.png rename to screenshots/theme_light.png diff --git a/SourceGit/App.config b/src/App.config similarity index 100% rename from SourceGit/App.config rename to src/App.config diff --git a/SourceGit/App.ico b/src/App.ico similarity index 100% rename from SourceGit/App.ico rename to src/App.ico diff --git a/SourceGit/App.manifest b/src/App.manifest similarity index 100% rename from SourceGit/App.manifest rename to src/App.manifest diff --git a/SourceGit/App.xaml b/src/App.xaml similarity index 100% rename from SourceGit/App.xaml rename to src/App.xaml diff --git a/SourceGit/App.xaml.cs b/src/App.xaml.cs similarity index 100% rename from SourceGit/App.xaml.cs rename to src/App.xaml.cs diff --git a/SourceGit/Converters/BoolToCollapsed.cs b/src/Converters/BoolToCollapsed.cs similarity index 100% rename from SourceGit/Converters/BoolToCollapsed.cs rename to src/Converters/BoolToCollapsed.cs diff --git a/SourceGit/Converters/FileStatusToColor.cs b/src/Converters/FileStatusToColor.cs similarity index 100% rename from SourceGit/Converters/FileStatusToColor.cs rename to src/Converters/FileStatusToColor.cs diff --git a/SourceGit/Converters/FileStatusToIcon.cs b/src/Converters/FileStatusToIcon.cs similarity index 100% rename from SourceGit/Converters/FileStatusToIcon.cs rename to src/Converters/FileStatusToIcon.cs diff --git a/SourceGit/Converters/IndentToMargin.cs b/src/Converters/IndentToMargin.cs similarity index 100% rename from SourceGit/Converters/IndentToMargin.cs rename to src/Converters/IndentToMargin.cs diff --git a/SourceGit/Converters/InverseBool.cs b/src/Converters/InverseBool.cs similarity index 100% rename from SourceGit/Converters/InverseBool.cs rename to src/Converters/InverseBool.cs diff --git a/SourceGit/Converters/InverseBoolToCollapsed.cs b/src/Converters/InverseBoolToCollapsed.cs similarity index 100% rename from SourceGit/Converters/InverseBoolToCollapsed.cs rename to src/Converters/InverseBoolToCollapsed.cs diff --git a/SourceGit/Converters/PercentToDouble.cs b/src/Converters/PercentToDouble.cs similarity index 100% rename from SourceGit/Converters/PercentToDouble.cs rename to src/Converters/PercentToDouble.cs diff --git a/SourceGit/Converters/TreeViewItemDepthToMargin.cs b/src/Converters/TreeViewItemDepthToMargin.cs similarity index 100% rename from SourceGit/Converters/TreeViewItemDepthToMargin.cs rename to src/Converters/TreeViewItemDepthToMargin.cs diff --git a/SourceGit/Git/Blame.cs b/src/Git/Blame.cs similarity index 100% rename from SourceGit/Git/Blame.cs rename to src/Git/Blame.cs diff --git a/SourceGit/Git/Branch.cs b/src/Git/Branch.cs similarity index 100% rename from SourceGit/Git/Branch.cs rename to src/Git/Branch.cs diff --git a/SourceGit/Git/Change.cs b/src/Git/Change.cs similarity index 100% rename from SourceGit/Git/Change.cs rename to src/Git/Change.cs diff --git a/SourceGit/Git/Commit.cs b/src/Git/Commit.cs similarity index 100% rename from SourceGit/Git/Commit.cs rename to src/Git/Commit.cs diff --git a/SourceGit/Git/Decorator.cs b/src/Git/Decorator.cs similarity index 100% rename from SourceGit/Git/Decorator.cs rename to src/Git/Decorator.cs diff --git a/SourceGit/Git/Diff.cs b/src/Git/Diff.cs similarity index 97% rename from SourceGit/Git/Diff.cs rename to src/Git/Diff.cs index 7ce0190c..5f54e173 100644 --- a/SourceGit/Git/Diff.cs +++ b/src/Git/Diff.cs @@ -1,263 +1,263 @@ -using System.Collections.Generic; -using System.IO; -using System.Text; -using System.Text.RegularExpressions; - -namespace SourceGit.Git { - - /// - /// Diff helper. - /// - public class Diff { - private static readonly Regex REG_INDICATOR = new Regex(@"^@@ \-(\d+),?\d* \+(\d+),?\d* @@", RegexOptions.None); - - /// - /// Line mode. - /// - public enum LineMode { - Normal, - Indicator, - Empty, - Added, - Deleted, - } - - /// - /// Side - /// - public enum Side { - Left, - Right, - Both, - } - - /// - /// Binary change. - /// - public class BinaryChange { - public long Size = 0; - public long PreSize = 0; - } - - /// - /// Block - /// - public class Block { - public Side Side = Side.Both; - public LineMode Mode = LineMode.Normal; - public int LeftStart = 0; - public int RightStart = 0; - public int Count = 0; - public StringBuilder Builder = new StringBuilder(); - - public bool IsLeftDelete => Side == Side.Left && Mode == LineMode.Deleted; - public bool IsRightAdded => Side == Side.Right && Mode == LineMode.Added; - public bool IsBothSideNormal => Side == Side.Both && Mode == LineMode.Normal; - public bool CanShowNumber => Mode != LineMode.Indicator && Mode != LineMode.Empty; - - public void Append(string data) { - if (Count > 0) Builder.AppendLine(); - Builder.Append(data); - Count++; - } - } - - /// - /// Diff result. - /// - public class Result { - public bool IsValid = false; - public bool IsBinary = false; - public List Blocks = new List(); - public int LeftLineCount = 0; - public int RightLineCount = 0; - - public void SetBinary() { - IsValid = true; - IsBinary = true; - } - - public void Add(Block b) { - if (b.Count == 0) return; - - switch (b.Side) { - case Side.Left: - LeftLineCount += b.Count; - break; - case Side.Right: - RightLineCount += b.Count; - break; - default: - LeftLineCount += b.Count; - RightLineCount += b.Count; - break; - } - - Blocks.Add(b); - } - - public void Fit() { - if (LeftLineCount > RightLineCount) { - var b = new Block(); - b.Side = Side.Right; - b.Mode = LineMode.Empty; - - var delta = LeftLineCount - RightLineCount; - for (int i = 0; i < delta; i++) b.Append(""); - - Add(b); - } else if (LeftLineCount < RightLineCount) { - var b = new Block(); - b.Side = Side.Left; - b.Mode = LineMode.Empty; - - var delta = RightLineCount - LeftLineCount; - for (int i = 0; i < delta; i++) b.Append(""); - - Add(b); - } - } - } - - /// - /// Run diff process. - /// - /// - /// - /// - public static Result Run(Repository repo, string args) { - var rs = new Result(); - var current = new Block(); - var left = 0; - var right = 0; - - repo.RunCommand($"diff --ignore-cr-at-eol {args}", line => { - if (rs.IsBinary) return; - - if (!rs.IsValid) { - var match = REG_INDICATOR.Match(line); - if (!match.Success) { - if (line.StartsWith("Binary ")) rs.SetBinary(); - return; - } - - rs.IsValid = true; - left = int.Parse(match.Groups[1].Value); - right = int.Parse(match.Groups[2].Value); - current.Mode = LineMode.Indicator; - current.Append(line); - } else { - if (line[0] == '-') { - if (current.IsLeftDelete) { - current.Append(line.Substring(1)); - } else { - rs.Add(current); - - current = new Block(); - current.Side = Side.Left; - current.Mode = LineMode.Deleted; - current.LeftStart = left; - current.Append(line.Substring(1)); - } - - left++; - } else if (line[0] == '+') { - if (current.IsRightAdded) { - current.Append(line.Substring(1)); - } else { - rs.Add(current); - - current = new Block(); - current.Side = Side.Right; - current.Mode = LineMode.Added; - current.RightStart = right; - current.Append(line.Substring(1)); - } - - right++; - } else if (line[0] == '\\') { - var tmp = new Block(); - tmp.Side = current.Side; - tmp.Mode = LineMode.Indicator; - tmp.Append(line.Substring(1)); - - rs.Add(current); - rs.Add(tmp); - rs.Fit(); - - current = new Block(); - current.LeftStart = left; - current.RightStart = right; - } else { - var match = REG_INDICATOR.Match(line); - if (match.Success) { - rs.Add(current); - rs.Fit(); - - left = int.Parse(match.Groups[1].Value); - right = int.Parse(match.Groups[2].Value); - - current = new Block(); - current.Mode = LineMode.Indicator; - current.Append(line); - } else { - if (current.IsBothSideNormal) { - current.Append(line.Substring(1)); - } else { - rs.Add(current); - rs.Fit(); - - current = new Block(); - current.LeftStart = left; - current.RightStart = right; - current.Append(line.Substring(1)); - } - - left++; - right++; - } - } - } - }); - - rs.Add(current); - rs.Fit(); - - if (rs.IsBinary) rs.Blocks.Clear(); - return rs; - } - - /// - /// Get file size changes for binary file. - /// - /// - /// - /// - /// - /// - public static BinaryChange GetSizeChange(Repository repo, string[] revisions, string path, string orgPath = null) { - var change = new BinaryChange(); - - if (revisions.Length == 0) { // Compare working copy with HEAD - change.Size = new FileInfo(Path.Combine(repo.Path, path)).Length; - change.PreSize = repo.GetFileSize("HEAD", path); - } else if (revisions.Length == 1) { // Compare HEAD with given revision. - change.Size = repo.GetFileSize("HEAD", path); - if (!string.IsNullOrEmpty(orgPath)) { - change.PreSize = repo.GetFileSize(revisions[0], orgPath); - } else { - change.PreSize = repo.GetFileSize(revisions[0], path); - } - } else { - change.Size = repo.GetFileSize(revisions[1], path); - if (!string.IsNullOrEmpty(orgPath)) { - change.PreSize = repo.GetFileSize(revisions[0], orgPath); - } else { - change.PreSize = repo.GetFileSize(revisions[0], path); - } - } - - return change; - } - } -} +using System.Collections.Generic; +using System.IO; +using System.Text; +using System.Text.RegularExpressions; + +namespace SourceGit.Git { + + /// + /// Diff helper. + /// + public class Diff { + private static readonly Regex REG_INDICATOR = new Regex(@"^@@ \-(\d+),?\d* \+(\d+),?\d* @@", RegexOptions.None); + + /// + /// Line mode. + /// + public enum LineMode { + Normal, + Indicator, + Empty, + Added, + Deleted, + } + + /// + /// Side + /// + public enum Side { + Left, + Right, + Both, + } + + /// + /// Binary change. + /// + public class BinaryChange { + public long Size = 0; + public long PreSize = 0; + } + + /// + /// Block + /// + public class Block { + public Side Side = Side.Both; + public LineMode Mode = LineMode.Normal; + public int LeftStart = 0; + public int RightStart = 0; + public int Count = 0; + public StringBuilder Builder = new StringBuilder(); + + public bool IsLeftDelete => Side == Side.Left && Mode == LineMode.Deleted; + public bool IsRightAdded => Side == Side.Right && Mode == LineMode.Added; + public bool IsBothSideNormal => Side == Side.Both && Mode == LineMode.Normal; + public bool CanShowNumber => Mode != LineMode.Indicator && Mode != LineMode.Empty; + + public void Append(string data) { + if (Count > 0) Builder.AppendLine(); + Builder.Append(data); + Count++; + } + } + + /// + /// Diff result. + /// + public class Result { + public bool IsValid = false; + public bool IsBinary = false; + public List Blocks = new List(); + public int LeftLineCount = 0; + public int RightLineCount = 0; + + public void SetBinary() { + IsValid = true; + IsBinary = true; + } + + public void Add(Block b) { + if (b.Count == 0) return; + + switch (b.Side) { + case Side.Left: + LeftLineCount += b.Count; + break; + case Side.Right: + RightLineCount += b.Count; + break; + default: + LeftLineCount += b.Count; + RightLineCount += b.Count; + break; + } + + Blocks.Add(b); + } + + public void Fit() { + if (LeftLineCount > RightLineCount) { + var b = new Block(); + b.Side = Side.Right; + b.Mode = LineMode.Empty; + + var delta = LeftLineCount - RightLineCount; + for (int i = 0; i < delta; i++) b.Append(""); + + Add(b); + } else if (LeftLineCount < RightLineCount) { + var b = new Block(); + b.Side = Side.Left; + b.Mode = LineMode.Empty; + + var delta = RightLineCount - LeftLineCount; + for (int i = 0; i < delta; i++) b.Append(""); + + Add(b); + } + } + } + + /// + /// Run diff process. + /// + /// + /// + /// + public static Result Run(Repository repo, string args) { + var rs = new Result(); + var current = new Block(); + var left = 0; + var right = 0; + + repo.RunCommand($"diff --ignore-cr-at-eol {args}", line => { + if (rs.IsBinary) return; + + if (!rs.IsValid) { + var match = REG_INDICATOR.Match(line); + if (!match.Success) { + if (line.StartsWith("Binary ")) rs.SetBinary(); + return; + } + + rs.IsValid = true; + left = int.Parse(match.Groups[1].Value); + right = int.Parse(match.Groups[2].Value); + current.Mode = LineMode.Indicator; + current.Append(line); + } else { + if (line[0] == '-') { + if (current.IsLeftDelete) { + current.Append(line.Substring(1)); + } else { + rs.Add(current); + + current = new Block(); + current.Side = Side.Left; + current.Mode = LineMode.Deleted; + current.LeftStart = left; + current.Append(line.Substring(1)); + } + + left++; + } else if (line[0] == '+') { + if (current.IsRightAdded) { + current.Append(line.Substring(1)); + } else { + rs.Add(current); + + current = new Block(); + current.Side = Side.Right; + current.Mode = LineMode.Added; + current.RightStart = right; + current.Append(line.Substring(1)); + } + + right++; + } else if (line[0] == '\\') { + var tmp = new Block(); + tmp.Side = current.Side; + tmp.Mode = LineMode.Indicator; + tmp.Append(line.Substring(1)); + + rs.Add(current); + rs.Add(tmp); + rs.Fit(); + + current = new Block(); + current.LeftStart = left; + current.RightStart = right; + } else { + var match = REG_INDICATOR.Match(line); + if (match.Success) { + rs.Add(current); + rs.Fit(); + + left = int.Parse(match.Groups[1].Value); + right = int.Parse(match.Groups[2].Value); + + current = new Block(); + current.Mode = LineMode.Indicator; + current.Append(line); + } else { + if (current.IsBothSideNormal) { + current.Append(line.Substring(1)); + } else { + rs.Add(current); + rs.Fit(); + + current = new Block(); + current.LeftStart = left; + current.RightStart = right; + current.Append(line.Substring(1)); + } + + left++; + right++; + } + } + } + }); + + rs.Add(current); + rs.Fit(); + + if (rs.IsBinary) rs.Blocks.Clear(); + return rs; + } + + /// + /// Get file size changes for binary file. + /// + /// + /// + /// + /// + /// + public static BinaryChange GetSizeChange(Repository repo, string[] revisions, string path, string orgPath = null) { + var change = new BinaryChange(); + + if (revisions.Length == 0) { // Compare working copy with HEAD + change.Size = new FileInfo(Path.Combine(repo.Path, path)).Length; + change.PreSize = repo.GetFileSize("HEAD", path); + } else if (revisions.Length == 1) { // Compare HEAD with given revision. + change.Size = repo.GetFileSize("HEAD", path); + if (!string.IsNullOrEmpty(orgPath)) { + change.PreSize = repo.GetFileSize(revisions[0], orgPath); + } else { + change.PreSize = repo.GetFileSize(revisions[0], path); + } + } else { + change.Size = repo.GetFileSize(revisions[1], path); + if (!string.IsNullOrEmpty(orgPath)) { + change.PreSize = repo.GetFileSize(revisions[0], orgPath); + } else { + change.PreSize = repo.GetFileSize(revisions[0], path); + } + } + + return change; + } + } +} diff --git a/SourceGit/Git/MergeTool.cs b/src/Git/MergeTool.cs similarity index 100% rename from SourceGit/Git/MergeTool.cs rename to src/Git/MergeTool.cs diff --git a/SourceGit/Git/Preference.cs b/src/Git/Preference.cs similarity index 100% rename from SourceGit/Git/Preference.cs rename to src/Git/Preference.cs diff --git a/SourceGit/Git/Remote.cs b/src/Git/Remote.cs similarity index 96% rename from SourceGit/Git/Remote.cs rename to src/Git/Remote.cs index ed32e810..079bd2ea 100644 --- a/SourceGit/Git/Remote.cs +++ b/src/Git/Remote.cs @@ -1,97 +1,97 @@ -using System.Collections.Generic; -using System.Text.RegularExpressions; - -namespace SourceGit.Git { - - /// - /// Git remote - /// - public class Remote { - private static readonly Regex FORMAT = new Regex(@"^([\w\.\-]+)\s*(\S+).*$"); - - /// - /// Name of this remote - /// - public string Name { get; set; } - - /// - /// URL - /// - public string URL { get; set; } - - /// - /// Parsing remote - /// - /// Repository - /// - public static List Load(Repository repo) { - var remotes = new List(); - var added = new List(); - - repo.RunCommand("remote -v", data => { - var match = FORMAT.Match(data); - if (!match.Success) return; - - var remote = new Remote() { - Name = match.Groups[1].Value, - URL = match.Groups[2].Value, - }; - - if (added.Contains(remote.Name)) return; - - added.Add(remote.Name); - remotes.Add(remote); - }); - - return remotes; - } - - /// - /// Add new remote - /// - /// - /// - /// - public static void Add(Repository repo, string name, string url) { - var errs = repo.RunCommand($"remote add {name} {url}", null); - if (errs != null) { - App.RaiseError(errs); - } else { - repo.Fetch(new Remote() { Name = name }, true, null); - } - } - - /// - /// Delete remote. - /// - /// - /// - public static void Delete(Repository repo, string remote) { - var errs = repo.RunCommand($"remote remove {remote}", null); - if (errs != null) App.RaiseError(errs); - } - - /// - /// Edit remote. - /// - /// - /// - /// - public void Edit(Repository repo, string name, string url) { - string errs = null; - - if (name != Name) { - errs = repo.RunCommand($"remote rename {Name} {name}", null); - if (errs != null) { - App.RaiseError(errs); - return; - } - } - - if (url != URL) { - errs = repo.RunCommand($"remote set-url {name} {url}", null); - if (errs != null) App.RaiseError(errs); - } - } - } -} +using System.Collections.Generic; +using System.Text.RegularExpressions; + +namespace SourceGit.Git { + + /// + /// Git remote + /// + public class Remote { + private static readonly Regex FORMAT = new Regex(@"^([\w\.\-]+)\s*(\S+).*$"); + + /// + /// Name of this remote + /// + public string Name { get; set; } + + /// + /// URL + /// + public string URL { get; set; } + + /// + /// Parsing remote + /// + /// Repository + /// + public static List Load(Repository repo) { + var remotes = new List(); + var added = new List(); + + repo.RunCommand("remote -v", data => { + var match = FORMAT.Match(data); + if (!match.Success) return; + + var remote = new Remote() { + Name = match.Groups[1].Value, + URL = match.Groups[2].Value, + }; + + if (added.Contains(remote.Name)) return; + + added.Add(remote.Name); + remotes.Add(remote); + }); + + return remotes; + } + + /// + /// Add new remote + /// + /// + /// + /// + public static void Add(Repository repo, string name, string url) { + var errs = repo.RunCommand($"remote add {name} {url}", null); + if (errs != null) { + App.RaiseError(errs); + } else { + repo.Fetch(new Remote() { Name = name }, true, null); + } + } + + /// + /// Delete remote. + /// + /// + /// + public static void Delete(Repository repo, string remote) { + var errs = repo.RunCommand($"remote remove {remote}", null); + if (errs != null) App.RaiseError(errs); + } + + /// + /// Edit remote. + /// + /// + /// + /// + public void Edit(Repository repo, string name, string url) { + string errs = null; + + if (name != Name) { + errs = repo.RunCommand($"remote rename {Name} {name}", null); + if (errs != null) { + App.RaiseError(errs); + return; + } + } + + if (url != URL) { + errs = repo.RunCommand($"remote set-url {name} {url}", null); + if (errs != null) App.RaiseError(errs); + } + } + } +} diff --git a/SourceGit/Git/Repository.cs b/src/Git/Repository.cs similarity index 99% rename from SourceGit/Git/Repository.cs rename to src/Git/Repository.cs index 9efc74e3..f573cd7a 100644 --- a/SourceGit/Git/Repository.cs +++ b/src/Git/Repository.cs @@ -430,10 +430,10 @@ namespace SourceGit.Git { /// public static Repository Clone(string url, string folder, string rName, string lName, Action onProgress) { string RemoteName; - if (rName != null) { - RemoteName = $" --origin {rName}"; - } else { - RemoteName = null; + if (rName != null) { + RemoteName = $" --origin {rName}"; + } else { + RemoteName = null; } var errs = RunCommand(folder, $"-c credential.helper=manager clone --progress --verbose {RemoteName} --recurse-submodules {url} {lName}", line => { @@ -471,8 +471,8 @@ namespace SourceGit.Git { var errs = RunCommand(args, line => { if (line != null) onProgress?.Invoke(line); - }, true); - + }, true); + OnSubmoduleChanged?.Invoke(); AssertCommand(errs); diff --git a/SourceGit/Git/Stash.cs b/src/Git/Stash.cs similarity index 100% rename from SourceGit/Git/Stash.cs rename to src/Git/Stash.cs diff --git a/SourceGit/Git/Tag.cs b/src/Git/Tag.cs similarity index 100% rename from SourceGit/Git/Tag.cs rename to src/Git/Tag.cs diff --git a/SourceGit/Git/User.cs b/src/Git/User.cs similarity index 100% rename from SourceGit/Git/User.cs rename to src/Git/User.cs diff --git a/SourceGit/Helpers/CommitGraph.cs b/src/Helpers/CommitGraph.cs similarity index 100% rename from SourceGit/Helpers/CommitGraph.cs rename to src/Helpers/CommitGraph.cs diff --git a/SourceGit/Helpers/TextBoxHelper.cs b/src/Helpers/TextBoxHelper.cs similarity index 97% rename from SourceGit/Helpers/TextBoxHelper.cs rename to src/Helpers/TextBoxHelper.cs index 9e28c20f..dc3c2fb5 100644 --- a/SourceGit/Helpers/TextBoxHelper.cs +++ b/src/Helpers/TextBoxHelper.cs @@ -1,224 +1,224 @@ -using System.Windows; -using System.Windows.Controls; -using System.Windows.Input; -using System.Windows.Media; - -namespace SourceGit.Helpers { - - /// - /// Attached properties to TextBox. - /// - public static class TextBoxHelper { - - /// - /// Auto scroll on text changed or selection changed. - /// - public static readonly DependencyProperty AutoScrollProperty = DependencyProperty.RegisterAttached( - "AutoScroll", - typeof(bool), - typeof(TextBoxHelper), - new PropertyMetadata(false, OnAutoScrollChanged)); - - /// - /// Placeholder property - /// - public static readonly DependencyProperty PlaceholderProperty = DependencyProperty.RegisterAttached( - "Placeholder", - typeof(string), - typeof(TextBoxHelper), - new PropertyMetadata(string.Empty, OnPlaceholderChanged)); - - /// - /// Vertical alignment for placeholder. - /// - public static readonly DependencyProperty PlaceholderBaselineProperty = DependencyProperty.RegisterAttached( - "PlaceholderBaseline", - typeof(AlignmentY), - typeof(TextBoxHelper), - new PropertyMetadata(AlignmentY.Center)); - - /// - /// Property to store generated placeholder brush. - /// - public static readonly DependencyProperty PlaceholderBrushProperty = DependencyProperty.RegisterAttached( - "PlaceholderBrush", - typeof(Brush), - typeof(TextBoxHelper), - new PropertyMetadata(Brushes.Transparent)); - - /// - /// Setter for AutoScrollProperty - /// - /// - /// - public static void SetAutoScroll(UIElement element, bool enabled) { - element.SetValue(AutoScrollProperty, enabled); - } - - /// - /// Getter for AutoScrollProperty - /// - /// - /// - public static bool GetAutoScroll(UIElement element) { - return (bool)element.GetValue(AutoScrollProperty); - } - - /// - /// Triggered when AutoScroll property changed. - /// - /// - /// - public static void OnAutoScrollChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { - var textBox = d as TextBox; - if (textBox == null) return; - - textBox.SelectionChanged -= UpdateScrollOnSelectionChanged; - if ((bool)e.NewValue == true) { - textBox.SelectionChanged += UpdateScrollOnSelectionChanged; - } - } - - /// - /// Triggered when placeholder changed. - /// - /// - /// - private static void OnPlaceholderChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { - var textBox = d as TextBox; - if (textBox != null) textBox.Loaded += OnTextLoaded; - } - - /// - /// Setter for Placeholder property - /// - /// - /// - public static void SetPlaceholder(UIElement element, string value) { - element.SetValue(PlaceholderProperty, value); - } - - /// - /// Getter for Placeholder property - /// - /// - /// - public static string GetPlaceholder(UIElement element) { - return (string)element.GetValue(PlaceholderProperty); - } - - /// - /// Setter for PlaceholderBaseline property - /// - /// - /// - public static void SetPlaceholderBaseline(UIElement element, AlignmentY align) { - element.SetValue(PlaceholderBaselineProperty, align); - } - - /// - /// Setter for PlaceholderBaseline property. - /// - /// - /// - public static AlignmentY GetPlaceholderBaseline(UIElement element) { - return (AlignmentY)element.GetValue(PlaceholderBaselineProperty); - } - - /// - /// Setter for PlaceholderBrush property. - /// - /// - /// - public static void SetPlaceholderBrush(UIElement element, Brush value) { - element.SetValue(PlaceholderBrushProperty, value); - } - - /// - /// Getter for PlaceholderBrush property. - /// - /// - /// - public static Brush GetPlaceholderBrush(UIElement element) { - return (Brush)element.GetValue(PlaceholderBrushProperty); - } - - /// - /// Set placeholder as background when TextBox was loaded. - /// - /// - /// - private static void OnTextLoaded(object sender, RoutedEventArgs e) { - var textBox = sender as TextBox; - if (textBox == null) return; - - Label placeholder = new Label(); - placeholder.Content = textBox.GetValue(PlaceholderProperty); - - VisualBrush brush = new VisualBrush(); - brush.AlignmentX = AlignmentX.Left; - brush.AlignmentY = GetPlaceholderBaseline(textBox); - brush.TileMode = TileMode.None; - brush.Stretch = Stretch.None; - brush.Opacity = 0.3; - brush.Visual = placeholder; - - textBox.SetValue(PlaceholderBrushProperty, brush); - textBox.Background = brush; - textBox.TextChanged += UpdatePlaceholder; - UpdatePlaceholder(textBox, null); - } - - /// - /// Dynamically hide/show placeholder. - /// - /// - /// - private static void UpdatePlaceholder(object sender, RoutedEventArgs e) { - var textBox = sender as TextBox; - if (string.IsNullOrEmpty(textBox.Text)) { - textBox.Background = textBox.GetValue(PlaceholderBrushProperty) as Brush; - } else { - textBox.Background = Brushes.Transparent; - } - } - - /// - /// - /// - /// - /// - private static void UpdateScrollOnSelectionChanged(object sender, RoutedEventArgs e) { - var textBox = sender as TextBox; - if (textBox != null && textBox.IsFocused) { - if (Mouse.LeftButton == MouseButtonState.Pressed && textBox.SelectionLength > 0) { - var p = Mouse.GetPosition(textBox); - if (p.X <= 8) { - textBox.LineLeft(); - } else if (p.X >= textBox.ActualWidth - 8) { - textBox.LineRight(); - } - - if (p.Y <= 8) { - textBox.LineUp(); - } else if (p.Y >= textBox.ActualHeight - 8) { - textBox.LineDown(); - } - } else { - var rect = textBox.GetRectFromCharacterIndex(textBox.CaretIndex); - if (rect.Left <= 0) { - textBox.ScrollToHorizontalOffset(textBox.HorizontalOffset + rect.Left); - } else if (rect.Right >= textBox.ActualWidth) { - textBox.ScrollToHorizontalOffset(textBox.HorizontalOffset + rect.Right); - } - - if (rect.Top <= 0) { - textBox.ScrollToVerticalOffset(textBox.VerticalOffset + rect.Top); - } else if (rect.Bottom >= textBox.ActualHeight) { - textBox.ScrollToVerticalOffset(textBox.VerticalOffset + rect.Bottom); - } - } - } - } - } -} +using System.Windows; +using System.Windows.Controls; +using System.Windows.Input; +using System.Windows.Media; + +namespace SourceGit.Helpers { + + /// + /// Attached properties to TextBox. + /// + public static class TextBoxHelper { + + /// + /// Auto scroll on text changed or selection changed. + /// + public static readonly DependencyProperty AutoScrollProperty = DependencyProperty.RegisterAttached( + "AutoScroll", + typeof(bool), + typeof(TextBoxHelper), + new PropertyMetadata(false, OnAutoScrollChanged)); + + /// + /// Placeholder property + /// + public static readonly DependencyProperty PlaceholderProperty = DependencyProperty.RegisterAttached( + "Placeholder", + typeof(string), + typeof(TextBoxHelper), + new PropertyMetadata(string.Empty, OnPlaceholderChanged)); + + /// + /// Vertical alignment for placeholder. + /// + public static readonly DependencyProperty PlaceholderBaselineProperty = DependencyProperty.RegisterAttached( + "PlaceholderBaseline", + typeof(AlignmentY), + typeof(TextBoxHelper), + new PropertyMetadata(AlignmentY.Center)); + + /// + /// Property to store generated placeholder brush. + /// + public static readonly DependencyProperty PlaceholderBrushProperty = DependencyProperty.RegisterAttached( + "PlaceholderBrush", + typeof(Brush), + typeof(TextBoxHelper), + new PropertyMetadata(Brushes.Transparent)); + + /// + /// Setter for AutoScrollProperty + /// + /// + /// + public static void SetAutoScroll(UIElement element, bool enabled) { + element.SetValue(AutoScrollProperty, enabled); + } + + /// + /// Getter for AutoScrollProperty + /// + /// + /// + public static bool GetAutoScroll(UIElement element) { + return (bool)element.GetValue(AutoScrollProperty); + } + + /// + /// Triggered when AutoScroll property changed. + /// + /// + /// + public static void OnAutoScrollChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { + var textBox = d as TextBox; + if (textBox == null) return; + + textBox.SelectionChanged -= UpdateScrollOnSelectionChanged; + if ((bool)e.NewValue == true) { + textBox.SelectionChanged += UpdateScrollOnSelectionChanged; + } + } + + /// + /// Triggered when placeholder changed. + /// + /// + /// + private static void OnPlaceholderChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { + var textBox = d as TextBox; + if (textBox != null) textBox.Loaded += OnTextLoaded; + } + + /// + /// Setter for Placeholder property + /// + /// + /// + public static void SetPlaceholder(UIElement element, string value) { + element.SetValue(PlaceholderProperty, value); + } + + /// + /// Getter for Placeholder property + /// + /// + /// + public static string GetPlaceholder(UIElement element) { + return (string)element.GetValue(PlaceholderProperty); + } + + /// + /// Setter for PlaceholderBaseline property + /// + /// + /// + public static void SetPlaceholderBaseline(UIElement element, AlignmentY align) { + element.SetValue(PlaceholderBaselineProperty, align); + } + + /// + /// Setter for PlaceholderBaseline property. + /// + /// + /// + public static AlignmentY GetPlaceholderBaseline(UIElement element) { + return (AlignmentY)element.GetValue(PlaceholderBaselineProperty); + } + + /// + /// Setter for PlaceholderBrush property. + /// + /// + /// + public static void SetPlaceholderBrush(UIElement element, Brush value) { + element.SetValue(PlaceholderBrushProperty, value); + } + + /// + /// Getter for PlaceholderBrush property. + /// + /// + /// + public static Brush GetPlaceholderBrush(UIElement element) { + return (Brush)element.GetValue(PlaceholderBrushProperty); + } + + /// + /// Set placeholder as background when TextBox was loaded. + /// + /// + /// + private static void OnTextLoaded(object sender, RoutedEventArgs e) { + var textBox = sender as TextBox; + if (textBox == null) return; + + Label placeholder = new Label(); + placeholder.Content = textBox.GetValue(PlaceholderProperty); + + VisualBrush brush = new VisualBrush(); + brush.AlignmentX = AlignmentX.Left; + brush.AlignmentY = GetPlaceholderBaseline(textBox); + brush.TileMode = TileMode.None; + brush.Stretch = Stretch.None; + brush.Opacity = 0.3; + brush.Visual = placeholder; + + textBox.SetValue(PlaceholderBrushProperty, brush); + textBox.Background = brush; + textBox.TextChanged += UpdatePlaceholder; + UpdatePlaceholder(textBox, null); + } + + /// + /// Dynamically hide/show placeholder. + /// + /// + /// + private static void UpdatePlaceholder(object sender, RoutedEventArgs e) { + var textBox = sender as TextBox; + if (string.IsNullOrEmpty(textBox.Text)) { + textBox.Background = textBox.GetValue(PlaceholderBrushProperty) as Brush; + } else { + textBox.Background = Brushes.Transparent; + } + } + + /// + /// + /// + /// + /// + private static void UpdateScrollOnSelectionChanged(object sender, RoutedEventArgs e) { + var textBox = sender as TextBox; + if (textBox != null && textBox.IsFocused) { + if (Mouse.LeftButton == MouseButtonState.Pressed && textBox.SelectionLength > 0) { + var p = Mouse.GetPosition(textBox); + if (p.X <= 8) { + textBox.LineLeft(); + } else if (p.X >= textBox.ActualWidth - 8) { + textBox.LineRight(); + } + + if (p.Y <= 8) { + textBox.LineUp(); + } else if (p.Y >= textBox.ActualHeight - 8) { + textBox.LineDown(); + } + } else { + var rect = textBox.GetRectFromCharacterIndex(textBox.CaretIndex); + if (rect.Left <= 0) { + textBox.ScrollToHorizontalOffset(textBox.HorizontalOffset + rect.Left); + } else if (rect.Right >= textBox.ActualWidth) { + textBox.ScrollToHorizontalOffset(textBox.HorizontalOffset + rect.Right); + } + + if (rect.Top <= 0) { + textBox.ScrollToVerticalOffset(textBox.VerticalOffset + rect.Top); + } else if (rect.Bottom >= textBox.ActualHeight) { + textBox.ScrollToVerticalOffset(textBox.VerticalOffset + rect.Bottom); + } + } + } + } + } +} diff --git a/SourceGit/Helpers/TreeViewHelper.cs b/src/Helpers/TreeViewHelper.cs similarity index 100% rename from SourceGit/Helpers/TreeViewHelper.cs rename to src/Helpers/TreeViewHelper.cs diff --git a/SourceGit/Helpers/Validations.cs b/src/Helpers/Validations.cs similarity index 100% rename from SourceGit/Helpers/Validations.cs rename to src/Helpers/Validations.cs diff --git a/SourceGit/Resources/Controls.xaml b/src/Resources/Controls.xaml similarity index 100% rename from SourceGit/Resources/Controls.xaml rename to src/Resources/Controls.xaml diff --git a/SourceGit/Resources/Icons.xaml b/src/Resources/Icons.xaml similarity index 99% rename from SourceGit/Resources/Icons.xaml rename to src/Resources/Icons.xaml index 66103f5a..7ae6c7b1 100644 --- a/SourceGit/Resources/Icons.xaml +++ b/src/Resources/Icons.xaml @@ -1,61 +1,61 @@ - - M1004.824 466.4L557.72 19.328c-25.728-25.76-67.488-25.76-93.28 0L360.568 123.2l78.176 78.176c12.544-5.984 26.56-9.376 41.376-9.376 53.024 0 96 42.976 96 96 0 14.816-3.36 28.864-9.376 41.376l127.968 127.968c12.544-5.984 26.56-9.376 41.376-9.376 53.024 0 96 42.976 96 96s-42.976 96-96 96-96-42.976-96-96c0-14.816 3.36-28.864 9.376-41.376L521.496 374.624a88.837 88.837 0 0 1-9.376 3.872v266.976c37.28 13.184 64 48.704 64 90.528 0 53.024-42.976 96-96 96s-96-42.976-96-96c0-41.792 26.72-77.344 64-90.528V378.496c-37.28-13.184-64-48.704-64-90.528 0-14.816 3.36-28.864 9.376-41.376l-78.176-78.176L19.416 464.288c-25.76 25.792-25.76 67.52 0 93.28l447.136 447.072c25.728 25.76 67.488 25.76 93.28 0l444.992-444.992c25.76-25.76 25.76-67.552 0-93.28z - M557.696 545.347L789.873 402.66c23.998-14.999 31.297-46.496 16.398-70.493-14.798-23.798-45.995-31.197-69.993-16.699L506.501 456.555 277.123 315.37c-24.098-14.798-55.595-7.3-70.493 16.799-14.799 24.097-7.3 55.594 16.798 70.493l231.778 142.586V819.12c0 28.297 22.897 51.195 51.195 51.195 28.297 0 51.195-22.898 51.195-51.195V545.347h0.1zM506.5 0l443.356 255.975v511.95L506.501 1023.9 63.144 767.925v-511.95L506.5 0z - - M753.613 996.727L269.38 511.505 754.602 27.272z - M270.387 27.273L754.62 512.495 269.398 996.728z - - F1M0,6L0,9 9,9 9,6 0,6z - F1M0,0L0,9 9,9 9,0 0,0 0,3 8,3 8,8 1,8 1,3z - F1M0,10L0,3 3,3 3,0 10,0 10,2 4,2 4,3 7,3 7,6 6,6 6,5 1,5 1,10z M1,10L7,10 7,7 10,7 10,2 9,2 9,6 6,6 6,9 1,9z - M810.666667 273.493333L750.506667 213.333333 512 451.84 273.493333 213.333333 213.333333 273.493333 451.84 512 213.333333 750.506667 273.493333 810.666667 512 572.16 750.506667 810.666667 810.666667 750.506667 572.16 512z - M512 597.33333332m-1.26648097 0a1.26648097 1.26648097 0 1 0 2.53296194 0 1.26648097 1.26648097 0 1 0-2.53296194 0ZM809.691429 392.777143L732.16 314.514286 447.634286 599.771429 292.571429 443.977143 214.308571 521.508571l155.794286 155.794286 77.531429 77.531429 362.057143-362.057143z - M511.680999 0C233.071131 0 6.524722 222.580887 0.12872 499.655715 6.013042 257.886821 189.834154 63.960025 415.740962 63.960025c229.61649 0 415.740162 200.450718 415.740162 447.720175 0 52.958901 42.981137 95.940037 95.940038 95.940037s95.940037-42.981137 95.940037-95.940037c0-282.57539-229.104809-511.6802-511.6802-511.6802z m0 1023.3604c278.609869 0 505.156277-222.580887 511.55228-499.655715-5.884322 241.768894-189.705434 435.69569-415.612242 435.69569-229.61649 0-415.740162-200.450718-415.740163-447.720175 0-52.958901-42.981137-95.940037-95.940037-95.940038s-95.940037 42.981137-95.940037 95.940038c0 282.57539 229.104809 511.6802 511.680199 511.6802z - M701.9062029 677.41589899L589.90712068 565.41681675a148.33953321 148.33953321 0 1 0-24.97646381 26.55648342L676.07895931 703.12160261z m-346.38891409-199.50786053a114.97681148 114.97681148 0 1 1 114.85527151 114.97681148A115.09835147 115.09835147 0 0 1 355.45651882 477.90803846z - M352 64h320L960 352v320L672 960h-320L64 672v-320L352 64z m161.28 362.688L344.128 256 259.584 341.312 428.736 512l-169.152 170.688L344.128 768 513.28 597.312 682.432 768l84.544-85.312L597.824 512l169.152-170.688L682.432 256 513.28 426.688z - - M51.2 204.8h102.4v102.4H51.2V204.8z m204.8 0h716.8v102.4H256V204.8zM51.2 460.8h102.4v102.4H51.2V460.8z m204.8 0h716.8v102.4H256V460.8z m-204.8 256h102.4v102.4H51.2v-102.4z m204.8 0h716.8v102.4H256v-102.4z - M912 737l0 150L362 887l0-100 0-50 0-150 0-150 0-150L112 287l0-150 450 0 0 150L412 287l0 150L912 437l0 150L412 587l0 150L912 737z - - M868 545.5L536.1 163c-12.7-14.7-35.5-14.7-48.3 0L156 545.5c-4.5 5.2-0.8 13.2 6 13.2h81c4.6 0 9-2 12.1-5.5L474 300.9V864c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V300.9l218.9 252.3c3 3.5 7.4 5.5 12.1 5.5h81c6.8 0 10.5-8 6-13.2z - M862 465.3h-81c-4.6 0-9 2-12.1 5.5L550 723.1V160c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v563.1L255.1 470.8c-3-3.5-7.4-5.5-12.1-5.5h-81c-6.8 0-10.5 8.1-6 13.2L487.9 861c12.7 14.7 35.5 14.7 48.3 0L868 478.5c4.5-5.2 0.8-13.2-6-13.2z - - M509.44 546.304l270.848-270.912 90.56 90.56-347.52 349.056-0.832-0.768-13.056 13.056-362.624-361.28 91.136-91.264z - M256 224l1e-8 115.2L512 544l255.99999999-204.8 1e-8-115.2-256 204.80000001L256 224zM512 684.8l-256-204.8L256 595.2 512 800 768 595.2l0-115.2L512 684.8z - M169.5 831l342.8-341.9L855.1 831l105.3-105.3-448.1-448.1L64.2 725.7 169.5 831z - M768 800V684.8L512 480 256 684.8V800l256-204.8L768 800zM512 339.2L768 544V428.8L512 224 256 428.8V544l256-204.8z - - M64.2 180.3h418.2v120.6H64.2zM64.2 461.7h358.5v120.6H64.2zM64.2 723.1h418.2v120.6H64.2zM601.9 180.3h358.5v120.6H601.9zM482.4 119.9h179.2v241.3H482.4zM303.2 401.4h179.2v241.3H303.2zM482.4 662.8h179.2v241.3H482.4zM540.3 461.7h420.1v120.6H540.3zM601.9 723.1h358.5v120.6H601.9z - M887 576.8v-129.4L796.6 418c-4.6-14-10.2-27.4-16.8-40.4l43.2-84.8-91.6-91.6-84.8 43.2c-13-6.6-26.6-12.2-40.4-16.8l-29.4-90.4h-129.4L418 227.6c-13.8 4.6-27.4 10.2-40.4 16.8l-84.8-43.2-91.6 91.6 43.2 84.8c-6.6 13-12.2 26.6-16.8 40.4l-90.4 29.4v129.4l90.4 29.4c4.6 13.8 10.2 27.4 16.8 40.4l-43.2 84.8 91.6 91.6 84.8-43.2c13 6.6 26.6 12.2 40.4 16.8l29.4 90.4h129.4l29.4-90.4c14-4.6 27.4-10.2 40.4-16.8l84.8 43.2 91.6-91.6-43.2-84.8c6.6-13 12.2-26.6 16.8-40.4l90.4-29.4zM512 662c-82.8 0-150-67.2-150-150s67.2-150 150-150 150 67.2 150 150-67.2 150-150 150z - M 38,19C 48.4934,19 57,27.5066 57,38C 57,48.4934 48.4934,57 38,57C 27.5066,57 19,48.4934 19,38C 19,27.5066 27.5066,19 38,19 Z M 33.25,33.25L 33.25,36.4167L 36.4166,36.4167L 36.4166,47.5L 33.25,47.5L 33.25,50.6667L 44.3333,50.6667L 44.3333,47.5L 41.1666,47.5L 41.1666,36.4167L 41.1666,33.25L 33.25,33.25 Z M 38.7917,25.3333C 37.48,25.3333 36.4167,26.3967 36.4167,27.7083C 36.4167,29.02 37.48,30.0833 38.7917,30.0833C 40.1033,30.0833 41.1667,29.02 41.1667,27.7083C 41.1667,26.3967 40.1033,25.3333 38.7917,25.3333 Z - M64 864h896V288h-396.224a64 64 0 0 1-57.242667-35.376L460.224 160H64v704z m-64 32V128a32 32 0 0 1 32-32h448a32 32 0 0 1 28.624 17.690667L563.776 224H992a32 32 0 0 1 32 32v640a32 32 0 0 1-32 32H32a32 32 0 0 1-32-32z - M448 64l128 128h448v768H0V64z - M832 960l192-512H192L0 960zM128 384L0 960V128h288l128 128h416v128z - M958.656 320H960v639.936A64 64 0 0 1 896.128 1024H191.936A63.872 63.872 0 0 1 128 959.936V64.064A64 64 0 0 1 191.936 0H640v320.96h319.616L958.656 320zM320 544c0 17.152 14.464 32 32.192 32h383.552A32.384 32.384 0 0 0 768 544c0-17.152-14.464-32-32.256-32H352.192A32.448 32.448 0 0 0 320 544z m0 128c0 17.152 14.464 32 32.192 32h383.552a32.384 32.384 0 0 0 32.256-32c0-17.152-14.464-32-32.256-32H352.192a32.448 32.448 0 0 0-32.192 32z m0 128c0 17.152 14.464 32 32.192 32h383.552a32.384 32.384 0 0 0 32.256-32c0-17.152-14.464-32-32.256-32H352.192a32.448 32.448 0 0 0-32.192 32z - M854.2 306.6L611.3 72.9c-6-5.7-13.9-8.9-22.2-8.9H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h277l219 210.6V824c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V329.6c0-8.7-3.5-17-9.8-23zM553.4 201.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v704c0 17.7 14.3 32 32 32h512c17.7 0 32-14.3 32-32V397.3c0-8.5-3.4-16.6-9.4-22.6L553.4 201.4zM568 753c0 3.8-3.4 7-7.5 7h-225c-4.1 0-7.5-3.2-7.5-7v-42c0-3.8 3.4-7 7.5-7h225c4.1 0 7.5 3.2 7.5 7v42z m0-220c0 3.8-3.4 7-7.5 7H476v84.9c0 3.9-3.1 7.1-7 7.1h-42c-3.8 0-7-3.2-7-7.1V540h-84.5c-4.1 0-7.5-3.2-7.5-7v-42c0-3.9 3.4-7 7.5-7H420v-84.9c0-3.9 3.2-7.1 7-7.1h42c3.9 0 7 3.2 7 7.1V484h84.5c4.1 0 7.5 3.1 7.5 7v42z - M599.22969 424.769286 599.22969 657.383158 424.769286 831.844585 424.769286 424.769286 192.155415 192.155415 831.844585 192.155415Z - M71.111111 1024V0h661.333333L952.888889 219.420444V1024H71.111111z m808.305778-731.420444l-220.444445-219.448889H144.583111V950.897778h734.833778V292.579556zM438.528 512h-220.444444V219.420444h220.444444V512z m-73.500444-219.420444H291.555556v146.289777h73.472v-146.289777z m0 512h73.500444v73.130666h-220.444444v-73.130666H291.555556v-146.289778H218.083556V585.102222h146.944v219.448889z m293.944888-365.710223h73.472V512H512v-73.130667h73.472v-146.289777H512V219.420444h146.972444v219.448889z m73.472 438.840889H512V585.130667h220.444444v292.579555z m-73.472-219.420444h-73.500444v146.289778h73.500444v-146.289778z - - M1024 1024H0V0h1024v1024z m-64-64V320H320V256h640V64H64v896h192V64h64v896z - M81.92 81.92v860.16h860.16V81.92H81.92z m802.304 57.856V322.56H139.776V139.776h744.448z m-744.448 240.64H322.56v503.808H139.776V380.416z m240.128 503.808V380.416h504.32v503.808H379.904z - - M1024 896v128H0V704h128v192h768V704h128v192zM576 554.688L810.688 320 896 405.312l-384 384-384-384L213.312 320 448 554.688V0h128v554.688z - M432 0h160c26.6 0 48 21.4 48 48v336h175.4c35.6 0 53.4 43 28.2 68.2L539.4 756.6c-15 15-39.6 15-54.6 0L180.2 452.2c-25.2-25.2-7.4-68.2 28.2-68.2H384V48c0-26.6 21.4-48 48-48z m592 752v224c0 26.6-21.4 48-48 48H48c-26.6 0-48-21.4-48-48V752c0-26.6 21.4-48 48-48h293.4l98 98c40.2 40.2 105 40.2 145.2 0l98-98H976c26.6 0 48 21.4 48 48z m-248 176c0-22-18-40-40-40s-40 18-40 40 18 40 40 40 40-18 40-40z m128 0c0-22-18-40-40-40s-40 18-40 40 18 40 40 40 40-18 40-40z - M592 768h-160c-26.6 0-48-21.4-48-48V384h-175.4c-35.6 0-53.4-43-28.2-68.2L484.6 11.4c15-15 39.6-15 54.6 0l304.4 304.4c25.2 25.2 7.4 68.2-28.2 68.2H640v336c0 26.6-21.4 48-48 48z m432-16v224c0 26.6-21.4 48-48 48H48c-26.6 0-48-21.4-48-48V752c0-26.6 21.4-48 48-48h272v16c0 61.8 50.2 112 112 112h160c61.8 0 112-50.2 112-112v-16h272c26.6 0 48 21.4 48 48z m-248 176c0-22-18-40-40-40s-40 18-40 40 18 40 40 40 40-18 40-40z m128 0c0-22-18-40-40-40s-40 18-40 40 18 40 40 40 40-18 40-40z - M961.3 319.6L512 577.3 62.7 319.6 512 62l449.3 257.6zM512 628.4L185.4 441.6 62.7 512 512 769.6 961.3 512l-122.7-70.4L512 628.4zM512 820.8L185.4 634 62.7 704.3 512 962l449.3-257.7L838.6 634 512 820.8z - M295.328 472l143.184 276.032S671.184 186.992 1038.096 0c-8.944 133.568-44.8 249.328 17.904 391.792C894.912 427.408 563.792 828.112 456.4 1024 304.272 837.008 125.296 694.544 0 650.016z - M89.6 806.4h844.8V217.6H89.6v588.8zM0 128h1024v768H0V128z m242.816 577.536L192 654.72l154.304-154.368L192 346.048l50.816-50.816L448 500.352 242.816 705.536z m584.32 13.248H512V640h315.072v78.72z - M508.928 556.125091l92.904727 148.759273h124.462546l-79.639273-79.173819 49.245091-49.524363 164.584727 163.700363-164.631273 163.002182-49.152-49.617454 79.36-78.568728h-162.955636l-95.650909-153.227636 41.472-65.349818z m186.973091-394.705455l164.584727 163.700364-164.631273 163.002182-49.152-49.617455L726.109091 359.936H529.687273l-135.540364 223.976727H139.636364v-69.818182h215.133091l135.586909-223.976727h235.938909l-79.639273-79.173818 49.245091-49.524364z - - M795.968 471.04A291.584 291.584 0 0 0 512 256a293.376 293.376 0 0 0-283.968 215.04H0v144h228.032A292.864 292.864 0 0 0 512 832a291.136 291.136 0 0 0 283.968-216.96H1024V471.04h-228.032M512 688A145.856 145.856 0 0 1 366.016 544 144.576 144.576 0 0 1 512 400c80 0 145.984 63.104 145.984 144A145.856 145.856 0 0 1 512 688 - M0 586.459429l403.968 118.784 497.517714-409.892572-385.536 441.490286-1.609143 250.587428 154.916572-204.580571 278.601143 83.456L1170.285714 36.571429z - M24.356571 512A488.155429 488.155429 0 0 1 512 24.356571 488.155429 488.155429 0 0 1 999.643429 512 488.155429 488.155429 0 0 1 512 999.643429 488.155429 488.155429 0 0 1 24.356571 512z m446.976-325.046857v326.656L242.614857 619.227429l51.126857 110.665142 299.52-138.24V186.953143H471.332571z - M714.624 253.648h-404.8l-57.808 57.328h520.48z m-491.568 85.984v200.624h578.336V339.632z m404.8 143.296h-28.88v-28.64H425.472v28.64h-28.912v-57.312h231.328v57.312z m-404.8 295.12h578.336V559.36H223.056z m173.504-132.704h231.328v57.328h-28.912v-28.656H425.472v28.656h-28.912v-57.328z - M868.736 144.96a144.64 144.64 0 1 0-289.408 0c0 56.064 32.64 107.008 83.456 130.624-4.928 95.552-76.608 128-201.088 174.592-52.48 19.712-110.336 41.6-159.744 74.432V276.16A144.448 144.448 0 0 0 241.664 0.192a144.64 144.64 0 0 0-144.64 144.768c0 58.24 34.688 108.288 84.352 131.2v461.184a144.32 144.32 0 0 0-84.416 131.2 144.704 144.704 0 1 0 289.472 0 144.32 144.32 0 0 0-83.52-130.688c4.992-95.488 76.672-127.936 201.152-174.592 122.368-45.952 273.792-103.168 279.744-286.784a144.64 144.64 0 0 0 84.928-131.52zM241.664 61.44a83.456 83.456 0 1 1 0 166.912 83.456 83.456 0 0 1 0-166.912z m0 890.56a83.52 83.52 0 1 1 0-167.04 83.52 83.52 0 0 1 0 167.04zM724.032 228.416a83.52 83.52 0 1 1 0-167.04 83.52 83.52 0 0 1 0 167.04z - M896 128h-64V64c0-35.2-28.8-64-64-64s-64 28.8-64 64v64h-64c-35.2 0-64 28.8-64 64s28.8 64 64 64h64v64c0 35.2 28.8 64 64 64s64-28.8 64-64V256h64c35.2 0 64-28.8 64-64s-28.8-64-64-64z m-203.52 307.2C672.64 480.64 628.48 512 576 512H448c-46.72 0-90.24 12.8-128 35.2V372.48C394.24 345.6 448 275.2 448 192c0-106.24-85.76-192-192-192S64 85.76 64 192c0 83.2 53.76 153.6 128 180.48v279.68c-74.24 25.6-128 96.64-128 179.84 0 106.24 85.76 192 192 192s192-85.76 192-192c0-66.56-33.92-124.8-84.48-159.36 22.4-19.84 51.84-32.64 84.48-32.64h128c121.6 0 223.36-85.12 248.96-199.04-18.56 4.48-37.12 7.04-56.96 7.04-26.24 0-51.2-5.12-75.52-12.8zM256 128c35.2 0 64 28.8 64 64s-28.8 64-64 64-64-28.8-64-64 28.8-64 64-64z m0 768c-35.2 0-64-28.8-64-64s28.8-64 64-64 64 28.8 64 64-28.8 64-64 64z - M901.802667 479.232v-1.024c0-133.461333-111.616-241.664-249.514667-241.664-105.813333 0-195.925333 63.829333-232.448 153.941333-27.989333-20.138667-62.464-32.426667-100.010667-32.426666-75.776 0-139.605333 49.152-159.744 116.053333-51.882667 36.522667-86.016 96.938667-86.016 165.205333 0 111.616 90.453333 201.728 201.728 201.728h503.466667c111.616 0 201.728-90.453333 201.728-201.728 0-65.194667-31.061333-123.221333-79.189333-160.085333z - M363.789474 512h67.368421v107.789474h107.789473v67.368421h-107.789473v107.789473h-67.368421v-107.789473h-107.789474v-67.368421h107.789474v-107.789474z m297.539368-64A106.671158 106.671158 0 0 1 768 554.671158C768 613.578105 719.548632 660.210526 660.210526 660.210526h-107.789473v-53.894737h-107.789474v-107.789473h-94.31579v107.789473h-94.315789c4.311579-21.194105 22.231579-46.807579 43.560421-50.755368l-0.889263-11.560421a74.671158 74.671158 0 0 1 71.248842-74.590316 128.053895 128.053895 0 0 1 238.605474-7.437473 106.172632 106.172632 0 0 1 52.816842-13.972211z - M177.311335 156.116617c-22.478967 4.729721-32.774451 17.336854-36.251645 36.893258-10.080589 56.697303-33.399691 257.604032-13.234419 277.769304l445.342858 445.341834c23.177885 23.177885 60.757782 23.178909 83.935668 0l246.019183-246.019183c23.177885-23.177885 23.177885-60.757782 0-83.935668l-445.341834-445.341834C437.419398 120.463606 231.004211 144.82034 177.311335 156.116617zM331.22375 344.221786c-26.195615 26.195615-68.667939 26.195615-94.863555 0-26.195615-26.195615-26.195615-68.666916 0-94.863555s68.667939-26.195615 94.862531 0C357.418342 275.55487 357.419366 318.02617 331.22375 344.221786z - M682.666667 536.576h-143.701334v-142.336h-142.336V283.306667H238.933333a44.032 44.032 0 0 0-40.96 40.96v170.666666a55.978667 55.978667 0 0 0 14.336 34.133334l320.512 320.512a40.96 40.96 0 0 0 57.685334 0l173.738666-173.738667a40.96 40.96 0 0 0 0-57.685333z m-341.333334-108.544a40.96 40.96 0 1 1 0-57.685333 40.96 40.96 0 0 1 0 57.685333zM649.216 284.330667V141.994667h-68.608v142.336h-142.336v68.266666h142.336v142.336h68.608v-142.336h142.336v-68.266666h-142.336z + + M1004.824 466.4L557.72 19.328c-25.728-25.76-67.488-25.76-93.28 0L360.568 123.2l78.176 78.176c12.544-5.984 26.56-9.376 41.376-9.376 53.024 0 96 42.976 96 96 0 14.816-3.36 28.864-9.376 41.376l127.968 127.968c12.544-5.984 26.56-9.376 41.376-9.376 53.024 0 96 42.976 96 96s-42.976 96-96 96-96-42.976-96-96c0-14.816 3.36-28.864 9.376-41.376L521.496 374.624a88.837 88.837 0 0 1-9.376 3.872v266.976c37.28 13.184 64 48.704 64 90.528 0 53.024-42.976 96-96 96s-96-42.976-96-96c0-41.792 26.72-77.344 64-90.528V378.496c-37.28-13.184-64-48.704-64-90.528 0-14.816 3.36-28.864 9.376-41.376l-78.176-78.176L19.416 464.288c-25.76 25.792-25.76 67.52 0 93.28l447.136 447.072c25.728 25.76 67.488 25.76 93.28 0l444.992-444.992c25.76-25.76 25.76-67.552 0-93.28z + M557.696 545.347L789.873 402.66c23.998-14.999 31.297-46.496 16.398-70.493-14.798-23.798-45.995-31.197-69.993-16.699L506.501 456.555 277.123 315.37c-24.098-14.798-55.595-7.3-70.493 16.799-14.799 24.097-7.3 55.594 16.798 70.493l231.778 142.586V819.12c0 28.297 22.897 51.195 51.195 51.195 28.297 0 51.195-22.898 51.195-51.195V545.347h0.1zM506.5 0l443.356 255.975v511.95L506.501 1023.9 63.144 767.925v-511.95L506.5 0z + + M753.613 996.727L269.38 511.505 754.602 27.272z + M270.387 27.273L754.62 512.495 269.398 996.728z + + F1M0,6L0,9 9,9 9,6 0,6z + F1M0,0L0,9 9,9 9,0 0,0 0,3 8,3 8,8 1,8 1,3z + F1M0,10L0,3 3,3 3,0 10,0 10,2 4,2 4,3 7,3 7,6 6,6 6,5 1,5 1,10z M1,10L7,10 7,7 10,7 10,2 9,2 9,6 6,6 6,9 1,9z + M810.666667 273.493333L750.506667 213.333333 512 451.84 273.493333 213.333333 213.333333 273.493333 451.84 512 213.333333 750.506667 273.493333 810.666667 512 572.16 750.506667 810.666667 810.666667 750.506667 572.16 512z + M512 597.33333332m-1.26648097 0a1.26648097 1.26648097 0 1 0 2.53296194 0 1.26648097 1.26648097 0 1 0-2.53296194 0ZM809.691429 392.777143L732.16 314.514286 447.634286 599.771429 292.571429 443.977143 214.308571 521.508571l155.794286 155.794286 77.531429 77.531429 362.057143-362.057143z + M511.680999 0C233.071131 0 6.524722 222.580887 0.12872 499.655715 6.013042 257.886821 189.834154 63.960025 415.740962 63.960025c229.61649 0 415.740162 200.450718 415.740162 447.720175 0 52.958901 42.981137 95.940037 95.940038 95.940037s95.940037-42.981137 95.940037-95.940037c0-282.57539-229.104809-511.6802-511.6802-511.6802z m0 1023.3604c278.609869 0 505.156277-222.580887 511.55228-499.655715-5.884322 241.768894-189.705434 435.69569-415.612242 435.69569-229.61649 0-415.740162-200.450718-415.740163-447.720175 0-52.958901-42.981137-95.940037-95.940037-95.940038s-95.940037 42.981137-95.940037 95.940038c0 282.57539 229.104809 511.6802 511.680199 511.6802z + M701.9062029 677.41589899L589.90712068 565.41681675a148.33953321 148.33953321 0 1 0-24.97646381 26.55648342L676.07895931 703.12160261z m-346.38891409-199.50786053a114.97681148 114.97681148 0 1 1 114.85527151 114.97681148A115.09835147 115.09835147 0 0 1 355.45651882 477.90803846z + M352 64h320L960 352v320L672 960h-320L64 672v-320L352 64z m161.28 362.688L344.128 256 259.584 341.312 428.736 512l-169.152 170.688L344.128 768 513.28 597.312 682.432 768l84.544-85.312L597.824 512l169.152-170.688L682.432 256 513.28 426.688z + + M51.2 204.8h102.4v102.4H51.2V204.8z m204.8 0h716.8v102.4H256V204.8zM51.2 460.8h102.4v102.4H51.2V460.8z m204.8 0h716.8v102.4H256V460.8z m-204.8 256h102.4v102.4H51.2v-102.4z m204.8 0h716.8v102.4H256v-102.4z + M912 737l0 150L362 887l0-100 0-50 0-150 0-150 0-150L112 287l0-150 450 0 0 150L412 287l0 150L912 437l0 150L412 587l0 150L912 737z + + M868 545.5L536.1 163c-12.7-14.7-35.5-14.7-48.3 0L156 545.5c-4.5 5.2-0.8 13.2 6 13.2h81c4.6 0 9-2 12.1-5.5L474 300.9V864c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V300.9l218.9 252.3c3 3.5 7.4 5.5 12.1 5.5h81c6.8 0 10.5-8 6-13.2z + M862 465.3h-81c-4.6 0-9 2-12.1 5.5L550 723.1V160c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v563.1L255.1 470.8c-3-3.5-7.4-5.5-12.1-5.5h-81c-6.8 0-10.5 8.1-6 13.2L487.9 861c12.7 14.7 35.5 14.7 48.3 0L868 478.5c4.5-5.2 0.8-13.2-6-13.2z + + M509.44 546.304l270.848-270.912 90.56 90.56-347.52 349.056-0.832-0.768-13.056 13.056-362.624-361.28 91.136-91.264z + M256 224l1e-8 115.2L512 544l255.99999999-204.8 1e-8-115.2-256 204.80000001L256 224zM512 684.8l-256-204.8L256 595.2 512 800 768 595.2l0-115.2L512 684.8z + M169.5 831l342.8-341.9L855.1 831l105.3-105.3-448.1-448.1L64.2 725.7 169.5 831z + M768 800V684.8L512 480 256 684.8V800l256-204.8L768 800zM512 339.2L768 544V428.8L512 224 256 428.8V544l256-204.8z + + M64.2 180.3h418.2v120.6H64.2zM64.2 461.7h358.5v120.6H64.2zM64.2 723.1h418.2v120.6H64.2zM601.9 180.3h358.5v120.6H601.9zM482.4 119.9h179.2v241.3H482.4zM303.2 401.4h179.2v241.3H303.2zM482.4 662.8h179.2v241.3H482.4zM540.3 461.7h420.1v120.6H540.3zM601.9 723.1h358.5v120.6H601.9z + M887 576.8v-129.4L796.6 418c-4.6-14-10.2-27.4-16.8-40.4l43.2-84.8-91.6-91.6-84.8 43.2c-13-6.6-26.6-12.2-40.4-16.8l-29.4-90.4h-129.4L418 227.6c-13.8 4.6-27.4 10.2-40.4 16.8l-84.8-43.2-91.6 91.6 43.2 84.8c-6.6 13-12.2 26.6-16.8 40.4l-90.4 29.4v129.4l90.4 29.4c4.6 13.8 10.2 27.4 16.8 40.4l-43.2 84.8 91.6 91.6 84.8-43.2c13 6.6 26.6 12.2 40.4 16.8l29.4 90.4h129.4l29.4-90.4c14-4.6 27.4-10.2 40.4-16.8l84.8 43.2 91.6-91.6-43.2-84.8c6.6-13 12.2-26.6 16.8-40.4l90.4-29.4zM512 662c-82.8 0-150-67.2-150-150s67.2-150 150-150 150 67.2 150 150-67.2 150-150 150z + M 38,19C 48.4934,19 57,27.5066 57,38C 57,48.4934 48.4934,57 38,57C 27.5066,57 19,48.4934 19,38C 19,27.5066 27.5066,19 38,19 Z M 33.25,33.25L 33.25,36.4167L 36.4166,36.4167L 36.4166,47.5L 33.25,47.5L 33.25,50.6667L 44.3333,50.6667L 44.3333,47.5L 41.1666,47.5L 41.1666,36.4167L 41.1666,33.25L 33.25,33.25 Z M 38.7917,25.3333C 37.48,25.3333 36.4167,26.3967 36.4167,27.7083C 36.4167,29.02 37.48,30.0833 38.7917,30.0833C 40.1033,30.0833 41.1667,29.02 41.1667,27.7083C 41.1667,26.3967 40.1033,25.3333 38.7917,25.3333 Z + M64 864h896V288h-396.224a64 64 0 0 1-57.242667-35.376L460.224 160H64v704z m-64 32V128a32 32 0 0 1 32-32h448a32 32 0 0 1 28.624 17.690667L563.776 224H992a32 32 0 0 1 32 32v640a32 32 0 0 1-32 32H32a32 32 0 0 1-32-32z + M448 64l128 128h448v768H0V64z + M832 960l192-512H192L0 960zM128 384L0 960V128h288l128 128h416v128z + M958.656 320H960v639.936A64 64 0 0 1 896.128 1024H191.936A63.872 63.872 0 0 1 128 959.936V64.064A64 64 0 0 1 191.936 0H640v320.96h319.616L958.656 320zM320 544c0 17.152 14.464 32 32.192 32h383.552A32.384 32.384 0 0 0 768 544c0-17.152-14.464-32-32.256-32H352.192A32.448 32.448 0 0 0 320 544z m0 128c0 17.152 14.464 32 32.192 32h383.552a32.384 32.384 0 0 0 32.256-32c0-17.152-14.464-32-32.256-32H352.192a32.448 32.448 0 0 0-32.192 32z m0 128c0 17.152 14.464 32 32.192 32h383.552a32.384 32.384 0 0 0 32.256-32c0-17.152-14.464-32-32.256-32H352.192a32.448 32.448 0 0 0-32.192 32z + M854.2 306.6L611.3 72.9c-6-5.7-13.9-8.9-22.2-8.9H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h277l219 210.6V824c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V329.6c0-8.7-3.5-17-9.8-23zM553.4 201.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v704c0 17.7 14.3 32 32 32h512c17.7 0 32-14.3 32-32V397.3c0-8.5-3.4-16.6-9.4-22.6L553.4 201.4zM568 753c0 3.8-3.4 7-7.5 7h-225c-4.1 0-7.5-3.2-7.5-7v-42c0-3.8 3.4-7 7.5-7h225c4.1 0 7.5 3.2 7.5 7v42z m0-220c0 3.8-3.4 7-7.5 7H476v84.9c0 3.9-3.1 7.1-7 7.1h-42c-3.8 0-7-3.2-7-7.1V540h-84.5c-4.1 0-7.5-3.2-7.5-7v-42c0-3.9 3.4-7 7.5-7H420v-84.9c0-3.9 3.2-7.1 7-7.1h42c3.9 0 7 3.2 7 7.1V484h84.5c4.1 0 7.5 3.1 7.5 7v42z + M599.22969 424.769286 599.22969 657.383158 424.769286 831.844585 424.769286 424.769286 192.155415 192.155415 831.844585 192.155415Z + M71.111111 1024V0h661.333333L952.888889 219.420444V1024H71.111111z m808.305778-731.420444l-220.444445-219.448889H144.583111V950.897778h734.833778V292.579556zM438.528 512h-220.444444V219.420444h220.444444V512z m-73.500444-219.420444H291.555556v146.289777h73.472v-146.289777z m0 512h73.500444v73.130666h-220.444444v-73.130666H291.555556v-146.289778H218.083556V585.102222h146.944v219.448889z m293.944888-365.710223h73.472V512H512v-73.130667h73.472v-146.289777H512V219.420444h146.972444v219.448889z m73.472 438.840889H512V585.130667h220.444444v292.579555z m-73.472-219.420444h-73.500444v146.289778h73.500444v-146.289778z + + M1024 1024H0V0h1024v1024z m-64-64V320H320V256h640V64H64v896h192V64h64v896z + M81.92 81.92v860.16h860.16V81.92H81.92z m802.304 57.856V322.56H139.776V139.776h744.448z m-744.448 240.64H322.56v503.808H139.776V380.416z m240.128 503.808V380.416h504.32v503.808H379.904z + + M1024 896v128H0V704h128v192h768V704h128v192zM576 554.688L810.688 320 896 405.312l-384 384-384-384L213.312 320 448 554.688V0h128v554.688z + M432 0h160c26.6 0 48 21.4 48 48v336h175.4c35.6 0 53.4 43 28.2 68.2L539.4 756.6c-15 15-39.6 15-54.6 0L180.2 452.2c-25.2-25.2-7.4-68.2 28.2-68.2H384V48c0-26.6 21.4-48 48-48z m592 752v224c0 26.6-21.4 48-48 48H48c-26.6 0-48-21.4-48-48V752c0-26.6 21.4-48 48-48h293.4l98 98c40.2 40.2 105 40.2 145.2 0l98-98H976c26.6 0 48 21.4 48 48z m-248 176c0-22-18-40-40-40s-40 18-40 40 18 40 40 40 40-18 40-40z m128 0c0-22-18-40-40-40s-40 18-40 40 18 40 40 40 40-18 40-40z + M592 768h-160c-26.6 0-48-21.4-48-48V384h-175.4c-35.6 0-53.4-43-28.2-68.2L484.6 11.4c15-15 39.6-15 54.6 0l304.4 304.4c25.2 25.2 7.4 68.2-28.2 68.2H640v336c0 26.6-21.4 48-48 48z m432-16v224c0 26.6-21.4 48-48 48H48c-26.6 0-48-21.4-48-48V752c0-26.6 21.4-48 48-48h272v16c0 61.8 50.2 112 112 112h160c61.8 0 112-50.2 112-112v-16h272c26.6 0 48 21.4 48 48z m-248 176c0-22-18-40-40-40s-40 18-40 40 18 40 40 40 40-18 40-40z m128 0c0-22-18-40-40-40s-40 18-40 40 18 40 40 40 40-18 40-40z + M961.3 319.6L512 577.3 62.7 319.6 512 62l449.3 257.6zM512 628.4L185.4 441.6 62.7 512 512 769.6 961.3 512l-122.7-70.4L512 628.4zM512 820.8L185.4 634 62.7 704.3 512 962l449.3-257.7L838.6 634 512 820.8z + M295.328 472l143.184 276.032S671.184 186.992 1038.096 0c-8.944 133.568-44.8 249.328 17.904 391.792C894.912 427.408 563.792 828.112 456.4 1024 304.272 837.008 125.296 694.544 0 650.016z + M89.6 806.4h844.8V217.6H89.6v588.8zM0 128h1024v768H0V128z m242.816 577.536L192 654.72l154.304-154.368L192 346.048l50.816-50.816L448 500.352 242.816 705.536z m584.32 13.248H512V640h315.072v78.72z + M508.928 556.125091l92.904727 148.759273h124.462546l-79.639273-79.173819 49.245091-49.524363 164.584727 163.700363-164.631273 163.002182-49.152-49.617454 79.36-78.568728h-162.955636l-95.650909-153.227636 41.472-65.349818z m186.973091-394.705455l164.584727 163.700364-164.631273 163.002182-49.152-49.617455L726.109091 359.936H529.687273l-135.540364 223.976727H139.636364v-69.818182h215.133091l135.586909-223.976727h235.938909l-79.639273-79.173818 49.245091-49.524364z + + M795.968 471.04A291.584 291.584 0 0 0 512 256a293.376 293.376 0 0 0-283.968 215.04H0v144h228.032A292.864 292.864 0 0 0 512 832a291.136 291.136 0 0 0 283.968-216.96H1024V471.04h-228.032M512 688A145.856 145.856 0 0 1 366.016 544 144.576 144.576 0 0 1 512 400c80 0 145.984 63.104 145.984 144A145.856 145.856 0 0 1 512 688 + M0 586.459429l403.968 118.784 497.517714-409.892572-385.536 441.490286-1.609143 250.587428 154.916572-204.580571 278.601143 83.456L1170.285714 36.571429z + M24.356571 512A488.155429 488.155429 0 0 1 512 24.356571 488.155429 488.155429 0 0 1 999.643429 512 488.155429 488.155429 0 0 1 512 999.643429 488.155429 488.155429 0 0 1 24.356571 512z m446.976-325.046857v326.656L242.614857 619.227429l51.126857 110.665142 299.52-138.24V186.953143H471.332571z + M714.624 253.648h-404.8l-57.808 57.328h520.48z m-491.568 85.984v200.624h578.336V339.632z m404.8 143.296h-28.88v-28.64H425.472v28.64h-28.912v-57.312h231.328v57.312z m-404.8 295.12h578.336V559.36H223.056z m173.504-132.704h231.328v57.328h-28.912v-28.656H425.472v28.656h-28.912v-57.328z + M868.736 144.96a144.64 144.64 0 1 0-289.408 0c0 56.064 32.64 107.008 83.456 130.624-4.928 95.552-76.608 128-201.088 174.592-52.48 19.712-110.336 41.6-159.744 74.432V276.16A144.448 144.448 0 0 0 241.664 0.192a144.64 144.64 0 0 0-144.64 144.768c0 58.24 34.688 108.288 84.352 131.2v461.184a144.32 144.32 0 0 0-84.416 131.2 144.704 144.704 0 1 0 289.472 0 144.32 144.32 0 0 0-83.52-130.688c4.992-95.488 76.672-127.936 201.152-174.592 122.368-45.952 273.792-103.168 279.744-286.784a144.64 144.64 0 0 0 84.928-131.52zM241.664 61.44a83.456 83.456 0 1 1 0 166.912 83.456 83.456 0 0 1 0-166.912z m0 890.56a83.52 83.52 0 1 1 0-167.04 83.52 83.52 0 0 1 0 167.04zM724.032 228.416a83.52 83.52 0 1 1 0-167.04 83.52 83.52 0 0 1 0 167.04z + M896 128h-64V64c0-35.2-28.8-64-64-64s-64 28.8-64 64v64h-64c-35.2 0-64 28.8-64 64s28.8 64 64 64h64v64c0 35.2 28.8 64 64 64s64-28.8 64-64V256h64c35.2 0 64-28.8 64-64s-28.8-64-64-64z m-203.52 307.2C672.64 480.64 628.48 512 576 512H448c-46.72 0-90.24 12.8-128 35.2V372.48C394.24 345.6 448 275.2 448 192c0-106.24-85.76-192-192-192S64 85.76 64 192c0 83.2 53.76 153.6 128 180.48v279.68c-74.24 25.6-128 96.64-128 179.84 0 106.24 85.76 192 192 192s192-85.76 192-192c0-66.56-33.92-124.8-84.48-159.36 22.4-19.84 51.84-32.64 84.48-32.64h128c121.6 0 223.36-85.12 248.96-199.04-18.56 4.48-37.12 7.04-56.96 7.04-26.24 0-51.2-5.12-75.52-12.8zM256 128c35.2 0 64 28.8 64 64s-28.8 64-64 64-64-28.8-64-64 28.8-64 64-64z m0 768c-35.2 0-64-28.8-64-64s28.8-64 64-64 64 28.8 64 64-28.8 64-64 64z + M901.802667 479.232v-1.024c0-133.461333-111.616-241.664-249.514667-241.664-105.813333 0-195.925333 63.829333-232.448 153.941333-27.989333-20.138667-62.464-32.426667-100.010667-32.426666-75.776 0-139.605333 49.152-159.744 116.053333-51.882667 36.522667-86.016 96.938667-86.016 165.205333 0 111.616 90.453333 201.728 201.728 201.728h503.466667c111.616 0 201.728-90.453333 201.728-201.728 0-65.194667-31.061333-123.221333-79.189333-160.085333z + M363.789474 512h67.368421v107.789474h107.789473v67.368421h-107.789473v107.789473h-67.368421v-107.789473h-107.789474v-67.368421h107.789474v-107.789474z m297.539368-64A106.671158 106.671158 0 0 1 768 554.671158C768 613.578105 719.548632 660.210526 660.210526 660.210526h-107.789473v-53.894737h-107.789474v-107.789473h-94.31579v107.789473h-94.315789c4.311579-21.194105 22.231579-46.807579 43.560421-50.755368l-0.889263-11.560421a74.671158 74.671158 0 0 1 71.248842-74.590316 128.053895 128.053895 0 0 1 238.605474-7.437473 106.172632 106.172632 0 0 1 52.816842-13.972211z + M177.311335 156.116617c-22.478967 4.729721-32.774451 17.336854-36.251645 36.893258-10.080589 56.697303-33.399691 257.604032-13.234419 277.769304l445.342858 445.341834c23.177885 23.177885 60.757782 23.178909 83.935668 0l246.019183-246.019183c23.177885-23.177885 23.177885-60.757782 0-83.935668l-445.341834-445.341834C437.419398 120.463606 231.004211 144.82034 177.311335 156.116617zM331.22375 344.221786c-26.195615 26.195615-68.667939 26.195615-94.863555 0-26.195615-26.195615-26.195615-68.666916 0-94.863555s68.667939-26.195615 94.862531 0C357.418342 275.55487 357.419366 318.02617 331.22375 344.221786z + M682.666667 536.576h-143.701334v-142.336h-142.336V283.306667H238.933333a44.032 44.032 0 0 0-40.96 40.96v170.666666a55.978667 55.978667 0 0 0 14.336 34.133334l320.512 320.512a40.96 40.96 0 0 0 57.685334 0l173.738666-173.738667a40.96 40.96 0 0 0 0-57.685333z m-341.333334-108.544a40.96 40.96 0 1 1 0-57.685333 40.96 40.96 0 0 1 0 57.685333zM649.216 284.330667V141.994667h-68.608v142.336h-142.336v68.266666h142.336v142.336h68.608v-142.336h142.336v-68.266666h-142.336z \ No newline at end of file diff --git a/SourceGit/Resources/Styles/Border.xaml b/src/Resources/Styles/Border.xaml similarity index 100% rename from SourceGit/Resources/Styles/Border.xaml rename to src/Resources/Styles/Border.xaml diff --git a/SourceGit/Resources/Styles/Button.xaml b/src/Resources/Styles/Button.xaml similarity index 100% rename from SourceGit/Resources/Styles/Button.xaml rename to src/Resources/Styles/Button.xaml diff --git a/SourceGit/Resources/Styles/CheckBox.xaml b/src/Resources/Styles/CheckBox.xaml similarity index 100% rename from SourceGit/Resources/Styles/CheckBox.xaml rename to src/Resources/Styles/CheckBox.xaml diff --git a/SourceGit/Resources/Styles/ComboBox.xaml b/src/Resources/Styles/ComboBox.xaml similarity index 100% rename from SourceGit/Resources/Styles/ComboBox.xaml rename to src/Resources/Styles/ComboBox.xaml diff --git a/SourceGit/Resources/Styles/ContextMenu.xaml b/src/Resources/Styles/ContextMenu.xaml similarity index 100% rename from SourceGit/Resources/Styles/ContextMenu.xaml rename to src/Resources/Styles/ContextMenu.xaml diff --git a/SourceGit/Resources/Styles/DataGrid.xaml b/src/Resources/Styles/DataGrid.xaml similarity index 100% rename from SourceGit/Resources/Styles/DataGrid.xaml rename to src/Resources/Styles/DataGrid.xaml diff --git a/SourceGit/Resources/Styles/HyperLink.xaml b/src/Resources/Styles/HyperLink.xaml similarity index 100% rename from SourceGit/Resources/Styles/HyperLink.xaml rename to src/Resources/Styles/HyperLink.xaml diff --git a/SourceGit/Resources/Styles/Label.xaml b/src/Resources/Styles/Label.xaml similarity index 100% rename from SourceGit/Resources/Styles/Label.xaml rename to src/Resources/Styles/Label.xaml diff --git a/SourceGit/Resources/Styles/ListView.xaml b/src/Resources/Styles/ListView.xaml similarity index 100% rename from SourceGit/Resources/Styles/ListView.xaml rename to src/Resources/Styles/ListView.xaml diff --git a/SourceGit/Resources/Styles/Path.xaml b/src/Resources/Styles/Path.xaml similarity index 100% rename from SourceGit/Resources/Styles/Path.xaml rename to src/Resources/Styles/Path.xaml diff --git a/SourceGit/Resources/Styles/RadioButton.xaml b/src/Resources/Styles/RadioButton.xaml similarity index 100% rename from SourceGit/Resources/Styles/RadioButton.xaml rename to src/Resources/Styles/RadioButton.xaml diff --git a/SourceGit/Resources/Styles/ScrollBar.xaml b/src/Resources/Styles/ScrollBar.xaml similarity index 100% rename from SourceGit/Resources/Styles/ScrollBar.xaml rename to src/Resources/Styles/ScrollBar.xaml diff --git a/SourceGit/Resources/Styles/ScrollViewer.xaml b/src/Resources/Styles/ScrollViewer.xaml similarity index 100% rename from SourceGit/Resources/Styles/ScrollViewer.xaml rename to src/Resources/Styles/ScrollViewer.xaml diff --git a/SourceGit/Resources/Styles/TabControl.xaml b/src/Resources/Styles/TabControl.xaml similarity index 100% rename from SourceGit/Resources/Styles/TabControl.xaml rename to src/Resources/Styles/TabControl.xaml diff --git a/SourceGit/Resources/Styles/TextBox.xaml b/src/Resources/Styles/TextBox.xaml similarity index 98% rename from SourceGit/Resources/Styles/TextBox.xaml rename to src/Resources/Styles/TextBox.xaml index 48a96a72..ebd1cc08 100644 --- a/SourceGit/Resources/Styles/TextBox.xaml +++ b/src/Resources/Styles/TextBox.xaml @@ -1,126 +1,126 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SourceGit/Resources/Styles/ToggleButton.xaml b/src/Resources/Styles/ToggleButton.xaml similarity index 100% rename from SourceGit/Resources/Styles/ToggleButton.xaml rename to src/Resources/Styles/ToggleButton.xaml diff --git a/SourceGit/Resources/Styles/Tooltip.xaml b/src/Resources/Styles/Tooltip.xaml similarity index 100% rename from SourceGit/Resources/Styles/Tooltip.xaml rename to src/Resources/Styles/Tooltip.xaml diff --git a/SourceGit/Resources/Styles/TreeView.xaml b/src/Resources/Styles/TreeView.xaml similarity index 100% rename from SourceGit/Resources/Styles/TreeView.xaml rename to src/Resources/Styles/TreeView.xaml diff --git a/SourceGit/Resources/Themes/Dark.xaml b/src/Resources/Themes/Dark.xaml similarity index 100% rename from SourceGit/Resources/Themes/Dark.xaml rename to src/Resources/Themes/Dark.xaml diff --git a/SourceGit/Resources/Themes/Light.xaml b/src/Resources/Themes/Light.xaml similarity index 100% rename from SourceGit/Resources/Themes/Light.xaml rename to src/Resources/Themes/Light.xaml diff --git a/SourceGit/SourceGit.csproj b/src/SourceGit.csproj similarity index 71% rename from SourceGit/SourceGit.csproj rename to src/SourceGit.csproj index 896fbe8e..3e0ee49c 100644 --- a/SourceGit/SourceGit.csproj +++ b/src/SourceGit.csproj @@ -1,22 +1,27 @@ - - - net46 - WinExe - true - true - App.ico - sourcegit - OpenSource GIT client for Windows - Copyright © sourcegit 2020. All rights reserved. - App.manifest - 1.5 - MIT - - - AnyCPU - true - - - - + + + net46 + WinExe + true + true + App.ico + sourcegit + OpenSource GIT client for Windows + Copyright © sourcegit 2020. All rights reserved. + App.manifest + 1.5 + MIT + SourceGit.App + https://gitee.com/sourcegit/SourceGit.git + https://gitee.com/sourcegit/SourceGit.git + Public + true + + + AnyCPU + true + + + + \ No newline at end of file diff --git a/SourceGit/UI/About.xaml b/src/UI/About.xaml similarity index 97% rename from SourceGit/UI/About.xaml rename to src/UI/About.xaml index 823d9b13..baa70866 100644 --- a/SourceGit/UI/About.xaml +++ b/src/UI/About.xaml @@ -1,82 +1,82 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SourceGit/UI/About.xaml.cs b/src/UI/About.xaml.cs similarity index 100% rename from SourceGit/UI/About.xaml.cs rename to src/UI/About.xaml.cs diff --git a/SourceGit/UI/AddSubmodule.xaml b/src/UI/AddSubmodule.xaml similarity index 100% rename from SourceGit/UI/AddSubmodule.xaml rename to src/UI/AddSubmodule.xaml diff --git a/SourceGit/UI/AddSubmodule.xaml.cs b/src/UI/AddSubmodule.xaml.cs similarity index 100% rename from SourceGit/UI/AddSubmodule.xaml.cs rename to src/UI/AddSubmodule.xaml.cs diff --git a/SourceGit/UI/Apply.xaml b/src/UI/Apply.xaml similarity index 99% rename from SourceGit/UI/Apply.xaml rename to src/UI/Apply.xaml index 5b15371a..c34903d0 100644 --- a/SourceGit/UI/Apply.xaml +++ b/src/UI/Apply.xaml @@ -24,8 +24,8 @@ - - + +