propagated some more fixes from 2.3 branch to the trunk
This commit is contained in:
61
doc/ocv.py
61
doc/ocv.py
@@ -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()
|
||||
}
|
||||
|
Reference in New Issue
Block a user