I have a ui design with lots of buttons on various screens.
I wish to change the overall look of the ui, as one tends to do.
I want to change the shape, size, lighting, and so on of all buttons in the ui.
Do you see alternative options and workaround to achieve it?
Apart from color, this is achieved by editing every single button instance manually?
One would then save the project so that one could revert to the previous visual design and hope everything is still in sync at a later time.
I haven’t been using SS for long, but this seems like a glaring deficit for users. Probably non trivial to implement but really needed IMHO.
It seems like making the widget a component (which have names) and placing that component in the design, provides for global or group editable widgets , in effect. I will try this.
Making a button (with label) into a component does indeed provide a globally editable button type, however events don’t sees to work with these. I’m talking about a simple screen change action. If the event is assigned to the underlying button, it doesn’t work. If the event is assigned to a click on the component, it crashes SS.
If I “DETACH” the component back into a plain button again, I can assign a change of screen action the “released” (or whatever) event just fine. If I replace this button with a component button and assign the same action to the released event on the component button, SS crashes after a brief pause.
Obviously there should be no crashes, but if there is a trick to this that I’m missing, I’d love to know…
I’ve worked out that if the button you want to use as a component starting point has an event assigned to it when you perform component “create”, then the event configuration stays with the created component in a greyed out state and if you add and assign an new event to the component it leads to the crashes.
So, when creating a component, you should pre-delete any attached event configurations (which makes sense). Events should be added, defined for component instances, and work as expected.
Now the component, can be globally edited as to its visual appearance!
However, the project has to be re-opened (after saving), in order for all instances to be updated with the edited changes!
Phew, we got there.
Thanks for the feedback. Out of curiosity I tried to reproduce your crash problem by creating a button with a screen-change event and making component out of it, then adding a plus event to the instance (position X setting). No crash, maybe in your the problem came from some other aspect of the project. Btw the crash is really a problem and in the next SquareLine Studio version they’ll probably disappear at once.
What you write above btw seems to be a theme-change task. Maybe you should try theme handling, it can change colour-themes on-the-fly, no need to reload. Still they’re just local LVGL themes (not widget-class themes) so they’re best used in combination with components as you’ve already found out.