Изменения c 2.1.0
---------------------------------

#. Метод :meth:`axioma.gui.MapView.changeProjection` переименован в \
   :meth:`axioma.gui.MapView.setCoordSystem` и принимает один параметр: \
   новую координатную систему. Вызвать диалог выбора координатной системы \
   можно напрямую, используя :class:`axioma.gui.ChooseCoordSystemDialog`

Изменения c 2.3.1
---------------------------------

#. В :class:`axioma.core.SettingsManager` были удалены флаги ``LastPathPython``, ``LastPathTable`` и ``LastPathReport``. \
   Вместо них был добавлен один флаг ``LastOpenPath``. Для последнего каталога открытия/сохранения рабочих наборов по прежнему \
   используется ``LastPathWorkspace``

#. В функцию решения прямой геодезической задачи :meth:`axioma.core.geometry.directGeodesicProblem` теперь \
   передаются параметры эллипсоида.

Изменения c 2.3.2
---------------------------------

#. Для создания главного окна :class:`axioma.app.MainWindow` теперь \
   используется фабричный метод :meth:`axioma.app.MainWindow.create` \
   вместо конструктора

#. Убран устаревший в версии 2.0.1 метод :meth:`axioma.app.MainWindow.browserManager`. \
   Используйте более обобщенный :class:`axioma.gui.WidgetManagerService`. \
   Сам класс (также устаревший) остается в api - :class:`axioma.gui.BrowserManager`, \
   но его больше нельзя получить как зависимость, используя :meth:`axioma.core.plugin.HasDependencies.createDependencyGetter` \
   
   .. seealso::
        :ref:`Управления зависимостями <dependencies-label>`

#. Убран устаревший класс :class:`axioma.render.BrowserReportItem`. \
   Рекомендуется использование :class:`axioma.render.TableReportItem`

#. Убран устаревший в версии 2.0.1 метод :meth:`axioma.app.MainWindow.reportViewManager`. \
   Используйте более обобщенный :class:`axioma.gui.WidgetManagerService`. \
   Сам класс (также устаревший) остается в api - :class:`axioma.gui.ReportViewManager`, \
   но его больше нельзя получить как зависимость, используя :meth:`axioma.core.plugin.HasDependencies.createDependencyGetter` \
   
   .. seealso::
        :ref:`Управления зависимостями <dependencies-label>`

#. Конструктор класса :class:`axioma.core.dp.Selection` \
   теперь принимает список идентификаторов записей, а не сами записи.

Изменения c 2.5.0
---------------------------------

#. Из метода :meth:`axioma.render.ReportItem.rect` убран по факту неиспользуемый параметр ``full``

#. :class:`axioma.gui.GeometryInformationDialog` теперь создается статичной фабричной функцией \
   :meth:`axioma.gui.GeometryInformationDialog.build`

#. Убран ключ установок :class:`axioma.core.DefaultSettingsList` \
   ``FloatPrecision``, ранее отвечавший за точность представления \
   вещественных значений. Добавлены ключи установок :class:`axioma.core.DefaultSettingsList` \
   ``DistancePrecision`` (отвечает за точность представления расстояний и \
   площадей на карте по умолчанию), \
   ``EnableSmartTabs`` (признак умного переключения вкладок), \
   ``SelectByInformationTool`` (признак автоматического выбора объекта \
   инструментом ""Информация""), \
   ``SaveAsToOriginalFileFolder`` (признак выбора каталога с исходным файлом \
   при сохранении копии). Для проверки актуальности ключей добавлен метод \
   :meth:`axioma.core.DefaultSettingsList.isDeprecated`

#. Добавлен класс :class:`axioma.core.geometry.RoundTransform`, \
   позволяющий выполнять операции округления координат геометрических объектов. \
   Для удобства использования данного класса методы \
   :meth:`axioma.render.Layer.deviceUnitSize` и функция \
   :func:`roundByUnitSize`. Для применения этого \
   (и других) преобразований в координатной системе слоя добавлен метод \
   :meth:`axioma.core.dp.Feature.setGeoAttribute`.

#. Добавлены функции преобразования вещественных значений в строку: \
   :func:`toString` и :func:`toLocalizedString`. \
   Несколько отличаются от стандартных функций преобразования, \
   в точности соответствуют используемым в системе правилам.

#. Добавлены методы :meth:`axioma.core.dp.TransactionalTable.setAutoCommit`, \
   :meth:`axioma.core.dp.TransactionalTable.setAutoRollback` и \
   :meth:`axioma.core.dp.TransactionalTable.useAutoRollback`, \
   позволяющие управлять процессом обработки транзакционных изменений \
   при отсутствии явного подтверждения или отказа.

