PyObject* py_read_config_entry(PyObject *, PyObject *args) { long widget; char* key; if (!PyArg_ParseTuple(args, (char*)"ls:readConfigEntry", &widget, &key)) return NULL; if (!checkKaramba(widget)) return NULL; QString k; k.setAscii(key); QVariant entry = readConfigEntry(widget, k); QString type; type.setAscii(entry.typeName()); if (type == "Bool") { return Py_BuildValue((char*)"l", (int)entry.toBool()); } bool isint = false; int i = entry.toInt(&isint); if (isint) { return Py_BuildValue((char*)"l", i); } if (type == "QString") { return Py_BuildValue((char*)"s", entry.toString().ascii()); } // Add more types if needed return NULL; }
PyObject* py_read_config_entry(PyObject *, PyObject *args) { long widget; char* key; if (!PyArg_ParseTuple(args, (char*)"ls:readConfigEntry", &widget, &key)) return NULL; if (!checkKaramba(widget)) return NULL; QString k; k = QString::fromAscii(key); QString entry = readConfigEntry(widget, k); if (entry.isEmpty()) return Py_BuildValue((char*)""); if (entry.startsWith("false", Qt::CaseInsensitive)) return Py_BuildValue((char*)"l", 0); if (entry.startsWith("true", Qt::CaseInsensitive)) return Py_BuildValue((char*)"l", 0); bool ok; if (entry.toInt(&ok)) return Py_BuildValue((char*)"l", entry.toInt()); return Py_BuildValue((char*)"s", entry.toAscii().constData()); return NULL; }