mirror of
https://github.com/riegera2412/UVtools.git
synced 2026-07-09 01:52:32 +02:00
Z Issues Tracker cleanup
This commit is contained in:
@@ -14,33 +14,22 @@ using UVtools.Core.Extensions;
|
||||
|
||||
namespace UVtools.GUI.Controls
|
||||
{
|
||||
public class TrackBarHighlight : TrackBar
|
||||
public class TrackBarEx : TrackBar
|
||||
{
|
||||
private uint[] _highlightValues = null;
|
||||
|
||||
[DllImport("user32.dll")]
|
||||
public static extern int SendMessage(IntPtr hWnd, uint msg, int wParam, int lParam);
|
||||
|
||||
private const int TBM_GETNUMTICS = 0x0410;
|
||||
private const int TBM_GETTICPOS = 0x40F;
|
||||
|
||||
private const byte TrackerMargin = 12;
|
||||
//private const byte TrackerMargin = 12;
|
||||
|
||||
//public event PaintEventHandler PaintOver;
|
||||
|
||||
public Pen HighlightPen { get; set; } = new Pen(Color.FromArgb(50, Color.Red), 2);
|
||||
public byte LineLength { get; set; } = 10;
|
||||
|
||||
public uint[] HighlightValues
|
||||
/*public TrackBarEx()
|
||||
{
|
||||
get => _highlightValues;
|
||||
set { _highlightValues = value; Invalidate(); }
|
||||
}
|
||||
|
||||
public TrackBarHighlight()
|
||||
{
|
||||
//SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.DoubleBuffer | ControlStyles.ResizeRedraw, true);
|
||||
}
|
||||
SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.DoubleBuffer | ControlStyles.ResizeRedraw, true);
|
||||
}*/
|
||||
|
||||
/*protected override void OnInvalidated(InvalidateEventArgs e)
|
||||
{
|
||||
@@ -59,19 +48,19 @@ namespace UVtools.GUI.Controls
|
||||
using (Graphics lgGraphics = Graphics.FromHwndInternal(m.HWnd))
|
||||
OnPaintOver(new PaintEventArgs(lgGraphics, ClientRectangle));
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
protected virtual void OnPaintOver(PaintEventArgs e)
|
||||
{
|
||||
//PaintOver?.Invoke(this, e);
|
||||
//Debug.WriteLine("Paint");
|
||||
DrawHighlights(e.Graphics);
|
||||
}
|
||||
}*/
|
||||
|
||||
public int GetTickPos(int index) => SendMessage(Handle, TBM_GETTICPOS, index, 0);
|
||||
public int NumTicks => SendMessage(Handle, TBM_GETNUMTICS, 0, 0);
|
||||
|
||||
public void DrawHighlights(Graphics gfx = null)
|
||||
/*public void DrawHighlights(Graphics gfx = null)
|
||||
{
|
||||
if (HighlightValues is null) return;
|
||||
if (gfx is null) gfx = CreateGraphics();
|
||||
@@ -88,6 +77,6 @@ namespace UVtools.GUI.Controls
|
||||
int y = (Height - tickPos).Clamp(1, Height);
|
||||
gfx.DrawLine(HighlightPen, startX, y, endX, y);
|
||||
}
|
||||
}
|
||||
}*/
|
||||
}
|
||||
}
|
||||
Generated
+2
-4
@@ -264,7 +264,7 @@ namespace UVtools.GUI
|
||||
this.toolTipInformation = new System.Windows.Forms.ToolTip(this.components);
|
||||
this.layerScrollTimer = new System.Windows.Forms.Timer(this.components);
|
||||
this.mouseHoldTimer = new System.Windows.Forms.Timer(this.components);
|
||||
this.tbLayer = new UVtools.GUI.Controls.TrackBarHighlight();
|
||||
this.tbLayer = new UVtools.GUI.Controls.TrackBarEx();
|
||||
this.menu.SuspendLayout();
|
||||
this.mainTable.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.scCenter)).BeginInit();
|
||||
@@ -2909,8 +2909,6 @@ namespace UVtools.GUI
|
||||
// tbLayer
|
||||
//
|
||||
this.tbLayer.Dock = System.Windows.Forms.DockStyle.Right;
|
||||
this.tbLayer.HighlightValues = null;
|
||||
this.tbLayer.LineLength = ((byte)(20));
|
||||
this.tbLayer.Location = new System.Drawing.Point(93, 0);
|
||||
this.tbLayer.Margin = new System.Windows.Forms.Padding(0);
|
||||
this.tbLayer.Name = "tbLayer";
|
||||
@@ -3103,7 +3101,7 @@ namespace UVtools.GUI
|
||||
private System.Windows.Forms.ToolStripButton btnLayerImageHighlightIssues;
|
||||
private System.Windows.Forms.ToolStripButton btnLayerImageShowCrosshairs;
|
||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator25;
|
||||
private TrackBarHighlight tbLayer;
|
||||
private TrackBarEx tbLayer;
|
||||
private System.Windows.Forms.TableLayoutPanel tlRight;
|
||||
private System.Windows.Forms.Label lbMaxLayer;
|
||||
private System.Windows.Forms.Label lbInitialLayer;
|
||||
|
||||
+45
-42
@@ -2064,51 +2064,9 @@ namespace UVtools.GUI
|
||||
|
||||
private void flvIssues_ItemsChanged(object sender, ItemsChangedEventArgs e)
|
||||
{
|
||||
if (e.NewObjectCount == 0 || Issues is null)
|
||||
{
|
||||
tbLayer.HighlightValues = null;
|
||||
UpdateLayerTrackerHighlightIssues();
|
||||
return;
|
||||
}
|
||||
|
||||
List<uint> layerIndexes = new List<uint>();
|
||||
foreach (var issue in Issues)
|
||||
{
|
||||
if (layerIndexes.Contains(issue.LayerIndex)) continue;
|
||||
layerIndexes.Add(issue.LayerIndex);
|
||||
}
|
||||
tbLayer.HighlightValues = layerIndexes.ToArray();
|
||||
UpdateLayerTrackerHighlightIssues();
|
||||
}
|
||||
|
||||
void UpdateLayerTrackerHighlightIssues()
|
||||
{
|
||||
var highlightValues = tbLayer.HighlightValues;
|
||||
|
||||
|
||||
if (highlightValues is null)
|
||||
{
|
||||
pbTrackerIssues.Image = null;
|
||||
return;
|
||||
}
|
||||
|
||||
using (Mat mat = new Mat(pbTrackerIssues.Height, pbTrackerIssues.Width, DepthType.Cv8U, 3))
|
||||
{
|
||||
mat.SetTo(new MCvScalar(255, 255, 255));
|
||||
var color = new MCvScalar(0, 0, 255);
|
||||
|
||||
foreach (var value in highlightValues)
|
||||
{
|
||||
var tickPos = tbLayer.GetTickPos((int) value);
|
||||
if (tickPos == -1) continue;
|
||||
//int y = (int)(Height - TrackerStartMargin - (Height / Maximum * value));
|
||||
int y = (pbTrackerIssues.Height - tickPos).Clamp(0, pbTrackerIssues.Height);
|
||||
CvInvoke.Line(mat, new Point(0, y), new Point(mat.Width, y), color);
|
||||
}
|
||||
|
||||
pbTrackerIssues.Image = mat.ToBitmap();
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Methods
|
||||
@@ -4450,5 +4408,50 @@ namespace UVtools.GUI
|
||||
UpdateIssuesInfo();
|
||||
ShowLayer();
|
||||
}
|
||||
|
||||
public Dictionary<uint, uint> GetIssuesCountPerLayer()
|
||||
{
|
||||
if (Issues is null) return null;
|
||||
Dictionary<uint, uint> layerIndexIssueCount = new Dictionary<uint, uint>();
|
||||
foreach (var issue in Issues)
|
||||
{
|
||||
if (!layerIndexIssueCount.ContainsKey(issue.LayerIndex))
|
||||
{
|
||||
layerIndexIssueCount.Add(issue.LayerIndex, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
layerIndexIssueCount[issue.LayerIndex]++;
|
||||
}
|
||||
}
|
||||
|
||||
return layerIndexIssueCount;
|
||||
}
|
||||
|
||||
void UpdateLayerTrackerHighlightIssues()
|
||||
{
|
||||
var issuesCountPerLayer = GetIssuesCountPerLayer();
|
||||
if (issuesCountPerLayer is null)
|
||||
{
|
||||
pbTrackerIssues.Image = null;
|
||||
return;
|
||||
}
|
||||
|
||||
using (Mat mat = new Mat(pbTrackerIssues.Height, pbTrackerIssues.Width, DepthType.Cv8U, 3))
|
||||
{
|
||||
mat.SetTo(new MCvScalar(255, 255, 255));
|
||||
var color = new MCvScalar(0, 0, 255);
|
||||
|
||||
foreach (var value in issuesCountPerLayer)
|
||||
{
|
||||
var tickPos = tbLayer.GetTickPos((int)value.Key);
|
||||
if (tickPos == -1) continue;
|
||||
int y = (pbTrackerIssues.Height - tickPos).Clamp(0, pbTrackerIssues.Height);
|
||||
CvInvoke.Line(mat, new Point(0, y), new Point(mat.Width, y), color);
|
||||
}
|
||||
|
||||
pbTrackerIssues.Image = mat.ToBitmap();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -158,7 +158,7 @@
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABk
|
||||
FAAAAk1TRnQBSQFMAgEBBgEAASgBCgEoAQoBEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA
|
||||
FAAAAk1TRnQBSQFMAgEBBgEAATgBCgE4AQoBEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA
|
||||
AwABIAMAAQEBAAEgBgABIC4AAxgBIgMwAUsDMAFMAzIBUDMAAQEDJAE2AysBQqwAAyIBMQNWAbkDXQHi
|
||||
AwAB/wMAAf8BKgEtASgB/gNTAawDTQGVAwABARgAAwkBDAMzAVIDUAGdA1cB6AMAAf4DKwH8Ay8BSqQA
|
||||
AyEBMANZAewBKwEuASkB+gNRAfcDUgH0A1MB8QNIAfYDQQH5AwAB/wNPAZsDAAEBCAADFQEdAz8BbgNV
|
||||
|
||||
@@ -163,7 +163,7 @@
|
||||
<Compile Include="Controls\SplitButton.cs">
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Controls\TrackBarHighlight.cs">
|
||||
<Compile Include="Controls\TrackBarEx.cs">
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Extensions\BitmapExtension.cs" />
|
||||
|
||||
Reference in New Issue
Block a user