From e80c1708df0f6d2340280fa6eeafb6714ccbeff0 Mon Sep 17 00:00:00 2001 From: "benjamin.jakimow" <benjamin.jakimow@geo.hu-berlin.de> Date: Fri, 18 May 2018 11:19:37 +0200 Subject: [PATCH] spectrallibraries.py: added setAddCurrentSpectraToSpeclibMode(), fromMapCanvas(mapCanvas, position) can read data from invisible mapcanvases --- timeseriesviewer/spectrallibraries.py | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/timeseriesviewer/spectrallibraries.py b/timeseriesviewer/spectrallibraries.py index 397009ba..611af5f3 100644 --- a/timeseriesviewer/spectrallibraries.py +++ b/timeseriesviewer/spectrallibraries.py @@ -330,8 +330,13 @@ class SpectralProfile(QObject): """ assert isinstance(mapCanvas, QgsMapCanvas) - layers = [l for l in mapCanvas.layers() if isinstance(l, QgsRasterLayer)] - sources = [l.source() for l in layers] + from timeseriesviewer.mapcanvas import MapCanvas + if isinstance(mapCanvas, MapCanvas): + sources = mapCanvas.layerModel().rasterLayerInfos() + sources = [s.mSrc for s in sources] + else: + layers = [l for l in mapCanvas.layers() if isinstance(l, QgsRasterLayer)] + sources = [l.source() for l in layers] return SpectralProfile.fromRasterSources(sources, position) @staticmethod @@ -971,6 +976,8 @@ class SpectralLibraryPanel(QgsDockWidget): self.SLW = SpectralLibraryWidget(self) self.setWidget(self.SLW) + def setAddCurrentSpectraToSpeclibMode(self, b: bool): + self.SLW.setAddCurrentSpectraToSpeclibMode(b) class SpectralLibraryVectorLayer(QgsVectorLayer): @@ -1526,7 +1533,8 @@ class SpectralLibraryTableViewModel(QAbstractTableModel): if role == Qt.DisplayRole: if columnName == self.cIndex: - value = self.mSpecLib.index(profile)+1 + #value = self.mSpecLib.index(profile)+1 + pass elif columnName == self.cName: value = profile.name() elif columnName == self.cSrc: @@ -1860,6 +1868,9 @@ class SpectralLibraryWidget(QFrame, loadUI('spectrallibrarywidget.ui')): self.mModel.insertProfiles([p.clone() for p in speclib]) #self.mSpeclib.addProfiles([copy.copy(p) for p in speclib]) + def setAddCurrentSpectraToSpeclibMode(self, b:bool): + self.cbAddCurrentSpectraToSpeclib.setChecked(b) + def addCurrentSpectraToSpeclib(self, *args): self.mModel.insertProfiles([p.clone() for p in self.mCurrentSpectra]) #self.mSpeclib.addProfiles([p.clone() for p in self.mCurrentSpectra]) -- GitLab