Trace Logger - remember window size, implement floating window and restore default settings, refactor, also clean up some ToolDialogSettings logic

This commit is contained in:
adelikat 2014-01-30 15:28:05 +00:00
parent dead076979
commit 003156d28e
6 changed files with 83 additions and 17 deletions

View File

@ -1,4 +1,6 @@
namespace BizHawk.Client.Common
using System.Drawing;
namespace BizHawk.Client.Common
{
public class ToolDialogSettings
{
@ -31,5 +33,21 @@
return SaveWindowPosition && Width.HasValue && Height.HasValue;
}
}
public Point WindowPosition
{
get
{
return new Point(Wndx ?? 0, Wndy ?? 0);
}
}
public Size WindowSize
{
get
{
return new Size(Width ?? 0, Height ?? 0);
}
}
}
}

View File

@ -1498,7 +1498,10 @@ namespace BizHawk.Client.EmuHawk
Global.Config.HexEditorSettings.TopMost = false;
Global.Config.HexEditorSettings.SaveWindowPosition = true;
Global.Config.HexEditorSettings.FloatingWindow = false;
Global.Config.AutoLoadHexEditor = false;
RefreshFloatingWindowControl();
}
#endregion

View File

@ -47,6 +47,7 @@
this.AutoloadMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.SaveWindowPositionMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.AlwaysOnTopMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.FloatingWindowMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.groupBox2 = new System.Windows.Forms.GroupBox();
this.BrowseBox = new System.Windows.Forms.Button();
this.FileBox = new System.Windows.Forms.TextBox();
@ -54,7 +55,8 @@
this.ToWindowRadio = new System.Windows.Forms.RadioButton();
this.ClearButton = new System.Windows.Forms.Button();
this.LoggingEnabled = new System.Windows.Forms.CheckBox();
this.FloatingWindowMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator();
this.RestoreDefaultSettingsMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.TracerBox.SuspendLayout();
this.menuStrip1.SuspendLayout();
this.groupBox2.SuspendLayout();
@ -186,7 +188,9 @@
this.AutoloadMenuItem,
this.SaveWindowPositionMenuItem,
this.AlwaysOnTopMenuItem,
this.FloatingWindowMenuItem});
this.FloatingWindowMenuItem,
this.toolStripSeparator3,
this.RestoreDefaultSettingsMenuItem});
this.OptionsSubMenu.Name = "OptionsSubMenu";
this.OptionsSubMenu.Size = new System.Drawing.Size(61, 20);
this.OptionsSubMenu.Text = "&Options";
@ -195,36 +199,43 @@
// MaxLinesMenuItem
//
this.MaxLinesMenuItem.Name = "MaxLinesMenuItem";
this.MaxLinesMenuItem.Size = new System.Drawing.Size(191, 22);
this.MaxLinesMenuItem.Size = new System.Drawing.Size(199, 22);
this.MaxLinesMenuItem.Text = "&Set Max Lines...";
this.MaxLinesMenuItem.Click += new System.EventHandler(this.MaxLinesMenuItem_Click);
//
// toolStripSeparator2
//
this.toolStripSeparator2.Name = "toolStripSeparator2";
this.toolStripSeparator2.Size = new System.Drawing.Size(188, 6);
this.toolStripSeparator2.Size = new System.Drawing.Size(196, 6);
//
// AutoloadMenuItem
//
this.AutoloadMenuItem.Name = "AutoloadMenuItem";
this.AutoloadMenuItem.Size = new System.Drawing.Size(191, 22);
this.AutoloadMenuItem.Size = new System.Drawing.Size(199, 22);
this.AutoloadMenuItem.Text = "&Autoload";
this.AutoloadMenuItem.Click += new System.EventHandler(this.AutoloadMenuItem_Click);
//
// SaveWindowPositionMenuItem
//
this.SaveWindowPositionMenuItem.Name = "SaveWindowPositionMenuItem";
this.SaveWindowPositionMenuItem.Size = new System.Drawing.Size(191, 22);
this.SaveWindowPositionMenuItem.Size = new System.Drawing.Size(199, 22);
this.SaveWindowPositionMenuItem.Text = "&Save Window Position";
this.SaveWindowPositionMenuItem.Click += new System.EventHandler(this.SaveWindowPositionMenuItem_Click);
//
// AlwaysOnTopMenuItem
//
this.AlwaysOnTopMenuItem.Name = "AlwaysOnTopMenuItem";
this.AlwaysOnTopMenuItem.Size = new System.Drawing.Size(191, 22);
this.AlwaysOnTopMenuItem.Size = new System.Drawing.Size(199, 22);
this.AlwaysOnTopMenuItem.Text = "&Always on Top";
this.AlwaysOnTopMenuItem.Click += new System.EventHandler(this.AlwaysOnTopMenuItem_Click);
//
// FloatingWindowMenuItem
//
this.FloatingWindowMenuItem.Name = "FloatingWindowMenuItem";
this.FloatingWindowMenuItem.Size = new System.Drawing.Size(199, 22);
this.FloatingWindowMenuItem.Text = "&Floating Window";
this.FloatingWindowMenuItem.Click += new System.EventHandler(this.FloatingWindowMenuItem_Click);
//
// groupBox2
//
this.groupBox2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
@ -312,12 +323,17 @@
this.LoggingEnabled.UseVisualStyleBackColor = true;
this.LoggingEnabled.CheckedChanged += new System.EventHandler(this.LoggingEnabled_CheckedChanged);
//
// FloatingWindowMenuItem
// toolStripSeparator3
//
this.FloatingWindowMenuItem.Name = "FloatingWindowMenuItem";
this.FloatingWindowMenuItem.Size = new System.Drawing.Size(191, 22);
this.FloatingWindowMenuItem.Text = "&Floating Window";
this.FloatingWindowMenuItem.Click += new System.EventHandler(this.FloatingWindowMenuItem_Click);
this.toolStripSeparator3.Name = "toolStripSeparator3";
this.toolStripSeparator3.Size = new System.Drawing.Size(196, 6);
//
// RestoreDefaultSettingsMenuItem
//
this.RestoreDefaultSettingsMenuItem.Name = "RestoreDefaultSettingsMenuItem";
this.RestoreDefaultSettingsMenuItem.Size = new System.Drawing.Size(199, 22);
this.RestoreDefaultSettingsMenuItem.Text = "Restore Default Settings";
this.RestoreDefaultSettingsMenuItem.Click += new System.EventHandler(this.RestoreDefaultSettingsMenuItem_Click);
//
// TraceLogger
//
@ -373,5 +389,7 @@
private System.Windows.Forms.ToolStripMenuItem SelectAllMenuItem;
private System.Windows.Forms.ToolStripMenuItem AlwaysOnTopMenuItem;
private System.Windows.Forms.ToolStripMenuItem FloatingWindowMenuItem;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator3;
private System.Windows.Forms.ToolStripMenuItem RestoreDefaultSettingsMenuItem;
}
}

