propagated some more fixes from 2.3 branch to the trunk

This commit is contained in:
Vadim Pisarevsky
2011-06-29 22:26:09 +00:00
parent b204e73d9a
commit d5d0a2f8e0
152 changed files with 131 additions and 74253 deletions

View File

@@ -243,12 +243,13 @@ class OCVPyModulelevel(OCVPyObject):
"""
Description of an object on module level (functions, data).
"""
directive_prefix = 'py'
def needs_arglist(self):
return self.objtype == 'pyfunction'
return self.objtype == self.__class__.directive_prefix + 'function'
def get_index_text(self, modname, name_cls):
if self.objtype == 'pyfunction':
if self.objtype == self.__class__.directive_prefix + 'function':
if not modname:
fname = name_cls[0]
if not fname.startswith("cv") and not fname.startswith("cv2"):
@@ -265,6 +266,10 @@ class OCVPyModulelevel(OCVPyObject):
else:
return ''
class OCVPyOldModulelevel(OCVPyModulelevel):
directive_prefix = 'pyold'
pass
class OCVPyXRefRole(XRefRole):
def process_link(self, env, refnode, has_explicit_title, title, target):
refnode['ocv:module'] = env.temp_data.get('ocv:module')
@@ -1075,6 +1080,9 @@ class DefinitionParser(object):
class OCVObject(ObjectDescription):
"""Description of a C++ language object."""
langname = "C++"
ismember = False
doc_field_types = [
TypedField('parameter', label=l_('Parameters'),
names=('param', 'parameter', 'arg', 'argument'),
@@ -1104,8 +1112,11 @@ class OCVObject(ObjectDescription):
node += pnode
def attach_modifiers(self, node, obj):
node += nodes.strong("C++:", "C++:")
node += addnodes.desc_name(" ", " ")
if not self.__class__.ismember:
lname = self.__class__.langname
node += nodes.strong(lname + ":", lname + ":")
node += addnodes.desc_name(" ", " ")
if obj.visibility != 'public':
node += addnodes.desc_annotation(obj.visibility,
obj.visibility)
@@ -1181,6 +1192,20 @@ class OCVClassObject(OCVObject):
#self.attach_name(signode, cls.name)
pass
class OCVStructObject(OCVObject):
def get_index_text(self, name):
return _('%s (C structure)') % name
def parse_definition(self, parser):
return parser.parse_class()
def describe_signature(self, signode, cls):
#self.attach_modifiers(signode, cls)
#signode += addnodes.desc_annotation('class ', 'class ')
#self.attach_name(signode, cls.name)
pass
class OCVTypeObject(OCVObject):
@@ -1203,6 +1228,8 @@ class OCVTypeObject(OCVObject):
class OCVMemberObject(OCVObject):
ismember = True
def get_index_text(self, name):
if self.objtype == 'member':
return _('%s (C++ member)') % name
@@ -1259,7 +1286,10 @@ class OCVFunctionObject(OCVObject):
node += addnodes.desc_addname(' = 0', ' = 0')
def get_index_text(self, name):
return _('%s (C++ function)') % name
lname = self.__class__.langname
if lname == "C" and name.startswith("cv"):
name = name[2:]
return _('%s (%s function)') % (name, lname)
def parse_definition(self, parser):
return parser.parse_function()
@@ -1322,31 +1352,52 @@ class OCVXRefRole(XRefRole):
return title, target
class OCVCFunctionObject(OCVFunctionObject):
langname = "C"
class OCVJavaFunctionObject(OCVFunctionObject):
langname = "Java"
class OCVDomain(Domain):
"""OpenCV C++ language domain."""
name = 'ocv'
label = 'C++'
object_types = {
'class': ObjType(l_('class'), 'class'),
'struct': ObjType(l_('struct'), 'struct'),
'function': ObjType(l_('function'), 'func', 'funcx'),
'cfunction': ObjType(l_('cfunction'), 'cfunc', 'cfuncx'),
'jfunction': ObjType(l_('jfunction'), 'jfunc', 'jfuncx'),
'pyfunction': ObjType(l_('pyfunction'), 'pyfunc'),
'pyoldfunction': ObjType(l_('pyoldfunction'), 'pyoldfunc'),
'member': ObjType(l_('member'), 'member'),
'type': ObjType(l_('type'), 'type')
}
directives = {
'class': OCVClassObject,
'struct': OCVStructObject,
'function': OCVFunctionObject,
'cfunction': OCVCFunctionObject,
'jfunction': OCVJavaFunctionObject,
'pyfunction': OCVPyModulelevel,
'pyoldfunction': OCVPyOldModulelevel,
'member': OCVMemberObject,
'type': OCVTypeObject,
'namespace': OCVCurrentNamespace
}
roles = {
'class': OCVXRefRole(),
'struct': OCVXRefRole(),
'func' : OCVXRefRole(fix_parens=True),
'funcx' : OCVXRefRole(),
'cfunc' : OCVXRefRole(fix_parens=True),
'cfunc' : OCVXRefRole(),
'jfunc' : OCVXRefRole(fix_parens=True),
'jfunc' : OCVXRefRole(),
'pyfunc' : OCVPyXRefRole(),
'pyoldfunc' : OCVPyXRefRole(),
'member': OCVXRefRole(),
'type': OCVXRefRole()
}