[QGIS Commit] r9117 -
branches/advanced_printing_branch/src/app/composer
svn_qgis at osgeo.org
svn_qgis at osgeo.org
Fri Aug 22 03:24:35 EDT 2008
Author: mhugent
Date: 2008-08-22 03:24:34 -0400 (Fri, 22 Aug 2008)
New Revision: 9117
Modified:
branches/advanced_printing_branch/src/app/composer/qgscomposermap.cpp
branches/advanced_printing_branch/src/app/composer/qgscomposermap.h
Log:
Update composer map in case layers have been added or removed
Modified: branches/advanced_printing_branch/src/app/composer/qgscomposermap.cpp
===================================================================
--- branches/advanced_printing_branch/src/app/composer/qgscomposermap.cpp 2008-08-22 07:00:58 UTC (rev 9116)
+++ branches/advanced_printing_branch/src/app/composer/qgscomposermap.cpp 2008-08-22 07:24:34 UTC (rev 9117)
@@ -21,6 +21,7 @@
#include "qgslogger.h"
#include "qgsmaprenderer.h"
#include "qgsmaplayer.h"
+#include "qgsmaplayerregistry.h"
#include "qgsmaptopixel.h"
#include "qgsproject.h"
#include "qgsmaprenderer.h"
@@ -54,6 +55,8 @@
mXOffset = 0.0;
mYOffset = 0.0;
+ connectUpdateSlot();
+
//calculate mExtent based on width/height ratio and map canvas extent
if(mMapRenderer)
{
@@ -62,9 +65,7 @@
setSceneRect(QRectF(x, y, width, height));
QGraphicsRectItem::setZValue(20);
-
-
setToolTip(tr("Map") + " " + QString::number(mId));
QGraphicsRectItem::show();
@@ -76,6 +77,8 @@
//Offset
mXOffset = 0.0;
mYOffset = 0.0;
+
+ connectUpdateSlot();
mComposition = composition;
mMapRenderer = mComposition->mapRenderer();
@@ -226,6 +229,7 @@
void QgsComposerMap::mapCanvasChanged ( void )
{
mCacheUpdated = false;
+ cache();
QGraphicsRectItem::update();
}
@@ -347,6 +351,17 @@
return result;
}
+void QgsComposerMap::connectUpdateSlot()
+{
+ //connect signal from layer registry to update in case of new or deleted layers
+ QgsMapLayerRegistry* layerRegistry = QgsMapLayerRegistry::instance();
+ if(layerRegistry)
+ {
+ connect(layerRegistry, SIGNAL(layerWillBeRemoved(QString)), this, SLOT(mapCanvasChanged()));
+ connect(layerRegistry, SIGNAL(layerWasAdded(QgsMapLayer*)), this, SLOT(mapCanvasChanged()));
+ }
+}
+
bool QgsComposerMap::writeXML(QDomElement& elem, QDomDocument & doc)
{
if(elem.isNull())
Modified: branches/advanced_printing_branch/src/app/composer/qgscomposermap.h
===================================================================
--- branches/advanced_printing_branch/src/app/composer/qgscomposermap.h 2008-08-22 07:00:58 UTC (rev 9116)
+++ branches/advanced_printing_branch/src/app/composer/qgscomposermap.h 2008-08-22 07:24:34 UTC (rev 9117)
@@ -111,14 +111,14 @@
/**Sets offset values to shift image (useful for live updates when moving item content)*/
void setOffset(double xOffset, double yOffset);
- /** stores state in Dom node
- * @param elem is Dom element corresponding to 'Composer' tag
+ /** stores state in DOM node
+ * @param elem is DOM element corresponding to 'Composer' tag
* @param temp write template file
*/
bool writeXML(QDomElement& elem, QDomDocument & doc);
- /** sets state from Dom document
- * @param itemElem is Dom node corresponding to 'ComposerMap' tag
+ /** sets state from DOM document
+ * @param itemElem is DOM node corresponding to 'ComposerMap' tag
*/
bool readXML(const QDomElement& itemElem, const QDomDocument& doc);
@@ -176,6 +176,9 @@
/**For the generation of new unique ids*/
static int mCurrentComposerId;
+ /**Etablishes signal/slot connection for update in case of layer change*/
+ void connectUpdateSlot();
+
/**Returns the zoom factor of the graphics view. If no
graphics view exists, the default 1 is returned*/
double horizontalViewScaleFactor() const;
More information about the QGIS-commit
mailing list