Merge pull request #1767 from mRemoteNG/aboutscreen

Revised about screen
This commit is contained in:
Faryan Rezagholi
2020-05-26 10:01:11 +02:00
committed by GitHub
20 changed files with 338 additions and 447 deletions

View File

@@ -9,6 +9,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
- #283: Support for native PowerShell remoting as new protocol
- #420: SSH tunneling implemented
### Changed
- #1767: Turned about window into a simple popup form
- #1460: Updated GeckoFX to v60
### Fixed
- #1610: Menu bar changes to english when cancelling options form

View File

@@ -139,11 +139,6 @@ Copyright © 2006-2016 Phillip Piper
GNU General Public License (GPL) Version 3
https://sourceforge.net/projects/objectlistview/
Markdig
Copyright © 2016-2019 Alexandre Mutel
BSD 2-Clause "Simplified"
https://github.com/lunet-io/markdig
ConsoleControl
Copyright © 2015 Dave Kerr
MIT License

View File

@@ -110,7 +110,7 @@
<HintPath>..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll</HintPath>
</Reference>
<Reference Include="System.ValueTuple, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.ValueTuple.4.5.0\lib\netstandard1.0\System.ValueTuple.dll</HintPath>
<HintPath>..\packages\System.ValueTuple.4.5.0\lib\net47\System.ValueTuple.dll</HintPath>
</Reference>
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
@@ -124,7 +124,7 @@
<HintPath>..\packages\SpecFlow.NUnit.3.1.97\lib\net45\TechTalk.SpecFlow.NUnit.SpecFlowPlugin.dll</HintPath>
</Reference>
<Reference Include="Utf8Json, Version=1.3.7.0, Culture=neutral, PublicKeyToken=8a73d3ba7e392e27, processorArchitecture=MSIL">
<HintPath>..\packages\Utf8Json.1.3.7\lib\net45\Utf8Json.dll</HintPath>
<HintPath>..\packages\Utf8Json.1.3.7\lib\net47\Utf8Json.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>

View File

@@ -1,18 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="BoDi" version="1.4.1" targetFramework="net46" />
<package id="BoDi" version="1.4.1" targetFramework="net472" />
<package id="Cucumber.Messages" version="6.0.2" targetFramework="net472" />
<package id="Gherkin" version="6.0.0" targetFramework="net46" />
<package id="Gherkin" version="6.0.0" targetFramework="net472" />
<package id="Google.Protobuf" version="3.12.1" targetFramework="net472" />
<package id="Newtonsoft.Json" version="12.0.3" targetFramework="net472" />
<package id="NUnit" version="3.12.0" targetFramework="net46" />
<package id="NUnit" version="3.12.0" targetFramework="net472" />
<package id="NUnit.Console" version="3.11.1" targetFramework="net472" />
<package id="NUnit.ConsoleRunner" version="3.11.1" targetFramework="net472" />
<package id="NUnit.Extension.NUnitProjectLoader" version="3.6.0" targetFramework="net46" />
<package id="NUnit.Extension.NUnitProjectLoader" version="3.6.0" targetFramework="net472" />
<package id="NUnit.Extension.NUnitV2Driver" version="3.8.0" targetFramework="net472" />
<package id="NUnit.Extension.NUnitV2ResultWriter" version="3.6.0" targetFramework="net46" />
<package id="NUnit.Extension.NUnitV2ResultWriter" version="3.6.0" targetFramework="net472" />
<package id="NUnit.Extension.TeamCityEventListener" version="1.0.7" targetFramework="net472" />
<package id="NUnit.Extension.VSProjectLoader" version="3.8.0" targetFramework="net46" />
<package id="NUnit.Extension.VSProjectLoader" version="3.8.0" targetFramework="net472" />
<package id="NUnit.Runners" version="3.11.1" targetFramework="net472" />
<package id="NUnit3TestAdapter" version="3.16.1" targetFramework="net472" developmentDependency="true" />
<package id="SpecFlow" version="3.1.97" targetFramework="net472" />
@@ -32,6 +32,6 @@
<package id="System.Security.Cryptography.Primitives" version="4.3.0" targetFramework="net472" />
<package id="System.Security.Cryptography.X509Certificates" version="4.3.2" targetFramework="net472" />
<package id="System.Threading.Tasks.Extensions" version="4.5.4" targetFramework="net472" />
<package id="System.ValueTuple" version="4.5.0" targetFramework="net46" requireReinstallation="true" />
<package id="Utf8Json" version="1.3.7" targetFramework="net46" requireReinstallation="true" />
<package id="System.ValueTuple" version="4.5.0" targetFramework="net472" />
<package id="Utf8Json" version="1.3.7" targetFramework="net472" />
</packages>

View File

