From c82048379508d217a7949e78d580ffdd86684791 Mon Sep 17 00:00:00 2001 From: Withalion Date: Tue, 25 Feb 2025 09:27:06 +0100 Subject: [PATCH] Fix rebase issues on upgraded RubberBand3D --- src/app/3d/qgs3dmapcanvaswidget.cpp | 6 ++++-- src/app/3d/qgs3dmaptoolpaintbrush.cpp | 8 +++++--- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/app/3d/qgs3dmapcanvaswidget.cpp b/src/app/3d/qgs3dmapcanvaswidget.cpp index e92ce4886bc9..31ac2c1fb06f 100644 --- a/src/app/3d/qgs3dmapcanvaswidget.cpp +++ b/src/app/3d/qgs3dmapcanvaswidget.cpp @@ -94,7 +94,6 @@ Qgs3DMapCanvasWidget::Qgs3DMapCanvasWidget( const QString &name, bool isDocked ) mEditingToolBar->addAction( mActionUndo ); mEditingToolBar->addAction( mActionRedo ); mEditingToolBar->addSeparator(); - mEditingToolBar->addWidget( mPointCloudEditingToolbar ); mEditingToolsAction = new QAction( QgsApplication::getThemeIcon( QStringLiteral( "mActionSelectPolygon.svg" ) ), tr( "Select Editing Tool" ), this ); mEditingToolsAction->setMenu( mEditingToolsMenu ); @@ -104,6 +103,7 @@ Qgs3DMapCanvasWidget::Qgs3DMapCanvasWidget( const QString &name, bool isDocked ) QAction *actionPointCloudChangeAttributeTool = mEditingToolsMenu->addAction( QIcon( QgsApplication::iconPath( QStringLiteral( "mActionSelectPolygon.svg" ) ) ), tr( "Polygon selector" ), this, &Qgs3DMapCanvasWidget::changePointCloudAttribute ); QAction *actionPaintBrush = mEditingToolsMenu->addAction( QIcon( QgsApplication::iconPath( QStringLiteral( "propertyicons/rendering.svg" ) ) ), tr( "Paint Brush Selector" ), this, &Qgs3DMapCanvasWidget::paintBrush ); + mEditingToolBar->addWidget( mPointCloudEditingToolbar ); mPointCloudEditingToolbar->addWidget( new QLabel( tr( "Attribute" ) ) ); mCboChangeAttribute = new QComboBox(); mPointCloudEditingToolbar->addWidget( mCboChangeAttribute ); @@ -502,10 +502,11 @@ void Qgs3DMapCanvasWidget::updateLayerRelatedActions( QgsMapLayer *layer ) mPointCloudEditingToolbar->setEnabled( false ); mActionToggleEditing->setEnabled( false ); mActionToggleEditing->setChecked( false ); + mEditingToolsAction->setEnabled( false ); mActionUndo->setEnabled( false ); mActionRedo->setEnabled( false ); - if ( mCanvas->mapTool() == mMapToolPointCloudChangeAttribute ) + if ( mCanvas->mapTool() ) mCanvas->setMapTool( nullptr ); return; @@ -538,6 +539,7 @@ void Qgs3DMapCanvasWidget::updateLayerRelatedActions( QgsMapLayer *layer ) connect( pcLayer->undoStack(), &QUndoStack::canUndoChanged, mActionUndo, &QAction::setEnabled ); connect( pcLayer->undoStack(), &QUndoStack::canRedoChanged, mActionRedo, &QAction::setEnabled ); mPointCloudEditingToolbar->setEnabled( pcLayer->isEditable() ); + mEditingToolsAction->setEnabled( pcLayer->isEditable() ); // Re-parse the class values when the renderer changes - renderer3DChanged() is not fired when only the renderer symbol is changed connect( pcLayer, &QgsMapLayer::request3DUpdate, this, &Qgs3DMapCanvasWidget::onPointCloudChangeAttributeSettingsChanged ); } diff --git a/src/app/3d/qgs3dmaptoolpaintbrush.cpp b/src/app/3d/qgs3dmaptoolpaintbrush.cpp index bb7a715e71a6..8341fe63eeb7 100644 --- a/src/app/3d/qgs3dmaptoolpaintbrush.cpp +++ b/src/app/3d/qgs3dmaptoolpaintbrush.cpp @@ -152,14 +152,16 @@ QVector Qgs3DMapToolPaintBrush::selectedPointsInNode( const QgsGeometry &se void Qgs3DMapToolPaintBrush::activate() { mCanvas->cameraController()->setInputHandlersEnabled( false ); - mSelectionRubberBand.reset( new QgsRubberBand3D( *mCanvas->mapSettings(), mCanvas->engine(), mCanvas->engine()->frameGraph()->rubberBandsRootEntity(), Qgis::GeometryType::Point, true ) ); + mSelectionRubberBand.reset( new QgsRubberBand3D( *mCanvas->mapSettings(), mCanvas->engine(), mCanvas->engine()->frameGraph()->rubberBandsRootEntity(), Qgis::GeometryType::Point ) ); + mSelectionRubberBand->setMarkerOutlineStyle( Qt::PenStyle::DotLine ); mSelectionRubberBand->setWidth( 32 ); mSelectionRubberBand->setOutlineColor( mSelectionRubberBand->color() ); mSelectionRubberBand->setColor( QColorConstants::Transparent ); mSelectionRubberBand->addPoint( Qgs3DUtils::screenPointToMapCoordinates( QCursor::pos(), *mCanvas ) ); mIsActive = true; mHighlighterRubberBand.reset( new QgsRubberBand3D( *mCanvas->mapSettings(), mCanvas->engine(), mCanvas->engine()->frameGraph()->rubberBandsRootEntity(), Qgis::GeometryType::Polygon ) ); - mHighlighterRubberBand->setMarkerType( QgsRubberBand3D::None ); + mHighlighterRubberBand->setMarkersEnabled( false ); + mHighlighterRubberBand->setEdgesEnabled( false ); } void Qgs3DMapToolPaintBrush::deactivate() @@ -203,7 +205,7 @@ void Qgs3DMapToolPaintBrush::generateHighlightArea() }; searchPolygon->addZValue( 0 ); searchPolygon->transformVertices( transform ); - mHighlighterRubberBand->setPolygon( *searchPolygon ); + mHighlighterRubberBand->setGeometry( QgsGeometry( searchPolygon->clone() ) ); } void Qgs3DMapToolPaintBrush::mousePressEvent( QMouseEvent *event )