Изменения c 2.6.1
---------------------------------
#. Добавлен ключ установок :class:`axioma.core.DefaultSettingsList` \
   ``UseAntialiasing``, отвечающий за сглаживание при отрисовке в окне карты и \
   ранее реализованный методами  useAntialiasing и setUseAntialiasing класса \
   :class:`axioma.render.RenderSettingsManager`.

#. Убран интерфейс :class:`axioma.mapinfo.CircularInterface`. \
   Класс :class:`axioma.mapinfo.Circular` теперь является базовым.

#. Убран интерфейс :class:`axioma.mapinfo.RoundRectangleInterface`. \
   Используйте :class:`axioma.mapinfo.RoundRectangle` напрямую.

#. Убран интерфейс :class:`axioma.mapinfo.RectangleInterface`. \
   Используйте :class:`axioma.mapinfo.Rectangle` напрямую.

#. Убран интерфейс :class:`axioma.mapinfo.EllipseInterface`. \
   Используйте :class:`axioma.mapinfo.Ellipse` напрямую.

#. Убран интерфейс :class:`axioma.mapinfo.ArcInterface`. \
   Используйте :class:`axioma.mapinfo.Arc` напрямую.

#. Убран интерфейс :class:`axioma.core.geometry.PolygonInterface`. \
   Используйте :class:`axioma.core.geometry.Polygon` напрямую.

#. Убран интерфейс :class:`axioma.core.geometry.MultiPolygonInterface`. \
   Используйте :class:`axioma.core.geometry.MultiPolygon` напрямую.

#. Убран интерфейс :class:`axioma.core.geometry.PointInterface`. \
   Используйте :class:`axioma.core.geometry.Point` напрямую.

#. Убран интерфейс :class:`axioma.core.geometry.LinearRingInterface`. \
   Используйте :class:`axioma.core.geometry.LinearRing` напрямую.

#. Убран интерфейс :class:`axioma.core.geometry.LineInterface`. \
   Используйте :class:`axioma.core.geometry.Line` напрямую.

#. Убран интерфейс :class:`axioma.core.geometry.MultiPointInterface`. \
   Используйте :class:`axioma.core.geometry.MultiPoint` напрямую.

#. Убран интерфейс :class:`axioma.core.geometry.MultiLineStringInterface`. \
   Используйте :class:`axioma.core.geometry.MultiLineString` напрямую.

#. Убран интерфейс :class:`axioma.core.geometry.MultiGeometryInterface`. \
   Используйте :class:`axioma.core.geometry.MultiGeometry` напрямую.

#. Убран интерфейс :class:`axioma.mapinfo.TextInterface`. \
   Используйте :class:`axioma.mapinfo.Text` напрямую.

#. Добавлен ключ установок :class:`axioma.core.DefaultSettingsList` \
   ``TitanInterfaceStyle``, отвечающий за стиль интерфейса.

#. В пространственных операциях добавлен параметр, позволяющий выполнять пользовательские функции в ходе долгого исполнения любой пространственной операции.

#. Добавлен ключ установок :class:`axioma.core.DefaultSettingsList` \
   ``NodesUpdateMode``, отвечающий за возможность перезаписи истории в режиме редактирования узлов.

#. Переименованы методы: \
   :meth:`axioma.cs.CoordSysFactory.createFromProj4` -> :meth:`axioma.cs.CoordSysFactory.createFromProj`, \
   :meth:`axioma.cs.CoordsSystem.proj4Str` -> :meth:`axioma.cs.CoordSystem.projStr`, \
   :meth:`axioma.cs.CoordSysFactory.createFromPRJ` -> :meth:`axioma.cs.CoordSysFactory.createFromPrj`, \
   :meth:`axioma.cs.CoordSysFactory.createFromEPSG` -> :meth:`axioma.cs.CoordSysFactory.createFromEpsg`, \
   :meth:`axioma.cs.CoordSysFactory.createFromWKT` -> :meth:`axioma.cs.CoordSysFactory.createFromWkt`

#. Добавлена функция преобразования списка вещественных координат в строку: \
   :func:`toString`.

#. Добавлены функции нахождения точки на линии и полилинии, ближайшей к указанной: \
   :func:`nearestPointOn`.

#. Добавлены функции поиска пологих участков на полилинии: \
   :func:`flatPoint` и :func:`flatPlots`.

