Expand Up
@@ -17,7 +17,6 @@
#include " qgscomposermapwidget.h"
#include " qgscomposeritemwidget.h"
#include " qgscomposermap.h"
#include " qgsmaprenderer.h"
#include < QColorDialog>
#include < QFontDialog>
Expand Down
Expand Up
@@ -47,13 +46,19 @@ QgsComposerMapWidget::QgsComposerMapWidget( QgsComposerMap* composerMap ): QWidg
mGridTypeComboBox ->insertItem ( 0 , tr ( " Solid" ) );
mGridTypeComboBox ->insertItem ( 1 , tr ( " Cross" ) );
mAnnotationPositionComboBox ->insertItem ( 0 , tr ( " Inside frame" ) );
mAnnotationPositionComboBox ->insertItem ( 1 , tr ( " Outside frame" ) );
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" ) );
mAnnotationDirectionComboBox ->insertItem ( 0 , tr ( " Horizontal" ) );
mAnnotationDirectionComboBox ->insertItem ( 1 , tr ( " Vertical" ) );
mAnnotationDirectionComboBox ->insertItem ( 2 , tr ( " Horizontal and Vertical" ) );
mAnnotationDirectionComboBox ->insertItem ( 2 , tr ( " Boundary direction" ) );
if ( composerMap )
{
connect ( composerMap, SIGNAL ( itemChanged () ), this , SLOT ( setGuiElementValues () ) );
Expand Down
Expand Up
@@ -344,16 +349,30 @@ void QgsComposerMapWidget::updateGuiElements()
mCrossWidthSpinBox ->setValue ( mComposerMap ->crossLength () );
QgsComposerMap::GridAnnotationPosition annotationPos = mComposerMap ->gridAnnotationPosition ();
if ( annotationPos == QgsComposerMap::InsideMapFrame )
// grid frame
mFrameWidthSpinBox ->setValue ( mComposerMap ->gridFrameWidth () );
QgsComposerMap::GridFrameStyle gridFrameStyle = mComposerMap ->gridFrameStyle ();
if ( gridFrameStyle == QgsComposerMap::Zebra )
{
mAnnotationPositionComboBox ->setCurrentIndex ( mAnnotationPositionComboBox ->findText ( tr ( " Inside frame " ) ) );
mFrameStyleComboBox ->setCurrentIndex ( mFrameStyleComboBox ->findText ( tr ( " Zebra " ) ) );
}
else
else // NoGridFrame
{
mAnnotationPositionComboBox ->setCurrentIndex ( mAnnotationPositionComboBox ->findText ( tr ( " Outside frame" ) ) );
mFrameStyleComboBox ->setCurrentIndex ( mFrameStyleComboBox ->findText ( tr ( " No frame" ) ) );
}
// 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 ) );
mDistanceToMapFrameSpinBox ->setValue ( mComposerMap ->annotationFrameDistance () );
if ( mComposerMap ->showGridAnnotation () )
Expand All
@@ -365,24 +384,6 @@ void QgsComposerMapWidget::updateGuiElements()
mDrawAnnotationCheckBox ->setCheckState ( Qt::Unchecked );
}
QgsComposerMap::GridAnnotationDirection dir = mComposerMap ->gridAnnotationDirection ();
if ( dir == QgsComposerMap::Horizontal )
{
mAnnotationDirectionComboBox ->setCurrentIndex ( mAnnotationDirectionComboBox ->findText ( tr ( " Horizontal" ) ) );
}
else if ( dir == QgsComposerMap::Vertical )
{
mAnnotationDirectionComboBox ->setCurrentIndex ( mAnnotationDirectionComboBox ->findText ( tr ( " Vertical" ) ) );
}
else if ( dir == QgsComposerMap::HorizontalAndVertical )
{
mAnnotationDirectionComboBox ->setCurrentIndex ( mAnnotationDirectionComboBox ->findText ( tr ( " Horizontal and Vertical" ) ) );
}
else // BoundaryDirection
{
mAnnotationDirectionComboBox ->setCurrentIndex ( mAnnotationDirectionComboBox ->findText ( tr ( " Boundary direction" ) ) );
}
mCoordinatePrecisionSpinBox ->setValue ( mComposerMap ->gridAnnotationPrecision () );
QPen gridPen = mComposerMap ->gridPen ();
Expand Down
Expand Up
@@ -445,11 +446,19 @@ void QgsComposerMapWidget::blockAllSignals( bool b )
mLineColorButton ->blockSignals ( b );
mDrawAnnotationCheckBox ->blockSignals ( b );
mAnnotationFontButton ->blockSignals ( b );
mAnnotationPositionComboBox ->blockSignals ( b );
mAnnotationPositionLeftComboBox ->blockSignals ( b );
mAnnotationPositionRightComboBox ->blockSignals ( b );
mAnnotationPositionTopComboBox ->blockSignals ( b );
mAnnotationPositionBottomComboBox ->blockSignals ( b );
mDistanceToMapFrameSpinBox ->blockSignals ( b );
mAnnotationDirectionComboBox ->blockSignals ( b );
mAnnotationDirectionComboBoxLeft ->blockSignals ( b );
mAnnotationDirectionComboBoxRight ->blockSignals ( b );
mAnnotationDirectionComboBoxTop ->blockSignals ( b );
mAnnotationDirectionComboBoxBottom ->blockSignals ( b );
mCoordinatePrecisionSpinBox ->blockSignals ( b );
mDrawCanvasItemsCheckBox ->blockSignals ( b );
mFrameStyleComboBox ->blockSignals ( b );
mFrameWidthSpinBox ->blockSignals ( b );
}
void QgsComposerMapWidget::on_mUpdatePreviewButton_clicked ()
Expand Down
Expand Up
@@ -683,86 +692,207 @@ void QgsComposerMapWidget::on_mDistanceToMapFrameSpinBox_valueChanged( double d
mComposerMap ->endCommand ();
}
void QgsComposerMapWidget::on_mAnnotationPositionComboBox_currentIndexChanged ( const QString& text )
void QgsComposerMapWidget::on_mAnnotationPositionLeftComboBox_currentIndexChanged ( const QString& text )
{
handleChangedAnnotationPosition ( QgsComposerMap::Left, text );
}
void QgsComposerMapWidget::on_mAnnotationPositionRightComboBox_currentIndexChanged ( const QString& text )
{
handleChangedAnnotationPosition ( QgsComposerMap::Right, text );
}
void QgsComposerMapWidget::on_mAnnotationPositionTopComboBox_currentIndexChanged ( const QString& text )
{
handleChangedAnnotationPosition ( QgsComposerMap::Top, text );
}
void QgsComposerMapWidget::on_mAnnotationPositionBottomComboBox_currentIndexChanged ( const QString& text )
{
handleChangedAnnotationPosition ( QgsComposerMap::Bottom, text );
}
void QgsComposerMapWidget::on_mDrawAnnotationCheckBox_stateChanged ( int state )
{
if ( !mComposerMap )
{
return ;
}
mComposerMap ->beginCommand ( tr ( " Annotation position changed " ) );
if ( text == tr ( " Inside frame " ) )
mComposerMap ->beginCommand ( tr ( " Annotation toggled " ) );
if ( state == Qt::Checked )
{
mComposerMap ->setGridAnnotationPosition ( QgsComposerMap::InsideMapFrame );
mComposerMap ->setShowGridAnnotation ( true );
}
else
{
mComposerMap ->setGridAnnotationPosition ( QgsComposerMap::OutsideMapFrame );
mComposerMap ->setShowGridAnnotation ( false );
}
mComposerMap ->updateBoundingRect ();
mComposerMap ->update ();
mComposerMap ->endCommand ();
}
void QgsComposerMapWidget::on_mDrawAnnotationCheckBox_stateChanged ( int state )
void QgsComposerMapWidget::on_mAnnotationDirectionComboBoxLeft_currentIndexChanged ( const QString& text )
{
handleChangedAnnotationDirection ( QgsComposerMap::Left, text );
}
void QgsComposerMapWidget::on_mAnnotationDirectionComboBoxRight_currentIndexChanged ( const QString& text )
{
handleChangedAnnotationDirection ( QgsComposerMap::Right, text );
}
void QgsComposerMapWidget::on_mAnnotationDirectionComboBoxTop_currentIndexChanged ( const QString& text )
{
handleChangedAnnotationDirection ( QgsComposerMap::Top, text );
}
void QgsComposerMapWidget::on_mAnnotationDirectionComboBoxBottom_currentIndexChanged ( const QString& text )
{
handleChangedAnnotationDirection ( QgsComposerMap::Bottom, text );
}
void QgsComposerMapWidget::on_mCoordinatePrecisionSpinBox_valueChanged ( int value )
{
if ( !mComposerMap )
{
return ;
}
mComposerMap ->beginCommand ( tr ( " Changed annotation precision" ) );
mComposerMap ->setGridAnnotationPrecision ( value );
mComposerMap ->updateBoundingRect ();
mComposerMap ->update ();
mComposerMap ->endCommand ();
}
mComposerMap ->beginCommand ( tr ( " Annotation toggled" ) );
if ( state == Qt::Checked )
void QgsComposerMapWidget::on_mFrameStyleComboBox_currentIndexChanged ( const QString& text )
{
if ( !mComposerMap )
{
mComposerMap -> setShowGridAnnotation ( true ) ;
return ;
}
else
mComposerMap ->beginCommand ( tr ( " Changed grid frame style" ) );
if ( text == tr ( " Zebra" ) )
{
mComposerMap ->setShowGridAnnotation ( false );
mComposerMap ->setGridFrameStyle ( QgsComposerMap::Zebra );
}
else // no frame
{
mComposerMap ->setGridFrameStyle ( QgsComposerMap::NoGridFrame );
}
mComposerMap ->updateBoundingRect ();
mComposerMap ->update ();
mComposerMap ->endCommand ();
}
void QgsComposerMapWidget::on_mAnnotationDirectionComboBox_currentIndexChanged ( const QString& text )
void QgsComposerMapWidget::on_mFrameWidthSpinBox_valueChanged ( double d )
{
if ( ! mComposerMap )
if ( mComposerMap )
{
return ;
mComposerMap ->beginCommand ( tr ( " Changed grid frame width" ) );
mComposerMap ->setGridFrameWidth ( d );
mComposerMap ->updateBoundingRect ();
mComposerMap ->update ();
mComposerMap ->endCommand ();
}
}
mComposerMap ->beginCommand ( tr ( " Changed annotation direction" ) );
if ( text == tr ( " Horizontal" ) )
void QgsComposerMapWidget::insertAnnotationPositionEntries ( QComboBox* c )
{
c->insertItem ( 0 , tr ( " Inside frame" ) );
c->insertItem ( 1 , tr ( " Outside frame" ) );
c->insertItem ( 2 , tr ( " Disabled" ) );
}
void QgsComposerMapWidget::insertAnnotationDirectionEntries ( QComboBox* c )
{
c->insertItem ( 0 , tr ( " Horizontal" ) );
c->insertItem ( 1 , tr ( " Vertical" ) );
}
void QgsComposerMapWidget::handleChangedAnnotationPosition ( QgsComposerMap::Border border, const QString& text )
{
if ( !mComposerMap )
{
mComposerMap -> setGridAnnotationDirection ( QgsComposerMap::Horizontal ) ;
return ;
}
else if ( text == tr ( " Vertical" ) )
mComposerMap ->beginCommand ( tr ( " Annotation position changed" ) );
if ( text == tr ( " Inside frame" ) )
{
mComposerMap ->setGridAnnotationDirection ( QgsComposerMap::Vertical );
mComposerMap ->setGridAnnotationPosition ( QgsComposerMap::InsideMapFrame, border );
}
else if ( text == tr ( " Horizontal and Vertical " ) )
else if ( text == tr ( " Disabled " ) )
{
mComposerMap ->setGridAnnotationDirection ( QgsComposerMap::HorizontalAndVertical );
mComposerMap ->setGridAnnotationPosition ( QgsComposerMap::Disabled, border );
}
else // BoundaryDirection
else // Outside frame
{
mComposerMap ->setGridAnnotationDirection ( QgsComposerMap::BoundaryDirection );
mComposerMap ->setGridAnnotationPosition ( QgsComposerMap::OutsideMapFrame, border );
}
mComposerMap ->updateBoundingRect ();
mComposerMap ->update ();
mComposerMap ->endCommand ();
}
void QgsComposerMapWidget::on_mCoordinatePrecisionSpinBox_valueChanged ( int value )
void QgsComposerMapWidget::handleChangedAnnotationDirection ( QgsComposerMap::Border border, const QString& text )
{
if ( !mComposerMap )
{
return ;
}
mComposerMap ->beginCommand ( tr ( " Changed annotation precision" ) );
mComposerMap ->setGridAnnotationPrecision ( value );
mComposerMap ->beginCommand ( tr ( " Changed annotation direction" ) );
if ( text == tr ( " Horizontal" ) )
{
mComposerMap ->setGridAnnotationDirection ( QgsComposerMap::Horizontal, border );
}
else // Vertical
{
mComposerMap ->setGridAnnotationDirection ( QgsComposerMap::Vertical, border );
}
mComposerMap ->updateBoundingRect ();
mComposerMap ->update ();
mComposerMap ->endCommand ();
}
void QgsComposerMapWidget::initAnnotationPositionBox ( QComboBox* c, QgsComposerMap::GridAnnotationPosition pos )
{
if ( !c )
{
return ;
}
if ( pos == QgsComposerMap::InsideMapFrame )
{
c->setCurrentIndex ( c->findText ( tr ( " Inside frame" ) ) );
}
else if ( pos == QgsComposerMap::OutsideMapFrame )
{
c->setCurrentIndex ( c->findText ( tr ( " Outside frame" ) ) );
}
else // disabled
{
c->setCurrentIndex ( c->findText ( tr ( " Disabled" ) ) );
}
}
void QgsComposerMapWidget::initAnnotationDirectionBox ( QComboBox* c, QgsComposerMap::GridAnnotationDirection dir )
{
if ( !c )
{
return ;
}
if ( dir == QgsComposerMap::Vertical )
{
c->setCurrentIndex ( c->findText ( tr ( " Vertical" ) ) );
}
else // horizontal
{
c->setCurrentIndex ( c->findText ( tr ( " Horizontal" ) ) );
}
}