QObject* getQObjectFromPyArg(PyObject* arg) { if (PyString_Check(arg)) // It's a string. Look for a pageItem by that name. Do NOT accept a // selection. return getPageItemByName(QString::fromUtf8(PyString_AsString(arg))); else if (PyCObject_Check(arg)) { // It's a PyCObject, ie a wrapped pointer. Check it's not NULL // and return it. // FIXME: Try to check that its a pointer to a QObject instance QObject* tempObject = (QObject*)PyCObject_AsVoidPtr(arg); if (!tempObject) { PyErr_SetString(PyExc_TypeError, "INTERNAL: Passed NULL PyCObject"); return NULL; } else return tempObject; } else { // It's not a type we know what to do with PyErr_SetString(PyExc_TypeError, QObject::tr("Argument must be page item name, or PyCObject instance").toLocal8Bit().constData()); return NULL; } }
/* 04/07/10 returns selection if is not name specified pv */ PageItem* GetUniqueItem(QString name) { if (name.length()==0) if (ScCore->primaryMainWindow()->doc->m_Selection->count() != 0) return ScCore->primaryMainWindow()->doc->m_Selection->itemAt(0); else { PyErr_SetString(NoValidObjectError, QString("Cannot use empty string for object name when there is no selection").toLocal8Bit().constData()); return NULL; } else return getPageItemByName(name); }
/* 04/07/10 returns selection if is not name specified pv */ PageItem* GetUniqueItem(QString name) { if (name.length()==0) if (ScCore->primaryMainWindow()->doc->m_Selection->count() != 0) return ScCore->primaryMainWindow()->doc->m_Selection->itemAt(0); else { RAISE("Cannot use empty string for object name when there is no selection"); return NULL; } else return getPageItemByName(name); }