ProgressSpec
===================

.. currentmodule:: axioma.gui

.. class:: ProgressSpec

    Вспомогательная структура для передачи набора параметров диалогу 
    отображающему прогресс

    .. method:: ProgressSpec(message, parent=None, dialogType=ProgressSpec.OnlyProgress, windowTitle=None)

        :param message: Основное сообщение диалога отображающего прогресс
        :type message: :class:`str`
        :param parent: Родительский объект  
        :type parent: :class:`~PyQt5.QtWidgets.QWidget`
        :param flags: Флаги с помощью которых можно настроить поведение и внешний вид диалога
        :type flags: :class:`~axioma.gui.ProgressSpec.ProgressFlags`
        :param windowTitle: Заголовок окна
        :type windowTitle: :class:`str`

    .. attribute:: message

        Основное сообщение диалога отображающего прогресс

        :type: :class:`str`


    .. attribute:: windowTitle

        Задаёт заголовок окна для диалога отображающего прогресс

        :type: :class:`str`

    .. attribute:: parent

        Родительский объект  

        :type parent: :class:`~PyQt5.QtWidgets.QWidget`

    .. attribute:: flags

        С помощью флагов можно выбрать тип диалога который будет отображаться 
        пользователю. Флаги можно комбинировать с помощью побитовых операций.
        Хочется заметить, что выбор диалога с поддержкой отмены не значит, 
        что операция будет прервана. Для прерывания нужно внутри 
        пользовательской функции проверять флаг 
        :meth:`~axioma.core.PythonProgressHandler.isCanceled` Подробнее в 
        примерах :doc:`ConcurrentGuiUtils`

        :type flags: :class:`~axioma.gui.WaitMessage.WaitMessageType`

    .. csv-table:: Флаги для настройки диалога отображающего прогресс 
        :header: Наименование, Значение, Описание 
        
        ``OnlyProgress``, 1, Только индикатор выполнения операции 
        ``Cancelable``, 2, Индикатор с кнопкой отмены
        ``NoDelay``, 4, Диалог с прогрессом появляется сразу без задержки по умолчанию
