def edit_cancel_clicked(self): """ When cancel clicked """ if len(QgsProject.instance().mapLayersByName( "bulk_load_outlines")) > 0: if isinstance(self.change_instance, bulk_load_changes.EditAttribute): try: self.bulk_load_layer.selectionChanged.disconnect( self.change_instance.selection_changed) except TypeError: pass elif isinstance(self.change_instance, bulk_load_changes.EditGeometry): try: self.bulk_load_layer.geometryChanged.disconnect( self.change_instance.geometry_changed) except TypeError: pass try: self.bulk_load_layer.featureAdded.disconnect() except TypeError: pass elif isinstance(self.change_instance, bulk_load_changes.AddBulkLoad): try: self.bulk_load_layer.featureAdded.disconnect() except TypeError: pass try: self.bulk_load_layer.featureDeleted.disconnect() except TypeError: pass try: self.bulk_load_layer.geometryChanged.disconnect() except TypeError: pass if self.polyline: self.polyline.reset() if isinstance(self.circle_tool, PointTool): self.circle_tool.canvas_clicked.disconnect() self.circle_tool.mouse_moved.disconnect() self.circle_tool.deactivate() iface.actionPan().trigger() iface.actionCancelEdits().trigger() self.setup_toolbar() self.change_instance = None
def edit_reset_clicked(self): """ When production frame btn_edit_reset clicked """ self.editing_layer.geometryChanged.disconnect(self.geometry_changed) iface.actionCancelEdits().trigger() self.editing_layer.geometryChanged.connect(self.geometry_changed) self.edit_dialog.geoms = {} # restart editing iface.actionToggleEditing().trigger() iface.actionVertexTool().trigger() iface.activeLayer().removeSelection() # reset and disable comboboxes self.disable_UI_functions()
def edit_attribute(self): """When the user selects to edit a building attribute""" self.setWindowTitle("Edit Attribute") self.ids = [] self.building_outline_id = None iface.actionCancelEdits().trigger() # reset toolbar for action in iface.building_toolbar.actions(): if action.text() not in ["Pan Map", "Add Outline", "Edit Geometry", "Edit Attributes"]: iface.building_toolbar.removeAction(action) if action.text() in ["Edit Attributes"]: action.setDisabled(True) else: action.setEnabled(True) try: self.btn_edit_save.clicked.disconnect() except TypeError: pass try: self.btn_edit_reset.clicked.disconnect() except TypeError: pass if self.parent_frame_name == "BulkLoadFrame" or self.parent_frame_name == "AlterRelationships": self.change_instance = bulk_load_changes.EditAttribute(self) self.layout_status.show() self.layout_capture_method.show() self.layout_lifecycle_stage.hide() self.layout_general_info.show() self.layout_end_lifespan.hide() elif self.parent_frame_name == "ProductionFrame": self.change_instance = production_changes.EditAttribute(self) self.layout_status.hide() self.layout_capture_method.show() self.layout_lifecycle_stage.show() self.layout_general_info.show() self.layout_end_lifespan.show() try: self.btn_end_lifespan.clicked.disconnect() except Exception: pass self.btn_end_lifespan.clicked.connect(partial(self.change_instance.end_lifespan, True)) # set up signals and slots self.btn_edit_save.clicked.connect(partial(self.change_instance.edit_save_clicked, True)) self.btn_edit_reset.clicked.connect(self.change_instance.edit_reset_clicked) self.editing_layer.selectionChanged.connect(self.change_instance.selection_changed)
def add_outline(self): """When the user selects to add a new outline""" self.setWindowTitle("Add Outline") self.added_geoms = OrderedDict() self.geom = None iface.actionCancelEdits().trigger() # reset toolbar for action in iface.building_toolbar.actions(): if action.text() not in ["Pan Map", "Add Outline", "Edit Geometry", "Edit Attributes"]: iface.building_toolbar.removeAction(action) if action.text() == "Add Outline": action.setDisabled(True) else: action.setEnabled(True) # set change instance to added class try: self.btn_edit_save.clicked.disconnect() except TypeError: pass try: self.btn_edit_reset.clicked.disconnect() except TypeError: pass if self.parent_frame_name == "BulkLoadFrame" or self.parent_frame_name == "AlterRelationships": self.change_instance = bulk_load_changes.AddBulkLoad(self) self.layout_status.hide() self.layout_capture_method.show() self.layout_lifecycle_stage.hide() self.layout_general_info.show() self.layout_end_lifespan.hide() elif self.parent_frame_name == "ProductionFrame": self.change_instance = production_changes.AddProduction(self) self.layout_status.hide() self.layout_capture_method.show() self.layout_lifecycle_stage.show() self.layout_general_info.show() self.layout_end_lifespan.hide() # connect signals and slots self.btn_edit_save.clicked.connect(partial(self.change_instance.edit_save_clicked, True)) self.btn_edit_reset.clicked.connect(self.change_instance.edit_reset_clicked) self.editing_layer.featureAdded.connect(self.change_instance.creator_feature_added) self.editing_layer.featureDeleted.connect(self.change_instance.creator_feature_deleted) self.editing_layer.geometryChanged.connect(self.change_instance.creator_geometry_changed)
def edit_reset_clicked(self): """ When production frame btn_edit_reset clicked """ self.editing_layer.geometryChanged.disconnect( self.creator_geometry_changed) iface.actionCancelEdits().trigger() self.editing_layer.geometryChanged.connect( self.creator_geometry_changed) # restart editing iface.actionToggleEditing().trigger() iface.actionAddFeature().trigger() # reset and disable comboboxes if self.parent_frame.polyline: self.parent_frame.polyline.reset() iface.mapCanvas().refresh() self.disable_UI_functions() self.edit_dialog.geom = None self.edit_dialog.added_geoms = OrderedDict()
def reset_clicked(self): """Called When reset is clicked""" self.geom = None self.added_building_ids = [] self.le_area_title.clear() self.le_area_title.setDisabled(True) self.le_external_id.setDisabled(True) self.rb_select_from_layer.setChecked(False) self.mcb_selection_layer.setDisabled(True) self.l_wrong_projection.setText("") iface.setActiveLayer(self.capture_source_area) self.capture_source_area.geometryChanged.disconnect( self.creator_geometry_changed) iface.actionCancelEdits().trigger() self.capture_source_area.geometryChanged.connect( self.creator_geometry_changed) # restart editing iface.actionToggleEditing().trigger() iface.actionAddFeature().trigger()
def edit_reset_clicked(self): """ When bulk load frame btn_reset_save clicked """ self.editing_layer.geometryChanged.disconnect( self.creator_geometry_changed) iface.actionCancelEdits().trigger() self.editing_layer.geometryChanged.connect( self.creator_geometry_changed) # restart editing iface.actionToggleEditing().trigger() if not self.parent_frame.circle_action.isChecked(): iface.actionAddFeature().trigger() # reset and disable comboboxes self.disable_UI_functions() if self.parent_frame.polyline: self.parent_frame.polyline.reset() self.edit_dialog.geom = None self.edit_dialog.added_geoms = OrderedDict()
def close_frame(self): """ Clean up and remove the edit production frame. """ if self.change_instance is not None: self.edit_dialog.close() iface.actionCancelEdits().trigger() QgsProject.instance().layerWillBeRemoved.disconnect( self.layers_removed) self.layer_registry.remove_layer(self.building_layer) self.layer_registry.remove_layer(self.building_historic) # reset toolbar for action in iface.building_toolbar.actions(): if action.objectName() not in ["mActionPan"]: iface.building_toolbar.removeAction(action) iface.building_toolbar.hide() from buildings.gui.menu_frame import MenuFrame dw = self.dockwidget dw.stk_options.removeWidget(dw.stk_options.currentWidget()) dw.new_widget(MenuFrame(dw))