Example #1
0
    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
Example #2
0
 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()
Example #3
0
    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)
Example #4
0
    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)
Example #5
0
    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()
Example #6
0
    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()
Example #7
0
    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()
Example #8
0
    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))