MCPcopy Create free account
hub / github.com/KDE/kdiff3 / drawColumn

Method drawColumn

src/Overview.cpp:117–278  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

115}
116
117void Overview::drawColumn(QPainter& p, e_OverviewMode eOverviewMode, qint32 x, qint32 w, qint32 h, qint32 nofLines)
118{
119 p.setPen(Qt::black);
120 p.drawLine(x, 0, x, h);
121
122 if(nofLines == 0) return;
123
124 qint32 line = 0;
125 qint32 oldY = 0;
126 qint32 oldConflictY = -1;
127 qint32 wrapLineIdx = 0;
128 Diff3LineList::const_iterator i;
129
130 for(i = m_pDiff3LineList->begin(); i != m_pDiff3LineList->end();)
131 {
132 const Diff3Line& d3l = *i;
133 qint32 y = h * (line + 1) / nofLines;
134 MergeBlock lMergeBlock;
135 e_MergeDetails md;
136 bool bConflict;
137 bool bLineRemoved;
138
139 lMergeBlock.mergeOneLine(d3l, bLineRemoved, !KDiff3App::isTripleDiff());
140 md = lMergeBlock.details();
141 bConflict = lMergeBlock.isConflict();
142
143 QColor c = gOptions->backgroundColor();
144 bool bWhiteSpaceChange = false;
145 //if( bConflict ) c=gOptions->conflictColor();
146 //else
147 switch(eOverviewMode)
148 {
149 case e_OverviewMode::eOMNormal:
150 switch(md)
151 {
152 case e_MergeDetails::eDefault:
153 case e_MergeDetails::eNoChange:
154 c = gOptions->backgroundColor();
155 break;
156
157 case e_MergeDetails::eBAdded:
158 case e_MergeDetails::eBDeleted:
159 case e_MergeDetails::eBChanged:
160 c = bConflict ? gOptions->conflictColor() : gOptions->bColor();
161 bWhiteSpaceChange = d3l.isEqualAB() || (d3l.isWhiteLine(e_SrcSelector::A) && d3l.isWhiteLine(e_SrcSelector::B));
162 break;
163
164 case e_MergeDetails::eCAdded:
165 case e_MergeDetails::eCDeleted:
166 case e_MergeDetails::eCChanged:
167 bWhiteSpaceChange = d3l.isEqualAC() || (d3l.isWhiteLine(e_SrcSelector::A) && d3l.isWhiteLine(e_SrcSelector::C));
168 c = bConflict ? gOptions->conflictColor() : gOptions->cColor();
169 break;
170
171 case e_MergeDetails::eBCChanged: // conflict
172 case e_MergeDetails::eBCChangedAndEqual: // possible conflict
173 case e_MergeDetails::eBCDeleted: // possible conflict
174 case e_MergeDetails::eBChanged_CDeleted: // conflict

Callers

nothing calls this directly

Calls 15

setPenMethod · 0.80
drawLineMethod · 0.80
endMethod · 0.80
mergeOneLineMethod · 0.80
detailsMethod · 0.80
isWhiteLineMethod · 0.80
getLineAMethod · 0.80
getLineBMethod · 0.80
fillRectMethod · 0.80
wordWrapOnMethod · 0.80
linesNeededForDisplayMethod · 0.80
isConflictMethod · 0.45

Tested by

no test coverage detected