diff --git a/timeseriesviewer/spectrallibraries.py b/timeseriesviewer/spectrallibraries.py index 4e13e00d880575c60abe156ff9c5544ace153d6b..8448aaa9d36b597d911f86cd7b50de1ca51c0dd7 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