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 @@ - - - - - + + + + + - - + - - + +