void QgsLayoutMapGridWidget::mFrameStyleComboBox_currentIndexChanged( int ) { if ( !mMapGrid || !mMap ) { return; } QgsLayoutItemMapGrid::FrameStyle style = static_cast< QgsLayoutItemMapGrid::FrameStyle >( mFrameStyleComboBox->currentData().toInt() ); mMap->beginCommand( tr( "Change Frame Style" ) ); mMapGrid->setFrameStyle( style ); switch ( style ) { case QgsLayoutItemMapGrid::Zebra: case QgsLayoutItemMapGrid::ZebraNautical: toggleFrameControls( true, true, true ); break; case QgsLayoutItemMapGrid::InteriorTicks: case QgsLayoutItemMapGrid::ExteriorTicks: case QgsLayoutItemMapGrid::InteriorExteriorTicks: toggleFrameControls( true, false, true ); break; case QgsLayoutItemMapGrid::LineBorder: case QgsLayoutItemMapGrid::LineBorderNautical: toggleFrameControls( true, false, false ); break; case QgsLayoutItemMapGrid::NoFrame: toggleFrameControls( false, false, false ); break; } mMap->updateBoundingRect(); mMap->update(); mMap->endCommand(); }
void QgsComposerMapWidget::on_mFrameStyleComboBox_currentIndexChanged( const QString& text ) { toggleFrameControls( text != tr( "No frame" ) ); if ( !mComposerMap ) { return; } mComposerMap->beginCommand( tr( "Changed grid frame style" ) ); if ( text == tr( "Zebra" ) ) { mComposerMap->setGridFrameStyle( QgsComposerMap::Zebra ); } else //no frame { mComposerMap->setGridFrameStyle( QgsComposerMap::NoGridFrame ); } mComposerMap->updateBoundingRect(); mComposerMap->update(); mComposerMap->endCommand(); }
void QgsComposerMapGridWidget::on_mFrameStyleComboBox_currentIndexChanged( const QString& text ) { if ( !mComposerMapGrid || !mComposerMap ) { return; } mComposerMap->beginCommand( tr( "Changed grid frame style" ) ); if ( text == tr( "Zebra" ) ) { mComposerMapGrid->setFrameStyle( QgsComposerMapGrid::Zebra ); toggleFrameControls( true, true, true ); } else if ( text == tr( "Interior ticks" ) ) { mComposerMapGrid->setFrameStyle( QgsComposerMapGrid::InteriorTicks ); toggleFrameControls( true, false, true ); } else if ( text == tr( "Exterior ticks" ) ) { mComposerMapGrid->setFrameStyle( QgsComposerMapGrid::ExteriorTicks ); toggleFrameControls( true, false, true ); } else if ( text == tr( "Interior and exterior ticks" ) ) { mComposerMapGrid->setFrameStyle( QgsComposerMapGrid::InteriorExteriorTicks ); toggleFrameControls( true, false, true ); } else if ( text == tr( "Line border" ) ) { mComposerMapGrid->setFrameStyle( QgsComposerMapGrid::LineBorder ); toggleFrameControls( true, false, false ); } else //no frame { mComposerMapGrid->setFrameStyle( QgsComposerMapGrid::NoFrame ); toggleFrameControls( false, false, false ); } mComposerMap->updateBoundingRect(); mComposerMap->update(); mComposerMap->endCommand(); }
void QgsComposerMapWidget::updateGuiElements() { if ( mComposerMap ) { blockAllSignals( true ); //width, height, scale // QRectF composerMapRect = mComposerMap->rect(); mScaleLineEdit->setText( QString::number( mComposerMap->scale(), 'f', 0 ) ); //preview mode QgsComposerMap::PreviewMode previewMode = mComposerMap->previewMode(); int index = -1; if ( previewMode == QgsComposerMap::Cache ) { index = mPreviewModeComboBox->findText( tr( "Cache" ) ); mUpdatePreviewButton->setEnabled( true ); } else if ( previewMode == QgsComposerMap::Render ) { index = mPreviewModeComboBox->findText( tr( "Render" ) ); mUpdatePreviewButton->setEnabled( true ); } else if ( previewMode == QgsComposerMap::Rectangle ) { index = mPreviewModeComboBox->findText( tr( "Rectangle" ) ); mUpdatePreviewButton->setEnabled( false ); } if ( index != -1 ) { mPreviewModeComboBox->setCurrentIndex( index ); } //composer map extent QgsRectangle composerMapExtent = *( mComposerMap->currentMapExtent() ); mXMinLineEdit->setText( QString::number( composerMapExtent.xMinimum(), 'f', 3 ) ); mXMaxLineEdit->setText( QString::number( composerMapExtent.xMaximum(), 'f', 3 ) ); mYMinLineEdit->setText( QString::number( composerMapExtent.yMinimum(), 'f', 3 ) ); mYMaxLineEdit->setText( QString::number( composerMapExtent.yMaximum(), 'f', 3 ) ); mMapRotationSpinBox->setValue( mComposerMap->mapRotation() ); //keep layer list check box if ( mComposerMap->keepLayerSet() ) { mKeepLayerListCheckBox->setCheckState( Qt::Checked ); } else { mKeepLayerListCheckBox->setCheckState( Qt::Unchecked ); } //draw canvas items if ( mComposerMap->drawCanvasItems() ) { mDrawCanvasItemsCheckBox->setCheckState( Qt::Checked ); } else { mDrawCanvasItemsCheckBox->setCheckState( Qt::Unchecked ); } //overview frame int overviewMapFrameId = mComposerMap->overviewFrameMapId(); mOverviewFrameMapComboBox->setCurrentIndex( mOverviewFrameMapComboBox->findData( overviewMapFrameId ) ); //overview frame blending mode mOverviewBlendModeComboBox->setBlendMode( mComposerMap->overviewBlendMode() ); //overview inverted mOverviewInvertCheckbox->setChecked( mComposerMap->overviewInverted() ); //center overview mOverviewCenterCheckbox->setChecked( mComposerMap->overviewCentered() ); //grid if ( mComposerMap->gridEnabled() ) { mGridCheckBox->setChecked( true ); } else { mGridCheckBox->setChecked( false ); } mIntervalXSpinBox->setValue( mComposerMap->gridIntervalX() ); mIntervalYSpinBox->setValue( mComposerMap->gridIntervalY() ); mOffsetXSpinBox->setValue( mComposerMap->gridOffsetX() ); mOffsetYSpinBox->setValue( mComposerMap->gridOffsetY() ); QgsComposerMap::GridStyle gridStyle = mComposerMap->gridStyle(); if ( gridStyle == QgsComposerMap::Cross ) { mGridTypeComboBox->setCurrentIndex( mGridTypeComboBox->findText( tr( "Cross" ) ) ); } else { mGridTypeComboBox->setCurrentIndex( mGridTypeComboBox->findText( tr( "Solid" ) ) ); } mCrossWidthSpinBox->setValue( mComposerMap->crossLength() ); //grid frame mFrameWidthSpinBox->setValue( mComposerMap->gridFrameWidth() ); mGridFramePenSizeSpinBox->setValue( mComposerMap->gridFramePenSize() ); mGridFramePenColorButton->setColor( mComposerMap->gridFramePenColor() ); mGridFrameFill1ColorButton->setColor( mComposerMap->gridFrameFillColor1() ); mGridFrameFill2ColorButton->setColor( mComposerMap->gridFrameFillColor2() ); QgsComposerMap::GridFrameStyle gridFrameStyle = mComposerMap->gridFrameStyle(); if ( gridFrameStyle == QgsComposerMap::Zebra ) { mFrameStyleComboBox->setCurrentIndex( mFrameStyleComboBox->findText( tr( "Zebra" ) ) ); toggleFrameControls( true ); } else //NoGridFrame { mFrameStyleComboBox->setCurrentIndex( mFrameStyleComboBox->findText( tr( "No frame" ) ) ); toggleFrameControls( false ); } //grid blend mode mGridBlendComboBox->setBlendMode( mComposerMap->gridBlendMode() ); //grid annotation format QgsComposerMap::GridAnnotationFormat gf = mComposerMap->gridAnnotationFormat(); mAnnotationFormatComboBox->setCurrentIndex(( int )gf ); //grid annotation position initAnnotationPositionBox( mAnnotationPositionLeftComboBox, mComposerMap->gridAnnotationPosition( QgsComposerMap::Left ) ); initAnnotationPositionBox( mAnnotationPositionRightComboBox, mComposerMap->gridAnnotationPosition( QgsComposerMap::Right ) ); initAnnotationPositionBox( mAnnotationPositionTopComboBox, mComposerMap->gridAnnotationPosition( QgsComposerMap::Top ) ); initAnnotationPositionBox( mAnnotationPositionBottomComboBox, mComposerMap->gridAnnotationPosition( QgsComposerMap::Bottom ) ); //grid annotation direction initAnnotationDirectionBox( mAnnotationDirectionComboBoxLeft, mComposerMap->gridAnnotationDirection( QgsComposerMap::Left ) ); initAnnotationDirectionBox( mAnnotationDirectionComboBoxRight, mComposerMap->gridAnnotationDirection( QgsComposerMap::Right ) ); initAnnotationDirectionBox( mAnnotationDirectionComboBoxTop, mComposerMap->gridAnnotationDirection( QgsComposerMap::Top ) ); initAnnotationDirectionBox( mAnnotationDirectionComboBoxBottom, mComposerMap->gridAnnotationDirection( QgsComposerMap::Bottom ) ); mAnnotationFontColorButton->setColor( mComposerMap->annotationFontColor() ); mDistanceToMapFrameSpinBox->setValue( mComposerMap->annotationFrameDistance() ); if ( mComposerMap->showGridAnnotation() ) { mDrawAnnotationCheckableGroupBox->setChecked( true ); } else { mDrawAnnotationCheckableGroupBox->setChecked( false ); } mCoordinatePrecisionSpinBox->setValue( mComposerMap->gridAnnotationPrecision() ); //atlas controls mAtlasCheckBox->setChecked( mComposerMap->atlasDriven() ); mAtlasMarginSpinBox->setValue( static_cast<int>( mComposerMap->atlasMargin() * 100 ) ); if ( mComposerMap->atlasFixedScale() ) { mAtlasFixedScaleRadio->setChecked( true ); mAtlasMarginSpinBox->setEnabled( false ); } else { mAtlasMarginRadio->setChecked( true ); mAtlasMarginSpinBox->setEnabled( true ); } if ( !mComposerMap->atlasDriven() ) { mAtlasMarginSpinBox->setEnabled( false ); mAtlasMarginRadio->setEnabled( false ); mAtlasFixedScaleRadio->setEnabled( false ); } else { mAtlasFixedScaleRadio->setEnabled( true ); toggleAtlasMarginByLayerType(); } blockAllSignals( false ); } }
QgsComposerMapWidget::QgsComposerMapWidget( QgsComposerMap* composerMap ): QWidget(), mComposerMap( composerMap ) { setupUi( this ); //add widget for general composer item properties QgsComposerItemWidget* itemPropertiesWidget = new QgsComposerItemWidget( this, composerMap ); mainLayout->addWidget( itemPropertiesWidget ); mScaleLineEdit->setValidator( new QDoubleValidator( mScaleLineEdit ) ); mXMinLineEdit->setValidator( new QDoubleValidator( mXMinLineEdit ) ); mXMaxLineEdit->setValidator( new QDoubleValidator( mXMaxLineEdit ) ); mYMinLineEdit->setValidator( new QDoubleValidator( mYMinLineEdit ) ); mYMaxLineEdit->setValidator( new QDoubleValidator( mYMaxLineEdit ) ); blockAllSignals( true ); mPreviewModeComboBox->insertItem( 0, tr( "Cache" ) ); mPreviewModeComboBox->insertItem( 1, tr( "Render" ) ); mPreviewModeComboBox->insertItem( 2, tr( "Rectangle" ) ); mGridTypeComboBox->insertItem( 0, tr( "Solid" ) ); mGridTypeComboBox->insertItem( 1, tr( "Cross" ) ); mAnnotationFormatComboBox->insertItem( 0, tr( "Decimal" ) ); mAnnotationFormatComboBox->insertItem( 1, tr( "DegreeMinute" ) ); mAnnotationFormatComboBox->insertItem( 2, tr( "DegreeMinuteSecond" ) ); mAnnotationFontColorButton->setColorDialogTitle( tr( "Select font color" ) ); mAnnotationFontColorButton->setColorDialogOptions( QColorDialog::ShowAlphaChannel ); insertAnnotationPositionEntries( mAnnotationPositionLeftComboBox ); insertAnnotationPositionEntries( mAnnotationPositionRightComboBox ); insertAnnotationPositionEntries( mAnnotationPositionTopComboBox ); insertAnnotationPositionEntries( mAnnotationPositionBottomComboBox ); insertAnnotationDirectionEntries( mAnnotationDirectionComboBoxLeft ); insertAnnotationDirectionEntries( mAnnotationDirectionComboBoxRight ); insertAnnotationDirectionEntries( mAnnotationDirectionComboBoxTop ); insertAnnotationDirectionEntries( mAnnotationDirectionComboBoxBottom ); mFrameStyleComboBox->insertItem( 0, tr( "No frame" ) ); mFrameStyleComboBox->insertItem( 1, tr( "Zebra" ) ); mGridFramePenColorButton->setColorDialogTitle( tr( "Select grid frame color" ) ); mGridFramePenColorButton->setColorDialogOptions( QColorDialog::ShowAlphaChannel ); mGridFrameFill1ColorButton->setColorDialogTitle( tr( "Select grid frame fill color" ) ); mGridFrameFill1ColorButton->setColorDialogOptions( QColorDialog::ShowAlphaChannel ); mGridFrameFill2ColorButton->setColorDialogTitle( tr( "Select grid frame fill color" ) ); mGridFrameFill2ColorButton->setColorDialogOptions( QColorDialog::ShowAlphaChannel ); //set initial state of frame style controls toggleFrameControls( false ); connect( mGridCheckBox, SIGNAL( toggled( bool ) ), mDrawAnnotationCheckableGroupBox, SLOT( setEnabled( bool ) ) ); connect( mAtlasCheckBox, SIGNAL( toggled( bool ) ), this, SLOT( atlasToggled( bool ) ) ); if ( composerMap ) { connect( composerMap, SIGNAL( itemChanged() ), this, SLOT( setGuiElementValues() ) ); //get composition QgsComposition* composition = mComposerMap->composition(); if ( composition ) { QgsAtlasComposition* atlas = &composition->atlasComposition(); connect( atlas, SIGNAL( coverageLayerChanged( QgsVectorLayer* ) ), this, SLOT( atlasLayerChanged( QgsVectorLayer* ) ) ); connect( atlas, SIGNAL( toggled( bool ) ), this, SLOT( compositionAtlasToggled( bool ) ) ); } } updateOverviewSymbolMarker(); updateLineSymbolMarker(); updateGuiElements(); blockAllSignals( false ); }
void QgsComposerMapGridWidget::setGridItems() { if ( !mComposerMapGrid ) { return; } mIntervalXSpinBox->setValue( mComposerMapGrid->intervalX() ); mIntervalYSpinBox->setValue( mComposerMapGrid->intervalY() ); mOffsetXSpinBox->setValue( mComposerMapGrid->offsetX() ); mOffsetYSpinBox->setValue( mComposerMapGrid->offsetY() ); mCrossWidthSpinBox->setValue( mComposerMapGrid->crossLength() ); mFrameWidthSpinBox->setValue( mComposerMapGrid->frameWidth() ); mGridFramePenSizeSpinBox->setValue( mComposerMapGrid->framePenSize() ); mGridFramePenColorButton->setColor( mComposerMapGrid->framePenColor() ); mGridFrameFill1ColorButton->setColor( mComposerMapGrid->frameFillColor1() ); mGridFrameFill2ColorButton->setColor( mComposerMapGrid->frameFillColor2() ); QgsComposerMapGrid::GridStyle gridStyle = mComposerMapGrid->style(); switch ( gridStyle ) { case QgsComposerMapGrid::Cross: mGridTypeComboBox->setCurrentIndex( mGridTypeComboBox->findText( tr( "Cross" ) ) ); mCrossWidthSpinBox->setVisible( true ); mCrossWidthLabel->setVisible( true ); mGridLineStyleButton->setVisible( true ); mLineStyleLabel->setVisible( true ); mGridMarkerStyleButton->setVisible( false ); mMarkerStyleLabel->setVisible( false ); mGridBlendComboBox->setVisible( true ); mGridBlendLabel->setVisible( true ); break; case QgsComposerMapGrid::Markers: mGridTypeComboBox->setCurrentIndex( mGridTypeComboBox->findText( tr( "Markers" ) ) ); mCrossWidthSpinBox->setVisible( false ); mCrossWidthLabel->setVisible( false ); mGridLineStyleButton->setVisible( false ); mLineStyleLabel->setVisible( false ); mGridMarkerStyleButton->setVisible( true ); mMarkerStyleLabel->setVisible( true ); mGridBlendComboBox->setVisible( true ); mGridBlendLabel->setVisible( true ); break; case QgsComposerMapGrid::Solid: mGridTypeComboBox->setCurrentIndex( mGridTypeComboBox->findText( tr( "Solid" ) ) ); mCrossWidthSpinBox->setVisible( false ); mCrossWidthLabel->setVisible( false ); mGridLineStyleButton->setVisible( true ); mLineStyleLabel->setVisible( true ); mGridMarkerStyleButton->setVisible( false ); mMarkerStyleLabel->setVisible( false ); mGridBlendComboBox->setVisible( true ); mGridBlendLabel->setVisible( true ); break; case QgsComposerMapGrid::FrameAnnotationsOnly: mGridTypeComboBox->setCurrentIndex( mGridTypeComboBox->findText( tr( "Frame and annotations only" ) ) ); mCrossWidthSpinBox->setVisible( false ); mCrossWidthLabel->setVisible( false ); mGridLineStyleButton->setVisible( false ); mLineStyleLabel->setVisible( false ); mGridMarkerStyleButton->setVisible( false ); mMarkerStyleLabel->setVisible( false ); mGridBlendComboBox->setVisible( false ); mGridBlendLabel->setVisible( false ); break; } //grid frame mFrameWidthSpinBox->setValue( mComposerMapGrid->frameWidth() ); QgsComposerMapGrid::FrameStyle gridFrameStyle = mComposerMapGrid->frameStyle(); switch ( gridFrameStyle ) { case QgsComposerMapGrid::Zebra: mFrameStyleComboBox->setCurrentIndex( 1 ); toggleFrameControls( true, true, true ); break; case QgsComposerMapGrid::InteriorTicks: mFrameStyleComboBox->setCurrentIndex( 2 ); toggleFrameControls( true, false, true ); break; case QgsComposerMapGrid::ExteriorTicks: mFrameStyleComboBox->setCurrentIndex( 3 ); toggleFrameControls( true, false, true ); break; case QgsComposerMapGrid::InteriorExteriorTicks: mFrameStyleComboBox->setCurrentIndex( 4 ); toggleFrameControls( true, false, true ); break; case QgsComposerMapGrid::LineBorder: mFrameStyleComboBox->setCurrentIndex( 5 ); toggleFrameControls( true, false, false ); break; default: mFrameStyleComboBox->setCurrentIndex( 0 ); toggleFrameControls( false, false, false ); break; } mCheckGridLeftSide->setChecked( mComposerMapGrid->testFrameSideFlag( QgsComposerMapGrid::FrameLeft ) ); mCheckGridRightSide->setChecked( mComposerMapGrid->testFrameSideFlag( QgsComposerMapGrid::FrameRight ) ); mCheckGridTopSide->setChecked( mComposerMapGrid->testFrameSideFlag( QgsComposerMapGrid::FrameTop ) ); mCheckGridBottomSide->setChecked( mComposerMapGrid->testFrameSideFlag( QgsComposerMapGrid::FrameBottom ) ); initFrameDisplayBox( mFrameDivisionsLeftComboBox, mComposerMapGrid->frameDivisions( QgsComposerMapGrid::Left ) ); initFrameDisplayBox( mFrameDivisionsRightComboBox, mComposerMapGrid->frameDivisions( QgsComposerMapGrid::Right ) ); initFrameDisplayBox( mFrameDivisionsTopComboBox, mComposerMapGrid->frameDivisions( QgsComposerMapGrid::Top ) ); initFrameDisplayBox( mFrameDivisionsBottomComboBox, mComposerMapGrid->frameDivisions( QgsComposerMapGrid::Bottom ) ); //line style updateGridLineSymbolMarker(); //marker style updateGridMarkerSymbolMarker(); mGridBlendComboBox->setBlendMode( mComposerMapGrid->blendMode() ); mDrawAnnotationGroupBox->setChecked( mComposerMapGrid->annotationEnabled() ); initAnnotationDisplayBox( mAnnotationDisplayLeftComboBox, mComposerMapGrid->annotationDisplay( QgsComposerMapGrid::Left ) ); initAnnotationDisplayBox( mAnnotationDisplayRightComboBox, mComposerMapGrid->annotationDisplay( QgsComposerMapGrid::Right ) ); initAnnotationDisplayBox( mAnnotationDisplayTopComboBox, mComposerMapGrid->annotationDisplay( QgsComposerMapGrid::Top ) ); initAnnotationDisplayBox( mAnnotationDisplayBottomComboBox, mComposerMapGrid->annotationDisplay( QgsComposerMapGrid::Bottom ) ); initAnnotationPositionBox( mAnnotationPositionLeftComboBox, mComposerMapGrid->annotationPosition( QgsComposerMapGrid::Left ) ); initAnnotationPositionBox( mAnnotationPositionRightComboBox, mComposerMapGrid->annotationPosition( QgsComposerMapGrid::Right ) ); initAnnotationPositionBox( mAnnotationPositionTopComboBox, mComposerMapGrid->annotationPosition( QgsComposerMapGrid::Top ) ); initAnnotationPositionBox( mAnnotationPositionBottomComboBox, mComposerMapGrid->annotationPosition( QgsComposerMapGrid::Bottom ) ); initAnnotationDirectionBox( mAnnotationDirectionComboBoxLeft, mComposerMapGrid->annotationDirection( QgsComposerMapGrid::Left ) ); initAnnotationDirectionBox( mAnnotationDirectionComboBoxRight, mComposerMapGrid->annotationDirection( QgsComposerMapGrid::Right ) ); initAnnotationDirectionBox( mAnnotationDirectionComboBoxTop, mComposerMapGrid->annotationDirection( QgsComposerMapGrid::Top ) ); initAnnotationDirectionBox( mAnnotationDirectionComboBoxBottom, mComposerMapGrid->annotationDirection( QgsComposerMapGrid::Bottom ) ); mAnnotationFontColorButton->setColor( mComposerMapGrid->annotationFontColor() ); mAnnotationFormatComboBox->setCurrentIndex( mAnnotationFormatComboBox->findData( mComposerMapGrid->annotationFormat() ) ); mAnnotationFormatButton->setEnabled( mComposerMapGrid->annotationFormat() == QgsComposerMapGrid::CustomFormat ); mDistanceToMapFrameSpinBox->setValue( mComposerMapGrid->annotationFrameDistance() ); mCoordinatePrecisionSpinBox->setValue( mComposerMapGrid->annotationPrecision() ); //Unit QgsComposerMapGrid::GridUnit gridUnit = mComposerMapGrid->units(); if ( gridUnit == QgsComposerMapGrid::MapUnit ) { mMapGridUnitComboBox->setCurrentIndex( mMapGridUnitComboBox->findText( tr( "Map unit" ) ) ); } else if ( gridUnit == QgsComposerMapGrid::MM ) { mMapGridUnitComboBox->setCurrentIndex( mMapGridUnitComboBox->findText( tr( "Millimeter" ) ) ); } else if ( gridUnit == QgsComposerMapGrid::CM ) { mMapGridUnitComboBox->setCurrentIndex( mMapGridUnitComboBox->findText( tr( "Centimeter" ) ) ); } //CRS button QgsCoordinateReferenceSystem gridCrs = mComposerMapGrid->crs(); QString crsButtonText = gridCrs.isValid() ? gridCrs.authid() : tr( "change..." ); mMapGridCRSButton->setText( crsButtonText ); }
QgsComposerMapGridWidget::QgsComposerMapGridWidget( QgsComposerMapGrid* mapGrid, QgsComposerMap* composerMap ) : QgsComposerItemBaseWidget( nullptr, mapGrid ) , mComposerMap( composerMap ) , mComposerMapGrid( mapGrid ) { setupUi( this ); setPanelTitle( tr( "Map grid properties" ) ); blockAllSignals( true ); mGridTypeComboBox->insertItem( 0, tr( "Solid" ) ); mGridTypeComboBox->insertItem( 1, tr( "Cross" ) ); mGridTypeComboBox->insertItem( 2, tr( "Markers" ) ); mGridTypeComboBox->insertItem( 3, tr( "Frame and annotations only" ) ); insertFrameDisplayEntries( mFrameDivisionsLeftComboBox ); insertFrameDisplayEntries( mFrameDivisionsRightComboBox ); insertFrameDisplayEntries( mFrameDivisionsTopComboBox ); insertFrameDisplayEntries( mFrameDivisionsBottomComboBox ); mAnnotationFormatComboBox->addItem( tr( "Decimal" ), QgsComposerMapGrid::Decimal ); mAnnotationFormatComboBox->addItem( tr( "Decimal with suffix" ), QgsComposerMapGrid::DecimalWithSuffix ); mAnnotationFormatComboBox->addItem( tr( "Degree, minute" ), QgsComposerMapGrid::DegreeMinuteNoSuffix ); mAnnotationFormatComboBox->addItem( tr( "Degree, minute with suffix" ), QgsComposerMapGrid::DegreeMinute ); mAnnotationFormatComboBox->addItem( tr( "Degree, minute aligned" ), QgsComposerMapGrid::DegreeMinutePadded ); mAnnotationFormatComboBox->addItem( tr( "Degree, minute, second" ), QgsComposerMapGrid::DegreeMinuteSecondNoSuffix ); mAnnotationFormatComboBox->addItem( tr( "Degree, minute, second with suffix" ), QgsComposerMapGrid::DegreeMinuteSecond ); mAnnotationFormatComboBox->addItem( tr( "Degree, minute, second aligned" ), QgsComposerMapGrid::DegreeMinuteSecondPadded ); mAnnotationFormatComboBox->addItem( tr( "Custom" ), QgsComposerMapGrid::CustomFormat ); mAnnotationFontColorButton->setColorDialogTitle( tr( "Select font color" ) ); mAnnotationFontColorButton->setAllowAlpha( true ); mAnnotationFontColorButton->setContext( "composer" ); insertAnnotationDisplayEntries( mAnnotationDisplayLeftComboBox ); insertAnnotationDisplayEntries( mAnnotationDisplayRightComboBox ); insertAnnotationDisplayEntries( mAnnotationDisplayTopComboBox ); insertAnnotationDisplayEntries( mAnnotationDisplayBottomComboBox ); insertAnnotationPositionEntries( mAnnotationPositionLeftComboBox ); insertAnnotationPositionEntries( mAnnotationPositionRightComboBox ); insertAnnotationPositionEntries( mAnnotationPositionTopComboBox ); insertAnnotationPositionEntries( mAnnotationPositionBottomComboBox ); insertAnnotationDirectionEntries( mAnnotationDirectionComboBoxLeft ); insertAnnotationDirectionEntries( mAnnotationDirectionComboBoxRight ); insertAnnotationDirectionEntries( mAnnotationDirectionComboBoxTop ); insertAnnotationDirectionEntries( mAnnotationDirectionComboBoxBottom ); mGridFramePenColorButton->setColorDialogTitle( tr( "Select grid frame color" ) ); mGridFramePenColorButton->setAllowAlpha( true ); mGridFramePenColorButton->setContext( "composer" ); mGridFramePenColorButton->setNoColorString( tr( "Transparent frame" ) ); mGridFramePenColorButton->setShowNoColor( true ); mGridFrameFill1ColorButton->setColorDialogTitle( tr( "Select grid frame fill color" ) ); mGridFrameFill1ColorButton->setAllowAlpha( true ); mGridFrameFill1ColorButton->setContext( "composer" ); mGridFrameFill1ColorButton->setNoColorString( tr( "Transparent fill" ) ); mGridFrameFill1ColorButton->setShowNoColor( true ); mGridFrameFill2ColorButton->setColorDialogTitle( tr( "Select grid frame fill color" ) ); mGridFrameFill2ColorButton->setAllowAlpha( true ); mGridFrameFill2ColorButton->setContext( "composer" ); mGridFrameFill2ColorButton->setNoColorString( tr( "Transparent fill" ) ); mGridFrameFill2ColorButton->setShowNoColor( true ); //set initial state of frame style controls toggleFrameControls( false, false, false ); updateGuiElements(); blockAllSignals( false ); }
QgsLayoutMapGridWidget::QgsLayoutMapGridWidget( QgsLayoutItemMapGrid *mapGrid, QgsLayoutItemMap *map ) : QgsLayoutItemBaseWidget( nullptr, mapGrid ) , mMap( map ) , mMapGrid( mapGrid ) { setupUi( this ); mFrameStyleComboBox->addItem( tr( "No Frame" ), QgsLayoutItemMapGrid::NoFrame ); mFrameStyleComboBox->addItem( tr( "Zebra" ), QgsLayoutItemMapGrid::Zebra ); mFrameStyleComboBox->addItem( tr( "Zebra (Nautical)" ), QgsLayoutItemMapGrid::ZebraNautical ); mFrameStyleComboBox->addItem( tr( "Interior Ticks" ), QgsLayoutItemMapGrid::InteriorTicks ); mFrameStyleComboBox->addItem( tr( "Exterior Ticks" ), QgsLayoutItemMapGrid::ExteriorTicks ); mFrameStyleComboBox->addItem( tr( "Interior and Exterior Ticks" ), QgsLayoutItemMapGrid::InteriorExteriorTicks ); mFrameStyleComboBox->addItem( tr( "Line Border" ), QgsLayoutItemMapGrid::LineBorder ); mFrameStyleComboBox->addItem( tr( "Line Border (Nautical)" ), QgsLayoutItemMapGrid::LineBorderNautical ); mGridFrameMarginSpinBox->setShowClearButton( true ); mGridFrameMarginSpinBox->setClearValue( 0 ); connect( mIntervalXSpinBox, &QgsDoubleSpinBox::editingFinished, this, &QgsLayoutMapGridWidget::mIntervalXSpinBox_editingFinished ); connect( mIntervalYSpinBox, &QgsDoubleSpinBox::editingFinished, this, &QgsLayoutMapGridWidget::mIntervalYSpinBox_editingFinished ); connect( mOffsetXSpinBox, static_cast < void ( QDoubleSpinBox::* )( double ) > ( &QDoubleSpinBox::valueChanged ), this, &QgsLayoutMapGridWidget::mOffsetXSpinBox_valueChanged ); connect( mOffsetYSpinBox, static_cast < void ( QDoubleSpinBox::* )( double ) > ( &QDoubleSpinBox::valueChanged ), this, &QgsLayoutMapGridWidget::mOffsetYSpinBox_valueChanged ); connect( mCrossWidthSpinBox, static_cast < void ( QDoubleSpinBox::* )( double ) > ( &QDoubleSpinBox::valueChanged ), this, &QgsLayoutMapGridWidget::mCrossWidthSpinBox_valueChanged ); connect( mFrameWidthSpinBox, static_cast < void ( QDoubleSpinBox::* )( double ) > ( &QDoubleSpinBox::valueChanged ), this, &QgsLayoutMapGridWidget::mFrameWidthSpinBox_valueChanged ); connect( mGridFrameMarginSpinBox, static_cast < void ( QDoubleSpinBox::* )( double ) > ( &QDoubleSpinBox::valueChanged ), this, &QgsLayoutMapGridWidget::mGridFrameMarginSpinBox_valueChanged ); connect( mFrameStyleComboBox, static_cast<void ( QComboBox::* )( int )>( &QComboBox::currentIndexChanged ), this, &QgsLayoutMapGridWidget::mFrameStyleComboBox_currentIndexChanged ); connect( mGridFramePenSizeSpinBox, static_cast < void ( QDoubleSpinBox::* )( double ) > ( &QDoubleSpinBox::valueChanged ), this, &QgsLayoutMapGridWidget::mGridFramePenSizeSpinBox_valueChanged ); connect( mGridFramePenColorButton, &QgsColorButton::colorChanged, this, &QgsLayoutMapGridWidget::mGridFramePenColorButton_colorChanged ); connect( mGridFrameFill1ColorButton, &QgsColorButton::colorChanged, this, &QgsLayoutMapGridWidget::mGridFrameFill1ColorButton_colorChanged ); connect( mGridFrameFill2ColorButton, &QgsColorButton::colorChanged, this, &QgsLayoutMapGridWidget::mGridFrameFill2ColorButton_colorChanged ); connect( mGridTypeComboBox, static_cast<void ( QComboBox::* )( const QString & )>( &QComboBox::currentIndexChanged ), this, &QgsLayoutMapGridWidget::mGridTypeComboBox_currentIndexChanged ); connect( mMapGridCRSButton, &QPushButton::clicked, this, &QgsLayoutMapGridWidget::mMapGridCRSButton_clicked ); connect( mMapGridUnitComboBox, static_cast<void ( QComboBox::* )( const QString & )>( &QComboBox::currentIndexChanged ), this, &QgsLayoutMapGridWidget::mMapGridUnitComboBox_currentIndexChanged ); connect( mGridBlendComboBox, static_cast<void ( QComboBox::* )( int )>( &QComboBox::currentIndexChanged ), this, &QgsLayoutMapGridWidget::mGridBlendComboBox_currentIndexChanged ); connect( mCheckGridLeftSide, &QCheckBox::toggled, this, &QgsLayoutMapGridWidget::mCheckGridLeftSide_toggled ); connect( mCheckGridRightSide, &QCheckBox::toggled, this, &QgsLayoutMapGridWidget::mCheckGridRightSide_toggled ); connect( mCheckGridTopSide, &QCheckBox::toggled, this, &QgsLayoutMapGridWidget::mCheckGridTopSide_toggled ); connect( mCheckGridBottomSide, &QCheckBox::toggled, this, &QgsLayoutMapGridWidget::mCheckGridBottomSide_toggled ); connect( mFrameDivisionsLeftComboBox, static_cast<void ( QComboBox::* )( int )>( &QComboBox::currentIndexChanged ), this, &QgsLayoutMapGridWidget::mFrameDivisionsLeftComboBox_currentIndexChanged ); connect( mFrameDivisionsRightComboBox, static_cast<void ( QComboBox::* )( int )>( &QComboBox::currentIndexChanged ), this, &QgsLayoutMapGridWidget::mFrameDivisionsRightComboBox_currentIndexChanged ); connect( mFrameDivisionsTopComboBox, static_cast<void ( QComboBox::* )( int )>( &QComboBox::currentIndexChanged ), this, &QgsLayoutMapGridWidget::mFrameDivisionsTopComboBox_currentIndexChanged ); connect( mFrameDivisionsBottomComboBox, static_cast<void ( QComboBox::* )( int )>( &QComboBox::currentIndexChanged ), this, &QgsLayoutMapGridWidget::mFrameDivisionsBottomComboBox_currentIndexChanged ); connect( mDrawAnnotationGroupBox, &QgsCollapsibleGroupBoxBasic::toggled, this, &QgsLayoutMapGridWidget::mDrawAnnotationGroupBox_toggled ); connect( mAnnotationFormatButton, &QToolButton::clicked, this, &QgsLayoutMapGridWidget::mAnnotationFormatButton_clicked ); connect( mAnnotationDisplayLeftComboBox, static_cast<void ( QComboBox::* )( const QString & )>( &QComboBox::currentIndexChanged ), this, &QgsLayoutMapGridWidget::mAnnotationDisplayLeftComboBox_currentIndexChanged ); connect( mAnnotationDisplayRightComboBox, static_cast<void ( QComboBox::* )( const QString & )>( &QComboBox::currentIndexChanged ), this, &QgsLayoutMapGridWidget::mAnnotationDisplayRightComboBox_currentIndexChanged ); connect( mAnnotationDisplayTopComboBox, static_cast<void ( QComboBox::* )( const QString & )>( &QComboBox::currentIndexChanged ), this, &QgsLayoutMapGridWidget::mAnnotationDisplayTopComboBox_currentIndexChanged ); connect( mAnnotationDisplayBottomComboBox, static_cast<void ( QComboBox::* )( const QString & )>( &QComboBox::currentIndexChanged ), this, &QgsLayoutMapGridWidget::mAnnotationDisplayBottomComboBox_currentIndexChanged ); connect( mAnnotationPositionLeftComboBox, static_cast<void ( QComboBox::* )( const QString & )>( &QComboBox::currentIndexChanged ), this, &QgsLayoutMapGridWidget::mAnnotationPositionLeftComboBox_currentIndexChanged ); connect( mAnnotationPositionRightComboBox, static_cast<void ( QComboBox::* )( const QString & )>( &QComboBox::currentIndexChanged ), this, &QgsLayoutMapGridWidget::mAnnotationPositionRightComboBox_currentIndexChanged ); connect( mAnnotationPositionTopComboBox, static_cast<void ( QComboBox::* )( const QString & )>( &QComboBox::currentIndexChanged ), this, &QgsLayoutMapGridWidget::mAnnotationPositionTopComboBox_currentIndexChanged ); connect( mAnnotationPositionBottomComboBox, static_cast<void ( QComboBox::* )( const QString & )>( &QComboBox::currentIndexChanged ), this, &QgsLayoutMapGridWidget::mAnnotationPositionBottomComboBox_currentIndexChanged ); connect( mAnnotationDirectionComboBoxLeft, static_cast<void ( QComboBox::* )( int )>( &QComboBox::currentIndexChanged ), this, &QgsLayoutMapGridWidget::mAnnotationDirectionComboBoxLeft_currentIndexChanged ); connect( mAnnotationDirectionComboBoxRight, static_cast<void ( QComboBox::* )( int )>( &QComboBox::currentIndexChanged ), this, &QgsLayoutMapGridWidget::mAnnotationDirectionComboBoxRight_currentIndexChanged ); connect( mAnnotationDirectionComboBoxTop, static_cast<void ( QComboBox::* )( int )>( &QComboBox::currentIndexChanged ), this, &QgsLayoutMapGridWidget::mAnnotationDirectionComboBoxTop_currentIndexChanged ); connect( mAnnotationDirectionComboBoxBottom, static_cast<void ( QComboBox::* )( int )>( &QComboBox::currentIndexChanged ), this, &QgsLayoutMapGridWidget::mAnnotationDirectionComboBoxBottom_currentIndexChanged ); connect( mAnnotationFormatComboBox, static_cast<void ( QComboBox::* )( int )>( &QComboBox::currentIndexChanged ), this, &QgsLayoutMapGridWidget::mAnnotationFormatComboBox_currentIndexChanged ); connect( mCoordinatePrecisionSpinBox, static_cast < void ( QSpinBox::* )( int ) > ( &QSpinBox::valueChanged ), this, &QgsLayoutMapGridWidget::mCoordinatePrecisionSpinBox_valueChanged ); connect( mDistanceToMapFrameSpinBox, static_cast < void ( QDoubleSpinBox::* )( double ) > ( &QDoubleSpinBox::valueChanged ), this, &QgsLayoutMapGridWidget::mDistanceToMapFrameSpinBox_valueChanged ); connect( mAnnotationFontColorButton, &QgsColorButton::colorChanged, this, &QgsLayoutMapGridWidget::mAnnotationFontColorButton_colorChanged ); setPanelTitle( tr( "Map Grid Properties" ) ); mAnnotationFontButton->setMode( QgsFontButton::ModeQFont ); blockAllSignals( true ); mGridTypeComboBox->insertItem( 0, tr( "Solid" ) ); mGridTypeComboBox->insertItem( 1, tr( "Cross" ) ); mGridTypeComboBox->insertItem( 2, tr( "Markers" ) ); mGridTypeComboBox->insertItem( 3, tr( "Frame and annotations only" ) ); insertFrameDisplayEntries( mFrameDivisionsLeftComboBox ); insertFrameDisplayEntries( mFrameDivisionsRightComboBox ); insertFrameDisplayEntries( mFrameDivisionsTopComboBox ); insertFrameDisplayEntries( mFrameDivisionsBottomComboBox ); mAnnotationFormatComboBox->addItem( tr( "Decimal" ), QgsLayoutItemMapGrid::Decimal ); mAnnotationFormatComboBox->addItem( tr( "Decimal with suffix" ), QgsLayoutItemMapGrid::DecimalWithSuffix ); mAnnotationFormatComboBox->addItem( tr( "Degree, minute" ), QgsLayoutItemMapGrid::DegreeMinuteNoSuffix ); mAnnotationFormatComboBox->addItem( tr( "Degree, minute with suffix" ), QgsLayoutItemMapGrid::DegreeMinute ); mAnnotationFormatComboBox->addItem( tr( "Degree, minute aligned" ), QgsLayoutItemMapGrid::DegreeMinutePadded ); mAnnotationFormatComboBox->addItem( tr( "Degree, minute, second" ), QgsLayoutItemMapGrid::DegreeMinuteSecondNoSuffix ); mAnnotationFormatComboBox->addItem( tr( "Degree, minute, second with suffix" ), QgsLayoutItemMapGrid::DegreeMinuteSecond ); mAnnotationFormatComboBox->addItem( tr( "Degree, minute, second aligned" ), QgsLayoutItemMapGrid::DegreeMinuteSecondPadded ); mAnnotationFormatComboBox->addItem( tr( "Custom" ), QgsLayoutItemMapGrid::CustomFormat ); mAnnotationFontColorButton->setColorDialogTitle( tr( "Select Font Color" ) ); mAnnotationFontColorButton->setAllowOpacity( true ); mAnnotationFontColorButton->setContext( QStringLiteral( "composer" ) ); insertAnnotationDisplayEntries( mAnnotationDisplayLeftComboBox ); insertAnnotationDisplayEntries( mAnnotationDisplayRightComboBox ); insertAnnotationDisplayEntries( mAnnotationDisplayTopComboBox ); insertAnnotationDisplayEntries( mAnnotationDisplayBottomComboBox ); insertAnnotationPositionEntries( mAnnotationPositionLeftComboBox ); insertAnnotationPositionEntries( mAnnotationPositionRightComboBox ); insertAnnotationPositionEntries( mAnnotationPositionTopComboBox ); insertAnnotationPositionEntries( mAnnotationPositionBottomComboBox ); insertAnnotationDirectionEntries( mAnnotationDirectionComboBoxLeft ); insertAnnotationDirectionEntries( mAnnotationDirectionComboBoxRight ); insertAnnotationDirectionEntries( mAnnotationDirectionComboBoxTop ); insertAnnotationDirectionEntries( mAnnotationDirectionComboBoxBottom ); mGridFramePenColorButton->setColorDialogTitle( tr( "Select Grid Frame Color" ) ); mGridFramePenColorButton->setAllowOpacity( true ); mGridFramePenColorButton->setContext( QStringLiteral( "composer" ) ); mGridFramePenColorButton->setNoColorString( tr( "Transparent Frame" ) ); mGridFramePenColorButton->setShowNoColor( true ); mGridFrameFill1ColorButton->setColorDialogTitle( tr( "Select Grid Frame Fill Color" ) ); mGridFrameFill1ColorButton->setAllowOpacity( true ); mGridFrameFill1ColorButton->setContext( QStringLiteral( "composer" ) ); mGridFrameFill1ColorButton->setNoColorString( tr( "Transparent Fill" ) ); mGridFrameFill1ColorButton->setShowNoColor( true ); mGridFrameFill2ColorButton->setColorDialogTitle( tr( "Select Grid Frame Fill Color" ) ); mGridFrameFill2ColorButton->setAllowOpacity( true ); mGridFrameFill2ColorButton->setContext( QStringLiteral( "composer" ) ); mGridFrameFill2ColorButton->setNoColorString( tr( "Transparent Fill" ) ); mGridFrameFill2ColorButton->setShowNoColor( true ); mGridLineStyleButton->setSymbolType( QgsSymbol::Line ); mGridMarkerStyleButton->setSymbolType( QgsSymbol::Marker ); //set initial state of frame style controls toggleFrameControls( false, false, false ); updateGuiElements(); blockAllSignals( false ); connect( mAnnotationFontButton, &QgsFontButton::changed, this, &QgsLayoutMapGridWidget::annotationFontChanged ); connect( mGridLineStyleButton, &QgsSymbolButton::changed, this, &QgsLayoutMapGridWidget::lineSymbolChanged ); connect( mGridMarkerStyleButton, &QgsSymbolButton::changed, this, &QgsLayoutMapGridWidget::markerSymbolChanged ); mGridLineStyleButton->registerExpressionContextGenerator( mMapGrid ); mGridLineStyleButton->setLayer( coverageLayer() ); mGridMarkerStyleButton->registerExpressionContextGenerator( mMapGrid ); mGridMarkerStyleButton->setLayer( coverageLayer() ); if ( mMap->layout() ) { connect( &mMap->layout()->reportContext(), &QgsLayoutReportContext::layerChanged, mGridLineStyleButton, &QgsSymbolButton::setLayer ); connect( &mMap->layout()->reportContext(), &QgsLayoutReportContext::layerChanged, mGridMarkerStyleButton, &QgsSymbolButton::setLayer ); } }