Skip to content

Commit

Permalink
Merge atlas branch
Browse files Browse the repository at this point in the history
  • Loading branch information
mhugent committed Oct 6, 2012
2 parents f1c9955 + e54e917 commit 6849406
Show file tree
Hide file tree
Showing 55 changed files with 2,807 additions and 209 deletions.
63 changes: 63 additions & 0 deletions python/core/composer/qgsatlascomposition.sip
@@ -0,0 +1,63 @@
/** \ingroup MapComposer
* Class used to render an Atlas, iterating over geometry features.
* prepareForFeature() modifies the atlas map's extent to zoom on the given feature.
* This class is used for printing, exporting to PDF and images.
* */
class QgsAtlasComposition : public QObject
{
%TypeHeaderCode
#include <qgsatlascomposition.h>
%End

public:
QgsAtlasComposition( QgsComposition* composition );
~QgsAtlasComposition();

/** Is the atlas generation enabled ? */
bool enabled() const;
void setEnabled( bool e );

QgsComposerMap* composerMap() const;
void setComposerMap( QgsComposerMap* map );

bool hideCoverage() const;
void setHideCoverage( bool hide );

bool fixedScale() const;
void setFixedScale( bool fixed );

float margin() const;
void setMargin( float margin );

QString filenamePattern() const;
void setFilenamePattern( const QString& pattern );

QgsVectorLayer* coverageLayer() const;
void setCoverageLayer( QgsVectorLayer* lmap );

bool singleFile() const;
void setSingleFile( bool single );

/** Begins the rendering. */
void beginRender();
/** Ends the rendering. Restores original extent */
void endRender();

/** Returns the number of features in the coverage layer */
size_t numFeatures() const;

/** Prepare the atlas map for the given feature. Sets the extent and context variables */
void prepareForFeature( size_t i );

/** Returns the current filename. Must be called after prepareForFeature( i ) */
const QString& currentFilename() const;

void writeXML( QDomElement& elem, QDomDocument& doc ) const;
void readXML( const QDomElement& elem, const QDomDocument& doc );

QgsComposition* composition();

signals:
/** emitted when one of the parameters changes */
void parameterChanged();
};
3 changes: 3 additions & 0 deletions python/core/composer/qgscomposerlabel.sip
Expand Up @@ -26,6 +26,9 @@ class QgsComposerLabel : QgsComposerItem
@note this function was added in version 1.2*/
QString displayText() const;

/** Sets the current feature, the current layer and a list of local variable substitutions for evaluating expressions */
void setExpressionContext( QgsFeature* feature, QgsVectorLayer* layer, QMap<QString, QVariant> substitutions = QMap<QString, QVariant>() );

