From 997398d5efab9509450bbf29f01bfc378d0b22a7 Mon Sep 17 00:00:00 2001 From: rabla Date: Wed, 23 Mar 2005 11:42:37 +0000 Subject: [PATCH] map frame git-svn-id: http://svn.osgeo.org/qgis/trunk@3010 c8812cc2-4d05-0410-92ff-de0c093fc19c --- src/qgscomposermap.cpp | 37 ++++++++++++++++++++++++++++--------- src/qgscomposermap.h | 6 ++++++ src/qgscomposermapbase.ui | 19 +++++++++++++++++-- src/qgscomposition.cpp | 10 ++++++++++ 4 files changed, 61 insertions(+), 11 deletions(-) diff --git a/src/qgscomposermap.cpp b/src/qgscomposermap.cpp index b1c74a3100b..34283d55d94 100644 --- a/src/qgscomposermap.cpp +++ b/src/qgscomposermap.cpp @@ -29,6 +29,7 @@ #include #include #include +#include #include "qgsproject.h" #include "qgsrect.h" @@ -102,6 +103,8 @@ void QgsComposerMap::init () mSymbolScale = 1.0; mFontScale = 1.0; + mFrame = true; + QCanvasRectangle::setZ(20); setActive(true); } @@ -241,15 +244,14 @@ void QgsComposerMap::draw ( QPainter & painter ) } // Draw frame around - painter.setPen( QPen(QColor(0,0,0), 1) ); - painter.setBrush( Qt::NoBrush ); - - painter.save(); - - painter.translate ( QCanvasRectangle::x(), QCanvasRectangle::y() ); - //painter.drawRect ( 0, 0, (int) mWidth+1, (int) mHeight+1 ); // is it right? - painter.drawRect ( 0, 0, QCanvasRectangle::width()+1, QCanvasRectangle::height()+1 ); // is it right? - painter.restore(); + if ( mFrame ) { + painter.setPen( QPen(QColor(0,0,0), 1) ); + painter.setBrush( Qt::NoBrush ); + painter.save(); + painter.translate ( QCanvasRectangle::x(), QCanvasRectangle::y() ); + painter.drawRect ( 0, 0, QCanvasRectangle::width()+1, QCanvasRectangle::height()+1 ); // is it right? + painter.restore(); + } // Show selected / Highlight std::cout << "mSelected = " << mSelected << std::endl; @@ -338,6 +340,17 @@ void QgsComposerMap::recalculate ( void ) cache(); } +void QgsComposerMap::frameChanged ( ) +{ + mFrame = mFrameCheckBox->isChecked(); + + QCanvasRectangle::update(); + QCanvasRectangle::canvas()->update(); + + writeSettings(); +} + + void QgsComposerMap::setOptions ( void ) { mNameLabel->setText ( mName ); @@ -365,6 +378,8 @@ void QgsComposerMap::setOptions ( void ) mWidthScaleLineEdit->setText ( QString("%1").arg(mWidthScale,0,'g',2) ); mSymbolScaleLineEdit->setText ( QString("%1").arg(mSymbolScale,0,'g',2) ); mFontScaleLineEdit->setText ( QString("%1").arg(mFontScale,0,'g',2) ); + + mFrameCheckBox->setChecked ( mFrame ); } void QgsComposerMap::setCurrentExtent ( void ) @@ -419,6 +434,8 @@ bool QgsComposerMap::writeSettings ( void ) QgsProject::instance()->writeEntry( "Compositions", path+"symbolscale", mSymbolScale ); QgsProject::instance()->writeEntry( "Compositions", path+"fontscale", mFontScale ); + QgsProject::instance()->writeEntry( "Compositions", path+"frame", mFrame ); + QgsProject::instance()->writeEntry( "Compositions", path+"previewmode", mPreviewMode ); return true; @@ -446,6 +463,8 @@ bool QgsComposerMap::readSettings ( void ) mSymbolScale = QgsProject::instance()->readDoubleEntry("Compositions", path+"symbolscale", 1., &ok); mFontScale = QgsProject::instance()->readDoubleEntry("Compositions", path+"fontscale", 1., &ok); + mFrame = QgsProject::instance()->readBoolEntry("Compositions", path+"frame", true, &ok); + mPreviewMode = (PreviewMode) QgsProject::instance()->readNumEntry("Compositions", path+"previewmode", Cache, &ok); recalculate(); diff --git a/src/qgscomposermap.h b/src/qgscomposermap.h index 2b688ba2eea..a8fef36af56 100644 --- a/src/qgscomposermap.h +++ b/src/qgscomposermap.h @@ -123,6 +123,9 @@ public slots: // Called by GUI if with scale was changed void scaleChanged ( void ); + // Frame settings changed + void frameChanged ( void ); + // Called by GUI if preview style was changed void previewModeChanged ( int i ); @@ -177,6 +180,9 @@ private: /** \brief Number of layers when cache was created */ int mNumCachedLayers; + + /** \brief Draw frame */ + bool mFrame; }; #endif diff --git a/src/qgscomposermapbase.ui b/src/qgscomposermapbase.ui index 6359d2b1aa1..7e86c546065 100644 --- a/src/qgscomposermapbase.ui +++ b/src/qgscomposermapbase.ui @@ -8,8 +8,8 @@ 0 0 - 265 - 607 + 271 + 650 @@ -217,6 +217,14 @@ mFontScaleLineEdit + + + mFrameCheckBox + + + Frame + + textLabel1_5 @@ -300,12 +308,19 @@ QgsComposerMapBase scaleChanged() + + mFrameCheckBox + clicked() + QgsComposerMapBase + frameChanged() + sizeChanged() setCurrentExtent() scaleChanged() previewModeChanged(int) + frameChanged() diff --git a/src/qgscomposition.cpp b/src/qgscomposition.cpp index aad2f693600..98868bd8415 100644 --- a/src/qgscomposition.cpp +++ b/src/qgscomposition.cpp @@ -498,6 +498,16 @@ void QgsComposition::setPlotStyle ( PlotStyle p ) for (std::list < QgsComposerItem * >::iterator it = mItems.begin(); it != mItems.end(); ++it) { (*it)->setPlotStyle( p ) ; } + + // Remove paper if Print, reset if Preview + if ( mPlotStyle == Print ) { + mPaperItem->setCanvas(0); + mCanvas->setBackgroundColor( Qt::white ); + } else { + mPaperItem->setCanvas(mCanvas); + mCanvas->setBackgroundColor( QColor(180,180,180) ); + + } } double QgsComposition::viewScale ( void )