summaryrefslogtreecommitdiffstats
path: root/vcs/subversion/subversion_part.h
blob: 911f8f7e6d24001307a81a3f47c73055de88f5d5 (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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
/* Copyright (C) 2003
	 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., 59 Temple Place - Suite 330,
	 Boston, MA 02111-1307, USA.
	 */
#ifndef __KDEVPART_SUBVERSION_H__
#define __KDEVPART_SUBVERSION_H__


#include <qguardedptr.h>
#include <kdevplugin.h>
#include <kurl.h>
#include <qpopupmenu.h>
#include <kdialogbase.h>
#include "kdevversioncontrol.h"

class subversionCore;
class subversionOptionsWidget;
class subversionProjectWidget;
class Context;
namespace SvnGlobal
{
class SvnInfoHolder;
};

class subversionPart : public KDevVersionControl
{
	Q_OBJECT

public:
		subversionPart(QObject *parent, const char *name, const QStringList &);
		virtual ~subversionPart();

		void setupActions();
		QWidget* newProjectWidget( QWidget* parent );
		void createNewProject( const QString& dirname );
		bool fetchFromRepository();
		KDevVCSFileInfoProvider * fileInfoProvider() const;
		bool urlFocusedDocument( KURL &url );
		void restorePartialProjectSession(const QDomElement* );
		void savePartialProjectSession(QDomElement* );
		void setBaseURL(const KURL& url ) { base = url; }
		KURL baseURL() { return base; }
		virtual bool isValidDirectory( const QString &dirPath ) const;
		KURL::List urls() { return m_urls; }
        subversionCore* svncore() { return m_impl; }

signals:
//		void finishedFetching( QString destinationDir );

private slots:
		void contextMenu( QPopupMenu *popup, const Context *context );
		void slotActionUpdate();
		void slotActionRevert();
		void slotActionCommit();
		void slotActionAdd();
		void slotActionDel();
		void slotActionDiffHead();
		void slotActionDiffLocal();
		void slotActionResolve();
		void slotUpdate();
		void slotRevert();
		void slotCommit();
		void slotAdd();
		void slotDel();
		void slotLog();
		void slotBlame();
		void slotDiffLocal();
		void slotDiffHead();
		void slotResolve();
		void slotSwitch();
		void slotCopy();
		void slotMerge();
		void slotProjectClosed();
		void slotProjectOpened();

private:
		QGuardedPtr<subversionCore> m_impl;
		KURL::List m_urls;

		KAction *actionCommit,
		*actionDiffHead,
		*actionDiffLocal,
		*actionAdd,
		*actionLog,
		*actionBlame,
		*actionRemove,
		*actionUpdate,
		//*actionAddToIgnoreList,
		//*actionRemoveFromIgnoreList,
		*actionRevert,
		*actionResolve,
		*actionSwitch,
		*actionCopy,
		*actionMerge;

		QGuardedPtr<subversionProjectWidget> m_projWidget;
		KURL base;

public:
        QMap< KURL, SvnGlobal::SvnInfoHolder > m_prjInfoMap;

};


#endif