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
|
/**
Copyright (C) 2003-2005 Mickael Marchand <marchand@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.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#ifndef __SUBVERSION_CORE_H__
#define __SUBVERSION_CORE_H__
#include <qobject.h>
#include <qwidget.h>
#include <kio/job.h>
#include <kurl.h>
#include <ktempdir.h>
#include "subversion_fileinfo.h"
#include "subversion_global.h"
class KDevProject;
class subversionPart;
class subversionWidget;
class KApplication;
class SvnBlameHolder;
class SvnLogHolder;
class SvnLogViewWidget;
// class subversionCore : public QObject, public DCOPObject
class subversionCore : public QObject {
Q_OBJECT
// K_DCOP
public:
subversionCore(subversionPart *part);
~subversionCore();
subversionWidget *processWidget() const;
// SvnLogViewWidget *processWidget() const;
void update( const KURL::List&);
void commit( const KURL::List&, bool recurse, bool keeplocks );
void svnLog( const KURL::List& list,
int revstart, QString revKindStart, int revend, QString revKindEnd,
bool discorverChangedPath, bool strictNodeHistory );
void blame( const KURL &url, SvnGlobal::UrlMode mode, int revstart, QString revKindStart, int revend, QString revKindEnd );
void add( const KURL::List&);
void del( const KURL::List&);
void diff( const KURL::List&, const QString& where);
void diffAsync( const KURL &pathOrUrl1, const KURL &pathOrUrl2,
int rev1, QString revKind1, int rev2, QString revKind2,
bool recurse, bool pegdiff = false );
void revert( const KURL::List&);
void resolve( const KURL::List&);
void checkout();
void switchTree( const KURL &path, const KURL &repositUrl,
int revNum, const QString &revKind, bool recurse );
void switchRelocate( const KURL &path, const KURL ¤tUrl, const KURL &newUrl, bool recurse );
void svnCopy( const KURL &src, int srcRev, const QString &srcRevKind, const KURL &dest );
void merge( const KURL &src1, int rev1, QString revKind1, const KURL &src2, int rev2, QString revKind2, const KURL &wc_path,
bool recurse, bool ignore_ancestry, bool force, bool dry_run );
// This is blocking function. But the GUI is not blocked.
// Information will be pulled solely from the working copy.Thus no network connections will be made.
// Parameter holderMap is the map to be filled out by this method. Callers should preallocate this object.
// Return true on success. Otherwise return false.
bool clientInfo( KURL path_or_url, bool recurse, QMap< KURL, SvnGlobal::SvnInfoHolder> &holderMap );
void createNewProject( const QString& dirName, const KURL& importURL, bool init );
KDevVCSFileInfoProvider *fileInfoProvider() const;
void initProcessDlg( KIO::Job *job, const QString &src, const QString &dest );
// k_dcop:
// void notification( const QString&, int,int, const QString&, int,int ,long int, const QString& );
private slots:
void slotEndCheckout( KIO::Job * job );
void slotResult( KIO::Job * job );
void slotLogResult( KIO::Job * job );
void slotBlameResult( KIO::Job * job );
void slotDiffResult( KIO::Job * job );
signals:
void checkoutFinished( QString dir );
private:
QGuardedPtr<subversionWidget> m_widget;
subversionPart *m_part;
QString wcPath;
SVNFileInfoProvider *m_fileInfoProvider;
QStringList diffresult; //for diff commands ;)
// be nice about tmp diff files: delete all of them when exiting.
KTempDir* diffTmpDir;
};
#endif
|