[QGIS Commit] r14549 - in trunk/qgis/src: app/composer
core/composer ui
svn_qgis at osgeo.org
svn_qgis at osgeo.org
Fri Nov 12 04:48:59 EST 2010
Author: mhugent
Date: 2010-11-12 01:48:58 -0800 (Fri, 12 Nov 2010)
New Revision: 14549
Modified:
trunk/qgis/src/app/composer/qgscomposermapwidget.cpp
trunk/qgis/src/app/composer/qgscomposermapwidget.h
trunk/qgis/src/core/composer/qgscomposermap.cpp
trunk/qgis/src/core/composer/qgscomposermap.h
trunk/qgis/src/ui/qgscomposermapwidgetbase.ui
Log:
Add option to turn on / off printing of canvas item in composer map (ticket #2734)
Modified: trunk/qgis/src/app/composer/qgscomposermapwidget.cpp
===================================================================
--- trunk/qgis/src/app/composer/qgscomposermapwidget.cpp 2010-11-12 08:14:16 UTC (rev 14548)
+++ trunk/qgis/src/app/composer/qgscomposermapwidget.cpp 2010-11-12 09:48:58 UTC (rev 14549)
@@ -292,6 +292,16 @@
mKeepLayerListCheckBox->setCheckState( Qt::Unchecked );
}
+ //draw canvas items
+ if ( mComposerMap->drawCanvasItems() )
+ {
+ mDrawCanvasItemsCheckBox->setCheckState( Qt::Checked );
+ }
+ else
+ {
+ mDrawCanvasItemsCheckBox->setCheckState( Qt::Unchecked );
+ }
+
//grid
if ( mComposerMap->gridEnabled() )
{
@@ -418,6 +428,7 @@
mDistanceToMapFrameSpinBox->blockSignals( b );
mAnnotationDirectionComboBox->blockSignals( b );
mCoordinatePrecisionSpinBox->blockSignals( b );
+ mDrawCanvasItemsCheckBox->blockSignals( b );
}
void QgsComposerMapWidget::on_mUpdatePreviewButton_clicked()
@@ -461,6 +472,21 @@
}
}
+void QgsComposerMapWidget::on_mDrawCanvasItemsCheckBox_stateChanged( int state )
+{
+ if ( !mComposerMap )
+ {
+ return;
+ }
+
+ mComposerMap->setDrawCanvasItems( state == Qt::Checked );
+ mUpdatePreviewButton->setEnabled( false ); //prevent crashes because of many button clicks
+ mComposerMap->setCacheUpdated( false );
+ mComposerMap->cache();
+ mComposerMap->update();
+ mUpdatePreviewButton->setEnabled( true );
+}
+
void QgsComposerMapWidget::on_mGridCheckBox_toggled( bool state )
{
if ( !mComposerMap )
Modified: trunk/qgis/src/app/composer/qgscomposermapwidget.h
===================================================================
--- trunk/qgis/src/app/composer/qgscomposermapwidget.h 2010-11-12 08:14:16 UTC (rev 14548)
+++ trunk/qgis/src/app/composer/qgscomposermapwidget.h 2010-11-12 09:48:58 UTC (rev 14549)
@@ -43,6 +43,7 @@
void on_mSetToMapCanvasExtentButton_clicked();
void on_mUpdatePreviewButton_clicked();
void on_mKeepLayerListCheckBox_stateChanged( int state );
+ void on_mDrawCanvasItemsCheckBox_stateChanged( int state );
void on_mXMinLineEdit_editingFinished();
void on_mXMaxLineEdit_editingFinished();
Modified: trunk/qgis/src/core/composer/qgscomposermap.cpp
===================================================================
--- trunk/qgis/src/core/composer/qgscomposermap.cpp 2010-11-12 08:14:16 UTC (rev 14548)
+++ trunk/qgis/src/core/composer/qgscomposermap.cpp 2010-11-12 09:48:58 UTC (rev 14549)
@@ -43,7 +43,8 @@
QgsComposerMap::QgsComposerMap( QgsComposition *composition, int x, int y, int width, int height )
: QgsComposerItem( x, y, width, height, composition ), mKeepLayerSet( false ), mGridEnabled( false ), mGridStyle( Solid ), \
mGridIntervalX( 0.0 ), mGridIntervalY( 0.0 ), mGridOffsetX( 0.0 ), mGridOffsetY( 0.0 ), mGridAnnotationPrecision( 3 ), mShowGridAnnotation( false ), \
- mGridAnnotationPosition( OutsideMapFrame ), mAnnotationFrameDistance( 1.0 ), mGridAnnotationDirection( Horizontal ), mCrossLength( 3 ), mMapCanvas( 0 )
+ mGridAnnotationPosition( OutsideMapFrame ), mAnnotationFrameDistance( 1.0 ), mGridAnnotationDirection( Horizontal ),
+ mCrossLength( 3 ), mMapCanvas( 0 ), mDrawCanvasItems( true )
{
mComposition = composition;
mId = mComposition->composerMapItems().size();
@@ -74,7 +75,8 @@
QgsComposerMap::QgsComposerMap( QgsComposition *composition )
: QgsComposerItem( 0, 0, 10, 10, composition ), mKeepLayerSet( false ), mGridEnabled( false ), mGridStyle( Solid ), \
mGridIntervalX( 0.0 ), mGridIntervalY( 0.0 ), mGridOffsetX( 0.0 ), mGridOffsetY( 0.0 ), mGridAnnotationPrecision( 3 ), mShowGridAnnotation( false ), \
- mGridAnnotationPosition( OutsideMapFrame ), mAnnotationFrameDistance( 1.0 ), mGridAnnotationDirection( Horizontal ), mCrossLength( 3 ), mMapCanvas( 0 )
+ mGridAnnotationPosition( OutsideMapFrame ), mAnnotationFrameDistance( 1.0 ), mGridAnnotationDirection( Horizontal ), mCrossLength( 3 ),
+ mMapCanvas( 0 ), mDrawCanvasItems( true )
{
//Offset
mXOffset = 0.0;
@@ -604,6 +606,15 @@
composerMapElem.setAttribute( "keepLayerSet", "false" );
}
+ if ( mDrawCanvasItems )
+ {
+ composerMapElem.setAttribute( "drawCanvasItems", "true" );
+ }
+ else
+ {
+ composerMapElem.setAttribute( "drawCanvasItems", "false" );
+ }
+
//extent
QDomElement extentElem = doc.createElement( "Extent" );
extentElem.setAttribute( "xmin", mExtent.xMinimum() );
@@ -708,6 +719,16 @@
mKeepLayerSet = false;
}
+ QString drawCanvasItemsFlag = itemElem.attribute( "drawCanvasItems" );
+ if ( drawCanvasItemsFlag.compare( "true", Qt::CaseInsensitive ) == 0 )
+ {
+ mDrawCanvasItems = true;
+ }
+ else
+ {
+ mDrawCanvasItems = false;
+ }
+
//mLayerSet
QDomNodeList layerSetNodeList = itemElem.elementsByTagName( "LayerSet" );
QStringList layerSet;
@@ -1410,7 +1431,7 @@
void QgsComposerMap::drawCanvasItems( QPainter* painter, const QStyleOptionGraphicsItem* itemStyle )
{
- if ( !mMapCanvas )
+ if ( !mMapCanvas || !mDrawCanvasItems )
{
return;
}
Modified: trunk/qgis/src/core/composer/qgscomposermap.h
===================================================================
--- trunk/qgis/src/core/composer/qgscomposermap.h 2010-11-12 08:14:16 UTC (rev 14548)
+++ trunk/qgis/src/core/composer/qgscomposermap.h 2010-11-12 09:48:58 UTC (rev 14549)
@@ -254,6 +254,9 @@
/**Sets canvas pointer (necessary to query and draw map canvas items)*/
void setMapCanvas( QGraphicsView* canvas ) { mMapCanvas = canvas; }
+ void setDrawCanvasItems( bool b ) { mDrawCanvasItems = b; }
+ bool drawCanvasItems() const { return mDrawCanvasItems; }
+
public slots:
/**Called if map canvas has changed*/
@@ -351,6 +354,8 @@
/**The length of the cross sides for mGridStyle Cross*/
double mCrossLength;
QGraphicsView* mMapCanvas;
+ /**True if annotation items, rubber band, etc. from the main canvas should be displayed*/
+ bool mDrawCanvasItems;
/**Draws the map grid*/
void drawGrid( QPainter* p );
Modified: trunk/qgis/src/ui/qgscomposermapwidgetbase.ui
===================================================================
--- trunk/qgis/src/ui/qgscomposermapwidgetbase.ui 2010-11-12 08:14:16 UTC (rev 14548)
+++ trunk/qgis/src/ui/qgscomposermapwidgetbase.ui 2010-11-12 09:48:58 UTC (rev 14549)
@@ -34,7 +34,7 @@
<x>0</x>
<y>0</y>
<width>377</width>
- <height>455</height>
+ <height>414</height>
</rect>
</property>
<attribute name="label">
@@ -178,7 +178,14 @@
</item>
</layout>
</item>
- <item row="10" column="0">
+ <item row="10" column="0" colspan="2">
+ <widget class="QCheckBox" name="mDrawCanvasItemsCheckBox">
+ <property name="text">
+ <string>Draw map canvas items</string>
+ </property>
+ </widget>
+ </item>
+ <item row="11" column="0">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
@@ -202,7 +209,7 @@
<x>0</x>
<y>0</y>
<width>394</width>
- <height>347</height>
+ <height>356</height>
</rect>
</property>
<attribute name="label">
@@ -319,7 +326,7 @@
<x>0</x>
<y>0</y>
<width>377</width>
- <height>789</height>
+ <height>720</height>
</rect>
</property>
<attribute name="label">
More information about the QGIS-commit
mailing list