Custom look and feel component ID
-
@d-healey said in Custom look and feel component ID:
I wonder if the issue is something to do with this loop in the drawWithGraphics function?
g->getDrawHandler().flush(); DrawActions::Handler::Iterator iter(&g->getDrawHandler()); while (auto action = iter.getNextAction()) { action->perform(g_); }
Thank You Sir David, For Investigating This :)
I Made This Thread, Reporting This Back In December
https://forum.hise.audio/topic/3375/execution-timed-out -
@Natan said in Custom look and feel component ID:
@Natan said in Custom look and feel component ID:
@Christoph-Hart I reported This Execution Time Out Before
So It Was LAF Mistake?I Made This Thread, Reporting This Back In December
https://forum.hise.audio/topic/3375/execution-timed-outOk, but I don't understand what's the point. Lot's of people reports lot's of things, you're not the only person for this :D
Are you expecting a "Thank You for your report"? :D
Or are you expecting a "Sorry, you reported this last december but it's just been fixed"? :D :DAlso as I see, you write the same thing so many times, and you like to do it :) Just like your magical report, in this thread you write it again and again :D Just an advice, don't do that, it won't fix the issue or won't make you special....
Just be more humble and thank Christoph for this great software ;)
-
@Fortune You Don't Get It :) i Was Waiting For This Fix, And With Dave's Investigation, It Fixed Now :)
You Don't Get It, Man :) I Was Prepared For Sleeping, And Now I'm Building The Latest Version :)
Yeah, I Gifted Already :) -
@Natan Ok after building, good night then :)
But again, I think actually YOU don't get it :D :D you are not the only person who wait for fixes or features ;) -
I‘d say Nathan got the timeouts before it was cool...
-
@Christoph-Hart It was A Nightmare Christoph
I Tried To Explain This In Another Thread, But No One Get It At That Time I Felt Like E.T
Thank You Legend -
The text property of
obj
when applying LAF to combo boxes holds the text of the combo box's value, rather than the text property. This means we have no way to distinguish between different combo boxes (unless we get clever/hacky with some of the other properties). Could we get the text property of the combo box added to its obj? -
@d-healey shouldn’t be hard to fix, I’ll have a look sometime today...
-
@d-healey I just got an idea. What do you think of having a
misc
property for all the components, that is not linked to anything? So it would be just something we can get for any purpose we’d like, thinking of LAF customisation at the top of the list of course.
So just a complementary text property... sounds cool enough? -
@ustk I think we should get @Christoph-Hart opinion
-
I think it might be better to actually include the ID of the component as
obj.ID
- this way you can either use a lookup table or clever name mangling to figure out what path to take in the LAF function.Adding a new property seems a bit verbose to me as it pops up on every component's property editor.
-
@Christoph-Hart I totally agree, but how can the ID be gathered? I tried to add it back in time but then you told me we cannot (easily?) reach the ID from a custom LAF... So I imagine it is not my level of knowledge to implement it, unfortunately
I triedobj->setProperty("id", s.getComponentID());
with no luck -
It would have to go through the JUCE::Component::setName() property - the scripting engine passes the ID as name to the component and the LaF fetches it with Component::getName() and then writes it to the obj parameter.
-
@Christoph-Hart Alright I'll give it a go...
One question though, you said once that accessing variables outside from the LAF is bad. So what about accessing a lookup table like you mentioned right above? assuming the lookup table is declared outside of course. Or should we declare it inside? -
@ustk said in Custom look and feel component ID:
@Christoph-Hart Alright I'll give it a go...
One question though, you said once that accessing variables outside from the LAF is bad. So what about accessing a lookup table like you mentioned right above? assuming the lookup table is declared outside of course. Or should we declare it inside?I've been accessing variables (consts) outside of the LAF functions without issue. I think it might be that Christoph meant you can't pass in additional parameters to the LAF functions... ?
-
@d-healey have you tried multiple instances?
- create a plugin instance with a laf that refers to an outside variable
- create a second instance
- leave both windows open and delete the first instance
This scenario was the most vurnerable setup I could find when debugging laf crashes.
-
@Christoph-Hart said in Custom look and feel component ID:
It would have to go through the JUCE::Component::setName() property - the scripting engine passes the ID as name to the component and the LaF fetches it with Component::getName() and then writes it to the obj parameter.
Oh, is this why
text
is automatically set from the ID when creating the component?getName()
already returns thetext
property, this does not give the ID. Or is there something I don't understand? (what a question Greg... of course you don't...)obj->setProperty("id", "Please fill in the form :)"); obj->setProperty("text", s.getName());
@d-healey Yeah
I've been accessing variables (consts) outside of the LAF functions without issue.
Me too, but this goes back to when I had some crash issues to track down, the access to outside variable was a lead from Christoph. So even if it apparently works likes this, I'm afraid of instability we could prevent... You know, when Christoph says "be careful with this", I quickly get shaking legs
-
@Christoph-Hart said in Custom look and feel component ID:
@d-healey have you tried multiple instances?
- create a plugin instance with a laf that refers to an outside variable
- create a second instance
- leave both windows open and delete the first instance
This scenario was the most vurnerable setup I could find when debugging laf crashes.
I hadn't tried in an exported plugin, just in HISE. I shall adjust my script accordingly!
-
@Christoph-Hart I just made a little test with external variables, following your steps. I found no issues. I was testing an SVG path in an external variable, I tried in Ardour and Qtractor, both seemed stable after I deleted the first instance.
HiseSnippet 1770.3ocsXs2ZbaDDWmiUI9ZuRBzO.h7WmgqFsqV8JgPb7qfo4gINMTZoDj0s2cpVmzgNcN0Dx2s9QpeCZmYeHsx2ESvPBXxs6ryL+lW6NiNqpLkubYYkUucd20K3V89A6yutnd1gyRxJrN8HXe67jI07k0VGb8hjkK4is506du.I2amssD+6ee1AI4IEo71srrdeYVJ+kYyypa28r8+kr77SRFyeW1biSy1+zzxhCKyKWAP4d1tVKRRuLYJ+0I3w1x1p22c73r5xpyqS.vX0a6CJGe84yJ+Xg77uOaY1E4bbAw5bPPxsOoLeLhXbWqCmkkO9LsIuzBjxYsNf6Ic.+j8qxFm0reqi3ABBNsbX5O5s0sAOhI7b+5gWOC3ssDdOz97zprE0sTPr881mVTyqlj.g.SXIOq0VOXf8gkvIJp2adxk7SpfEMbLLv0cjiuq6tOYP+A8q3ScVd0ziRpSDqU+14oN+Ag3Nh3FOxmLhDFOhx7FEDNh3yFQI3+GJV5FA+QE+QoTbKpq+HBC3k4iKiifcXhcnTFtCHPTXDOO4w6PTHeP.j.o36HZhq2Hpm6nXpV2cAGp5PfwHkhQV8.8yDBCfDEn3K+c.nGVnBOnL7i0KH9iFzWwjRj9LCQhPfBPFONUvKIxfWpGQpBzn.gF.FkGZTTRr1JDFVnORLVXEnSgDpDIJH3WlbxLII3Sa5DhFmBWYnqfOi3BI1sEOtspDwJIhnPNtQj.sC5q7ajPhYPPoWTNj.2NJkEqUpA0lfma.50i6RDLLweADjnHoANtejNmPHWRflXH5K7M4LNTI0l7ofN7FEIhwJdcij7RktTWBRTGIB8zBFrcSQqS3BB2.rHxrn0MFCBccAhnRCQg2vWGPvifBm0Mbph0TYBhtBQnLYzRRxqMJphwcx.BCahbXLUnvVPKyzfyIi7Jc1vruNcqMsrwSvTYoJH0jQSQGGb.rTLnSofqqzivnnGoS8C5LznR3sj.no1iBmlBng3EKSKjfPV3FGqPqnD2PLlBVFX0BVdOgvQA5PF5IdLMhi8z07hqNXFdA0sSs6KbsdrNwGojZVJuNTpsftvQljotRUj14aZLM4+wxTi1KMkdPQbQdknVxZOnRxAraH4a59wXuP1AFgM8JRrppLvLnqyIoMhlYluHJvT2a0voJUCjHUSqgsvlToH7VMOs2BYFr9lK3ITY4qPolEFtRw51ArLhwU7ZUBHDtTMnIbIC8ThQ9fwIT5f0jNzgcL0l0jNHSoP2J9P.SJPw6NgdZXgF.KtiAfu0p7E36U9dlu1Q7zuKfX.KBTvF7Sp6DWSr5mQ82.dz20JuHFr8VSnKoNFtLTXRVmYq7apqKMe2.ubIn4wqtu3Hy7TQKMsX20ixxWUjYLDCSWkhX77IyHKPuHfoeWUUE0j1IdhCdmW9n7MylkMKndJuoom3HiFXTs.HylwRnldLzIDqU9Y11g1Yopb6zph70o1NR9h8eIt0KVd8CMp4UkNc.gPHx6FzveNne2DB+l9DXshhF0fc89cE55pXMta2LN510VPzlEoAp6hHEgtBccUrN+C5a5oP2HVG39mh1fg4SVV6rHodFzIrtY5zJNzu+YvlCwlmQp6kWlLFZvdN1z7PUyyHQGGsPtJoxAFpBjywESyJ3Jw7h7xKRxksr+xxxKedw3S377gx1xAF1CZMOaIz09IqJRqyJKF9nwUIe7ckSmlyOXUccYwiF4LQSb5HmxK9qcGz+SnxcvE6cUR9JtySepiqyyblt2RdsbnqgHwrZ9b4RxtNO9VHSk1iCbjIv7bB6GscgB2KArF7.ed2mnwhSYwqKq4uoX3t8+T+c5+49N2jzjIajF5oqJyy4UajLNFY0sw3vhUyufWMxQX4MGDlmp6.a1e4A1LmmLUF3MNXYwoEY0uYAu3KMFmkJaAGnSgJ3n0hw49Q03bxnmU1Xbfa4Bhk.xliTa8qmhYSZAAxDzyBdUcFZB8NheELxsbNwcrOhu7x5xEhyNeQYAhfd2+qPs+ciJ+m2t+0MK1+22uMC.+PALZLKNHjF6aYjZHoDEDyb8YwVeLab8rVaHa+Y7roypM2wZ8obgYsKGuJOot6.33WcPQ.BxclzEmlsXYV80leUhuISk+0B2GZeVVc5rMi2s1.dgv52Z7p9FGCrOdxDdZcKX219je6a+Gzv5skqpyJl9pj5pLHMy90qleNjzjxAjTTvywBwdagkLx0t3ZzybNuXrXw+A+SQjfq6oHRzDslmjVU9gTYgF9UTtuXG.SEhOlzN1uBW6zTeYa6tmq07rwYeHMEcE+Lf8MyC8Nvi2cfG1cfG+6.OA2AdBuC7Dcq7feWsmuptbtrLA13riE2y0q2wEIPVlHiz5+AlYtqq
-
Alright, it might be possible that I've fixed this already lol...