SettingsManager - Менеджер настроек
=========================================

.. currentmodule:: axioma.core

.. class:: SettingsManager

	.. note:: Абстрактный

	Менеджер настроек

	Получайте объект этого класса из :meth:`axioma.core.Core.settings`

	.. Унаследован от:

	.. * :class:`~PyQt5.QtCore.QObject`

	Методы:

		.. method:: value(key)

			Получить значение параметра

			:param key: идентификатор параметра
			:type key: :class:`~axioma.core.DefaultSettingsList.Key`
			:rtype: :class:`~PyQt5.QtCore.QVariant`

		.. code-block:: python3

			import axioma.core
			from axioma.core import *
			print ('Последний путь к файлам: ' + axioma.app.core.settings().value(DefaultSettingsList.LastOpenPath))

		.. method:: connectOnChanged(key, context, callback)

			Подписаться на изменение параметра

			:param key: идентификатор параметра
			:type key: :class:`~axioma.DefaultSettingsList.Key`
			:param context: отвечает за время жизни соединения
			:type context: :class:`~PyQt5.QtCore.QObject`
			:param callback: вызываемый метод при изменении значения параметра; должен принимать 0 или 1 параметр и возвращать :any:`None`
			:type callback: :any:`typing.Callable` [[:class:`~PyQt5.QtCore.QVariant`], :any:`None`]

		.. code-block:: python3

			import axioma.core
			settingsManager=axioma.app.core.settings()
			# без параметров
			callbackRulerColor=lambda: print("Цвет линейки изменился")
			settingsManager.connectOnChanged(axioma.core.DefaultSettingsList.RulerColorLine, None, callbackRulerColor)
			# с параметром
			callbackPrecision=lambda precision: print("Точность для расстояний изменилась: ", precision)
			settingsManager.connectOnChanged(axioma.core.DefaultSettingsList.DistancePrecision, None, callbackPrecision)

.. class:: DefaultSettingsList

	Стандартные параметры настроек

	.. class:: Key

		Параметр настроек

		.. csv-table:: Значения
			:header: Наименование, Описание

			``SilentCloseWidget``, "Подтверждать закрытие несохраненных данных"
			``SnapSensitiveRasius``, "Привязка узлов - размер"
			``SnapColor``, "Привязка узлов - цвет"
			``SnapThickness``, "Привязка узлов - толщина линии"
			``EditNodeColor``, "Узлы при редактировании - цвет"
			``EditNodeSize``, "Узлы при редактировании - размер"
			``NearlyGeometriesTopology``, "Перемещать узлы соседних объектов при редактировании"
			``NodesUpdateMode``, "Использовать перезапись истории изменений при редактировании узлов"
			``ShowDrawingToolTip``, "Показывать данные при рисовании"
			``CreateTabAfterOpen``, "Создавать TAB при открытии"
			``RenameDataObjectFromTab``, "Переименовывать открытый объект по имени TAB файла"
			``LastSavePath``, "Последний пусть сохранения"
			``UseLastSelectedFilter``, "Запоминать последний фильтр в диалоге открытия файлов"
			``SelectByInformationTool``, "Инструмент ""Информация"" выбирает объект"
			``SaveAsToOriginalFileFolder``, "Сохранять копию в каталог с исходным файлом"
			``LastNameFilter``, "Последний использованный фильтр файлов"
			``SensitiveMouse``, "Чувствительность мыши"
			``ShowSplashScreen``, "Отображать экран загрузки"
			``ShowSplashScreenMessages``, "Отображать сообщения экрана загрузки"
			``SplashScreenImageFile``, "Файл изображения"
			``RulerModeSpherical``, "Линейка - измерение на сфере"
			``RulerColorLine``, "Линейка - цвет линии"
			``UseAntialiasing``, "Использовать сглаживание при отрисовке"
			``ShowDegreeTypeNumeric``, "Отображать градусы в формате Десятичное значение"
			``DrawCoordSysBounds``, "Отображать границы мира"
			``PreserveScaleMap``, "Сохранять масштаб при  изменении размеров окна"
			``ShowMapScaleBar``, "Показывать масштабную линейку"
			``ShowScrollOnMapView``, "Показывать полосы прокрутки"
			``PercentToShowMapView``, "Размер первоначального показа окна карты"
			``LoadLastWorkspace``, "Загружать при старте последнее рабочее пространство"
			``ShowMeshLayout``, "Отображать сетку привязки"
			``MeshSizeLayout``, "Размер ячейки"
			``SnapToMeshLayout``, "Привязывать элементы отчета к сетке"
			``ShowMeshLegend``, "Отображать сетку привязки"
			``MeshSizeLegend``, "Размер ячейки"
			``SnapToMeshLegend``, "Привязывать к сетке"
			``PythonEditorFontFamily``, "Редактор Python - шрифт"
			``PythonEditorFontSize``, "Редактор Python - размер шрифта"
			``PythonEditorShowWhiteSpaces``, "Редактор Python - показывать невидимые символы"
			``RibbonCaptionVisibility``, "Отображать подписи больших кнопок ленточного интерфейса"
			``UsingTypeInterface``, "Тип интерфейса"
			``TitanInterfaceStyle``, "Стиль интерфейса"
			``LastOpenPath``, "Последний каталог откуда открывались данные"
			``LastPathWorkspace``, "Последний каталог к рабочему набору"
			``DefaultPathCache``, "Каталог с кэшированными данными"
			``UserDataPaths``, "Список пользовательских каталогов с названиями"
			``Shortcuts``, "Горячие клавиши"
			``EnableSmartTabs``, "Умное переключение вкладок"
			``DistancePrecision``, "Точность по умолчанию для расстояний и площадей"
			``PhysicalScreenSize``, "Размер экрана (дюймы)"

	Методы:

	.. py:staticmethod:: isDeprecated(key)

		Получить признак устаревшего ключа

		:param key: идентификатор параметра
		:type key: :class:`~axioma.DefaultSettingsList.Key`
		:return: признак того, что ключ более не используется
		:rtype: :class:`bool`

.. ``RestoreRibbonRequest``, ""
.. ``IsMacWarningShown``, ""
.. ``SimpleCloseDialog``, ""
