Skip to content

Commit 5198a44

Browse files
committed
Restore Comparer timeline diff markers (#13)
1 parent f3d2a2d commit 5198a44

1 file changed

Lines changed: 28 additions & 3 deletions

File tree

Comparer/PosInfoView.cpp

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,21 @@ void CPosInfoView::OnInitialUpdate()
5959
CScrollView::OnInitialUpdate();
6060
}
6161

62+
static void DrawDiffPosLines(CDC *pDC, CRect *frameRect, bool *flags, int n)
63+
{
64+
int top = frameRect->top + 1;
65+
int left = frameRect->left + 1;
66+
int right = frameRect->right - 1;
67+
68+
for (int i = 0; i < n; i++) {
69+
if (flags[i] == false)
70+
continue;
71+
72+
pDC->MoveTo(left, top + i);
73+
pDC->LineTo(right, top + i);
74+
}
75+
}
76+
6277
void CPosInfoView::DrawEachRect(CDC* pDC,
6378
ComparerPane *pane,
6479
CRect *frameRect,
@@ -83,9 +98,19 @@ void CPosInfoView::DrawEachRect(CDC* pDC,
8398
pDC->FillSolidRect(frameRect, frameColor);
8499
pDC->Draw3dRect(frameRect, Q1UI_COLOR_SURFACE, Q1UI_COLOR_SURFACE);
85100

86-
// Per-row red diff lines have been replaced by the pink grid overlay in
87-
// ComparerView. Pilot keeps the frame tiles for video-frame selection but
88-
// no longer draws the per-row indicators.
101+
// Keep the timeline overview for video sources; the pink overlay only
102+
// describes differences in the currently displayed frame.
103+
if (parseDone) {
104+
CPen *prev = pDC->SelectObject(mDiffPen);
105+
IFrmCmpStrategy *frmCmpStrategy = pDoc->mFrmCmpStrategy;
106+
list<RLC> diffRLC[QPLANES];
107+
108+
if (frmCmpStrategy && mFileScanThread->copyDiffRLC(i, diffRLC)) {
109+
frmCmpStrategy->FlagTotalDiffLine(diffRLC, mDiffFlags, mPosLinesPerFrame);
110+
DrawDiffPosLines(pDC, frameRect, mDiffFlags, mPosLinesPerFrame);
111+
}
112+
pDC->SelectObject(prev);
113+
}
89114

90115
const COLORREF curIdColor = Q1UI_COLOR_ACCENT;
91116
COLORREF preColor;

0 commit comments

Comments
 (0)