diff options
| author | Darrell Anderson <humanreadable@yahoo.com> | 2014-03-02 20:05:33 +0100 | 
|---|---|---|
| committer | Slávek Banko <slavek.banko@axis.cz> | 2014-03-02 20:05:33 +0100 | 
| commit | 722ce1efbac31c61b1d4b13f7e075c9f311e3e73 (patch) | |
| tree | db1b6b28566e5fe9accb4a688f7257673cecb080 /lib/interfaces/tdevplugincontroller.h | |
| parent | afb74575caf7dd8ccb6c235b1c8d788e320c19da (diff) | |
| download | tdevelop-722ce1efbac31c61b1d4b13f7e075c9f311e3e73.tar.gz tdevelop-722ce1efbac31c61b1d4b13f7e075c9f311e3e73.zip | |
Finish renaming tdevelop components
Diffstat (limited to 'lib/interfaces/tdevplugincontroller.h')
| -rw-r--r-- | lib/interfaces/tdevplugincontroller.h | 119 | 
1 files changed, 119 insertions, 0 deletions
| diff --git a/lib/interfaces/tdevplugincontroller.h b/lib/interfaces/tdevplugincontroller.h new file mode 100644 index 00000000..ee44764d --- /dev/null +++ b/lib/interfaces/tdevplugincontroller.h @@ -0,0 +1,119 @@ +/* This file is part of the KDE project +   Copyright (C) 2004 Alexander Dymo <adymo@kdevelop.org> + +   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., 51 Franklin Street, Fifth Floor, +   Boston, MA 02110-1301, USA. +*/ +#ifndef TDEVPLUGINCONTROLLER_H +#define TDEVPLUGINCONTROLLER_H + +#include <tqobject.h> + +#include <kurl.h> +#include <ktrader.h> + +/** +@file tdevplugincontroller.h +TDevelop plugin controller interface. +*/ + +class TDevPlugin; +class ProfileEngine; + +/** +The base class for TDevelop plugin controller. +Plugin controller is responsible for quering, loading and unloading available plugins. +*/ +class TDevPluginController: public TQObject +{ +    Q_OBJECT +   +public: + +    /** +     * Returns a uniquely specified plugin. If it isn't already loaded, it will be. +     * Use with caution! See extension for parameter details. +     */ +    virtual TDevPlugin * loadPlugin( const TQString & serviceType, const TQString & constraint ) = 0; + +    /** +     * Unloads the plugin specified by @p plugin +     * @param plugin The plugin desktopEntryName of the plugin to unload +     */ +    virtual void unloadPlugin( const TQString & plugin ) = 0; + +    /**Unloads plugins specified by @p list. +    @param list The list of plugin names to unload. plugin name corresponds +    to the "Name" property in plugin .desktop file.*/ +    virtual void unloadPlugins(TQStringList const &list) = 0; + +    /**@return The list of currently loaded plugins.*/ +    virtual const TQValueList<TDevPlugin*> loadedPlugins() = 0; + +    /**Queries for the plugin which supports given service type. +    All already loaded plugins will be queried and the first one to support the service type +    will be returned. Any plugin can be an extension, only "ServiceTypes=..." entry is +    required in .desktop file for that plugin. +    @param serviceType The service type of an extension (like "TDevelop/SourceFormatter") +    @param constraint The constraint which is applied when quering for the service. This +    constraint is a usual TDETrader constraint statement (like "[X-TDevelop-Foo]=='MyFoo'"). +    @return A KDevelop extension plugin for given service type or 0 if no plugin supports it*/ +    virtual TDevPlugin *extension(const TQString &serviceType, const TQString &constraint = "") = 0; + +    /**Queries KDevelop services. Version is checked automatically +    by adding proper X-TDevelop-Version=N statement into the query. +    @param serviceType The service type to query, for example "TDevelop/Plugin" or +    "TDevelop/SourceFormatter." +    @param constraint A constraint for the service. Do not include plugin version number - it +    is done automatically. +    @return The list of plugin offers.*/ +    static TDETrader::OfferList query(const TQString &serviceType, const TQString &constraint); + +    /**Queries TDevelop plugins. Works like +    TDevPluginController::query with serviceType set to "TDevelop/Plugin". +    @param constraint A constraint for the service. Do not include plugin version number - it +    is done automatically. +    @return The list of plugin offers.*/ +    static TDETrader::OfferList queryPlugins(const TQString &constraint); + +    /**Reimplement this function only if your shell supports plugin profiles. +    @return The list of URLs to the profile resources (files) with given @p extension. +    @param nameFilter Name filter for files. @see TQDir::setNameFilter documentation +    for name filters syntax.*/ +    virtual KURL::List profileResources(const TQString &nameFilter); + +    /**Reimplement this function only if your shell supports plugin profiles. +    @return The list of URLs to the resources (files) with given @p extension. +    This list is obtained by a recursive search that process given profile +    and all it's subprofiles. +    @param nameFilter Name filter for files. @see TQDir::setNameFilter documentation +    for name filters syntax.*/ +    virtual KURL::List profileResourcesRecursive(const TQString &nameFilter); + +    /** @return The current Profile Engine  */ +    virtual ProfileEngine &engine() = 0; + +signals: +    /**Emitted when a plugin profile was changed (reloaded, other profile opened, etc.). +    Should work only on shells with plugin profiles support.*/ +    void profileChanged(); + +protected: +    /**Constructor.*/ +    TDevPluginController(); + +}; + +#endif | 
