Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/qgis/Quantum-GIS
Browse files Browse the repository at this point in the history
  • Loading branch information
volaya committed Jan 27, 2013
2 parents 20e4ec5 + a9a289e commit 250e2a5
Show file tree
Hide file tree
Showing 261 changed files with 13,100 additions and 10,189 deletions.
68 changes: 34 additions & 34 deletions doc/TRANSLATORS

Large diffs are not rendered by default.

4 changes: 3 additions & 1 deletion doc/osx.t2t
@@ -1,4 +1,3 @@

= Building on MacOS X =

In this approach I will try to avoid as much as possible building dependencies
Expand Down Expand Up @@ -77,6 +76,9 @@ of Xcode, regardless of using a separate DMG installer for just the tools.

Xcode 4.4+ also introduces the clang frontend to the LLVM compiler as default.

**Note:** In XCODE 4.5 installed from teh app store, you need to install the
command line tools from XCode -> Preferences -> Downloads and choose command line tools.

http://clang.llvm.org/

The supplied clang version 4 can compile QGIS, but presents many warnings
Expand Down
4,259 changes: 2,374 additions & 1,885 deletions i18n/qgis_de.ts

Large diffs are not rendered by default.

133 changes: 78 additions & 55 deletions python/core/conversions.sip
Expand Up @@ -14,7 +14,7 @@ which are not wrapped by PyQt:
- QMap<TYPE1, TYPE2*>
- QMap<double, TYPE>
- QMultiMap<double, TYPE2>
- QMap<qint64, QgsGeometry>
- QMap<qint64, TYPE>
- QMap<qint64, QgsOverlayObject*>
- QList< QPair< QString, QList<QString> > >
- QVector<TYPE*>
Expand Down Expand Up @@ -661,94 +661,117 @@ template<TYPE>
};


//
// copied from PyQt4 QMap<int, TYPE> and adapted to qint64
//

