QGIS/python/gui/layertree/qgslayertreeembeddedwidgetregistry.sip
Nyall Dawson a86b93e957 QgsLayerTreeEmbeddedWidgetRegistry is no longer a singleton
Moved the global instance to QgsGui::layerTreeEmbeddedWidgetRegistry()
2017-05-15 07:32:01 +10:00

72 lines
2.5 KiB
Plaintext

/** \ingroup gui
* \class QgsLayerTreeEmbeddedWidgetProvider
* Provider interface to be implemented in order to introduce new kinds of embedded widgets for use in layer tree.
* Embedded widgets are assigned per individual map layers and they are shown before any legend entries.
* @see QgsLayerTreeEmbeddedWidgetRegistry
* @note introduced in QGIS 2.16
*/
class QgsLayerTreeEmbeddedWidgetProvider
{
%TypeHeaderCode
#include <qgslayertreeembeddedwidgetregistry.h>
%End
public:
virtual ~QgsLayerTreeEmbeddedWidgetProvider();
//! Unique name of the provider (among other providers)
virtual QString id() const = 0;
//! Human readable name - may be translatable with tr()
virtual QString name() const = 0;
//! Factory to create widgets. The returned widget is owned by the caller.
//! The widgetIndex argument may be used to identify which widget is being
//! created (useful when using multiple widgets from the same provider for one layer).
virtual QWidget *createWidget( QgsMapLayer *layer, int widgetIndex ) = 0 /Factory/;
//! Whether it makes sense to use this widget for a particular layer
virtual bool supportsLayer( QgsMapLayer *layer ) = 0;
};
/** \ingroup gui
* \class QgsLayerTreeEmbeddedWidgetRegistry
* Registry of widgets that may be embedded into layer tree view.
* Embedded widgets are assigned per individual map layers and they are shown before any legend entries.
* Layer tree must have UseEmbeddedWidgets flag enabled in order to show assigned widgets.
*
* @see QgsLayerTreeEmbeddedWidgetRegistry
* @note introduced in QGIS 2.16
*/
class QgsLayerTreeEmbeddedWidgetRegistry
{
%TypeHeaderCode
#include <qgslayertreeembeddedwidgetregistry.h>
%End
public:
QgsLayerTreeEmbeddedWidgetRegistry();
~QgsLayerTreeEmbeddedWidgetRegistry();
/** Return list of all registered providers */
QStringList providers() const;
/** Get provider object from the provider's ID */
QgsLayerTreeEmbeddedWidgetProvider *provider( const QString &providerId ) const;
/** Register a provider, takes ownership of the object.
* Returns true on success, false if the provider is already registered. */
bool addProvider( QgsLayerTreeEmbeddedWidgetProvider *provider /Transfer/ );
/** Unregister a provider, the provider object is deleted.
* Returns true on success, false if the provider was not registered. */
bool removeProvider( const QString &providerId );
private:
QgsLayerTreeEmbeddedWidgetRegistry( const QgsLayerTreeEmbeddedWidgetRegistry &other );
};