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







class QgsProcessingAlgorithmDialogBase : QDialog, QgsProcessingParametersGenerator, QgsProcessingContextGenerator
{
%Docstring(signature="appended")
Base class for processing algorithm dialogs.

.. note::

   This is not considered stable API and may change in future QGIS versions.
%End

%TypeHeaderCode
#include "qgsprocessingalgorithmdialogbase.h"
%End
  public:
    enum LogFormat /BaseType=IntEnum/
    {
      FormatPlainText,
      FormatHtml,
    };

    enum class DialogMode /BaseType=IntEnum/
    {
      Single,
      Batch,
    };

    QgsProcessingAlgorithmDialogBase( QWidget *parent /TransferThis/ = 0, Qt::WindowFlags flags = Qt::WindowFlags(), QgsProcessingAlgorithmDialogBase::DialogMode mode = QgsProcessingAlgorithmDialogBase::DialogMode::Single );
%Docstring
Constructor for QgsProcessingAlgorithmDialogBase.
%End
    ~QgsProcessingAlgorithmDialogBase();

    void setAlgorithm( QgsProcessingAlgorithm *algorithm /Transfer/ );
%Docstring
Sets the ``algorithm`` to run in the dialog.

Ownership of the algorithm instance is transferred to the dialog.

.. seealso:: :py:func:`algorithm`
%End

    QgsProcessingAlgorithm *algorithm();
%Docstring
Returns the algorithm running in the dialog.

.. seealso:: :py:func:`setAlgorithm`
%End

    void setMainWidget( QgsPanelWidget *widget /Transfer/ );
%Docstring
Sets the main ``widget`` for the dialog, usually a panel for configuring
algorithm parameters.

.. seealso:: :py:func:`mainWidget`
%End

    QgsPanelWidget *mainWidget();
%Docstring
Returns the main widget for the dialog, usually a panel for configuring
algorithm parameters.

.. seealso:: :py:func:`setMainWidget`
%End

    void showLog();
%Docstring
Switches the dialog to the log page.
%End

    bool wasExecuted() const;
%Docstring
Returns ``True`` if an algorithm was executed in the dialog.

.. seealso:: :py:func:`results`

.. seealso:: :py:func:`setExecuted`
%End

    QVariantMap results() const;
%Docstring
Returns the results returned by the algorithm executed.

.. seealso:: :py:func:`wasExecuted`

.. seealso:: :py:func:`setResults`
%End

    QgsProcessingFeedback *createFeedback() /Factory/;
%Docstring
Creates a new processing feedback object, automatically connected to the
appropriate slots in this dialog.
%End

    void saveLogToFile( const QString &path, LogFormat format = FormatPlainText );
%Docstring
Saves the log contents to a text file (specified by the file ``path``),
in the given ``format``.

.. seealso:: :py:func:`saveLog`

.. versionadded:: 3.2
%End

    Qgis::ProcessingLogLevel logLevel() const;
%Docstring
Returns the logging level to use when running algorithms from the
dialog.

.. seealso:: :py:func:`setLogLevel`

.. versionadded:: 3.20
%End

    void setLogLevel( Qgis::ProcessingLogLevel level );
%Docstring
Sets the logging ``level`` to use when running algorithms from the
dialog.

.. seealso:: :py:func:`logLevel`

.. versionadded:: 3.20
%End

    virtual void setParameters( const QVariantMap &values );
%Docstring
Sets the parameter ``values`` to show in the dialog.

.. versionadded:: 3.24
%End

  public slots:

    void reportError( const QString &error, bool fatalError );
%Docstring
Reports an ``error`` string to the dialog's log.

If ``fatalError`` is ``True``, the error prevented the algorithm from
executing.
%End

    void pushWarning( const QString &warning );
%Docstring
Pushes a warning information string to the dialog's log.
%End

    void pushInfo( const QString &info );
%Docstring
Pushes an information string to the dialog's log.
%End

    void pushFormattedMessage( const QString &html );
%Docstring
Pushes a pre-formatted message to the dialog's log

This can be used to push formatted HTML messages to the dialog.

.. versionadded:: 3.36
%End

    void pushDebugInfo( const QString &message );
%Docstring
Pushes a debug info string to the dialog's log.
%End

    void pushCommandInfo( const QString &info );
%Docstring
Pushes command info to the dialog's log.
%End

    void setPercentage( double percent );
%Docstring
Sets the percentage progress for the dialog, between 0 and 100.
%End

    void setProgressText( const QString &text );
%Docstring
Sets a progress text message.
%End

    void pushConsoleInfo( const QString &info );
%Docstring
Pushes a console info string to the dialog's log.
%End