%MappedType QMap<qint64, QgsGeometry>
// QMap<qint64, TYPE> is implemented as a Python dictionary.
template<TYPE>
%MappedType QMap<qint64, TYPE> /DocType="dict-of-qint64-TYPE"/
{
%TypeHeaderCode
#include <QMap>
#include <qmap.h>
%End

%ConvertFromTypeCode
// Create the list.
PyObject *d;
// Create the dictionary.
PyObject *d = PyDict_New();

if ((d = PyDict_New()) == NULL)
return NULL;
if (!d)
return NULL;

// Set the list elements.
for (QMap<qint64, QgsGeometry>::iterator it = sipCpp->begin(); it != sipCpp->end(); ++it)
{
PyObject *kobj = PyLong_FromLongLong(it.key());
PyObject *tobj = sipConvertFromInstance( &it.value(), sipClass_QgsGeometry, sipTransferObj);
// Set the dictionary elements.
QMap<qint64, TYPE>::const_iterator i = sipCpp->constBegin();

if (kobj == NULL || tobj == NULL || PyDict_SetItem(d, kobj, tobj) < 0)
while (i != sipCpp->constEnd())
{
Py_DECREF(d);
TYPE *t = new TYPE(i.value());

if (kobj)
{
Py_DECREF(kobj);
}
PyObject *kobj = PyLong_FromLongLong(i.key());
//PyObject *kobj = SIPLong_FromLong(i.key());
PyObject *tobj = sipConvertFromNewType(t, sipType_TYPE, sipTransferObj);

if (tobj)
{
if (kobj == NULL || tobj == NULL || PyDict_SetItem(d, kobj, tobj) < 0)
{
Py_DECREF(d);

if (kobj)
{
Py_DECREF(kobj);
}

if (tobj)
{
Py_DECREF(tobj);
}
else
{
delete t;
}

return NULL;
}

Py_DECREF(kobj);
Py_DECREF(tobj);
}

return NULL;
++i;
}

Py_DECREF(tobj);
}

return d;
return d;
%End

%ConvertToTypeCode
PyObject *kobj, *tobj;
PyObject *kobj, *tobj;
SIP_SSIZE_T i = 0;

// Check the type if that is all that is required.
if (sipIsErr == NULL)
{
if (!PyDict_Check(sipPy))
return 0;
// Check the type if that is all that is required.
if (sipIsErr == NULL)
{
if (!PyDict_Check(sipPy))
return 0;

while (PyDict_Next(sipPy, &i, &kobj, &tobj))
if (!sipCanConvertToType(tobj, sipType_TYPE, SIP_NOT_NONE))
return 0;

return 1;
}

QMap<qint64, TYPE> *qm = new QMap<qint64, TYPE>;

Py_ssize_t i = 0;
while (PyDict_Next(sipPy, &i, &kobj, &tobj))
{
if (!sipCanConvertToInstance(tobj, sipClass_QgsGeometry, SIP_NOT_NONE))
return 0;
}
return 1;
}
int state;
//, k = SIPLong_AsLong(kobj);
qint64 k = PyLong_AsLongLong(kobj);
TYPE *t = reinterpret_cast<TYPE *>(sipConvertToType(tobj, sipType_TYPE, sipTransferObj, SIP_NOT_NONE, &state, sipIsErr));

QMap<qint64, QgsGeometry> *qm = new QMap<qint64, QgsGeometry>;
if (*sipIsErr)
{
sipReleaseType(t, sipType_TYPE, state);

Py_ssize_t i = 0;
while (PyDict_Next(sipPy, &i, &kobj, &tobj))
{
int state;
qint64 k = PyLong_AsLongLong(kobj);
QgsGeometry * t = reinterpret_cast<QgsGeometry*>(sipConvertToInstance(tobj, sipClass_QgsGeometry, sipTransferObj,SIP_NOT_NONE,&state,sipIsErr));
delete qm;
return 0;
}

if (*sipIsErr)
{
sipReleaseInstance(t, sipClass_QgsGeometry, state);
delete qm;
return 0;
qm->insert(k, *t);

sipReleaseType(t, sipType_TYPE, state);
}

qm->insert(k, *t);
sipReleaseInstance(t, sipClass_QgsGeometry, state);
}
*sipCppPtr = qm;

*sipCppPtr = qm;
return sipGetState(sipTransferObj);
return sipGetState(sipTransferObj);
%End
};







