ItemView
=================

.. currentmodule:: axioma.gui

.. class:: ItemView

	Базовый класс для отображения данных в окне

	Унаследован от: :class:`~PyQt5.QtWidgets.QWidget`, :class:`~axioma.core.dp.HasHistory`

	От него наследуются: :class:`ScrollItemView`

		.. py:method:: ItemView(parent=None)

			Конструктор

			:param parent: Родительский объект
			:type parent: :class:`~PyQt5.QtCore.QObject` или :any:`None`

		.. py:method::hidden: ItemSelectionModel *selectionModel()

		.. py:method:: itemsViewport()

			Текущая область видимости окна

			:return: Viewport
			:rtype: :class:`~axioma.render.Viewport`
			
		.. py:method:: canEdit()

			Проверка допустимости редактирования контента

			:return: True, если это возможно. В противном случае False
			:rtype: :class:`bool`

		.. py:method:: selectionModel()

			Модель для доступа к выделенным в окне элементам

			:return: Модель
			:rtype: :class:`~axioma.gui.ItemSelectionModel`

		.. py:method:: insertItem(gs)

			Вставка новой геометрии

			:param  gs: Геометрия со стилем оформления
			:type gs: :class:`~axioma.render.GeometryWithStyle`

		.. py:method:: insertItems(gslist)

			Вставка списка с новой геометрией

			:param  gslist: Список геометрии со стилем оформления
			:type gslist: :class:`list` [ :class:`~axioma.render.GeometryWithStyle`] 

		.. py:method:: updateItems(items)

			Обновление существующих элементов

			:param  gslist: Список элементов
			:type gslist: :class:`~axioma.gui.ItemList`

		.. py:method:: deleteItems(items)

			Удаление существующих элементов

			:param  gslist: Список элементов
			:type gslist: :class:`~axioma.gui.ItemList`

		.. py:method:: itemsIntersectRect(rect)

			Запрос элементов, которые попадают в запрашиваемый прямоугольник

			:param  rect: Запрашиваемый прямоугольник
			:type rect: :class:`~PyQt5.QtCore.QRectF`
			:return: Список элементов
			:rtype:  :class:`~axioma.gui.ItemList`

		.. py:method::hidden: name()	std::shared_ptr<ItemEditorManager> itemEditorManager() const;

		.. py:method:: isSnapMode()

			Активен ли режим привязки к узлам элементов

			:return: True, если активен. В противном случае False
			:rtype: :class:`bool`

		.. py:method:: setSnapMode(mode)

			Устанавливает режим привязки узлов элементов

			:param  mode: True, если режим необходимо включить
			:type mode: :class:`bool`

		.. py:method:: scaleWithCenter(zoomCoef, center)

			Масштабирование и смена центра сцены окна

			:param  zoomCoef: Коэффициент масштабирования
			:type zoomCoef: :class:`float`
			:param center: Новый центр сцены окна
			:type center: :class:`~PyQt5.QtCore.QPointF`

		.. method:: aboutToBeDestroyed()

			[signal] Сигнал испускается при удалении

		.. method:: canEditChanged()

			[signal] Сигнал испускается при смене режима редактирования в окне

		.. method:: selectionChanged()

			[signal] Сигнал испускается при смене выборки в окне

		.. method:: snappedCoordinate(src, result, succ)

			[signal] Сигнал испускается при включенном режиме привязки узлов когда получено соответствие для точки

			:param src: Исходная точка
			:type src: :class:`~PyQt5.QtCore.QPointF`
			:param result: Результирующая точка
			:type result: :class:`~PyQt5.QtCore.QPointF`
			:param succ: Корректность получения результирующей точки
			:type succ: :class:`bool`

		.. method:: snapStatusChanged(status)

			[signal] Сигнал испускается при включении или отключении режима привязки узлов

			:param src: True, если режим включен. В противном случае False
			:type src: :class:`bool`
