diff --git a/conf.in.py b/conf.in.py index edca8ffe0206..b5b98a68d1dd 100644 --- a/conf.in.py +++ b/conf.in.py @@ -131,6 +131,7 @@ version_list = ("master", current_stable, current_ltr) graphviz_output_format = "svg" +qt_docs_url_base = cfg["qt_docs_url_base"] url = cfg["pyqgis_url"] if not url.endswith("/"): diff --git a/inheritance_diagram.py b/inheritance_diagram.py index 8900492d35ed..a2ebbc3c6e83 100644 --- a/inheritance_diagram.py +++ b/inheritance_diagram.py @@ -354,6 +354,9 @@ def generate_dot( if any(n.endswith(f".{name}") for n in self.class_names): this_node_attrs["fillcolor"] = '"#e7f2fa"' + if fullname.startswith("PyQt"): + this_node_attrs["URL"] = f'"{env.config.qt_docs_url_base}{name.lower()}.html"' + this_node_attrs["target"] = '"_top"' if fullname in urls: this_node_attrs["URL"] = '"%s"' % urls[fullname] this_node_attrs["target"] = '"_top"' @@ -550,5 +553,6 @@ def setup(app: Sphinx) -> ExtensionMetadata: app.add_config_value("inheritance_graph_attrs", {}, "") app.add_config_value("inheritance_node_attrs", {}, "") app.add_config_value("inheritance_edge_attrs", {}, "") + app.add_config_value("qt_docs_url_base", "", "") app.add_config_value("inheritance_alias", {}, "") return {"version": sphinx.__display_version__, "parallel_read_safe": True} diff --git a/pyqgis_conf.yml b/pyqgis_conf.yml index 6168fd0dce1d..f574651f84b9 100644 --- a/pyqgis_conf.yml +++ b/pyqgis_conf.yml @@ -4,6 +4,7 @@ pyqgis_url: https://qgis.org/pyqgis current_stable: '3.38' current_ltr: '3.34' +qt_docs_url_base: https://doc.qt.io/qt-5/ skipped: - PyProviderMetadata diff --git a/scripts/make_api_rst.py b/scripts/make_api_rst.py index 659172425fc5..4647d01fe4e3 100755 --- a/scripts/make_api_rst.py +++ b/scripts/make_api_rst.py @@ -330,9 +330,15 @@ def export_bases(_b): for _base in _b.__bases__: if _base.__name__ in ("wrapper", "simplewrapper", "object"): continue + + if re.match(r"^Q(?!gs)", _base.__name__): + doc_link = f'{cfg["qt_docs_url_base"]}{_base.__name__.lower()}.html' + else: + doc_link = f"{_base.__name__}.html" + res += make_table_row( [ - f"`{_base.__name__} <{_base.__name__}.html>`_", + f"`{_base.__name__} <{doc_link}>`_", extract_summary(_base.__doc__), ] )