#. Добавлена функция смены направления полилинии или полигона: \
   :func:`reversePolygon`.

#. Добавлен атрибут :attr:`axioma.render.LabelProperties.smoothPolyLine`, \
   управляющей сглаживанием полилиний при выводе подписей.

#. Добавлены методы :meth:`axioma.render.LabelLayout.orientation` и \
   :meth:`axioma.render.LabelLayout.setOrientation`, \
   управляющие ориентацией подписи.

#. Добавлена возможность запускать пользовательские задачи в фоновом потоке \
   с одновременным отображением прогресса с помощью метода :meth:`~showLongWait`

#. Добавлен класс :class:`axioma.core.PythonTask` который является обёрткой над 
   пользовательской задачей. Запускать их можно с помощью метода :meth:`~axioma.core.TaskThreadPool.start` 
   из класса :class:`~axioma.core.TaskThreadPool`

#. Добавлен конструктор для класса :class:`~axioma.render.LegendReportItem`

#. Изменен тип параметра конструктора для класса :class:`~axioma.render.ScaleBarReportItem`

#. При экспорте добавлена возможность исправления геометрии :attr:`axioma.core.dp.DatabaseProviderExportSupport.smoothPolyLine.fixGeometryTag`

#. Метод :meth:`axioma.app.MainWindow.registerDataObject` возвращает зарегистрированный объект


Изменения c 2.6.2
---------------------------------

#. Добавлен сигнал :meth:`axioma.render.Map.editableLayerChanging` вызываемый перед сменой редактируемого слоя.

#. Для методов :meth:`axioma.app.MainWindow.newMap`, :meth:`axioma.app.MainWindow.newBrowser`, :meth:`axioma.app.MainWindow.newReport`, :meth:`axioma.app.MainWindow.newLegend` добавлена возможнность получения созданного значения как результат.

#. Переименованы и частично изменены структуры для конфигурирования 
   отображения прогресса: 
   :class:`~axioma.gui.WaitMessageSpec` -> :class:`~axioma.gui.ProgressSpec`
   Набор флагов :class:`~axioma.gui.WaitMessageType` был удалён и заменён на
   флаги из :class:`~axioma.gui.ProgressSpec`. Так же незначительные изменения 
   были сделаны в :class:`~axioma.core.PythonProgressHandler`. Удалён метод
   :class:`~axioma.gui.showWaitMessage`.

#. Исправлена иерархия наследования класса :class:`~axioma.render.PolygonFillStyleSimple`

#. Устарели методы :meth:`axioma.render.LabelLayout.alignment` и :meth:`axioma.render.LabelLayout.offset`. Вместо них следует использовать новый набор методов: \
   :meth:`axioma.render.LabelLayout.alignmentPoint`, :meth:`axioma.render.LabelLayout.alignmentCurve`, :meth:`axioma.render.LabelLayout.alignmentArea`, \
   :meth:`axioma.render.LabelLayout.offsetPoint`, :meth:`axioma.render.LabelLayout.offsetCurve` и :meth:`axioma.render.LabelLayout.offsetArea`. \
   Добавлены методы установки выравнивания и смещения :meth:`axioma.render.LabelLayout.setAlignmentPoint`, :meth:`axioma.render.LabelLayout.setAlignmentCurve`, \
   :meth:`axioma.render.LabelLayout.setAlignmentArea`, :meth:`axioma.render.LabelLayout.setOffsetPoint`, :meth:`axioma.render.LabelLayout.setOffsetCurve`, \
   :meth:`axioma.render.LabelLayout.setOffsetArea`, :meth:`axioma.render.LabelLayout.setOffsets`. В связи с дифференцированием выравнивания и смещения по типам \
   изменён смысл методов :meth:`axioma.render.LabelLayout.setAlignment` и :meth:`axioma.render.LabelLayout.setOffset`: теперь они относятся сразу ко всем типам геометрий.

#. Добавлены атрибуты видимости отдельных типов геометрий :attr:`axioma.render.LabelPlacementPolicy.visibleArea`, :attr:`axioma.render.LabelPlacementPolicy.visibleCurve`, \
   :attr:`axioma.render.LabelPlacementPolicy.visiblePoint`. Атрибут :attr:`axioma.render.LabelPlacementPolicy.visible` теперь относится ко всем типам геометрий.

