Compare commits

..

13 Commits

Author SHA1 Message Date
Riley McArdle
375e737f02 Fix PuTTY saved sessions with spaces or special characters not being listed. 2013-03-20 16:25:51 -05:00
Riley McArdle
1032801f12 Fix the category names in the themes tab of the options dialog on Windows XP not showing correctly. 2013-03-20 16:09:32 -05:00
Riley McArdle
1002b8d32f Fix namespace problem in App.Runtime.vb. 2013-03-20 15:51:32 -05:00
Riley McArdle
36a72da71f Update CHANGELOG.TXT for 1.71 Beta 3 release. 2013-03-20 15:45:19 -05:00
Riley McArdle
a2b3a815e7 Fix issue MR-397 - Putty disappears from the screen
Fix issue MR-402 - scrollbar touch moves putty window
2013-03-20 15:36:30 -05:00
Riley McArdle
7820707e46 Fix issue MR-413 - Can't use aplication 2013-03-20 11:09:01 -05:00
Riley McArdle
c3f960cfe8 More small changes to fullscreen mode. 2013-03-20 00:17:06 -05:00
Riley McArdle
965f43a4c3 Fix issue MR-398 - Full Screen mode doesn't correctly make use of available space 2013-03-19 23:20:49 -05:00
Riley McArdle
317175bb03 Minor code cleanup. 2013-03-19 22:28:55 -05:00
Riley McArdle
1608d48495 Fix new connections having a globe icon. 2013-03-19 22:24:42 -05:00
Riley McArdle
08ddee1bda Fix issue MR-406 - Items disappear from External Tools toolbar when accessing External Tools panel 2013-03-19 22:22:49 -05:00
Riley McArdle
72756a2bb8 Fix issue MR-410 - Unhandled exception when clicking New button under Theme 2013-03-19 21:11:00 -05:00
Riley McArdle
38011a3546 Add missing line to CHANGELOG.TXT. 2013-03-19 13:15:18 -05:00
16 changed files with 143 additions and 77 deletions

View File

@@ -1,4 +1,16 @@
1.71 Beta 3 (2013-03-20):
Fixed issue MR-397 - Putty disappears from the screen
Fixed issue MR-398 - Full Screen mode doesn't correctly make use of available space
Fixed issue MR-402 - scrollbar touch moves putty window
Fixed issue MR-406 - Items disappear from External Tools toolbar when accessing External Tools panel
Fixed issue MR-410 - Unhandled exception when clicking New button under Theme
Fixed issue MR-413 - Can't use aplication
Fixed new connections having a globe icon.
Fixed the category names in the themes tab of the options dialog on Windows XP not showing correctly.
Fixed PuTTY saved sessions with spaces or special characters not being listed.
1.71 Beta 2 (2013-03-19):
Added feature MR-336 - Customizable background color for the windows/panels
Added feature MR-345 - Two separate options for confirming closure of Tabs and Connection Panels
Added feature MR-346 - Option to show/hide the description box at the bottom of the Config panel
Added feature MR-351 - Import connections from PuTTY

View File

@@ -2,6 +2,7 @@
Imports mRemoteNG.Messages
Imports mRemoteNG.Connection
Imports mRemoteNG.Tools
Imports PSTaskDialog
Imports WeifenLuo.WinFormsUI.Docking
Imports System.IO
Imports Crownwood
@@ -377,6 +378,11 @@ Namespace App
Public Class Startup
Public Shared Sub CheckCompatibility()
CheckFipsPolicy()
CheckLenovoAutoScrollUtility()
End Sub
Private Shared Sub CheckFipsPolicy()
Dim regKey As RegistryKey
Dim isFipsPolicyEnabled As Boolean = False
@@ -399,6 +405,22 @@ Namespace App
End If
End Sub
Private Shared Sub CheckLenovoAutoScrollUtility()
If Not My.Settings.CompatibilityWarnLenovoAutoScrollUtility Then Return
Dim proccesses() As Process = {}
Try
proccesses = Process.GetProcessesByName("virtscrl")
Catch
End Try
If proccesses.Length = 0 Then Return
cTaskDialog.MessageBox(Application.ProductName, My.Language.strCompatibilityProblemDetected, String.Format(My.Language.strCompatibilityLenovoAutoScrollUtilityDetected, System.Windows.Forms.Application.ProductName), "", "", My.Language.strCheckboxDoNotShowThisMessageAgain, eTaskDialogButtons.OK, eSysIcons.Warning, Nothing)
If cTaskDialog.VerificationChecked Then
My.Settings.CompatibilityWarnLenovoAutoScrollUtility = False
End If
End Sub
Public Shared Sub CreatePanels()
Windows.configForm = New UI.Window.Config(Windows.configPanel)
Windows.configPanel = Windows.configForm

