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.4/python/pykde4/sip/kdecore/typedefs.sip (-84 lines)
Lines 582-671 template <TYPE1,TYPE2*> 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
{

Return to bug 349707