From 31bf257ff37bc1995dc8bd016c247a3815d9fadd Mon Sep 17 00:00:00 2001 From: "Benjamin Jakimow benjamin.jakimow@geo.hu-berlin.de" <benjamin.jakimow@geo.hu-berlin.de> Date: Wed, 7 Oct 2020 15:07:40 +0200 Subject: [PATCH] mapvisualization.py - fixed equalTextFormats Signed-off-by: Benjamin Jakimow benjamin.jakimow@geo.hu-berlin.de <benjamin.jakimow@geo.hu-berlin.de> --- eotimeseriesviewer/mapvisualization.py | 48 ++++++++++++++++---------- 1 file changed, 29 insertions(+), 19 deletions(-) diff --git a/eotimeseriesviewer/mapvisualization.py b/eotimeseriesviewer/mapvisualization.py index aae0fd50..07453dbb 100644 --- a/eotimeseriesviewer/mapvisualization.py +++ b/eotimeseriesviewer/mapvisualization.py @@ -26,24 +26,30 @@ import re import fnmatch import collections import copy +import enum import traceback import typing import numpy as np import qgis.utils -from qgis.PyQt.QtCore import Qt, QSize, pyqtSignal, QModelIndex, QTimer, QAbstractListModel -from qgis.PyQt.QtGui import QColor, QIcon, QGuiApplication, QMouseEvent -from qgis.PyQt.QtWidgets import QWidget, QLayoutItem, QFrame, QLabel, QGridLayout, QSlider, QMenu, QToolBox, QDialog -from qgis.PyQt.QtXml import QDomDocument, QDomNode, QDomElement -from qgis.core import QgsCoordinateReferenceSystem, QgsVector, QgsTextFormat, \ +from qgis.PyQt.QtCore import \ + Qt, QSize, pyqtSignal, QModelIndex, QTimer, QAbstractListModel +from qgis.PyQt.QtGui import \ + QColor, QIcon, QGuiApplication, QMouseEvent +from qgis.PyQt.QtWidgets import \ + QWidget, QLayoutItem, QFrame, QLabel, QGridLayout, QSlider, QMenu, \ + QToolBox, QDialog, QAction +from qgis.PyQt.QtXml import \ + QDomDocument, QDomNode, QDomElement +from qgis.core import \ + QgsCoordinateReferenceSystem, QgsVector, QgsTextFormat, \ QgsRectangle, QgsRasterRenderer, QgsMapLayerStore, QgsMapLayerStyle, \ - QgsLayerTreeModel, QgsLayerTreeGroup, \ - QgsLayerTree, QgsLayerTreeLayer, \ + QgsLayerTreeModel, QgsLayerTreeGroup, QgsPointXY, \ + QgsLayerTree, QgsLayerTreeLayer, QgsReadWriteContext, \ QgsRasterLayer, QgsVectorLayer, QgsMapLayer, QgsMapLayerProxyModel, QgsColorRamp, QgsSingleBandPseudoColorRenderer - -from qgis.gui import * -from qgis.gui import QgsDockWidget, QgsMapCanvas, QgsMapTool, QgsCollapsibleGroupBox, QgsLayerTreeView, \ +from qgis.gui import \ + QgsDockWidget, QgsMapCanvas, QgsMapTool, QgsCollapsibleGroupBox, QgsLayerTreeView, \ QgisInterface, QgsLayerTreeViewMenuProvider, QgsLayerTreeMapCanvasBridge, \ QgsProjectionSelectionWidget, QgsMessageBar from .externals.qps.crosshair.crosshair import getCrosshairStyle, CrosshairStyle, CrosshairMapCanvasItem @@ -53,13 +59,15 @@ from .mapcanvas import MapCanvas, MapCanvasInfoItem, KEY_LAST_CLICKED from .timeseries import SensorInstrument, TimeSeriesDate, TimeSeries, SensorProxyLayer from .utils import loadUi, SpatialPoint, SpatialExtent, datetime64 from eotimeseriesviewer import DIR_UI -from eotimeseriesviewer.main import fixMenuButtons +from eotimeseriesviewer.utils import fixMenuButtons KEY_LOCKED_LAYER = 'eotsv/locked' KEY_SENSOR_GROUP = 'eotsv/sensorgroup' KEY_SENSOR_LAYER = 'eotsv/sensorlayer' def equalTextFormats(tf1: QgsTextFormat, tf2: QgsTextFormat) -> True: + if not (isinstance(tf1, QgsTextFormat) and isinstance(tf2, QgsTextFormat)): + return False return tf1.toMimeData().text() == tf2.toMimeData().text() @@ -89,10 +97,13 @@ class MapView(QFrame): loadUi(DIR_UI / 'mapview.ui', self) # self.setupUi(self) - from eotimeseriesviewer.settings import values, Keys - DEFAULT_VALUES = values() - self.mMapBackgroundColor = DEFAULT_VALUES[Keys.MapBackgroundColor] - self.mMapTextFormat = DEFAULT_VALUES[Keys.MapTextFormat] + from eotimeseriesviewer.settings import values, Keys, defaultValues, value + + DEFAULT_VALUES = defaultValues() + self.mMapBackgroundColor: QColor = value(Keys.MapBackgroundColor, + default=DEFAULT_VALUES.get(Keys.MapBackgroundColor, QColor('black'))) + self.mMapTextFormat: QgsTextFormat = value(Keys.MapTextFormat, + default=DEFAULT_VALUES.get(Keys.MapTextFormat, QgsTextFormat())) self.mMapWidget = None self.mLayerStyleInitialized: typing.Dict[SensorInstrument, bool] = dict() @@ -251,7 +262,6 @@ class MapView(QFrame): return self.title() def setMapTextFormat(self, textformat: QgsTextFormat) -> QgsTextFormat: - if not equalTextFormats(self.mapTextFormat(), textformat): self.mMapTextFormat = textformat self.sigCanvasAppearanceChanged.emit() @@ -2159,9 +2169,9 @@ class MapViewDock(QgsDockWidget): self.mLastNDatesPerMapView = n def setMapTextFormat(self, textFormat: QgsTextFormat): - - if not equalTextFormats(textFormat, self.mapTextFormat()): - self.btnTextFormat.setTextFormat(textFormat) + if isinstance(textFormat, QgsTextFormat): + if not equalTextFormats(textFormat, self.mapTextFormat()): + self.btnTextFormat.setTextFormat(textFormat) def mapTextFormat(self) -> QgsTextFormat: return self.btnTextFormat.textFormat() -- GitLab