realthunder wrote: ↑Sun May 17, 2020 1:47 pm
I was explaining why I choose not to include property with 'Hidden' status bit. Because the property view will populate the linked object's property if a link is selected, as shown in the screencast below with green font (which is broken in the upstream, and fixed in one of my pending PR). Unless, the link itself contain a property of the same name, but not hidden. So depending on the 'Hidden' status bit of Link's property, the property view may either show the link's property, or the linked object's property. The difficult part is that they both have the same name. The property population is done in PropertyView::onTimer(). It is possible to include both properties, but requires more complex data structure in an already not so simple algorithm. And the PR I submit can't really deal the complexity introduced by linked property. As shown in the screencast, a manual refresh is required to show back the green linked property.
Unfortunately I continue to fail to fully understand the issue. I think that there must be something that it is obvious for you and that you are not saying that is not obvious for me. I would appreciate if you could take the time to try to understand what this is.
First sentence
I understand that you choose not to include the properties with 'Hidden' status bit (not PropHidden, but Hidden). From this statement I understand there must be an underlying problem that you are trying to solve.
Second sentence
I understand that, you chose to do this because the property view would populate the linked object's property if a link is selected.
When you say "the linked object's property",
I am not sure if you refer to a specific property or you mean the properties.
This is an example of a link:
- Screenshot_20200518_152322.png (49.54 KiB) Viewed 1165 times
The link is selected. I see the linked object properties.
I see a contradiction in that it appears that the wanted behaviour is to see the liked object properties. You indicate that you chose to exclude the "hidden" properties in the list because the linked properties will be populated (as if this were a problem).
I am beginning to think that maybe you are using the "hidden" status for something specific in the link implementation that goes beyond wanting or not wanting to show a property. Am I right? If yes, could you please elaborate?
Third sentence
Unless, the link itself contain a property of the same name, but not hidden. So depending on the 'Hidden' status bit of Link's property, the property view may either show the link's property, or the linked object's property.
I see that you introduce the aspect of properties having a same name. I can understand that properties having a same name may be an issue. But I am not sure I understand why a link will have a property with the same name hidden and not hidden. I could understand that a link and the linked object have a property with the same name (for example "Label" in the example above, the Link has "Cube001" and the Linked object has "Cube"). However, I do not see why one of them would be "Hidden". Conversely, I can understand that Cube will have several hidden properties (PropHidden) not shown (because they are not relevant to the user for editing purposes) and Cube001 may well have several such feature too.
At this point, I am beginning to think that you may be using the "Hidden" status bit for something that has a different meaning that "do not show it to the user because it is not relevant for him". This might be the reason why I cannot understand your argument.
My understanding is based in that you mark a property "Hidden"
when it is not relevant for the user editing the object. However, this is in my understanding the same for a link and linked object. This is, if the decision is to show the properties of a linked object in the link (for example to be able to change the original size directly from the link, as in the cube above), then it should show the same properties that were not hidden in the linked object in the link.
If this is like this,
save for the issue of the "same name", the PropHidden/Hidden mechanism described by Werner should work fine. If this is not the case, I would appreciate understanding it.
Regarding the issue with the "same name", if hiding is used to avoid duplicated property names in the property model, this might be an indication that it may not be the right mechanism.
I do not want to extend myself further. I think you will be able to understand why I am not understanding you from the text above. Hopefully I will read your answer in a day I am bright enough