Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 349707 | Differences between
and this patch

Collapse All | Expand All

(-)pykde4-4.5.5/python/pykde4/sip/kdecore/typedefs.sip~ (-139 lines)
Lines 582-671 Link Here
582
%End
582
%End
583
};
583
};
584
584
585
template <TYPE>
586
%MappedType QSet<TYPE>
587
{
588
%TypeHeaderCode
589
#include <qset.h>
590
%End
591
592
%ConvertFromTypeCode
593
    // Create the list.
594
    PyObject *l;
595
596
    if ((l = PyList_New(sipCpp->size())) == NULL)
597
        return NULL;
598
599
    // Set the list elements.
600
    QSet<TYPE> set = *sipCpp;
601
    int i = 0;
602
    foreach (TYPE value, set)
603
    {
604
        PyObject *obj = sipConvertFromNewType(&value, sipType_TYPE, sipTransferObj);
605
        if (obj == NULL || PyList_SET_ITEM (l, i, obj) < 0)
606
        {
607
            Py_DECREF(l);
608
609
            if (obj)
610
                Py_DECREF(obj);
611
612
            return NULL;
613
        }
614
615
        Py_DECREF(obj);
616
        i++;
617
    }
618
   
619
    return l;
620
%End
621
622
%ConvertToTypeCode
623
    // Check the type if that is all that is required.
624
    if (sipIsErr == NULL)
625
    {
626
        if (!PyList_Check(sipPy))
627
            return 0;
628
    }
629
630
    // Check the type if that is all that is required.
631
    if (sipIsErr == NULL)
632
    {
633
        if (!PyList_Check(sipPy))
634
            return 0;
635
636
        for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i)
637
            if (!sipCanConvertToType(PyList_GET_ITEM (sipPy, i), sipType_TYPE, SIP_NOT_NONE))
638
                return 0;
639
    }
640
641
    QSet<TYPE> *qs = new QSet<TYPE>;
642
 
643
    for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i)
644
    {
645
        int state;
646
647
        TYPE *t = reinterpret_cast<TYPE *>(sipConvertToType(PyList_GET_ITEM (sipPy, i), sipType_TYPE, sipTransferObj, SIP_NOT_NONE, &state, sipIsErr));
648
 
649
        if (*sipIsErr)
650
        {
651
            sipReleaseType(t, sipType_TYPE, state);
652
653
            delete qs;
654
            return 0;
655
        }
656
657
        *qs << *t;
658
659
        sipReleaseType(t, sipType_TYPE, state);
660
    }
661
 
662
    *sipCppPtr = qs;
663
 
664
    return sipGetState(sipTransferObj);
665
%End
666
};
667
668
669
template <TYPE1,TYPE2>
585
template <TYPE1,TYPE2>
670
%MappedType QPair<TYPE1,TYPE2>
586
%MappedType QPair<TYPE1,TYPE2>
671
{
587
{
Lines 730-790 Link Here
730
 
646
 
731
    return sipGetState(sipTransferObj);
647
    return sipGetState(sipTransferObj);
732
%End
648
%End
733
};
734
735
736
%MappedType QList<uint>
737
{
738
%TypeHeaderCode
739
#include <qlist.h>
740
%End
741
742
%ConvertFromTypeCode
743
    // Create the list.
744
    PyObject *l;
745
746
    if ((l = PyList_New(sipCpp->size())) == NULL)
747
        return NULL;
748
749
    // Set the list elements.
750
    for (int i = 0; i < sipCpp->size(); ++i) {
751
        PyObject *pobj;
752
753
#if PY_MAJOR_VERSION >= 3
754
        if ((pobj = PyLong_FromLong(sipCpp->value(i))) == NULL) {
755
#else
756
        if ((pobj = PyInt_FromLong(sipCpp->value(i))) == NULL) {
757
#endif
758
            Py_DECREF(l);
759
760
            return NULL;
761
        }
762
763
        PyList_SET_ITEM(l, i, pobj);
764
    }
765
766
    return l;
767
%End
768
769
%ConvertToTypeCode
770
    // Check the type if that is all that is required.
771
    if (sipIsErr == NULL)
772
        return PyList_Check(sipPy);
773
774
    QList<uint> *ql = new QList<uint>;
775
 
776
    for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i) {
777
#if PY_MAJOR_VERSION >= 3
778
        ql->append(PyLong_AsLong(PyList_GET_ITEM(sipPy, i)));
779
#else
780
        ql->append(PyInt_AsLong(PyList_GET_ITEM(sipPy, i)));
781
#endif        
782
    }
783
    
784
    *sipCppPtr = ql;
785
 
786
    return sipGetState(sipTransferObj);
787
%End
788
};
649
};
789
650
790
651

Return to bug 349707