summaryrefslogtreecommitdiffstats
path: root/kompare/interfaces/kompareinterface.h
blob: b9c0fcda7c1ce725c17bb2dc3ee9c61f34fdc506 (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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
// blah blah standard LGPL license
// Copyright 2002-2003, Otto Bruggeman <otto.bruggeman@home.nl>

#ifndef _KOMPARE_INTERFACE_H
#define _KOMPARE_INTERFACE_H

#include <qstring.h>
#include <qstringlist.h>
#include <kdemacros.h>

class KConfig;
class KURL;

class KompareInterfacePrivate;

class KDE_EXPORT KompareInterface
{
public:
	KompareInterface();
	virtual ~KompareInterface();

protected:
	KompareInterface( const KompareInterface& );
	KompareInterface& operator=(const KompareInterface& );

public:
	/**
	 * Open and parse the diff file at url.
	 */
	virtual bool openDiff( const KURL& diffUrl ) = 0;

	/**
	 * Open and parse the supplied diff output
	 */
	virtual bool openDiff( const QString& diffOutput ) = 0;

	/**
	 * Open and parse the diff3 file at url.
	 */
	virtual bool openDiff3( const KURL& diff3Url ) = 0;

	/**
	 * Open and parse the supplied diff3 output
	 */
	virtual bool openDiff3( const QString& diff3Output ) = 0;

	/**
	 * Compare, with diff, source with destination, can also be used if you dont
	 * know what source and destination are. The part will try to figure out what
	 * they are (directory, file, diff output file) and call the
	 * appropriate method(s)
	 */
	virtual void compare( const KURL& sourceFile, const KURL& destinationFile ) = 0;

	/**
	 * Compare, with diff, source with destination files
	 */
	virtual void compareFiles( const KURL& sourceFile, const KURL& destinationFile ) = 0;

	/**
	 * Compare, with diff, source with destination directories
	 */
	virtual void compareDirs ( const KURL& sourceDir, const KURL& destinationDir ) = 0;

	/**
	 * Compare, with diff3, originalFile with changedFile1 and changedFile2
	 */
	virtual void compare3Files( const KURL& originalFile, const KURL& changedFile1, const KURL& changedFile2 ) = 0;

	/**
	 * This will show the file and the file with the diff applied
	 */
	virtual void openFileAndDiff( const KURL& file, const KURL& diffFile ) = 0;

	/**
	 * This will show the directory and the directory with the diff applied
	 */
	virtual void openDirAndDiff ( const KURL& dir,  const KURL& diffFile ) = 0;

	/**
	 * This will set the encoding to use for all files that are read or for the diffoutput
	 */
	virtual void setEncoding( const QString& encoding );

public:
	/**
	 * Warning this should be in class Part in KDE 4.0, not here !
	 * Around that time the methods will disappear here
	 */
	virtual int readProperties( KConfig* config ) = 0;
	virtual int saveProperties( KConfig* config ) = 0;

	/**
	 * Warning this should be in class ReadWritePart in KDE 4.0, not here !
	 * Around that time the method will disappear here
	 */
	virtual bool queryClose() = 0;

protected:
	// Add all variables to the KompareInterfacePrivate class and access them through the kip pointer
	KompareInterfacePrivate* kip;
	QString                  m_encoding;
};

#endif /* _KOMPARE_INTERFACE_H */