Skip to content

Commit 53fa30f

Browse files
committedSep 3, 2014
[FEATURE][composer] Add tick styles for frames. Options include
drawing ticks only inside the map frame, drawing ticks outside the frame, or drawing ticks both inside and outside the frame. (fix #6954) (Sponsored by NIWA, New Zealand)
1 parent 8544185 commit 53fa30f

File tree

17 files changed

+370
-48
lines changed

17 files changed

+370
-48
lines changed
 

‎src/app/composer/qgscomposermapwidget.cpp

Lines changed: 43 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ QgsComposerMapWidget::QgsComposerMapWidget( QgsComposerMap* composerMap ): QgsCo
102102
mGridFrameFill2ColorButton->setShowNoColor( true );
103103

104104
//set initial state of frame style controls
105-
toggleFrameControls( false );
105+
toggleFrameControls( false, false );
106106

107107
if ( composerMap )
108108
{
@@ -695,17 +695,17 @@ void QgsComposerMapWidget::blockAllSignals( bool b )
695695
blockOverviewItemsSignals( b );
696696
}
697697

698-
void QgsComposerMapWidget::toggleFrameControls( bool frameEnabled )
698+
void QgsComposerMapWidget::toggleFrameControls( bool frameEnabled, bool frameFillEnabled )
699699
{
700700
//set status of frame controls
701701
mFrameWidthSpinBox->setEnabled( frameEnabled );
702702
mGridFramePenSizeSpinBox->setEnabled( frameEnabled );
703703
mGridFramePenColorButton->setEnabled( frameEnabled );
704-
mGridFrameFill1ColorButton->setEnabled( frameEnabled );
705-
mGridFrameFill2ColorButton->setEnabled( frameEnabled );
704+
mGridFrameFill1ColorButton->setEnabled( frameFillEnabled );
705+
mGridFrameFill2ColorButton->setEnabled( frameFillEnabled );
706706
mFrameWidthLabel->setEnabled( frameEnabled );
707707
mFramePenLabel->setEnabled( frameEnabled );
708-
mFrameFillLabel->setEnabled( frameEnabled );
708+
mFrameFillLabel->setEnabled( frameFillEnabled );
709709
mCheckGridLeftSide->setEnabled( frameEnabled );
710710
mCheckGridRightSide->setEnabled( frameEnabled );
711711
mCheckGridTopSide->setEnabled( frameEnabled );
@@ -1209,15 +1209,28 @@ void QgsComposerMapWidget::setGridItems( const QgsComposerMapGrid* grid )
12091209
//grid frame
12101210
mFrameWidthSpinBox->setValue( grid->gridFrameWidth() );
12111211
QgsComposerMap::GridFrameStyle gridFrameStyle = grid->gridFrameStyle();
1212-
if ( gridFrameStyle == QgsComposerMap::Zebra )
1212+
switch ( gridFrameStyle )
12131213
{
1214-
mFrameStyleComboBox->setCurrentIndex( 1 );
1215-
toggleFrameControls( true );
1216-
}
1217-
else //NoGridFrame
1218-
{
1219-
mFrameStyleComboBox->setCurrentIndex( 0 );
1220-
toggleFrameControls( false );
1214+
case QgsComposerMap::Zebra:
1215+
mFrameStyleComboBox->setCurrentIndex( 1 );
1216+
toggleFrameControls( true, true );
1217+
break;
1218+
case QgsComposerMap::InteriorTicks:
1219+
mFrameStyleComboBox->setCurrentIndex( 2 );
1220+
toggleFrameControls( true, false );
1221+
break;
1222+
case QgsComposerMap::ExteriorTicks:
1223+
mFrameStyleComboBox->setCurrentIndex( 3 );
1224+
toggleFrameControls( true, false );
1225+
break;
1226+
case QgsComposerMap::InteriorExteriorTicks:
1227+
mFrameStyleComboBox->setCurrentIndex( 4 );
1228+
toggleFrameControls( true, false );
1229+
break;
1230+
default:
1231+
mFrameStyleComboBox->setCurrentIndex( 0 );
1232+
toggleFrameControls( false, false );
1233+
break;
12211234
}
12221235

12231236
mCheckGridLeftSide->setChecked( grid->testGridFrameSideFlag( QgsComposerMapGrid::FrameLeft ) );
@@ -1557,12 +1570,27 @@ void QgsComposerMapWidget::on_mFrameStyleComboBox_currentIndexChanged( const QSt
15571570
if ( text == tr( "Zebra" ) )
15581571
{
15591572
grid->setGridFrameStyle( QgsComposerMap::Zebra );
1560-
toggleFrameControls( true );
1573+
toggleFrameControls( true, true );
1574+
}
1575+
else if ( text == tr( "Interior ticks" ) )
1576+
{
1577+
grid->setGridFrameStyle( QgsComposerMap::InteriorTicks );
1578+
toggleFrameControls( true, false );
1579+
}
1580+
else if ( text == tr( "Exterior ticks" ) )
1581+
{
1582+
grid->setGridFrameStyle( QgsComposerMap::ExteriorTicks );
1583+
toggleFrameControls( true, false );
1584+
}
1585+
else if ( text == tr( "Interior and exterior ticks" ) )
1586+
{
1587+
grid->setGridFrameStyle( QgsComposerMap::InteriorExteriorTicks );
1588+
toggleFrameControls( true, false );
15611589
}
15621590
else //no frame
15631591
{
15641592
grid->setGridFrameStyle( QgsComposerMap::NoGridFrame );
1565-
toggleFrameControls( false );
1593+
toggleFrameControls( false, false );
15661594
}
15671595
mComposerMap->updateBoundingRect();
15681596
mComposerMap->update();

‎src/app/composer/qgscomposermapwidget.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ class QgsComposerMapWidget: public QgsComposerItemBaseWidget, private Ui::QgsCom
179179
void refreshMapComboBox();
180180

181181
/**Enables/disables grid frame related controls*/
182-
void toggleFrameControls( bool frameEnabled );
182+
void toggleFrameControls( bool frameEnabled , bool frameFillEnabled );
183183

184184
/**Enables or disables the atlas margin and predefined scales radio depending on the atlas coverage layer type*/
185185
void toggleAtlasScalingOptionsByLayerType();

‎src/core/composer/qgscomposermap.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,10 @@ class CORE_EXPORT QgsComposerMap : public QgsComposerItem
9696
enum GridFrameStyle
9797
{
9898
NoGridFrame = 0,
99-
Zebra // black/white pattern
99+
Zebra, // black/white pattern
100+
InteriorTicks,
101+
ExteriorTicks,
102+
InteriorExteriorTicks
100103
};
101104

102105
/**Enum for different frame borders*/

0 commit comments

Comments
 (0)
Please sign in to comment.