diff --git a/mRemoteV1/Properties/Settings.Designer.cs b/mRemoteV1/Properties/Settings.Designer.cs index 044cdb6d7..dd602bde7 100644 --- a/mRemoteV1/Properties/Settings.Designer.cs +++ b/mRemoteV1/Properties/Settings.Designer.cs @@ -2757,6 +2757,18 @@ namespace mRemoteNG { set { this["DefaultCredentialRecord"] = value; } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("True")] + public bool AlwaysShowConnectionTabs { + get { + return ((bool)(this["AlwaysShowConnectionTabs"])); + } + set { + this["AlwaysShowConnectionTabs"] = value; + } } } } diff --git a/mRemoteV1/Properties/Settings.settings b/mRemoteV1/Properties/Settings.settings index 830a1ae38..82244aaca 100644 --- a/mRemoteV1/Properties/Settings.settings +++ b/mRemoteV1/Properties/Settings.settings @@ -686,5 +686,8 @@ 00000000-0000-0000-0000-000000000000 + + True + \ No newline at end of file diff --git a/mRemoteV1/Resources/Language/Language.Designer.cs b/mRemoteV1/Resources/Language/Language.Designer.cs index 0b7746f7d..14045330f 100644 --- a/mRemoteV1/Resources/Language/Language.Designer.cs +++ b/mRemoteV1/Resources/Language/Language.Designer.cs @@ -19,7 +19,7 @@ namespace mRemoteNG { // class via a tool like ResGen or Visual Studio. // To add or remove a member, edit your .ResX file then rerun ResGen // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] internal class Language { @@ -420,6 +420,15 @@ namespace mRemoteNG { } } + /// + /// Looks up a localized string similar to Always show connection tabs. + /// + internal static string strAlwaysShowConnectionTabs { + get { + return ResourceManager.GetString("strAlwaysShowConnectionTabs", resourceCulture); + } + } + /// /// Looks up a localized string similar to Always show panel selection dialog when opening connections. /// diff --git a/mRemoteV1/Resources/Language/Language.cs-CZ.resx b/mRemoteV1/Resources/Language/Language.cs-CZ.resx index f74743e13..3d98f7a8d 100644 --- a/mRemoteV1/Resources/Language/Language.cs-CZ.resx +++ b/mRemoteV1/Resources/Language/Language.cs-CZ.resx @@ -938,7 +938,7 @@ Pro další informace navštivte článek podpory fy. Microsoft na http://suppo Možnosti: - Heso: + Heslo: Port: @@ -2511,4 +2511,4 @@ mRemoteNG se nyní ukončí a zahájí instalaci. Přiřazené přihlašovací informace - \ No newline at end of file + diff --git a/mRemoteV1/Resources/Language/Language.resx b/mRemoteV1/Resources/Language/Language.resx index 9e9ba0b34..889a9031f 100644 --- a/mRemoteV1/Resources/Language/Language.resx +++ b/mRemoteV1/Resources/Language/Language.resx @@ -2743,4 +2743,7 @@ This page will walk you through the process of upgrading your connections file o Track active connection in the connection tree + + Always show connection tabs + \ No newline at end of file diff --git a/mRemoteV1/UI/Forms/OptionsPages/TabsPanelsPage.Designer.cs b/mRemoteV1/UI/Forms/OptionsPages/TabsPanelsPage.Designer.cs index f90a353db..d08cbd180 100644 --- a/mRemoteV1/UI/Forms/OptionsPages/TabsPanelsPage.Designer.cs +++ b/mRemoteV1/UI/Forms/OptionsPages/TabsPanelsPage.Designer.cs @@ -32,7 +32,8 @@ namespace mRemoteNG.UI.Forms.OptionsPages private void InitializeComponent() { this.chkAlwaysShowPanelTabs = new mRemoteNG.UI.Controls.Base.NGCheckBox(); - this.chkIdentifyQuickConnectTabs = new mRemoteNG.UI.Controls.Base.NGCheckBox(); + this.chkAlwaysShowConnectionTabs = new mRemoteNG.UI.Controls.Base.NGCheckBox(); + this.chkIdentifyQuickConnectTabs = new mRemoteNG.UI.Controls.Base.NGCheckBox(); this.chkOpenNewTabRightOfSelected = new mRemoteNG.UI.Controls.Base.NGCheckBox(); this.chkAlwaysShowPanelSelectionDlg = new mRemoteNG.UI.Controls.Base.NGCheckBox(); this.chkShowLogonInfoOnTabs = new mRemoteNG.UI.Controls.Base.NGCheckBox(); @@ -54,13 +55,25 @@ namespace mRemoteNG.UI.Forms.OptionsPages this.chkAlwaysShowPanelTabs.TabIndex = 0; this.chkAlwaysShowPanelTabs.Text = "Always show panel tabs"; this.chkAlwaysShowPanelTabs.UseVisualStyleBackColor = true; - // - // chkIdentifyQuickConnectTabs - // - this.chkIdentifyQuickConnectTabs._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.HOVER; + // + // chkAlwaysShowConnectionTabs + // + this.chkAlwaysShowConnectionTabs._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.HOVER; + this.chkAlwaysShowConnectionTabs.AutoSize = true; + this.chkAlwaysShowConnectionTabs.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.chkAlwaysShowConnectionTabs.Location = new System.Drawing.Point(3, 26); + this.chkAlwaysShowConnectionTabs.Name = "chkAlwaysShowConnectionTabs"; + this.chkAlwaysShowConnectionTabs.Size = new System.Drawing.Size(200, 17); + this.chkAlwaysShowConnectionTabs.TabIndex = 0; + this.chkAlwaysShowConnectionTabs.Text = "Always show connection tabs"; + this.chkAlwaysShowConnectionTabs.UseVisualStyleBackColor = true; + // + // chkIdentifyQuickConnectTabs + // + this.chkIdentifyQuickConnectTabs._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.HOVER; this.chkIdentifyQuickConnectTabs.AutoSize = true; this.chkIdentifyQuickConnectTabs.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.chkIdentifyQuickConnectTabs.Location = new System.Drawing.Point(3, 95); + this.chkIdentifyQuickConnectTabs.Location = new System.Drawing.Point(3, 118); this.chkIdentifyQuickConnectTabs.Name = "chkIdentifyQuickConnectTabs"; this.chkIdentifyQuickConnectTabs.Size = new System.Drawing.Size(315, 17); this.chkIdentifyQuickConnectTabs.TabIndex = 4; @@ -72,7 +85,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages this.chkOpenNewTabRightOfSelected._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.HOVER; this.chkOpenNewTabRightOfSelected.AutoSize = true; this.chkOpenNewTabRightOfSelected.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.chkOpenNewTabRightOfSelected.Location = new System.Drawing.Point(3, 26); + this.chkOpenNewTabRightOfSelected.Location = new System.Drawing.Point(3, 49); this.chkOpenNewTabRightOfSelected.Name = "chkOpenNewTabRightOfSelected"; this.chkOpenNewTabRightOfSelected.Size = new System.Drawing.Size(309, 17); this.chkOpenNewTabRightOfSelected.TabIndex = 1; @@ -84,7 +97,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages this.chkAlwaysShowPanelSelectionDlg._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.HOVER; this.chkAlwaysShowPanelSelectionDlg.AutoSize = true; this.chkAlwaysShowPanelSelectionDlg.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.chkAlwaysShowPanelSelectionDlg.Location = new System.Drawing.Point(3, 141); + this.chkAlwaysShowPanelSelectionDlg.Location = new System.Drawing.Point(3, 164); this.chkAlwaysShowPanelSelectionDlg.Name = "chkAlwaysShowPanelSelectionDlg"; this.chkAlwaysShowPanelSelectionDlg.Size = new System.Drawing.Size(347, 17); this.chkAlwaysShowPanelSelectionDlg.TabIndex = 6; @@ -96,7 +109,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages this.chkShowLogonInfoOnTabs._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.HOVER; this.chkShowLogonInfoOnTabs.AutoSize = true; this.chkShowLogonInfoOnTabs.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.chkShowLogonInfoOnTabs.Location = new System.Drawing.Point(3, 49); + this.chkShowLogonInfoOnTabs.Location = new System.Drawing.Point(3, 72); this.chkShowLogonInfoOnTabs.Name = "chkShowLogonInfoOnTabs"; this.chkShowLogonInfoOnTabs.Size = new System.Drawing.Size(226, 17); this.chkShowLogonInfoOnTabs.TabIndex = 2; @@ -108,7 +121,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages this.chkDoubleClickClosesTab._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.HOVER; this.chkDoubleClickClosesTab.AutoSize = true; this.chkDoubleClickClosesTab.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.chkDoubleClickClosesTab.Location = new System.Drawing.Point(3, 118); + this.chkDoubleClickClosesTab.Location = new System.Drawing.Point(3, 141); this.chkDoubleClickClosesTab.Name = "chkDoubleClickClosesTab"; this.chkDoubleClickClosesTab.Size = new System.Drawing.Size(170, 17); this.chkDoubleClickClosesTab.TabIndex = 5; @@ -120,7 +133,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages this.chkShowProtocolOnTabs._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.HOVER; this.chkShowProtocolOnTabs.AutoSize = true; this.chkShowProtocolOnTabs.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.chkShowProtocolOnTabs.Location = new System.Drawing.Point(3, 72); + this.chkShowProtocolOnTabs.Location = new System.Drawing.Point(3, 95); this.chkShowProtocolOnTabs.Name = "chkShowProtocolOnTabs"; this.chkShowProtocolOnTabs.Size = new System.Drawing.Size(180, 17); this.chkShowProtocolOnTabs.TabIndex = 3; @@ -132,7 +145,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages this.chkCreateEmptyPanelOnStart._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.HOVER; this.chkCreateEmptyPanelOnStart.AutoSize = true; this.chkCreateEmptyPanelOnStart.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.chkCreateEmptyPanelOnStart.Location = new System.Drawing.Point(3, 164); + this.chkCreateEmptyPanelOnStart.Location = new System.Drawing.Point(3, 187); this.chkCreateEmptyPanelOnStart.Name = "chkCreateEmptyPanelOnStart"; this.chkCreateEmptyPanelOnStart.Size = new System.Drawing.Size(271, 17); this.chkCreateEmptyPanelOnStart.TabIndex = 7; @@ -142,7 +155,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages // // txtBoxPanelName // - this.txtBoxPanelName.Location = new System.Drawing.Point(43, 200); + this.txtBoxPanelName.Location = new System.Drawing.Point(43, 246); this.txtBoxPanelName.Name = "txtBoxPanelName"; this.txtBoxPanelName.Size = new System.Drawing.Size(213, 22); this.txtBoxPanelName.TabIndex = 8; @@ -150,7 +163,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages // lblPanelName // this.lblPanelName.AutoSize = true; - this.lblPanelName.Location = new System.Drawing.Point(40, 184); + this.lblPanelName.Location = new System.Drawing.Point(40, 230); this.lblPanelName.Name = "lblPanelName"; this.lblPanelName.Size = new System.Drawing.Size(69, 13); this.lblPanelName.TabIndex = 9; @@ -164,7 +177,8 @@ namespace mRemoteNG.UI.Forms.OptionsPages this.Controls.Add(this.txtBoxPanelName); this.Controls.Add(this.chkCreateEmptyPanelOnStart); this.Controls.Add(this.chkAlwaysShowPanelTabs); - this.Controls.Add(this.chkIdentifyQuickConnectTabs); + this.Controls.Add(this.chkAlwaysShowConnectionTabs); + this.Controls.Add(this.chkIdentifyQuickConnectTabs); this.Controls.Add(this.chkOpenNewTabRightOfSelected); this.Controls.Add(this.chkAlwaysShowPanelSelectionDlg); this.Controls.Add(this.chkShowLogonInfoOnTabs); @@ -178,6 +192,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages } internal Controls.Base.NGCheckBox chkAlwaysShowPanelTabs; + internal Controls.Base.NGCheckBox chkAlwaysShowConnectionTabs; internal Controls.Base.NGCheckBox chkIdentifyQuickConnectTabs; internal Controls.Base.NGCheckBox chkOpenNewTabRightOfSelected; internal Controls.Base.NGCheckBox chkAlwaysShowPanelSelectionDlg; diff --git a/mRemoteV1/UI/Forms/OptionsPages/TabsPanelsPage.cs b/mRemoteV1/UI/Forms/OptionsPages/TabsPanelsPage.cs index 2a8508bab..4fde148ee 100644 --- a/mRemoteV1/UI/Forms/OptionsPages/TabsPanelsPage.cs +++ b/mRemoteV1/UI/Forms/OptionsPages/TabsPanelsPage.cs @@ -22,7 +22,8 @@ namespace mRemoteNG.UI.Forms.OptionsPages base.ApplyLanguage(); chkAlwaysShowPanelTabs.Text = Language.strAlwaysShowPanelTabs; - chkOpenNewTabRightOfSelected.Text = Language.strOpenNewTabRight; + chkAlwaysShowConnectionTabs.Text = Language.strAlwaysShowConnectionTabs; + chkOpenNewTabRightOfSelected.Text = Language.strOpenNewTabRight; chkShowLogonInfoOnTabs.Text = Language.strShowLogonInfoOnTabs; chkShowProtocolOnTabs.Text = Language.strShowProtocolOnTabs; chkIdentifyQuickConnectTabs.Text = Language.strIdentifyQuickConnectTabs; @@ -37,7 +38,8 @@ namespace mRemoteNG.UI.Forms.OptionsPages base.SaveSettings(); chkAlwaysShowPanelTabs.Checked = Settings.Default.AlwaysShowPanelTabs; - chkOpenNewTabRightOfSelected.Checked = Settings.Default.OpenTabsRightOfSelected; + chkAlwaysShowConnectionTabs.Checked = Settings.Default.AlwaysShowConnectionTabs; + chkOpenNewTabRightOfSelected.Checked = Settings.Default.OpenTabsRightOfSelected; chkShowLogonInfoOnTabs.Checked = Settings.Default.ShowLogonInfoOnTabs; chkShowProtocolOnTabs.Checked = Settings.Default.ShowProtocolOnTabs; chkIdentifyQuickConnectTabs.Checked = Settings.Default.IdentifyQuickConnectTabs; @@ -53,7 +55,8 @@ namespace mRemoteNG.UI.Forms.OptionsPages base.SaveSettings(); Settings.Default.AlwaysShowPanelTabs = chkAlwaysShowPanelTabs.Checked; - FrmMain.Default.ShowHidePanelTabs(); + Settings.Default.AlwaysShowConnectionTabs = chkAlwaysShowConnectionTabs.Checked; + FrmMain.Default.ShowHidePanelTabs(); Settings.Default.OpenTabsRightOfSelected = chkOpenNewTabRightOfSelected.Checked; Settings.Default.ShowLogonInfoOnTabs = chkShowLogonInfoOnTabs.Checked; diff --git a/mRemoteV1/UI/Forms/frmMain.cs b/mRemoteV1/UI/Forms/frmMain.cs index b845711a7..df97c704f 100644 --- a/mRemoteV1/UI/Forms/frmMain.cs +++ b/mRemoteV1/UI/Forms/frmMain.cs @@ -32,6 +32,7 @@ using mRemoteNG.UI.Panels; using mRemoteNG.UI.TaskDialog; using mRemoteNG.UI.Window; using WeifenLuo.WinFormsUI.Docking; +using TabControl = Crownwood.Magic.Controls.TabControl; // ReSharper disable MemberCanBePrivate.Global @@ -628,7 +629,24 @@ namespace mRemoteNG.UI.Forms newDocumentStyle = nonConnectionPanelCount == 0 ? DocumentStyle.DockingSdi : DocumentStyle.DockingWindow; } - if (pnlDock.DocumentStyle == newDocumentStyle) return; + foreach (var dockContent in pnlDock.Documents) + { + var document = (DockContent)dockContent; + if (document is ConnectionWindow) + { + var connectionWindow = (ConnectionWindow)document; + if (Settings.Default.AlwaysShowConnectionTabs == false) + { + connectionWindow.TabController.HideTabsMode = TabControl.HideTabsModes.HideAlways; + } + else + { + connectionWindow.TabController.HideTabsMode = TabControl.HideTabsModes.ShowAlways; + } + } + } + + if (pnlDock.DocumentStyle == newDocumentStyle) return; pnlDock.DocumentStyle = newDocumentStyle; pnlDock.Size = new Size(1, 1); } diff --git a/mRemoteV1/UI/Window/ConnectionWindow.cs b/mRemoteV1/UI/Window/ConnectionWindow.cs index 17f2bf610..9f8d67ec2 100644 --- a/mRemoteV1/UI/Window/ConnectionWindow.cs +++ b/mRemoteV1/UI/Window/ConnectionWindow.cs @@ -143,7 +143,10 @@ namespace mRemoteNG.UI.Window else TabController.TabPages.Add(nTab); - nTab.Selected = true; + if (Settings.Default.AlwaysShowConnectionTabs == false) + TabController.HideTabsMode = TabControl.HideTabsModes.HideAlways; + + nTab.Selected = true; _ignoreChangeSelectedTabClick = false; return nTab; diff --git a/mRemoteV1/app.config b/mRemoteV1/app.config index f50be5499..4c635915b 100644 --- a/mRemoteV1/app.config +++ b/mRemoteV1/app.config @@ -712,6 +712,9 @@ 00000000-0000-0000-0000-000000000000 + + True +