Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature request] - Brush size hotkeys #425

Open
djm2k opened this issue Aug 26, 2022 · 3 comments
Open

[Feature request] - Brush size hotkeys #425

djm2k opened this issue Aug 26, 2022 · 3 comments
Labels
fixed (hopefully)

Comments

@djm2k
Copy link

djm2k commented Aug 26, 2022

Hi Tanner, love your app. I tried out the latest build to replace Photoshop CS6 Portable as my GIF editor.

I'm opening up animated GIFs with some transparency already, and going through each frame and erasing more to fix some of the transparency, then re-saving the animated GIF.

I looked for documentation of a list of shortcuts but couldn't find one; I did find Hotkeys.bas though which makes me confident these don't exist yet.

Describe the best way to implement this.

I think these hotkeys would be a great addition and would improve my workflow:

Hotkey action Keyboard Buttons
Decrease/Increase brush size [ or ]
Brush hardness in 25% increments Shift + [ or ]
Select previous/next brush size , or .
Select first/last brush Shift + , or .
Show/Hide cross hair for brushes CapsLock

They could work with the Eraser, Brush, Stamp etc tools.

Thank you!

No, thank you! No need to list me unless I get around to implementing these 😋

tannerhelland added a commit that referenced this issue Aug 26, 2022
Relates to #425.  Thank you to @djm2k for the excellent suggestion!

[ and ] keys now modify brush size in varying amounts (same formula as Photoshop, with larger changes as brush size increases)

Shift + [ or ] modify brush hardness in fixed 25% increments (again, same formula as Photoshop).

One note here is that PD's hotkey engine does *not* support key repeat behavior (via press-and-hold), by design.  This was manually added years back because some hotkey combinations could trigger 2 or 3x before the user released the associated keys.  Unfortunately for me, key repeat behavior would actually be useful for something like a brush size toggle.  Argh.

A solution to this - particularly a hotkey-agnostic one, allowing the user to modify hotkey combinations without breaking this behavior - remains TBD.
tannerhelland added a commit that referenced this issue Aug 30, 2022
Many classes were implementing this individually; may as well merge them all (since I need both synchronous AND async versions to solve #425)
tannerhelland added a commit that referenced this issue Aug 30, 2022
...on the main paintbrush tool.  Other paint tools will receive this support soon!

Relates to #425.  Thank you to @djm2k for the excellent suggestion.
tannerhelland added a commit that referenced this issue Aug 30, 2022
Relates to #425

Still TODO is clone stamp tool, but it's a little more involved due to the "dual cursor" nature of the tool
@tannerhelland
Copy link
Owner

Hello @djm2k . Thank you so much for this great feature request! I apologize that it's taken me several days to reply. Implementing these hotkeys took longer than I expected 😩

The shortcut keys you suggested for brush size, hardness, and "show/hide cross hair for brushes" are now available in PhotoDemon nightly builds. Feel free to download or auto-update to the latest nightly to test them at your leisure (I hope I implemented them correctly!), or you can wait until these features arrive automatically with stable release 9.0 in September.

The most recent version of Photoshop I have is CS2 so I've used that as my reference for how these hotkeys behave in PS. I am also open to deviating from Photoshop's formula, if you think a different system could work better!

I'm also interested in any further feedback related to your workflow of hand-editing animated GIFs. PhotoDemon was originally designed as a photography-centric tool, so full animated image support is a relatively recent addition. I would be receptive to any ideas for developing/improving animation support further. (So far I've just had to guess at how animation features should work, alas.)

Paint tools are also a relatively recent addition which is why PhotoDemon's current brush engine is rudimentary. I hope to start work on a more advanced brush engine after 9.0 releases. The current plan is for the new brush engine to include different brush shapes, a proper "brush collection", and if I'm extra lucky, built-in support for Photoshop brushes. (When those features are added, I've made a note to add the previous/next and first/last brush hotkeys you suggested!)

If you need specific brush features for your workflow, please let me know and I'll add them to my roadmap.

Thank you again for this great feature request 🙏 (And it's no trouble to add you to the contributor list for the next release if you're interested! It's the least I can do as thanks!)

@tannerhelland tannerhelland added fixed (hopefully) and removed in-progress labels Sep 2, 2022
@mythter
Copy link

mythter commented Aug 21, 2024

Hello @tannerhelland. Thank you very much for this awesome tool!

Is it possible to implement continious incresing/decreasing size (or other parameters) while holding the keys? I mean know you need to press each time you want to change the parameter but I think it would be convinient if you can just press the shortcut and hold it while you get desirable setting. I hope I was able to explain clearly.

tannerhelland added a commit that referenced this issue Aug 22, 2024
Relates to #425.  Thank you to @mythter for catching and reporting!
@tannerhelland
Copy link
Owner

Thank you for this feedback, @mythter ! I have just uploaded a new nightly build that fixes this problem. You should be able to press and hold hotkeys now to trigger behavior like continuous increasing/decreasing size of brushes.

Thanks again!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
fixed (hopefully)
Projects
None yet
Development

No branches or pull requests

3 participants