    QDialog *createProgressDialog();
%Docstring
Creates a modal progress dialog showing progress and log messages from
this dialog.
%End

    void clearLog();
%Docstring
Clears the current log contents.

.. versionadded:: 3.2
%End

    void saveLog();
%Docstring
Opens a dialog allowing users to save the current log contents.

.. seealso:: :py:func:`saveLogToFile`

.. versionadded:: 3.2
%End

    void copyLogToClipboard();
%Docstring
Copies the current log contents to the clipboard.

.. versionadded:: 3.2
%End

    void showParameters();
%Docstring
Switches the dialog to the parameters page.
%End

    virtual void reject();


  protected:
    virtual void closeEvent( QCloseEvent *e );


    QPushButton *runButton();
%Docstring
Returns the dialog's run button.
%End

    QPushButton *cancelButton();
%Docstring
Returns the dialog's cancel button.
%End

    QPushButton *changeParametersButton();
%Docstring
Returns the dialog's change parameters button.
%End

    QDialogButtonBox *buttonBox();
%Docstring
Returns the dialog's button box.
%End

    QTabWidget *tabWidget();
%Docstring
Returns the dialog's tab widget.
%End

    void clearProgress();
%Docstring
Clears any current progress from the dialog.
%End

    void setExecuted( bool executed );
%Docstring
Sets whether the algorithm was executed through the dialog.

.. seealso:: :py:func:`wasExecuted`

.. seealso:: :py:func:`setResults`
%End

    void setExecutedAnyResult( bool executedAnyResult );
%Docstring
Sets whether the algorithm was executed through the dialog (no matter
the result).
%End

    void setResults( const QVariantMap &results );
%Docstring
Sets the algorithm results.

.. seealso:: :py:func:`results`

.. seealso:: :py:func:`setExecuted`
%End

    void setInfo( const QString &message, bool isError = false, bool escapeHtml = true, bool isWarning = false );
%Docstring
Displays an info ``message`` in the dialog's log.
%End

    void resetGui();
%Docstring
Resets the dialog's gui, ready for another algorithm execution.
%End

    virtual void resetAdditionalGui();
%Docstring
For subclasses to register their own GUI controls to be reset, ready for
another algorithm execution.
%End

    void updateRunButtonVisibility();
%Docstring
Sets visibility for mutually exclusive buttons Run and Change
Parameters.
%End

    void blockControlsWhileRunning();
%Docstring
Blocks run and changeParameters buttons and parameters tab while the
algorithm is running.
%End

    virtual void blockAdditionalControlsWhileRunning();
%Docstring
For subclasses to register their own GUI controls to be blocked while
the algorithm is running.
%End

    QgsMessageBar *messageBar();
%Docstring
Returns the dialog's message bar.
%End

    void hideShortHelp();
%Docstring
Hides the short help panel.
%End

    void setCurrentTask( QgsProcessingAlgRunnerTask *task /Transfer/ );
%Docstring
Sets the current ``task`` running in the dialog. The task will
automatically be started by the dialog. Ownership of ``task`` is
transferred to the dialog.
%End

    static QString formatStringForLog( const QString &string );
%Docstring
Formats an input ``string`` for display in the log tab.
%End

    virtual bool isFinalized();
%Docstring
Returns ``True`` if the dialog is all finalized and can be safely
deleted.

.. versionadded:: 3.26
%End

    void applyContextOverrides( QgsProcessingContext *context );
%Docstring
Applies any defined overrides for Processing context settings to the
specified ``context``.

This allows the dialog to override default Processing settings for an
individual algorithm execution.

.. versionadded:: 3.32
%End

  signals:

    void algorithmAboutToRun( QgsProcessingContext *context );
%Docstring
Emitted when the algorithm is about to run in the specified ``context``.

This signal can be used to tweak the ``context`` prior to the algorithm
execution.

.. versionadded:: 3.38
%End

    void algorithmFinished( bool successful, const QVariantMap &result );
%Docstring
Emitted whenever an algorithm has finished executing in the dialog.

.. versionadded:: 3.14
%End

  protected slots:

    virtual void finished( bool successful, const QVariantMap &result, QgsProcessingContext &context, QgsProcessingFeedback *feedback );
%Docstring
Called when the algorithm has finished executing.
%End

    virtual void runAlgorithm();
%Docstring
Called when the dialog's algorithm should be run. Must be overridden by
subclasses.
%End

    virtual void algExecuted( bool successful, const QVariantMap &results );
%Docstring
Called when an algorithm task has completed.

.. versionadded:: 3.26
%End

};



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