summaryrefslogtreecommitdiffstats
path: root/lib/interfaces/extensions
diff options
context:
space:
mode:
authortoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
committertoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
commit114a878c64ce6f8223cfd22d76a20eb16d177e5e (patch)
treeacaf47eb0fa12142d3896416a69e74cbf5a72242 /lib/interfaces/extensions
downloadtdevelop-114a878c64ce6f8223cfd22d76a20eb16d177e5e.tar.gz
tdevelop-114a878c64ce6f8223cfd22d76a20eb16d177e5e.zip
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdevelop@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'lib/interfaces/extensions')
-rw-r--r--lib/interfaces/extensions/Mainpage.dox61
-rw-r--r--lib/interfaces/extensions/Makefile.am23
-rw-r--r--lib/interfaces/extensions/codebrowserfrontend.h40
-rw-r--r--lib/interfaces/extensions/dcop/KDevAppFrontendIface.cpp76
-rw-r--r--lib/interfaces/extensions/dcop/KDevAppFrontendIface.h52
-rw-r--r--lib/interfaces/extensions/dcop/KDevMakeFrontendIface.cpp46
-rw-r--r--lib/interfaces/extensions/dcop/KDevMakeFrontendIface.h45
-rw-r--r--lib/interfaces/extensions/dcop/Makefile.am10
-rw-r--r--lib/interfaces/extensions/kdevappfrontend.cpp2
-rw-r--r--lib/interfaces/extensions/kdevappfrontend.h115
-rw-r--r--lib/interfaces/extensions/kdevcreatefile.h146
-rw-r--r--lib/interfaces/extensions/kdevdifffrontend.cpp33
-rw-r--r--lib/interfaces/extensions/kdevdifffrontend.h79
-rw-r--r--lib/interfaces/extensions/kdevelopappfrontend.desktop38
-rw-r--r--lib/interfaces/extensions/kdevelopcodebrowserfrontend.desktop28
-rw-r--r--lib/interfaces/extensions/kdevelopcreatefile.desktop38
-rw-r--r--lib/interfaces/extensions/kdevelopdifffrontend.desktop41
-rw-r--r--lib/interfaces/extensions/kdevelopmakefrontend.desktop41
-rw-r--r--lib/interfaces/extensions/kdevelopquickopen.desktop58
-rw-r--r--lib/interfaces/extensions/kdevelopsourceformatter.desktop39
-rw-r--r--lib/interfaces/extensions/kdevelopversioncontrol.desktop40
-rw-r--r--lib/interfaces/extensions/kdevmakefrontend.cpp2
-rw-r--r--lib/interfaces/extensions/kdevmakefrontend.h106
-rw-r--r--lib/interfaces/extensions/kdevquickopen.h130
-rw-r--r--lib/interfaces/extensions/kdevsourceformatter.h69
-rw-r--r--lib/interfaces/extensions/kdevversioncontrol.h237
26 files changed, 1595 insertions, 0 deletions
diff --git a/lib/interfaces/extensions/Mainpage.dox b/lib/interfaces/extensions/Mainpage.dox
new file mode 100644
index 00000000..d306a1e8
--- /dev/null
+++ b/lib/interfaces/extensions/Mainpage.dox
@@ -0,0 +1,61 @@
+/**
+@mainpage The KDevelop Extension Interfaces Library
+
+This library contains extension interfaces used by KDevelop plugin architecture.
+
+<b>Link with</b>: -lkdevelop
+
+<b>Include path</b>: -I\$(kde_includes)/kdevelop/interfaces/extensions
+
+\section whatisextension What is the KDevelop extension
+
+Extension is a KDevelop plugin which implements one of extension interfaces.
+Extension is usually not important enough to be returned by @ref KDevApi and @ref KDevPlugin
+methods. Therefore extension instance can be obtained by @ref KDevPlugin::extension method.
+
+Note: extension plugins can be either core, global and project plugins. They are loaded
+in the same way other plugins are. But extensions differ from usual plugins.
+
+Note: many plugins implementing extension interface can be created but only one of
+those should be loaded at a time. This can be accomplished by:
+- using a shell plugin profile (as done in current generic shell implementation) - define
+ different X-KDevelop-Properties for different extension implementations;
+- writing project manager which looks into the project file and loads the neccesary extension.
+
+\section creatingextension Creating and using an extension
+- Define a service, use following .desktop file:
+ @code
+ [Desktop Entry]
+ Encoding=UTF-8
+ Type=ServiceType
+ X-KDE-ServiceType=KDevelop/MyExtension
+ X-KDE-Derived=KDevelop/Plugin
+ Name=My Extension Interface
+ [PropertyDef::X-KDevelop-Version]
+ Type=int
+ @endcode
+- Define an abstract base class for an extension like:
+ @code
+ class KDevMyExtension: public KDevPlugin {
+ public:
+ KDevMyExtension(const KDevPluginInfo *info, QObject* parent, const char* name)
+ :KDevPlugin(info, parent, name) {}
+
+ virtual void doSomething() = 0;
+ };
+ @endcode
+- Create an usual plugin, but instead of setting service type to "KDevelop/Plugin", set:
+ @code
+ ServiceTypes=KDevelop/MyExtension
+ @endcode
+- Use your extension:
+ @code
+ KDevMyExtension *myext = extension<KDevMyExtension>("KDevelop/MyExtension");
+ if (sf) {
+ // do something
+ } else {
+ // fail
+ }
+ @endcode
+*/
+
diff --git a/lib/interfaces/extensions/Makefile.am b/lib/interfaces/extensions/Makefile.am
new file mode 100644
index 00000000..4bc069cb
--- /dev/null
+++ b/lib/interfaces/extensions/Makefile.am
@@ -0,0 +1,23 @@
+kdevelopincludeextdir = $(includedir)/kdevelop/interfaces/extensions
+kdevelopincludeext_HEADERS = codebrowserfrontend.h kdevappfrontend.h \
+ kdevcreatefile.h kdevdifffrontend.h kdevmakefrontend.h kdevquickopen.h \
+ kdevsourceformatter.h kdevversioncontrol.h
+
+servicetypedir = $(kde_servicetypesdir)
+servicetype_DATA = kdevelopappfrontend.desktop \
+ kdevelopcodebrowserfrontend.desktop kdevelopcreatefile.desktop kdevelopdifffrontend.desktop \
+ kdevelopmakefrontend.desktop kdevelopquickopen.desktop kdevelopsourceformatter.desktop \
+ kdevelopversioncontrol.desktop
+
+SUBDIRS = dcop
+libkdevextensions_la_LDFLAGS = $(all_libraries)
+noinst_LTLIBRARIES = libkdevextensions.la
+libkdevextensions_la_SOURCES = kdevappfrontend.cpp kdevmakefrontend.cpp
+INCLUDES = -I$(top_srcdir)/lib/interfaces $(all_includes)
+METASOURCES = AUTO
+
+DOXYGEN_REFERENCES = dcop interfaces kdecore kdefx kdeui khtml kmdi kio kjs kparts kutils kdevinterfaces
+DOXYGEN_PROJECTNAME = KDevelop Extension Interfaces Library
+DOXYGEN_DOCDIRPREFIX = kdev
+include ../../../Doxyfile.am
+noinst_HEADERS = codebrowserfrontend.h
diff --git a/lib/interfaces/extensions/codebrowserfrontend.h b/lib/interfaces/extensions/codebrowserfrontend.h
new file mode 100644
index 00000000..57852ac8
--- /dev/null
+++ b/lib/interfaces/extensions/codebrowserfrontend.h
@@ -0,0 +1,40 @@
+/* This file is part of the KDE project
+ Copyright (C) 2006 David Nolden <[email protected]>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA.
+*/
+#ifndef CODEBROWSERRONTEND_H
+#define CODEBROWSERRONTEND_H
+
+
+#include <kdevplugin.h>
+#include <codemodel.h>
+
+namespace Extensions {
+
+class KDevCodeBrowserFrontend : public KDevPlugin {
+ Q_OBJECT
+
+ public:
+ KDevCodeBrowserFrontend(const KDevPluginInfo *info, QObject *parent=0, const char *name=0 )
+ :KDevPlugin(info, parent, name ? name : "CodeBrowserFrontend") {}
+
+ ///Used by the quickopen-plugin to notify extensions that it jumped to a searched item
+ virtual bool jumpedToItem( ItemDom item ) = 0;
+};
+}
+
+#endif
diff --git a/lib/interfaces/extensions/dcop/KDevAppFrontendIface.cpp b/lib/interfaces/extensions/dcop/KDevAppFrontendIface.cpp
new file mode 100644
index 00000000..8bf5b7ce
--- /dev/null
+++ b/lib/interfaces/extensions/dcop/KDevAppFrontendIface.cpp
@@ -0,0 +1,76 @@
+
+
+/* This file is part of the KDE project
+ Copyright (C) 2001 Matthias Hoelzer-Kluepfel <[email protected]>
+ Copyright (C) 2002 Roberto Raggi <[email protected]>
+ Copyright (C) 2002 Bernd Gehrmann <[email protected]>
+ Copyright (C) 2003 Amilcar do Carmo Lucas <[email protected]>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA.
+*/
+#include "KDevAppFrontendIface.h"
+#include "kdevappfrontend.h"
+
+
+KDevAppFrontendIface::KDevAppFrontendIface(KDevAppFrontend *appFrontend)
+ : DCOPObject("KDevAppFrontend"), m_appFrontend(appFrontend)
+{
+}
+
+
+KDevAppFrontendIface::~KDevAppFrontendIface()
+{}
+
+
+void KDevAppFrontendIface::startAppCommand(const QString &directory, const QString &command, bool inTerminal)
+{
+ m_appFrontend->startAppCommand(directory, command, inTerminal);
+}
+
+void KDevAppFrontendIface::stopApplication( )
+{
+ m_appFrontend->stopApplication();
+}
+
+bool KDevAppFrontendIface::isRunning( )
+{
+ return m_appFrontend->isRunning();
+}
+
+void KDevAppFrontendIface::clearView( )
+{
+ m_appFrontend->clearView();
+}
+
+void KDevAppFrontendIface::insertStderrLine( const QCString & line )
+{
+ m_appFrontend->insertStderrLine(line);
+}
+
+void KDevAppFrontendIface::insertStdoutLine( const QCString & line )
+{
+ m_appFrontend->insertStdoutLine(line);
+}
+
+void KDevAppFrontendIface::addPartialStderrLine( const QCString& line )
+{
+ m_appFrontend->addPartialStderrLine(line);
+}
+
+void KDevAppFrontendIface::addPartialStdoutLine( const QCString& line )
+{
+ m_appFrontend->addPartialStdoutLine(line);
+}
diff --git a/lib/interfaces/extensions/dcop/KDevAppFrontendIface.h b/lib/interfaces/extensions/dcop/KDevAppFrontendIface.h
new file mode 100644
index 00000000..e54e25b0
--- /dev/null
+++ b/lib/interfaces/extensions/dcop/KDevAppFrontendIface.h
@@ -0,0 +1,52 @@
+/* This file is part of the KDE project
+ Copyright (C) 2001 Matthias Hoelzer-Kluepfel <[email protected]>
+ Copyright (C) 2002 Roberto Raggi <[email protected]>
+ Copyright (C) 2002 Bernd Gehrmann <[email protected]>
+ Copyright (C) 2003 Amilcar do Carmo Lucas <[email protected]>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA.
+*/
+#ifndef _KDEVAPPFRONTENDIFACE_H_
+#define _KDEVAPPFRONTENDIFACE_H_
+
+#include <dcopobject.h>
+
+class KDevAppFrontend;
+
+class KDevAppFrontendIface : public DCOPObject
+{
+ K_DCOP
+
+public:
+
+ KDevAppFrontendIface( KDevAppFrontend *appFrontend );
+ ~KDevAppFrontendIface();
+
+k_dcop:
+ void startAppCommand(const QString &directory, const QString &command, bool inTerminal);
+ void stopApplication();
+ bool isRunning();
+ void clearView();
+ void insertStderrLine(const QCString &line);
+ void insertStdoutLine(const QCString &line);
+ void addPartialStderrLine(const QCString &line);
+ void addPartialStdoutLine(const QCString &line);
+
+private:
+ KDevAppFrontend *m_appFrontend;
+};
+
+#endif
diff --git a/lib/interfaces/extensions/dcop/KDevMakeFrontendIface.cpp b/lib/interfaces/extensions/dcop/KDevMakeFrontendIface.cpp
new file mode 100644
index 00000000..2050a970
--- /dev/null
+++ b/lib/interfaces/extensions/dcop/KDevMakeFrontendIface.cpp
@@ -0,0 +1,46 @@
+
+
+/* This file is part of the KDE project
+ Copyright (C) 2001 Matthias Hoelzer-Kluepfel <[email protected]>
+ Copyright (C) 2001 Bernd Gehrmann <[email protected]>
+ Copyright (C) 2002 Roberto Raggi <[email protected]>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA.
+*/
+#include "KDevMakeFrontendIface.h"
+#include "kdevmakefrontend.h"
+
+
+KDevMakeFrontendIface::KDevMakeFrontendIface(KDevMakeFrontend *makeFrontend)
+ : DCOPObject("KDevMakeFrontend")
+{
+ m_makeFrontend = makeFrontend;
+}
+
+
+KDevMakeFrontendIface::~KDevMakeFrontendIface()
+{}
+
+
+void KDevMakeFrontendIface::queueCommand(const QString &dir, const QString &command)
+{
+ m_makeFrontend->queueCommand(dir, command);
+}
+
+bool KDevMakeFrontendIface::isRunning( )
+{
+ return m_makeFrontend->isRunning();
+}
diff --git a/lib/interfaces/extensions/dcop/KDevMakeFrontendIface.h b/lib/interfaces/extensions/dcop/KDevMakeFrontendIface.h
new file mode 100644
index 00000000..89ecdf5e
--- /dev/null
+++ b/lib/interfaces/extensions/dcop/KDevMakeFrontendIface.h
@@ -0,0 +1,45 @@
+/* This file is part of the KDE project
+ Copyright (C) 2001 Matthias Hoelzer-Kluepfel <[email protected]>
+ Copyright (C) 2001 Bernd Gehrmann <[email protected]>
+ Copyright (C) 2002 Roberto Raggi <[email protected]>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA.
+*/
+#ifndef _KDEVMAKEFRONTENDIFACE_H_
+#define _KDEVMAKEFRONTENDIFACE_H_
+
+#include <dcopobject.h>
+
+class KDevMakeFrontend;
+
+class KDevMakeFrontendIface : public DCOPObject
+{
+ K_DCOP
+
+public:
+
+ KDevMakeFrontendIface( KDevMakeFrontend *makeFrontend );
+ ~KDevMakeFrontendIface();
+
+k_dcop:
+ void queueCommand(const QString &dir, const QString &command);
+ bool isRunning();
+
+private:
+ KDevMakeFrontend *m_makeFrontend;
+};
+
+#endif
diff --git a/lib/interfaces/extensions/dcop/Makefile.am b/lib/interfaces/extensions/dcop/Makefile.am
new file mode 100644
index 00000000..0b904eeb
--- /dev/null
+++ b/lib/interfaces/extensions/dcop/Makefile.am
@@ -0,0 +1,10 @@
+INCLUDES = -I$(top_srcdir)/lib/interfaces -I$(top_srcdir)/lib/interfaces/extensions $(all_includes)
+METASOURCES = AUTO
+
+noinst_LTLIBRARIES = libkdevdcopextensions.la
+libkdevdcopextensions_la_LDFLAGS = $(all_libraries)
+libkdevdcopextensions_la_SOURCES = KDevAppFrontendIface.cpp \
+ KDevMakeFrontendIface.cpp KDevAppFrontendIface.skel KDevMakeFrontendIface.skel
+
+dcopincludeextdir = $(includedir)/kdevelop/interfaces/extensions/dcop
+dcopincludeext_HEADERS = KDevAppFrontendIface.h KDevMakeFrontendIface.h
diff --git a/lib/interfaces/extensions/kdevappfrontend.cpp b/lib/interfaces/extensions/kdevappfrontend.cpp
new file mode 100644
index 00000000..3d918fe2
--- /dev/null
+++ b/lib/interfaces/extensions/kdevappfrontend.cpp
@@ -0,0 +1,2 @@
+#include "kdevappfrontend.h"
+#include "kdevappfrontend.moc"
diff --git a/lib/interfaces/extensions/kdevappfrontend.h b/lib/interfaces/extensions/kdevappfrontend.h
new file mode 100644
index 00000000..65424ed9
--- /dev/null
+++ b/lib/interfaces/extensions/kdevappfrontend.h
@@ -0,0 +1,115 @@
+/* This file is part of the KDE project
+ Copyright (C) 2001 Matthias Hoelzer-Kluepfel <[email protected]>
+ Copyright (C) 2001-2002 Bernd Gehrmann <[email protected]>
+ Copyright (C) 2002-2003 Roberto Raggi <[email protected]>
+ Copyright (C) 2002 Simon Hausmann <[email protected]>
+ Copyright (C) 2002 John Firebaugh <[email protected]>
+ Copyright (C) 2003 Amilcar do Carmo Lucas <[email protected]>
+ Copyright (C) 2003 Hamish Rodda <[email protected]>
+ Copyright (C) 2003 Jens Dagerbo <[email protected]>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA.
+*/
+#ifndef KDEVAPPFRONTEND_H
+#define KDEVAPPFRONTEND_H
+
+#include <qstringlist.h>
+#include <kdevplugin.h>
+
+/**
+@file kdevappfrontend.h
+Application frontend interface.
+*/
+
+/**
+Application frontend interface.
+This interface is responsible for handling the running of an application in KDevelop.
+Currently, this interface defines ways to do the following:
+- check if the application is running;
+- execute the application;
+- stop the currently running application;
+- control the output view as seen in the 'Application' tool dock.
+
+Instances that implement this interface are available through extension architecture:
+@code
+KDevAppFrontend *apf = extension<KDevAppFrontend>("KDevelop/AppFrontend");
+if (apf) {
+ // do something
+} else {
+ // fail
+}
+@endcode
+@sa KDevPlugin::extension method documentation.
+*/
+class KDevAppFrontend : public KDevPlugin
+{
+ Q_OBJECT
+
+public:
+ /**Constructor.
+ @param info Important information about the plugin - plugin internal and generic
+ (GUI) name, description, a list of authors, etc. That information is used to show
+ plugin information in various places like "about application" dialog, plugin selector
+ dialog, etc. Plugin does not take ownership on info object, also its lifetime should
+ be equal to the lifetime of the plugin.
+ @param parent The parent object for the plugin. Parent object must implement @ref KDevApi
+ interface. Otherwise the plugin will not be constructed.
+ @param name The internal name which identifies the plugin.*/
+ KDevAppFrontend(const KDevPluginInfo *info, QObject *parent=0, const char *name=0 )
+ :KDevPlugin(info, parent, name ? name : "KDevAppFrontend") {}
+
+ /**@return Whether the application is currently running.*/
+ virtual bool isRunning() = 0;
+
+public slots:
+ /**
+ * The component shall start to execute an app-like command.
+ * Running the application is always asynchronous.
+ * @param directory The working directory to start the app in,
+ * if empty then the user's home directory is used.
+ * @param program A program to start.
+ * @param inTerminal If true then the program is started in an external konsole.
+ */
+ virtual void startAppCommand(const QString &directory, const QString &program, bool inTerminal) = 0;
+
+ /**
+ * Stops the currently running application.
+ */
+ virtual void stopApplication() = 0;
+
+ /**
+ * Inserts a string into the application output view.
+ * @param line A string to insert.
+ */
+ virtual void insertStdoutLine(const QCString &line) = 0;
+
+ /**
+ * Inserts a string into the application output view marked as stderr output
+ * (usually colored).
+ * @param line An error string to insert.
+ */
+ virtual void insertStderrLine(const QCString &line) = 0;
+
+ virtual void addPartialStderrLine( const QCString& line ) = 0;
+ virtual void addPartialStdoutLine( const QCString& line ) = 0;
+
+ /**
+ * Clears the output view.
+ */
+ virtual void clearView() = 0;
+};
+
+#endif
diff --git a/lib/interfaces/extensions/kdevcreatefile.h b/lib/interfaces/extensions/kdevcreatefile.h
new file mode 100644
index 00000000..b142cd4d
--- /dev/null
+++ b/lib/interfaces/extensions/kdevcreatefile.h
@@ -0,0 +1,146 @@
+/* This file is part of the KDE project
+ Copyright (C) 2003 Julian Rockey <[email protected]>
+ Copyright (C) 2003 Roberto Raggi <[email protected]>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA.
+*/
+#ifndef KDEVCREATEFILE_H
+#define KDEVCREATEFILE_H
+
+#include <qstring.h>
+
+#include <kdevplugin.h>
+
+/**
+@file kdevcreatefile.h
+File creation facility interface.
+*/
+
+/**
+File creation facility interface.
+
+An abstract class for all extensions that are responsible for file creation.
+
+Instances that implement this interface are available through extension architecture:
+@code
+KDevCreateFile *cf = extension<KDevCreateFile>("KDevelop/CreateFile");
+if (cf) {
+ // do something
+} else {
+ // fail
+}
+@endcode
+@sa KDevPlugin::extension method documentation.
+*/
+class KDevCreateFile : public KDevPlugin
+{
+
+public:
+ /**File created with @ref KDevCreateFile implementation.*/
+ class CreatedFile {
+
+ public:
+ /**The status of a file.*/
+ enum Status {
+ STATUS_OK /**<File was successfuly created.*/,
+ STATUS_CANCELED /**<File was not created due to user intervention.*/,
+ STATUS_NOTCREATED /**<File was not created due to error.*/,
+ STATUS_NOTWITHINPROJECT /**<File was successfuly created but not added to a project.*/
+ };
+
+ /**Constructor.
+ Sets status to STATUS_NOTCREATED.*/
+ CreatedFile()
+ : status( STATUS_NOTCREATED ) {}
+
+ CreatedFile( const CreatedFile& source )
+ : dir( source.dir ), filename( source.filename ),
+ ext( source.ext ), subtype( source.subtype ),
+ status( source.status ), addToProject(false) {}
+
+ CreatedFile& operator = ( const CreatedFile& source )
+ {
+ dir = source.dir;
+ filename = source.filename;
+ ext = source.ext;
+ subtype = source.subtype;
+ status = source.status;
+ addToProject = source.addToProject;
+ return( *this );
+ }
+
+ bool operator == ( const CreatedFile& source ) const
+ {
+ return
+ dir == source.dir &&
+ filename == source.filename &&
+ ext == source.ext &&
+ subtype == source.subtype &&
+ status == source.status &&
+ addToProject == source.addToProject;
+ }
+
+ // this should be private
+ /**The directory.*/
+ QString dir;
+ /**The name (without directory path).*/
+ QString filename;
+ /**The extension of a file. Extension defines a "type" of the file template
+ to use during file creation.*/
+ QString ext;
+ /**The subtype of a file. "Subtype" defines a file template to use when
+ there are several file templates for each extension.*/
+ QString subtype;
+ /**Current status.*/
+ Status status;
+ /**true if the file should be added to a project.*/
+ bool addToProject;
+ };
+
+
+public:
+
+ /**Constructor.
+ @param info Important information about the plugin - plugin internal and generic
+ (GUI) name, description, a list of authors, etc. That information is used to show
+ plugin information in various places like "about application" dialog, plugin selector
+ dialog, etc. Plugin does not take ownership on info object, also its lifetime should
+ be equal to the lifetime of the plugin.
+ @param parent The parent object for the plugin. Parent object must implement @ref KDevApi
+ interface. Otherwise the plugin will not be constructed.
+ @param name The internal name which identifies the plugin.*/
+ KDevCreateFile(const KDevPluginInfo *info, QObject * parent = 0, const char * name = 0)
+ :KDevPlugin(info, parent, name) {}
+
+ /**Creates a new file, within or without the project.
+ Supply as much information as you know. Leave what you don't know as QString::null.
+ The user will be prompted as necessary for the missing information, and the
+ file created, and added to the project as necessary.
+ @param ext File extension (type).
+ @param dir The absolute path to a directory.
+ @param name The name of a file.
+ @param subtype The subtype, pass this only if an extension is not enough to find the
+ file template.
+ @return @ref CreatedFile instance with information about file and file creation process.*/
+ virtual CreatedFile createNewFile(QString ext = QString::null,
+ QString dir = QString::null,
+ QString name = QString::null,
+ QString subtype = QString::null) = 0;
+
+
+};
+
+#endif
diff --git a/lib/interfaces/extensions/kdevdifffrontend.cpp b/lib/interfaces/extensions/kdevdifffrontend.cpp
new file mode 100644
index 00000000..a2e2c49b
--- /dev/null
+++ b/lib/interfaces/extensions/kdevdifffrontend.cpp
@@ -0,0 +1,33 @@
+/* This file is part of the KDE project
+ Copyright (C) 2002 Harald Fernengel <[email protected]>
+ Copyright (C) 2002 F@lk Brettschneider <[email protected]>
+ Copyright (C) 2003 Roberto Raggi <[email protected]>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA.
+*/
+#include "kdevdifffrontend.h"
+
+
+KDevDiffFrontend::KDevDiffFrontend(const KDevPluginInfo *info, QObject *parent, const char *name)
+ : KDevPlugin(info, parent, name ? name : "KDevDiffFrontend")
+{
+}
+
+KDevDiffFrontend::~KDevDiffFrontend()
+{
+}
+
+#include "kdevdifffrontend.moc"
diff --git a/lib/interfaces/extensions/kdevdifffrontend.h b/lib/interfaces/extensions/kdevdifffrontend.h
new file mode 100644
index 00000000..7c5874a2
--- /dev/null
+++ b/lib/interfaces/extensions/kdevdifffrontend.h
@@ -0,0 +1,79 @@
+/* This file is part of the KDE project
+ Copyright (C) 2002 Harald Fernengel <[email protected]>
+ Copyright (C) 2002 F@lk Brettschneider <[email protected]>
+ Copyright (C) 2003 Roberto Raggi <[email protected]>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA.
+*/
+#ifndef KDEVDIFFFRONTEND_H
+#define KDEVDIFFFRONTEND_H
+
+#include <kurl.h>
+#include <kdevplugin.h>
+
+/**
+@file kdevdifffrontend.h
+Diff frontend interface.
+*/
+
+/**
+KDevelop diff frontend interface.
+This is the abstract base class for plugins that want to display differencies between
+files.
+
+Instances that implement this interface are available through extension architecture:
+@code
+KDevDiffFrontend *df = extension<KDevDiffFrontend>("KDevelop/DiffFrontend");
+if (df) {
+ // do something
+} else {
+ // fail
+}
+@endcode
+@sa KDevPlugin::extension method documentation.
+*/
+class KDevDiffFrontend : public KDevPlugin
+{
+
+public:
+ /**Constructor.
+ @param info Important information about the plugin - plugin internal and generic
+ (GUI) name, description, a list of authors, etc. That information is used to show
+ plugin information in various places like "about application" dialog, plugin selector
+ dialog, etc. Plugin does not take ownership on info object, also its lifetime should
+ be equal to the lifetime of the plugin.
+ @param parent The parent object for the plugin. Parent object must implement @ref KDevApi
+ interface. Otherwise the plugin will not be constructed.
+ @param name The internal name which identifies the plugin.*/
+ KDevDiffFrontend( const KDevPluginInfo *info, QObject *parent=0, const char *name=0 )
+ :KDevPlugin(info, parent, name ? name : "KDevDiffFrontend") {}
+
+ /**Displays the patch.
+ @param diff A string which contains a patch in unified format.*/
+ virtual void showDiff( const QString& diff ) = 0;
+
+ /**Displays a patch file.
+ @param url An url of the patch file.*/
+ virtual void openURL( const KURL &url ) = 0;
+
+ /**Displays the difference between the two files.
+ @param url1 First file to compare.
+ @param url2 Second file to compare.*/
+ virtual void showDiff( const KURL &url1, const KURL &url2 ) = 0;
+
+};
+
+#endif
diff --git a/lib/interfaces/extensions/kdevelopappfrontend.desktop b/lib/interfaces/extensions/kdevelopappfrontend.desktop
new file mode 100644
index 00000000..60cd678b
--- /dev/null
+++ b/lib/interfaces/extensions/kdevelopappfrontend.desktop
@@ -0,0 +1,38 @@
+[Desktop Entry]
+Type=ServiceType
+X-KDE-ServiceType=KDevelop/AppFrontend
+X-KDE-Derived=KDevelop/Plugin
+Name=App Frontend Interface
+Name[ca]=Interfície de l'entorn de les aplicacions
+Name[da]=Programbrugerflade-grænseflade
+Name[de]=Oberflächen-Schnittstelle (KDevelop)
+Name[el]=Διασύνδεση προγράμματος App
+Name[es]=Interfaz de entorno de aplicación
+Name[et]=Rakenduse kasutajaliides
+Name[eu]=Aplikazioaren inguruneko interfazea
+Name[fa]=واسط پایانۀ کاربرد
+Name[fr]=Interface graphique pour une application
+Name[gl]=Interface do frontal da aplicación
+Name[hu]=Alkalmazás kezelőfelülete
+Name[it]=Applicazione per le interfacce
+Name[ja]=App フロントエンド インターフェース
+Name[nds]=Programmböversiet-Koppelsteed
+Name[ne]=एप फ्रेन्टइन्ड इन्टरफेस
+Name[pl]=Interfejs do programów
+Name[pt]=Interface da Aplicação
+Name[pt_BR]=Interface Frontend para Aplicativos
+Name[ru]=Интерфейс менеджера приложений
+Name[sk]=Aplikačné rozhranie
+Name[sr]=Кориснички интерфејс програма
+Name[sr@Latn]=Korisnički interfejs programa
+Name[sv]=Programgränssnitt
+Name[ta]=ஆப் முன்னிருந்த இடைமுகம்
+Name[tg]=Интерфейси мудири гузориш
+Name[tr]=Uygulama Önucu Arayüzü
+Name[zh_CN]=应用程序前端接口
+Name[zh_TW]=App 前端介面
+
+# versioning - prevent DLL hell
+[PropertyDef::X-KDevelop-Version]
+Type=int
+
diff --git a/lib/interfaces/extensions/kdevelopcodebrowserfrontend.desktop b/lib/interfaces/extensions/kdevelopcodebrowserfrontend.desktop
new file mode 100644
index 00000000..9dd7f8d2
--- /dev/null
+++ b/lib/interfaces/extensions/kdevelopcodebrowserfrontend.desktop
@@ -0,0 +1,28 @@
+[Desktop Entry]
+Type=ServiceType
+X-KDE-ServiceType=KDevelop/CodeBrowserFrontend
+X-KDE-Derived=KDevelop/Plugin
+Name=Code Browser Frontend
+Name[ca]=Interfície per al navegador de codi
+Name[da]=Kodebrowser-grænseflade
+Name[de]=Quelltextbrowser-Oberfläche
+Name[el]=Πρόγραμμα περιήγησης κώδικα
+Name[es]=Interfaz para el navegador de código
+Name[et]=Koodibrauseri kasutajaliides
+Name[fr]=Interface de navigation dans le code
+Name[hu]=Kódböngésző
+Name[it]=Interfaccia di navigazione del codice
+Name[ja]=コードブラウザのフロントエンド
+Name[nds]=Kodekieker-Böversiet
+Name[pl]=Interfejs do przeglądarki kodu
+Name[pt]=Interface de Navegação do Código
+Name[pt_BR]=Interface de Navegação do Código
+Name[ru]=Навигатор по коду
+Name[sk]=Rozhranie pre prehliadač kódu
+Name[sr]=Интерфејс прегледача кода
+Name[sr@Latn]=Interfejs pregledača koda
+Name[sv]=Kodbläddringsgränssnitt
+Name[zh_TW]=源碼瀏覽器前端介面
+
+[PropertyDef::X-KDevelop-Version]
+Type=int
diff --git a/lib/interfaces/extensions/kdevelopcreatefile.desktop b/lib/interfaces/extensions/kdevelopcreatefile.desktop
new file mode 100644
index 00000000..d100b330
--- /dev/null
+++ b/lib/interfaces/extensions/kdevelopcreatefile.desktop
@@ -0,0 +1,38 @@
+[Desktop Entry]
+Type=ServiceType
+X-KDE-ServiceType=KDevelop/CreateFile
+X-KDE-Derived=KDevelop/Plugin
+Name=KDevelop Create File Interface
+Name[ca]=Interfície de creació de fitxers per a KDevelop
+Name[da]=KDevelop opret filgrænseflade
+Name[de]=KDevelop-Schnittstelle zum Anlegen von Dateien
+Name[el]=Διασύνδεση δημιουργίας αρχείου KDevelop
+Name[es]=Interfaz de creación de archivos de KDevelop
+Name[et]=KDevelopi faili loomise liides
+Name[eu]=KDevelop-en "Sortu fitxategia" interfazea
+Name[fa]=واسط پروندۀ ایجاد KDevelop
+Name[fr]=Interface de création de fichiers pour KDevelop
+Name[gl]=Interface de crear ficheiro de KDevelop
+Name[hu]=KDevelop fájllétrehozási felület
+Name[it]=Interfaccia KDevelop per creare file
+Name[ja]=KDevelop Create File インターフェース
+Name[nds]=KDevelop-Koppelsteed för't Dateiopstellen
+Name[ne]=केडीई विकास फाइल इन्टरफेस सिर्जना
+Name[nl]=KDevelop Bestand aanmaken-interface
+Name[pl]=Interfejs KDevelopa do tworzenia pliku
+Name[pt]=Interface de Criação de Ficheiro do KDevelop
+Name[pt_BR]=Interface para Criar Arquivo do KDevelop
+Name[ru]=Интерфейс средства создания файлов для KDevelop
+Name[sk]=KDevelop rozhranie na vytvorenie súboru
+Name[sl]=Vmesnik za ustvarjanje datotek v KDevelopu
+Name[sr]=KDevelop-ов интерфејс за прављење фајла
+Name[sr@Latn]=KDevelop-ov interfejs za pravljenje fajla
+Name[sv]=KDevelop gränssnitt för att skapa filer
+Name[tr]=KDevelop Dosya Yaratma Arayüzü
+Name[zh_CN]=KDevelop 文件创建接口
+Name[zh_TW]=KDevelop 建立檔案介面
+
+# versioning - prevent DLL hell
+[PropertyDef::X-KDevelop-Version]
+Type=int
+
diff --git a/lib/interfaces/extensions/kdevelopdifffrontend.desktop b/lib/interfaces/extensions/kdevelopdifffrontend.desktop
new file mode 100644
index 00000000..31dec5af
--- /dev/null
+++ b/lib/interfaces/extensions/kdevelopdifffrontend.desktop
@@ -0,0 +1,41 @@
+[Desktop Entry]
+Type=ServiceType
+X-KDE-ServiceType=KDevelop/DiffFrontend
+X-KDE-Derived=KDevelop/Plugin
+Name=Diff Frontend Interface
+Name[ca]=Interfície de l'entorn per a diff
+Name[da]=Diff-brugerflade grænseflade
+Name[de]=Schnittstelle für Diff-Oberflächen (KDevelop)
+Name[el]=Διασύνδεση προγράμματος Diff
+Name[es]=Interfaz del entorno de diff
+Name[et]=Diff kasutajaliides
+Name[eu]=Desberdintasun ingurunearen interfazea
+Name[fa]=واسط پایانۀ تفاوت
+Name[fr]=Interface du programme « Diff »
+Name[gl]=Interface do frontal de Diff
+Name[hi]=डिफ़ फ्रन्टएण्ड इंटरफ़ेस
+Name[hu]=Diff-kezelési felület
+Name[it]=Interfaccia a Diff
+Name[ja]=Diff フロントエンド インターフェース
+Name[nds]=Koppelsteed för "Diff"-Böversiet
+Name[ne]=डिफ फ्रेन्टइन्ड इन्टरफेस
+Name[nl]=Diff Frontend-interface
+Name[pl]=Interfejs do programu diff
+Name[pt]=Interface para o 'Diff'
+Name[pt_BR]=Interface de Frontend do Diff
+Name[ru]=Интерфейс системы нахождения различий
+Name[sk]=Rozhranie rozdielu
+Name[sl]=Vmesnik za diff
+Name[sr]=Кориснички интерфејс за diff
+Name[sr@Latn]=Korisnički interfejs za diff
+Name[sv]=Gränssnitt för jämförelse
+Name[ta]=டிப் முன்நிறுத்த இடைமுகம்
+Name[tg]=Барномаи интерфейс барои ёфтани тағирпазирӣ
+Name[tr]=Diff Önuç Arayüzü
+Name[zh_CN]=Diff 前端接口
+Name[zh_TW]=Diff 前端介面
+
+# versioning - prevent DLL hell
+[PropertyDef::X-KDevelop-Version]
+Type=int
+
diff --git a/lib/interfaces/extensions/kdevelopmakefrontend.desktop b/lib/interfaces/extensions/kdevelopmakefrontend.desktop
new file mode 100644
index 00000000..f38d2d14
--- /dev/null
+++ b/lib/interfaces/extensions/kdevelopmakefrontend.desktop
@@ -0,0 +1,41 @@
+[Desktop Entry]
+Type=ServiceType
+X-KDE-ServiceType=KDevelop/MakeFrontend
+X-KDE-Derived=KDevelop/Plugin
+Name=Make Frontend Interface
+Name[ca]=Interfície de l'entorn per a make
+Name[da]=Make brugerflade-grænseflade
+Name[de]=Schnittstelle für Make-Oberflächen (KDevelop)
+Name[el]=Διασύνδεση προγράμματος Make
+Name[es]=Interfaz del entorno de make
+Name[et]=Make kasutajaliides
+Name[eu]=Make ingurunearen interfazea
+Name[fa]=واسط پایانۀ Make
+Name[fr]=Interface du programme « make »
+Name[gl]=Interface do frontal de Make
+Name[hi]=मेक फ्रन्टएण्ड इंटरफ़ेस
+Name[hu]=Make kezelőfelület
+Name[it]=Interfaccia per Make
+Name[ja]=Make フロントエンド インターフェース
+Name[nds]=Koppelsteed för "Make"-Böversiet
+Name[ne]=मेक फ्रेन्टइन्ड इन्टरफेस
+Name[nl]=Make Frontend-interface
+Name[pl]=Interfejs do Make
+Name[pt]=Interface para o Make
+Name[pt_BR]=Interface de Frontend do Make
+Name[ru]=Интерфейс Make
+Name[sk]=Rozhranie pre make
+Name[sl]=Vmesnik za make
+Name[sr]=Кориснички интерфејс за make
+Name[sr@Latn]=Korisnički interfejs za make
+Name[sv]=Byggränssnitt
+Name[ta]=முன்பகுதி இடை விளிம்பை அமை
+Name[tg]=Интерфейс пӯсти Make
+Name[tr]=Make Önuç Arayüzü
+Name[zh_CN]=Make 前端接口
+Name[zh_TW]=Make 前端介面
+
+# versioning - prevent DLL hell
+[PropertyDef::X-KDevelop-Version]
+Type=int
+
diff --git a/lib/interfaces/extensions/kdevelopquickopen.desktop b/lib/interfaces/extensions/kdevelopquickopen.desktop
new file mode 100644
index 00000000..57ae2fd5
--- /dev/null
+++ b/lib/interfaces/extensions/kdevelopquickopen.desktop
@@ -0,0 +1,58 @@
+[Desktop Entry]
+Type=ServiceType
+X-KDE-ServiceType=KDevelop/QuickOpen
+X-KDE-Derived=KDevelop/Plugin
+Name=Quick Open Interface
+Name[ca]=Interfície Open Quick
+Name[da]=Quick Open-grænseflade
+Name[de]=Schnittstelle für Schnellöffnen
+Name[el]=Διασύνδεση γρήγορου ανοίγματος
+Name[es]=Interfaz de apertura rápida
+Name[et]=Kiiravamise kasutajaliides
+Name[hu]=Gyors megnyitási kezelőfelület
+Name[it]=Interfaccia Quick Open
+Name[nds]=Fixopmaak-Koppelsteed
+Name[nl]=Snelopen-interface
+Name[pl]=Open Interface
+Name[pt]=Interface de Abertura Rápida
+Name[pt_BR]=Interface de Abertura Rápida
+Name[ru]=Интерфейс быстрого открытия
+Name[sk]=Rozhranie pre Quick Open
+Name[sr]=Интерфејс брзог отварања
+Name[sr@Latn]=Interfejs brzog otvaranja
+Name[sv]=Snabböppningsgränssnitt
+Name[zh_TW]=快速開啟介面
+
+# versioning - prevent DLL hell
+[PropertyDef::X-KDevelop-Version]
+Type=int
+
+[Desktop Entry]
+Type=ServiceType
+X-KDE-ServiceType=KDevelop/QuickOpen
+X-KDE-Derived=KDevelop/Plugin
+Name=Quick Open Interface
+Name[ca]=Interfície Open Quick
+Name[da]=Quick Open-grænseflade
+Name[de]=Schnittstelle für Schnellöffnen
+Name[el]=Διασύνδεση γρήγορου ανοίγματος
+Name[es]=Interfaz de apertura rápida
+Name[et]=Kiiravamise kasutajaliides
+Name[hu]=Gyors megnyitási kezelőfelület
+Name[it]=Interfaccia Quick Open
+Name[nds]=Fixopmaak-Koppelsteed
+Name[nl]=Snelopen-interface
+Name[pl]=Open Interface
+Name[pt]=Interface de Abertura Rápida
+Name[pt_BR]=Interface de Abertura Rápida
+Name[ru]=Интерфейс быстрого открытия
+Name[sk]=Rozhranie pre Quick Open
+Name[sr]=Интерфејс брзог отварања
+Name[sr@Latn]=Interfejs brzog otvaranja
+Name[sv]=Snabböppningsgränssnitt
+Name[zh_TW]=快速開啟介面
+
+# versioning - prevent DLL hell
+[PropertyDef::X-KDevelop-Version]
+Type=int
+
diff --git a/lib/interfaces/extensions/kdevelopsourceformatter.desktop b/lib/interfaces/extensions/kdevelopsourceformatter.desktop
new file mode 100644
index 00000000..2bdadc38
--- /dev/null
+++ b/lib/interfaces/extensions/kdevelopsourceformatter.desktop
@@ -0,0 +1,39 @@
+[Desktop Entry]
+Type=ServiceType
+X-KDE-ServiceType=KDevelop/SourceFormatter
+X-KDE-Derived=KDevelop/Plugin
+Name=Source Formatter Interface
+Name[ca]=Interfície del formatador de codi font
+Name[da]=Kildekodeformatering grænseflade
+Name[de]=Quelltext-Formatierer-Schnittstelle (KDevelop)
+Name[el]=Διασύνδεση μορφοποίησης κώδικα
+Name[es]=Interfaz del formateador de código fuente
+Name[et]=Koodi vormindamise liides
+Name[eu]=Iturburu formateatzailearen interfazea
+Name[fa]=واسط قالب‌دهندۀ منبع
+Name[fr]=Interface pour le formatage de code source
+Name[gl]=Interface do formateador de código
+Name[hu]=Forrásformázási felület
+Name[it]=Interfaccia per il formattatore del codice sorgente
+Name[ja]=ソースフォーマッタ インターフェース
+Name[nds]=Koppelsteed för Borntext-Formaterer
+Name[ne]=स्रोत ढाँचाबद्धक इन्टरफेस
+Name[nl]=Broncode formatteren-interface
+Name[pl]=Interfejs do programu formatowania źródeł
+Name[pt]=Interface de Formatação de Código
+Name[pt_BR]=Interface de Formatação de Fonte
+Name[ru]=Интерфейс форматирования исходного кода
+Name[sk]=Rozhranie pre formátovanie
+Name[sr]=Интерфејс форматера изворног кода
+Name[sr@Latn]=Interfejs formatera izvornog koda
+Name[sv]=Gränssnitt för källkodsformatering
+Name[ta]=வடிவமைப்பவரின் இடை விளிம்பு மூலம்
+Name[tg]=Интерфейс қолабгузори коди берунӣ
+Name[tr]=Kaynak Biçimleyici Arayüzü
+Name[zh_CN]=源代码格式化接口
+Name[zh_TW]=程式碼格式化介面
+
+# versioning - prevent DLL hell
+[PropertyDef::X-KDevelop-Version]
+Type=int
+
diff --git a/lib/interfaces/extensions/kdevelopversioncontrol.desktop b/lib/interfaces/extensions/kdevelopversioncontrol.desktop
new file mode 100644
index 00000000..c772b9a6
--- /dev/null
+++ b/lib/interfaces/extensions/kdevelopversioncontrol.desktop
@@ -0,0 +1,40 @@
+[Desktop Entry]
+Type=ServiceType
+X-KDE-ServiceType=KDevelop/VersionControl
+X-KDE-Derived=KDevelop/Plugin
+Name=KDevelop Version Control Interface
+Name[ca]=Interfície del control de versions per a KDevelop
+Name[da]=KDevelop versionskontrol grænseflade
+Name[de]=Versionsverwaltung-Schnittstelle (KDevelop)
+Name[el]=Διασύνδεση ελέγχου εκδόσεων KDevelop
+Name[es]=Interfaz del control de versiones de KDevelop
+Name[et]=KDevelopi versioonide kontrollimise liides
+Name[eu]=KDevelop bertsio kontrol interfazea
+Name[fa]=واسط کنترل نسخۀ KDevelop
+Name[fr]=Interface pour le contrôle de versions de KDevelop
+Name[gl]=Interface do control de versións de KDevelop
+Name[hi]=के-डेवलप संस्करण नियंत्रण इंटरफ़ेस
+Name[hu]=KDevelop verziókezelési felület
+Name[ja]=KDevelop バージョンコントロール インターフェース
+Name[nds]=Verschoonkuntrull-Koppelsteed vun KDevelop
+Name[ne]=केडीई विकास संस्करण नियन्त्रण इन्टरफेस
+Name[nl]=KDevelop Versiebeheer-interface
+Name[pl]=Interfejs Kdevelopa do kontroli wersji
+Name[pt]=Interface de Controlo de Versões do KDevelop
+Name[pt_BR]=Interface de Controle de Versão do KDevelop
+Name[ru]=Интерфейс системы управления версиями
+Name[sk]=KDevelop rozhranie pre riadenie verzií
+Name[sl]=Vmesnik nadzora različic za KDevelop
+Name[sr]=KDevelop-ов интерфејс за контролу верзије
+Name[sr@Latn]=KDevelop-ov interfejs za kontrolu verzije
+Name[sv]=KDevelop gränssnitt för versionskontroll
+Name[ta]=KDevelop பதிப்பு கட்டுப்பாட்டு இடைஇணைப்பு
+Name[tg]=Интерфейс барномаи идоракунии тафсирҳо
+Name[tr]=KDevelop Sürüm Kontrol Arayüzü
+Name[zh_CN]=KDevelop 版本控制接口
+Name[zh_TW]=KDevelop 版本控制介面
+
+# versioning - prevent DLL hell
+[PropertyDef::X-KDevelop-Version]
+Type=int
+
diff --git a/lib/interfaces/extensions/kdevmakefrontend.cpp b/lib/interfaces/extensions/kdevmakefrontend.cpp
new file mode 100644
index 00000000..5e035270
--- /dev/null
+++ b/lib/interfaces/extensions/kdevmakefrontend.cpp
@@ -0,0 +1,2 @@
+#include "kdevmakefrontend.h"
+#include "kdevmakefrontend.moc"
diff --git a/lib/interfaces/extensions/kdevmakefrontend.h b/lib/interfaces/extensions/kdevmakefrontend.h
new file mode 100644
index 00000000..6014ff34
--- /dev/null
+++ b/lib/interfaces/extensions/kdevmakefrontend.h
@@ -0,0 +1,106 @@
+/* This file is part of the KDE project
+ Copyright (C) 2001 Matthias Hoelzer-Kluepfel <[email protected]>
+ Copyright (C) 2001 Sandy Meier <[email protected]>
+ Copyright (C) 2001-2002 Bernd Gehrmann <[email protected]>
+ Copyright (C) 2002-2003 Roberto Raggi <[email protected]>
+ Copyright (C) 2002 Simon Hausmann <[email protected]>
+ Copyright (C) 2002 F@lk Brettschneider <[email protected]>
+ Copyright (C) 2003 Amilcar do Carmo Lucas <[email protected]>
+ Copyright (C) 2003 Hamish Rodda <[email protected]>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA.
+*/
+#ifndef KDEVMAKEFRONTEND_H
+#define KDEVMAKEFRONTEND_H
+
+#include <qstringlist.h>
+#include <kdevplugin.h>
+
+/**
+@file kdevmakefrontend.h
+Make frontend interface.
+*/
+
+/**
+KDevelop make frontend interface.
+This is the abstract base class for plugins that are able to run "make"
+or similar commands to build a project, api documentation, etc.
+
+Instances that implement this interface are available through extension architecture:
+@code
+KDevMakeFrontend *mf = extension<KDevMakeFrontend>("KDevelop/MakeFrontend");
+if (mf) {
+ // do something
+} else {
+ // fail
+}
+@endcode
+@sa KDevPlugin::extension method documentation.
+*/
+class KDevMakeFrontend : public KDevPlugin
+{
+ Q_OBJECT
+
+public:
+
+ /**Constructor.
+ @param info Important information about the plugin - plugin internal and generic
+ (GUI) name, description, a list of authors, etc. That information is used to show
+ plugin information in various places like "about application" dialog, plugin selector
+ dialog, etc. Plugin does not take ownership on info object, also its lifetime should
+ be equal to the lifetime of the plugin.
+ @param parent The parent object for the plugin. Parent object must implement @ref KDevApi
+ interface. Otherwise the plugin will not be constructed.
+ @param name The internal name which identifies the plugin.*/
+ KDevMakeFrontend(const KDevPluginInfo *info, QObject *parent=0, const char *name=0 )
+ :KDevPlugin(info, parent, name ? name : "KDevMakeFrontend") {}
+
+ /**@return The widget where the make output is shown.*/
+ virtual QWidget* widget() { return 0L; }
+
+ /**The component shall start to execute a make-like command.
+ * Commands are always asynchronous. You can submit several jobs
+ * without caring about another job already running. There are
+ * executed in the order in which they are submitted. If one of
+ * then fails, all following jobs are dropped.
+ * You should not make any assumptions about the directory in which
+ * the command is started. If the command depends on that, put and
+ * explicit 'cd' into the command.
+ * @param dir A starting directory to find files when parsing compiler error
+ * messages.
+ * @param command A shell command to execute.
+ */
+ virtual void queueCommand(const QString &dir, const QString &command) = 0;
+
+ /**@return Whether the application is currently running.*/
+ virtual bool isRunning() = 0;
+
+ /**Advices to synchronize the settings from KConfig because they were changed externally.*/
+ virtual void updateSettingsFromConfig() = 0;
+
+signals:
+ /**
+ * Only emitted if the command was succesfully finished.
+ */
+ void commandFinished(const QString &command);
+
+ /**
+ * Emitted if a command failed.
+ */
+ void commandFailed(const QString &command);
+};
+
+#endif
diff --git a/lib/interfaces/extensions/kdevquickopen.h b/lib/interfaces/extensions/kdevquickopen.h
new file mode 100644
index 00000000..3fd108c8
--- /dev/null
+++ b/lib/interfaces/extensions/kdevquickopen.h
@@ -0,0 +1,130 @@
+/* This file is part of the KDE project
+ Copyright (C) 2007 Alexander Dymo <[email protected]>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA.
+*/
+#ifndef KDEVQUICKOPEN_H
+#define KDEVQUICKOPEN_H
+
+#include <kdevplugin.h>
+#include <kurl.h>
+
+/**
+@file kdevquickopen.h
+Source formatter interface.
+*/
+
+/**
+Quick open plugin interface.
+
+Use it when you need to present a dialog to choose between files to open.
+@code
+KDevQuickOpen *qo = extension<KDevQuickOpen>("KDevelop/QuickOpen");
+if (qo) {
+ // do something
+} else {
+ // fail
+}
+@endcode
+@sa @ref KDevPlugin::extension method documentation.
+@sa @ref whatisextension and @ref creatingextension sections of Platform API documentation.
+*/
+class KDevQuickOpen : public KDevPlugin
+{
+public:
+ /**Constructor.
+ @param info Important information about the plugin - plugin internal and generic
+ (GUI) name, description, a list of authors, etc. That information is used to show
+ plugin information in various places like "about application" dialog, plugin selector
+ dialog, etc. Plugin does not take ownership on info object, also its lifetime should
+ be equal to the lifetime of the plugin.
+ @param parent The parent object for the plugin. Parent object must implement @ref KDevApi
+ interface. Otherwise the plugin will not be constructed.
+ @param name The internal name which identifies the plugin.*/
+ KDevQuickOpen(const KDevPluginInfo *info, QObject* parent, const char* name)
+ :KDevPlugin(info, parent, name) {}
+
+ /**Shows the file selection dialog.
+ @param text A list of urls to open.*/
+ virtual void quickOpenFile(const KURL::List urls) = 0;
+};
+
+#endif
+/* This file is part of the KDE project
+ Copyright (C) 2007 Alexander Dymo <[email protected]>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA.
+*/
+#ifndef KDEVQUICKOPEN_H
+#define KDEVQUICKOPEN_H
+
+#include <kdevplugin.h>
+#include <kurl.h>
+
+/**
+@file kdevquickopen.h
+Source formatter interface.
+*/
+
+/**
+Quick open plugin interface.
+
+Use it when you need to present a dialog to choose between files to open.
+@code
+KDevQuickOpen *qo = extension<KDevQuickOpen>("KDevelop/QuickOpen");
+if (qo) {
+ // do something
+} else {
+ // fail
+}
+@endcode
+@sa @ref KDevPlugin::extension method documentation.
+@sa @ref whatisextension and @ref creatingextension sections of Platform API documentation.
+*/
+class KDevQuickOpen : public KDevPlugin
+{
+public:
+ /**Constructor.
+ @param info Important information about the plugin - plugin internal and generic
+ (GUI) name, description, a list of authors, etc. That information is used to show
+ plugin information in various places like "about application" dialog, plugin selector
+ dialog, etc. Plugin does not take ownership on info object, also its lifetime should
+ be equal to the lifetime of the plugin.
+ @param parent The parent object for the plugin. Parent object must implement @ref KDevApi
+ interface. Otherwise the plugin will not be constructed.
+ @param name The internal name which identifies the plugin.*/
+ KDevQuickOpen(const KDevPluginInfo *info, QObject* parent, const char* name)
+ :KDevPlugin(info, parent, name) {}
+
+ /**Shows the file selection dialog.
+ @param text A list of urls to open.*/
+ virtual void quickOpenFile(const KURL::List urls) = 0;
+};
+
+#endif
diff --git a/lib/interfaces/extensions/kdevsourceformatter.h b/lib/interfaces/extensions/kdevsourceformatter.h
new file mode 100644
index 00000000..82a9531f
--- /dev/null
+++ b/lib/interfaces/extensions/kdevsourceformatter.h
@@ -0,0 +1,69 @@
+/* This file is part of the KDE project
+ Copyright (C) 2003-2004 Alexander Dymo <[email protected]>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA.
+*/
+#ifndef KDEVSOURCEFORMATTER_H
+#define KDEVSOURCEFORMATTER_H
+
+#include <kdevplugin.h>
+
+/**
+@file kdevsourceformatter.h
+Source formatter interface.
+*/
+
+/**
+Source formatter interface.
+This interface is responsible for formatting source files and strings of code.
+
+Instances that implement this interface are available through extension architecture:
+@code
+KDevSourceFormatter *sf = extension<KDevSourceFormatter>("KDevelop/SourceFormatter");
+if (sf) {
+ // do something
+} else {
+ // fail
+}
+@endcode
+@sa @ref KDevPlugin::extension method documentation.
+@sa @ref whatisextension and @ref creatingextension sections of Platform API documentation.
+*/
+class KDevSourceFormatter : public KDevPlugin
+{
+public:
+ /**Constructor.
+ @param info Important information about the plugin - plugin internal and generic
+ (GUI) name, description, a list of authors, etc. That information is used to show
+ plugin information in various places like "about application" dialog, plugin selector
+ dialog, etc. Plugin does not take ownership on info object, also its lifetime should
+ be equal to the lifetime of the plugin.
+ @param parent The parent object for the plugin. Parent object must implement @ref KDevApi
+ interface. Otherwise the plugin will not be constructed.
+ @param name The internal name which identifies the plugin.*/
+ KDevSourceFormatter(const KDevPluginInfo *info, QObject* parent, const char* name)
+ :KDevPlugin(info, parent, name) {}
+
+ /**Formats the source.
+ @param text A string with a code.
+ @return The formatted string.*/
+ virtual QString formatSource(const QString text) = 0;
+
+ /**@return The indentation string. For example, tab or four spaces can be returned.*/
+ virtual QString indentString() const = 0;
+};
+
+#endif
diff --git a/lib/interfaces/extensions/kdevversioncontrol.h b/lib/interfaces/extensions/kdevversioncontrol.h
new file mode 100644
index 00000000..d6e69e08
--- /dev/null
+++ b/lib/interfaces/extensions/kdevversioncontrol.h
@@ -0,0 +1,237 @@
+/* This file is part of the KDE project
+ Copyright (C) 2001 Matthias Hoelzer-Kluepfel <[email protected]>
+ Copyright (C) 2002-2003 Roberto Raggi <[email protected]>
+ Copyright (C) 2002 Simon Hausmann <[email protected]>
+ Copyright (C) 2003 Mario Scalas <[email protected]>
+ Copyright (C) 2004 Alexander Dymo <[email protected]>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA.
+*/
+#ifndef KDEVVERSIONCONTROL_H
+#define KDEVVERSIONCONTROL_H
+
+#include <qobject.h>
+#include <qstring.h>
+#include <qwidget.h>
+#include <qmap.h>
+#include <qvaluelist.h>
+
+#include <kdevplugin.h>
+
+/**
+@file kdevversioncontrol.h
+Version control system interface and utility classes.
+*/
+
+/**
+Info about file state in VCS.
+
+Used, for example in file views to display VCS related information about files.
+*/
+struct VCSFileInfo
+{
+ /**State of the file.*/
+ enum FileState {
+ Unknown /**<No VCS information about a file is known.*/,
+ Added /**<File was added to the repository but not commited.*/,
+ Uptodate /**<File was updated or it is already at up to date version.*/,
+ Modified /**<File was modified locally.*/,
+ Conflict /**<Local version conflicts with the one in a repository.*/,
+ Sticky /**<File is sticky.*/,
+ NeedsPatch /**<File needs a patch.*/,
+ NeedsCheckout /**<File needs to be checkout again.*/,
+ Directory /**<This is a directory.*/ ,
+ Deleted /**<File or Directory is scheduled to be deleted. */ ,
+ Replaced /**<File was scheduled for deletion, and then a new file with the same name was scheduled for addition in its place. */
+ };
+
+ /**Constructor.*/
+ VCSFileInfo() {}
+ /**Constructor.
+ @param fn The file name (without a path).
+ @param workRev The current working revision of a file.
+ @param repoRev The last revision of a file in the repository.
+ @param aState The state of a file.*/
+ VCSFileInfo( QString fn, QString workRev, QString repoRev, FileState aState )
+ : fileName(fn), workRevision(workRev), repoRevision(repoRev), state(aState) {}
+
+ /**The file name.*/
+ QString fileName; // Yeah, _just_ the file name ;-)
+ /**The working revision number.*/
+ QString workRevision;
+ /**The repository revision number.*/
+ QString repoRevision;
+ /**The state of a file.*/
+ FileState state;
+
+ /**@return A descriptive string with all VCS related info about the file.*/
+ QString toString() const
+ {
+ return "(" + fileName + ", " + workRevision + ", " + repoRevision + ", " + state2String( state ) + ")";
+ }
+
+ /**@return A textual VCS state description.*/
+ static QString state2String( FileState state )
+ {
+ switch (state)
+ {
+ case Added: return "added";
+ case Uptodate: return "up-to-date";
+ case Modified: return "modified";
+ case Conflict: return "conflict";
+ case Sticky: return "sticky";
+ case NeedsPatch: return "needs patch";
+ case NeedsCheckout: return "needs check-out";
+ case Directory: return "directory";
+ case Deleted: return "deleted";
+ case Replaced: return "replaced";
+ case Unknown:
+ default:
+ return "unknown";
+ }
+ }
+
+};
+
+/**@class FileDom
+Info for a bunch of files that got modified.
+This is a type definition: @code QMap<QString,VCSFileInfo> VCSFileInfoMap; @endcode
+*/
+typedef QMap<QString,VCSFileInfo> VCSFileInfoMap;
+
+class KDevVCSFileInfoProvider;
+
+
+/**
+KDevelop version control system interface.
+This is the abstract base class which encapsulates everything
+necessary for communicating with version control systems.
+VCS support plugins should implement this interface.
+
+Instances that implement this interface are available through extension architecture:
+@code
+KDevVersionControl *vcs = extension<KDevVersionControl>("KDevelop/VersionControl");
+if (vcs) {
+ // do something
+} else {
+ // fail
+}
+@endcode
+@sa KDevPlugin::extension method documentation.
+*/
+class KDevVersionControl: public KDevPlugin
+{
+ Q_OBJECT
+
+public:
+ /**Constructs a VCS plugin.
+ @param info Important information about the plugin - plugin internal and generic
+ (GUI) name, description, a list of authors, etc. That information is used to show
+ plugin information in various places like "about application" dialog, plugin selector
+ dialog, etc. Plugin does not take ownership on info object, also its lifetime should
+ be equal to the lifetime of the plugin.
+ @param parent The parent object for the plugin. Parent object must implement @ref KDevApi
+ interface. Otherwise the plugin will not be constructed.
+ @param name The internal name which identifies the plugin.*/
+ KDevVersionControl(const KDevPluginInfo *info, QObject *parent, const char *name )
+ :KDevPlugin(info, parent, name ) {}
+
+ /**Creates a new project in the passed path @p dir. This should instantiate
+ VCS infrastructure and import a project into the VCS in that directory.
+ @param dir The absolute path to the directory where VCS infrastructure should be
+ created.*/
+ virtual void createNewProject(const QString& dir) = 0;
+
+ /**Fetches a module from remote repository, so it can be used for importing.
+ @return true in case of success.*/
+ virtual bool fetchFromRepository() = 0;
+
+ /**@return The file info provider for this version control (0 if none is available).*/
+ virtual KDevVCSFileInfoProvider *fileInfoProvider() const = 0;
+
+ /**Checks if the directory is valid for this version control (for example
+ CVS may check for the presence of "<dirPath>/CVS/" subdir and something else)
+ @param dirPath The absolute path of the directory.
+ @return true if the directory is valid for this version control
+ <b>warning</b>: this returns false by default.*/
+ virtual bool isValidDirectory(const QString &dirPath) const = 0;
+
+
+signals:
+ /**Emitted when the Version Control has finished importing a module from remote
+ repository
+ @param destinationDir The directory where the module has been fetched.*/
+ void finishedFetching(QString destinationDir);
+
+};
+
+/**
+Basic interface for providing info on file registered in a version control repository repository.
+*/
+class KDevVCSFileInfoProvider: public QObject
+{
+ Q_OBJECT
+public:
+ /**Constructor.
+ @param parent The parent VCS plugin.
+ @param name The name of a provider object.*/
+ KDevVCSFileInfoProvider(KDevVersionControl *parent, const char *name)
+ : QObject( parent, name ), m_owner(parent) {}
+
+ /**Gets the status for local files in the specified directory:
+ the info are collected locally so they are necessarily in sync with the repository
+
+ This is a <b>synchronous operation</b> (blocking).
+ @param dirPath The relative (to project dir) directory path to stat.
+ @return Status for all <b>registered</b> files.*/
+ virtual const VCSFileInfoMap *status(const QString &dirPath) = 0;
+
+ /**Starts a request for directory status to the remote repository.
+ Requests and answers are asynchronous.
+
+ This is an <b>asynchronous operation for requesting data</b>, so
+ for obvious reasons: the caller must connect the statusReady() signal and
+ check for the return value of this method.
+ @param dirPath The (relative to project directory) directory which status you are asking for.
+ @param callerData The pointer to some data you want the provider will return
+ to you when it has done.
+ @param recursive If false, retrieve information only for dirPath's immediate children.
+ @param checkRepos If true, contact remote repository and augment repository's status.
+ If false, retrieve only for local modification information.
+ @return true if the request has been successfully started, false otherwise.*/
+ virtual bool requestStatus( const QString &dirPath, void *callerData, bool recursive = true, bool checkRepos = true ) = 0;
+
+signals:
+ /**Emitted when the status request to remote repository has finished.
+ @param fileInfoMap The status for <b>registered in repository</b> files.
+ @param callerData The pointer to some data you want the provider will return
+ to you when it has done
+ @see requestStatus for to find out when this signal should be used.*/
+ void statusReady(const VCSFileInfoMap &fileInfoMap, void *callerData);
+
+protected:
+ /**@return The version control which owns this provider.*/
+ KDevVersionControl *owner() const { return m_owner; }
+
+private:
+ KDevVersionControl *m_owner;
+
+private:
+ KDevVCSFileInfoProvider( const KDevVCSFileInfoProvider & );
+ KDevVCSFileInfoProvider &operator=( const KDevVCSFileInfoProvider & );
+};
+
+#endif