diff --git a/src/plasma/plasma.h b/src/plasma/plasma.h index e1779352f..3f235ddb9 100644 --- a/src/plasma/plasma.h +++ b/src/plasma/plasma.h @@ -1,315 +1,315 @@ /* * Copyright 2005 by Aaron Seigo * * This program 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, 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 Library General Public * License along with this program; if not, write to the * Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef PLASMA_DEFS_H #define PLASMA_DEFS_H /** @header plasma/plasma.h */ #include #include class QAction; /** * Namespace for everything in libplasma */ namespace Plasma { /** - * @class Types + * @class Types plasma/plasma.h * @short Enums and constants used in Plasma * */ class PLASMA_EXPORT Types : public QObject { Q_OBJECT public: ~Types(); /** * The Constraint enumeration lists the various constraints that Plasma * objects have managed for them and which they may wish to react to, * for instance in Applet::constraintsUpdated */ enum Constraint { NoConstraint = 0, /**< No constraint; never passed in to Applet::constraintsEvent on its own */ FormFactorConstraint = 1, /**< The FormFactor for an object */ LocationConstraint = 2, /**< The Location of an object */ ScreenConstraint = 4, /**< Which screen an object is on */ ImmutableConstraint = 8, /**< the immutability (locked) nature of the applet changed */ StartupCompletedConstraint = 16, /**< application startup has completed */ ContextConstraint = 32, /**< the context (e.g. activity) has changed */ UiReadyConstraint = 64, /**< The ui has been completely loaded */ // (FIXME: merged with StartupCompletedConstraint?) AllConstraints = FormFactorConstraint | LocationConstraint | ScreenConstraint | ImmutableConstraint }; Q_ENUM(Constraint) Q_DECLARE_FLAGS(Constraints, Constraint) /** * The FormFactor enumeration describes how a Plasma::Applet should arrange * itself. The value is derived from the container managing the Applet * (e.g. in Plasma, a Corona on the desktop or on a panel). **/ enum FormFactor { Planar = 0, /**< The applet lives in a plane and has two degrees of freedom to grow. Optimize for desktop, laptop or tablet usage: a high resolution screen 1-3 feet distant from the viewer. */ MediaCenter, /**< As with Planar, the applet lives in a plane but the interface should be optimized for medium-to-high resolution screens that are 5-15 feet distant from the viewer. Sometimes referred to as a "ten foot interface".*/ Horizontal, /**< The applet is constrained vertically, but can expand horizontally. */ Vertical, /**< The applet is constrained horizontally, but can expand vertically. */ Application /**< The Applet lives in a plane and should be optimized to look as a full application, for the desktop or the particular device. */ }; Q_ENUM(FormFactor) /** * This enumeration describes the type of the Containment. * DesktopContainments represent main containments that will own a screen in a mutually exclusive fashion, * while PanelContainments are accessories which can be present multiple per screen. */ enum ContainmentType { NoContainmentType = -1, /**< @internal */ DesktopContainment = 0, /**< A desktop containment */ PanelContainment, /**< A desktop panel */ CustomContainment = 127, /**< A containment that is neither a desktop nor a panel but something application specific */ CustomPanelContainment = 128, /**< A customized desktop panel */ CustomEmbeddedContainment = 129 /**< A customized containment embedded in another applet */ }; Q_ENUM(ContainmentType) /** * A descriptrive type for QActions, to help categorizing them when presented to the user */ enum ActionType { AddAction = 0, /**< The action will cause something new being created*/ ConfigureAction = 100, /**< The Action will make some kind of configuration ui to appear */ ControlAction = 200, /**< Generic control, similar to ConfigureAction TODO: better doc */ MiscAction = 300, /**< A type of action that doesn't fit in the oher categories */ DestructiveAction = 400, /**< A dangerous action, such as deletion of objects, plasmoids and files. They are intended to be shown separed from other actions */ UserAction = DestructiveAction + 1000 /**< If new types are needed in a C++ implementation, define them as ids more than UserAction*/ }; Q_ENUM(ActionType) /** * The Direction enumeration describes in which direction, relative to the * Applet (and its managing container), popup menus, expanders, balloons, * message boxes, arrows and other such visually associated widgets should * appear in. This is usually the oposite of the Location. **/ enum Direction { Down = 0, /**< Display downards */ Up, /**< Display upwards */ Left, /**< Display to the left */ Right /**< Display to the right */ }; Q_ENUM(Direction) /** * The Location enumeration describes where on screen an element, such as an * Applet or its managing container, is positioned on the screen. **/ enum Location { Floating = 0, /**< Free floating. Neither geometry or z-ordering is described precisely by this value. */ Desktop, /**< On the planar desktop layer, extending across the full screen from edge to edge */ FullScreen, /**< Full screen */ TopEdge, /**< Along the top of the screen*/ BottomEdge, /**< Along the bottom of the screen*/ LeftEdge, /**< Along the left side of the screen */ RightEdge /**< Along the right side of the screen */ }; Q_ENUM(Location) /** * The position enumeration * **/ enum Position { LeftPositioned, /**< Positioned left */ RightPositioned, /**< Positioned right */ TopPositioned, /**< Positioned top */ BottomPositioned, /**< Positioned bottom */ CenterPositioned /**< Positioned in the center */ }; Q_ENUM(Position) /** * The popup position enumeration relatively to his attached widget * **/ enum PopupPlacement { FloatingPopup = 0, /**< Free floating, non attached popup */ TopPosedLeftAlignedPopup, /**< Popup positioned on the top, aligned to the left of the wigdet */ TopPosedRightAlignedPopup, /**< Popup positioned on the top, aligned to the right of the widget */ LeftPosedTopAlignedPopup, /**< Popup positioned on the left, aligned to the top of the wigdet */ LeftPosedBottomAlignedPopup, /**< Popup positioned on the left, aligned to the bottom of the widget */ BottomPosedLeftAlignedPopup, /**< Popup positioned on the bottom, aligned to the left of the wigdet */ BottomPosedRightAlignedPopup, /**< Popup positioned on the bottom, aligned to the right of the widget */ RightPosedTopAlignedPopup, /**< Popup positioned on the right, aligned to the top of the wigdet */ RightPosedBottomAlignedPopup /**< Popup positioned on the right, aligned to the bottom of the widget */ }; Q_ENUM(PopupPlacement) /** * Flip enumeration */ enum FlipDirection { NoFlip = 0, /**< Do not flip */ HorizontalFlip = 1, /**< Flip horizontally */ VerticalFlip = 2 /**< Flip vertically */ }; Q_ENUM(FlipDirection) Q_DECLARE_FLAGS(Flip, FlipDirection) /** * Possible timing alignments **/ enum IntervalAlignment { NoAlignment = 0, /**< No alignment **/ AlignToMinute, /**< Align to the minute **/ AlignToHour /**< Align to the hour **/ }; Q_ENUM(IntervalAlignment) /** * Defines the immutability of items like applets, corona and containments * they can be free to modify, locked down by the user or locked down by the * system (e.g. kiosk setups). */ enum ImmutabilityType { Mutable = 1, /**< The item can be modified in any way **/ UserImmutable = 2, /**< The user has requested a lock down, and can undo the lock down at any time **/ SystemImmutable = 4 /**< the item is locked down by the system, the user can't unlock it **/ }; Q_ENUM(ImmutabilityType) /** * The ComonentType enumeration refers to the various types of components, * or plugins, supported by plasma. */ enum ComponentType { AppletComponent = 1, /**< Plasma::Applet based plugins **/ DataEngineComponent = 2, /**< Plasma::DataEngine based plugins **/ ContainmentComponent = 4,/**< Plasma::Containment based plugins **/ WallpaperComponent = 8, /**< Plasma::Wallpaper based plugins **/ GenericComponent = 16 /** Generic repositories of files, usually they keep QML files and their assets **/ }; Q_ENUM(ComponentType) Q_DECLARE_FLAGS(ComponentTypes, ComponentType) enum MarginEdge { TopMargin = 0, /**< The top margin **/ BottomMargin, /**< The bottom margin **/ LeftMargin, /**< The left margin **/ RightMargin /**< The right margin **/ }; Q_ENUM(MarginEdge) /** * Status of an applet * @since 4.3 */ enum ItemStatus { UnknownStatus = 0, /**< The status is unknown **/ PassiveStatus = 1, /**< The Item is passive **/ ActiveStatus = 2, /**< The Item is active **/ NeedsAttentionStatus = 3, /**< The Item needs attention **/ RequiresAttentionStatus = 4, /**< The Item needs persistent attention **/ AcceptingInputStatus = 5, /**< The Item is accepting input **/ //FIXME KF6: this should be the smallest status HiddenStatus = 6 /**< The Item will be hidden totally **/ }; Q_ENUM(ItemStatus) enum TrustLevel { UnverifiableTrust = 0, /**< The trust of the object can not be verified, usually because no trust information (e.g. a cryptographic signature) was provided */ CompletelyUntrusted, /**< The signature is broken/expired/false */ UnknownTrusted, /**< The signature is valid, but the key is unknown */ UserTrusted, /**< The signature is valid and made with a key signed by one of the user's own keys*/ SelfTrusted, /**< The signature is valid and made with one of the user's own keys*/ FullyTrusted, /**< The signature is valid and made with a key signed by the vendor's key*/ UltimatelyTrusted /**< The signature is valid and made with the vendor's key*/ }; Q_ENUM(TrustLevel) /** * Description on how draw a background for the applet */ enum BackgroundHints { NoBackground = 0, /**< Not drawing a background under the applet, the applet has its own implementation */ StandardBackground = 1, /**< The standard background from the theme is drawn */ TranslucentBackground = 2, /**< An alternate version of the background is drawn, usually more translucent */ DefaultBackground = StandardBackground /**< Default settings: both standard background */ }; Q_ENUM(BackgroundHints) private: Types(QObject *parent = 0); }; /** * Converts a location to a direction. Handy for figuring out which way to send a popup based on * location or to point arrows and other directional items. * * @param location the location of the container the element will appear in * @return the visual direction the element should be oriented in **/ PLASMA_EXPORT Types::Direction locationToDirection(Types::Location location); /** * Converts a location to the direction facing it. Handy for figuring out which way to collapse * a popup or to point arrows at the item itself. * * @param location the location of the container the element will appear in * @return the visual direction the element should be oriented in **/ PLASMA_EXPORT Types::Direction locationToInverseDirection(Types::Location location); } // Plasma namespace Q_DECLARE_OPERATORS_FOR_FLAGS(Plasma::Types::Constraints) Q_DECLARE_OPERATORS_FOR_FLAGS(Plasma::Types::Flip) Q_DECLARE_OPERATORS_FOR_FLAGS(Plasma::Types::ComponentTypes) #endif // multiple inclusion guard diff --git a/src/plasma/pluginloader.h b/src/plasma/pluginloader.h index d096684b2..7678ae4d1 100644 --- a/src/plasma/pluginloader.h +++ b/src/plasma/pluginloader.h @@ -1,512 +1,514 @@ /* * Copyright 2010 by Ryan Rix * * This program 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, 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 Library General Public * License along with this program; if not, write to the * Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef PLUGIN_LOADER_H #define PLUGIN_LOADER_H #include #include #include namespace Plasma { class Applet; class Containment; class ContainmentActions; class DataEngine; class Service; class PluginLoaderPrivate; //TODO: // * add loadWallpaper // * add KPluginInfo listing support for Containments (already loaded via the applet loading code) /** + * @class PluginLoader plasma/pluginloader.h + * * This is an abstract base class which defines an interface to which Plasma's * Applet Loading logic can communicate with a parent application. The plugin loader * must be set before any plugins are loaded, otherwise (for safety reasons), the * default PluginLoader implementation will be used. The reimplemented version should * not do more than simply returning a loaded plugin. It should not init() it, and it should not * hang on to it. The associated methods will be called only when a component of Plasma * needs to load a _new_ plugin. (e.g. DataEngine does its own caching). * * @author Ryan Rix * @since 4.6 **/ class PLASMA_EXPORT PluginLoader { public: /** * Load an Applet plugin. * * @param name the plugin name, as returned by KPluginInfo::pluginName() * @param appletId unique ID to assign the applet, or zero to have one * assigned automatically. * @param args to send the applet extra arguments * @return a pointer to the loaded applet, or 0 on load failure **/ Applet *loadApplet(const QString &name, uint appletId = 0, const QVariantList &args = QVariantList()); /** * Load a dataengine plugin. * * @param name the name of the engine * @return the dataengine that was loaded, or the NullEngine on failure. **/ DataEngine *loadDataEngine(const QString &name); /** * @return a listing of all known dataengines by name * * @param parentApp the application to filter dataengines on. Uses the * X-KDE-ParentApp entry (if any) in the plugin info. * The default value of QString() will result in a * list containing only dataengines not specifically * registered to an application. */ static QStringList listAllEngines(const QString &parentApp = QString()); /** * Returns a list of all known dataengines. * * @param parentApp the application to filter dataengines on. Uses the * X-KDE-ParentApp entry (if any) in the plugin info. * The default value of QString() will result in a * list containing only dataengines not specifically * registered to an application. * @return list of dataengines **/ static KPluginInfo::List listEngineInfo(const QString &parentApp = QString()); /** * Returns a list of all known dataengines filtering by category. * * @param category the category to filter dataengines on. Uses the * X-KDE-PluginInfo-Category entry (if any) in the * plugin info. The value of QString() will * result in a list of dataengines with an empty category. * * @param parentApp the application to filter dataengines on. Uses the * X-KDE-ParentApp entry (if any) in the plugin info. * The default value of QString() will result in a * list containing only dataengines not specifically * registered to an application. * @return list of dataengines * @since 4.3 **/ static KPluginInfo::List listEngineInfoByCategory(const QString &category, const QString &parentApp = QString()); /** * Load a Service plugin. * * @param name the plugin name of the service to load * @param args a list of arguments to supply to the service plugin when loading it * @param parent the parent object, if any, for the service * * @return a Service object, unlike Plasma::Service::loadService, this can return null. **/ Service *loadService(const QString &name, const QVariantList &args, QObject *parent = 0); /** * Load a ContainmentActions plugin. * * Returns a pointer to the containmentactions if successful. * The caller takes responsibility for the containmentactions, including * deleting it when no longer needed. * * @param parent the parent containment. @since 4.6 null is allowed. * @param name the plugin name, as returned by KPluginInfo::pluginName() * @param args to send the containmentactions extra arguments * @return a ContaimentActions object **/ ContainmentActions *loadContainmentActions(Containment *parent, const QString &containmentActionsName, const QVariantList &args = QVariantList()); /** * Load a Package plugin. * * @param name the plugin name of the package to load * @param specialization used to find script extensions for the given format, e.g. "QML" for "Plasma/Applet" * * @return a Package object matching name, or an invalid package on failure * @deprecated since 5.29 use KPackage::PackageLoader::loadPackage **/ #ifndef PLASMA_NO_DEPRECATED PLASMA_DEPRECATED Package loadPackage(const QString &packageFormat, const QString &specialization = QString()); #endif /** * Returns a list of all known applets. * This may skip applets based on security settings and ExcludeCategories in the application's config. * * @param category Only applets matchin this category will be returned. * Useful in conjunction with knownCategories. * If "Misc" is passed in, then applets without a * Categories= entry are also returned. * If an empty string is passed in, all applets are * returned. * @param parentApp the application to filter applets on. Uses the * X-KDE-ParentApp entry (if any) in the plugin info. * The default value of QString() will result in a * list containing only applets not specifically * registered to an application. * @return list of applets * * @deprecated use listAppletMetaData. Doesn't support metadata.json packages. **/ PLASMA_DEPRECATED KPluginInfo::List listAppletInfo(const QString &category, const QString &parentApp = QString()); /** * Returns a list of all known applets. * This may skip applets based on security settings and ExcludeCategories in the application's config. * * @param category Only applets matchin this category will be returned. * Useful in conjunction with knownCategories. * If "Misc" is passed in, then applets without a * Categories= entry are also returned. * If an empty string is passed in, all applets are * returned. * @param parentApp the application to filter applets on. Uses the * X-KDE-ParentApp entry (if any) in the plugin info. * The default value of QString() will result in a * list containing only applets not specifically * registered to an application. * @return list of applets * * @since 5.28 **/ QList listAppletMetaData(const QString &category, const QString &parentApp = QString()); /** * Returns a list of all known applets associated with a certain mimetype. * * @return list of applets **/ KPluginInfo::List listAppletInfoForMimeType(const QString &mimetype); /** * Returns a list of all known applets associated with a certain URL. * * @return list of applets **/ KPluginInfo::List listAppletInfoForUrl(const QUrl &url); /** * Returns a list of all the categories used by installed applets. * * @param parentApp the application to filter applets on. Uses the * X-KDE-ParentApp entry (if any) in the plugin info. * The default value of QString() will result in a * list containing only applets not specifically * registered to an application. * @return list of categories * @param visibleOnly true if it should only return applets that are marked as visible */ QStringList listAppletCategories(const QString &parentApp = QString(), bool visibleOnly = true); /** * Sets the list of custom categories that are used in addition to the default * set of categories known to libplasma for applets. * @param categories a list of categories * @since 4.3 */ void setCustomAppletCategories(const QStringList &categories); /** * @return the list of custom categories known to libplasma * @since 4.3 */ QStringList customAppletCategories() const; /** * Get the category of the given applet * * @param appletName the name of the applet */ QString appletCategory(const QString &appletName); /** * Returns a list of all known containments. * * @param category Only containments matching this category will be returned. * Useful in conjunction with knownCategories. * If "Miscellaneous" is passed in, then containments without a * Categories= entry are also returned. * If an empty string is passed in, all containments are * returned. * @param parentApp the application to filter containments on. Uses the * X-KDE-ParentApp entry (if any) in the plugin info. * The default value of QString() will result in a * list containing only containments not specifically * registered to an application. * @return list of containments **/ static KPluginInfo::List listContainments(const QString &category = QString(), const QString &parentApp = QString()); /** * Returns a list of all known containments that match the parameters. * * @param type Only containments with this string in X-Plasma-ContainmentType * in their .desktop files will be returned. Common values are panel and * desktop * @param category Only containments matchin this category will be returned. * Useful in conjunction with knownCategories. * If "Miscellaneous" is passed in, then containments without a * Categories= entry are also returned. * If an empty string is passed in, all containments are * returned. * @param parentApp the application to filter containments on. Uses the * X-KDE-ParentApp entry (if any) in the plugin info. * The default value of QString() will result in a * list containing only containments not specifically * registered to an application. * @return list of containments **/ static KPluginInfo::List listContainmentsOfType(const QString &type, const QString &category = QString(), const QString &parentApp = QString()); /** * @return a list of all known types of containments on this system */ static QStringList listContainmentTypes(); /** * Returns a list of all known containments associated with a certain MimeType * * @return list of containments **/ static KPluginInfo::List listContainmentsForMimeType(const QString &mimeType); /** * Returns a list of all known dataengines. * * @param parentApp the application to filter dataengines on. Uses the * X-KDE-ParentApp entry (if any) in the plugin info. * The default value of QString() will result in a * list containing only dataengines not specifically * registered to an application. * @return list of dataengines **/ KPluginInfo::List listDataEngineInfo(const QString &parentApp = QString()); /** * Returns a list of all known ContainmentActions. * * @param parentApp the application to filter ContainmentActions on. Uses the * X-KDE-ParentApp entry (if any) in the plugin info. * The default value of QString() will result in a * list containing only ContainmentActions not specifically * registered to an application. * @return list of ContainmentActions **/ KPluginInfo::List listContainmentActionsInfo(const QString &parentApp); /** * Set the plugin loader which will be queried for all loads. * * @param loader A subclass of PluginLoader which will be supplied * by the application **/ static void setPluginLoader(PluginLoader *loader); /** * Return the active plugin loader **/ static PluginLoader *self(); protected: /** * A re-implementable method that allows subclasses to override * the default behaviour of loadApplet. If the applet requested is not recognized, * then the implementation should return a NULL pointer. This method is called * by loadApplet prior to attempting to load an applet using the standard Plasma * plugin mechanisms. * * @param name the plugin name, as returned by KPluginInfo::pluginName() * @param appletId unique ID to assign the applet, or zero to have one * assigned automatically. * @param args to send the applet extra arguments * @return a pointer to the loaded applet, or 0 on load failure **/ virtual Applet *internalLoadApplet(const QString &name, uint appletId = 0, const QVariantList &args = QVariantList()); /** * A re-implementable method that allows subclasses to override * the default behaviour of loadDataEngine. If the engine requested is not recognized, * then the implementation should return a NULL pointer. This method is called * by loadDataEngine prior to attempting to load a DataEgine using the standard Plasma * plugin mechanisms. * * @param name the name of the engine * @return the data engine that was loaded, or the NullEngine on failure. **/ virtual DataEngine *internalLoadDataEngine(const QString &name); /** * A re-implementable method that allows subclasses to override * the default behaviour of loadService. If the service requested is not recognized, * then the implementation should return a NULL pointer. This method is called * by loadService prior to attempting to load a Service using the standard Plasma * plugin mechanisms. * * @param name the plugin name of the service to load * @param args a list of arguments to supply to the service plugin when loading it * @param parent the parent object, if any, for the service * * @return a Service object, unlike Plasma::Service::loadService, this can return null. **/ virtual Service *internalLoadService(const QString &name, const QVariantList &args, QObject *parent = 0); /** * A re-implementable method that allows subclasses to override * the default behaviour of loadContainmentActions. If the ContainmentActions requested is not recognized, * then the implementation should return a NULL pointer. This method is called * by loadService prior to attempting to load a Service using the standard Plasma * plugin mechanisms. * * Returns a pointer to the containmentactions if successful. * The caller takes responsibility for the containmentactions, including * deleting it when no longer needed. * * @param parent the parent containment. @since 4.6 null is allowed. * @param name the plugin name, as returned by KPluginInfo::pluginName() * @param args to send the containmentactions extra arguments * @return a ContaimentActions object **/ virtual ContainmentActions *internalLoadContainmentActions(Containment *parent, const QString &containmentActionsName, const QVariantList &args); /** * A re-implementable method that allows subclasses to override * the default behaviour of loadPackage. If the service requested is not recognized, * then the implementation should return a NULL pointer. This method is called * by loadService prior to attempting to load a Service using the standard Plasma * plugin mechanisms. * * @param name the plugin name of the service to load * @param args a list of arguments to supply to the service plugin when loading it * @param parent the parent object, if any, for the service * * @return a Service object, unlike Plasma::Service::loadService, this can return null. * @deprecated since 5.29 **/ #ifndef PLASMA_NO_DEPRECATED virtual PLASMA_DEPRECATED Package internalLoadPackage(const QString &name, const QString &specialization); #endif /** * A re-implementable method that allows subclasses to provide additional applets * for listAppletInfo. If the application has no applets to give to the application, * then the implementation should return an empty list. * * This method is called by listAppletInfo prior to generating the list of applets installed * on the system using the standard Plasma plugin mechanisms, and will try to find .desktop * files for your applets. * * @param category Only applets matching this category will be returned. * Useful in conjunction with knownCategories. * If "Misc" is passed in, then applets without a * Categories= entry are also returned. * If an empty string is passed in, all applets are * returned. * @return list of applets **/ virtual KPluginInfo::List internalAppletInfo(const QString &category) const; /** * A re-implementable method that allows subclasses to provide additional dataengines * for DataEngine::listDataEngines. * * @return list of dataengine info, or an empty list if none **/ virtual KPluginInfo::List internalDataEngineInfo() const; /** * Returns a list of all known Service implementations * * @return list of Service info, or an empty list if none */ virtual KPluginInfo::List internalServiceInfo() const; /** * Returns a list of all known ContainmentActions implementations * * @return list of ContainmentActions info, or an empty list if none */ virtual KPluginInfo::List internalContainmentActionsInfo() const; /** * Standardized mechanism for providing internal applets by install .desktop files * in $APPPDATA/plasma/internal/applets/ * * For applications that do this, internalAppletInfo can be implemented as a one-liner * call to this method. * * @param category Only applets matching this category will be returned. * Useful in conjunction with knownCategories. * If "Misc" is passed in, then applets without a * Categories= entry are also returned. * If an empty string is passed in, all applets are * returned. * @return list of applets, or an empty list if none */ KPluginInfo::List standardInternalAppletInfo(const QString &category) const; /** * Standardized mechanism for providing internal dataengines by install .desktop files * in $APPPDATA/plasma/internal/dataengines/ * * For applications that do this, internalDataEngineInfo can be implemented as a one-liner * call to this method. * * @return list of dataengines */ KPluginInfo::List standardInternalDataEngineInfo() const; /** * Standardized mechanism for providing internal services by install .desktop files * in $APPPDATA/plasma/internal/services/ * * For applications that do this, internalServiceInfo can be implemented as a one-liner * call to this method. * * @return list of services */ KPluginInfo::List standardInternalServiceInfo() const; PluginLoader(); virtual ~PluginLoader(); private: bool isPluginVersionCompatible(KPluginLoader &loader); PluginLoaderPrivate *const d; }; } Q_DECLARE_METATYPE(Plasma::PluginLoader *) #endif