void QgsMapOverviewCanvas::refresh()
{
  updateFullExtent();

  if ( !mSettings.hasValidSettings() )
  {
    mPixmap = QPixmap();
    update();
    return; // makes no sense to render anything
  }

  if ( mJob )
  {
    QgsDebugMsg( "oveview - cancelling old" );
    mJob->cancel();
    QgsDebugMsg( "oveview - deleting old" );
    delete mJob; // get rid of previous job (if any)
  }

  QgsDebugMsg( "oveview - starting new" );

  // TODO: setup overview mode
  mJob = new QgsMapRendererSequentialJob( mSettings );
  connect( mJob, SIGNAL( finished() ), this, SLOT( mapRenderingFinished() ) );
  mJob->start();

  setBackgroundColor( mMapCanvas->mapSettings().backgroundColor() );

  // schedule repaint
  update();

  // update panning widget
  drawExtentRect();
}
void QgsMapOverviewCanvas::refresh()
{
  if ( mPixmap.isNull() || mPixmap.paintingActive() )
    return;

  mPixmap.fill( mBgColor ); //palette().color(backgroundRole());

  QPainter painter;
  painter.begin( &mPixmap );

  // antialiasing
  if ( mAntiAliasing )
    painter.setRenderHint( QPainter::Antialiasing );

  // render image
  mMapRenderer->render( &painter );

  painter.end();

  // schedule repaint
  update();

  // update panning widget
  drawExtentRect();
}
Beispiel #3
0
QgsMapOverviewCanvas::QgsMapOverviewCanvas( QWidget * parent, QgsMapCanvas* mapCanvas )
    : QWidget( parent )
    , mMapCanvas( mapCanvas )
    , mJob( 0 )
{
  setObjectName( "theOverviewCanvas" );
  mPanningWidget = new QgsPanningWidget( this );

  mSettings.setFlag( QgsMapSettings::DrawLabeling, false );

  connect( mMapCanvas, SIGNAL( extentsChanged() ), this, SLOT( drawExtentRect() ) );
}
void QgsMapOverviewCanvas::updateFullExtent()
{
  QgsRectangle rect;
  if ( mSettings.hasValidSettings() )
    rect = mSettings.fullExtent();
  else
    rect = mMapCanvas->fullExtent();

  // expand a bit to keep features on margin
  rect.scale( 1.1 );

  mSettings.setExtent( rect );
  drawExtentRect();
}
void QgsMapOverviewCanvas::updateFullExtent( const QgsRectangle& rect )
{
  mMapRenderer->setExtent( rect );
  drawExtentRect();
}