View File

@@ -80,7 +80,8 @@ Namespace Config
.Location = newBounds.Location
If My.Settings.MainFormKiosk = True Then
Tools.Misc.Fullscreen.EnterFullscreen()
.Fullscreen.Value = True
.mMenViewFullscreen.Checked = True
End If
If My.Settings.UseCustomPuttyPath Then
@@ -114,8 +115,7 @@ Namespace Config
End If
End With
Catch ex As Exception
App.Runtime.log.Error("Loading settings failed" & vbNewLine & ex.Message)
'mC.AddMessage(Messages.MessageClass.ErrorMsg, "Loading settings failed" & vbNewLine & ex.Message, True)
Log.Error("Loading settings failed" & vbNewLine & ex.Message)
End Try
End Sub
@@ -196,8 +196,7 @@ Namespace Config
End If
End With
Catch ex As Exception
App.Runtime.log.Error("LoadPanelsFromXML failed" & vbNewLine & ex.Message)
'mC.AddMessage(Messages.MessageClass.ErrorMsg, "LoadPanelsFromXML failed" & vbNewLine & ex.Message, True)
Log.Error("LoadPanelsFromXML failed" & vbNewLine & ex.Message)
End Try
End Sub
@@ -268,8 +267,7 @@ Namespace Config
Return Windows.screenshotPanel
End If
Catch ex As Exception
App.Runtime.log.Error("GetContentFromPersistString failed" & vbNewLine & ex.Message)
'mC.AddMessage(Messages.MessageClass.ErrorMsg, "GetContentFromPersistString failed" & vbNewLine & ex.Message, True)
Log.Error("GetContentFromPersistString failed" & vbNewLine & ex.Message)
End Try
Return Nothing

View File

@@ -25,7 +25,7 @@ Namespace Config
My.Settings.MainFormState = .WindowState
My.Settings.MainFormKiosk = Tools.Misc.Fullscreen.FullscreenActive
My.Settings.MainFormKiosk = .Fullscreen.Value
My.Settings.FirstStart = False
My.Settings.ResetPanels = False

View File

@@ -55,14 +55,18 @@ Namespace Config
treeView.EndUpdate()
End Sub
Protected Shared Function GetSessionNames(Optional ByVal addDefaultSettings As Boolean = False) As String()
Protected Shared Function GetSessionNames(Optional ByVal raw As Boolean = False) As String()
Dim sessionsKey As RegistryKey = Registry.CurrentUser.OpenSubKey(PuttySessionsKey)
If sessionsKey Is Nothing Then Return Nothing
If sessionsKey Is Nothing Then Return New String() {}
Dim sessionNames As New List(Of String)
If addDefaultSettings Then sessionNames.Add("Default Settings")
If Not raw Then sessionNames.Add("Default Settings") ' Do not localize
For Each sessionName As String In sessionsKey.GetSubKeyNames()
sessionNames.Add(Web.HttpUtility.UrlDecode(sessionName))
If raw Then
sessionNames.Add(sessionName)
Else
sessionNames.Add(Web.HttpUtility.UrlDecode(sessionName))
End If
Next
Return sessionNames.ToArray()
End Function
@@ -70,7 +74,7 @@ Namespace Config
Protected Shared Function LoadSessions() As Connection.PuttySession.Info()
Dim sessionList As New List(Of Connection.PuttySession.Info)
Dim sessionInfo As Connection.Info
For Each sessionName As String In GetSessionNames()
For Each sessionName As String In GetSessionNames(True)
sessionInfo = SessionToConnectionInfo(sessionName)
If sessionInfo Is Nothing Then Continue For
sessionList.Add(sessionInfo)
@@ -85,6 +89,8 @@ Namespace Config
Dim sessionKey As RegistryKey = sessionsKey.OpenSubKey(sessionName)
If sessionKey Is Nothing Then Return Nothing
sessionName = Web.HttpUtility.UrlDecode(sessionName)
Dim sessionInfo As New Connection.PuttySession.Info
With sessionInfo
.PuttySession = sessionName
@@ -122,7 +128,7 @@ Namespace Config
Public Shared ReadOnly Property Names() As String()
Get
Return GetSessionNames(True)
Return GetSessionNames()
End Get
End Property

View File

