added pytch to support sip >= 4.9

OBS-URL: https://build.opensuse.org/package/show/Application:Geo/qgis?expand=0&rev=99
This commit is contained in:
Otto Dassau 2009-11-30 16:29:31 +00:00 committed by Git OBS Bridge
parent 76f4c89149
commit c30caa95b9
2 changed files with 207 additions and 2 deletions

View File

@ -6,7 +6,8 @@ Group: Applications/GIS
Source: %{name}-%{version}.tar.bz2 Source: %{name}-%{version}.tar.bz2
Source1: %{name}.desktop Source1: %{name}.desktop
Source2: %{name}.rpmlintrc Source2: %{name}.rpmlintrc
#Patch: sqlite3.patch #Patch0: sqlite3.patch
Patch1: sip49_support.patch
Url: http://www.qgis.org/ Url: http://www.qgis.org/
Summary: Quantum GIS (QGIS) is a Geographic Information System (GIS) Summary: Quantum GIS (QGIS) is a Geographic Information System (GIS)
Packager: Otto Dassau <dassau@gbd-consult.de> Packager: Otto Dassau <dassau@gbd-consult.de>
@ -75,7 +76,8 @@ GRASS plugin for Quantum GIS development branch 1.x required to interface with G
%prep %prep
%setup %setup
#%patch -p1 #%patch0 -p1
%patch1 -p1
%build %build
export CFLAGS="$RPM_OPT_FLAGS" export CFLAGS="$RPM_OPT_FLAGS"
@ -159,6 +161,7 @@ rm -rf %{buildroot}
%changelog -n qgis %changelog -n qgis
* Mon Nov 30 2009 Otto Dassau <dassau@gbd-consult.de> 1.3 * Mon Nov 30 2009 Otto Dassau <dassau@gbd-consult.de> 1.3
- added patch for sip >= 4.9 support
- added python-qt4-devel requirement for opensuse 11.2 and factory - added python-qt4-devel requirement for opensuse 11.2 and factory
* Sun Sep 13 2009 Otto Dassau 1.3 * Sun Sep 13 2009 Otto Dassau 1.3
- changes and updates for new qgis development version - changes and updates for new qgis development version

202
sip49_support.patch Normal file
View File

@ -0,0 +1,202 @@
--- qgis-1.3.0/python/core/conversions.sip 2009-05-14 17:58:24.000000000 +0200
+++ qgis_head/python/core/conversions.sip 2009-11-30 15:07:42.000000000 +0100
@@ -3,6 +3,7 @@
which are not wrapped by PyQt:
- QVector< QVector<TYPE> >
- QVector< QVector< QVector<TYPE> > >
+- QList< QList<TYPE> >
- QSet<int>
- QSet<TYPE>
- QMap<int, QMap<int, TYPE> >
@@ -19,6 +20,7 @@
#if (PY_VERSION_HEX < 0x02050000)
typedef int Py_ssize_t;
#endif
+
%End
@@ -28,6 +30,10 @@
{
%TypeHeaderCode
#include <QVector>
+#if (SIP_VERSION >= 0x040900)
+#define sipClass_QString ((sipWrapperType *) sipTypeAsPyTypeObject (sipType_QString))
+#define sipClass_QVariant ((sipWrapperType *) sipTypeAsPyTypeObject (sipType_QVariant))
+#endif
%End
%ConvertFromTypeCode
@@ -104,6 +110,10 @@
{
%TypeHeaderCode
#include <QVector>
+#if (SIP_VERSION >= 0x040900)
+#define sipClass_QString ((sipWrapperType *) sipTypeAsPyTypeObject (sipType_QString))
+#define sipClass_QVariant ((sipWrapperType *) sipTypeAsPyTypeObject (sipType_QVariant))
+#endif
%End
%ConvertFromTypeCode
@@ -175,10 +185,93 @@
};
+
+template <TYPE>
+%MappedType QList< QList<TYPE> >
+{
+%TypeHeaderCode
+#include <QList>
+%End
+
+%ConvertFromTypeCode
+ // Create the list.
+ PyObject *l;
+
+ if ((l = PyList_New(sipCpp->size())) == NULL)
+ return NULL;
+
+ const sipMappedType* qlist_type = sipFindMappedType("QList<TYPE>");
+
+ // Set the list elements.
+ for (int i = 0; i < sipCpp->size(); ++i)
+ {
+ QList<TYPE>* t = new QList<TYPE>(sipCpp->at(i));
+ PyObject *tobj;
+
+ if ((tobj = sipConvertFromMappedType(t, qlist_type, sipTransferObj)) == NULL)
+ {
+ Py_DECREF(l);
+ delete t;
+ return NULL;
+ }
+ PyList_SET_ITEM(l, i, tobj);
+ }
+
+ return l;
+%End
+
+%ConvertToTypeCode
+ const sipMappedType* qlist_type = sipFindMappedType("QList<TYPE>");
+
+ // Check the type if that is all that is required.
+ if (sipIsErr == NULL)
+ {
+ if (!PyList_Check(sipPy))
+ return 0;
+
+ for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i)
+ if (!sipCanConvertToMappedType(PyList_GET_ITEM(sipPy, i), qlist_type, SIP_NOT_NONE))
+ return 0;
+
+ return 1;
+ }
+
+
+ QList< QList<TYPE> > *ql = new QList< QList<TYPE> >;
+
+ for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i)
+ {
+ int state;
+ //TYPE *t = reinterpret_cast<TYPE *>(sipConvertToInstance(PyList_GET_ITEM(sipPy, i), sipClass_TYPE, sipTransferObj, SIP_NOT_NONE, &state, sipIsErr));
+ QList<TYPE> * t = reinterpret_cast< QList<TYPE> * >(sipConvertToMappedType(PyList_GET_ITEM(sipPy, i), qlist_type, sipTransferObj, SIP_NOT_NONE, &state, sipIsErr));
+
+ if (*sipIsErr)
+ {
+ sipReleaseInstance(t, sipClass_TYPE, state);
+ delete ql;
+ return 0;
+ }
+ ql->append(*t);
+ sipReleaseInstance(t, sipClass_TYPE, state);
+ }
+
+ *sipCppPtr = ql;
+ return sipGetState(sipTransferObj);
+%End
+
+};
+
+
+
+
%MappedType QSet<int>
{
%TypeHeaderCode
#include <QSet>
+#if (SIP_VERSION >= 0x040900)
+#define sipClass_QString ((sipWrapperType *) sipTypeAsPyTypeObject (sipType_QString))
+#define sipClass_QVariant ((sipWrapperType *) sipTypeAsPyTypeObject (sipType_QVariant))
+#endif
%End
%ConvertFromTypeCode
@@ -229,6 +322,10 @@
{
%TypeHeaderCode
#include <QSet>
+#if (SIP_VERSION >= 0x040900)
+#define sipClass_QString ((sipWrapperType *) sipTypeAsPyTypeObject (sipType_QString))
+#define sipClass_QVariant ((sipWrapperType *) sipTypeAsPyTypeObject (sipType_QVariant))
+#endif
%End
%ConvertFromTypeCode
@@ -301,6 +398,10 @@
{
%TypeHeaderCode
#include <QMap>
+#if (SIP_VERSION >= 0x040900)
+#define sipClass_QString ((sipWrapperType *) sipTypeAsPyTypeObject (sipType_QString))
+#define sipClass_QVariant ((sipWrapperType *) sipTypeAsPyTypeObject (sipType_QVariant))
+#endif
%End
%ConvertFromTypeCode
@@ -418,6 +519,10 @@
{
%TypeHeaderCode
#include <QMap>
+#if (SIP_VERSION >= 0x040900)
+#define sipClass_QString ((sipWrapperType *) sipTypeAsPyTypeObject (sipType_QString))
+#define sipClass_QVariant ((sipWrapperType *) sipTypeAsPyTypeObject (sipType_QVariant))
+#endif
%End
%ConvertFromTypeCode
@@ -518,7 +623,11 @@
%MappedType QMap<TYPE1, TYPE2*>
{
%TypeHeaderCode
-#include <qmap.h>
+#include <QMap>
+#if (SIP_VERSION >= 0x040900)
+#define sipClass_QString ((sipWrapperType *) sipTypeAsPyTypeObject (sipType_QString))
+#define sipClass_QVariant ((sipWrapperType *) sipTypeAsPyTypeObject (sipType_QVariant))
+#endif
%End
%ConvertFromTypeCode
@@ -626,6 +735,10 @@
{
%TypeHeaderCode
#include <QMultiMap>
+#if (SIP_VERSION >= 0x040900)
+#define sipClass_QString ((sipWrapperType *) sipTypeAsPyTypeObject (sipType_QString))
+#define sipClass_QVariant ((sipWrapperType *) sipTypeAsPyTypeObject (sipType_QVariant))
+#endif
%End
%ConvertFromTypeCode
@@ -744,6 +857,10 @@
{
%TypeHeaderCode
#include <QMap>
+#if (SIP_VERSION >= 0x040900)
+#define sipClass_QString ((sipWrapperType *) sipTypeAsPyTypeObject (sipType_QString))
+#define sipClass_QVariant ((sipWrapperType *) sipTypeAsPyTypeObject (sipType_QVariant))
+#endif
%End
%ConvertFromTypeCode