diff --git a/CREDITS.md b/CREDITS.md
index dfc75b7c..04b91554 100644
--- a/CREDITS.md
+++ b/CREDITS.md
@@ -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
diff --git a/mRemoteNG.Specs/mRemoteNG.Specs.csproj b/mRemoteNG.Specs/mRemoteNG.Specs.csproj
index 77e89717..6ed9287d 100644
--- a/mRemoteNG.Specs/mRemoteNG.Specs.csproj
+++ b/mRemoteNG.Specs/mRemoteNG.Specs.csproj
@@ -110,7 +110,7 @@
..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll
- ..\packages\System.ValueTuple.4.5.0\lib\netstandard1.0\System.ValueTuple.dll
+ ..\packages\System.ValueTuple.4.5.0\lib\net47\System.ValueTuple.dll
@@ -124,7 +124,7 @@
..\packages\SpecFlow.NUnit.3.1.97\lib\net45\TechTalk.SpecFlow.NUnit.SpecFlowPlugin.dll
- ..\packages\Utf8Json.1.3.7\lib\net45\Utf8Json.dll
+ ..\packages\Utf8Json.1.3.7\lib\net47\Utf8Json.dll
diff --git a/mRemoteNG.Specs/packages.config b/mRemoteNG.Specs/packages.config
index 16fa5e37..d1804d23 100644
--- a/mRemoteNG.Specs/packages.config
+++ b/mRemoteNG.Specs/packages.config
@@ -1,18 +1,18 @@
-
+
-
+
-
+
-
+
-
+
-
+
@@ -32,6 +32,6 @@
-
-
+
+
\ No newline at end of file
diff --git a/mRemoteNGTests/packages.config b/mRemoteNGTests/packages.config
index d22ef96c..7038a532 100644
--- a/mRemoteNGTests/packages.config
+++ b/mRemoteNGTests/packages.config
@@ -2,20 +2,20 @@
-
-
+
+
-
+
-
+
-
+
-
+
-
-
+
+
diff --git a/mRemoteV1/App/Windows.cs b/mRemoteV1/App/Windows.cs
index d4ec8c9a..9a2ec643 100644
--- a/mRemoteV1/App/Windows.cs
+++ b/mRemoteV1/App/Windows.cs
@@ -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();
diff --git a/mRemoteV1/Console.ico b/mRemoteV1/Console.ico
new file mode 100644
index 00000000..6800624b
Binary files /dev/null and b/mRemoteV1/Console.ico differ
diff --git a/mRemoteV1/Resources/Language/Language.Designer.cs b/mRemoteV1/Resources/Language/Language.Designer.cs
index 71330447..427371dd 100644
--- a/mRemoteV1/Resources/Language/Language.Designer.cs
+++ b/mRemoteV1/Resources/Language/Language.Designer.cs
@@ -126,14 +126,12 @@ namespace mRemoteNG {
///
/// Looks up a localized string similar to Connection failed!.
///
- internal static string ConnectionFailed
- {
- get
- {
+ internal static string ConnectionFailed {
+ get {
return ResourceManager.GetString("ConnectionFailed", resourceCulture);
}
}
-
+
///
/// Looks up a localized string similar to The connection file could not be found..
///
@@ -1085,6 +1083,15 @@ namespace mRemoteNG {
}
}
+ ///
+ /// Looks up a localized string similar to Changelog.
+ ///
+ internal static string strChangelog {
+ get {
+ return ResourceManager.GetString("strChangelog", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Automatically try to reconnect when disconnected from server (RDP && ICA only).
///
@@ -1259,14 +1266,12 @@ namespace mRemoteNG {
///
/// Looks up a localized string similar to Close to notification area.
///
- internal static string strCloseToSysTray
- {
- get
- {
+ internal static string strCloseToSysTray {
+ get {
return ResourceManager.GetString("strCloseToSysTray", resourceCulture);
}
}
-
+
///
/// Looks up a localized string similar to Collapse all folders.
///
@@ -1619,15 +1624,6 @@ namespace mRemoteNG {
}
}
- ///
- /// Looks up a localized string similar to Connection failed!.
- ///
- internal static string strConnectionEventConnectionFailed {
- get {
- return ResourceManager.GetString("strConnectionEventConnectionFailed", resourceCulture);
- }
- }
-
///
/// Looks up a localized string similar to A connection protocol error occurred. Host: "{1}"; Error code: "{2}"; Error Description: "{0}".
///
@@ -1876,6 +1872,15 @@ namespace mRemoteNG {
}
}
+ ///
+ /// Looks up a localized string similar to Credits.
+ ///
+ internal static string strCredits {
+ get {
+ return ResourceManager.GetString("strCredits", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Installed version.
///
@@ -2897,15 +2902,6 @@ namespace mRemoteNG {
}
}
- ///
- /// Looks up a localized string similar to Connection failed!.
- ///
- internal static string strIntAppConnectionFailed {
- get {
- return ResourceManager.GetString("strIntAppConnectionFailed", resourceCulture);
- }
- }
-
///
/// Looks up a localized string similar to Dispose of Int App process failed!.
///
@@ -3257,6 +3253,15 @@ namespace mRemoteNG {
}
}
+ ///
+ /// Looks up a localized string similar to License.
+ ///
+ internal static string strLicense {
+ get {
+ return ResourceManager.GetString("strLicense", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Use UTF8 encoding for RDP "Load Balance Info" property.
///
@@ -4692,14 +4697,12 @@ namespace mRemoteNG {
///
/// Looks up a localized string similar to PowerShell.
///
- internal static string strPowerShell
- {
- get
- {
+ internal static string strPowerShell {
+ get {
return ResourceManager.GetString("strPowerShell", resourceCulture);
}
}
-
+
///
/// Looks up a localized string similar to (These properties will only be saved if you select mRemote/mRemoteNG XML as output file format!).
///
@@ -5009,14 +5012,12 @@ namespace mRemoteNG {
///
/// Looks up a localized string similar to Specifies the password of the Remote Desktop Gateway server..
///
- internal static string strPropertyDescriptionRDGatewayPassword
- {
- get
- {
+ internal static string strPropertyDescriptionRDGatewayPassword {
+ get {
return ResourceManager.GetString("strPropertyDescriptionRDGatewayPassword", resourceCulture);
}
}
-
+
///
/// Looks up a localized string similar to Specifies when to use a Remote Desktop Gateway (RD Gateway) server..
///
@@ -5110,14 +5111,12 @@ namespace mRemoteNG {
///
/// Looks up a localized string similar to Select whether microphones should be shared..
///
- internal static string strPropertyDescriptionRedirectMicrophones
- {
- get
- {
+ internal static string strPropertyDescriptionRedirectMicrophones {
+ get {
return ResourceManager.GetString("strPropertyDescriptionRedirectMicrophones", resourceCulture);
}
}
-
+
///
/// Looks up a localized string similar to Select whether local ports (ie. com, parallel) should be shown on the remote host..
///
@@ -5965,15 +5964,6 @@ namespace mRemoteNG {
}
}
- ///
- /// Looks up a localized string similar to Connection failed!.
- ///
- internal static string strPuttyConnectionFailed {
- get {
- return ResourceManager.GetString("strPuttyConnectionFailed", resourceCulture);
- }
- }
-
///
/// Looks up a localized string similar to Dispose of Putty process failed!.
///
@@ -8194,14 +8184,12 @@ namespace mRemoteNG {
///
/// Looks up a localized string similar to Windows.
///
- internal static string strWindows
- {
- get
- {
+ internal static string strWindows {
+ get {
return ResourceManager.GetString("strWindows", resourceCulture);
}
}
-
+
///
/// Looks up a localized string similar to Working directory.
///
diff --git a/mRemoteV1/Resources/Language/Language.de.resx b/mRemoteV1/Resources/Language/Language.de.resx
index ecbeff0c..9ceb34aa 100644
--- a/mRemoteV1/Resources/Language/Language.de.resx
+++ b/mRemoteV1/Resources/Language/Language.de.resx
@@ -2711,4 +2711,7 @@ Development umfasst Alphas, Betas und Release Candidates.
In den System Tray schließen
+
+ Lizenz
+
\ No newline at end of file
diff --git a/mRemoteV1/Resources/Language/Language.fr.resx b/mRemoteV1/Resources/Language/Language.fr.resx
index 27e81f70..c778bcd2 100644
--- a/mRemoteV1/Resources/Language/Language.fr.resx
+++ b/mRemoteV1/Resources/Language/Language.fr.resx
@@ -59,7 +59,7 @@
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
-
+
@@ -105,15 +105,15 @@
-
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
text/microsoft-resx
2.0
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
@@ -2147,4 +2147,7 @@ Message:
Oui
-
+
+ Crédits
+
+
\ No newline at end of file
diff --git a/mRemoteV1/Resources/Language/Language.resx b/mRemoteV1/Resources/Language/Language.resx
index d24399d1..014fdfe2 100644
--- a/mRemoteV1/Resources/Language/Language.resx
+++ b/mRemoteV1/Resources/Language/Language.resx
@@ -2870,4 +2870,13 @@ Development Channel includes Alphas, Betas & Release Candidates.
PowerShell
+
+ Changelog
+
+
+ Credits
+
+
+ License
+
\ No newline at end of file
diff --git a/mRemoteV1/UI/Forms/FrmAbout.Designer.cs b/mRemoteV1/UI/Forms/FrmAbout.Designer.cs
new file mode 100644
index 00000000..1e6c0715
--- /dev/null
+++ b/mRemoteV1/UI/Forms/FrmAbout.Designer.cs
@@ -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;
+ }
+}
diff --git a/mRemoteV1/UI/Forms/FrmAbout.cs b/mRemoteV1/UI/Forms/FrmAbout.cs
new file mode 100644
index 00000000..b526a32c
--- /dev/null
+++ b/mRemoteV1/UI/Forms/FrmAbout.cs
@@ -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();
+ }
+ }
+}
\ No newline at end of file
diff --git a/mRemoteV1/UI/Window/AboutWindow.resx b/mRemoteV1/UI/Forms/FrmAbout.resx
similarity index 100%
rename from mRemoteV1/UI/Window/AboutWindow.resx
rename to mRemoteV1/UI/Forms/FrmAbout.resx
diff --git a/mRemoteV1/UI/Menu/HelpMenu.cs b/mRemoteV1/UI/Menu/HelpMenu.cs
index ec4eb70b..f7819f0f 100644
--- a/mRemoteV1/UI/Menu/HelpMenu.cs
+++ b/mRemoteV1/UI/Menu/HelpMenu.cs
@@ -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
}
diff --git a/mRemoteV1/UI/Window/AboutWindow.Designer.cs b/mRemoteV1/UI/Window/AboutWindow.Designer.cs
deleted file mode 100644
index a1c9910f..00000000
--- a/mRemoteV1/UI/Window/AboutWindow.Designer.cs
+++ /dev/null
@@ -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(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(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;
- }
-}
diff --git a/mRemoteV1/UI/Window/AboutWindow.cs b/mRemoteV1/UI/Window/AboutWindow.cs
deleted file mode 100644
index 16317bb7..00000000
--- a/mRemoteV1/UI/Window/AboutWindow.cs
+++ /dev/null
@@ -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(@"(?";
-
- 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 + $"{changelogHtml}";
-
- var credits = new StreamReader(GeneralAppInfo.HomePath + @"\CREDITS.md", Encoding.UTF8, true).ReadToEnd();
- var creditsHtml = Markdown.ToHtml(credits, pipeline);
- creditsHtml = css + $"{creditsHtml}";
-
- gwbChangeLog.LoadHtml(changelogHtml.Replace("©", "©"));
- gwbCredits.LoadHtml(creditsHtml.Replace("©", "©"));
- }
- 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
- }
-}
\ No newline at end of file
diff --git a/mRemoteV1/UI/WindowType.cs b/mRemoteV1/UI/WindowType.cs
index 4921365d..afb18aca 100644
--- a/mRemoteV1/UI/WindowType.cs
+++ b/mRemoteV1/UI/WindowType.cs
@@ -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,
diff --git a/mRemoteV1/mRemoteV1.csproj b/mRemoteV1/mRemoteV1.csproj
index 80380c73..7730a120 100644
--- a/mRemoteV1/mRemoteV1.csproj
+++ b/mRemoteV1/mRemoteV1.csproj
@@ -81,9 +81,6 @@
..\packages\log4net.2.0.8\lib\net45-full\log4net.dll
-
- ..\packages\Markdig.0.20.0\lib\netstandard2.0\Markdig.dll
-
@@ -800,11 +797,11 @@
frmTaskDialog.cs
-
+
Form
-
- AboutWindow.cs
+
+ FrmAbout.cs
ActiveDirectoryImportWindow.cs
@@ -1100,8 +1097,8 @@
frmTaskDialog.cs
-
- AboutWindow.cs
+
+ FrmAbout.cs
Designer
@@ -1192,9 +1189,9 @@
+
-
@@ -1226,6 +1223,7 @@
+
diff --git a/mRemoteV1/packages.config b/mRemoteV1/packages.config
index c0506e05..7820f1da 100644
--- a/mRemoteV1/packages.config
+++ b/mRemoteV1/packages.config
@@ -3,22 +3,21 @@
-
-
-
-
-
+
+
+
+
+
-
-
+
-
-
+
+