예제 #1
0
void QgsComposition::print( QPrinter &printer )
{
  //set resolution based on composer setting
  printer.setFullPage( true );
  printer.setColorMode( QPrinter::Color );

  //set user-defined resolution
  printer.setResolution( printResolution() );

  QPainter p( &printer );

  //QgsComposition starts page numbering at 0
  int fromPage = ( printer.fromPage() < 1 ) ? 0 : printer.fromPage() - 1 ;
  int toPage = ( printer.toPage() < 1 ) ? numPages() - 1 : printer.toPage() - 1;

  if ( mPrintAsRaster )
  {
    for ( int i = fromPage; i <= toPage; ++i )
    {
      if ( i > fromPage )
      {
        printer.newPage();
      }

      QImage image = printPageAsRaster( i );
      if ( !image.isNull() )
      {
        QRectF targetArea( 0, 0, image.width(), image.height() );
        p.drawImage( targetArea, image, targetArea );
      }
    }
  }

  if ( !mPrintAsRaster )
  {
    for ( int i = fromPage; i <= toPage; ++i )
    {
      if ( i > fromPage )
      {
        printer.newPage();
      }
      renderPage( &p, i );
    }
  }
}
예제 #2
0
void QgsComposition::doPrint( QPrinter& printer, QPainter& p )
{
//QgsComposition starts page numbering at 0
  int fromPage = ( printer.fromPage() < 1 ) ? 0 : printer.fromPage() - 1 ;
  int toPage = ( printer.toPage() < 1 ) ? numPages() - 1 : printer.toPage() - 1;

  if ( mPrintAsRaster )
  {
    for ( int i = fromPage; i <= toPage; ++i )
    {
      if ( i > fromPage )
      {
        printer.newPage();
      }

      QImage image = printPageAsRaster( i );
      if ( !image.isNull() )
      {
        QRectF targetArea( 0, 0, image.width(), image.height() );
        p.drawImage( targetArea, image, targetArea );
      }
    }
  }

  if ( !mPrintAsRaster )
  {
    for ( int i = fromPage; i <= toPage; ++i )
    {
      if ( i > fromPage )
      {
        printer.newPage();
      }
      renderPage( &p, i );
    }
  }
}
예제 #3
0
    void FalagardListHeaderSegment::render()
    {
        ListHeaderSegment* w = (ListHeaderSegment*)d_window;
        // get WidgetLookFeel for the assigned look.
        const WidgetLookFeel& wlf = getLookNFeel();

        const StateImagery* imagery;

        // get imagery for main state.
        if (w->isDisabled())
        {
            imagery = &wlf.getStateImagery("Disabled");
        }
        else if ((w->isSegmentHovering() != w->isSegmentPushed()) && !w->isSplitterHovering() && w->isClickable())
        {
            imagery = &wlf.getStateImagery("Hover");
        }
        else if (w->isSplitterHovering())
        {
            imagery = &wlf.getStateImagery("SplitterHover");
        }
        else
        {
            imagery = &wlf.getStateImagery("Normal");
        }

        // do main rendering
        imagery->render(*w);

        // Render sorting icon as needed
        ListHeaderSegment::SortDirection sort_dir = w->getSortDirection();
        if (sort_dir == ListHeaderSegment::Ascending)
        {
            imagery = &wlf.getStateImagery("AscendingSortIcon");
            imagery->render(*w);
        }
        else if (sort_dir == ListHeaderSegment::Descending)
        {
            imagery = &wlf.getStateImagery("DescendingSortIcon");
            imagery->render(*w);
        }

        // draw ghost copy if the segment is being dragged.
        if (w->isBeingDragMoved())
        {
            Size pixel_size = w->getPixelSize();
            Rect targetArea(0, 0, pixel_size.d_width, pixel_size.d_height);
            targetArea.offset(w->getDragMoveOffset());
            imagery = &wlf.getStateImagery("DragGhost");
            imagery->render(*w, targetArea);

            // Render sorting icon as needed
            if (sort_dir == ListHeaderSegment::Ascending)
            {
                imagery = &wlf.getStateImagery("GhostAscendingSortIcon");
                imagery->render(*w, targetArea);
            }
            else if (sort_dir == ListHeaderSegment::Descending)
            {
                imagery = &wlf.getStateImagery("GhostDescendingSortIcon");
                imagery->render(*w, targetArea);
            }
        }
    }