Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Name Column Handling Improvements #347

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions VSRAD.Package/DebugVisualizer/TableState.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ public sealed class TableState
public ScalingMode ScalingMode { get; set; } = ScalingMode.ResizeColumn;
public bool NameColumnScalingEnabled { get; set; }
public int NameColumnIndex { get; }
public bool AutoscaleName { get; set; }

private readonly List<DataGridViewColumn> _dataColumns = new List<DataGridViewColumn>();

Expand Down Expand Up @@ -197,6 +198,10 @@ public void FitWidth(int clickedColumnIndex)
var n = CountVisibleDataColumns(clickedColumnIndex, false);
var newScrollOffset = Math.Max(0, (n - 1) * (preferredWidth - ColumnWidth) + GetCurrentScroll());

if (AutoscaleName)
Table.Columns[NameColumnIndex].Width
= Table.Columns[NameColumnIndex].GetPreferredWidth(DataGridViewAutoSizeColumnMode.AllCells, true);

SetWidthAndScroll(preferredWidth, newScrollOffset);
}
}
Expand Down
4 changes: 4 additions & 0 deletions VSRAD.Package/DebugVisualizer/VisualizerControl.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,7 @@ private void RestoreSavedState()
_context.Options.VisualizerAppearance.DataColumnAlignment,
_context.Options.VisualizerAppearance.HeadersAlignment
);
_table.SetAutoscaleName(_context.Options.VisualizerAppearance.AutoscaleNameColumn);
foreach (var watch in _context.Options.DebuggerOptions.Watches)
_table.AppendVariableRow(watch);
_table.PrepareNewWatchRow();
Expand Down Expand Up @@ -145,6 +146,9 @@ private void OptionsChanged(object sender, PropertyChangedEventArgs e)
case nameof(Options.VisualizerAppearance.DarkenAlternatingRowsBy):
RefreshDataStyling();
break;
case nameof(Options.VisualizerAppearance.AutoscaleNameColumn):
_table.SetAutoscaleName(_context.Options.VisualizerAppearance.AutoscaleNameColumn);
break;
case nameof(Options.DebuggerOptions.WaveSize):
RefreshDataStyling();
_wavemap.View = _context.BreakData?.GetWavemapView();
Expand Down
8 changes: 8 additions & 0 deletions VSRAD.Package/DebugVisualizer/VisualizerTable.cs
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,8 @@ public VisualizerTable(ProjectOptions options, FontAndColorProvider fontAndColor
_selectionController = new SelectionController(this);
}

public void SetAutoscaleName(bool value) => _state.AutoscaleName = value;

public void AddWatch(string watchName)
{
RemoveNewWatchRow();
Expand Down Expand Up @@ -501,6 +503,12 @@ private bool HandleEscape()

#region Standard functions overriding

protected override void OnResize(EventArgs e)
{
base.OnResize(e);
Columns[NameColumnIndex].Frozen = Width > Columns[NameColumnIndex].Width + RowHeadersWidth;
}

protected override void OnMouseUp(MouseEventArgs e)
{
if (_state.ScalingMode == ScalingMode.ResizeColumn
Expand Down
7 changes: 7 additions & 0 deletions VSRAD.Package/Options/VisualizerAppearance.cs
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,13 @@ public ScalingMode ScalingMode
set => SetField(ref _scalingMode, value);
}

private bool _autoscaleNameColumn = false;
public bool AutoscaleNameColumn
{
get => _autoscaleNameColumn;
set => SetField(ref _autoscaleNameColumn, value);
}

private int _darkenAlternatingRowsBy = 0;
public int DarkenAlternatingRowsBy { get => _darkenAlternatingRowsBy; set => SetField(ref _darkenAlternatingRowsBy, value); }
}
Expand Down
4 changes: 4 additions & 0 deletions VSRAD.Package/ToolWindows/OptionsControl.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -184,6 +184,10 @@
Value="{Binding Options.VisualizerOptions.WavemapElementSize, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
<TextBlock Text="px" VerticalAlignment="Center" Margin="5,0,0,0"/>
</StackPanel>
<StackPanel Orientation="Horizontal" Height="25">
<CheckBox Content="Autofit Name Column Width" VerticalAlignment="Center"
IsChecked="{Binding Options.VisualizerAppearance.AutoscaleNameColumn, UpdateSourceTrigger=PropertyChanged}"/>
</StackPanel>
</StackPanel>
</Expander>
</StackPanel>
Expand Down