#. Добавлены новые атрибуты, влияющие на выбор надписей для отрисовки  :attr:`axioma.render.LabelPlacementPolicy.collectionRules`, \
   :attr:`axioma.render.LabelPlacementPolicy.labelEverySection`, :attr:`axioma.render.LabelPlacementPolicy.overhang`, :attr:`axioma.render.LabelPlacementPolicy.clipPolicyArea`, \
   :attr:`axioma.render.LabelPlacementPolicy.clipPolicyCurve` и :attr:`axioma.render.LabelPlacementPolicy.clipPolicyCollection`.

#. Добавлены новые атрибуты свойств подписей: :attr:`axioma.render.LabelProperties.reduceFontSize` (:class:`~axioma.render.ReduceFontSize`), \
   :attr:`axioma.render.LabelProperties.textProperties` (:class:`~axioma.render.TextProperties`), \
   :attr:`axioma.render.LabelProperties.angleMax` (:class:`~axioma.render.LabelProperties.AngleMax`), \
   :attr:`axioma.render.LabelProperties.flatPlotFallback` и :attr:`axioma.render.LabelProperties.flatAngle`.

#. Добавлены новые методы для отрисовки текстовых объектов: :meth:`axioma.render.TextRenderer.shadowColor`, :meth:`axioma.render.TextRenderer.setShadowColor`, \
   :meth:`axioma.render.TextRenderer.hasShadow`, :meth:`axioma.render.TextRenderer.enableShadow`, :meth:`axioma.render.TextRenderer.shadowOffset`, \
   :meth:`axioma.render.TextRenderer.pixelHaloWidthDevice`, :meth:`axioma.render.TextRenderer.pixelHaloWidth`, \
   :meth:`axioma.render.TextRenderer.pointHaloWidthDevice`, :meth:`axioma.render.TextRenderer.pointHaloWidth`, \
   :meth:`axioma.render.TextRenderer.setPointHaloWidth`, :meth:`axioma.render.TextRenderer.setHaloWidthPercent`.

#. Удалён метод проверки попадания объектов в интервал :meth:`axioma.render.ThematicRangeStyleParam.checkValue`.

#. Добавлены функции преобразования вещественных значений в строку: \
   :func:`toStringFixup`, :func:`toLocalizedStringFixup`, :func:`toStringRound`, \
   :func:`toLocalizedStringRound`, :func:`toStringByMode`, :func:`toLocalizedStringByMode`. \
   Несколько отличаются от стандартных функций преобразования, \
   в точности соответствуют используемым в системе правилам.

Изменения c 2.9.0
---------------------------------
#. Добавлен класс :class:`~axioma.core.sql.NickedTable`, изменён состав класса :class:`~axioma.core.sql.QueryResult`.

#. Методы :meth:`~axioma.core.dp.TransactionalTable.commit` и
   :meth:`~axioma.core.dp.TransactionalTable.restore` перенесены из
   класса :class:`axioma.core.dp.HasFeatureHistory` в наследующий класс
   :class:`axioma.core.dp.TransactionalTable`.

#. Добавлен ключ установок :class:`axioma.core.DefaultSettingsList` \
   ``PhysicalScreenSize``, позволяющий задать размер экрана монитора,  \
   и ``SqlTreePopupWidth``, отвечающий за ширину выпадающего списка функций в диалогах sql-запросов.

#. Добавлен модуль :class:`axioma.engine.Engine`, позволяющий обращаться к виртуальным таблицам \
   (соответствующим таблицам системы) с использованием sql-синтаксиса.

#. В методе :meth:`~axioma.gui.MapView.itemFromFeature` изменен тип первого параметра с :class:`~axioma.render.TableLayer` на :class:`~axioma.render.Layer`

#. Убраны неиспользуемые классы `BrowserManager` и `ReportViewManager`

#. Добавлены классы по работе с sql-диалектами :class:`axioma.core.sql.Dialect`, \
   :class:`axioma.core.sql.DialectExpression`, :class:`axioma.core.sql.DialectQuery`, \
   :class:`axioma.core.sql.FunctionFilter`, :class:`axioma.core.sql.FunctionInfo`, \
   :class:`axioma.core.sql.NameDescribed`, :class:`axioma.core.sql.FunctionSet`, \
   :class:`axioma.core.sql.OperatorFilter`, :class:`axioma.core.sql.OperatorSet`, \
   :class:`axioma.core.sql.Type` и :class:`axioma.engine.Engine`. Добавлен конструктор \
   :meth:`~axioma.core.sql.FeatureExpressionEvaluator.FeatureExpressionEvaluator` (dialect, schema) и \
   метод :meth:`~axioma.core.sql.QueryTable.query` класса :class:`~axioma.core.sql.QueryTable`.
