<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <div class="QcsUad BDJ8fb BLojaf sMVRZe hCXDsb wneUed">
      <div class="usGWQd">
        <div class="KkbLmb">
          <div class="lRu31" dir="ltr"><span class="HwtZe" lang="en"><span
                class="jCAhz ChMk0b"><span class="ryNqvb">Hello,<br>
                  I have updated the PR. To summarize, we want to
                  introduce two APIs:<br>
                  - the ability to define editing toolbars (the point
                  cloud editing toolbar has been updated to use this
                  API)<br>
                  - the ability to dynamically add widgets to the
                  sidebar.<br>
                </span></span></span></div>
          <div class="lRu31" dir="ltr"><span class="HwtZe" lang="en"><span
                class="jCAhz ChMk0b"><span class="ryNqvb"><br>
                </span></span></span></div>
          <div class="lRu31" dir="ltr"><span class="HwtZe" lang="en"><span
                class="jCAhz ChMk0b"><span class="ryNqvb">What do you
                  think?</span></span></span></div>
          <div class="lRu31" dir="ltr"><span class="HwtZe" lang="en"><span
                class="jCAhz ChMk0b"><span class="ryNqvb"><br>
                </span></span></span></div>
          <div class="lRu31" dir="ltr"><span class="HwtZe" lang="en"><span
                class="jCAhz ChMk0b"><span class="ryNqvb">Benoit.</span></span></span></div>
        </div>
        <div class="KkbLmb"><br>
        </div>
      </div>
    </div>
    <div class="moz-cite-prefix">Le 09/09/2026 à 09:34, Benoit D.-M. via
      QGIS-Developer a écrit :<br>
    </div>
    <blockquote type="cite"
      cite="mid:d1989814-b719-4586-a8f6-41726bac05de@oslandia.com">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <p>Hi,</p>
      <p><span class="HwtZe" lang="en"><span class="jCAhz ChMk0b"><span
              class="ryNqvb">Currently, apart from the
              `./plugins/qgisplugin.h` file, there is no formal contract
              for the other C++ plugin APIs; if the C++ API changes,
              external plugins might break.</span></span> <span
            class="jCAhz ChMk0b"><span class="ryNqvb">We are aware of
              the API's instability and accept the risk that it may
              change in the future.</span></span><span
            class="jCAhz ChMk0b"><span class="ryNqvb"> </span></span></span></p>
      <p><span class="HwtZe" lang="en"><span class="jCAhz ChMk0b"><span
              class="ryNqvb">Furthermore, converting this API to Python
              is far from straightforward, as the Qt3D objects involved
              cannot be exposed to Python.</span></span></span></p>
      <p><span class="HwtZe" lang="en"><span class="jCAhz ChMk0b"><span
              class="ryNqvb">Have you any other concerns?</span></span></span></p>
      <p>Benoit.</p>
      <div class="moz-cite-prefix">Le 05/09/2026 à 01:17, Nyall Dawson a
        écrit :<br>
      </div>
      <blockquote type="cite"
cite="mid:CAB28Ash3oeV1dmXn_6qBeMig6ht8WfEGbPeNovWw5jZJ9gjUSw@mail.gmail.com">
        <pre wrap="" class="moz-quote-pre">On Sat, 5 Sept 2026 at 00:29, Benoit D.-M. via QGIS-Developer
<a class="moz-txt-link-rfc2396E"
        href="mailto:qgis-developer@lists.osgeo.org"
        moz-do-not-send="true"><qgis-developer@lists.osgeo.org></a> wrote:
</pre>
        <blockquote type="cite">
          <pre wrap="" class="moz-quote-pre">Hello everyone,

as you maybe know, we (Oslandia) are working on several 3D functionalities for our customers, that we aim to add to QGIS core. Among them are 3D editing capabilities.

Nevertheless, the specific QEP discussion [1] about editing, points toward a broad technical redesign that is out of scope for our current project, this is why we propose to ship the features within a QGIS C++ plugin to gather users feedback and contribute to the discussion on the 3D UI.

In order to achieve this we propose adding accessors to the 3D view that enable the creation of an external QGIS plugin in C++, incorporating the relevant features. These new API accessors will be considered unstable API and not exposed in Python.
The changes are developed in the following PR: <a
          class="moz-txt-link-freetext"
          href="https://github.com/qgis/QGIS/pull/67298"
          moz-do-not-send="true">https://github.com/qgis/QGIS/pull/67298</a>

Do you see any drawbacks to these changes?

</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">I'm not a -1, but my concern would be that we don't have any formal
policies for non-Python API. It's easy right now to determine if
you've broken the rules by just checking the changes to the sip
bindings and evaluating if they'd have broken any Python scripts. If
we introduce API that's solely for c++ plugins, how we will handle the
stable API? I can definitely see someone seeing all the unused lines
of code in future and (rightly!) killing them all. And if you scatter
"please do not remove" comments throughout the code, those will remain
forever and become a permanent road block to development, even if the
c++ plugin is dead or no longer uses that API.

My gut feeling is that you should do this via the existing way, by
developing APIs that are sufficiently well designed to be eligible to
become part of the (python) GUI stable API. If you're dead-set on the
c++ plugin API approach, then a QEP formalising some policies for this
is needed first.

Nyall
</pre>
      </blockquote>
    </blockquote>
  </body>
</html>