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

Method updateDefaults

src/MergeEditLine.cpp:249–298  ·  view source on GitHub ↗

Changes default merge settings currently used when not in auto mode or if white space is being auto solved. */

Source from the content-addressed store, hash-verified

247 Changes default merge settings currently used when not in auto mode or if white space is being auto solved.
248*/
249void MergeBlockList::updateDefaults(const e_SrcSelector defaultSelector, const bool bConflictsOnly, const bool bWhiteSpaceOnly)
250{
251 // Change all auto selections
252 MergeBlockList::iterator mbIt;
253 for(mbIt = begin(); mbIt != end(); ++mbIt)
254 {
255 MergeBlock &mb = *mbIt;
256 bool bConflict = mb.list().empty() || mb.list().begin()->isConflict();
257 if(mb.isDelta() && !(mb.hasModfiedText() && (bConflictsOnly || bWhiteSpaceOnly)) && (!bConflictsOnly || bConflict) && (!bWhiteSpaceOnly || mb.isWhiteSpaceConflict()))
258 {
259 mb.list().clear();
260 if(defaultSelector == e_SrcSelector::Invalid)
261 {
262 MergeEditLine mel(mb.id3l());
263
264 mel.setConflict();
265 mb.bConflict = true;
266 mb.list().push_back(mel);
267 }
268 else
269 {
270 Diff3LineList::const_iterator d3llit = mb.id3l();
271 qint32 j;
272
273 for(j = 0; j < mb.srcRangeLength; ++j)
274 {
275 MergeEditLine mel(d3llit);
276 mel.setSource(defaultSelector, false);
277
278 LineRef srcLine = defaultSelector == e_SrcSelector::A ? d3llit->getLineA() : defaultSelector == e_SrcSelector::B ? d3llit->getLineB() :
279 defaultSelector == e_SrcSelector::C ? d3llit->getLineC() :
280 LineRef();
281 if(srcLine.isValid())
282 {
283 mb.list().push_back(mel);
284 }
285
286 ++d3llit;
287 }
288
289 if(mb.list().empty()) // Make a line nevertheless
290 {
291 MergeEditLine mel(mb.id3l());
292 mel.setRemoved(defaultSelector);
293 mb.list().push_back(mel);
294 }
295 }
296 }
297 }
298}
299
300void MergeBlock::dectectWhiteSpaceConflict(const Diff3Line &d, const bool isThreeWay)
301{

Callers 1

mergeMethod · 0.80

Calls 15

LineRefClass · 0.85
isDeltaMethod · 0.80
hasModfiedTextMethod · 0.80
isWhiteSpaceConflictMethod · 0.80
setConflictMethod · 0.80
push_backMethod · 0.80
setSourceMethod · 0.80
getLineAMethod · 0.80
getLineBMethod · 0.80
getLineCMethod · 0.80
setRemovedMethod · 0.80
isConflictMethod · 0.45

Tested by

no test coverage detected