Example #1
0
const std::string PugAPI::map(const std::string node, const boost::python::dict& d) const
{
    QVariantMap qmap;
    boost::python::list keys = (boost::python::list)d.iterkeys();
    for (int i = 0; i < boost::python::len(keys); i++) {
        boost::python::object obj = d[keys[i]];
        if (PyString_Check(obj.ptr())) {
            qmap[QString::fromStdString(boost::python::extract<std::string>(keys[i]))] = QString::fromStdString(boost::python::extract<std::string>(obj));
        } else if (PyInt_Check(obj.ptr())) {
            qmap[QString::fromStdString(boost::python::extract<std::string>(keys[i]))] = QVariant(boost::python::extract<int>(obj));
        }
        // ignore things we can't convert
    }

    QString qresult = m_root->map(QString::fromStdString(node), qmap);

    return qresult.toStdString();
}