QFont font() const;
void setFont( const QFont& f );
/** Accessor for the vertical alignment of the label
Expand Down
42 changes: 32 additions & 10 deletions python/core/composer/qgscomposition.sip
Expand Up @@ -4,11 +4,12 @@
* them in a list in ascending z-Order. This list can be changed to lower/raise items one position
* or to bring them to front/back.
* */
class QgsComposition: QGraphicsScene
class QgsComposition : QGraphicsScene
{
%TypeHeaderCode
#include <qgscomposition.h>
%End

public:

/** \brief Plot type */
Expand Down Expand Up @@ -67,20 +68,27 @@ class QgsComposition: QGraphicsScene
/**Returns pointer to undo/redo command storage*/
QUndoStack* undoStack();

/**Returns the topmose composer item. Ignores mPaperItem*/
/**Returns the topmost composer item. Ignores mPaperItem*/
QgsComposerItem* composerItemAt( const QPointF & position );

/** Returns the page number (0-bsaed) given a coordinate */
int pageNumberAt( const QPointF& position ) const;

/** Returns on which page number (0-based) is displayed an item */
int itemPageNumber( const QgsComposerItem* ) const;

QList<QgsComposerItem*> selectedComposerItems();

/**Returns pointers to all composer maps in the scene*/
//todo: needs a new mapping for QList<const T*> ?
// QList<const QgsComposerMap*> composerMapItems() const;
%If (QLISTCONSTPTR_CONVERSION)
QList<const QgsComposerMap*> composerMapItems() const;
%End

/**Return composer items of a specific type*/
// template<class T> void composerItems( QList<T*>& itemList );

/**Returns the composer map with specified id
@return id or 0 pointer if the composer map item does not exist*/
@return QgsComposerMap or 0 pointer if the composer map item does not exist*/
const QgsComposerMap* getComposerMapById( int id ) const;

/*Returns the composer html with specified id (a string as named in the
Expand Down Expand Up @@ -111,7 +119,7 @@ class QgsComposition: QGraphicsScene
/**Returns pointer to map renderer of qgis map canvas*/
QgsMapRenderer* mapRenderer();

QgsComposition::PlotStyle plotStyle();
QgsComposition::PlotStyle plotStyle() const;
void setPlotStyle( QgsComposition::PlotStyle style );

/**Returns the pixel font size for a font that has point size set.
Expand Down Expand Up @@ -140,8 +148,13 @@ class QgsComposition: QGraphicsScene
@param doc xml document
@param mapsToRestore for reading from project file: set preview move 'rectangle' to all maps and save the preview states to show composer maps on demand
@param addUndoCommands insert AddItem commands if true (e.g. for copy/paste)
@param pos item position. Optional, take position from xml if 0*/
//void addItemsFromXML( const QDomElement& elem, const QDomDocument& doc, QMap< QgsComposerMap*, int >* mapsToRestore, bool addUndoCommands = false, QPointF* pos = 0 );
@param pos item position. Optional, take position from xml if 0
@note not available in python bindings
*/
/*
void addItemsFromXML( const QDomElement& elem, const QDomDocument& doc, QMap< QgsComposerMap*, int >* mapsToRestore = 0,
bool addUndoCommands = false, QPointF* pos = 0 );
*/

/**Adds item to z list. Usually called from constructor of QgsComposerItem*/
void addItemToZList( QgsComposerItem* item );
Expand Down Expand Up @@ -192,7 +205,7 @@ class QgsComposition: QGraphicsScene
/**Removes multi frame (but does not delete it)*/
void removeMultiFrame( QgsComposerMultiFrame* multiFrame );
/**Adds an arrow item to the graphics scene and advices composer to create a widget for it (through signal)*/
//void addComposerArrow( QgsComposerArrow* arrow );
void addComposerArrow( QgsComposerArrow* arrow );
/**Adds label to the graphics scene and advices composer to create a widget for it (through signal)*/
void addComposerLabel( QgsComposerLabel* label );
/**Adds map to the graphics scene and advices composer to create a widget for it (through signal)*/
Expand All @@ -219,10 +232,19 @@ class QgsComposition: QGraphicsScene

//printing

void exportAsPDF( const QString& file );
/** Prepare the printer for printing */
void beginPrint( QPrinter& printer );
/** Prepare the printer for printing in a PDF */
void beginPrintAsPDF( QPrinter& printer, const QString& file );
/** Print on a preconfigured printer */
void doPrint( QPrinter& printer, QPainter& painter );

/** Convenience function that prepares the printer and prints */
void print( QPrinter &printer );

/** Convenience function that prepares the printer for printing in PDF and prints */
void exportAsPDF( const QString& file );

//! print composer page to image
//! If the image does not fit into memory, a null image is returned
QImage printPageAsRaster( int page );
Expand Down
1 change: 1 addition & 0 deletions python/core/core.sip
Expand Up @@ -98,6 +98,7 @@
%Include composer/qgscomposershape.sip
%Include composer/qgscomposertable.sip
%Include composer/qgscomposition.sip
%Include composer/qgsatlascomposition.sip
%Include composer/qgsdoubleboxscalebarstyle.sip
%Include composer/qgslegendmodel.sip
%Include composer/qgsnumericscalebarstyle.sip
Expand Down
13 changes: 12 additions & 1 deletion python/core/qgsexpression.sip
Expand Up @@ -43,6 +43,13 @@ class QgsExpression
//! Return the number used for $rownum special column
int currentRowNumber();

//! Assign a special column
static void setSpecialColumn( const QString& name, QVariant value );
//! Unset a special column
static void unsetSpecialColumn( const QString& name );
//! Return the value of the given special column or a null QVariant if undefined
static QVariant specialColumn( const QString& name );

void setScale( double scale );

int scale();
Expand All @@ -64,7 +71,6 @@ class QgsExpression
static QString replaceExpressionText( QString action, QgsFeature &feat,
QgsVectorLayer* layer,
const QMap<QString, QVariant> *substitutionMap = 0 );

//

enum UnaryOperator
Expand Down Expand Up @@ -141,6 +147,11 @@ class QgsExpression
*/
static int functionCount();

/**
* Returns a list of special Column definitions
*/
static QList<QgsExpression::FunctionDef> specialColumns();

//! return quoted column reference (in double quotes)
static QString quotedColumnRef( QString name );
//! return quoted string (in single quotes)
Expand Down
12 changes: 12 additions & 0 deletions resources/function_help/$feature-en_US
@@ -0,0 +1,12 @@
<h3>$feature function</h3>
In atlas generation, returns the current feature number that is iterated over on the coverage layer.

<h4>Syntax</h4>
<pre>$feature</pre>

<h4>Arguments</h4>
None

<h4>Example</h4>
<pre>$feature &rarr; 2</pre>

12 changes: 12 additions & 0 deletions resources/function_help/$numfeatures-en_US
@@ -0,0 +1,12 @@
<h3>$numfeatures function</h3>
In atlas generation, returns the total number of features within the coverage layer.

<h4>Syntax</h4>
<pre>$numfeatures</pre>

<h4>Arguments</h4>
None

<h4>Example</h4>
<pre>$numfeatures &rarr; 42</pre>

12 changes: 12 additions & 0 deletions resources/function_help/$numpages-en_US
@@ -0,0 +1,12 @@
<h3>$numpages function</h3>
Returns the total number of pages in the composition.

<h4>Syntax</h4>
<pre>$numpages</pre>

<h4>Arguments</h4>
None

<h4>Example</h4>
<pre>$numpages &rarr; 42</pre>

12 changes: 12 additions & 0 deletions resources/function_help/$page-en_US
@@ -0,0 +1,12 @@
<h3>$page function</h3>
Returns the current page number within a composition.

<h4>Syntax</h4>
<pre>$page</pre>

<h4>Arguments</h4>
None

<h4>Example</h4>
<pre>$page &rarr; 2</pre>

2 changes: 2 additions & 0 deletions src/app/CMakeLists.txt
Expand Up @@ -126,6 +126,7 @@ SET(QGIS_APP_SRCS
composer/qgscomposerlegendlayersdialog.cpp
composer/qgscomposerlegendwidget.cpp
composer/qgscompositionwidget.cpp
composer/qgsatlascompositionwidget.cpp
composer/qgsitempositiondialog.cpp

legend/qgslegendgroup.cpp
Expand Down Expand Up @@ -268,6 +269,7 @@ SET (QGIS_APP_MOC_HDRS
composer/qgscomposertablewidget.h
composer/qgscomposershapewidget.h
composer/qgscompositionwidget.h
composer/qgsatlascompositionwidget.h
composer/qgsitempositiondialog.h

legend/qgslegend.h
Expand Down

0 comments on commit 6849406

Please sign in to comment.