[QGIS Commit] r9750 - in branches/advanced_printing_branch2/src: app/composer core/composer

svn_qgis at osgeo.org svn_qgis at osgeo.org
Sun Dec 7 08:46:00 EST 2008


Author: mhugent
Date: 2008-12-07 08:46:00 -0500 (Sun, 07 Dec 2008)
New Revision: 9750

Modified:
   branches/advanced_printing_branch2/src/app/composer/qgscomposer.cpp
   branches/advanced_printing_branch2/src/app/composer/qgscomposer.h
   branches/advanced_printing_branch2/src/app/composer/qgscomposermapwidget.cpp
   branches/advanced_printing_branch2/src/core/composer/qgscomposermap.cpp
   branches/advanced_printing_branch2/src/core/composer/qgscomposermap.h
Log:
Enabled render mode for composer map again

Modified: branches/advanced_printing_branch2/src/app/composer/qgscomposer.cpp
===================================================================
--- branches/advanced_printing_branch2/src/app/composer/qgscomposer.cpp	2008-12-07 09:33:14 UTC (rev 9749)
+++ branches/advanced_printing_branch2/src/app/composer/qgscomposer.cpp	2008-12-07 13:46:00 UTC (rev 9750)
@@ -403,18 +403,22 @@
 void QgsComposer::on_mActionZoomAll_activated( void )
 {
   zoomFull();
+  mView->update();
+  emit zoomLevelChanged();
 }
 
 void QgsComposer::on_mActionZoomIn_activated( void )
 {
   mView->scale( 2, 2 );
-  //mView->update();
+  mView->update();
+  emit zoomLevelChanged();
 }
 
 void QgsComposer::on_mActionZoomOut_activated( void )
 {
   mView->scale( .5, .5 );
-  //mView->update();
+  mView->update();
+  emit zoomLevelChanged();
 }
 
 void QgsComposer::on_mActionRefreshView_activated( void )
@@ -1142,6 +1146,7 @@
   }
 
   QgsComposerMapWidget* mapWidget = new QgsComposerMapWidget( map );
+  connect(this, SIGNAL(zoomLevelChanged()), map, SLOT(renderModeUpdateCachedImage()));
   mItemWidgetMap.insert( map, mapWidget );
 }
 

Modified: branches/advanced_printing_branch2/src/app/composer/qgscomposer.h
===================================================================
--- branches/advanced_printing_branch2/src/app/composer/qgscomposer.h	2008-12-07 09:33:14 UTC (rev 9749)
+++ branches/advanced_printing_branch2/src/app/composer/qgscomposer.h	2008-12-07 13:46:00 UTC (rev 9750)
@@ -92,6 +92,11 @@
     virtual void showEvent( QShowEvent * );
 #endif
 
+  signals:
+    //! Is emitted every time the view zoom has changed
+    void zoomLevelChanged();
+
+
   public slots:
     //! Zoom to full extent of the paper
     void on_mActionZoomAll_activated( void );

Modified: branches/advanced_printing_branch2/src/app/composer/qgscomposermapwidget.cpp
===================================================================
--- branches/advanced_printing_branch2/src/app/composer/qgscomposermapwidget.cpp	2008-12-07 09:33:14 UTC (rev 9749)
+++ branches/advanced_printing_branch2/src/app/composer/qgscomposermapwidget.cpp	2008-12-07 13:46:00 UTC (rev 9750)
@@ -38,8 +38,7 @@
   mYMaxLineEdit->setValidator( new QDoubleValidator( 0 ) );
 
   mPreviewModeComboBox->insertItem( 0, tr( "Cache" ) );
-  //MH: disabled because this option leads to frequent crashes with Qt 4.4.0 and 4.4.1
-  //mPreviewModeComboBox->insertItem(1, tr("Render"));
+  mPreviewModeComboBox->insertItem(1, tr("Render"));
   mPreviewModeComboBox->insertItem( 2, tr( "Rectangle" ) );
 
   if ( composerMap )

Modified: branches/advanced_printing_branch2/src/core/composer/qgscomposermap.cpp
===================================================================
--- branches/advanced_printing_branch2/src/core/composer/qgscomposermap.cpp	2008-12-07 09:33:14 UTC (rev 9749)
+++ branches/advanced_printing_branch2/src/core/composer/qgscomposermap.cpp	2008-12-07 13:46:00 UTC (rev 9750)
@@ -116,6 +116,13 @@
   theMapRenderer.setProjectionsEnabled( mMapRenderer->hasCrsTransformEnabled() );
   theMapRenderer.setDestinationSrs( mMapRenderer->destinationSrs() );
 
+  //set antialiasing if enabled in options
+  QSettings settings;
+  if(settings.value( "/qgis/enable_anti_aliasing", false ).toBool())
+  {
+    painter->setRenderHint( QPainter::Antialiasing );
+  }
+
   QgsRenderContext* theRendererContext = theMapRenderer.rendererContext();
   if ( theRendererContext )
   {
@@ -142,14 +149,14 @@
   int w = rect().width() * horizontalViewScaleFactor();
   int h = rect().height() * horizontalViewScaleFactor();
 
-  if ( w > 3000 ) //limit size of image for better performance
+  if ( w > 5000 ) //limit size of image for better performance
   {
-    w = 3000;
+    w = 5000;
   }
 
-  if ( h > 3000 )
+  if ( h > 5000 )
   {
-    h = 3000;
+    h = 5000;
   }
 
   mCachePixmap = QPixmap( w, h );
@@ -231,13 +238,21 @@
   mLastScaleFactorX =  currentScaleFactorX;
 }
 
-void QgsComposerMap::mapCanvasChanged( void )
+void QgsComposerMap::updateCachedImage( void )
 {
   mCacheUpdated = false;
   cache();
   QGraphicsRectItem::update();
 }
 
+void QgsComposerMap::renderModeUpdateCachedImage()
+{
+  if(mPreviewMode == Render)
+  {
+    updateCachedImage();
+  }
+}
+
 void QgsComposerMap::setCacheUpdated( bool u )
 {
   mCacheUpdated = u;
@@ -461,8 +476,8 @@
   QgsMapLayerRegistry* layerRegistry = QgsMapLayerRegistry::instance();
   if ( layerRegistry )
   {
-    connect( layerRegistry, SIGNAL( layerWillBeRemoved( QString ) ), this, SLOT( mapCanvasChanged() ) );
-    connect( layerRegistry, SIGNAL( layerWasAdded( QgsMapLayer* ) ), this, SLOT( mapCanvasChanged() ) );
+    connect( layerRegistry, SIGNAL( layerWillBeRemoved( QString ) ), this, SLOT( updateCachedImage() ) );
+    connect( layerRegistry, SIGNAL( layerWasAdded( QgsMapLayer* ) ), this, SLOT( updateCachedImage() ) );
   }
 }
 

Modified: branches/advanced_printing_branch2/src/core/composer/qgscomposermap.h
===================================================================
--- branches/advanced_printing_branch2/src/core/composer/qgscomposermap.h	2008-12-07 09:33:14 UTC (rev 9749)
+++ branches/advanced_printing_branch2/src/core/composer/qgscomposermap.h	2008-12-07 13:46:00 UTC (rev 9750)
@@ -134,8 +134,10 @@
 
   public slots:
 
-    // Called if map canvas has changed
-    void mapCanvasChanged( );
+    /**Called if map canvas has changed*/
+    void updateCachedImage( );
+    /**Call updateCachedImage if item is in render mode*/
+    void renderModeUpdateCachedImage();
 
   signals:
     /**Is emitted when width/height is changed as a result of user interaction*/



More information about the QGIS-commit mailing list