@@ -2,20 +2,20 @@
<packages>
<package id="BouncyCastle" version="1.8.6.1" targetFramework="net472" />
<package id="Castle.Core" version="4.4.1" targetFramework="net472" />
<package id="DockPanelSuite" version="3.0.6" targetFramework="net46" />
<package id="log4net" version="2.0.8" targetFramework="net46" />
<package id="DockPanelSuite" version="3.0.6" targetFramework="net472" />
<package id="log4net" version="2.0.8" targetFramework="net472" />
<package id="NSubstitute" version="4.2.1" targetFramework="net472" />
<package id="NUnit" version="3.12.0" targetFramework="net46" />
<package id="NUnit" version="3.12.0" targetFramework="net472" />
<package id="NUnit.Console" version="3.11.1" targetFramework="net472" />
<package id="NUnit.ConsoleRunner" version="3.11.1" targetFramework="net472" />
<package id="NUnit.Extension.NUnitProjectLoader" version="3.6.0" targetFramework="net46" />
<package id="NUnit.Extension.NUnitProjectLoader" version="3.6.0" targetFramework="net472" />
<package id="NUnit.Extension.NUnitV2Driver" version="3.8.0" targetFramework="net472" />
<package id="NUnit.Extension.NUnitV2ResultWriter" version="3.6.0" targetFramework="net46" />
<package id="NUnit.Extension.NUnitV2ResultWriter" version="3.6.0" targetFramework="net472" />
<package id="NUnit.Extension.TeamCityEventListener" version="1.0.7" targetFramework="net472" />
<package id="NUnit.Extension.VSProjectLoader" version="3.8.0" targetFramework="net46" />
<package id="NUnit.Extension.VSProjectLoader" version="3.8.0" targetFramework="net472" />
<package id="NUnit3TestAdapter" version="3.16.1" targetFramework="net472" developmentDependency="true" />
<package id="ObjectListView.Official" version="2.9.1" targetFramework="net46" />
<package id="OpenCover" version="4.7.922" targetFramework="net46" />
<package id="ObjectListView.Official" version="2.9.1" targetFramework="net472" />
<package id="OpenCover" version="4.7.922" targetFramework="net472" />
<package id="ReportGenerator" version="4.5.8" targetFramework="net472" />
<package id="System.Runtime.CompilerServices.Unsafe" version="4.7.1" targetFramework="net472" />
<package id="System.Threading.Tasks.Extensions" version="4.5.4" targetFramework="net472" />

View File