@@ -286,8 +286,8 @@ Public Class frmMain
Public Sub AddExternalToolsToToolBar()
Try
For Each item As ToolStripItem In tsExternalTools.Items
item.Dispose()
For index As Integer = tsExternalTools.Items.Count - 1 To 0 Step -1
tsExternalTools.Items(index).Dispose()
Next
tsExternalTools.Items.Clear()
@@ -589,14 +589,10 @@ Public Class frmMain
End If
End Sub
Public Fullscreen As New Tools.Misc.Fullscreen(Me)
Private Sub mMenViewFullscreen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mMenViewFullscreen.Click
If Tools.Misc.Fullscreen.FullscreenActive Then
Tools.Misc.Fullscreen.ExitFullscreen()
Me.mMenViewFullscreen.Checked = False
Else
Tools.Misc.Fullscreen.EnterFullscreen()
Me.mMenViewFullscreen.Checked = True
End If
Fullscreen.Value = Not Fullscreen.Value
mMenViewFullscreen.Checked = Fullscreen.Value
End Sub
#End Region

View File

@@ -1489,6 +1489,7 @@ Public Class frmOptions
Me.ThemePropertyGrid.Name = "ThemePropertyGrid"
Me.ThemePropertyGrid.Size = New System.Drawing.Size(596, 426)
Me.ThemePropertyGrid.TabIndex = 3
Me.ThemePropertyGrid.UseCompatibleTextRendering = True
'
'frmOptions
'

View File