View File

@ -14,9 +14,11 @@ namespace BizHawk.Client.EmuHawk
{
// Refresh rate slider
// Make faster, such as not saving to disk until the logging is stopped, dont' add to Instructions list every frame, etc
// Remember window size
private readonly List<string> _instructions = new List<string>();
private FileInfo _logFile;
private int _defaultWidth;
private int _defaultHeight;
public TraceLogger()
{
@ -44,6 +46,8 @@ namespace BizHawk.Client.EmuHawk
Global.CoreComm.Tracer.Enabled = false;
Global.Config.TraceLoggerSettings.Wndx = Location.X;
Global.Config.TraceLoggerSettings.Wndy = Location.Y;
Global.Config.TraceLoggerSettings.Width = Size.Width;
Global.Config.TraceLoggerSettings.Height = Size.Height;
}
private void TraceView_QueryItemText(int index, int column, out string text)
@ -53,9 +57,17 @@ namespace BizHawk.Client.EmuHawk
private void TraceLogger_Load(object sender, EventArgs e)
{
_defaultWidth = Size.Width;
_defaultHeight = Size.Height;
if (Global.Config.TraceLoggerSettings.UseWindowPosition)
{
Location = new Point(Global.Config.TraceLoggerSettings.Wndx.Value, Global.Config.TraceLoggerSettings.Wndy.Value);
Location = Global.Config.TraceLoggerSettings.WindowPosition;
}
if (Global.Config.TraceLoggerSettings.UseWindowSize)
{
Size = Global.Config.TraceLoggerSettings.WindowSize;
}
ClearList();
@ -311,6 +323,17 @@ namespace BizHawk.Client.EmuHawk
RefreshFloatingWindowControl();
}
private void RestoreDefaultSettingsMenuItem_Click(object sender, EventArgs e)
{
Size = new Size(_defaultWidth, _defaultHeight);
Global.Config.TraceLoggerSettings.SaveWindowPosition = true;
Global.Config.TraceLoggerSettings.TopMost = false;
Global.Config.TraceLoggerSettings.FloatingWindow = false;
RefreshFloatingWindowControl();
}
#endregion
#region Dialog and ListView Events

View File

@ -198,12 +198,12 @@ namespace BizHawk.Client.EmuHawk
if (Global.Config.RamSearchSettings.UseWindowPosition)
{
Location = new Point(Global.Config.RamSearchSettings.Wndx.Value, Global.Config.RamSearchSettings.Wndy.Value);
Location = Global.Config.RamSearchSettings.WindowPosition;
}
if (Global.Config.RamSearchSettings.UseWindowSize)
{
Size = new Size(Global.Config.RamSearchSettings.Width.Value, Global.Config.RamSearchSettings.Height.Value);
Size = Global.Config.RamSearchSettings.WindowSize;
}
TopMost = Global.Config.RamSearchSettings.TopMost;
@ -1288,6 +1288,8 @@ namespace BizHawk.Client.EmuHawk
{
SetToFastMode();
}
RefreshFloatingWindowControl();
}
#endregion

View File

@ -923,7 +923,9 @@ namespace BizHawk.Client.EmuHawk
Global.Config.DisplayRamWatch = false;
Global.Config.RamWatchSettings.SaveWindowPosition = true;
Global.Config.RamWatchSettings.TopMost = TopMost = false;
Global.Config.RamWatchSettings.FloatingWindow = false;
RefreshFloatingWindowControl();
LoadColumnInfo();
}