@@ -8,7 +8,6 @@ namespace mRemoteNG.App
{
public static class Windows
{
private static AboutWindow _aboutForm;
private static ActiveDirectoryImportWindow _adimportForm;
private static HelpWindow _helpForm;
private static ExternalToolsWindow _externalappsForm;
@@ -39,11 +38,6 @@ namespace mRemoteNG.App
// ReSharper disable once SwitchStatementMissingSomeCases
switch (windowType)
{
case WindowType.About:
if (_aboutForm == null || _aboutForm.IsDisposed)
_aboutForm = new AboutWindow();
_aboutForm.Show(dockPanel);
break;
case WindowType.ActiveDirectoryImport:
if (_adimportForm == null || _adimportForm.IsDisposed)
_adimportForm = new ActiveDirectoryImportWindow();

BIN
mRemoteV1/Console.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

View File

@@ -126,14 +126,12 @@ namespace mRemoteNG {
/// <summary>
/// Looks up a localized string similar to Connection failed!.
/// </summary>
internal static string ConnectionFailed
{
get
{
internal static string ConnectionFailed {
get {
return ResourceManager.GetString("ConnectionFailed", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to The connection file could not be found..
/// </summary>
@@ -1085,6 +1083,15 @@ namespace mRemoteNG {
}
}
/// <summary>
/// Looks up a localized string similar to Changelog.
/// </summary>
internal static string strChangelog {
get {
return ResourceManager.GetString("strChangelog", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Automatically try to reconnect when disconnected from server (RDP &amp;&amp; ICA only).
/// </summary>
@@ -1259,14 +1266,12 @@ namespace mRemoteNG {
/// <summary>
/// Looks up a localized string similar to Close to notification area.
/// </summary>
internal static string strCloseToSysTray
{
get
{
internal static string strCloseToSysTray {
get {
return ResourceManager.GetString("strCloseToSysTray", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Collapse all folders.
/// </summary>
@@ -1619,15 +1624,6 @@ namespace mRemoteNG {
}
}
/// <summary>
/// Looks up a localized string similar to Connection failed!.
/// </summary>
internal static string strConnectionEventConnectionFailed {
get {
return ResourceManager.GetString("strConnectionEventConnectionFailed", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to A connection protocol error occurred. Host: &quot;{1}&quot;; Error code: &quot;{2}&quot;; Error Description: &quot;{0}&quot;.
/// </summary>
@@ -1876,6 +1872,15 @@ namespace mRemoteNG {
}
}
/// <summary>
/// Looks up a localized string similar to Credits.
/// </summary>
internal static string strCredits {
get {
return ResourceManager.GetString("strCredits", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Installed version.
/// </summary>
@@ -2897,15 +2902,6 @@ namespace mRemoteNG {
}
}
/// <summary>
/// Looks up a localized string similar to Connection failed!.
/// </summary>
internal static string strIntAppConnectionFailed {
get {
return ResourceManager.GetString("strIntAppConnectionFailed", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Dispose of Int App process failed!.
/// </summary>
@@ -3257,6 +3253,15 @@ namespace mRemoteNG {
}
}
/// <summary>
/// Looks up a localized string similar to License.
/// </summary>
internal static string strLicense {
get {
return ResourceManager.GetString("strLicense", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Use UTF8 encoding for RDP &quot;Load Balance Info&quot; property.
/// </summary>
@@ -4692,14 +4697,12 @@ namespace mRemoteNG {
/// <summary>
/// Looks up a localized string similar to PowerShell.
/// </summary>
internal static string strPowerShell
{
get
{
internal static string strPowerShell {
get {
return ResourceManager.GetString("strPowerShell", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to (These properties will only be saved if you select mRemote/mRemoteNG XML as output file format!).
/// </summary>
@@ -5009,14 +5012,12 @@ namespace mRemoteNG {
/// <summary>
/// Looks up a localized string similar to Specifies the password of the Remote Desktop Gateway server..
/// </summary>
internal static string strPropertyDescriptionRDGatewayPassword
{
get
{
internal static string strPropertyDescriptionRDGatewayPassword {
get {
return ResourceManager.GetString("strPropertyDescriptionRDGatewayPassword", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Specifies when to use a Remote Desktop Gateway (RD Gateway) server..
/// </summary>
@@ -5110,14 +5111,12 @@ namespace mRemoteNG {
/// <summary>
/// Looks up a localized string similar to Select whether microphones should be shared..
/// </summary>
internal static string strPropertyDescriptionRedirectMicrophones
{
get
{
internal static string strPropertyDescriptionRedirectMicrophones {
get {
return ResourceManager.GetString("strPropertyDescriptionRedirectMicrophones", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Select whether local ports (ie. com, parallel) should be shown on the remote host..
/// </summary>
@@ -5965,15 +5964,6 @@ namespace mRemoteNG {
}
}
/// <summary>
/// Looks up a localized string similar to Connection failed!.
/// </summary>
internal static string strPuttyConnectionFailed {
get {
return ResourceManager.GetString("strPuttyConnectionFailed", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Dispose of Putty process failed!.
/// </summary>
@@ -8194,14 +8184,12 @@ namespace mRemoteNG {
/// <summary>
/// Looks up a localized string similar to Windows.
/// </summary>
internal static string strWindows
{
get
{
internal static string strWindows {
get {
return ResourceManager.GetString("strWindows", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Working directory.
/// </summary>

View File

@@ -2711,4 +2711,7 @@ Development umfasst Alphas, Betas und Release Candidates.</value>
<data name="strCloseToSysTray" xml:space="preserve">
<value>In den System Tray schließen</value>
</data>
<data name="strLicense" xml:space="preserve">
<value>Lizenz</value>
</data>
</root>

View File

@@ -59,7 +59,7 @@
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="root">
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
@@ -105,15 +105,15 @@
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
@@ -2147,4 +2147,7 @@ Message:
<data name="strYes" xml:space="preserve">
<value>Oui</value>
</data>
</root>
<data name="strCredits" xml:space="preserve">
<value>Crédits</value>
</data>
</root>

View File

@@ -2870,4 +2870,13 @@ Development Channel includes Alphas, Betas &amp; Release Candidates.</value>
<data name="strPowerShell" xml:space="preserve">
<value>PowerShell</value>
</data>
<data name="strChangelog" xml:space="preserve">
<value>Changelog</value>
</data>
<data name="strCredits" xml:space="preserve">
<value>Credits</value>
</data>
<data name="strLicense" xml:space="preserve">
<value>License</value>
</data>
</root>

174
mRemoteV1/UI/Forms/FrmAbout.Designer.cs generated Normal file
View File

@@ -0,0 +1,174 @@
namespace mRemoteNG.UI.Window
{
public partial class FrmAbout
{
#region Windows Form Designer generated code
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmAbout));
this.pbLogo = new System.Windows.Forms.PictureBox();
this.pnlBottom = new System.Windows.Forms.Panel();
this.llCredits = new System.Windows.Forms.LinkLabel();
this.llChangelog = new System.Windows.Forms.LinkLabel();
this.llLicense = new System.Windows.Forms.LinkLabel();
this.lblTitle = new mRemoteNG.UI.Controls.Base.NGLabel();
this.lblVersion = new mRemoteNG.UI.Controls.Base.NGLabel();
this.lblLicense = new mRemoteNG.UI.Controls.Base.NGLabel();
this.lblCopyright = new mRemoteNG.UI.Controls.Base.NGLabel();
((System.ComponentModel.ISupportInitialize)(this.pbLogo)).BeginInit();
this.pnlBottom.SuspendLayout();
this.SuspendLayout();
//
// pbLogo
//
this.pbLogo.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(52)))), ((int)(((byte)(58)))), ((int)(((byte)(64)))));
this.pbLogo.BackgroundImage = global::mRemoteNG.Resources.Header_dark;
this.pbLogo.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center;
this.pbLogo.Dock = System.Windows.Forms.DockStyle.Top;
this.pbLogo.Location = new System.Drawing.Point(0, 0);
this.pbLogo.Name = "pbLogo";
this.pbLogo.Size = new System.Drawing.Size(584, 120);
this.pbLogo.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize;
this.pbLogo.TabIndex = 1;
this.pbLogo.TabStop = false;
//
// pnlBottom
//
this.pnlBottom.BackColor = System.Drawing.SystemColors.Control;
this.pnlBottom.Controls.Add(this.llCredits);
this.pnlBottom.Controls.Add(this.llChangelog);
this.pnlBottom.Controls.Add(this.llLicense);
this.pnlBottom.Controls.Add(this.lblTitle);
this.pnlBottom.Controls.Add(this.lblVersion);
this.pnlBottom.Controls.Add(this.lblLicense);
this.pnlBottom.Controls.Add(this.lblCopyright);
this.pnlBottom.Dock = System.Windows.Forms.DockStyle.Fill;
this.pnlBottom.ForeColor = System.Drawing.SystemColors.ControlText;
this.pnlBottom.Location = new System.Drawing.Point(0, 120);
this.pnlBottom.Name = "pnlBottom";
this.pnlBottom.Size = new System.Drawing.Size(584, 161);
this.pnlBottom.TabIndex = 1;
//
// llCredits
//
this.llCredits.AutoSize = true;
this.llCredits.Font = new System.Drawing.Font("Segoe UI", 9.75F);
this.llCredits.Location = new System.Drawing.Point(5, 134);
this.llCredits.Name = "llCredits";
this.llCredits.Size = new System.Drawing.Size(49, 17);
this.llCredits.TabIndex = 10;
this.llCredits.TabStop = true;
this.llCredits.Text = "Credits";
this.llCredits.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.llCredits_LinkClicked);
//
// llChangelog
//
this.llChangelog.AutoSize = true;
this.llChangelog.Font = new System.Drawing.Font("Segoe UI", 9.75F);
this.llChangelog.Location = new System.Drawing.Point(5, 117);
this.llChangelog.Name = "llChangelog";
this.llChangelog.Size = new System.Drawing.Size(71, 17);
this.llChangelog.TabIndex = 9;
this.llChangelog.TabStop = true;
this.llChangelog.Text = "Changelog";
this.llChangelog.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.llChangelog_LinkClicked);
//
// llLicense
//
this.llLicense.AutoSize = true;
this.llLicense.Font = new System.Drawing.Font("Segoe UI", 9.75F);
this.llLicense.Location = new System.Drawing.Point(5, 100);
this.llLicense.Name = "llLicense";
this.llLicense.Size = new System.Drawing.Size(50, 17);
this.llLicense.TabIndex = 8;
this.llLicense.TabStop = true;
this.llLicense.Text = "License";
this.llLicense.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.llLicense_LinkClicked);
//
// lblTitle
//
this.lblTitle.AutoSize = true;
this.lblTitle.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblTitle.ForeColor = System.Drawing.SystemColors.ControlText;
this.lblTitle.Location = new System.Drawing.Point(6, 3);
this.lblTitle.Name = "lblTitle";
this.lblTitle.Size = new System.Drawing.Size(106, 27);
this.lblTitle.TabIndex = 0;
this.lblTitle.Text = "mRemoteNG";
this.lblTitle.UseCompatibleTextRendering = true;
//
// lblVersion
//
this.lblVersion.AutoSize = true;
this.lblVersion.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblVersion.ForeColor = System.Drawing.SystemColors.ControlText;
this.lblVersion.Location = new System.Drawing.Point(6, 30);
this.lblVersion.Name = "lblVersion";
this.lblVersion.Size = new System.Drawing.Size(49, 22);
this.lblVersion.TabIndex = 1;
this.lblVersion.Text = "Version";
this.lblVersion.UseCompatibleTextRendering = true;
//
// lblLicense
//
this.lblLicense.AutoSize = true;
this.lblLicense.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblLicense.ForeColor = System.Drawing.SystemColors.ControlText;
this.lblLicense.Location = new System.Drawing.Point(6, 74);
this.lblLicense.Name = "lblLicense";
this.lblLicense.Size = new System.Drawing.Size(48, 22);
this.lblLicense.TabIndex = 5;
this.lblLicense.Text = "License";
this.lblLicense.UseCompatibleTextRendering = true;
//
// lblCopyright
//
this.lblCopyright.AutoSize = true;
this.lblCopyright.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblCopyright.ForeColor = System.Drawing.SystemColors.ControlText;
this.lblCopyright.Location = new System.Drawing.Point(6, 52);
this.lblCopyright.Name = "lblCopyright";
this.lblCopyright.Size = new System.Drawing.Size(63, 22);
this.lblCopyright.TabIndex = 2;
this.lblCopyright.Text = "Copyright";
this.lblCopyright.UseCompatibleTextRendering = true;
//
// FrmAbout
//
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
this.BackColor = System.Drawing.SystemColors.Control;
this.ClientSize = new System.Drawing.Size(584, 281);
this.Controls.Add(this.pnlBottom);
this.Controls.Add(this.pbLogo);
this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.ForeColor = System.Drawing.SystemColors.ControlText;
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MaximizeBox = false;
this.MaximumSize = new System.Drawing.Size(20000, 10000);
this.MinimizeBox = false;
this.Name = "FrmAbout";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "About";
this.TopMost = true;
((System.ComponentModel.ISupportInitialize)(this.pbLogo)).EndInit();
this.pnlBottom.ResumeLayout(false);
this.pnlBottom.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
internal Controls.Base.NGLabel lblCopyright;
internal Controls.Base.NGLabel lblTitle;
internal Controls.Base.NGLabel lblVersion;
internal Controls.Base.NGLabel lblLicense;
internal System.Windows.Forms.Panel pnlBottom;
internal System.Windows.Forms.PictureBox pbLogo;
private System.Windows.Forms.LinkLabel llCredits;
private System.Windows.Forms.LinkLabel llChangelog;
private System.Windows.Forms.LinkLabel llLicense;
}
}

View File

@@ -0,0 +1,62 @@
using mRemoteNG.App.Info;
using mRemoteNG.Themes;
using System.Windows.Forms;
using System.Diagnostics;
using mRemoteNG.UI.Forms;
namespace mRemoteNG.UI.Window
{
public partial class FrmAbout : Form
{
public static FrmAbout Instance { get; set; } = new FrmAbout();
private FrmAbout()
{
InitializeComponent();
ThemeManager.getInstance().ThemeChanged += ApplyTheme;
ApplyLanguage();
ApplyTheme();
}
private void ApplyLanguage()
{
lblLicense.Text = Language.strLabelReleasedUnderGPL;
base.Text = Language.strAbout;
llChangelog.Text = Language.strChangelog;
llCredits.Text = Language.strCredits;
llLicense.Text = Language.strLicense;
lblCopyright.Text = GeneralAppInfo.Copyright;
lblVersion.Text = $@"Version {GeneralAppInfo.ApplicationVersion}";
AddPortableString();
}
[Conditional("PORTABLE")]
private void AddPortableString() => lblTitle.Text += $@" {Language.strLabelPortableEdition}";
private void ApplyTheme()
{
if (!ThemeManager.getInstance().ThemingActive) return;
if (!ThemeManager.getInstance().ActiveAndExtended) return;
pnlBottom.BackColor = ThemeManager.getInstance().ActiveTheme.ExtendedPalette.getColor("Dialog_Background");
pnlBottom.ForeColor = ThemeManager.getInstance().ActiveTheme.ExtendedPalette.getColor("Dialog_Foreground");
}
private void llLicense_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
Process.Start("https://github.com/mRemoteNG/mRemoteNG/blob/develop/COPYING.TXT");
Close();
}
private void llChangelog_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
Process.Start("https://github.com/mRemoteNG/mRemoteNG/blob/develop/CHANGELOG.md");
Close();
}
private void llCredits_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
Process.Start("https://github.com/mRemoteNG/mRemoteNG/blob/develop/CREDITS.md");
Close();
}
}
}

View File

@@ -3,6 +3,7 @@ using System.Diagnostics;
using System.Windows.Forms;
using mRemoteNG.App;
using mRemoteNG.App.Info;
using mRemoteNG.UI.Window;
namespace mRemoteNG.UI.Menu
{
@@ -157,7 +158,7 @@ namespace mRemoteNG.UI.Menu
private void mMenInfoDonate_Click(object sender, EventArgs e) => Process.Start(GeneralAppInfo.UrlDonate);
private void mMenInfoAbout_Click(object sender, EventArgs e) => Windows.Show(WindowType.About);
private void mMenInfoAbout_Click(object sender, EventArgs e) => FrmAbout.Instance.Show();
#endregion
}

View File

@@ -1,203 +0,0 @@
namespace mRemoteNG.UI.Window
{
public partial class AboutWindow
{
#region Windows Form Designer generated code
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AboutWindow));
this.pnlTop = new System.Windows.Forms.Panel();
this.pbLogo = new System.Windows.Forms.PictureBox();
this.pnlBottom = new System.Windows.Forms.Panel();
this.lblTitle = new mRemoteNG.UI.Controls.Base.NGLabel();
this.lblVersion = new mRemoteNG.UI.Controls.Base.NGLabel();
this.lblLicense = new mRemoteNG.UI.Controls.Base.NGLabel();
this.lblCopyright = new mRemoteNG.UI.Controls.Base.NGLabel();
this.tlpBottom = new System.Windows.Forms.TableLayoutPanel();
this.gwbCredits = new Gecko.GeckoWebBrowser();
this.gwbChangeLog = new Gecko.GeckoWebBrowser();
this.tlpTop = new System.Windows.Forms.TableLayoutPanel();
this.pnlTop.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pbLogo)).BeginInit();
this.pnlBottom.SuspendLayout();
this.tlpBottom.SuspendLayout();
this.tlpTop.SuspendLayout();
this.SuspendLayout();
//
// pnlTop
//
this.pnlTop.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(52)))), ((int)(((byte)(58)))), ((int)(((byte)(64)))));
this.pnlTop.Controls.Add(this.pbLogo);
this.pnlTop.Dock = System.Windows.Forms.DockStyle.Fill;
this.pnlTop.ForeColor = System.Drawing.Color.White;
this.pnlTop.Location = new System.Drawing.Point(3, 3);
this.pnlTop.Name = "pnlTop";
this.pnlTop.Size = new System.Drawing.Size(1111, 116);
this.pnlTop.TabIndex = 0;
//
// pbLogo
//
this.pbLogo.Image = global::mRemoteNG.Resources.Header_dark;
this.pbLogo.Location = new System.Drawing.Point(0, 0);
this.pbLogo.Name = "pbLogo";
this.pbLogo.Size = new System.Drawing.Size(450, 120);
this.pbLogo.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize;
this.pbLogo.TabIndex = 1;
this.pbLogo.TabStop = false;
//
// pnlBottom
//
this.pnlBottom.BackColor = System.Drawing.SystemColors.Control;
this.pnlBottom.Controls.Add(this.lblTitle);
this.pnlBottom.Controls.Add(this.lblVersion);
this.pnlBottom.Controls.Add(this.lblLicense);
this.pnlBottom.Controls.Add(this.lblCopyright);
this.pnlBottom.Dock = System.Windows.Forms.DockStyle.Fill;
this.pnlBottom.ForeColor = System.Drawing.SystemColors.ControlText;
this.pnlBottom.Location = new System.Drawing.Point(3, 125);
this.pnlBottom.Name = "pnlBottom";
this.pnlBottom.Size = new System.Drawing.Size(1111, 194);
this.pnlBottom.TabIndex = 1;
//
// lblTitle
//
this.lblTitle.AutoSize = true;
this.lblTitle.Font = new System.Drawing.Font("Segoe UI", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblTitle.ForeColor = System.Drawing.SystemColors.ControlText;
this.lblTitle.Location = new System.Drawing.Point(3, 3);
this.lblTitle.Name = "lblTitle";
this.lblTitle.Size = new System.Drawing.Size(126, 31);
this.lblTitle.TabIndex = 0;
this.lblTitle.Text = "mRemoteNG";
this.lblTitle.UseCompatibleTextRendering = true;
//
// lblVersion
//
this.lblVersion.AutoSize = true;
this.lblVersion.Font = new System.Drawing.Font("Segoe UI", 11F);
this.lblVersion.ForeColor = System.Drawing.SystemColors.ControlText;
this.lblVersion.Location = new System.Drawing.Point(3, 34);
this.lblVersion.Name = "lblVersion";
this.lblVersion.Size = new System.Drawing.Size(55, 25);
this.lblVersion.TabIndex = 1;
this.lblVersion.Text = "Version";
this.lblVersion.UseCompatibleTextRendering = true;
//
// lblLicense
//
this.lblLicense.AutoSize = true;
this.lblLicense.Font = new System.Drawing.Font("Segoe UI", 11F);
this.lblLicense.ForeColor = System.Drawing.SystemColors.ControlText;
this.lblLicense.Location = new System.Drawing.Point(3, 84);
this.lblLicense.Name = "lblLicense";
this.lblLicense.Size = new System.Drawing.Size(54, 25);
this.lblLicense.TabIndex = 5;
this.lblLicense.Text = "License";
this.lblLicense.UseCompatibleTextRendering = true;
//
// lblCopyright
//
this.lblCopyright.AutoSize = true;
this.lblCopyright.Font = new System.Drawing.Font("Segoe UI", 11F);
this.lblCopyright.ForeColor = System.Drawing.SystemColors.ControlText;
this.lblCopyright.Location = new System.Drawing.Point(3, 59);
this.lblCopyright.Name = "lblCopyright";
this.lblCopyright.Size = new System.Drawing.Size(71, 25);
this.lblCopyright.TabIndex = 2;
this.lblCopyright.Text = "Copyright";
this.lblCopyright.UseCompatibleTextRendering = true;
//
// tlpBottom
//
this.tlpBottom.ColumnCount = 2;
this.tlpBottom.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
this.tlpBottom.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
this.tlpBottom.Controls.Add(this.gwbCredits, 0, 0);
this.tlpBottom.Controls.Add(this.gwbChangeLog, 1, 0);
this.tlpBottom.Dock = System.Windows.Forms.DockStyle.Fill;
this.tlpBottom.Location = new System.Drawing.Point(0, 235);
this.tlpBottom.Name = "tlpBottom";
this.tlpBottom.RowCount = 1;
this.tlpBottom.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
this.tlpBottom.Size = new System.Drawing.Size(1117, 470);
this.tlpBottom.TabIndex = 13;
//
// gwbCredits
//
this.gwbCredits.Dock = System.Windows.Forms.DockStyle.Fill;
this.gwbCredits.FrameEventsPropagateToMainWindow = false;
this.gwbCredits.Location = new System.Drawing.Point(3, 3);
this.gwbCredits.Name = "gwbCredits";
this.gwbCredits.NoDefaultContextMenu = true;
this.gwbCredits.Size = new System.Drawing.Size(552, 464);
this.gwbCredits.TabIndex = 12;
this.gwbCredits.UseHttpActivityObserver = false;
this.gwbCredits.DomClick += new System.EventHandler<Gecko.DomMouseEventArgs>(this.LinkClicked);
//
// gwbChangeLog
//
this.gwbChangeLog.Dock = System.Windows.Forms.DockStyle.Fill;
this.gwbChangeLog.FrameEventsPropagateToMainWindow = false;
this.gwbChangeLog.Location = new System.Drawing.Point(561, 3);
this.gwbChangeLog.Name = "gwbChangeLog";
this.gwbChangeLog.NoDefaultContextMenu = true;
this.gwbChangeLog.Size = new System.Drawing.Size(553, 464);
this.gwbChangeLog.TabIndex = 13;
this.gwbChangeLog.UseHttpActivityObserver = false;
this.gwbChangeLog.DomClick += new System.EventHandler<Gecko.DomMouseEventArgs>(this.LinkClicked);
//
// tlpTop
//
this.tlpTop.ColumnCount = 1;
this.tlpTop.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
this.tlpTop.Controls.Add(this.pnlTop, 0, 0);
this.tlpTop.Controls.Add(this.pnlBottom, 0, 1);
this.tlpTop.Dock = System.Windows.Forms.DockStyle.Top;
this.tlpTop.Location = new System.Drawing.Point(0, 0);
this.tlpTop.Name = "tlpTop";
this.tlpTop.RowCount = 2;
this.tlpTop.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 122F));
this.tlpTop.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 200F));
this.tlpTop.Size = new System.Drawing.Size(1117, 235);
this.tlpTop.TabIndex = 14;
//
// AboutWindow
//
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
this.BackColor = System.Drawing.SystemColors.Control;
this.ClientSize = new System.Drawing.Size(1117, 705);
this.Controls.Add(this.tlpBottom);
this.Controls.Add(this.tlpTop);
this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.ForeColor = System.Drawing.SystemColors.ControlText;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MaximumSize = new System.Drawing.Size(20000, 10000);
this.Name = "AboutWindow";
this.TabText = "About";
this.Text = "About";
this.pnlTop.ResumeLayout(false);
this.pnlTop.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.pbLogo)).EndInit();
this.pnlBottom.ResumeLayout(false);
this.pnlBottom.PerformLayout();
this.tlpBottom.ResumeLayout(false);
this.tlpTop.ResumeLayout(false);
this.ResumeLayout(false);
}
#endregion
internal Controls.Base.NGLabel lblCopyright;
internal Controls.Base.NGLabel lblTitle;
internal Controls.Base.NGLabel lblVersion;
internal Controls.Base.NGLabel lblLicense;
internal System.Windows.Forms.Panel pnlBottom;
internal System.Windows.Forms.PictureBox pbLogo;
private System.Windows.Forms.TableLayoutPanel tlpBottom;
private System.Windows.Forms.TableLayoutPanel tlpTop;
internal System.Windows.Forms.Panel pnlTop;
private Gecko.GeckoWebBrowser gwbCredits;
private Gecko.GeckoWebBrowser gwbChangeLog;
}
}

View File

@@ -1,132 +0,0 @@
using System;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Text;
using Gecko;
using mRemoteNG.App;
using mRemoteNG.App.Info;
using mRemoteNG.Messages;
using mRemoteNG.Themes;
using Markdig;
using WeifenLuo.WinFormsUI.Docking;
namespace mRemoteNG.UI.Window
{
public partial class AboutWindow : BaseWindow
{
#region Public Methods
public AboutWindow()
{
WindowType = WindowType.About;
DockPnl = new DockContent();
if (!Xpcom.IsInitialized)
Xpcom.Initialize("Firefox");
InitializeComponent();
FontOverrider.FontOverride(this);
ThemeManager.getInstance().ThemeChanged += ApplyTheme;
ApplyLanguage();
ApplyTheme();
LoadDocuments();
}
#endregion Public Methods
#region Private Methods
private void ApplyLanguage()
{
lblLicense.Text = Language.strLabelReleasedUnderGPL;
TabText = Language.strAbout;
Text = Language.strAbout;
lblCopyright.Text = GeneralAppInfo.Copyright;
lblVersion.Text = $@"Version {GeneralAppInfo.ApplicationVersion}";
#if PORTABLE
lblTitle.Text += $@" {Language.strLabelPortableEdition}";
#endif
}
private new void ApplyTheme()
{
if (!ThemeManager.getInstance().ThemingActive) return;
base.ApplyTheme();
if (!ThemeManager.getInstance().ActiveAndExtended) return;
BackColor = ThemeManager.getInstance().ActiveTheme.ExtendedPalette.getColor("Dialog_Background");
ForeColor = ThemeManager.getInstance().ActiveTheme.ExtendedPalette.getColor("Dialog_Foreground");
pnlBottom.BackColor = ThemeManager.getInstance().ActiveTheme.ExtendedPalette.getColor("Dialog_Background");
pnlBottom.ForeColor = ThemeManager.getInstance().ActiveTheme.ExtendedPalette.getColor("Dialog_Foreground");
pnlTop.ForeColor = ThemeManager.getInstance().ActiveTheme.ExtendedPalette.getColor("Dialog_Background");
pnlTop.ForeColor = ThemeManager.getInstance().ActiveTheme.ExtendedPalette.getColor("Dialog_Foreground");
}
#endregion Private Methods
#region Form Stuff
private void LoadDocuments()
{
try
{
// AppVeyor seems to pull text files in UNIX format... This messes up the display on the about screen...
//
// This would be MUCH faster:
//var UnxEndRx = new Regex(@"(?<!\r)\n$"); // Look for UNIX line endings and still Windows line endings.
//if (UnxEndRx.IsMatch(txtChangeLog.Text))
// txtChangeLog.Text = txtChangeLog.Text.Replace("\n", Environment.NewLine);
//
// But for some reason that I couldn't figure out, the RegEx.IsMatch on CREDITS.md/txtCredits.Text
// did not work at all despite it CLEARLY ending with \n when pulled from AppVeyor...
// The Changelog is a bit long anyways... Limit the number of lines to something reasonable.
if (!File.Exists(GeneralAppInfo.HomePath + @"\CREDITS.md") && !File.Exists(GeneralAppInfo.HomePath + @"\CHANGELOG.md")) return;
var pipeline = new MarkdownPipelineBuilder().UseAdvancedExtensions().Build();
var backgroundColor = ColorTranslator.ToHtml(ThemeManager.getInstance().ActiveTheme.ExtendedPalette.getColor("Dialog_Background"));
var foregroundColor = ColorTranslator.ToHtml(ThemeManager.getInstance().ActiveTheme.ExtendedPalette.getColor("Dialog_Foreground"));
var css =
$@"<head><style>body{{font-family:arial,helvetica,sans-serif;font-size:12px;color:{foregroundColor};}}a:link,a:visited,a:hover,a:active{{text-decoration:none;background-color:{foregroundColor};color:{backgroundColor};}}</style></head>";
var changelog = "";
using (var sR = new StreamReader(GeneralAppInfo.HomePath + @"\CHANGELOG.md", Encoding.UTF8, true))
{
string line;
var i = 0;
while ((line = sR.ReadLine()) != null)
{
changelog += line + Environment.NewLine;
i++;
if (i <= 128 || line != string.Empty) continue;
changelog +=
$"{Environment.NewLine}***See [CHANGELOG.md](https://github.com/mRemoteNG/mRemoteNG/blob/develop/CHANGELOG.md) for full History...***{Environment.NewLine}";
break;
}
}
var changelogHtml = Markdown.ToHtml(changelog, pipeline);
changelogHtml = css + $"<body bgcolor=\"{backgroundColor}\">{changelogHtml}</body>";
var credits = new StreamReader(GeneralAppInfo.HomePath + @"\CREDITS.md", Encoding.UTF8, true).ReadToEnd();
var creditsHtml = Markdown.ToHtml(credits, pipeline);
creditsHtml = css + $"<body bgcolor=\"{backgroundColor}\">{creditsHtml}</body>";
gwbChangeLog.LoadHtml(changelogHtml.Replace("©", "&copy;"));
gwbCredits.LoadHtml(creditsHtml.Replace("©", "&copy;"));
}
catch (Exception ex)
{
Runtime.MessageCollector.AddMessage(MessageClass.ErrorMsg,
"Loading About failed" + Environment.NewLine + ex.Message, true);
}
}
private void LinkClicked(object sender, DomMouseEventArgs e)
{
var url = ((GeckoWebBrowser)sender).StatusText;
if (!string.IsNullOrEmpty(url))
Process.Start(url);
e.Handled = true;
}
#endregion Form Stuff
}
}

View File

@@ -1,4 +1,4 @@
namespace mRemoteNG.UI
namespace mRemoteNG.UI
{
public enum WindowType
{
@@ -8,7 +8,6 @@ namespace mRemoteNG.UI
ErrorsAndInfos = 4,
ScreenshotManager = 5,
Options = 6,
About = 8,
Update = 9,
SSHTransfer = 10,
ActiveDirectoryImport = 11,

View File

@@ -78,9 +78,6 @@
<Reference Include="log4net, Version=2.0.8.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
<HintPath>..\packages\log4net.2.0.8\lib\net45-full\log4net.dll</HintPath>
</Reference>
<Reference Include="Markdig, Version=0.20.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Markdig.0.20.0\lib\netstandard2.0\Markdig.dll</HintPath>
</Reference>
<Reference Include="Microsoft.CSharp" />
<Reference Include="mscorlib" />
<Reference Include="MySql.Data, Version=8.0.20.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
@@ -804,11 +801,11 @@
<Compile Include="UI\TaskDialog\frmTaskDialog.designer.cs">
<DependentUpon>frmTaskDialog.cs</DependentUpon>
</Compile>
<Compile Include="UI\Window\AboutWindow.cs">
<Compile Include="UI\Forms\FrmAbout.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="UI\Window\AboutWindow.Designer.cs">
<DependentUpon>AboutWindow.cs</DependentUpon>
<Compile Include="UI\Forms\FrmAbout.Designer.cs">
<DependentUpon>FrmAbout.cs</DependentUpon>
</Compile>
<Compile Include="UI\Window\ActiveDirectoryImportWindow.Designer.cs">
<DependentUpon>ActiveDirectoryImportWindow.cs</DependentUpon>
@@ -1107,8 +1104,8 @@
<EmbeddedResource Include="UI\TaskDialog\frmTaskDialog.resx">
<DependentUpon>frmTaskDialog.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="UI\Window\AboutWindow.resx">
<DependentUpon>AboutWindow.cs</DependentUpon>
<EmbeddedResource Include="UI\Forms\FrmAbout.resx">
<DependentUpon>FrmAbout.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="UI\Window\ActiveDirectoryImportWindow.resx">
@@ -1199,9 +1196,9 @@
<None Include="Documentation\user_interface\screenshot_manager.rst" />
<None Include="Documentation\user_interface\port_scan.rst" />
<None Include="Documentation\user_interface\quick_connect.rst" />
<None Include="Documentation\howtos\vmrdp.rst" />
<None Include="Firefox\omni.ja" />
<None Include="packages.config" />
<None Include="Documentation\howtos\vmrdp.rst" />
<None Include="Resources\Templates\AppIcon.psd" />
<None Include="Resources\Templates\Header_dark.psd" />
<None Include="Resources\Templates\Header_light.psd" />
@@ -1233,6 +1230,7 @@
</None>
<None Include="Documentation\images\connections_status.png" />
<None Include="Documentation\images\putty.png" />
<Content Include="Console.ico" />
<Content Include="Documentation\images\ssh_tunnel.png" />
<Content Include="Documentation\mssql_db_setup.sql" />
<Content Include="Documentation\mysql_db_setup.sql" />

View File

@@ -3,22 +3,21 @@
<package id="BouncyCastle" version="1.8.6.1" targetFramework="net472" />
<package id="ConsoleControl" version="1.3.0" targetFramework="net472" />
<package id="ConsoleControlAPI" version="1.3.0" targetFramework="net472" />
<package id="DockPanelSuite" version="3.0.6" targetFramework="net46" />
<package id="DockPanelSuite.ThemeVS2003" version="3.0.6" targetFramework="net46" />
<package id="DockPanelSuite.ThemeVS2012" version="3.0.6" targetFramework="net46" />
<package id="DockPanelSuite.ThemeVS2013" version="3.0.6" targetFramework="net46" />
<package id="DockPanelSuite.ThemeVS2015" version="3.0.6" targetFramework="net46" />
<package id="DockPanelSuite" version="3.0.6" targetFramework="net472" />
<package id="DockPanelSuite.ThemeVS2003" version="3.0.6" targetFramework="net472" />
<package id="DockPanelSuite.ThemeVS2012" version="3.0.6" targetFramework="net472" />
<package id="DockPanelSuite.ThemeVS2013" version="3.0.6" targetFramework="net472" />
<package id="DockPanelSuite.ThemeVS2015" version="3.0.6" targetFramework="net472" />
<package id="Geckofx60.32" version="60.0.44" targetFramework="net472" />
<package id="Google.Protobuf" version="3.12.1" targetFramework="net472" />
<package id="K4os.Compression.LZ4" version="1.1.11" targetFramework="net472" />
<package id="K4os.Compression.LZ4.Streams" version="1.1.11" targetFramework="net472" />
<package id="K4os.Hash.xxHash" version="1.0.6" targetFramework="net472" />
<package id="log4net" version="2.0.8" targetFramework="net46" />
<package id="Markdig" version="0.20.0" targetFramework="net472" />
<package id="log4net" version="2.0.8" targetFramework="net472" />
<package id="MySql.Data" version="8.0.20" targetFramework="net472" />
<package id="NUnit3TestAdapter" version="3.16.1" targetFramework="net472" developmentDependency="true" />
<package id="ObjectListView.Official" version="2.9.1" targetFramework="net46" />
<package id="SSH.NET" version="2016.1.0" targetFramework="net46" />
<package id="ObjectListView.Official" version="2.9.1" targetFramework="net472" />
<package id="SSH.NET" version="2016.1.0" targetFramework="net472" />
<package id="System.Buffers" version="4.5.1" targetFramework="net472" />
<package id="System.Memory" version="4.5.4" targetFramework="net472" />
<package id="System.Numerics.Vectors" version="4.5.0" targetFramework="net472" />