From 905af92139c58c63582be2a451555ef23cf34e60 Mon Sep 17 00:00:00 2001 From: "Sergey V. Zhdanovskih" Date: Mon, 1 Jul 2024 00:40:56 +0300 Subject: [PATCH] Initial commit of the tree sync plugin (#583) --- projects/GKCore/GKCore.csproj | 1 + projects/GKCore/GKCore/Tools/SyncTool.cs | 58 ++ projects/GKv2/GEDKeeper2Sync.sln | 503 ++++++++++++++++++ .../GKTreeSyncPlugin/GKTreeSyncPlugin.cs | 103 ++++ .../GKTreeSyncPlugin/GKTreeSyncPlugin.csproj | 66 +++ .../GKTreeSyncPlugin/TSForm.Designer.cs | 222 ++++++++ projects/plugins/GKTreeSyncPlugin/TSForm.cs | 88 +++ 7 files changed, 1041 insertions(+) create mode 100644 projects/GKCore/GKCore/Tools/SyncTool.cs create mode 100644 projects/GKv2/GEDKeeper2Sync.sln create mode 100644 projects/plugins/GKTreeSyncPlugin/GKTreeSyncPlugin.cs create mode 100644 projects/plugins/GKTreeSyncPlugin/GKTreeSyncPlugin.csproj create mode 100644 projects/plugins/GKTreeSyncPlugin/TSForm.Designer.cs create mode 100644 projects/plugins/GKTreeSyncPlugin/TSForm.cs diff --git a/projects/GKCore/GKCore.csproj b/projects/GKCore/GKCore.csproj index 034fa9d5c..b57e05496 100644 --- a/projects/GKCore/GKCore.csproj +++ b/projects/GKCore/GKCore.csproj @@ -389,6 +389,7 @@ + diff --git a/projects/GKCore/GKCore/Tools/SyncTool.cs b/projects/GKCore/GKCore/Tools/SyncTool.cs new file mode 100644 index 000000000..14b1f4a09 --- /dev/null +++ b/projects/GKCore/GKCore/Tools/SyncTool.cs @@ -0,0 +1,58 @@ +/* + * "GEDKeeper", the personal genealogical database editor. + * Copyright (C) 2009-2024 by Sergey V. Zhdanovskih. + * + * This file is part of "GEDKeeper". + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +using System; +using GDModel; +using GDModel.Providers.GEDCOM; + +namespace GKCore.Tools +{ + public enum RecordStatus + { + Unknown, // gray + Identical, // white + Changed, // yellow + Deleted, // orange or red + Added, // lightblue or cyan + } + + + /// + /// + /// + public class SyncTool + { + public void LoadOtherFile(GDMTree mainTree, string fileName) + { + if (mainTree == null) + throw new ArgumentNullException("mainTree"); + + if (string.IsNullOrEmpty(fileName)) + throw new ArgumentNullException("fileName"); + + using (var extTree = new GDMTree()) { + var gedcomProvider = new GEDCOMProvider(extTree); + gedcomProvider.LoadFromFile(fileName); + + // + } + } + } +} diff --git a/projects/GKv2/GEDKeeper2Sync.sln b/projects/GKv2/GEDKeeper2Sync.sln new file mode 100644 index 000000000..d99ec7d61 --- /dev/null +++ b/projects/GKv2/GEDKeeper2Sync.sln @@ -0,0 +1,503 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.2.32602.215 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GEDKeeper2", "GEDKeeper2\GEDKeeper2.csproj", "{19B7D80A-37FD-4E49-9F59-87FA41B677E2}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "plugins", "plugins", "{F5B0E1E6-6FA7-4EEA-905A-B32125985C14}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GKTimeLinePlugin", "..\plugins\GKTimeLinePlugin\GKTimeLinePlugin.csproj", "{ECED32B7-1081-48D3-A223-1CB67A2D7016}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GKTextSearchPlugin", "..\plugins\GKTextSearchPlugin\GKTextSearchPlugin.csproj", "{BB2FCE6E-DF1F-40CC-9D7E-01CC9BE97EFA}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GKPedigreeImporterPlugin", "..\plugins\GKPedigreeImporterPlugin\GKPedigreeImporterPlugin.csproj", "{859C2F5B-FBF1-4D3B-8442-CF8E44E8B74B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GKNamesBookPlugin", "..\plugins\GKNamesBookPlugin\GKNamesBookPlugin.csproj", "{182AFE98-D3A5-471A-B9D9-C1C53DD72829}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GKFlowInputPlugin", "..\plugins\GKFlowInputPlugin\GKFlowInputPlugin.csproj", "{66B64B00-C457-404E-AA2B-90F18127E394}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GKCalculatorPlugin", "..\plugins\GKCalculatorPlugin\GKCalculatorPlugin.csproj", "{782E9338-ECA7-4095-9157-6CA003801F05}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GKCalendarPlugin", "..\plugins\GKCalendarPlugin\GKCalendarPlugin.csproj", "{091DFD9D-5599-4EEA-A616-A55FC12E9613}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GKLifePlugin", "..\plugins\GKLifePlugin\GKLifePlugin.csproj", "{4A523280-2DEA-43C6-BE11-48BDFF283751}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GKNavigatorPlugin", "..\plugins\GKNavigatorPlugin\GKNavigatorPlugin.csproj", "{18E423A1-619C-4ED7-96BE-1BD71EACFCAE}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GKChroniclePlugin", "..\plugins\GKChroniclePlugin\GKChroniclePlugin.csproj", "{1423A6AE-E85A-4E76-91CA-704A1C59F7DC}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GKWordsCloudPlugin", "..\plugins\GKWordsCloudPlugin\GKWordsCloudPlugin.csproj", "{0EB24CA5-824B-4507-9C6E-BBBF5DB8BE57}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GKHistoryDataPlugin", "..\plugins\GKHistoryDataPlugin\GKHistoryDataPlugin.csproj", "{FCAB4916-791F-4302-90A0-E409410F66BF}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GKStdReports", "..\plugins\GKStdReports\GKStdReports.csproj", "{4D6E49E2-58C4-49C8-8664-C8A89D418927}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GKCommunicatorPlugin", "..\GKCommunicator\GKCommunicatorPlugin\GKCommunicatorPlugin.csproj", "{304A9ACA-337E-40BC-AC18-BC3B303CBF6C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GEDmillPlugin", "..\plugins\GEDmill\GEDmillPlugin.csproj", "{658AE6DC-A4FA-4042-A26F-E5B6CC7EF56B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GKBackupPlugin", "..\plugins\GKBackupPlugin\GKBackupPlugin.csproj", "{D0E58F68-8706-4308-924B-BE56A03B3C99}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GKGenetixPlugin", "..\GKGenetix\GKGenetixPlugin\GKGenetixPlugin.csproj", "{DF48872B-3E78-409C-B43C-1EFD46B0BBC4}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GKTests", "..\GKTests\GKTests.csproj", "{A8B53A6B-40A6-40BA-A671-03FC911BC37B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GKCore", "..\GKCore\GKCore.csproj", "{10D619AF-E1CD-4F4A-9C19-5E434300B48F}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GKComponents", "GKComponents\GKComponents.csproj", "{EF9864C5-4DEC-46E8-BC11-A2E5BB9BB9D4}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GKTray", "GKTray\GKTray.csproj", "{A7004127-46AD-4CA5-AEBC-5D70E64AD68A}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "locales", "locales", "{4AF8EEE8-8592-420C-B5C5-E6DDBA389BA1}" + ProjectSection(SolutionItems) = preProject + ..\..\locales\Afrikaans.lng = ..\..\locales\Afrikaans.lng + ..\..\locales\Belarusian.lng = ..\..\locales\Belarusian.lng + ..\..\locales\Chinese Simplified.lng = ..\..\locales\Chinese Simplified.lng + ..\..\locales\czech.lng = ..\..\locales\czech.lng + ..\..\locales\Dutch.lng = ..\..\locales\Dutch.lng + ..\..\locales\English.lng = ..\..\locales\English.lng + ..\..\locales\french.lng = ..\..\locales\french.lng + ..\..\locales\german.lng = ..\..\locales\german.lng + ..\..\locales\Hungarian.lng = ..\..\locales\Hungarian.lng + ..\..\locales\Icelandic.lng = ..\..\locales\Icelandic.lng + ..\..\locales\italian.lng = ..\..\locales\italian.lng + ..\..\locales\Japanese.lng = ..\..\locales\Japanese.lng + ..\..\locales\Kazakh (Cyrillic).lng = ..\..\locales\Kazakh (Cyrillic).lng + ..\..\locales\polish.lng = ..\..\locales\polish.lng + ..\..\locales\Portuguese.lng = ..\..\locales\Portuguese.lng + ..\..\locales\russian.lng = ..\..\locales\russian.lng + ..\..\locales\Serbian (Latin).lng = ..\..\locales\Serbian (Latin).lng + ..\..\locales\Spanish.lng = ..\..\locales\Spanish.lng + ..\..\locales\ukrainian.lng = ..\..\locales\ukrainian.lng + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "subprojects", "subprojects", "{BBA8D997-B7FB-45FE-86A2-08C01C0AAB4C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GKMap.Core", "..\GKMap\GKMap.Core\GKMap.Core.csproj", "{D0C39D9D-BED0-418B-9A5E-713176CAF40C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GKMap.WinForms", "..\GKMap\GKMap.WinForms\GKMap.WinForms.csproj", "{E06DEF77-F933-42FB-AFD7-DB2D0D8D6A98}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GKNetCore", "..\GKCommunicator\GKNetCore\GKNetCore.csproj", "{FEE68CF6-1D60-4E90-AEF3-6AFA4A8C977D}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GKNetUI", "..\GKCommunicator\GKNetUI\GKNetUI.csproj", "{1D2C209A-6E19-4FCF-BA08-11B8096FCA99}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GKGenetix.Core", "..\GKGenetix\GKGenetix.Core\GKGenetix.Core.csproj", "{78659756-B505-403B-9173-0965DF601030}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GKGenetix.UI.WinForms", "..\GKGenetix\GKGenetix.UI.WinForms\GKGenetix.UI.WinForms.csproj", "{B9225DE4-BE79-43F8-B84B-BECF360E329A}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "themes", "themes", "{E39F7926-7961-4857-B90F-16B63F315D02}" + ProjectSection(SolutionItems) = preProject + ..\..\themes\gk_dark.yaml = ..\..\themes\gk_dark.yaml + ..\..\themes\gk_forest.yaml = ..\..\themes\gk_forest.yaml + ..\..\themes\gk_light.yaml = ..\..\themes\gk_light.yaml + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GKTestsUI2", "GKTestsUI2\GKTestsUI2.csproj", "{90BDD163-CEA0-4FCE-BA73-7591B71263CB}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GKTreeSyncPlugin", "..\plugins\GKTreeSyncPlugin\GKTreeSyncPlugin.csproj", "{A564097E-CFE8-4098-BAE5-D7693F9AD297}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {19B7D80A-37FD-4E49-9F59-87FA41B677E2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {19B7D80A-37FD-4E49-9F59-87FA41B677E2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {19B7D80A-37FD-4E49-9F59-87FA41B677E2}.Debug|x64.ActiveCfg = Debug|x64 + {19B7D80A-37FD-4E49-9F59-87FA41B677E2}.Debug|x64.Build.0 = Debug|x64 + {19B7D80A-37FD-4E49-9F59-87FA41B677E2}.Debug|x86.ActiveCfg = Debug|x86 + {19B7D80A-37FD-4E49-9F59-87FA41B677E2}.Debug|x86.Build.0 = Debug|x86 + {19B7D80A-37FD-4E49-9F59-87FA41B677E2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {19B7D80A-37FD-4E49-9F59-87FA41B677E2}.Release|Any CPU.Build.0 = Release|Any CPU + {19B7D80A-37FD-4E49-9F59-87FA41B677E2}.Release|x64.ActiveCfg = Release|x64 + {19B7D80A-37FD-4E49-9F59-87FA41B677E2}.Release|x64.Build.0 = Release|x64 + {19B7D80A-37FD-4E49-9F59-87FA41B677E2}.Release|x86.ActiveCfg = Release|x86 + {19B7D80A-37FD-4E49-9F59-87FA41B677E2}.Release|x86.Build.0 = Release|x86 + {ECED32B7-1081-48D3-A223-1CB67A2D7016}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ECED32B7-1081-48D3-A223-1CB67A2D7016}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ECED32B7-1081-48D3-A223-1CB67A2D7016}.Debug|x64.ActiveCfg = Debug|x64 + {ECED32B7-1081-48D3-A223-1CB67A2D7016}.Debug|x64.Build.0 = Debug|x64 + {ECED32B7-1081-48D3-A223-1CB67A2D7016}.Debug|x86.ActiveCfg = Debug|x86 + {ECED32B7-1081-48D3-A223-1CB67A2D7016}.Debug|x86.Build.0 = Debug|x86 + {ECED32B7-1081-48D3-A223-1CB67A2D7016}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ECED32B7-1081-48D3-A223-1CB67A2D7016}.Release|Any CPU.Build.0 = Release|Any CPU + {ECED32B7-1081-48D3-A223-1CB67A2D7016}.Release|x64.ActiveCfg = Release|x64 + {ECED32B7-1081-48D3-A223-1CB67A2D7016}.Release|x64.Build.0 = Release|x64 + {ECED32B7-1081-48D3-A223-1CB67A2D7016}.Release|x86.ActiveCfg = Release|x86 + {ECED32B7-1081-48D3-A223-1CB67A2D7016}.Release|x86.Build.0 = Release|x86 + {BB2FCE6E-DF1F-40CC-9D7E-01CC9BE97EFA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BB2FCE6E-DF1F-40CC-9D7E-01CC9BE97EFA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BB2FCE6E-DF1F-40CC-9D7E-01CC9BE97EFA}.Debug|x64.ActiveCfg = Debug|x64 + {BB2FCE6E-DF1F-40CC-9D7E-01CC9BE97EFA}.Debug|x64.Build.0 = Debug|x64 + {BB2FCE6E-DF1F-40CC-9D7E-01CC9BE97EFA}.Debug|x86.ActiveCfg = Debug|x86 + {BB2FCE6E-DF1F-40CC-9D7E-01CC9BE97EFA}.Debug|x86.Build.0 = Debug|x86 + {BB2FCE6E-DF1F-40CC-9D7E-01CC9BE97EFA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BB2FCE6E-DF1F-40CC-9D7E-01CC9BE97EFA}.Release|Any CPU.Build.0 = Release|Any CPU + {BB2FCE6E-DF1F-40CC-9D7E-01CC9BE97EFA}.Release|x64.ActiveCfg = Release|x64 + {BB2FCE6E-DF1F-40CC-9D7E-01CC9BE97EFA}.Release|x64.Build.0 = Release|x64 + {BB2FCE6E-DF1F-40CC-9D7E-01CC9BE97EFA}.Release|x86.ActiveCfg = Release|x86 + {BB2FCE6E-DF1F-40CC-9D7E-01CC9BE97EFA}.Release|x86.Build.0 = Release|x86 + {859C2F5B-FBF1-4D3B-8442-CF8E44E8B74B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {859C2F5B-FBF1-4D3B-8442-CF8E44E8B74B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {859C2F5B-FBF1-4D3B-8442-CF8E44E8B74B}.Debug|x64.ActiveCfg = Debug|x64 + {859C2F5B-FBF1-4D3B-8442-CF8E44E8B74B}.Debug|x64.Build.0 = Debug|x64 + {859C2F5B-FBF1-4D3B-8442-CF8E44E8B74B}.Debug|x86.ActiveCfg = Debug|x86 + {859C2F5B-FBF1-4D3B-8442-CF8E44E8B74B}.Debug|x86.Build.0 = Debug|x86 + {859C2F5B-FBF1-4D3B-8442-CF8E44E8B74B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {859C2F5B-FBF1-4D3B-8442-CF8E44E8B74B}.Release|Any CPU.Build.0 = Release|Any CPU + {859C2F5B-FBF1-4D3B-8442-CF8E44E8B74B}.Release|x64.ActiveCfg = Release|x64 + {859C2F5B-FBF1-4D3B-8442-CF8E44E8B74B}.Release|x64.Build.0 = Release|x64 + {859C2F5B-FBF1-4D3B-8442-CF8E44E8B74B}.Release|x86.ActiveCfg = Release|x86 + {859C2F5B-FBF1-4D3B-8442-CF8E44E8B74B}.Release|x86.Build.0 = Release|x86 + {182AFE98-D3A5-471A-B9D9-C1C53DD72829}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {182AFE98-D3A5-471A-B9D9-C1C53DD72829}.Debug|Any CPU.Build.0 = Debug|Any CPU + {182AFE98-D3A5-471A-B9D9-C1C53DD72829}.Debug|x64.ActiveCfg = Debug|x64 + {182AFE98-D3A5-471A-B9D9-C1C53DD72829}.Debug|x64.Build.0 = Debug|x64 + {182AFE98-D3A5-471A-B9D9-C1C53DD72829}.Debug|x86.ActiveCfg = Debug|x86 + {182AFE98-D3A5-471A-B9D9-C1C53DD72829}.Debug|x86.Build.0 = Debug|x86 + {182AFE98-D3A5-471A-B9D9-C1C53DD72829}.Release|Any CPU.ActiveCfg = Release|Any CPU + {182AFE98-D3A5-471A-B9D9-C1C53DD72829}.Release|Any CPU.Build.0 = Release|Any CPU + {182AFE98-D3A5-471A-B9D9-C1C53DD72829}.Release|x64.ActiveCfg = Release|x64 + {182AFE98-D3A5-471A-B9D9-C1C53DD72829}.Release|x64.Build.0 = Release|x64 + {182AFE98-D3A5-471A-B9D9-C1C53DD72829}.Release|x86.ActiveCfg = Release|x86 + {182AFE98-D3A5-471A-B9D9-C1C53DD72829}.Release|x86.Build.0 = Release|x86 + {66B64B00-C457-404E-AA2B-90F18127E394}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {66B64B00-C457-404E-AA2B-90F18127E394}.Debug|Any CPU.Build.0 = Debug|Any CPU + {66B64B00-C457-404E-AA2B-90F18127E394}.Debug|x64.ActiveCfg = Debug|x64 + {66B64B00-C457-404E-AA2B-90F18127E394}.Debug|x64.Build.0 = Debug|x64 + {66B64B00-C457-404E-AA2B-90F18127E394}.Debug|x86.ActiveCfg = Debug|x86 + {66B64B00-C457-404E-AA2B-90F18127E394}.Debug|x86.Build.0 = Debug|x86 + {66B64B00-C457-404E-AA2B-90F18127E394}.Release|Any CPU.ActiveCfg = Release|Any CPU + {66B64B00-C457-404E-AA2B-90F18127E394}.Release|Any CPU.Build.0 = Release|Any CPU + {66B64B00-C457-404E-AA2B-90F18127E394}.Release|x64.ActiveCfg = Release|x64 + {66B64B00-C457-404E-AA2B-90F18127E394}.Release|x64.Build.0 = Release|x64 + {66B64B00-C457-404E-AA2B-90F18127E394}.Release|x86.ActiveCfg = Release|x86 + {66B64B00-C457-404E-AA2B-90F18127E394}.Release|x86.Build.0 = Release|x86 + {782E9338-ECA7-4095-9157-6CA003801F05}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {782E9338-ECA7-4095-9157-6CA003801F05}.Debug|Any CPU.Build.0 = Debug|Any CPU + {782E9338-ECA7-4095-9157-6CA003801F05}.Debug|x64.ActiveCfg = Debug|x64 + {782E9338-ECA7-4095-9157-6CA003801F05}.Debug|x64.Build.0 = Debug|x64 + {782E9338-ECA7-4095-9157-6CA003801F05}.Debug|x86.ActiveCfg = Debug|x86 + {782E9338-ECA7-4095-9157-6CA003801F05}.Debug|x86.Build.0 = Debug|x86 + {782E9338-ECA7-4095-9157-6CA003801F05}.Release|Any CPU.ActiveCfg = Release|Any CPU + {782E9338-ECA7-4095-9157-6CA003801F05}.Release|Any CPU.Build.0 = Release|Any CPU + {782E9338-ECA7-4095-9157-6CA003801F05}.Release|x64.ActiveCfg = Release|x64 + {782E9338-ECA7-4095-9157-6CA003801F05}.Release|x64.Build.0 = Release|x64 + {782E9338-ECA7-4095-9157-6CA003801F05}.Release|x86.ActiveCfg = Release|x86 + {782E9338-ECA7-4095-9157-6CA003801F05}.Release|x86.Build.0 = Release|x86 + {091DFD9D-5599-4EEA-A616-A55FC12E9613}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {091DFD9D-5599-4EEA-A616-A55FC12E9613}.Debug|Any CPU.Build.0 = Debug|Any CPU + {091DFD9D-5599-4EEA-A616-A55FC12E9613}.Debug|x64.ActiveCfg = Debug|x64 + {091DFD9D-5599-4EEA-A616-A55FC12E9613}.Debug|x64.Build.0 = Debug|x64 + {091DFD9D-5599-4EEA-A616-A55FC12E9613}.Debug|x86.ActiveCfg = Debug|x86 + {091DFD9D-5599-4EEA-A616-A55FC12E9613}.Debug|x86.Build.0 = Debug|x86 + {091DFD9D-5599-4EEA-A616-A55FC12E9613}.Release|Any CPU.ActiveCfg = Release|Any CPU + {091DFD9D-5599-4EEA-A616-A55FC12E9613}.Release|Any CPU.Build.0 = Release|Any CPU + {091DFD9D-5599-4EEA-A616-A55FC12E9613}.Release|x64.ActiveCfg = Release|x64 + {091DFD9D-5599-4EEA-A616-A55FC12E9613}.Release|x64.Build.0 = Release|x64 + {091DFD9D-5599-4EEA-A616-A55FC12E9613}.Release|x86.ActiveCfg = Release|x86 + {091DFD9D-5599-4EEA-A616-A55FC12E9613}.Release|x86.Build.0 = Release|x86 + {4A523280-2DEA-43C6-BE11-48BDFF283751}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4A523280-2DEA-43C6-BE11-48BDFF283751}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4A523280-2DEA-43C6-BE11-48BDFF283751}.Debug|x64.ActiveCfg = Debug|x64 + {4A523280-2DEA-43C6-BE11-48BDFF283751}.Debug|x64.Build.0 = Debug|x64 + {4A523280-2DEA-43C6-BE11-48BDFF283751}.Debug|x86.ActiveCfg = Debug|x86 + {4A523280-2DEA-43C6-BE11-48BDFF283751}.Debug|x86.Build.0 = Debug|x86 + {4A523280-2DEA-43C6-BE11-48BDFF283751}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4A523280-2DEA-43C6-BE11-48BDFF283751}.Release|Any CPU.Build.0 = Release|Any CPU + {4A523280-2DEA-43C6-BE11-48BDFF283751}.Release|x64.ActiveCfg = Release|x64 + {4A523280-2DEA-43C6-BE11-48BDFF283751}.Release|x64.Build.0 = Release|x64 + {4A523280-2DEA-43C6-BE11-48BDFF283751}.Release|x86.ActiveCfg = Release|x86 + {4A523280-2DEA-43C6-BE11-48BDFF283751}.Release|x86.Build.0 = Release|x86 + {18E423A1-619C-4ED7-96BE-1BD71EACFCAE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {18E423A1-619C-4ED7-96BE-1BD71EACFCAE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {18E423A1-619C-4ED7-96BE-1BD71EACFCAE}.Debug|x64.ActiveCfg = Debug|x64 + {18E423A1-619C-4ED7-96BE-1BD71EACFCAE}.Debug|x64.Build.0 = Debug|x64 + {18E423A1-619C-4ED7-96BE-1BD71EACFCAE}.Debug|x86.ActiveCfg = Debug|x86 + {18E423A1-619C-4ED7-96BE-1BD71EACFCAE}.Debug|x86.Build.0 = Debug|x86 + {18E423A1-619C-4ED7-96BE-1BD71EACFCAE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {18E423A1-619C-4ED7-96BE-1BD71EACFCAE}.Release|Any CPU.Build.0 = Release|Any CPU + {18E423A1-619C-4ED7-96BE-1BD71EACFCAE}.Release|x64.ActiveCfg = Release|x64 + {18E423A1-619C-4ED7-96BE-1BD71EACFCAE}.Release|x64.Build.0 = Release|x64 + {18E423A1-619C-4ED7-96BE-1BD71EACFCAE}.Release|x86.ActiveCfg = Release|x86 + {18E423A1-619C-4ED7-96BE-1BD71EACFCAE}.Release|x86.Build.0 = Release|x86 + {1423A6AE-E85A-4E76-91CA-704A1C59F7DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1423A6AE-E85A-4E76-91CA-704A1C59F7DC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1423A6AE-E85A-4E76-91CA-704A1C59F7DC}.Debug|x64.ActiveCfg = Debug|x64 + {1423A6AE-E85A-4E76-91CA-704A1C59F7DC}.Debug|x64.Build.0 = Debug|x64 + {1423A6AE-E85A-4E76-91CA-704A1C59F7DC}.Debug|x86.ActiveCfg = Debug|x86 + {1423A6AE-E85A-4E76-91CA-704A1C59F7DC}.Debug|x86.Build.0 = Debug|x86 + {1423A6AE-E85A-4E76-91CA-704A1C59F7DC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1423A6AE-E85A-4E76-91CA-704A1C59F7DC}.Release|Any CPU.Build.0 = Release|Any CPU + {1423A6AE-E85A-4E76-91CA-704A1C59F7DC}.Release|x64.ActiveCfg = Release|x64 + {1423A6AE-E85A-4E76-91CA-704A1C59F7DC}.Release|x64.Build.0 = Release|x64 + {1423A6AE-E85A-4E76-91CA-704A1C59F7DC}.Release|x86.ActiveCfg = Release|x86 + {1423A6AE-E85A-4E76-91CA-704A1C59F7DC}.Release|x86.Build.0 = Release|x86 + {0EB24CA5-824B-4507-9C6E-BBBF5DB8BE57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0EB24CA5-824B-4507-9C6E-BBBF5DB8BE57}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0EB24CA5-824B-4507-9C6E-BBBF5DB8BE57}.Debug|x64.ActiveCfg = Debug|x64 + {0EB24CA5-824B-4507-9C6E-BBBF5DB8BE57}.Debug|x64.Build.0 = Debug|x64 + {0EB24CA5-824B-4507-9C6E-BBBF5DB8BE57}.Debug|x86.ActiveCfg = Debug|x86 + {0EB24CA5-824B-4507-9C6E-BBBF5DB8BE57}.Debug|x86.Build.0 = Debug|x86 + {0EB24CA5-824B-4507-9C6E-BBBF5DB8BE57}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0EB24CA5-824B-4507-9C6E-BBBF5DB8BE57}.Release|Any CPU.Build.0 = Release|Any CPU + {0EB24CA5-824B-4507-9C6E-BBBF5DB8BE57}.Release|x64.ActiveCfg = Release|x64 + {0EB24CA5-824B-4507-9C6E-BBBF5DB8BE57}.Release|x64.Build.0 = Release|x64 + {0EB24CA5-824B-4507-9C6E-BBBF5DB8BE57}.Release|x86.ActiveCfg = Release|x86 + {0EB24CA5-824B-4507-9C6E-BBBF5DB8BE57}.Release|x86.Build.0 = Release|x86 + {FCAB4916-791F-4302-90A0-E409410F66BF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FCAB4916-791F-4302-90A0-E409410F66BF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FCAB4916-791F-4302-90A0-E409410F66BF}.Debug|x64.ActiveCfg = Debug|x64 + {FCAB4916-791F-4302-90A0-E409410F66BF}.Debug|x64.Build.0 = Debug|x64 + {FCAB4916-791F-4302-90A0-E409410F66BF}.Debug|x86.ActiveCfg = Debug|x86 + {FCAB4916-791F-4302-90A0-E409410F66BF}.Debug|x86.Build.0 = Debug|x86 + {FCAB4916-791F-4302-90A0-E409410F66BF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FCAB4916-791F-4302-90A0-E409410F66BF}.Release|Any CPU.Build.0 = Release|Any CPU + {FCAB4916-791F-4302-90A0-E409410F66BF}.Release|x64.ActiveCfg = Release|x64 + {FCAB4916-791F-4302-90A0-E409410F66BF}.Release|x64.Build.0 = Release|x64 + {FCAB4916-791F-4302-90A0-E409410F66BF}.Release|x86.ActiveCfg = Release|x86 + {FCAB4916-791F-4302-90A0-E409410F66BF}.Release|x86.Build.0 = Release|x86 + {4D6E49E2-58C4-49C8-8664-C8A89D418927}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4D6E49E2-58C4-49C8-8664-C8A89D418927}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4D6E49E2-58C4-49C8-8664-C8A89D418927}.Debug|x64.ActiveCfg = Debug|x64 + {4D6E49E2-58C4-49C8-8664-C8A89D418927}.Debug|x64.Build.0 = Debug|x64 + {4D6E49E2-58C4-49C8-8664-C8A89D418927}.Debug|x86.ActiveCfg = Debug|x86 + {4D6E49E2-58C4-49C8-8664-C8A89D418927}.Debug|x86.Build.0 = Debug|x86 + {4D6E49E2-58C4-49C8-8664-C8A89D418927}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4D6E49E2-58C4-49C8-8664-C8A89D418927}.Release|Any CPU.Build.0 = Release|Any CPU + {4D6E49E2-58C4-49C8-8664-C8A89D418927}.Release|x64.ActiveCfg = Release|x64 + {4D6E49E2-58C4-49C8-8664-C8A89D418927}.Release|x64.Build.0 = Release|x64 + {4D6E49E2-58C4-49C8-8664-C8A89D418927}.Release|x86.ActiveCfg = Release|x86 + {4D6E49E2-58C4-49C8-8664-C8A89D418927}.Release|x86.Build.0 = Release|x86 + {304A9ACA-337E-40BC-AC18-BC3B303CBF6C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {304A9ACA-337E-40BC-AC18-BC3B303CBF6C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {304A9ACA-337E-40BC-AC18-BC3B303CBF6C}.Debug|x64.ActiveCfg = Debug|x64 + {304A9ACA-337E-40BC-AC18-BC3B303CBF6C}.Debug|x64.Build.0 = Debug|x64 + {304A9ACA-337E-40BC-AC18-BC3B303CBF6C}.Debug|x86.ActiveCfg = Debug|x86 + {304A9ACA-337E-40BC-AC18-BC3B303CBF6C}.Debug|x86.Build.0 = Debug|x86 + {304A9ACA-337E-40BC-AC18-BC3B303CBF6C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {304A9ACA-337E-40BC-AC18-BC3B303CBF6C}.Release|Any CPU.Build.0 = Release|Any CPU + {304A9ACA-337E-40BC-AC18-BC3B303CBF6C}.Release|x64.ActiveCfg = Release|x64 + {304A9ACA-337E-40BC-AC18-BC3B303CBF6C}.Release|x64.Build.0 = Release|x64 + {304A9ACA-337E-40BC-AC18-BC3B303CBF6C}.Release|x86.ActiveCfg = Release|x86 + {304A9ACA-337E-40BC-AC18-BC3B303CBF6C}.Release|x86.Build.0 = Release|x86 + {658AE6DC-A4FA-4042-A26F-E5B6CC7EF56B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {658AE6DC-A4FA-4042-A26F-E5B6CC7EF56B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {658AE6DC-A4FA-4042-A26F-E5B6CC7EF56B}.Debug|x64.ActiveCfg = Debug|x64 + {658AE6DC-A4FA-4042-A26F-E5B6CC7EF56B}.Debug|x64.Build.0 = Debug|x64 + {658AE6DC-A4FA-4042-A26F-E5B6CC7EF56B}.Debug|x86.ActiveCfg = Debug|x86 + {658AE6DC-A4FA-4042-A26F-E5B6CC7EF56B}.Debug|x86.Build.0 = Debug|x86 + {658AE6DC-A4FA-4042-A26F-E5B6CC7EF56B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {658AE6DC-A4FA-4042-A26F-E5B6CC7EF56B}.Release|Any CPU.Build.0 = Release|Any CPU + {658AE6DC-A4FA-4042-A26F-E5B6CC7EF56B}.Release|x64.ActiveCfg = Release|x64 + {658AE6DC-A4FA-4042-A26F-E5B6CC7EF56B}.Release|x64.Build.0 = Release|x64 + {658AE6DC-A4FA-4042-A26F-E5B6CC7EF56B}.Release|x86.ActiveCfg = Release|x86 + {658AE6DC-A4FA-4042-A26F-E5B6CC7EF56B}.Release|x86.Build.0 = Release|x86 + {D0E58F68-8706-4308-924B-BE56A03B3C99}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D0E58F68-8706-4308-924B-BE56A03B3C99}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D0E58F68-8706-4308-924B-BE56A03B3C99}.Debug|x64.ActiveCfg = Debug|x64 + {D0E58F68-8706-4308-924B-BE56A03B3C99}.Debug|x64.Build.0 = Debug|x64 + {D0E58F68-8706-4308-924B-BE56A03B3C99}.Debug|x86.ActiveCfg = Debug|x86 + {D0E58F68-8706-4308-924B-BE56A03B3C99}.Debug|x86.Build.0 = Debug|x86 + {D0E58F68-8706-4308-924B-BE56A03B3C99}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D0E58F68-8706-4308-924B-BE56A03B3C99}.Release|Any CPU.Build.0 = Release|Any CPU + {D0E58F68-8706-4308-924B-BE56A03B3C99}.Release|x64.ActiveCfg = Release|x64 + {D0E58F68-8706-4308-924B-BE56A03B3C99}.Release|x64.Build.0 = Release|x64 + {D0E58F68-8706-4308-924B-BE56A03B3C99}.Release|x86.ActiveCfg = Release|x86 + {D0E58F68-8706-4308-924B-BE56A03B3C99}.Release|x86.Build.0 = Release|x86 + {DF48872B-3E78-409C-B43C-1EFD46B0BBC4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DF48872B-3E78-409C-B43C-1EFD46B0BBC4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DF48872B-3E78-409C-B43C-1EFD46B0BBC4}.Debug|x64.ActiveCfg = Debug|x64 + {DF48872B-3E78-409C-B43C-1EFD46B0BBC4}.Debug|x64.Build.0 = Debug|x64 + {DF48872B-3E78-409C-B43C-1EFD46B0BBC4}.Debug|x86.ActiveCfg = Debug|x86 + {DF48872B-3E78-409C-B43C-1EFD46B0BBC4}.Debug|x86.Build.0 = Debug|x86 + {DF48872B-3E78-409C-B43C-1EFD46B0BBC4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DF48872B-3E78-409C-B43C-1EFD46B0BBC4}.Release|Any CPU.Build.0 = Release|Any CPU + {DF48872B-3E78-409C-B43C-1EFD46B0BBC4}.Release|x64.ActiveCfg = Release|x64 + {DF48872B-3E78-409C-B43C-1EFD46B0BBC4}.Release|x64.Build.0 = Release|x64 + {DF48872B-3E78-409C-B43C-1EFD46B0BBC4}.Release|x86.ActiveCfg = Release|x86 + {DF48872B-3E78-409C-B43C-1EFD46B0BBC4}.Release|x86.Build.0 = Release|x86 + {A8B53A6B-40A6-40BA-A671-03FC911BC37B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A8B53A6B-40A6-40BA-A671-03FC911BC37B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A8B53A6B-40A6-40BA-A671-03FC911BC37B}.Debug|x64.ActiveCfg = Debug|x64 + {A8B53A6B-40A6-40BA-A671-03FC911BC37B}.Debug|x64.Build.0 = Debug|x64 + {A8B53A6B-40A6-40BA-A671-03FC911BC37B}.Debug|x86.ActiveCfg = Debug|x86 + {A8B53A6B-40A6-40BA-A671-03FC911BC37B}.Debug|x86.Build.0 = Debug|x86 + {A8B53A6B-40A6-40BA-A671-03FC911BC37B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A8B53A6B-40A6-40BA-A671-03FC911BC37B}.Release|Any CPU.Build.0 = Release|Any CPU + {A8B53A6B-40A6-40BA-A671-03FC911BC37B}.Release|x64.ActiveCfg = Release|x64 + {A8B53A6B-40A6-40BA-A671-03FC911BC37B}.Release|x64.Build.0 = Release|x64 + {A8B53A6B-40A6-40BA-A671-03FC911BC37B}.Release|x86.ActiveCfg = Release|x86 + {A8B53A6B-40A6-40BA-A671-03FC911BC37B}.Release|x86.Build.0 = Release|x86 + {10D619AF-E1CD-4F4A-9C19-5E434300B48F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {10D619AF-E1CD-4F4A-9C19-5E434300B48F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {10D619AF-E1CD-4F4A-9C19-5E434300B48F}.Debug|x64.ActiveCfg = Debug|x64 + {10D619AF-E1CD-4F4A-9C19-5E434300B48F}.Debug|x64.Build.0 = Debug|x64 + {10D619AF-E1CD-4F4A-9C19-5E434300B48F}.Debug|x86.ActiveCfg = Debug|x86 + {10D619AF-E1CD-4F4A-9C19-5E434300B48F}.Debug|x86.Build.0 = Debug|x86 + {10D619AF-E1CD-4F4A-9C19-5E434300B48F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {10D619AF-E1CD-4F4A-9C19-5E434300B48F}.Release|Any CPU.Build.0 = Release|Any CPU + {10D619AF-E1CD-4F4A-9C19-5E434300B48F}.Release|x64.ActiveCfg = Release|x64 + {10D619AF-E1CD-4F4A-9C19-5E434300B48F}.Release|x64.Build.0 = Release|x64 + {10D619AF-E1CD-4F4A-9C19-5E434300B48F}.Release|x86.ActiveCfg = Release|x86 + {10D619AF-E1CD-4F4A-9C19-5E434300B48F}.Release|x86.Build.0 = Release|x86 + {EF9864C5-4DEC-46E8-BC11-A2E5BB9BB9D4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EF9864C5-4DEC-46E8-BC11-A2E5BB9BB9D4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EF9864C5-4DEC-46E8-BC11-A2E5BB9BB9D4}.Debug|x64.ActiveCfg = Debug|x64 + {EF9864C5-4DEC-46E8-BC11-A2E5BB9BB9D4}.Debug|x64.Build.0 = Debug|x64 + {EF9864C5-4DEC-46E8-BC11-A2E5BB9BB9D4}.Debug|x86.ActiveCfg = Debug|x86 + {EF9864C5-4DEC-46E8-BC11-A2E5BB9BB9D4}.Debug|x86.Build.0 = Debug|x86 + {EF9864C5-4DEC-46E8-BC11-A2E5BB9BB9D4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EF9864C5-4DEC-46E8-BC11-A2E5BB9BB9D4}.Release|Any CPU.Build.0 = Release|Any CPU + {EF9864C5-4DEC-46E8-BC11-A2E5BB9BB9D4}.Release|x64.ActiveCfg = Release|x64 + {EF9864C5-4DEC-46E8-BC11-A2E5BB9BB9D4}.Release|x64.Build.0 = Release|x64 + {EF9864C5-4DEC-46E8-BC11-A2E5BB9BB9D4}.Release|x86.ActiveCfg = Release|x86 + {EF9864C5-4DEC-46E8-BC11-A2E5BB9BB9D4}.Release|x86.Build.0 = Release|x86 + {A7004127-46AD-4CA5-AEBC-5D70E64AD68A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A7004127-46AD-4CA5-AEBC-5D70E64AD68A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A7004127-46AD-4CA5-AEBC-5D70E64AD68A}.Debug|x64.ActiveCfg = Debug|x64 + {A7004127-46AD-4CA5-AEBC-5D70E64AD68A}.Debug|x64.Build.0 = Debug|x64 + {A7004127-46AD-4CA5-AEBC-5D70E64AD68A}.Debug|x86.ActiveCfg = Debug|x86 + {A7004127-46AD-4CA5-AEBC-5D70E64AD68A}.Debug|x86.Build.0 = Debug|x86 + {A7004127-46AD-4CA5-AEBC-5D70E64AD68A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A7004127-46AD-4CA5-AEBC-5D70E64AD68A}.Release|Any CPU.Build.0 = Release|Any CPU + {A7004127-46AD-4CA5-AEBC-5D70E64AD68A}.Release|x64.ActiveCfg = Release|x64 + {A7004127-46AD-4CA5-AEBC-5D70E64AD68A}.Release|x64.Build.0 = Release|x64 + {A7004127-46AD-4CA5-AEBC-5D70E64AD68A}.Release|x86.ActiveCfg = Release|x86 + {A7004127-46AD-4CA5-AEBC-5D70E64AD68A}.Release|x86.Build.0 = Release|x86 + {D0C39D9D-BED0-418B-9A5E-713176CAF40C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D0C39D9D-BED0-418B-9A5E-713176CAF40C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D0C39D9D-BED0-418B-9A5E-713176CAF40C}.Debug|x64.ActiveCfg = Debug|x64 + {D0C39D9D-BED0-418B-9A5E-713176CAF40C}.Debug|x64.Build.0 = Debug|x64 + {D0C39D9D-BED0-418B-9A5E-713176CAF40C}.Debug|x86.ActiveCfg = Debug|x86 + {D0C39D9D-BED0-418B-9A5E-713176CAF40C}.Debug|x86.Build.0 = Debug|x86 + {D0C39D9D-BED0-418B-9A5E-713176CAF40C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D0C39D9D-BED0-418B-9A5E-713176CAF40C}.Release|Any CPU.Build.0 = Release|Any CPU + {D0C39D9D-BED0-418B-9A5E-713176CAF40C}.Release|x64.ActiveCfg = Release|x64 + {D0C39D9D-BED0-418B-9A5E-713176CAF40C}.Release|x64.Build.0 = Release|x64 + {D0C39D9D-BED0-418B-9A5E-713176CAF40C}.Release|x86.ActiveCfg = Release|x86 + {D0C39D9D-BED0-418B-9A5E-713176CAF40C}.Release|x86.Build.0 = Release|x86 + {E06DEF77-F933-42FB-AFD7-DB2D0D8D6A98}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E06DEF77-F933-42FB-AFD7-DB2D0D8D6A98}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E06DEF77-F933-42FB-AFD7-DB2D0D8D6A98}.Debug|x64.ActiveCfg = Debug|x64 + {E06DEF77-F933-42FB-AFD7-DB2D0D8D6A98}.Debug|x64.Build.0 = Debug|x64 + {E06DEF77-F933-42FB-AFD7-DB2D0D8D6A98}.Debug|x86.ActiveCfg = Debug|x86 + {E06DEF77-F933-42FB-AFD7-DB2D0D8D6A98}.Debug|x86.Build.0 = Debug|x86 + {E06DEF77-F933-42FB-AFD7-DB2D0D8D6A98}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E06DEF77-F933-42FB-AFD7-DB2D0D8D6A98}.Release|Any CPU.Build.0 = Release|Any CPU + {E06DEF77-F933-42FB-AFD7-DB2D0D8D6A98}.Release|x64.ActiveCfg = Release|x64 + {E06DEF77-F933-42FB-AFD7-DB2D0D8D6A98}.Release|x64.Build.0 = Release|x64 + {E06DEF77-F933-42FB-AFD7-DB2D0D8D6A98}.Release|x86.ActiveCfg = Release|x86 + {E06DEF77-F933-42FB-AFD7-DB2D0D8D6A98}.Release|x86.Build.0 = Release|x86 + {FEE68CF6-1D60-4E90-AEF3-6AFA4A8C977D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FEE68CF6-1D60-4E90-AEF3-6AFA4A8C977D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FEE68CF6-1D60-4E90-AEF3-6AFA4A8C977D}.Debug|x64.ActiveCfg = Debug|x64 + {FEE68CF6-1D60-4E90-AEF3-6AFA4A8C977D}.Debug|x64.Build.0 = Debug|x64 + {FEE68CF6-1D60-4E90-AEF3-6AFA4A8C977D}.Debug|x86.ActiveCfg = Debug|x86 + {FEE68CF6-1D60-4E90-AEF3-6AFA4A8C977D}.Debug|x86.Build.0 = Debug|x86 + {FEE68CF6-1D60-4E90-AEF3-6AFA4A8C977D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FEE68CF6-1D60-4E90-AEF3-6AFA4A8C977D}.Release|Any CPU.Build.0 = Release|Any CPU + {FEE68CF6-1D60-4E90-AEF3-6AFA4A8C977D}.Release|x64.ActiveCfg = Release|x64 + {FEE68CF6-1D60-4E90-AEF3-6AFA4A8C977D}.Release|x64.Build.0 = Release|x64 + {FEE68CF6-1D60-4E90-AEF3-6AFA4A8C977D}.Release|x86.ActiveCfg = Release|x86 + {FEE68CF6-1D60-4E90-AEF3-6AFA4A8C977D}.Release|x86.Build.0 = Release|x86 + {1D2C209A-6E19-4FCF-BA08-11B8096FCA99}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1D2C209A-6E19-4FCF-BA08-11B8096FCA99}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1D2C209A-6E19-4FCF-BA08-11B8096FCA99}.Debug|x64.ActiveCfg = Debug|x64 + {1D2C209A-6E19-4FCF-BA08-11B8096FCA99}.Debug|x64.Build.0 = Debug|x64 + {1D2C209A-6E19-4FCF-BA08-11B8096FCA99}.Debug|x86.ActiveCfg = Debug|x86 + {1D2C209A-6E19-4FCF-BA08-11B8096FCA99}.Debug|x86.Build.0 = Debug|x86 + {1D2C209A-6E19-4FCF-BA08-11B8096FCA99}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1D2C209A-6E19-4FCF-BA08-11B8096FCA99}.Release|Any CPU.Build.0 = Release|Any CPU + {1D2C209A-6E19-4FCF-BA08-11B8096FCA99}.Release|x64.ActiveCfg = Release|x64 + {1D2C209A-6E19-4FCF-BA08-11B8096FCA99}.Release|x64.Build.0 = Release|x64 + {1D2C209A-6E19-4FCF-BA08-11B8096FCA99}.Release|x86.ActiveCfg = Release|x86 + {1D2C209A-6E19-4FCF-BA08-11B8096FCA99}.Release|x86.Build.0 = Release|x86 + {78659756-B505-403B-9173-0965DF601030}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {78659756-B505-403B-9173-0965DF601030}.Debug|Any CPU.Build.0 = Debug|Any CPU + {78659756-B505-403B-9173-0965DF601030}.Debug|x64.ActiveCfg = Debug|x64 + {78659756-B505-403B-9173-0965DF601030}.Debug|x64.Build.0 = Debug|x64 + {78659756-B505-403B-9173-0965DF601030}.Debug|x86.ActiveCfg = Debug|x86 + {78659756-B505-403B-9173-0965DF601030}.Debug|x86.Build.0 = Debug|x86 + {78659756-B505-403B-9173-0965DF601030}.Release|Any CPU.ActiveCfg = Release|Any CPU + {78659756-B505-403B-9173-0965DF601030}.Release|Any CPU.Build.0 = Release|Any CPU + {78659756-B505-403B-9173-0965DF601030}.Release|x64.ActiveCfg = Release|x64 + {78659756-B505-403B-9173-0965DF601030}.Release|x64.Build.0 = Release|x64 + {78659756-B505-403B-9173-0965DF601030}.Release|x86.ActiveCfg = Release|x86 + {78659756-B505-403B-9173-0965DF601030}.Release|x86.Build.0 = Release|x86 + {B9225DE4-BE79-43F8-B84B-BECF360E329A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B9225DE4-BE79-43F8-B84B-BECF360E329A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B9225DE4-BE79-43F8-B84B-BECF360E329A}.Debug|x64.ActiveCfg = Debug|x64 + {B9225DE4-BE79-43F8-B84B-BECF360E329A}.Debug|x64.Build.0 = Debug|x64 + {B9225DE4-BE79-43F8-B84B-BECF360E329A}.Debug|x86.ActiveCfg = Debug|x86 + {B9225DE4-BE79-43F8-B84B-BECF360E329A}.Debug|x86.Build.0 = Debug|x86 + {B9225DE4-BE79-43F8-B84B-BECF360E329A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B9225DE4-BE79-43F8-B84B-BECF360E329A}.Release|Any CPU.Build.0 = Release|Any CPU + {B9225DE4-BE79-43F8-B84B-BECF360E329A}.Release|x64.ActiveCfg = Release|x64 + {B9225DE4-BE79-43F8-B84B-BECF360E329A}.Release|x64.Build.0 = Release|x64 + {B9225DE4-BE79-43F8-B84B-BECF360E329A}.Release|x86.ActiveCfg = Release|x86 + {B9225DE4-BE79-43F8-B84B-BECF360E329A}.Release|x86.Build.0 = Release|x86 + {90BDD163-CEA0-4FCE-BA73-7591B71263CB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {90BDD163-CEA0-4FCE-BA73-7591B71263CB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {90BDD163-CEA0-4FCE-BA73-7591B71263CB}.Debug|x64.ActiveCfg = Debug|x64 + {90BDD163-CEA0-4FCE-BA73-7591B71263CB}.Debug|x64.Build.0 = Debug|x64 + {90BDD163-CEA0-4FCE-BA73-7591B71263CB}.Debug|x86.ActiveCfg = Debug|x86 + {90BDD163-CEA0-4FCE-BA73-7591B71263CB}.Debug|x86.Build.0 = Debug|x86 + {90BDD163-CEA0-4FCE-BA73-7591B71263CB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {90BDD163-CEA0-4FCE-BA73-7591B71263CB}.Release|Any CPU.Build.0 = Release|Any CPU + {90BDD163-CEA0-4FCE-BA73-7591B71263CB}.Release|x64.ActiveCfg = Release|x64 + {90BDD163-CEA0-4FCE-BA73-7591B71263CB}.Release|x64.Build.0 = Release|x64 + {90BDD163-CEA0-4FCE-BA73-7591B71263CB}.Release|x86.ActiveCfg = Release|x86 + {90BDD163-CEA0-4FCE-BA73-7591B71263CB}.Release|x86.Build.0 = Release|x86 + {A564097E-CFE8-4098-BAE5-D7693F9AD297}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A564097E-CFE8-4098-BAE5-D7693F9AD297}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A564097E-CFE8-4098-BAE5-D7693F9AD297}.Debug|x64.ActiveCfg = Debug|Any CPU + {A564097E-CFE8-4098-BAE5-D7693F9AD297}.Debug|x64.Build.0 = Debug|Any CPU + {A564097E-CFE8-4098-BAE5-D7693F9AD297}.Debug|x86.ActiveCfg = Debug|Any CPU + {A564097E-CFE8-4098-BAE5-D7693F9AD297}.Debug|x86.Build.0 = Debug|Any CPU + {A564097E-CFE8-4098-BAE5-D7693F9AD297}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A564097E-CFE8-4098-BAE5-D7693F9AD297}.Release|Any CPU.Build.0 = Release|Any CPU + {A564097E-CFE8-4098-BAE5-D7693F9AD297}.Release|x64.ActiveCfg = Release|Any CPU + {A564097E-CFE8-4098-BAE5-D7693F9AD297}.Release|x64.Build.0 = Release|Any CPU + {A564097E-CFE8-4098-BAE5-D7693F9AD297}.Release|x86.ActiveCfg = Release|Any CPU + {A564097E-CFE8-4098-BAE5-D7693F9AD297}.Release|x86.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {ECED32B7-1081-48D3-A223-1CB67A2D7016} = {F5B0E1E6-6FA7-4EEA-905A-B32125985C14} + {BB2FCE6E-DF1F-40CC-9D7E-01CC9BE97EFA} = {F5B0E1E6-6FA7-4EEA-905A-B32125985C14} + {859C2F5B-FBF1-4D3B-8442-CF8E44E8B74B} = {F5B0E1E6-6FA7-4EEA-905A-B32125985C14} + {182AFE98-D3A5-471A-B9D9-C1C53DD72829} = {F5B0E1E6-6FA7-4EEA-905A-B32125985C14} + {66B64B00-C457-404E-AA2B-90F18127E394} = {F5B0E1E6-6FA7-4EEA-905A-B32125985C14} + {782E9338-ECA7-4095-9157-6CA003801F05} = {F5B0E1E6-6FA7-4EEA-905A-B32125985C14} + {091DFD9D-5599-4EEA-A616-A55FC12E9613} = {F5B0E1E6-6FA7-4EEA-905A-B32125985C14} + {4A523280-2DEA-43C6-BE11-48BDFF283751} = {F5B0E1E6-6FA7-4EEA-905A-B32125985C14} + {18E423A1-619C-4ED7-96BE-1BD71EACFCAE} = {F5B0E1E6-6FA7-4EEA-905A-B32125985C14} + {1423A6AE-E85A-4E76-91CA-704A1C59F7DC} = {F5B0E1E6-6FA7-4EEA-905A-B32125985C14} + {0EB24CA5-824B-4507-9C6E-BBBF5DB8BE57} = {F5B0E1E6-6FA7-4EEA-905A-B32125985C14} + {FCAB4916-791F-4302-90A0-E409410F66BF} = {F5B0E1E6-6FA7-4EEA-905A-B32125985C14} + {4D6E49E2-58C4-49C8-8664-C8A89D418927} = {F5B0E1E6-6FA7-4EEA-905A-B32125985C14} + {304A9ACA-337E-40BC-AC18-BC3B303CBF6C} = {F5B0E1E6-6FA7-4EEA-905A-B32125985C14} + {658AE6DC-A4FA-4042-A26F-E5B6CC7EF56B} = {F5B0E1E6-6FA7-4EEA-905A-B32125985C14} + {D0E58F68-8706-4308-924B-BE56A03B3C99} = {F5B0E1E6-6FA7-4EEA-905A-B32125985C14} + {DF48872B-3E78-409C-B43C-1EFD46B0BBC4} = {F5B0E1E6-6FA7-4EEA-905A-B32125985C14} + {D0C39D9D-BED0-418B-9A5E-713176CAF40C} = {BBA8D997-B7FB-45FE-86A2-08C01C0AAB4C} + {E06DEF77-F933-42FB-AFD7-DB2D0D8D6A98} = {BBA8D997-B7FB-45FE-86A2-08C01C0AAB4C} + {FEE68CF6-1D60-4E90-AEF3-6AFA4A8C977D} = {BBA8D997-B7FB-45FE-86A2-08C01C0AAB4C} + {1D2C209A-6E19-4FCF-BA08-11B8096FCA99} = {BBA8D997-B7FB-45FE-86A2-08C01C0AAB4C} + {78659756-B505-403B-9173-0965DF601030} = {BBA8D997-B7FB-45FE-86A2-08C01C0AAB4C} + {B9225DE4-BE79-43F8-B84B-BECF360E329A} = {BBA8D997-B7FB-45FE-86A2-08C01C0AAB4C} + {A564097E-CFE8-4098-BAE5-D7693F9AD297} = {F5B0E1E6-6FA7-4EEA-905A-B32125985C14} + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {1F308521-252A-4B60-8C81-1A2F327B3E47} + EndGlobalSection +EndGlobal diff --git a/projects/plugins/GKTreeSyncPlugin/GKTreeSyncPlugin.cs b/projects/plugins/GKTreeSyncPlugin/GKTreeSyncPlugin.cs new file mode 100644 index 000000000..26e2e4eac --- /dev/null +++ b/projects/plugins/GKTreeSyncPlugin/GKTreeSyncPlugin.cs @@ -0,0 +1,103 @@ +/* + * "GEDKeeper", the personal genealogical database editor. + * Copyright (C) 2009-2024 by Sergey V. Zhdanovskih. + * + * This file is part of "GEDKeeper". + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +using System; +using System.Reflection; +using GKCore; +using GKCore.Design.Graphics; +using GKCore.Interfaces; +using GKCore.Plugins; + +[assembly: AssemblyTitle("GKTreeSyncPlugin")] +[assembly: AssemblyDescription("GEDKeeper Tree Synchronization plugin")] +[assembly: AssemblyProduct("GEDKeeper")] +[assembly: AssemblyCopyright("Copyright © 2024 by Sergey V. Zhdanovskih")] +[assembly: AssemblyVersion("0.1.0.0")] +[assembly: AssemblyCulture("")] + +#if DEBUG +[assembly: AssemblyConfiguration("Debug")] +#elif RELEASE +[assembly: AssemblyConfiguration("Release")] +#endif + +namespace GKTreeSyncPlugin +{ + public enum PLS + { + Title = 1, + } + + public sealed class Plugin : WidgetPlugin + { + private string fDisplayName = "GKTreeSyncPlugin"; + private ILangMan fLangMan; + + public override string DisplayName { get { return fDisplayName; } } + public override ILangMan LangMan { get { return fLangMan; } } + public override IImage Icon { get { return null; } } + public override PluginCategory Category { get { return PluginCategory.Tool; } } + + private TSForm fForm; + + protected override void Dispose(bool disposing) + { + if (disposing) { + if (fForm != null) fForm.Dispose(); + } + base.Dispose(disposing); + } + + public override void Execute() + { + IBaseWindow curBase = Host.GetCurrentFile(); + if (curBase == null) return; + + fForm = new TSForm(this, curBase); + fForm.Show(); + } + + public override void OnLanguageChange() + { + try { + fLangMan = Host.CreateLangMan(this); + //fDisplayName = fLangMan.LS(PLS.Title); + + if (fForm != null) fForm.SetLocale(); + } catch (Exception ex) { + Logger.WriteError("GKTreeSyncPlugin.OnLanguageChange()", ex); + } + } + + public override void BaseChanged(IBaseWindow baseWin) + { + /*if (fForm != null) { + fForm.BaseChanged(baseWin); + }*/ + } + + public override void BaseClosed(IBaseWindow baseWin) + { + /*if (fForm != null) { + fForm.BaseChanged(null); + }*/ + } + } +} diff --git a/projects/plugins/GKTreeSyncPlugin/GKTreeSyncPlugin.csproj b/projects/plugins/GKTreeSyncPlugin/GKTreeSyncPlugin.csproj new file mode 100644 index 000000000..ac4ebc0ad --- /dev/null +++ b/projects/plugins/GKTreeSyncPlugin/GKTreeSyncPlugin.csproj @@ -0,0 +1,66 @@ + + + + + Debug + AnyCPU + {A564097E-CFE8-4098-BAE5-D7693F9AD297} + Library + Properties + GKTreeSyncPlugin + GKTreeSyncPlugin + v4.7.1 + 512 + true + + + true + full + false + ..\..\..\plugins\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\..\..\plugins\ + TRACE + prompt + 4 + + + + ..\..\libs\BSLib.dll + + + + + + + + + + + Form + + + TSForm.cs + + + + + {10d619af-e1cd-4f4a-9c19-5e434300b48f} + GKCore + + + {ef9864c5-4dec-46e8-bc11-a2e5bb9bb9d4} + GKComponents + + + + + + + \ No newline at end of file diff --git a/projects/plugins/GKTreeSyncPlugin/TSForm.Designer.cs b/projects/plugins/GKTreeSyncPlugin/TSForm.Designer.cs new file mode 100644 index 000000000..20998e283 --- /dev/null +++ b/projects/plugins/GKTreeSyncPlugin/TSForm.Designer.cs @@ -0,0 +1,222 @@ +namespace GKTreeSyncPlugin +{ + partial class TSForm + { + private System.ComponentModel.IContainer components = null; + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.Button btnSelectFile; + private System.Windows.Forms.Label lblFile; + private System.Windows.Forms.TextBox txtFile; + private System.Windows.Forms.ComboBox cmbRecordTypes; + private System.Windows.Forms.RadioButton rbSyncSelected; + private System.Windows.Forms.RadioButton rbSyncAll; + private System.Windows.Forms.SplitContainer splitContainer1; + private GKUI.Components.GKListView gkListView1; + private GKUI.Components.GKListView gkListView2; + private System.Windows.Forms.ColumnHeader columnHeader1; + private System.Windows.Forms.ColumnHeader columnHeader2; + + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + private void InitializeComponent() + { + this.panel1 = new System.Windows.Forms.Panel(); + this.btnSelectFile = new System.Windows.Forms.Button(); + this.lblFile = new System.Windows.Forms.Label(); + this.txtFile = new System.Windows.Forms.TextBox(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.cmbRecordTypes = new System.Windows.Forms.ComboBox(); + this.rbSyncSelected = new System.Windows.Forms.RadioButton(); + this.rbSyncAll = new System.Windows.Forms.RadioButton(); + this.splitContainer1 = new System.Windows.Forms.SplitContainer(); + this.gkListView1 = new GKUI.Components.GKListView(); + this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.gkListView2 = new GKUI.Components.GKListView(); + this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.panel1.SuspendLayout(); + this.groupBox1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); + this.splitContainer1.Panel1.SuspendLayout(); + this.splitContainer1.Panel2.SuspendLayout(); + this.splitContainer1.SuspendLayout(); + this.SuspendLayout(); + // + // panel1 + // + this.panel1.Controls.Add(this.btnSelectFile); + this.panel1.Controls.Add(this.lblFile); + this.panel1.Controls.Add(this.txtFile); + this.panel1.Controls.Add(this.groupBox1); + this.panel1.Dock = System.Windows.Forms.DockStyle.Top; + this.panel1.Location = new System.Drawing.Point(0, 0); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(1047, 92); + this.panel1.TabIndex = 0; + // + // btnSelectFile + // + this.btnSelectFile.Location = new System.Drawing.Point(913, 10); + this.btnSelectFile.Name = "btnSelectFile"; + this.btnSelectFile.Size = new System.Drawing.Size(122, 23); + this.btnSelectFile.TabIndex = 3; + this.btnSelectFile.Text = "Select file..."; + this.btnSelectFile.UseVisualStyleBackColor = true; + this.btnSelectFile.Click += new System.EventHandler(this.btnSelectFile_ClickAsync); + // + // lblFile + // + this.lblFile.AutoSize = true; + this.lblFile.Location = new System.Drawing.Point(378, 15); + this.lblFile.Name = "lblFile"; + this.lblFile.Size = new System.Drawing.Size(23, 13); + this.lblFile.TabIndex = 2; + this.lblFile.Text = "File"; + // + // txtFile + // + this.txtFile.Location = new System.Drawing.Point(458, 12); + this.txtFile.Name = "txtFile"; + this.txtFile.ReadOnly = true; + this.txtFile.Size = new System.Drawing.Size(449, 20); + this.txtFile.TabIndex = 1; + // + // groupBox1 + // + this.groupBox1.Controls.Add(this.cmbRecordTypes); + this.groupBox1.Controls.Add(this.rbSyncSelected); + this.groupBox1.Controls.Add(this.rbSyncAll); + this.groupBox1.Location = new System.Drawing.Point(12, 12); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(347, 70); + this.groupBox1.TabIndex = 0; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Synchronize records"; + // + // cmbRecordTypes + // + this.cmbRecordTypes.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbRecordTypes.FormattingEnabled = true; + this.cmbRecordTypes.Location = new System.Drawing.Point(133, 41); + this.cmbRecordTypes.Name = "cmbRecordTypes"; + this.cmbRecordTypes.Size = new System.Drawing.Size(208, 21); + this.cmbRecordTypes.TabIndex = 2; + // + // rbSyncSelected + // + this.rbSyncSelected.AutoSize = true; + this.rbSyncSelected.Location = new System.Drawing.Point(9, 42); + this.rbSyncSelected.Name = "rbSyncSelected"; + this.rbSyncSelected.Size = new System.Drawing.Size(67, 17); + this.rbSyncSelected.TabIndex = 1; + this.rbSyncSelected.TabStop = true; + this.rbSyncSelected.Text = "Selected"; + this.rbSyncSelected.UseVisualStyleBackColor = true; + this.rbSyncSelected.CheckedChanged += new System.EventHandler(this.rbSyncRecords_CheckedChanged); + // + // rbSyncAll + // + this.rbSyncAll.AutoSize = true; + this.rbSyncAll.Location = new System.Drawing.Point(9, 19); + this.rbSyncAll.Name = "rbSyncAll"; + this.rbSyncAll.Size = new System.Drawing.Size(36, 17); + this.rbSyncAll.TabIndex = 0; + this.rbSyncAll.TabStop = true; + this.rbSyncAll.Text = "All"; + this.rbSyncAll.UseVisualStyleBackColor = true; + this.rbSyncAll.CheckedChanged += new System.EventHandler(this.rbSyncRecords_CheckedChanged); + // + // splitContainer1 + // + this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill; + this.splitContainer1.Location = new System.Drawing.Point(0, 92); + this.splitContainer1.Name = "splitContainer1"; + // + // splitContainer1.Panel1 + // + this.splitContainer1.Panel1.Controls.Add(this.gkListView1); + // + // splitContainer1.Panel2 + // + this.splitContainer1.Panel2.Controls.Add(this.gkListView2); + this.splitContainer1.Size = new System.Drawing.Size(1047, 536); + this.splitContainer1.SplitterDistance = 349; + this.splitContainer1.TabIndex = 1; + // + // gkListView1 + // + this.gkListView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.columnHeader1}); + this.gkListView1.Dock = System.Windows.Forms.DockStyle.Fill; + this.gkListView1.FullRowSelect = true; + this.gkListView1.HideSelection = false; + this.gkListView1.ListMan = null; + this.gkListView1.Location = new System.Drawing.Point(0, 0); + this.gkListView1.Name = "gkListView1"; + this.gkListView1.OwnerDraw = true; + this.gkListView1.SelectedIndex = -1; + this.gkListView1.Size = new System.Drawing.Size(349, 536); + this.gkListView1.SortColumn = 0; + this.gkListView1.SortOrder = GKCore.Design.BSDTypes.SortOrder.None; + this.gkListView1.TabIndex = 0; + this.gkListView1.UseCompatibleStateImageBehavior = false; + this.gkListView1.View = System.Windows.Forms.View.Details; + // + // columnHeader1 + // + this.columnHeader1.Text = "Record"; + this.columnHeader1.Width = 400; + // + // gkListView2 + // + this.gkListView2.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.columnHeader2}); + this.gkListView2.Dock = System.Windows.Forms.DockStyle.Fill; + this.gkListView2.FullRowSelect = true; + this.gkListView2.HideSelection = false; + this.gkListView2.ListMan = null; + this.gkListView2.Location = new System.Drawing.Point(0, 0); + this.gkListView2.Name = "gkListView2"; + this.gkListView2.OwnerDraw = true; + this.gkListView2.SelectedIndex = -1; + this.gkListView2.Size = new System.Drawing.Size(694, 536); + this.gkListView2.SortColumn = 0; + this.gkListView2.SortOrder = GKCore.Design.BSDTypes.SortOrder.None; + this.gkListView2.TabIndex = 0; + this.gkListView2.UseCompatibleStateImageBehavior = false; + this.gkListView2.View = System.Windows.Forms.View.Details; + // + // columnHeader2 + // + this.columnHeader2.Text = "Record"; + this.columnHeader2.Width = 400; + // + // TSForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(1047, 628); + this.Controls.Add(this.splitContainer1); + this.Controls.Add(this.panel1); + this.Name = "TSForm"; + this.Text = "TSForm"; + this.Load += new System.EventHandler(this.TSForm_Load); + this.Resize += new System.EventHandler(this.TSForm_Resize); + this.panel1.ResumeLayout(false); + this.panel1.PerformLayout(); + this.groupBox1.ResumeLayout(false); + this.groupBox1.PerformLayout(); + this.splitContainer1.Panel1.ResumeLayout(false); + this.splitContainer1.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit(); + this.splitContainer1.ResumeLayout(false); + this.ResumeLayout(false); + } + } +} diff --git a/projects/plugins/GKTreeSyncPlugin/TSForm.cs b/projects/plugins/GKTreeSyncPlugin/TSForm.cs new file mode 100644 index 000000000..3811429d7 --- /dev/null +++ b/projects/plugins/GKTreeSyncPlugin/TSForm.cs @@ -0,0 +1,88 @@ +/* + * "GEDKeeper", the personal genealogical database editor. + * Copyright (C) 2009-2024 by Sergey V. Zhdanovskih. + * + * This file is part of "GEDKeeper". + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +using System; +using System.Windows.Forms; +using GDModel; +using GKCore; +using GKCore.Interfaces; +using GKCore.Tools; + +namespace GKTreeSyncPlugin +{ + public partial class TSForm : Form, ILocalizable + { + private readonly IBaseWindow fBase; + private readonly SyncTool fSyncTool; + + public TSForm() + { + InitializeComponent(); + } + + public TSForm(Plugin plugin, IBaseWindow curBase) : this() + { + for (var rt = GDMRecordType.rtIndividual; rt <= GDMRecordType.rtLocation; rt++) { + var name = LangMan.LS(GKData.RecordTypes[(int)rt].Name); + cmbRecordTypes.Items.Add(name); + } + + fBase = curBase; + fSyncTool = new SyncTool(); + } + + public void SetLocale() + { + } + + private void TSForm_Load(object sender, EventArgs e) + { + ResizeSplitter(); + } + + private void ResizeSplitter() + { + var diff = splitContainer1.Panel1.Width - splitContainer1.Panel2.Width; + splitContainer1.SplitterDistance -= diff / 2; + } + + private void TSForm_Resize(object sender, EventArgs e) + { + ResizeSplitter(); + } + + private async void btnSelectFile_ClickAsync(object sender, EventArgs e) + { + string fileName = await AppHost.StdDialogs.GetOpenFile("", "", LangMan.LS(LSID.GEDCOMFilter), 1, GKData.GEDCOM_EXT); + if (string.IsNullOrEmpty(fileName)) { + txtFile.Text = string.Empty; + return; + } + + txtFile.Text = fileName; + fSyncTool.LoadOtherFile(fBase.Context.Tree, fileName); + } + + private void rbSyncRecords_CheckedChanged(object sender, EventArgs e) + { + cmbRecordTypes.Enabled = !rbSyncAll.Checked; + } + } +}