Commit 1b8e9358 authored by Benjamin Jakimow's avatar Benjamin Jakimow
Browse files

update CHANGELOG.rst

update About text
labeling.py: added buttons for auto selection mode
parent e2dc8231
......@@ -15,11 +15,11 @@ The EO Time Series Viewer is a QGIS Plugin to visualize and label Earth Observat
<li>Repository <a href="https://bitbucket.org/jakimowb/eo-time-series-viewer">https://bitbucket.org/jakimowb/eo-time-series-viewer</a></li>
</ul>
<p>
<p align="center">
The EO Time Series Viewer is developed at Humboldt-Universit&auml;t zu Berlin, <a href="https://hu-berlin.de/eo-lab">Earth Observation Lab</a>.
</p>
<p>
<p align="center">
Earlier versions of the EO Time Series Viewer were partly developed in the SenseCarbon project,
funded by the German Aerospace Centre (DLR) and granted by the Federal Ministry of Education and Research
(BMBF, grant no. 50EE1254). Since 2017 development of the software is supported by the German Research Centre for Geosciences (GFZ) as
......
==============
Changelog
==============
2020-10-06 (version 1.14):
* stability update
2020-11-06 (version 1.14):
* this version focuses on stability updates and improvements of the "quick label" system
* map canvas menu now available with standard map tool (like zoom tool)
* introduces label groups to apply quick labeling short cuts on different sets of vector fields
* attribute table allow to selected added features automatically
* optimized package imports
* improved SpectralLibrary tool
* fixed bugs
2020-07-23 (version 1.13):
* time series and map settings can be stored to and reloaded from QGIS Projects
......
......@@ -648,16 +648,44 @@ class LabelWidget(AttributeTableWidget):
self.mActionPreviousFeature.triggered.connect(
lambda *args, lyr=self.mLayer, vlt=self.vectorLayerTools(): gotoPreviousFeature(lyr, vlt))
self.mOptionSelectAddedFeatures = QAction('Select Added Features')
self.mOptionSelectAddedFeatures.setIcon(QIcon(r':/images/themes/default/mActionProcessSelected.svg'))
self.mOptionSelectAddedFeatures.setCheckable(True)
self.mOptionSelectAddedFeatures.setChecked(True)
self.mOptionSelectBehaviour = QAction('Selection behaviour')
self.mOptionSelectBehaviour.setCheckable(True)
self.mOptionSelectBehaviour.setChecked(True)
m = QMenu()
self.mOptionSelectionSetSelection = m.addAction('Set Selection')
self.mOptionSelectionSetSelection.setIcon(QIcon(':/images/themes/default/mIconSelected.svg'))
self.mOptionSelectionSetSelection.setToolTip('Selects a feature.')
self.mOptionSelectionAddToSelection = m.addAction('Add to Selection')
self.mOptionSelectionAddToSelection.setIcon(QIcon(':/images/themes/default/mIconSelectAdd.svg'))
self.mOptionSelectionAddToSelection.setToolTip('Adds a new feature to an existing selection.')
#self.mOptionSelectionIntersectSelection = m.addAction('Intersect Selection')
#self.mOptionSelectionIntersectSelection.setIcon(QIcon(':/images/themes/default/mIconSelectIntersect.svg'))
#self.mOptionRemoveFromSelection = m.addAction('Remove from Selection')
#self.mOptionRemoveFromSelection.setIcon(QIcon(':/images/themes/default/mIconSelectRemove.svg'))
self.mOptionSelectBehaviour.setMenu(m)
for o in [self.mOptionSelectionSetSelection,
self.mOptionSelectionAddToSelection,
#self.mOptionSelectionIntersectSelection,
#self.mOptionRemoveFromSelection
]:
o.setCheckable(True)
o.triggered.connect(self.onSelectBehaviourOptionTriggered)
self.mOptionSelectionAddToSelection.trigger()
# show selected feature on top by default
self.mActionSelectedToTop.setChecked(True)
self.mToolbar: QToolBar
self.mToolbar.insertActions(self.mActionToggleEditing,
[self.mActionPreviousFeature,
self.mActionNextFeature,
self.mOptionSelectAddedFeatures])
self.mOptionSelectBehaviour])
self.mToolbar.insertSeparator(self.mActionToggleEditing)
......@@ -675,11 +703,37 @@ class LabelWidget(AttributeTableWidget):
self.mLayer.featureAdded.connect(self.onLabelFeatureAdded)
def selectBehaviour(self) -> QgsVectorLayer.SelectBehavior:
if self.mOptionSelectionSetSelection.isChecked():
return QgsVectorLayer.SetSelection
elif self.mOptionSelectionAddToSelection.isChecked():
return QgsVectorLayer.AddToSelection
elif self.mOptionSelectionIntersectSelection.isChecked():
return QgsVectorLayer.IntersectSelection
elif self.mOptionRemoveFromSelection.isChecked():
return QgsVectorLayer.RemoveFromSelection
else:
return QgsVectorLayer.SetSelection
def onSelectBehaviourOptionTriggered(self):
a: QAction = self.sender()
m: QMenu = self.mOptionSelectBehaviour.menu()
if isinstance(a, QAction) and isinstance(m, QMenu) and a in m.actions():
for ca in m.actions():
assert isinstance(ca, QAction)
if ca == a:
self.mOptionSelectBehaviour.setIcon(a.icon())
self.mOptionSelectBehaviour.setText(a.text())
self.mOptionSelectBehaviour.setToolTip(a.toolTip())
self.mOptionSelectBehaviour.setChecked(True)
ca.setChecked(ca == a)
def onLabelFeatureAdded(self, fid):
lastSelection: typing.List[int] = self.mLayer.selectedFeatureIds()
if self.mOptionSelectAddedFeatures.isChecked():
#lastSelection.append(fid)
self.mLayer.selectByIds([fid], QgsVectorLayer.AddToSelection)
if self.mOptionSelectBehaviour.isChecked():
lastSelection: typing.List[int] = self.mLayer.selectedFeatureIds()
self.mLayer.selectByIds([fid], self.selectBehaviour())
def showProperties(self, *args):
showLayerPropertiesDialog(self.mLayer, None, parent=self, useQGISDialog=True)
......
[general]
name=dummy
description=dummy
version=dummy
qgisMinimumVersion=dummy
qgisMaximumVersion=dummy
author=dummy
about=dummy
email=dummy
icon=dummy
homepage=dummy
tracker=dummy
repository=dummy
experimental=False
deprecated=False
tags=remote sensing, raster, time series, data cube, landsat, sentinel
category=Raster
\ No newline at end of file
......@@ -54,7 +54,7 @@ MD.mAbout = ''
MD.mTracker = eotimeseriesviewer.ISSUE_TRACKER
MD.mRepository = eotimeseriesviewer.REPOSITORY
MD.mQgisMinimumVersion = '3.14'
MD.mEmail = eotimeseriesviewer.MAIL
########## End of config section
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment