diff --git a/PyQwt-5.2.0-sip-4.19.patch b/PyQwt-5.2.0-sip-4.19.patch new file mode 100644 index 0000000..c2ce93b --- /dev/null +++ b/PyQwt-5.2.0-sip-4.19.patch @@ -0,0 +1,1322 @@ +diff -rupN PyQwt-5.2.0/sip/qwt5qt3/common/QwtMap.sip PyQwt-5.2.0-new/sip/qwt5qt3/common/QwtMap.sip +--- PyQwt-5.2.0/sip/qwt5qt3/common/QwtMap.sip 2009-03-29 19:39:25.000000000 +0200 ++++ PyQwt-5.2.0-new/sip/qwt5qt3/common/QwtMap.sip 2017-01-04 19:28:54.628439063 +0100 +@@ -49,13 +49,8 @@ + + PyObject *kobj = PyFloat_FromDouble(i.key()); + +-#if SIP_VERSION < 0x040800 +- PyObject *tobj = sipConvertFromNewInstance( +- t, sipClass_QString, sipTransferObj); +-#else + PyObject *tobj = sipConvertFromNewType( + t, sipType_QString, sipTransferObj); +-#endif + + if ((0 == kobj) || (0 == tobj) || (0 > PyDict_SetItem(d, kobj, tobj))) { + Py_DECREF(d); +@@ -89,11 +84,7 @@ + return 0; + + while (PyDict_Next(sipPy, &i, &kobj, &tobj)) +-#if SIP_VERSION < 0x040800 +- if (!sipCanConvertToInstance(tobj, sipClass_QString, SIP_NOT_NONE)) +-#else + if (!sipCanConvertToType(tobj, sipType_QString, SIP_NOT_NONE)) +-#endif + return 0; + + return 1; +@@ -104,22 +95,12 @@ + while (PyDict_Next(sipPy, &i, &kobj, &tobj)) { + int state; + double k = PyFloat_AS_DOUBLE(kobj); +-#if SIP_VERSION < 0x040800 +- QString *t = reinterpret_cast( +- sipConvertToInstance(tobj, sipClass_QString, sipTransferObj, +- SIP_NOT_NONE, &state, sipIsErr)); +-#else + QString *t = reinterpret_cast( + sipConvertToType(tobj, sipType_QString, sipTransferObj, + SIP_NOT_NONE, &state, sipIsErr)); +-#endif + + if (*sipIsErr) { +-#if SIP_VERSION < 0x040800 +- sipReleaseInstance(t, sipClass_QString, state); +-#else + sipReleaseType(t, sipType_QString, state); +-#endif + + delete qm; + return 0; +@@ -127,11 +108,7 @@ + + qm->insert(k, *t); + +-#if SIP_VERSION < 0x040800 +- sipReleaseInstance(t, sipClass_QString, state); +-#else + sipReleaseType(t, sipType_QString, state); +-#endif + } + + *sipCppPtr = qm; +diff -rupN PyQwt-5.2.0/sip/qwt5qt3/common/QwtMemArray.sip PyQwt-5.2.0-new/sip/qwt5qt3/common/QwtMemArray.sip +--- PyQwt-5.2.0/sip/qwt5qt3/common/QwtMemArray.sip 2009-02-17 10:55:14.000000000 +0100 ++++ PyQwt-5.2.0-new/sip/qwt5qt3/common/QwtMemArray.sip 2017-01-04 19:28:32.584892341 +0100 +@@ -46,7 +46,7 @@ template + // Set the list elements. + for (int i=0; isize()); ++i) { + TYPE *t = new TYPE(sipCpp->at(i)); +- PyObject *o = sipConvertFromNewInstance(t, sipClass_TYPE, sipTransferObj); ++ PyObject *o = sipConvertFromNewType(t, sipType_TYPE, sipTransferObj); + if (0 == o) { + Py_DECREF(l); + delete t; +@@ -64,7 +64,7 @@ template + return 0; + // check elements + for (int i=0; i < PyList_GET_SIZE(sipPy); ++i) +- if (!sipCanConvertToInstance(PyList_GET_ITEM(sipPy, i), sipClass_TYPE, SIP_NOT_NONE)) ++ if (!sipCanConvertToType(PyList_GET_ITEM(sipPy, i), sipType_TYPE, SIP_NOT_NONE)) + return 0; + return 1; + } +@@ -73,14 +73,14 @@ template + for (int i=0; i( +- sipConvertToInstance(PyList_GET_ITEM(sipPy, i), sipClass_TYPE, sipTransferObj, SIP_NOT_NONE, &state, sipIsErr)); ++ sipConvertToType(PyList_GET_ITEM(sipPy, i), sipType_TYPE, sipTransferObj, SIP_NOT_NONE, &state, sipIsErr)); + if (*sipIsErr) { +- sipReleaseInstance(t, sipClass_TYPE, state); ++ sipReleaseType(t, sipType_TYPE, state); + delete a; + return 0; + } + (*a)[i] = *t; +- sipReleaseInstance(t, sipClass_TYPE, state); ++ sipReleaseType(t, sipType_TYPE, state); + } + *sipCppPtr = a; + return sipGetState(sipTransferObj); +diff -rupN PyQwt-5.2.0/sip/qwt5qt3/common/QwtValueList.sip PyQwt-5.2.0-new/sip/qwt5qt3/common/QwtValueList.sip +--- PyQwt-5.2.0/sip/qwt5qt3/common/QwtValueList.sip 2009-02-17 10:55:14.000000000 +0100 ++++ PyQwt-5.2.0-new/sip/qwt5qt3/common/QwtValueList.sip 2017-01-04 19:29:24.544837910 +0100 +@@ -93,7 +93,7 @@ template + // Set the list elements. + for (int i = 0; i < sipCpp->size(); ++i) { + TYPE *t = new TYPE(sipCpp->at(i)); +- PyObject *o = sipBuildResult(0, "N", t, sipClass_TYPE); ++ PyObject *o = sipBuildResult(0, "N", t, sipType_TYPE); + if (!o) { + Py_DECREF(l); + delete t; +@@ -111,7 +111,7 @@ template + return 0; + // Check the elements + for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i) +- if (!sipCanConvertToInstance(PyList_GET_ITEM(sipPy, i), sipClass_TYPE, SIP_NOT_NONE)) ++ if (!sipCanConvertToType(PyList_GET_ITEM(sipPy, i), sipType_TYPE, SIP_NOT_NONE)) + return 0; + return 1; + } +@@ -120,14 +120,14 @@ template + for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i) { + int state; + TYPE *t = reinterpret_cast( +- sipConvertToInstance(PyList_GET_ITEM(sipPy, i), sipClass_TYPE, sipTransferObj, SIP_NOT_NONE, &state, sipIsErr)); ++ sipConvertToType(PyList_GET_ITEM(sipPy, i), sipType_TYPE, sipTransferObj, SIP_NOT_NONE, &state, sipIsErr)); + if (*sipIsErr) { +- sipReleaseInstance(t, sipClass_TYPE, state); ++ sipReleaseType(t, sipType_TYPE, state); + delete l; + return 0; + } + l->append(*t); +- sipReleaseInstance(t, sipClass_TYPE, state); ++ sipReleaseType(t, sipType_TYPE, state); + } + *sipCppPtr = l; + return sipGetState(sipTransferObj); +@@ -151,7 +151,7 @@ template + // Set the list elements. + for (int i = 0; i < int(sipCpp->size()); ++i) { + TYPE *t = (*sipCpp)[i]; +- PyObject *o = sipConvertFromInstance(t, sipClass_TYPE, sipTransferObj); ++ PyObject *o = sipConvertFromType(t, sipType_TYPE, sipTransferObj); + if (!o) { + Py_DECREF(l); + return 0; +@@ -168,7 +168,7 @@ template + return 0; + // Check the elements + for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i) +- if (!sipCanConvertToInstance(PyList_GET_ITEM(sipPy, i), sipClass_TYPE, 0)) ++ if (!sipCanConvertToType(PyList_GET_ITEM(sipPy, i), sipType_TYPE, 0)) + return 0; + return 1; + } +@@ -176,7 +176,7 @@ template + QValueList *l = new QValueList; + for (int i=0; i < PyList_GET_SIZE(sipPy); ++i) { + TYPE *t = reinterpret_cast( +- sipConvertToInstance(PyList_GET_ITEM(sipPy, i), sipClass_TYPE, sipTransferObj, 0, 0, sipIsErr)); ++ sipConvertToType(PyList_GET_ITEM(sipPy, i), sipType_TYPE, sipTransferObj, 0, 0, sipIsErr)); + if (*sipIsErr) { + delete l; + return 0; +diff -rupN PyQwt-5.2.0/sip/qwt5qt3/common/QwtValueStack.sip PyQwt-5.2.0-new/sip/qwt5qt3/common/QwtValueStack.sip +--- PyQwt-5.2.0/sip/qwt5qt3/common/QwtValueStack.sip 2009-02-17 10:55:14.000000000 +0100 ++++ PyQwt-5.2.0-new/sip/qwt5qt3/common/QwtValueStack.sip 2017-01-04 19:29:49.823341913 +0100 +@@ -1,5 +1,5 @@ + // The SIP interface specification for: +-// QValueStack. ++// QValueStack. + // + // Copyright (C) 2001-2009 Gerard Vermeulen + // Copyright (C) 2000 Mark Colclough +@@ -30,9 +30,9 @@ + // PyQwt becomes a free plug-in for a non-free program. + + +-// QValueStack is implemented as a Python list. +-template +-%MappedType QValueStack ++// QValueStack is implemented as a Python list. ++template ++%MappedType QValueStack + { + %TypeHeaderCode + #include +@@ -46,10 +46,10 @@ template + + // Set the list elements. + int i = 0; +- QValueListConstIterator it; ++ QValueListConstIterator it; + for (it = sipCpp->begin(); it != sipCpp->end(); ++it) { + PyObject *o; +- if (0 == (o = sipConvertFromInstance(new Type(*it), sipClass_Type, sipTransferObj)) ++ if (0 == (o = sipConvertFromType(new TYPE(*it), sipType_TYPE, sipTransferObj)) + || 0 > PyList_SetItem(l, i, o)) { + Py_XDECREF(o); + Py_DECREF(l); +@@ -68,33 +68,33 @@ template + return 0; + // check elements + for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i) +- if (!sipCanConvertToInstance(PyList_GET_ITEM(sipPy, i), sipClass_Type, 0)) ++ if (!sipCanConvertToType(PyList_GET_ITEM(sipPy, i), sipType_TYPE, 0)) + return 0; + return 1; + } + + // Return the QValueStack. +- QValueStack *s = new QValueStack; ++ QValueStack *s = new QValueStack; + for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i) { + int iserr = 0, state; + +- Type *t = reinterpret_cast(sipConvertToInstance(PyList_GET_ITEM(sipPy, i), sipClass_Type, 0, SIP_NOT_NONE, &state, &iserr)); ++ TYPE *t = reinterpret_cast(sipConvertToType(PyList_GET_ITEM(sipPy, i), sipType_TYPE, 0, SIP_NOT_NONE, &state, &iserr)); + + if (iserr) { +- sipReleaseInstance(t, sipClass_Type, state); ++ sipReleaseType(t, sipType_TYPE, state); + *sipIsErr = 1; + delete s; + + return 0; + } + s->append(*t); +- sipReleaseInstance(t, sipClass_Type, state); ++ sipReleaseType(t, sipType_TYPE, state); + } + *sipCppPtr = s; + + return sipGetState(sipTransferObj); + %End +-}; // template %MappedType QValueStack ++}; // template %MappedType QValueStack + + + // Local Variables: +diff -rupN PyQwt-5.2.0/sip/qwt5qt3/qwt_abstract_slider.sip PyQwt-5.2.0-new/sip/qwt5qt3/qwt_abstract_slider.sip +--- PyQwt-5.2.0/sip/qwt5qt3/qwt_abstract_slider.sip 2009-03-29 19:39:25.000000000 +0200 ++++ PyQwt-5.2.0-new/sip/qwt5qt3/qwt_abstract_slider.sip 2017-01-04 19:15:12.494635768 +0100 +@@ -86,48 +86,48 @@ protected: + %ConvertToSubClassCode + static struct class_graph { + const char *name; +- sipWrapperType **type; ++ sipTypeDef **type; + int yes, no; + } graph[] = { +- {sipName_QwtAbstractSlider, &sipClass_QwtAbstractSlider, 13, 1}, ++ {sipName_QwtAbstractSlider, &sipType_QwtAbstractSlider, 13, 1}, + #if QWT_VERSION >= 0x050100 +- {sipName_QwtPanner, &sipClass_QwtPanner, 19, 2}, ++ {sipName_QwtPanner, &sipType_QwtPanner, 19, 2}, + #else + {0, 0, 19, 2}, + #endif +- {sipName_QwtDynGridLayout, &sipClass_QwtDynGridLayout, -1, 3}, +- {sipName_QwtCounter, &sipClass_QwtCounter, -1, 4}, +- {sipName_QwtLegend, &sipClass_QwtLegend, -1, 5}, +- {sipName_QwtArrowButton, &sipClass_QwtArrowButton, -1, 6}, +- {sipName_QwtScaleWidget, &sipClass_QwtScaleWidget, -1, 7}, +- {sipName_QwtTextLabel, &sipClass_QwtTextLabel, 20, 8}, +- {sipName_QwtPlotCanvas, &sipClass_QwtPlotCanvas, -1, 9}, +- {sipName_QwtThermo, &sipClass_QwtThermo, -1, 10}, ++ {sipName_QwtDynGridLayout, &sipType_QwtDynGridLayout, -1, 3}, ++ {sipName_QwtCounter, &sipType_QwtCounter, -1, 4}, ++ {sipName_QwtLegend, &sipType_QwtLegend, -1, 5}, ++ {sipName_QwtArrowButton, &sipType_QwtArrowButton, -1, 6}, ++ {sipName_QwtScaleWidget, &sipType_QwtScaleWidget, -1, 7}, ++ {sipName_QwtTextLabel, &sipType_QwtTextLabel, 20, 8}, ++ {sipName_QwtPlotCanvas, &sipType_QwtPlotCanvas, -1, 9}, ++ {sipName_QwtThermo, &sipType_QwtThermo, -1, 10}, + #if QWT_VERSION >= 0x050100 +- {sipName_QwtMagnifier, &sipClass_QwtMagnifier, 21, 11}, ++ {sipName_QwtMagnifier, &sipType_QwtMagnifier, 21, 11}, + #else + {0, 0, 21, 11}, + #endif +- {sipName_QwtPlot, &sipClass_QwtPlot, -1, 12}, +- {sipName_QwtPicker, &sipClass_QwtPicker, 22, -1}, +- {sipName_QwtDial, &sipClass_QwtDial, 17, 14}, +- {sipName_QwtSlider, &sipClass_QwtSlider, -1, 15}, +- {sipName_QwtWheel, &sipClass_QwtWheel, -1, 16}, +- {sipName_QwtKnob, &sipClass_QwtKnob, -1, -1}, +- {sipName_QwtAnalogClock, &sipClass_QwtAnalogClock, -1, 18}, +- {sipName_QwtCompass, &sipClass_QwtCompass, -1, -1}, +- {sipName_QwtPlotPanner, &sipClass_QwtPlotPanner, -1, -1}, +- {sipName_QwtLegendItem, &sipClass_QwtLegendItem, -1, -1}, +- {sipName_QwtPlotMagnifier, &sipClass_QwtPlotMagnifier, -1, -1}, +- {sipName_QwtPlotPicker, &sipClass_QwtPlotPicker, 23, -1}, +- {sipName_QwtPlotZoomer, &sipClass_QwtPlotZoomer, -1, -1}, ++ {sipName_QwtPlot, &sipType_QwtPlot, -1, 12}, ++ {sipName_QwtPicker, &sipType_QwtPicker, 22, -1}, ++ {sipName_QwtDial, &sipType_QwtDial, 17, 14}, ++ {sipName_QwtSlider, &sipType_QwtSlider, -1, 15}, ++ {sipName_QwtWheel, &sipType_QwtWheel, -1, 16}, ++ {sipName_QwtKnob, &sipType_QwtKnob, -1, -1}, ++ {sipName_QwtAnalogClock, &sipType_QwtAnalogClock, -1, 18}, ++ {sipName_QwtCompass, &sipType_QwtCompass, -1, -1}, ++ {sipName_QwtPlotPanner, &sipType_QwtPlotPanner, -1, -1}, ++ {sipName_QwtLegendItem, &sipType_QwtLegendItem, -1, -1}, ++ {sipName_QwtPlotMagnifier, &sipType_QwtPlotMagnifier, -1, -1}, ++ {sipName_QwtPlotPicker, &sipType_QwtPlotPicker, 23, -1}, ++ {sipName_QwtPlotZoomer, &sipType_QwtPlotZoomer, -1, -1}, + }; + int i = 0; +- sipClass = NULL; ++ sipType = NULL; + do { + struct class_graph *cg = &graph[i]; + if (cg->name != NULL && sipCpp->inherits(cg->name)) { +- sipClass = *cg->type; ++ sipType = *cg->type; + i = cg->yes; + } else { + i = cg->no; +diff -rupN PyQwt-5.2.0/sip/qwt5qt3/QwtArrayQwtDoubleInterval.sip PyQwt-5.2.0-new/sip/qwt5qt3/QwtArrayQwtDoubleInterval.sip +--- PyQwt-5.2.0/sip/qwt5qt3/QwtArrayQwtDoubleInterval.sip 2009-03-29 19:39:24.000000000 +0200 ++++ PyQwt-5.2.0-new/sip/qwt5qt3/QwtArrayQwtDoubleInterval.sip 2017-01-04 19:27:56.572652816 +0100 +@@ -49,15 +49,6 @@ public: + QwtArray array(PyList_GET_SIZE(a0)); + + for (int i = 0; i < PyList_GET_SIZE(a0); ++i) { +-#if SIP_VERSION < 0x040800 +- void *cpp = sipForceConvertToInstance( +- PyList_GET_ITEM(a0, i), +- sipClass_QwtDoubleInterval, +- NULL, +- SIP_NO_CONVERTORS, +- NULL, +- &sipIsErr); +-#else + void *cpp = sipForceConvertToType( + PyList_GET_ITEM(a0, i), + sipType_QwtDoubleInterval, +@@ -65,7 +56,6 @@ public: + SIP_NO_CONVERTORS, + NULL, + &sipIsErr); +-#endif + array[i] = *reinterpret_cast(cpp); + } + +diff -rupN PyQwt-5.2.0/sip/qwt5qt3/QwtArrayQwtDoublePoint.sip PyQwt-5.2.0-new/sip/qwt5qt3/QwtArrayQwtDoublePoint.sip +--- PyQwt-5.2.0/sip/qwt5qt3/QwtArrayQwtDoublePoint.sip 2009-03-29 19:39:25.000000000 +0200 ++++ PyQwt-5.2.0-new/sip/qwt5qt3/QwtArrayQwtDoublePoint.sip 2017-01-04 19:28:04.122491264 +0100 +@@ -49,15 +49,6 @@ public: + QwtArray array(PyList_GET_SIZE(a0)); + + for (int i = 0; i < PyList_GET_SIZE(a0); ++i) { +-#if SIP_VERSION < 0x040800 +- void *cpp = sipForceConvertToInstance( +- PyList_GET_ITEM(a0, i), +- sipClass_QwtDoublePoint, +- NULL, +- SIP_NO_CONVERTORS, +- NULL, +- &sipIsErr); +-#else + void *cpp = sipForceConvertToType( + PyList_GET_ITEM(a0, i), + sipType_QwtDoublePoint, +@@ -65,7 +56,6 @@ public: + SIP_NO_CONVERTORS, + NULL, + &sipIsErr); +-#endif + array[i] = *reinterpret_cast(cpp); + } + +diff -rupN PyQwt-5.2.0/sip/qwt5qt3/qwt_data.sip PyQwt-5.2.0-new/sip/qwt5qt3/qwt_data.sip +--- PyQwt-5.2.0/sip/qwt5qt3/qwt_data.sip 2009-02-17 10:55:14.000000000 +0100 ++++ PyQwt-5.2.0-new/sip/qwt5qt3/qwt_data.sip 2017-01-04 18:49:11.852552306 +0100 +@@ -87,27 +87,27 @@ private: + %ConvertToSubClassCode + // Walk the inheritance tree depth first in alphabetical order + // This code is for Qwt4 and Qwt5 +-#ifdef sipClass_QwtArrayData ++#ifdef sipType_QwtArrayData + if (dynamic_cast(sipCpp)) +- sipClass = sipClass_QwtArrayData; ++ sipType = sipType_QwtArrayData; + else + #endif +-#ifdef sipClass_QwtDoublePointData ++#ifdef sipType_QwtDoublePointData + if (dynamic_cast(sipCpp)) +- sipClass = sipClass_QwtDoublePointData; ++ sipType = sipType_QwtDoublePointData; + else + #endif +-#ifdef sipClass_QwtPolygonFData ++#ifdef sipType_QwtPolygonFData + if (dynamic_cast(sipCpp)) +- sipClass = sipClass_QwtPolygonFData; ++ sipType = sipType_QwtPolygonFData; + else + #endif +-#ifdef sipClass_QwtData ++#ifdef sipType_QwtData + if (dynamic_cast(sipCpp)) +- sipClass = sipClass_QwtData; ++ sipType = sipType_QwtData; + else + #endif +- sipClass = 0; ++ sipType = 0; + %End + %End + +diff -rupN PyQwt-5.2.0/sip/qwt5qt3/qwt_picker_machine.sip PyQwt-5.2.0-new/sip/qwt5qt3/qwt_picker_machine.sip +--- PyQwt-5.2.0/sip/qwt5qt3/qwt_picker_machine.sip 2009-02-17 10:55:14.000000000 +0100 ++++ PyQwt-5.2.0-new/sip/qwt5qt3/qwt_picker_machine.sip 2017-01-04 18:48:46.090764505 +0100 +@@ -104,37 +104,37 @@ protected: + %If (CXX_DYNAMIC_CAST) + %ConvertToSubClassCode + // Walk the inheritance tree depth first in alphabetical order +-#ifdef sipClass_QwtPickerClickPointMachine ++#ifdef sipType_QwtPickerClickPointMachine + if (dynamic_cast(sipCpp)) +- sipClass = sipClass_QwtPickerClickPointMachine; ++ sipType = sipType_QwtPickerClickPointMachine; + else + #endif +-#ifdef sipClass_QwtPickerClickRectMachine ++#ifdef sipType_QwtPickerClickRectMachine + if (dynamic_cast(sipCpp)) +- sipClass = sipClass_QwtPickerClickRectMachine; ++ sipType = sipType_QwtPickerClickRectMachine; + else + #endif +-#ifdef sipClass_QwtPickerDragPointMachine ++#ifdef sipType_QwtPickerDragPointMachine + if (dynamic_cast(sipCpp)) +- sipClass = sipClass_QwtPickerDragPointMachine; ++ sipType = sipType_QwtPickerDragPointMachine; + else + #endif +-#ifdef sipClass_QwtPickerDragRectMachine ++#ifdef sipType_QwtPickerDragRectMachine + if (dynamic_cast(sipCpp)) +- sipClass = sipClass_QwtPickerDragRectMachine; ++ sipType = sipType_QwtPickerDragRectMachine; + else + #endif +-#ifdef sipClass_QwtPickerPolygonMachine ++#ifdef sipType_QwtPickerPolygonMachine + if (dynamic_cast(sipCpp)) +- sipClass = sipClass_QwtPickerPolygonMachine; ++ sipType = sipType_QwtPickerPolygonMachine; + else + #endif +-#ifdef sipClass_QwtPickerMachine ++#ifdef sipType_QwtPickerMachine + if (dynamic_cast(sipCpp)) +- sipClass = sipClass_QwtPickerMachine; ++ sipType = sipType_QwtPickerMachine; + else + #endif +- sipClass = 0; ++ sipType = 0; + %End + %End + +diff -rupN PyQwt-5.2.0/sip/qwt5qt3/qwt_plot_item.sip PyQwt-5.2.0-new/sip/qwt5qt3/qwt_plot_item.sip +--- PyQwt-5.2.0/sip/qwt5qt3/qwt_plot_item.sip 2009-02-17 10:55:14.000000000 +0100 ++++ PyQwt-5.2.0-new/sip/qwt5qt3/qwt_plot_item.sip 2017-01-04 18:48:34.224862219 +0100 +@@ -98,21 +98,21 @@ private: + %ConvertToSubClassCode + Py_BEGIN_ALLOW_THREADS + switch (sipCpp->rtti()) { +- case QwtPlotItem::Rtti_PlotItem: sipClass = sipClass_QwtPlotItem; break; +- case QwtPlotItem::Rtti_PlotGrid: sipClass = sipClass_QwtPlotGrid; break; +-#ifdef sipClass_QwtPlotScaleItem +- case QwtPlotItem::Rtti_PlotScale: sipClass = sipClass_QwtPlotScaleItem; break; +-#endif // sipClass_QwtPlotScaleItem +- case QwtPlotItem::Rtti_PlotMarker: sipClass = sipClass_QwtPlotMarker; break; +- case QwtPlotItem::Rtti_PlotCurve: sipClass = sipClass_QwtPlotCurve; break; +-#ifdef sipClass_QwtPlotHistogram +- case QwtPlotItem::Rtti_PlotHistogram: sipClass = sipClass_QwtPlotHistogram; break; +-#endif // sipClass_QwtPlotHistogram +- case QwtPlotItem::Rtti_PlotSpectrogram: sipClass = sipClass_QwtPlotSpectrogram; break; +-#ifdef sipClass_QwtPlotSvgItem +- case QwtPlotItem::Rtti_PlotSVG: sipClass = sipClass_QwtPlotSvgItem; break; +-#endif // sipClass_QwtPlotSvgItem +- default: sipClass = 0; ++ case QwtPlotItem::Rtti_PlotItem: sipType = sipType_QwtPlotItem; break; ++ case QwtPlotItem::Rtti_PlotGrid: sipType = sipType_QwtPlotGrid; break; ++#ifdef sipType_QwtPlotScaleItem ++ case QwtPlotItem::Rtti_PlotScale: sipType = sipType_QwtPlotScaleItem; break; ++#endif // sipType_QwtPlotScaleItem ++ case QwtPlotItem::Rtti_PlotMarker: sipType = sipType_QwtPlotMarker; break; ++ case QwtPlotItem::Rtti_PlotCurve: sipType = sipType_QwtPlotCurve; break; ++#ifdef sipType_QwtPlotHistogram ++ case QwtPlotItem::Rtti_PlotHistogram: sipType = sipType_QwtPlotHistogram; break; ++#endif // sipType_QwtPlotHistogram ++ case QwtPlotItem::Rtti_PlotSpectrogram: sipType = sipType_QwtPlotSpectrogram; break; ++#ifdef sipType_QwtPlotSvgItem ++ case QwtPlotItem::Rtti_PlotSVG: sipType = sipType_QwtPlotSvgItem; break; ++#endif // sipType_QwtPlotSvgItem ++ default: sipType = 0; + } + Py_END_ALLOW_THREADS + %End // %ConvertToSubClassCode +@@ -190,21 +190,21 @@ private: + %ConvertToSubClassCode + Py_BEGIN_ALLOW_THREADS + switch (sipCpp->rtti()) { +- case QwtPlotItem::Rtti_PlotItem: sipClass = sipClass_QwtPlotItem; break; +- case QwtPlotItem::Rtti_PlotGrid: sipClass = sipClass_QwtPlotGrid; break; +-#ifdef sipClass_QwtPlotScaleItem +- case QwtPlotItem::Rtti_PlotScale: sipClass = sipClass_QwtPlotScaleItem; break; +-#endif // sipClass_QwtPlotScaleItem +- case QwtPlotItem::Rtti_PlotMarker: sipClass = sipClass_QwtPlotMarker; break; +- case QwtPlotItem::Rtti_PlotCurve: sipClass = sipClass_QwtPlotCurve; break; +-#ifdef sipClass_QwtPlotHistogram +- case QwtPlotItem::Rtti_PlotHistogram: sipClass = sipClass_QwtPlotHistogram; break; +-#endif // sipClass_QwtPlotHistogram +- case QwtPlotItem::Rtti_PlotSpectrogram: sipClass = sipClass_QwtPlotSpectrogram; break; +-#ifdef sipClass_QwtPlotSvgItem +- case QwtPlotItem::Rtti_PlotSVG: sipClass = sipClass_QwtPlotSvgItem; break; +-#endif // sipClass_QwtPlotSvgItem +- default: sipClass = 0; ++ case QwtPlotItem::Rtti_PlotItem: sipType = sipType_QwtPlotItem; break; ++ case QwtPlotItem::Rtti_PlotGrid: sipType = sipType_QwtPlotGrid; break; ++#ifdef sipType_QwtPlotScaleItem ++ case QwtPlotItem::Rtti_PlotScale: sipType = sipType_QwtPlotScaleItem; break; ++#endif // sipType_QwtPlotScaleItem ++ case QwtPlotItem::Rtti_PlotMarker: sipType = sipType_QwtPlotMarker; break; ++ case QwtPlotItem::Rtti_PlotCurve: sipType = sipType_QwtPlotCurve; break; ++#ifdef sipType_QwtPlotHistogram ++ case QwtPlotItem::Rtti_PlotHistogram: sipType = sipType_QwtPlotHistogram; break; ++#endif // sipType_QwtPlotHistogram ++ case QwtPlotItem::Rtti_PlotSpectrogram: sipType = sipType_QwtPlotSpectrogram; break; ++#ifdef sipType_QwtPlotSvgItem ++ case QwtPlotItem::Rtti_PlotSVG: sipType = sipType_QwtPlotSvgItem; break; ++#endif // sipType_QwtPlotSvgItem ++ default: sipType = 0; + } + Py_END_ALLOW_THREADS + %End // %ConvertToSubClassCode +diff -rupN PyQwt-5.2.0/sip/qwt5qt3/qwt_plot_layout.sip PyQwt-5.2.0-new/sip/qwt5qt3/qwt_plot_layout.sip +--- PyQwt-5.2.0/sip/qwt5qt3/qwt_plot_layout.sip 2009-02-17 10:55:14.000000000 +0100 ++++ PyQwt-5.2.0-new/sip/qwt5qt3/qwt_plot_layout.sip 2017-01-04 18:48:53.740701500 +0100 +@@ -84,10 +84,10 @@ sipRes = Py_BuildValue("i(iiii)", title, + QRect scales[QwtPlot::axisCnt]; + sipCpp->sipProtect_alignScales(a0, *a1, scales); + sipRes = sipBuildResult(0, "(BBBB)", +- new QRect(scales[0]), sipClass_QRect, 0, +- new QRect(scales[1]), sipClass_QRect, 0, +- new QRect(scales[2]), sipClass_QRect, 0, +- new QRect(scales[3]), sipClass_QRect, 0); ++ new QRect(scales[0]), sipType_QRect, 0, ++ new QRect(scales[1]), sipType_QRect, 0, ++ new QRect(scales[2]), sipType_QRect, 0, ++ new QRect(scales[3]), sipType_QRect, 0); + %End + + }; // class QwtPlotLayout +diff -rupN PyQwt-5.2.0/sip/qwt5qt3/qwt_plot.sip PyQwt-5.2.0-new/sip/qwt5qt3/qwt_plot.sip +--- PyQwt-5.2.0/sip/qwt5qt3/qwt_plot.sip 2009-04-18 19:15:45.000000000 +0200 ++++ PyQwt-5.2.0-new/sip/qwt5qt3/qwt_plot.sip 2017-01-04 19:27:47.166855700 +0100 +@@ -142,8 +142,8 @@ protected: + + if (!sipIsErr) { + for (int i=0; i(cpp); + } +@@ -163,8 +163,8 @@ protected: + + if (!sipIsErr) { + for (int i=0; i(&a2[i]), sipClass_QwtScaleMap, 0); ++ PyObject *object = sipConvertFromType( ++ const_cast(&a2[i]), sipType_QwtScaleMap, 0); + if (!object) { + sipIsErr = true; + break; +@@ -176,10 +176,10 @@ protected: + if (!sipIsErr) { + PyObject *result = sipCallMethod( + &sipIsErr, sipMethod, "CCSC", +- a0, sipClass_QPainter, 0, +- &a1, sipClass_QRect, 0, ++ a0, sipType_QPainter, 0, ++ &a1, sipType_QRect, 0, + maps, +- &a3, sipClass_QwtPlotPrintFilter, 0); ++ &a3, sipType_QwtPlotPrintFilter, 0); + + if (result) + { +@@ -209,8 +209,8 @@ protected: + + if (!sipIsErr) { + for (int i=0; i(cpp); + } +@@ -231,8 +231,8 @@ End + + if (!sipIsErr) { + for (int i=0; i(&a2[i]), sipClass_QwtScaleMap, 0); ++ PyObject *object = sipConvertFromType( ++ const_cast(&a2[i]), sipType_QwtScaleMap, 0); + if (!object) { + sipIsErr = true; + break; +@@ -244,10 +244,10 @@ End + if (!sipIsErr) { + PyObject *result = sipCallMethod( + &sipIsErr, sipMethod, "CCSC", +- a0, sipClass_QPainter, 0, +- &a1, sipClass_QRect, 0, ++ a0, sipType_QPainter, 0, ++ &a1, sipType_QRect, 0, + maps, +- &a3, sipClass_QwtPrintFilter, 0); ++ &a3, sipType_QwtPrintFilter, 0); + + if (result) + { +@@ -376,8 +376,8 @@ protected: + + if (!sipIsErr) { + for (int i=0; i(cpp); + } +@@ -397,8 +397,8 @@ protected: + + if (!sipIsErr) { + for (int i=0; i(&a2[i]), sipClass_QwtScaleMap, 0); ++ PyObject *object = sipConvertFromType( ++ const_cast(&a2[i]), sipType_QwtScaleMap, 0); + if (!object) { + sipIsErr = true; + break; +@@ -410,10 +410,10 @@ protected: + if (!sipIsErr) { + PyObject *result = sipCallMethod( + &sipIsErr, sipMethod, "CCSC", +- a0, sipClass_QPainter, 0, +- &a1, sipClass_QRect, 0, ++ a0, sipType_QPainter, 0, ++ &a1, sipType_QRect, 0, + maps, +- &a3, sipClass_QwtPlotPrintFilter, 0); ++ &a3, sipType_QwtPlotPrintFilter, 0); + + if (result) + { +@@ -550,8 +550,8 @@ protected: + + if (!sipIsErr) { + for (int i=0; i(cpp); + } +@@ -571,8 +571,8 @@ protected: + + if (!sipIsErr) { + for (int i=0; i(&a2[i]), sipClass_QwtScaleMap, 0); ++ PyObject *object = sipConvertFromType( ++ const_cast(&a2[i]), sipType_QwtScaleMap, 0); + if (!object) { + sipIsErr = true; + break; +@@ -584,10 +584,10 @@ protected: + if (!sipIsErr) { + PyObject *result = sipCallMethod( + &sipIsErr, sipMethod, "CCSC", +- a0, sipClass_QPainter, 0, +- &a1, sipClass_QRect, 0, ++ a0, sipType_QPainter, 0, ++ &a1, sipType_QRect, 0, + maps, +- &a3, sipClass_QwtPlotPrintFilter, 0); ++ &a3, sipType_QwtPlotPrintFilter, 0); + + if (result) + { +diff -rupN PyQwt-5.2.0/sip/qwt5qt4/qwt_abstract_slider.sip PyQwt-5.2.0-new/sip/qwt5qt4/qwt_abstract_slider.sip +--- PyQwt-5.2.0/sip/qwt5qt4/qwt_abstract_slider.sip 2009-03-29 19:39:25.000000000 +0200 ++++ PyQwt-5.2.0-new/sip/qwt5qt4/qwt_abstract_slider.sip 2017-01-04 19:20:45.551874134 +0100 +@@ -86,48 +86,48 @@ protected: + %ConvertToSubClassCode + static struct class_graph { + const char *name; +- sipWrapperType **type; ++ sipTypeDef **type; + int yes, no; + } graph[] = { +- {sipName_QwtAbstractSlider, &sipClass_QwtAbstractSlider, 13, 1}, ++ {sipName_QwtAbstractSlider, &sipType_QwtAbstractSlider, 13, 1}, + #if QWT_VERSION >= 0x050100 +- {sipName_QwtPanner, &sipClass_QwtPanner, 19, 2}, ++ {sipName_QwtPanner, &sipType_QwtPanner, 19, 2}, + #else + {0, 0, 19, 2}, + #endif +- {sipName_QwtDynGridLayout, &sipClass_QwtDynGridLayout, -1, 3}, +- {sipName_QwtCounter, &sipClass_QwtCounter, -1, 4}, +- {sipName_QwtLegend, &sipClass_QwtLegend, -1, 5}, +- {sipName_QwtArrowButton, &sipClass_QwtArrowButton, -1, 6}, +- {sipName_QwtScaleWidget, &sipClass_QwtScaleWidget, -1, 7}, +- {sipName_QwtTextLabel, &sipClass_QwtTextLabel, 20, 8}, +- {sipName_QwtPlotCanvas, &sipClass_QwtPlotCanvas, -1, 9}, +- {sipName_QwtThermo, &sipClass_QwtThermo, -1, 10}, ++ {sipName_QwtDynGridLayout, &sipType_QwtDynGridLayout, -1, 3}, ++ {sipName_QwtCounter, &sipType_QwtCounter, -1, 4}, ++ {sipName_QwtLegend, &sipType_QwtLegend, -1, 5}, ++ {sipName_QwtArrowButton, &sipType_QwtArrowButton, -1, 6}, ++ {sipName_QwtScaleWidget, &sipType_QwtScaleWidget, -1, 7}, ++ {sipName_QwtTextLabel, &sipType_QwtTextLabel, 20, 8}, ++ {sipName_QwtPlotCanvas, &sipType_QwtPlotCanvas, -1, 9}, ++ {sipName_QwtThermo, &sipType_QwtThermo, -1, 10}, + #if QWT_VERSION >= 0x050100 +- {sipName_QwtMagnifier, &sipClass_QwtMagnifier, 21, 11}, ++ {sipName_QwtMagnifier, &sipType_QwtMagnifier, 21, 11}, + #else + {0, 0, 21, 11}, + #endif +- {sipName_QwtPlot, &sipClass_QwtPlot, -1, 12}, +- {sipName_QwtPicker, &sipClass_QwtPicker, 22, -1}, +- {sipName_QwtDial, &sipClass_QwtDial, 17, 14}, +- {sipName_QwtSlider, &sipClass_QwtSlider, -1, 15}, +- {sipName_QwtWheel, &sipClass_QwtWheel, -1, 16}, +- {sipName_QwtKnob, &sipClass_QwtKnob, -1, -1}, +- {sipName_QwtAnalogClock, &sipClass_QwtAnalogClock, -1, 18}, +- {sipName_QwtCompass, &sipClass_QwtCompass, -1, -1}, +- {sipName_QwtPlotPanner, &sipClass_QwtPlotPanner, -1, -1}, +- {sipName_QwtLegendItem, &sipClass_QwtLegendItem, -1, -1}, +- {sipName_QwtPlotMagnifier, &sipClass_QwtPlotMagnifier, -1, -1}, +- {sipName_QwtPlotPicker, &sipClass_QwtPlotPicker, 23, -1}, +- {sipName_QwtPlotZoomer, &sipClass_QwtPlotZoomer, -1, -1}, ++ {sipName_QwtPlot, &sipType_QwtPlot, -1, 12}, ++ {sipName_QwtPicker, &sipType_QwtPicker, 22, -1}, ++ {sipName_QwtDial, &sipType_QwtDial, 17, 14}, ++ {sipName_QwtSlider, &sipType_QwtSlider, -1, 15}, ++ {sipName_QwtWheel, &sipType_QwtWheel, -1, 16}, ++ {sipName_QwtKnob, &sipType_QwtKnob, -1, -1}, ++ {sipName_QwtAnalogClock, &sipType_QwtAnalogClock, -1, 18}, ++ {sipName_QwtCompass, &sipType_QwtCompass, -1, -1}, ++ {sipName_QwtPlotPanner, &sipType_QwtPlotPanner, -1, -1}, ++ {sipName_QwtLegendItem, &sipType_QwtLegendItem, -1, -1}, ++ {sipName_QwtPlotMagnifier, &sipType_QwtPlotMagnifier, -1, -1}, ++ {sipName_QwtPlotPicker, &sipType_QwtPlotPicker, 23, -1}, ++ {sipName_QwtPlotZoomer, &sipType_QwtPlotZoomer, -1, -1}, + }; + int i = 0; +- sipClass = NULL; ++ sipType = NULL; + do { + struct class_graph *cg = &graph[i]; + if (cg->name != NULL && sipCpp->inherits(cg->name)) { +- sipClass = *cg->type; ++ sipType = *cg->type; + i = cg->yes; + } else { + i = cg->no; +diff -rupN PyQwt-5.2.0/sip/qwt5qt4/QwtArrayQwtDoubleInterval.sip PyQwt-5.2.0-new/sip/qwt5qt4/QwtArrayQwtDoubleInterval.sip +--- PyQwt-5.2.0/sip/qwt5qt4/QwtArrayQwtDoubleInterval.sip 2009-03-29 19:39:25.000000000 +0200 ++++ PyQwt-5.2.0-new/sip/qwt5qt4/QwtArrayQwtDoubleInterval.sip 2017-01-04 19:26:12.529004763 +0100 +@@ -49,15 +49,6 @@ public: + QwtArray array(PyList_GET_SIZE(a0)); + + for (int i = 0; i < PyList_GET_SIZE(a0); ++i) { +-#if SIP_VERSION < 0x040800 +- void *cpp = sipForceConvertToInstance( +- PyList_GET_ITEM(a0, i), +- sipClass_QwtDoubleInterval, +- NULL, +- SIP_NO_CONVERTORS, +- NULL, +- &sipIsErr); +-#else + void *cpp = sipForceConvertToType( + PyList_GET_ITEM(a0, i), + sipType_QwtDoubleInterval, +@@ -65,7 +56,6 @@ public: + SIP_NO_CONVERTORS, + NULL, + &sipIsErr); +-#endif + + array[i] = *reinterpret_cast(cpp); + } +diff -rupN PyQwt-5.2.0/sip/qwt5qt4/QwtArrayQwtDoublePoint.sip PyQwt-5.2.0-new/sip/qwt5qt4/QwtArrayQwtDoublePoint.sip +--- PyQwt-5.2.0/sip/qwt5qt4/QwtArrayQwtDoublePoint.sip 2009-03-29 19:39:25.000000000 +0200 ++++ PyQwt-5.2.0-new/sip/qwt5qt4/QwtArrayQwtDoublePoint.sip 2017-01-04 19:26:22.982757144 +0100 +@@ -52,15 +52,6 @@ public: + QwtArray array(PyList_GET_SIZE(a0)); + + for (int i = 0; i < PyList_GET_SIZE(a0); ++i) { +-#if SIP_VERSION < 0x040800 +- void *cpp = sipForceConvertToInstance( +- PyList_GET_ITEM(a0, i), +- sipClass_QPointF, +- NULL, +- SIP_NO_CONVERTORS, +- NULL, +- &sipIsErr); +-#else + void *cpp = sipForceConvertToType( + PyList_GET_ITEM(a0, i), + sipType_QPointF, +@@ -68,7 +59,6 @@ public: + SIP_NO_CONVERTORS, + NULL, + &sipIsErr); +-#endif + + array[i] = *reinterpret_cast(cpp); + } +diff -rupN PyQwt-5.2.0/sip/qwt5qt4/qwt_data.sip PyQwt-5.2.0-new/sip/qwt5qt4/qwt_data.sip +--- PyQwt-5.2.0/sip/qwt5qt4/qwt_data.sip 2009-02-17 10:55:14.000000000 +0100 ++++ PyQwt-5.2.0-new/sip/qwt5qt4/qwt_data.sip 2017-01-04 18:43:47.820214720 +0100 +@@ -87,27 +87,27 @@ private: + %ConvertToSubClassCode + // Walk the inheritance tree depth first in alphabetical order + // This code is for Qwt4 and Qwt5 +-#ifdef sipClass_QwtArrayData ++#ifdef sipType_QwtArrayData + if (dynamic_cast(sipCpp)) +- sipClass = sipClass_QwtArrayData; ++ sipType = sipType_QwtArrayData; + else + #endif +-#ifdef sipClass_QwtDoublePointData ++#ifdef sipType_QwtDoublePointData + if (dynamic_cast(sipCpp)) +- sipClass = sipClass_QwtDoublePointData; ++ sipType = sipType_QwtDoublePointData; + else + #endif +-#ifdef sipClass_QwtPolygonFData ++#ifdef sipType_QwtPolygonFData + if (dynamic_cast(sipCpp)) +- sipClass = sipClass_QwtPolygonFData; ++ sipType = sipType_QwtPolygonFData; + else + #endif +-#ifdef sipClass_QwtData ++#ifdef sipType_QwtData + if (dynamic_cast(sipCpp)) +- sipClass = sipClass_QwtData; ++ sipType = sipType_QwtData; + else + #endif +- sipClass = 0; ++ sipType = 0; + %End + %End + +diff -rupN PyQwt-5.2.0/sip/qwt5qt4/QwtMap.sip PyQwt-5.2.0-new/sip/qwt5qt4/QwtMap.sip +--- PyQwt-5.2.0/sip/qwt5qt4/QwtMap.sip 2009-03-29 19:39:25.000000000 +0200 ++++ PyQwt-5.2.0-new/sip/qwt5qt4/QwtMap.sip 2017-01-04 19:26:45.684228520 +0100 +@@ -49,13 +49,8 @@ + + PyObject *kobj = PyFloat_FromDouble(i.key()); + +-#if SIP_VERSION < 0x040800 +- PyObject *tobj = sipConvertFromNewInstance( +- t, sipClass_QString, sipTransferObj); +-#else + PyObject *tobj = sipConvertFromNewType( + t, sipType_QString, sipTransferObj); +-#endif + + if ((0 == kobj) || (0 == tobj) || (0 > PyDict_SetItem(d, kobj, tobj))) { + Py_DECREF(d); +@@ -89,11 +84,7 @@ + return 0; + + while (PyDict_Next(sipPy, &i, &kobj, &tobj)) +-#if SIP_VERSION < 0x040800 +- if (!sipCanConvertToInstance(tobj, sipClass_QString, SIP_NOT_NONE)) +-#else + if (!sipCanConvertToType(tobj, sipType_QString, SIP_NOT_NONE)) +-#endif + return 0; + + return 1; +@@ -104,22 +95,12 @@ + while (PyDict_Next(sipPy, &i, &kobj, &tobj)) { + int state; + double k = PyFloat_AS_DOUBLE(kobj); +-#if SIP_VERSION < 0x040800 +- QString *t = reinterpret_cast( +- sipConvertToInstance(tobj, sipClass_QString, sipTransferObj, +- SIP_NOT_NONE, &state, sipIsErr)); +-#else + QString *t = reinterpret_cast( + sipConvertToType(tobj, sipType_QString, sipTransferObj, + SIP_NOT_NONE, &state, sipIsErr)); +-#endif + + if (*sipIsErr) { +-#if SIP_VERSION < 0x040800 +- sipReleaseInstance(t, sipClass_QString, state); +-#else + sipReleaseType(t, sipType_QString, state); +-#endif + + delete qm; + return 0; +@@ -127,11 +108,7 @@ + + qm->insert(k, *t); + +-#if SIP_VERSION < 0x040800 +- sipReleaseInstance(t, sipClass_QString, state); +-#else + sipReleaseType(t, sipType_QString, state); +-#endif + } + + *sipCppPtr = qm; +diff -rupN PyQwt-5.2.0/sip/qwt5qt4/qwt_picker_machine.sip PyQwt-5.2.0-new/sip/qwt5qt4/qwt_picker_machine.sip +--- PyQwt-5.2.0/sip/qwt5qt4/qwt_picker_machine.sip 2009-02-17 10:55:15.000000000 +0100 ++++ PyQwt-5.2.0-new/sip/qwt5qt4/qwt_picker_machine.sip 2017-01-04 18:43:11.545511655 +0100 +@@ -104,37 +104,37 @@ protected: + %If (CXX_DYNAMIC_CAST) + %ConvertToSubClassCode + // Walk the inheritance tree depth first in alphabetical order +-#ifdef sipClass_QwtPickerClickPointMachine ++#ifdef sipType_QwtPickerClickPointMachine + if (dynamic_cast(sipCpp)) +- sipClass = sipClass_QwtPickerClickPointMachine; ++ sipType = sipType_QwtPickerClickPointMachine; + else + #endif +-#ifdef sipClass_QwtPickerClickRectMachine ++#ifdef sipType_QwtPickerClickRectMachine + if (dynamic_cast(sipCpp)) +- sipClass = sipClass_QwtPickerClickRectMachine; ++ sipType = sipType_QwtPickerClickRectMachine; + else + #endif +-#ifdef sipClass_QwtPickerDragPointMachine ++#ifdef sipType_QwtPickerDragPointMachine + if (dynamic_cast(sipCpp)) +- sipClass = sipClass_QwtPickerDragPointMachine; ++ sipType = sipType_QwtPickerDragPointMachine; + else + #endif +-#ifdef sipClass_QwtPickerDragRectMachine ++#ifdef sipType_QwtPickerDragRectMachine + if (dynamic_cast(sipCpp)) +- sipClass = sipClass_QwtPickerDragRectMachine; ++ sipType = sipType_QwtPickerDragRectMachine; + else + #endif +-#ifdef sipClass_QwtPickerPolygonMachine ++#ifdef sipType_QwtPickerPolygonMachine + if (dynamic_cast(sipCpp)) +- sipClass = sipClass_QwtPickerPolygonMachine; ++ sipType = sipType_QwtPickerPolygonMachine; + else + #endif +-#ifdef sipClass_QwtPickerMachine ++#ifdef sipType_QwtPickerMachine + if (dynamic_cast(sipCpp)) +- sipClass = sipClass_QwtPickerMachine; ++ sipType = sipType_QwtPickerMachine; + else + #endif +- sipClass = 0; ++ sipType = 0; + %End + %End + +diff -rupN PyQwt-5.2.0/sip/qwt5qt4/qwt_plot_item.sip PyQwt-5.2.0-new/sip/qwt5qt4/qwt_plot_item.sip +--- PyQwt-5.2.0/sip/qwt5qt4/qwt_plot_item.sip 2009-02-17 10:55:15.000000000 +0100 ++++ PyQwt-5.2.0-new/sip/qwt5qt4/qwt_plot_item.sip 2017-01-04 18:42:55.195645397 +0100 +@@ -104,21 +104,21 @@ private: + %ConvertToSubClassCode + Py_BEGIN_ALLOW_THREADS + switch (sipCpp->rtti()) { +- case QwtPlotItem::Rtti_PlotItem: sipClass = sipClass_QwtPlotItem; break; +- case QwtPlotItem::Rtti_PlotGrid: sipClass = sipClass_QwtPlotGrid; break; +-#ifdef sipClass_QwtPlotScaleItem +- case QwtPlotItem::Rtti_PlotScale: sipClass = sipClass_QwtPlotScaleItem; break; +-#endif // sipClass_QwtPlotScaleItem +- case QwtPlotItem::Rtti_PlotMarker: sipClass = sipClass_QwtPlotMarker; break; +- case QwtPlotItem::Rtti_PlotCurve: sipClass = sipClass_QwtPlotCurve; break; +-#ifdef sipClass_QwtPlotHistogram +- case QwtPlotItem::Rtti_PlotHistogram: sipClass = sipClass_QwtPlotHistogram; break; +-#endif // sipClass_QwtPlotHistogram +- case QwtPlotItem::Rtti_PlotSpectrogram: sipClass = sipClass_QwtPlotSpectrogram; break; +-#ifdef sipClass_QwtPlotSvgItem +- case QwtPlotItem::Rtti_PlotSVG: sipClass = sipClass_QwtPlotSvgItem; break; +-#endif // sipClass_QwtPlotSvgItem +- default: sipClass = 0; ++ case QwtPlotItem::Rtti_PlotItem: sipType = sipType_QwtPlotItem; break; ++ case QwtPlotItem::Rtti_PlotGrid: sipType = sipType_QwtPlotGrid; break; ++#ifdef sipType_QwtPlotScaleItem ++ case QwtPlotItem::Rtti_PlotScale: sipType = sipType_QwtPlotScaleItem; break; ++#endif // sipType_QwtPlotScaleItem ++ case QwtPlotItem::Rtti_PlotMarker: sipType = sipType_QwtPlotMarker; break; ++ case QwtPlotItem::Rtti_PlotCurve: sipType = sipType_QwtPlotCurve; break; ++#ifdef sipType_QwtPlotHistogram ++ case QwtPlotItem::Rtti_PlotHistogram: sipType = sipType_QwtPlotHistogram; break; ++#endif // sipType_QwtPlotHistogram ++ case QwtPlotItem::Rtti_PlotSpectrogram: sipType = sipType_QwtPlotSpectrogram; break; ++#ifdef sipType_QwtPlotSvgItem ++ case QwtPlotItem::Rtti_PlotSVG: sipType = sipType_QwtPlotSvgItem; break; ++#endif // sipType_QwtPlotSvgItem ++ default: sipType = 0; + } + Py_END_ALLOW_THREADS + %End // %ConvertToSubClassCode +@@ -202,21 +202,21 @@ private: + %ConvertToSubClassCode + Py_BEGIN_ALLOW_THREADS + switch (sipCpp->rtti()) { +- case QwtPlotItem::Rtti_PlotItem: sipClass = sipClass_QwtPlotItem; break; +- case QwtPlotItem::Rtti_PlotGrid: sipClass = sipClass_QwtPlotGrid; break; +-#ifdef sipClass_QwtPlotScaleItem +- case QwtPlotItem::Rtti_PlotScale: sipClass = sipClass_QwtPlotScaleItem; break; +-#endif // sipClass_QwtPlotScaleItem +- case QwtPlotItem::Rtti_PlotMarker: sipClass = sipClass_QwtPlotMarker; break; +- case QwtPlotItem::Rtti_PlotCurve: sipClass = sipClass_QwtPlotCurve; break; +-#ifdef sipClass_QwtPlotHistogram +- case QwtPlotItem::Rtti_PlotHistogram: sipClass = sipClass_QwtPlotHistogram; break; +-#endif // sipClass_QwtPlotHistogram +- case QwtPlotItem::Rtti_PlotSpectrogram: sipClass = sipClass_QwtPlotSpectrogram; break; +-#ifdef sipClass_QwtPlotSvgItem +- case QwtPlotItem::Rtti_PlotSVG: sipClass = sipClass_QwtPlotSvgItem; break; +-#endif // sipClass_QwtPlotSvgItem +- default: sipClass = 0; ++ case QwtPlotItem::Rtti_PlotItem: sipType = sipType_QwtPlotItem; break; ++ case QwtPlotItem::Rtti_PlotGrid: sipType = sipType_QwtPlotGrid; break; ++#ifdef sipType_QwtPlotScaleItem ++ case QwtPlotItem::Rtti_PlotScale: sipType = sipType_QwtPlotScaleItem; break; ++#endif // sipType_QwtPlotScaleItem ++ case QwtPlotItem::Rtti_PlotMarker: sipType = sipType_QwtPlotMarker; break; ++ case QwtPlotItem::Rtti_PlotCurve: sipType = sipType_QwtPlotCurve; break; ++#ifdef sipType_QwtPlotHistogram ++ case QwtPlotItem::Rtti_PlotHistogram: sipType = sipType_QwtPlotHistogram; break; ++#endif // sipType_QwtPlotHistogram ++ case QwtPlotItem::Rtti_PlotSpectrogram: sipType = sipType_QwtPlotSpectrogram; break; ++#ifdef sipType_QwtPlotSvgItem ++ case QwtPlotItem::Rtti_PlotSVG: sipType = sipType_QwtPlotSvgItem; break; ++#endif // sipType_QwtPlotSvgItem ++ default: sipType = 0; + } + Py_END_ALLOW_THREADS + %End // %ConvertToSubClassCode +diff -rupN PyQwt-5.2.0/sip/qwt5qt4/qwt_plot_layout.sip PyQwt-5.2.0-new/sip/qwt5qt4/qwt_plot_layout.sip +--- PyQwt-5.2.0/sip/qwt5qt4/qwt_plot_layout.sip 2009-02-17 10:55:15.000000000 +0100 ++++ PyQwt-5.2.0-new/sip/qwt5qt4/qwt_plot_layout.sip 2017-01-04 18:43:17.876459851 +0100 +@@ -84,10 +84,10 @@ sipRes = Py_BuildValue("i(iiii)", title, + QRect scales[QwtPlot::axisCnt]; + sipCpp->sipProtect_alignScales(a0, *a1, scales); + sipRes = sipBuildResult(0, "(BBBB)", +- new QRect(scales[0]), sipClass_QRect, 0, +- new QRect(scales[1]), sipClass_QRect, 0, +- new QRect(scales[2]), sipClass_QRect, 0, +- new QRect(scales[3]), sipClass_QRect, 0); ++ new QRect(scales[0]), sipType_QRect, 0, ++ new QRect(scales[1]), sipType_QRect, 0, ++ new QRect(scales[2]), sipType_QRect, 0, ++ new QRect(scales[3]), sipType_QRect, 0); + %End + + }; // class QwtPlotLayout +diff -rupN PyQwt-5.2.0/sip/qwt5qt4/qwt_plot.sip PyQwt-5.2.0-new/sip/qwt5qt4/qwt_plot.sip +--- PyQwt-5.2.0/sip/qwt5qt4/qwt_plot.sip 2009-04-18 19:15:45.000000000 +0200 ++++ PyQwt-5.2.0-new/sip/qwt5qt4/qwt_plot.sip 2017-01-04 19:26:03.803213527 +0100 +@@ -141,9 +141,9 @@ protected: + + if (!sipIsErr) { + for (int i=0; i(cpp); + } + } +@@ -162,8 +162,8 @@ protected: + + if (!sipIsErr) { + for (int i=0; i(&a2[i]), sipClass_QwtScaleMap, 0); ++ PyObject *object = sipConvertFromType( ++ const_cast(&a2[i]), sipType_QwtScaleMap, 0); + if (!object) { + sipIsErr = true; + break; +@@ -175,10 +175,10 @@ protected: + if (!sipIsErr) { + PyObject *result = sipCallMethod( + &sipIsErr, sipMethod, "CCSC", +- a0, sipClass_QPainter, 0, +- &a1, sipClass_QRect, 0, ++ a0, sipType_QPainter, 0, ++ &a1, sipType_QRect, 0, + maps, +- &a3, sipClass_QwtPlotPrintFilter, 0); ++ &a3, sipType_QwtPlotPrintFilter, 0); + + if (result) + { +@@ -208,8 +208,8 @@ protected: + + if (!sipIsErr) { + for (int i=0; i(cpp); + } +@@ -230,8 +230,8 @@ End + + if (!sipIsErr) { + for (int i=0; i(&a2[i]), sipClass_QwtScaleMap, 0); ++ PyObject *object = sipConvertFromType( ++ const_cast(&a2[i]), sipType_QwtScaleMap, 0); + if (!object) { + sipIsErr = true; + break; +@@ -243,10 +243,10 @@ End + if (!sipIsErr) { + PyObject *result = sipCallMethod( + &sipIsErr, sipMethod, "CCSC", +- a0, sipClass_QPainter, 0, +- &a1, sipClass_QRect, 0, ++ a0, sipType_QPainter, 0, ++ &a1, sipType_QRect, 0, + maps, +- &a3, sipClass_QwtPrintFilter, 0); ++ &a3, sipType_QwtPrintFilter, 0); + + if (result) + { +@@ -374,8 +374,8 @@ protected: + + if (!sipIsErr) { + for (int i=0; i(cpp); + } +@@ -395,8 +395,8 @@ protected: + + if (!sipIsErr) { + for (int i=0; i(&a2[i]), sipClass_QwtScaleMap, 0); ++ PyObject *object = sipConvertFromType( ++ const_cast(&a2[i]), sipType_QwtScaleMap, 0); + if (!object) { + sipIsErr = true; + break; +@@ -408,11 +408,10 @@ protected: + if (!sipIsErr) { + PyObject *result = sipCallMethod( + &sipIsErr, sipMethod, "CCSC", +- a0, sipClass_QPainter, 0, +- &a1, sipClass_QRect, 0, ++ a0, sipType_QPainter, 0, ++ &a1, sipType_QRect, 0, + maps, +- &a3, sipClass_QwtPlotPrintFilter, 0); +- ++ &a3, sipType_QwtPlotPrintFilter, 0); + if (result) + { + sipParseResult(&sipIsErr, sipMethod, result, "Z"); +@@ -547,8 +546,8 @@ protected: + + if (!sipIsErr) { + for (int i=0; i(cpp); + } +@@ -568,8 +567,8 @@ protected: + + if (!sipIsErr) { + for (int i=0; i(&a2[i]), sipClass_QwtScaleMap, 0); ++ PyObject *object = sipConvertFromType( ++ const_cast(&a2[i]), sipType_QwtScaleMap, 0); + if (!object) { + sipIsErr = true; + break; +@@ -581,11 +580,10 @@ protected: + if (!sipIsErr) { + PyObject *result = sipCallMethod( + &sipIsErr, sipMethod, "CCSC", +- a0, sipClass_QPainter, 0, +- &a1, sipClass_QRect, 0, ++ a0, sipType_QPainter, 0, ++ &a1, sipType_QRect, 0, + maps, +- &a3, sipClass_QwtPlotPrintFilter, 0); +- ++ &a3, sipType_QwtPlotPrintFilter, 0); + if (result) + { + sipParseResult(&sipIsErr, sipMethod, result, "Z"); +diff -rupN PyQwt-5.2.0/sip/qwt5qt4/QwtStack.sip PyQwt-5.2.0-new/sip/qwt5qt4/QwtStack.sip +--- PyQwt-5.2.0/sip/qwt5qt4/QwtStack.sip 2008-07-26 19:27:16.000000000 +0200 ++++ PyQwt-5.2.0-new/sip/qwt5qt4/QwtStack.sip 2017-01-04 19:27:08.358712518 +0100 +@@ -1,5 +1,5 @@ + // The SIP interface specification for: +-// QStack. ++// QStack. + // + // Copyright (C) 2001-2007 Gerard Vermeulen + // Copyright (C) 2000 Mark Colclough +@@ -30,9 +30,9 @@ + // PyQwt becomes a free plug-in for a non-free program. + + +-// QStack is implemented as a Python list. +-template +-%MappedType QStack ++// QStack is implemented as a Python list. ++template ++%MappedType QStack + { + %TypeHeaderCode + #include +@@ -46,8 +46,8 @@ template + + // Set the list elements. + for (int i=0; isize(); ++i) { +- Type *t = new Type(sipCpp->at(i)); +- PyObject *o = sipConvertFromNewInstance(t, sipClass_Type, sipTransferObj); ++ TYPE *t = new TYPE(sipCpp->at(i)); ++ PyObject *o = sipConvertFromNewType(t, sipType_TYPE, sipTransferObj); + if (0 == o) { + Py_XDECREF(o); + Py_DECREF(l); +@@ -66,30 +66,30 @@ template + return 0; + // check elements + for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i) +- if (!sipCanConvertToInstance(PyList_GET_ITEM(sipPy, i), sipClass_Type, 0)) ++ if (!sipCanConvertToType(PyList_GET_ITEM(sipPy, i), sipType_TYPE, 0)) + return 0; + return 1; + } + + // Return the QStack. +- QStack *s = new QStack; ++ QStack *s = new QStack; + for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i) { + int state; +- Type *t = reinterpret_cast(sipConvertToInstance(PyList_GET_ITEM(sipPy, i), sipClass_Type, 0, SIP_NOT_NONE, &state, sipIsErr)); ++ TYPE *t = reinterpret_cast(sipConvertToType(PyList_GET_ITEM(sipPy, i), sipType_TYPE, 0, SIP_NOT_NONE, &state, sipIsErr)); + + if (*sipIsErr) { +- sipReleaseInstance(t, sipClass_Type, state); ++ sipReleaseType(t, sipType_TYPE, state); + delete s; + return 0; + } + s->append(*t); +- sipReleaseInstance(t, sipClass_Type, state); ++ sipReleaseType(t, sipType_TYPE, state); + } + *sipCppPtr = s; + + return sipGetState(sipTransferObj); + %End +-}; // template %MappedType QStack ++}; // template %MappedType QStack + + + // Local Variables: diff --git a/PyQwt.spec b/PyQwt.spec index 679770f..58b5cce 100644 --- a/PyQwt.spec +++ b/PyQwt.spec @@ -1,13 +1,6 @@ - -%if 0%{?fedora} > 16 -%global qwt_dep pkgconfig(qwt5-qt4) -%else -%global qwt_dep qwt-devel -%endif - Name: PyQwt Version: 5.2.0 -Release: 33%{?dist} +Release: 34%{?dist} Summary: Python bindings for Qwt Group: Development/Languages @@ -18,23 +11,21 @@ Source0: http://downloads.sourceforge.net/pyqwt/%{name}-%{version}.tar.gz # manually link libqwt, don't hardcode -lqwt Patch1: PyQwt-5.2.0-qwt_manual_link.patch +# fix building against sip-4.19 +Patch2: PyQwt-5.2.0-sip-4.19.patch BuildRequires: python2-devel BuildRequires: sip-devel BuildRequires: PyQt4-devel BuildRequires: numpy-f2py -BuildRequires: %{qwt_dep} +BuildRequires: pkgconfig(qwt5-qt4) Requires: PyQt4%{?_isa} Requires: numpy%{?_isa} %{?_sip_api:Requires: sip-api(%{_sip_api_major}) >= %{_sip_api}} -# prevent rpm's auto-generated provides mechanism to include PyQwt's private -# libraries -%{?filter_setup: -%filter_provides_in %{python_sitearch}/PyQt4/Qwt5/.*\.so$ -%filter_setup -} +# Filter .so files in python2_sitearch directory from auto-generated provides +%global __provides_exclude_from ^%{python2_sitearch}/.*\\.so$ %description PyQwt is a set of Python bindings for the Qwt C++ class library which extends @@ -47,7 +38,7 @@ Summary: Files needed to build other bindings on PyQwt Group: Development/Languages Requires: %{name}%{?_isa} = %{version}-%{release} Requires: PyQt4-devel%{?_isa} -Requires: %{qwt_dep} +Requires: pkgconfig(qwt5-qt4) %description devel Files needed to build other bindings for Qwt C++ classes that inherit from any of the PyQwt classes. @@ -57,6 +48,7 @@ any of the PyQwt classes. %setup -q %patch1 -p1 -b .manual_link_qwt +%patch2 -p1 -b .sip419 # mark examples non-executable find qt4examples/ -name "*.py" | xargs chmod a-x @@ -66,7 +58,7 @@ find qt4examples/ -name "*.py" | xargs chmod a-x QWTINC="%(pkg-config --cflags-only-I qwt5-qt4 2>/dev/null || echo "%{_includedir}/qwt")" QWTLIB="%(pkg-config --libs qwt5-qt4 2>/dev/null || echo "-lqwt")" pushd configure -%{__python} configure.py $QWTINC $QWTLIB --disable-numarray --disable-numeric +%{__python2} configure.py $QWTINC $QWTLIB --disable-numarray --disable-numeric popd make %{?_smp_mflags} -C configure @@ -81,24 +73,32 @@ rm sphinx/build/html/.buildinfo mv sphinx/build/html devel-doc # non-executable scripts -chmod 755 %{buildroot}/%{python_sitearch}/PyQt4/Qwt5/grace.py -chmod 755 %{buildroot}/%{python_sitearch}/PyQt4/Qwt5/qplt.py +chmod 755 %{buildroot}/%{python2_sitearch}/PyQt4/Qwt5/grace.py +chmod 755 %{buildroot}/%{python2_sitearch}/PyQt4/Qwt5/qplt.py %files %doc ANNOUNCEMENT-%{version} README %doc COPYING* -%{python_sitearch}/PyQt4/Qwt5/ -%{python_sitearch}/PyQt4/uic/widget-plugins/qwt.py* +%{python2_sitearch}/PyQt4/Qwt5/ +%{python2_sitearch}/PyQt4/uic/widget-plugins/qwt.py* %files devel %doc devel-doc/* -%doc qt4examples/ +%doc qt4examples/ %{_datadir}/sip/PyQt4/Qwt5/ %changelog +* Tue Jan 10 2017 Tadej Janež - 5.2.0-33 +- Fixed building against sip-4.19 (thanks to Sandro Mani for the patch). +- Updated and modernized spec file: + - Simplified filtering of auto-generated provides. + - Replaced %%{python_*} macros with %%{python2_*} macros. + - Removed %%qwt_dep and replaced it with a fixed qwt dependency. + - Removed trailing white-space. + * Sun Jan 01 2017 Rex Dieter - 5.2.0-33 - rebuild (sip) @@ -203,10 +203,10 @@ chmod 755 %{buildroot}/%{python_sitearch}/PyQt4/Qwt5/qplt.py * Mon Apr 12 2010 Tadej Janež - 5.2.0-5 - rebuild (for qwt-5.2.0, f11+) -* Thu Jan 07 2010 Rex Dieter - 5.2.0-4 +* Thu Jan 07 2010 Rex Dieter - 5.2.0-4 - rebuild (sip) -* Thu Nov 19 2009 Rex Dieter - 5.2.0-3.1 +* Thu Nov 19 2009 Rex Dieter - 5.2.0-3.1 - rebuild (for qt-4.6.0-rc1, f13+) * Mon Nov 16 2009 Rex Dieter 5.2.0-3