def restore_settings(self): """ Restores saved settings """ current_label_filter = SettingsRegistry.label_filtering() self.filtering_combo.setCurrentIndex(self.filtering_combo.findData(current_label_filter)) self.check_center_on_selection.setChecked(SettingsRegistry.center_on_selected()) self.check_flash_feature.setChecked(SettingsRegistry.flash_feature()) self.check_flash_vertex.setChecked(SettingsRegistry.flash_vertex()) self.point_symbol_button.setSymbol(SettingsRegistry.vertex_symbol()) self.vertex_font_button.setTextFormat(SettingsRegistry.vertex_format()) self.number_format = SettingsRegistry.number_format()
def __init__(self, source: QgsFeatureSource, layer_type: QgsWkbTypes.GeometryType, selection: list, vertex_number=Optional[int], topological_geometries: Optional[Dict[int, QgsGeometry]] = None): if layer_type == QgsWkbTypes.LineGeometry: symbol = QgsLineSymbol() else: symbol = QgsFillSymbol() marker_line = QgsMarkerLineSymbolLayer() marker_line.setRotateMarker(False) marker_line.setPlacement(QgsMarkerLineSymbolLayer.Vertex) vertex_marker_symbol = SettingsRegistry.vertex_symbol() # not so nice, but required to allow us to dynamically change this color mid-way through rendering for layer in vertex_marker_symbol: layer.setDataDefinedProperty(QgsSymbolLayer.PropertyFillColor, QgsProperty.fromValue(None)) font_marker_symbol = QgsMarkerSymbol() text_format = SettingsRegistry.vertex_format() font_marker = TextRendererMarkerSymbolLayer(text_format, vertex_number) font_marker.setSubSymbol(vertex_marker_symbol) font_marker_symbol.changeSymbolLayer(0, font_marker) marker_line.setSubSymbol(font_marker_symbol) symbol.changeSymbolLayer(0, marker_line) symbol.setClipFeaturesToExtent(False) super().__init__(symbol) self.selection = sorted(selection) self.feature_index = 0 self.vertex_number = vertex_number self.source = source self.topological_geometries = topological_geometries