@@ -927,6 +927,24 @@ Namespace My
End Get
End Property
'''<summary>
''' Looks up a localized string similar to {0} has detected the Lenovo Auto Scroll Utility running on this system. This utility is known to cause problems with {0}. It is recommended that you disable or uninstall it..
'''</summary>
Friend Shared ReadOnly Property strCompatibilityLenovoAutoScrollUtilityDetected() As String
Get
Return ResourceManager.GetString("strCompatibilityLenovoAutoScrollUtilityDetected", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Compatibility problem detected.
'''</summary>
Friend Shared ReadOnly Property strCompatibilityProblemDetected() As String
Get
Return ResourceManager.GetString("strCompatibilityProblemDetected", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Components Check.
'''</summary>

View File

@@ -2217,4 +2217,10 @@ mRemoteNG will now quit and begin with the installation.</value>
<data name="strPuttySavedSessionsRootName" xml:space="preserve">
<value>PuTTY Saved Sessions</value>
</data>
<data name="strCompatibilityProblemDetected" xml:space="preserve">
<value>Compatibility problem detected</value>
</data>
<data name="strCompatibilityLenovoAutoScrollUtilityDetected" xml:space="preserve">
<value>{0} has detected the Lenovo Auto Scroll Utility running on this system. This utility is known to cause problems with {0}. It is recommended that you disable or uninstall it.</value>
</data>
</root>

View File

@@ -2384,6 +2384,19 @@ Namespace My
Me("PuttySavedSessionsPanel") = value
End Set
End Property
<Global.System.Configuration.UserScopedSettingAttribute(), _
Global.System.Configuration.SettingsProviderAttribute(GetType(mRemoteNG.Config.Settings.Providers.ChooseProvider)), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("True")> _
Public Property CompatibilityWarnLenovoAutoScrollUtility() As Boolean
Get
Return CType(Me("CompatibilityWarnLenovoAutoScrollUtility"),Boolean)
End Get
Set
Me("CompatibilityWarnLenovoAutoScrollUtility") = value
End Set
End Property
End Class
End Namespace

View File

@@ -542,5 +542,8 @@
<Setting Name="PuttySavedSessionsPanel" Provider="mRemoteNG.Config.Settings.Providers.ChooseProvider" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="CompatibilityWarnLenovoAutoScrollUtility" Provider="mRemoteNG.Config.Settings.Providers.ChooseProvider" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
</Settings>
</SettingsFile>

View File

@@ -24,7 +24,11 @@ Namespace Themes
Public Shared Function LoadThemes() As List(Of ThemeInfo)
Dim themes As New List(Of ThemeInfo)
themes.Add(DefaultTheme)
themes.AddRange(ThemeSerializer.LoadFromXmlFile(Path.Combine(App.Info.Settings.SettingsPath, App.Info.Settings.ThemesFileName)))
Try
themes.AddRange(ThemeSerializer.LoadFromXmlFile(Path.Combine(App.Info.Settings.SettingsPath, App.Info.Settings.ThemesFileName)))
Catch ex As FileNotFoundException
End Try
Return themes
End Function

View File

@@ -297,62 +297,47 @@ Namespace Tools
End Class
Public Class Fullscreen
Private Shared winState As FormWindowState
Private Shared brdStyle As FormBorderStyle
Private Shared topMost As Boolean
Private Shared bounds As Rectangle
Public Sub New(ByVal handledForm As Form)
_handledForm = handledForm
End Sub
Public Shared targetForm As Form = frmMain
Public Shared FullscreenActive As Boolean = False
Private ReadOnly _handledForm As Form
Private _savedWindowState As FormWindowState
Private _savedBorderStyle As FormBorderStyle
Private _savedBounds As Rectangle
Public Shared Sub EnterFullscreen()
Try
If Not FullscreenActive Then
FullscreenActive = True
Save()
targetForm.WindowState = FormWindowState.Maximized
targetForm.FormBorderStyle = FormBorderStyle.None
SetWinFullScreen(targetForm.Handle)
Private _value As Boolean = False
Public Property Value() As Boolean
Get
Return _value
End Get
Set(newValue As Boolean)
If _value = newValue Then Return
If Not _value Then
EnterFullscreen()
Else
ExitFullscreen()
End If
Catch ex As Exception
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "Entering Fullscreen failed" & vbNewLine & ex.Message, True)
End Try
_value = newValue
End Set
End Property
Private Sub EnterFullscreen()
_savedBorderStyle = _handledForm.FormBorderStyle
_savedWindowState = _handledForm.WindowState
_savedBounds = _handledForm.Bounds
_handledForm.FormBorderStyle = FormBorderStyle.None
If _handledForm.WindowState = FormWindowState.Maximized Then
_handledForm.WindowState = FormWindowState.Normal
End If
_handledForm.WindowState = FormWindowState.Maximized
End Sub
Public Shared Sub Save()
winState = targetForm.WindowState
brdStyle = targetForm.FormBorderStyle
bounds = targetForm.Bounds
End Sub
Public Shared Sub ExitFullscreen()
Try
targetForm.WindowState = winState
targetForm.FormBorderStyle = brdStyle
targetForm.Bounds = bounds
FullscreenActive = False
Catch ex As Exception
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "Exiting Fullscreen failed" & vbNewLine & ex.Message, True)
End Try
End Sub
<DllImport("user32.dll", EntryPoint:="GetSystemMetrics")> Public Shared Function GetSystemMetrics(ByVal which As Integer) As Integer
End Function
<DllImport("user32.dll")> Public Shared Sub SetWindowPos(ByVal hwnd As IntPtr, ByVal hwndInsertAfter As IntPtr, ByVal X As Integer, ByVal Y As Integer, ByVal width As Integer, ByVal height As Integer, ByVal flags As UInteger)
End Sub
Private Shared HWND_TOP As IntPtr = IntPtr.Zero
Private Const SWP_SHOWWINDOW As Integer = 64
' 0<>0040
Public Shared Sub SetWinFullScreen(ByVal hwnd As IntPtr)
Try
Dim curScreen As Screen = Screen.FromHandle(targetForm.Handle)
SetWindowPos(hwnd, HWND_TOP, curScreen.Bounds.Left, curScreen.Bounds.Top, curScreen.Bounds.Right, curScreen.Bounds.Bottom, SWP_SHOWWINDOW)
Catch ex As Exception
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "SetWindowPos failed" & vbNewLine & ex.Message, True)
End Try
Private Sub ExitFullscreen()
_handledForm.FormBorderStyle = _savedBorderStyle
_handledForm.WindowState = _savedWindowState
_handledForm.Bounds = _savedBounds
End Sub
End Class

View File

@@ -190,7 +190,7 @@ Namespace Tree
Dim nNode As New TreeNode
Select Case NodeType
Case Type.Connection Or Type.PuttySession
Case Type.Connection, Type.PuttySession
nNode.Text = My.Language.strNewConnection
nNode.ImageIndex = Images.Enums.TreeImage.ConnectionClosed
nNode.SelectedImageIndex = Images.Enums.TreeImage.ConnectionClosed

View File

@@ -539,7 +539,6 @@ Namespace UI
txtCheck2.Text = My.Language.strCcVNCFailed
MessageCollector.AddMessage(Messages.MessageClass.WarningMsg, "VNC " & errorMsg, True)
'mC.AddMessage(Messages.MessageClass.ErrorMsg, ex.Message, True)
End Try
If VNC IsNot Nothing Then VNC.Dispose()

View File

@@ -577,6 +577,9 @@
<setting name="PuttySavedSessionsPanel" serializeAs="String">
<value />
</setting>
<setting name="CompatibilityWarnLenovoAutoScrollUtility" serializeAs="String">
<value>True</value>
</setting>
</mRemoteNG.My.MySettings>
</userSettings>
<applicationSettings>