Orama-Interactive / Pixelorama

Unleash your creativity with Pixelorama, a powerful and accessible open-source pixel art multitool. Whether you want to create sprites, tiles, animations, or just express yourself in the language of pixel art, this software will realize your pixel-perfect dreams with a vast toolbox of features. Available on Windows, Linux, macOS and the Web!
https://orama-interactive.itch.io/pixelorama
MIT License
7.01k stars 380 forks source link

Add flip X and Flip Y, and Rotation (90, 180, 270) buttons to BaseTool #988

Closed RorotoSic closed 6 months ago

RorotoSic commented 7 months ago

This will be really useful for custom brushes. (rather than creating 8 different brushes, it will be just one) ^^

image

OverloadedOrama commented 7 months ago

This is a very nice addition and it seems very helpful! But I am not sure if this is the best way to implement it UI-wise.

I am not sure if these options should be there. It might be a good idea to add a new "Brush settings" popup where these settings can be placed. This means that users will have to do more clicks in order to make these changes, but the UI will be more clean, tidy and simple. I fear that the current way may make the UI too bloated.

For example, Krita has an "Edit brushes" button at the top of the UI. In Pixelorama, it could be placed in the Global Tool Options (next to mirror, pixel perfect and dynamics buttons). This could also help us in the long run if we decide to make the brush system even more powerful and configurable in the future.

Even if we decide that they should remain as they are, I have some notes:

RorotoSic commented 7 months ago

I think it's always best to reduce the number of clicks as much as possible, especially in art software, to keep the user in the creative flow. I also thought about putting buttons on the tool's global options, but they will aplly modifications on all tools like "pixel perfect" do and its better to have each tools their own modificiations. (Personaly in krita i only use the "Edit brushes" to CREAT new brush , never to update one during painting process, but it can be just me.)

ezgif-1-659ce0a639

OverloadedOrama commented 6 months ago

I think the expand button works fine. We may need to reconsider the UI in the future if we add more options, but for now I think it should be fine. By the way, we have a custom CollapsibleContainer node (which can be added by adding a new node in the Scene tree and searching "CollapsibleContainer"), and you can put the elements that can be collapsed/expanded as children of that node, without needing to add any extra code for hiding/unhiding. You can also add text to the CollapsibleContainer node, perhaps something like "Rotation options".

As for the radio button, I don't really have a strong opinion. I feel like it makes more sense this way, but I'm not totally against your original implementation, so feel free to choose which implementation you prefer.

RorotoSic commented 6 months ago

I think as radio buttons seems to be more common we can keep them. here is the current state (link for good video quality) https://github.com/Orama-Interactive/Pixelorama/assets/70805756/f2767771-af66-4944-be64-8576ecfdb197

ezgif-2-c5b97f7762

RorotoSic commented 6 months ago

"signal flip_rotated(flip_x, flip_y, rotate_90, rotate_180, rotate_270) " was not t a conflict before , i dont know why sudenlly it is while nothing has changed in my code

OverloadedOrama commented 6 months ago

Nothing to worry about, it's because I made a change to the master branch and it happened to affect that specific line. I fixed the conflict now.