%MappedType QMap<QString, QVariant::Type>
{
%TypeHeaderCode
Expand Down
3 changes: 3 additions & 0 deletions python/core/core.sip
Expand Up @@ -26,6 +26,8 @@
%Include qgsdistancearea.sip
%Include qgsexpression.sip
%Include qgsfeature.sip
%Include qgsfeatureiterator.sip
%Include qgsfeaturerequest.sip
%Include qgsfield.sip
%Include qgsgeometry.sip
%Include qgsgeometryvalidator.sip
Expand Down Expand Up @@ -72,6 +74,7 @@
%Include qgsvectordataprovider.sip
%Include qgsvectorfilewriter.sip
%Include qgsvectorlayer.sip
%Include qgsvectorlayereditbuffer.sip
%Include qgsvectorlayerimport.sip
%Include qgsvectorlayerjoinbuffer.sip
%Include qgsvectorlayerundocommand.sip
Expand Down
6 changes: 3 additions & 3 deletions python/core/diagram/qgsdiagram.sip
Expand Up @@ -6,12 +6,12 @@ class QgsDiagram
public:
virtual ~QgsDiagram();
/**Draws the diagram at the given position (in pixel coordinates)*/
virtual void renderDiagram( const QgsAttributeMap& att, QgsRenderContext& c, const QgsDiagramSettings& s, const QPointF& position ) = 0;
virtual void renderDiagram( const QgsAttributes& att, QgsRenderContext& c, const QgsDiagramSettings& s, const QPointF& position ) = 0;
virtual QString diagramName() const = 0;
/**Returns the size in map units the diagram will use to render.*/
virtual QSizeF diagramSize( const QgsAttributeMap& attributes, const QgsRenderContext& c, const QgsDiagramSettings& s ) = 0;
virtual QSizeF diagramSize( const QgsAttributes& attributes, const QgsRenderContext& c, const QgsDiagramSettings& s ) = 0;
/**Returns the size in map units the diagram will use to render. Interpolate size*/
virtual QSizeF diagramSize( const QgsAttributeMap& attributes, const QgsRenderContext& c, const QgsDiagramSettings& s, const QgsDiagramInterpolationSettings& is ) = 0;
virtual QSizeF diagramSize( const QgsAttributes& attributes, const QgsRenderContext& c, const QgsDiagramSettings& s, const QgsDiagramInterpolationSettings& is ) = 0;

protected:
/** Changes the pen width to match the current settings and rendering context
Expand Down
6 changes: 3 additions & 3 deletions python/core/diagram/qgshistogramdiagram.sip
Expand Up @@ -7,8 +7,8 @@ class QgsHistogramDiagram: QgsDiagram
QgsHistogramDiagram();
~QgsHistogramDiagram();

void renderDiagram( const QgsAttributeMap& att, QgsRenderContext& c, const QgsDiagramSettings& s, const QPointF& position );
QSizeF diagramSize( const QgsAttributeMap& attributes, const QgsRenderContext& c, const QgsDiagramSettings& s );
QSizeF diagramSize( const QgsAttributeMap& attributes, const QgsRenderContext& c, const QgsDiagramSettings& s, const QgsDiagramInterpolationSettings& is );
void renderDiagram( const QgsAttributes& att, QgsRenderContext& c, const QgsDiagramSettings& s, const QPointF& position );
QSizeF diagramSize( const QgsAttributes& attributes, const QgsRenderContext& c, const QgsDiagramSettings& s );
QSizeF diagramSize( const QgsAttributes& attributes, const QgsRenderContext& c, const QgsDiagramSettings& s, const QgsDiagramInterpolationSettings& is );
QString diagramName() const;
};
6 changes: 3 additions & 3 deletions python/core/diagram/qgspiediagram.sip
Expand Up @@ -7,8 +7,8 @@ class QgsPieDiagram: QgsDiagram
QgsPieDiagram();
~QgsPieDiagram();

void renderDiagram( const QgsAttributeMap& att, QgsRenderContext& c, const QgsDiagramSettings& s, const QPointF& position );
QSizeF diagramSize( const QgsAttributeMap& attributes, const QgsRenderContext& c, const QgsDiagramSettings& s );
QSizeF diagramSize( const QgsAttributeMap& attributes, const QgsRenderContext& c, const QgsDiagramSettings& s, const QgsDiagramInterpolationSettings& is );
void renderDiagram( const QgsAttributes& att, QgsRenderContext& c, const QgsDiagramSettings& s, const QPointF& position );
QSizeF diagramSize( const QgsAttributes& attributes, const QgsRenderContext& c, const QgsDiagramSettings& s );
QSizeF diagramSize( const QgsAttributes& attributes, const QgsRenderContext& c, const QgsDiagramSettings& s, const QgsDiagramInterpolationSettings& is );
QString diagramName() const;
};
6 changes: 3 additions & 3 deletions python/core/diagram/qgstextdiagram.sip
Expand Up @@ -20,9 +20,9 @@ class QgsTextDiagram: QgsDiagram

QgsTextDiagram();
~QgsTextDiagram();
void renderDiagram( const QgsAttributeMap& att, QgsRenderContext& c, const QgsDiagramSettings& s, const QPointF& position );
QSizeF diagramSize( const QgsAttributeMap& attributes, const QgsRenderContext& c, const QgsDiagramSettings& s );
QSizeF diagramSize( const QgsAttributeMap& attributes, const QgsRenderContext& c, const QgsDiagramSettings& s, const QgsDiagramInterpolationSettings& is );
void renderDiagram( const QgsAttributes& att, QgsRenderContext& c, const QgsDiagramSettings& s, const QPointF& position );
QSizeF diagramSize( const QgsAttributes& attributes, const QgsRenderContext& c, const QgsDiagramSettings& s );
QSizeF diagramSize( const QgsAttributes& attributes, const QgsRenderContext& c, const QgsDiagramSettings& s, const QgsDiagramInterpolationSettings& is );

QString diagramName() const;
};
16 changes: 8 additions & 8 deletions python/core/qgsdiagramrendererv2.sip
Expand Up @@ -119,14 +119,14 @@ class QgsDiagramRendererV2
virtual ~QgsDiagramRendererV2();

/**Returns size of the diagram for feature f in map units. Returns an invalid QSizeF in case of error*/
virtual QSizeF sizeMapUnits( const QgsAttributeMap& attributes, const QgsRenderContext& c );
virtual QSizeF sizeMapUnits( const QgsAttributes& attributes, const QgsRenderContext& c );

virtual QString rendererName() const = 0;

/**Returns attribute indices needed for diagram rendering*/
virtual QList<int> diagramAttributes() const = 0;

void renderDiagram( const QgsAttributeMap& att, QgsRenderContext& c, const QPointF& pos );
void renderDiagram( const QgsAttributes& att, QgsRenderContext& c, const QPointF& pos );

void setDiagram( QgsDiagram* d );
const QgsDiagram* diagram() const;
Expand All @@ -144,10 +144,10 @@ class QgsDiagramRendererV2
* @param c render context
* @param s out: diagram settings for the feature
*/
virtual bool diagramSettings( const QgsAttributeMap& att, const QgsRenderContext& c, QgsDiagramSettings& s ) = 0;
virtual bool diagramSettings( const QgsAttributes& att, const QgsRenderContext& c, QgsDiagramSettings& s ) = 0;

/**Returns size of the diagram (in painter units) or an invalid size in case of error*/
virtual QSizeF diagramSize( const QgsAttributeMap& attributes, const QgsRenderContext& c ) = 0;
virtual QSizeF diagramSize( const QgsAttributes& attributes, const QgsRenderContext& c ) = 0;

/**Converts size from mm to map units*/
void convertSizeToMapUnits( QSizeF& size, const QgsRenderContext& context ) const;
Expand Down Expand Up @@ -183,9 +183,9 @@ class QgsSingleCategoryDiagramRenderer : QgsDiagramRendererV2
void writeXML( QDomElement& layerElem, QDomDocument& doc ) const;

protected:
bool diagramSettings( const QgsAttributeMap&, const QgsRenderContext& c, QgsDiagramSettings& s );
bool diagramSettings( const QgsAttributes&, const QgsRenderContext& c, QgsDiagramSettings& s );

QSizeF diagramSize( const QgsAttributeMap& attributes, const QgsRenderContext& c );
QSizeF diagramSize( const QgsAttributes& attributes, const QgsRenderContext& c );
};

class QgsLinearlyInterpolatedDiagramRenderer : QgsDiagramRendererV2
Expand Down Expand Up @@ -226,7 +226,7 @@ class QgsLinearlyInterpolatedDiagramRenderer : QgsDiagramRendererV2
void writeXML( QDomElement& layerElem, QDomDocument& doc ) const;

protected:
bool diagramSettings( const QgsAttributeMap&, const QgsRenderContext& c, QgsDiagramSettings& s );
bool diagramSettings( const QgsAttributes&, const QgsRenderContext& c, QgsDiagramSettings& s );

QSizeF diagramSize( const QgsAttributeMap& attributes, const QgsRenderContext& c );
QSizeF diagramSize( const QgsAttributes& attributes, const QgsRenderContext& c );
};

0 comments on commit 250e2a5

Please sign in to comment.