diff --git a/TBF/Properties/AssemblyInfo.cs b/TBF/Properties/AssemblyInfo.cs
index 8f554cbd4..c5749284b 100644
--- a/TBF/Properties/AssemblyInfo.cs
+++ b/TBF/Properties/AssemblyInfo.cs
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
// Build Number
// Revision
//
-[assembly: AssemblyVersion("3.9.3147.103")]
-[assembly: AssemblyFileVersion("3.9.3147.103")]
+[assembly: AssemblyVersion("3.9.3147.104")]
+[assembly: AssemblyFileVersion("3.9.3147.104")]
diff --git a/TBF/UI/ResultsMI/PreviousResultsDlg.cs b/TBF/UI/ResultsMI/PreviousResultsDlg.cs
index 6cd99d5f5..a711135eb 100644
--- a/TBF/UI/ResultsMI/PreviousResultsDlg.cs
+++ b/TBF/UI/ResultsMI/PreviousResultsDlg.cs
@@ -562,14 +562,14 @@ namespace TBF.UI.ResultsMI
resultsGrid.ColumnHeadersDefaultCellStyle.SelectionBackColor = Color.FromArgb(232, 238, 246);
resultsGrid.ColumnHeadersDefaultCellStyle.SelectionForeColor = Color.FromArgb(51, 65, 85);
- AddResultColumn("BatchNr", "Batch", 65, 45, Color.FromArgb(248, 250, 252), Color.FromArgb(51, 65, 85), true);
- AddResultColumn("StartTime", "Start time", 135, 95, Color.FromArgb(245, 248, 252), Color.FromArgb(71, 85, 105), false);
- AddResultColumn("EndTime", "End time", 135, 95, Color.FromArgb(245, 248, 252), Color.FromArgb(71, 85, 105), false);
- AddResultColumn("Version", "SW version", 95, 60, Color.FromArgb(247, 247, 251), Color.FromArgb(88, 80, 125), false);
+ AddResultColumn("BatchNr", "Batch", 58, 50, Color.FromArgb(248, 250, 252), Color.FromArgb(51, 65, 85), true);
+ AddResultColumn("StartTime", "Start time", 120, 115, Color.FromArgb(245, 248, 252), Color.FromArgb(71, 85, 105), false);
+ AddResultColumn("EndTime", "End time", 120, 115, Color.FromArgb(245, 248, 252), Color.FromArgb(71, 85, 105), false);
+ AddResultColumn("Version", "SW version", 90, 85, Color.FromArgb(247, 247, 251), Color.FromArgb(88, 80, 125), false);
AddResultColumn("Procedure", Strings.Procedure, 320, 120, Color.FromArgb(239, 246, 255), Color.FromArgb(29, 78, 216), true);
AddResultColumn("PurchaseOrder", "Purchase order", 160, 90, Color.FromArgb(247, 245, 255), Color.FromArgb(109, 40, 217), true);
- AddResultColumn("Passed", Strings.Passed, 70, 65, Color.FromArgb(248, 250, 252), Color.FromArgb(51, 65, 85), true);
- AddResultColumn("Failed", Strings.Failed, 70, 65, Color.FromArgb(248, 250, 252), Color.FromArgb(51, 65, 85), true);
+ AddResultColumn("Passed", Strings.Passed, 64, 64, Color.FromArgb(248, 250, 252), Color.FromArgb(51, 65, 85), true);
+ AddResultColumn("Failed", Strings.Failed, 64, 64, Color.FromArgb(248, 250, 252), Color.FromArgb(51, 65, 85), true);
resultsGrid.Columns["StartTime"].DefaultCellStyle.Format = Constants.DateTimeFormat;
resultsGrid.Columns["EndTime"].DefaultCellStyle.Format = Constants.DateTimeFormat;
@@ -592,8 +592,6 @@ namespace TBF.UI.ResultsMI
});
#endif
AddActionColumn("OkNokDiag", "OK/NOK diag");
- resultsGrid.Columns["OkNokDiag"].Width = 135;
- resultsGrid.Columns["OkNokDiag"].MinimumWidth = 120;
AddActionColumn("Write", "Write");
string actionText;
if (mode == PreviousResultsMode.Reload)
@@ -629,7 +627,7 @@ namespace TBF.UI.ResultsMI
resultsGrid.CellMouseEnter += InvalidateResultActionCell;
resultsGrid.CellMouseLeave += InvalidateResultActionCell;
resultsGrid.CellMouseMove += resultsGrid_CellMouseMove;
- resultsGrid.HandleCreated += delegate { QueueResultRowHeightUpdate(); };
+ resultsGrid.HandleCreated += delegate { FitResultColumnsToContent(); QueueResultRowHeightUpdate(); };
resultsGrid.SizeChanged += delegate { QueueResultRowHeightUpdate(); };
resultsGrid.ColumnWidthChanged += delegate { QueueResultRowHeightUpdate(); };
foreach (Control control in resultsGrid.Controls)
@@ -639,6 +637,40 @@ namespace TBF.UI.ResultsMI
}
}
+ ///
+ /// Fits compact columns to the current page, including headers and formatted values.
+ /// Runs when data changes, leaving manual resizing available between page changes.
+ ///
+ void FitResultColumnsToContent()
+ {
+ if (!resultsGrid.IsHandleCreated || resultsGrid.IsDisposed) return;
+
+ foreach (string name in new[] { "BatchNr", "StartTime", "EndTime", "Version", "Passed", "Failed" })
+ {
+ var column = resultsGrid.Columns[name];
+ column.MinimumWidth = 2;
+ resultsGrid.AutoResizeColumn(column.Index, DataGridViewAutoSizeColumnMode.AllCells);
+ }
+
+ using (var graphics = resultsGrid.CreateGraphics())
+ {
+ foreach (string name in new[] { "OkNokDiag", "Write", "Action", "Show" })
+ {
+ var column = (DataGridViewButtonColumn)resultsGrid.Columns[name];
+ column.MinimumWidth = 2;
+ resultsGrid.AutoResizeColumn(column.Index, DataGridViewAutoSizeColumnMode.AllCells);
+ var flags = TextFormatFlags.SingleLine;
+ if (name != "OkNokDiag") flags |= TextFormatFlags.NoPadding | TextFormatFlags.NoPrefix;
+ int textWidth = TextRenderer.MeasureText(graphics, column.Text, resultsBoldFont,
+ new Size(int.MaxValue, int.MaxValue), flags).Width;
+ int iconWidth = name == "OkNokDiag" ? 0 :
+ (int)Math.Round(14 * graphics.DpiX / 96f) + Math.Max(4, (int)Math.Round(5 * graphics.DpiX / 96f));
+ // Match the painted button: 5px outer and 6px inner margins on each side.
+ column.Width = Math.Max(column.Width, textWidth + iconWidth + 24);
+ }
+ }
+ }
+
///
/// Posts one row-height update after the current native grid layout finishes.
///
@@ -751,7 +783,7 @@ namespace TBF.UI.ResultsMI
Text = caption,
UseColumnTextForButtonValue = true,
FlatStyle = FlatStyle.Flat,
- Width = 105,
+ Width = 95,
MinimumWidth = 75,
SortMode = DataGridViewColumnSortMode.NotSortable,
};
@@ -1179,6 +1211,7 @@ namespace TBF.UI.ResultsMI
rows.Add(row);
}
if (rows.Count > 0) resultsGrid.Rows.AddRange(rows.ToArray());
+ FitResultColumnsToContent();
resultsGrid.ClearSelection();
}
finally