/************************************************************************
 * This file has been generated automatically from                      *
 *                                                                      *
 * src/gui/symbology/qgssvgselectorwidget.h                             *
 *                                                                      *
 * Do not edit manually ! Edit header and run scripts/sipify.pl again   *
 ************************************************************************/








class QgsSvgSelectorFilterModel : QSortFilterProxyModel
{
%Docstring(signature="appended")
A model for displaying SVG files with a preview icon which can be filtered by file name.
Population of the model is performed in a background thread to ensure that
initial creation of the model is responsive and does not block the GUI.

.. versionadded:: 3.20
%End

%TypeHeaderCode
#include "qgssvgselectorwidget.h"
%End
  public:

    QgsSvgSelectorFilterModel( QObject *parent /TransferThis/, const QString &path = QString(), int iconSize = 30 );
%Docstring
Constructor for creating a model for SVG files in a specific path.

:param parent: parent object
:param path: initial path, which is recursively searched
:param iconSize: desired size of SVG icons to create
%End

};

class QgsSvgSelectorListModel : QAbstractListModel
{
%Docstring(signature="appended")
A model for displaying SVG files with a preview icon. Population of the model is performed in
a background thread to ensure that initial creation of the model is responsive and does
not block the GUI.
%End

%TypeHeaderCode
#include "qgssvgselectorwidget.h"
%End
  public:

    QgsSvgSelectorListModel( QObject *parent /TransferThis/, int iconSize = 30 );
%Docstring
Constructor for QgsSvgSelectorListModel. All SVGs in folders from the application SVG
search paths will be shown.

:param parent: parent object
:param iconSize: desired size of SVG icons to create
%End

    QgsSvgSelectorListModel( QObject *parent /TransferThis/, const QString &path, int iconSize = 30 );
%Docstring
Constructor for creating a model for SVG files in a specific path.

:param parent: parent object
:param path: initial path, which is recursively searched
:param iconSize: desired size of SVG icons to create
%End

    virtual int rowCount( const QModelIndex &parent = QModelIndex() ) const;

    virtual QVariant data( const QModelIndex &index, int role = Qt::DisplayRole ) const;


  protected:

};


class QgsSvgSelectorGroupsModel : QStandardItemModel
{
%Docstring(signature="appended")
A model for displaying SVG search paths. Population of the model is performed in
a background thread to ensure that initial creation of the model is responsive and does
not block the GUI.
%End

%TypeHeaderCode
#include "qgssvgselectorwidget.h"
%End
  public:
    QgsSvgSelectorGroupsModel( QObject *parent /TransferThis/ );
    ~QgsSvgSelectorGroupsModel();

};

class QgsSvgSelectorWidget : QWidget
{

%TypeHeaderCode
#include "qgssvgselectorwidget.h"
%End
  public:

    QgsSvgSelectorWidget( QWidget *parent /TransferThis/ = 0 );
%Docstring
Constructor for QgsSvgSelectorWidget
%End

    void initParametersModel( const QgsExpressionContextGenerator *generator, QgsVectorLayer *layer = 0 );
%Docstring
Initialize the parameters model so the context and the layer are referenced.

.. versionadded:: 3.18
%End

    QString currentSvgPath() const;

    QgsPictureSourceLineEditBase *sourceLineEdit() const;
%Docstring
Returns the source line edit

.. versionadded:: 3.16
%End

    void setAllowParameters( bool allow );
%Docstring
Defines if the group box to fill parameters is visible

.. versionadded:: 3.18
%End

    bool allowParamerters() const;
%Docstring
Returns if the group box to fill parameters is visible

.. versionadded:: 3.18
%End

    void setBrowserVisible( bool visible );
%Docstring
Defines if the SVG browser should be visible

.. versionadded:: 3.20
%End

    bool browserVisible() const;
%Docstring
Returns if the SVG browser should be visible

.. versionadded:: 3.20
%End

    QgsPropertyOverrideButton *propertyOverrideToolButton() const;
%Docstring
Returns the property override tool button of the file line edit

.. versionadded:: 3.20
%End

  public slots:
    void setSvgPath( const QString &svgPath );
%Docstring
Accepts absolute paths
%End

    void setSvgParameters( const QMap<QString, QgsProperty> &parameters );
%Docstring
Sets the dynamic parameters

.. versionadded:: 3.18
%End

  signals:
    void svgSelected( const QString &path );

    void svgParametersChanged( const QMap<QString, QgsProperty> &parameters );
%Docstring
Emitted when the parameters have changed

.. versionadded:: 3.18
%End

  protected:
    void populateList();

};

class QgsSvgSelectorDialog : QDialog
{

%TypeHeaderCode
#include "qgssvgselectorwidget.h"
%End
  public:

    QgsSvgSelectorDialog( QWidget *parent /TransferThis/ = 0,
                          Qt::WindowFlags fl = QgsGuiUtils::ModalDialogFlags,
                          QDialogButtonBox::StandardButtons buttons = QDialogButtonBox::Close | QDialogButtonBox::Ok,
                          Qt::Orientation orientation = Qt::Horizontal );
%Docstring
Constructor for QgsSvgSelectorDialog.
%End

    QgsSvgSelectorWidget *svgSelector();
%Docstring
Returns pointer to the embedded SVG selector widget
%End

  protected:
};

/************************************************************************
 * This file has been generated automatically from                      *
 *                                                                      *
 * src/gui/symbology/qgssvgselectorwidget.h                             *
 *                                                                      *
 * Do not edit manually ! Edit header and run scripts/sipify.pl again   *
 ************************************************************************/
