File indexing completed on 2025-03-09 05:11:44
0001 /* 0002 SPDX-FileCopyrightText: 2021 Hamed Masafi <hamed.masfi@gmail.com> 0003 0004 SPDX-License-Identifier: GPL-3.0-or-later 0005 */ 0006 0007 #include "segments.h" 0008 0009 namespace Diff 0010 { 0011 QStringList Segment::get(int index) 0012 { 0013 switch (index) { 0014 case 0: 0015 return oldText; 0016 case 1: 0017 return newText; 0018 } 0019 return {}; 0020 } 0021 0022 QStringList DiffSegment::get(int index) 0023 { 0024 switch (index) { 0025 case 0: 0026 return oldText; 0027 case 1: 0028 return newText; 0029 } 0030 return {}; 0031 } 0032 0033 MergeSegment::MergeSegment() = default; 0034 0035 MergeSegment::MergeSegment(const QStringList &base, const QStringList &local, const QStringList &remote) 0036 : base{base} 0037 , local{local} 0038 , remote{remote} 0039 { 0040 if (local == remote) 0041 type = SegmentType::SameOnBoth; 0042 else if (base.empty() && !local.empty()) 0043 type = SegmentType::OnlyOnLeft; 0044 else if (base.empty() && !remote.empty()) 0045 type = SegmentType::OnlyOnRight; 0046 else 0047 type = SegmentType::DifferentOnBoth; 0048 0049 oldText = local; 0050 newText = remote; 0051 0052 if (type == SegmentType::SameOnBoth) 0053 this->base = this->local; 0054 } 0055 0056 QStringList MergeSegment::get(int index) 0057 { 0058 switch (index) { 0059 case 0: 0060 return base; 0061 case 1: 0062 return local; 0063 case 2: 0064 return remote; 0065 } 0066 return {}; 0067 } 0068 0069 }