from qgis.PyQt.QtCore import ( QCoreApplication, QItemSelectionModel ) from qgis.PyQt.QtWidgets import ( QListWidget, QHBoxLayout, QPushButton, QVBoxLayout ) from qgis.PyQt.QtGui import QIcon from qgis.gui import ( QgsLayoutItemAbstractGuiMetadata, QgsLayoutItemBaseWidget, QgsLayoutItemPropertiesWidget ) from qgis.core import ( QgsLayoutItemRegistry ) # from plot_settings_widget import DataPlotlyPanelWidget ITEM_TYPE = QgsLayoutItemRegistry.PluginItem + 1338 class PlotLayoutItemWidget(QgsLayoutItemBaseWidget): """ Configuration widget for layout plot items """ def __init__(self, parent, layout_object): super().__init__(parent, layout_object) self.plot_item = layout_object self.message_bar = None vl = QVBoxLayout() vl.setContentsMargins(0, 0, 0, 0) self.item_properties_widget = QgsLayoutItemPropertiesWidget(self, layout_object) vl.addWidget(self.item_properties_widget) self.setLayout(vl) class PlotLayoutItemGuiMetadata(QgsLayoutItemAbstractGuiMetadata): """ Metadata for plot item GUI classes """ def __init__(self): super().__init__(ITEM_TYPE, 'layoutItemGui') def creationIcon(self): # pylint: disable=missing-docstring, no-self-use icon_path = ':/plugins/plot_layout/icon.png' return QIcon(icon_path) def createItemWidget(self, item): # pylint: disable=missing-docstring, no-self-use return PlotLayoutItemWidget(None, item)