2.5: Mesh and Various Fixes

* 3D view Mesh menu works again, but incomplete.
* Add Properties and Toolbar to 3D View menu.
* Added "specials" menus back, vertex/edge/face and general.
* Various fixes in existing mesh operators, some were not working.
* Add MESH_OT_merge.
* Merge all subdivide ops into MESH_OT_subdivide, subdivide code
  changes to make smooth + multi give good results.
* Rename all select inverse ops to *_OT_select_inverse.
* Fix "search for unknown operator" prints at startup, and some
  warnings in py code.
* Don't run .pyc files on startup.
* Remove unused image window header C code.
This commit is contained in:
2009-07-08 21:31:28 +00:00
parent 288bfeea1e
commit 51ae88aa3b
36 changed files with 749 additions and 1808 deletions

View File

@@ -151,7 +151,6 @@ wchar_t* Py_GetPath(void)
/* must be called before Py_Initialize */
void BPY_start_python_path(void)
{
char py_path[FILE_MAXDIR + 11] = "";
char *py_path_bundle= BLI_gethome_folder("python");
if(py_path_bundle==NULL)
@@ -162,15 +161,21 @@ void BPY_start_python_path(void)
#if (defined(WIN32) || defined(WIN64))
#if defined(FREE_WINDOWS)
sprintf(py_path, "PYTHONPATH=%s", py_path_bundle);
putenv(py_path);
{
char py_path[FILE_MAXDIR + 11] = "";
sprintf(py_path, "PYTHONPATH=%s", py_path_bundle);
putenv(py_path);
}
#else
_putenv_s("PYTHONPATH", py_path_bundle);
#endif
#else
#ifdef __sgi
sprintf(py_path, "PYTHONPATH=%s", py_path_bundle);
putenv(py_path);
{
char py_path[FILE_MAXDIR + 11] = "";
sprintf(py_path, "PYTHONPATH=%s", py_path_bundle);
putenv(py_path);
}
#else
setenv("PYTHONPATH", py_path_bundle, 1);
#endif
@@ -484,7 +489,10 @@ void BPY_run_ui_scripts(bContext *C, int reload)
while((de = readdir(dir)) != NULL) {
/* We could stat the file but easier just to let python
* import it and complain if theres a problem */
if(strstr(de->d_name, ".pyc"))
continue;
file_extension = strstr(de->d_name, ".py");
if(file_extension && *(file_extension + 3) == '\0') {

View File

@@ -130,12 +130,12 @@ static PyObject *pyop_base_getattro( BPy_OperatorBase * self, PyObject *pyname )
PyObject *ret;
wmOperatorType *ot;
if ((ot= WM_operatortype_find(name))) {
ret = PyCFunction_New( pyop_base_call_meth, pyname); /* set the name string as self, PyCFunction_New incref's self */
}
else if ((ret = PyObject_GenericGetAttr((PyObject *)self, pyname))) {
if ((ret = PyObject_GenericGetAttr((PyObject *)self, pyname))) {
/* do nothing, this accounts for methoddef's add and remove */
}
else if ((ot= WM_operatortype_find(name))) {
ret = PyCFunction_New( pyop_base_call_meth, pyname); /* set the name string as self, PyCFunction_New incref's self */
}
else {
PyErr_Format( PyExc_AttributeError, "Operator \"%s\" not found", name);
ret= NULL;

View File

@@ -352,9 +352,10 @@ PyObject *PYOP_wrap_add(PyObject *self, PyObject *py_class)
idname = _PyUnicode_AsString(item);
/* remove if it already exists */
if ((ot=WM_operatortype_find(idname))) {
if(ot->pyop_data)
if ((ot=WM_operatortype_exists(idname))) {
if(ot->pyop_data) {
Py_XDECREF((PyObject*)ot->pyop_data);
}
WM_operatortype_remove(idname);
}
@@ -402,7 +403,7 @@ PyObject *PYOP_wrap_remove(PyObject *self, PyObject *value)
return NULL;
}
if (!(ot= WM_operatortype_find(idname))) {
if (!(ot= WM_operatortype_exists(idname))) {
PyErr_Format( PyExc_AttributeError, "Operator \"%s\" does not exists, cant remove", idname);
return NULL;
}