Skip to content
Snippets Groups Projects
docks.py 2.48 KiB
Newer Older
  • Learn to ignore specific revisions
  • from qgis.PyQt.QtGui import QIcon
    from qgis.PyQt.QtWidgets import QAction, QToolBar
    from qgis.core import QgsVectorLayer, QgsVectorLayerTools
    from qgis.gui import QgsDockWidget
    from eotimeseriesviewer.externals.qps.vectorlayertools import VectorLayerTools
    from eotimeseriesviewer.externals.qps.speclib.core import SpectralLibrary
    from eotimeseriesviewer.externals.qps.speclib.gui import SpectralLibraryWidget, SpectralLibraryPanel
    from eotimeseriesviewer.labeling import LabelWidget, gotoNextFeature, gotoPreviousFeature
    
    
    class SpectralLibraryDockWidget(SpectralLibraryPanel):
        def __init__(self, speclib: SpectralLibrary, *args, **kwds):
    
            super().__init__(*args, speclib=speclib, **kwds)
    
            assert isinstance(self.SLW, SpectralLibraryWidget)
            self.mActionNextFeature = QAction('Next Feature', parent=self)
            self.mActionNextFeature.setIcon(QIcon(':/images/themes/default/mActionAtlasNext.svg'))
    
            self.mActionNextFeature.triggered.connect(self.onGotoNextFeature)
    
    
            self.mActionPreviousFeature = QAction('Previous Feature', parent=self)
            self.mActionPreviousFeature.setIcon(QIcon(':/images/themes/default/mActionAtlasPrev.svg'))
    
            self.mActionPreviousFeature.triggered.connect(self.onGotoPreviousFeature)
    
    
            self.SLW.mToolbar: QToolBar
            self.SLW.mToolbar.insertActions(self.SLW.mActionToggleEditing,
    
                                            [self.mActionPreviousFeature, self.mActionNextFeature])
    
            self.SLW.mToolbar.insertSeparator(self.SLW.mActionToggleEditing)
    
    
        def onGotoNextFeature(self, *arg):
            gotoNextFeature(self.SLW)
    
        def onGotoPreviousFeature(self, *args):
            gotoPreviousFeature(self.SLW)
    
    
        def setVectorLayerTools(self, tools: QgsVectorLayerTools):
            self.SLW.setVectorLayerTools(tools)
    
        def spectralLibrary(self) -> SpectralLibrary:
            return self.SLW.spectralLibrary()
    
    
    class LabelDockWidget(QgsDockWidget):
    
        def __init__(self, layer, *args, **kwds):
            super().__init__(*args, **kwds)
            self.mLabelWidget = LabelWidget(layer)
            self.setWidget(self.mLabelWidget)
            self.setWindowTitle(self.mLabelWidget.windowTitle())
            self.mLabelWidget.windowTitleChanged.connect(self.setWindowTitle)
    
        def setVectorLayerTools(self, tools: QgsVectorLayerTools):
            self.mLabelWidget.setVectorLayerTools(tools)
    
        def vectorLayer(self) -> QgsVectorLayer:
            if isinstance(self.mLabelWidget.mLayer, QgsVectorLayer):
                return self.mLabelWidget.mLayer
            return None