From 652adb455c4952656802630dbd39dcb4956c3281 Mon Sep 17 00:00:00 2001 From: "benjamin.jakimow" <benjamin.jakimow@geo.hu-berlin.de> Date: Fri, 25 May 2018 18:35:38 +0200 Subject: [PATCH] added actions to SpectralLibraryTableView context menu --- timeseriesviewer/spectrallibraries.py | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/timeseriesviewer/spectrallibraries.py b/timeseriesviewer/spectrallibraries.py index 4e13e00d..8448aaa9 100644 --- a/timeseriesviewer/spectrallibraries.py +++ b/timeseriesviewer/spectrallibraries.py @@ -365,6 +365,9 @@ class SpectralLibraryTableView(QgsAttributeTableView): a.triggered.connect(lambda : self.setCheckState(featureIDs, Qt.Checked)) a = menu.addAction('Uncheck') a.triggered.connect(lambda: self.setCheckState(featureIDs, Qt.Unchecked)) + menu.addSeparator() + for a in self.actions(): + menu.addAction(a) def spectralLibrary(self): return self.model().layer() @@ -1740,11 +1743,11 @@ class SpectralLibrary(QgsVectorLayer): def asPickleDump(self): return pickle.dumps(self) - def exportProfiles(self, path=None): + def exportProfiles(self, path=None, parent=None): if path is None: - path = QFileDialog.getSaveFileName(parent=None, caption="Save Spectral Library", filter=FILTERS) + path = QFileDialog.getSaveFileName(parent=parent, caption="Save Spectral Library", filter=FILTERS) if isinstance(path, tuple): path = path[0] @@ -2278,8 +2281,10 @@ class SpectralLibraryWidget(QFrame, loadUI('spectrallibrarywidget.ui')): self.actionSelectProfilesFromMap.triggered.connect(self.sigLoadFromMapRequest.emit) self.actionSaveCurrentProfiles - self.actionImportSpeclib - self.actionSaveSpeclib + + + self.actionImportSpeclib.triggered.connect(lambda :self.importSpeclib()) + self.actionSaveSpeclib.triggered.connect(lambda :self.speclib().exportProfiles(parent=self)) self.actionReload.triggered.connect(lambda : self.speclib().dataProvider().forceReload()) self.actionToggleEditing.toggled.connect(self.onToggleEditing) @@ -2292,6 +2297,7 @@ class SpectralLibraryWidget(QFrame, loadUI('spectrallibrarywidget.ui')): self.actionSelectAll.triggered.connect(lambda : self.speclib().selectAll() ) + self.actionInvertSelection.triggered.connect(lambda : self.speclib().invertSelection() ) @@ -2308,8 +2314,20 @@ class SpectralLibraryWidget(QFrame, loadUI('spectrallibrarywidget.ui')): self.actionAddAttribute.triggered.connect(self.onAddAttribute) self.actionRemoveAttribute.triggered.connect(self.onRemoveAttribute) + self.tableViewSpeclib.addActions([self.actionPanMapToSelectedRows, self.actionZoomMapToSelectedRows, self.actionDeleteSelected, self.actionToggleEditing]) self.onEditingToggled() + def importSpeclib(self, path=None): + slib = None + if path is None: + slib = SpectralLibrary.readFromSourceDialog(self) + else: + slib = SpectralLibrary.readFrom(path) + + if isinstance(slib, SpectralLibrary): + self.speclib().addSpeclib(slib) + + def speclib(self): return self.mSpeclib -- GitLab