diff --git a/src/gui/layout/qgslayoutmapgridwidget.cpp b/src/gui/layout/qgslayoutmapgridwidget.cpp index d016724580b0..dcb87052094d 100644 --- a/src/gui/layout/qgslayoutmapgridwidget.cpp +++ b/src/gui/layout/qgslayoutmapgridwidget.cpp @@ -76,7 +76,6 @@ QgsLayoutMapGridWidget::QgsLayoutMapGridWidget( QgsLayoutItemMapGrid *mapGrid, Q connect( mGridFrameFill1ColorButton, &QgsColorButton::colorChanged, this, &QgsLayoutMapGridWidget::mGridFrameFill1ColorButton_colorChanged ); connect( mGridFrameFill2ColorButton, &QgsColorButton::colorChanged, this, &QgsLayoutMapGridWidget::mGridFrameFill2ColorButton_colorChanged ); connect( mGridTypeComboBox, static_cast( &QComboBox::currentIndexChanged ), this, &QgsLayoutMapGridWidget::mGridTypeComboBox_currentIndexChanged ); - connect( mMapGridCRSButton, &QPushButton::clicked, this, &QgsLayoutMapGridWidget::mMapGridCRSButton_clicked ); connect( mMapGridUnitComboBox, static_cast( &QComboBox::currentIndexChanged ), this, &QgsLayoutMapGridWidget::intervalUnitChanged ); connect( mGridBlendComboBox, static_cast( &QComboBox::currentIndexChanged ), this, &QgsLayoutMapGridWidget::mGridBlendComboBox_currentIndexChanged ); connect( mCheckGridLeftSide, &QCheckBox::toggled, this, &QgsLayoutMapGridWidget::mCheckGridLeftSide_toggled ); @@ -109,6 +108,10 @@ QgsLayoutMapGridWidget::QgsLayoutMapGridWidget( QgsLayoutItemMapGrid *mapGrid, Q connect( mEnabledCheckBox, &QCheckBox::toggled, this, &QgsLayoutMapGridWidget::gridEnabledToggled ); setPanelTitle( tr( "Map Grid Properties" ) ); + mMapGridCrsSelector->setOptionVisible( QgsProjectionSelectionWidget::CrsNotSet, true ); + mMapGridCrsSelector->setNotSetText( tr( "Use Map CRS" ) ); + + connect( mMapGridCrsSelector, &QgsProjectionSelectionWidget::crsChanged, this, &QgsLayoutMapGridWidget::mapGridCrsChanged ); blockAllSignals( true ); @@ -631,10 +634,7 @@ void QgsLayoutMapGridWidget::setGridItems() mMinWidthSpinBox->setValue( mMapGrid->minimumIntervalWidth() ); mMaxWidthSpinBox->setValue( mMapGrid->maximumIntervalWidth() ); - //CRS button - QgsCoordinateReferenceSystem gridCrs = mMapGrid->crs(); - QString crsButtonText = gridCrs.isValid() ? gridCrs.authid() : tr( "Change…" ); - mMapGridCRSButton->setText( crsButtonText ); + whileBlocking( mMapGridCrsSelector )->setCrs( mMapGrid->crs() ); } void QgsLayoutMapGridWidget::mIntervalXSpinBox_editingFinished() @@ -1144,25 +1144,21 @@ void QgsLayoutMapGridWidget::mGridTypeComboBox_currentIndexChanged( int ) mMap->endCommand(); } -void QgsLayoutMapGridWidget::mMapGridCRSButton_clicked() +void QgsLayoutMapGridWidget::mapGridCrsChanged( const QgsCoordinateReferenceSystem &crs ) { if ( !mMapGrid || !mMap ) { return; } - QgsProjectionSelectionDialog crsDialog( this ); - QgsCoordinateReferenceSystem crs = mMapGrid->crs(); - crsDialog.setCrs( crs.isValid() ? crs : mMap->crs() ); + if ( mMapGrid->crs() == crs ) + return; - if ( crsDialog.exec() == QDialog::Accepted ) - { - mMap->beginCommand( tr( "Change Grid CRS" ) ); - mMapGrid->setCrs( crsDialog.crs() ); - mMap->updateBoundingRect(); - mMapGridCRSButton->setText( crsDialog.crs().authid() ); - mMap->endCommand(); - } + mMap->beginCommand( tr( "Change Grid CRS" ) ); + mMapGrid->setCrs( crs ); + mMap->updateBoundingRect(); + mMap->update(); + mMap->endCommand(); } void QgsLayoutMapGridWidget::mDrawAnnotationGroupBox_toggled( bool state ) diff --git a/src/gui/layout/qgslayoutmapgridwidget.h b/src/gui/layout/qgslayoutmapgridwidget.h index ba4f853d6899..6b2b0b90624e 100644 --- a/src/gui/layout/qgslayoutmapgridwidget.h +++ b/src/gui/layout/qgslayoutmapgridwidget.h @@ -65,7 +65,7 @@ class GUI_EXPORT QgsLayoutMapGridWidget: public QgsLayoutItemBaseWidget, private void mGridFrameFill1ColorButton_colorChanged( const QColor &newColor ); void mGridFrameFill2ColorButton_colorChanged( const QColor &newColor ); void mGridTypeComboBox_currentIndexChanged( int ); - void mMapGridCRSButton_clicked(); + void mapGridCrsChanged( const QgsCoordinateReferenceSystem &crs ); void mGridBlendComboBox_currentIndexChanged( int index ); void mCheckGridLeftSide_toggled( bool checked ); void mCheckGridRightSide_toggled( bool checked ); diff --git a/src/ui/layout/qgslayoutmapgridwidgetbase.ui b/src/ui/layout/qgslayoutmapgridwidgetbase.ui index 9aac541a2deb..30269473bfbd 100644 --- a/src/ui/layout/qgslayoutmapgridwidgetbase.ui +++ b/src/ui/layout/qgslayoutmapgridwidgetbase.ui @@ -48,8 +48,8 @@ 0 0 - 423 - 1600 + 425 + 1660 @@ -108,56 +108,32 @@ Appearance - - + + - Change… + Cross width + + + false - - - - - - - - - - - - - - - - - - - - Y - - - 12 - - - 9999999.000000000000000 - - - - - - - X - - - 12 - - - 9999999.000000000000000 - - - - + + + + + + + Blend mode + + + + + + + CRS + + @@ -172,6 +148,33 @@ + + + + Qt::StrongFocus + + + + + + + Line style + + + false + + + + + + + Interval + + + false + + + @@ -331,30 +334,13 @@ - - - - Line style - - - false - - - - - - - Interval - - - false - - + + - - + + - Cross width + Marker style false @@ -371,33 +357,6 @@ - - - - CRS - - - - - - - Blend mode - - - - - - - - - - - - - - - - @@ -411,18 +370,59 @@ - - + + + + + - Marker style - - - false + - - + + + + + + + + + + + + + + + + + + + + Y + + + 12 + + + 9999999.000000000000000 + + + + + + + X + + + 12 + + + 9999999.000000000000000 + + + + @@ -995,6 +995,11 @@ + + QgsDoubleSpinBox + QDoubleSpinBox +
qgsdoublespinbox.h
+
QgsColorButton QToolButton @@ -1002,9 +1007,10 @@ 1 - QgsDoubleSpinBox - QDoubleSpinBox -
qgsdoublespinbox.h
+ QgsScrollArea + QScrollArea +
qgsscrollarea.h
+ 1
QgsFontButton @@ -1026,12 +1032,6 @@ QToolButton
qgssymbolbutton.h
- - QgsScrollArea - QScrollArea -
qgsscrollarea.h
- 1 -
QgsCollapsibleGroupBoxBasic QGroupBox @@ -1043,13 +1043,19 @@ QComboBox
qgsblendmodecombobox.h
+ + QgsProjectionSelectionWidget + QWidget +
qgsprojectionselectionwidget.h
+ 1 +
scrollArea mEnabledCheckBox mEnabledDDBtn mGridTypeComboBox - mMapGridCRSButton + mMapGridCrsSelector mMapGridUnitComboBox mMinWidthSpinBox mMaxWidthSpinBox