summaryrefslogtreecommitdiffstats
path: root/kompare/libdiff2/diffhunk.h
blob: 8a76babbfc90041af820b3d99afd853e6f7b3ef9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
/***************************************************************************
                                diffhunk.h  -  description
                                -------------------
        begin                   : Sun Mar 4 2001
        copyright               : (C) 2001-2003 by Otto Bruggeman
                                  and John Firebaugh
        email                   : otto.bruggeman@home.nl
                                  jfirebaugh@kde.org
****************************************************************************/

/***************************************************************************
**
**   This program is free software; you can redistribute it and/or modify
**   it under the terms of the GNU General Public License as published by
**   the Free Software Foundation; either version 2 of the License, or
**   (at your option) any later version.
**
***************************************************************************/

#ifndef DIFFHUNK_H
#define DIFFHUNK_H

#include "difference.h"

namespace Diff2
{

class Difference;

class DiffHunk
{
public:
	enum Type { Normal, AddedByBlend };

public:
	DiffHunk( int sourceLine, int destinationLine, QString function = QString::null, Type type = Normal );
	~DiffHunk();

	const DifferenceList& differences() const { return m_differences; };
	const QString& function() const           { return m_function; };

	int sourceLineNumber() const      { return m_sourceLine; };
	int destinationLineNumber() const { return m_destinationLine; };

	int sourceLineCount() const;
	int destinationLineCount() const;

	const Type type() const   { return m_type; }
	void setType( Type type ) { m_type = type; }

	void add( Difference* diff );

	QString recreateHunk() const;

private:
	int            m_sourceLine;
	int            m_destinationLine;
	DifferenceList m_differences;
	QString        m_function;
	Type           m_type;
};

typedef QValueList<DiffHunk*> DiffHunkList;
typedef QValueList<DiffHunk*>::iterator DiffHunkListIterator;
typedef QValueList<DiffHunk*>::const_iterator DiffHunkListConstIterator;

} // End of namespace Diff2

#endif