/** \ingroup gui * \class QgsMapLayerConfigWidgetFactory * \note added in QGIS 2.16 * Factory class for creating custom map layer property pages */ class QgsMapLayerConfigWidgetFactory { %TypeHeaderCode #include %End public: /** Constructor */ QgsMapLayerConfigWidgetFactory(); /** Constructor */ QgsMapLayerConfigWidgetFactory( const QString& title, const QIcon& icon ); /** Destructor */ virtual ~QgsMapLayerConfigWidgetFactory(); /** * @brief The icon that will be shown in the UI for the panel. * @return A QIcon for the panel icon. */ virtual QIcon icon() const; /** * Set the icon for the factory object. * @param icon The icon to show in the interface. */ void setIcon( const QIcon& icon ); /** * @brief The title of the panel. * @note This may or may not be shown to the user. * @return Title of the panel */ virtual QString title() const; /** * Set the title for the interface * @note Not all users may show this as a label * e.g style dock uses this as a tooltip. * @param title The title to set. */ void setTitle( const QString& title ); /** * Flag if widget is supported for use in style dock. * @return True if supported */ virtual bool supportsStyleDock() const; /** * Set support flag for style dock * @param supports True if this widget is supported in the style dock. */ void setSupportsStyleDock( bool supports ); /** * Flag if widget is supported for use in layer properties dialog. * @return True if supported */ virtual bool supportLayerPropertiesDialog() const; /** * Set support flag for style dock * @param supports True if this widget is supported in the style dock. */ void setSupportLayerPropertiesDialog( bool supports ); /** * @brief Check if the layer is supported for this widget. * @return True if this layer is supported for this widget */ virtual bool supportsLayer( QgsMapLayer *layer ) const; /** * @brief Factory fucntion to create the widget on demand as needed by the dock. * @note This function is called each time the panel is selected. Keep it light for better UX. * @param layer The active layer in the dock. * @param canvas The map canvas. * @param dockWidget True of the widget will be shown a dock style widget. * @param parent The parent of the widget. * @return A new QgsMapStylePanel which is shown in the map style dock. */ virtual QgsMapLayerConfigWidget* createWidget( QgsMapLayer* layer, QgsMapCanvas *canvas, bool dockWidget = true, QWidget* parent /TransferThis/ = 0 ) const = 0 /Factory/; };