Exemplo n.º 1
0
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;
}
Exemplo n.º 2
0
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;
}