On Thu, 22 Feb 2024 at 17:38, Valentin BUIRA via QGIS-Developer <
qgis-developer@lists.osgeo.org> wrote:
>
> Hi qgis developers
>
> My name is Valentin Buira, I'm a french student in urban planning and I'm
interested in participating in this year Google Summer of Code to improve
the graphical modeler.
>
> In particular I am interested in improving the user interface(UI) and
user experience (UX) of the graphical modeler based on my previous
experience with other node-based applications. If you are familiar with
Blender the inspiration will be obvious to you but I tried to adapt to the
identity and features of Qgis like the expression engine.
>
> You can find the proposal at the url :
https://docs.google.com/document/d/1iXHMTylTHLljfHBITfuIfJzi4_4hpQifEvj5GkM8OCc/edit?usp=sharing
>
> So far I am happy with my proposal but I'm looking for feedback and
suggestions, and also tips on the technical feasibility and the schedule of
the proposal.

Hi Valentin!

Just to start with, this looks great and it's really exciting to see
someone take this on!

I do have a couple of suggestions for you before finalising your proposal:

- I'd suggest cutting back on the scope here. There's a LOT of work here,
and a lot of complexity. I'd strongly recommend dropping the extra "quality
of life" improvements from your proposal in order to keep your life sane!
(As a bit of a hint, take for example "A unified list for every node". I
wrote a lot of this code and I would estimate it would take me at least 2
days to do this change, and that's with decades of experience in c++, Qt
and the Qt model classes. I just don't think it's realistic that this could
be done in the same week as testing + other things). You could easily drop
the quality of life changes and still have a very compelling proposal.

- Be aware upfront that there's a lot of complexity in the model design and
widget handling. In early 3.x releases ALL of this code was done in Python,
and there were Python based interfaces for plugins to expose custom widgets
for algorithm parameters. Because of stable API restriction, we CAN'T break
those interfaces and as a result the current code is a complex interplay of
c++ underlying bits with Python glue on top to keep the old interfaces
working as originally designed. It's not pretty at all, but unfortunately
it can't be cleaned up prior to 4.0 when we can safely remove the old
interfaces. Suffice to say, there's going to be a LOT of head scratching
when reading over this code and trying to understand how it works
together. 🙀

- Something to consider in your UI designs is that there's two different
"types" of expression based values for parameters. One (which you've
already covered) is the "precalculated expression" type, where an
expression is evaluated once before running the tool and the result used as
the value for that parameter. The other is "data defined" parameter values,
where the parameter value is evaluated (or taken from a field) once for
every feature passing through the algorithm. These are distinct, different
concepts, and care will need to be taken to expose them as such in a
user-friendly way.

- Care would need to be taken in handling existing models. I think the new
interface would have to be opt-in, as the visual arrangement of models
often takes a lot of work and there's definitely users out there who have
spent considerable time in arranging their models in a logical way. If we
force everyone to use a new visual form for the designer where algorithm
blocks are different sizes and the flow appears different, it will be quite
frustrating for these users.

Do you already have a mentor planned for this work?

Nyall

>
> On a side note, I will be attending the local code sprint in Grenoble the
26 mars. Where I will also discuss this proposal in person.
>
> Best regards,
> Valentin Buira
>
>
> _______________________________________________
> QGIS-Developer mailing list
> QGIS-Developer@lists.osgeo.org
> List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer
_______________________________________________
QGIS-Developer mailing list
QGIS-Developer@lists.osgeo.org
List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer

Reply via email to