Jump to content
ronnyb

Flip X and Flip Y cursor - for object bounding boxes

Recommended Posts

Hey guys,

 

I thought it would be really convenient to add Flip controls to objects' bounding boxes. Basically what I'm proposing is to change the cursor when it hovers over the top/bottom and left/right control handles while INSIDE the bounding box - in distinction from the shear cursor which appears when hovering OUTSIDE the top/bottom and left/right control handles of an object's bounding box. Additionally, adding a modifier for duplicating (alt or option keys come to mind) would make this a slick timesaver and UI improvement and shouldn't be too hard to code. Check out the attached image to see a mock-up.

 

Cheers guys, the apps are rocking more with each release!

 

Preview:

 

AD master file: Flip cursor.zip


2017 15" MacBook Pro 14,3 w/ Intel 4 Core i7 @ 2.8 GHz, 16 GB RAM, AMD 455 @ 2 GB, 512 GB SSD, macOS High Sierra

Share this post


Link to post
Share on other sites

Did anyone get a chance to check this one out?


2017 15" MacBook Pro 14,3 w/ Intel 4 Core i7 @ 2.8 GHz, 16 GB RAM, AMD 455 @ 2 GB, 512 GB SSD, macOS High Sierra

Share this post


Link to post
Share on other sites

Hi ronnyb,

I have seen it when you posted originally but i'm not sure this will work for a couple reasons (this is just my personal opinion):

- i believe the flip command isn't used that much to justify another control on canvas - maybe this can be achieved via other way/implementation?

- it clutters/disrupts the area inside the bounding box both visually - which is never good -, and functionally (see below)

- with certain objects and tools (Node tool for example) it may cover other controls like nodes on a path in that area because it's inside the bounding box, interfering with node manipulation

- with smaller objects or when zoomed out, you may end up activating it accidentally when trying to drag the object.

...

Share this post


Link to post
Share on other sites

Really Miguel?

 

I use the Flip commands quite often.

 

It wouldn't clutter things any more than the Shear transform cursors already do. Remember, these would ONLY appear when you hover INSIDE the specified handles, not all the time, JUST like the Shear cursors work, only when one hovers in the right area does the double sided arrow appear.

 

I HATE having to leave the work area to find commands on the UI. Just kills the flow. This is so much more intuitive AND internally consistent. We have controls for EVERY OTHER basic transform on the object. Flipping is also a very basic transform control; why not?!

 

Although we don't agree on this one, thanks for your reply, Miguel...

 

Hi ronnyb,

I have seen it when you posted originally but i'm not sure this will work for a couple reasons (this is just my personal opinion):

- i believe the flip command isn't used that much to justify another control on canvas - maybe this can be achieved via other way/implementation?

- it clutters/disrupts the area inside the bounding box both visually - which is never good -, and functionally (see below)

- with certain objects and tools (Node tool for example) it may cover other controls like nodes on a path in that area because it's inside the bounding box, interfering with node manipulation

- with smaller objects or when zoomed out, you may end up activating it accidentally when trying to drag the object.

...


2017 15" MacBook Pro 14,3 w/ Intel 4 Core i7 @ 2.8 GHz, 16 GB RAM, AMD 455 @ 2 GB, 512 GB SSD, macOS High Sierra

Share this post


Link to post
Share on other sites

Really Miguel?

 

I use the Flip commands quite often.

 

It wouldn't clutter things any more than the Shear transform cursors already do. Remember, these would ONLY appear when you hover INSIDE the specified handles, not all the time, JUST like the Shear cursors work, only when one hovers in the right area does the double sided arrow appear.

 

I HATE having to leave the work area to find commands on the UI. Just kills the flow. This is so much more intuitive AND internally consistent. We have controls for EVERY OTHER basic transform on the object. Flipping is also a very basic transform control; why not?!

 

Although we don't agree on this one, thanks for your reply, Miguel...

 

I'm aware that it only appears when you mouse-over it, the problem is it's inside the boundaries of the object.

It may interfere with object manipulation. The Node tool, was a bad example because it hides the bounding box controls anyway, but for select / transforming small objects (or zoomed out objects) with the Move tool it may pose problems.

 

I also don't like to go to the context toolbar for things that can be done in canvas, but i don't believe that placing controls (even mouse-over controls) inside the boundaries of the object is a good idea unless they are being used to control the object directly (like control handles, interactive line width or shape's parametric controls).

 

I'm sure there's more ways to do this in canvas without having to place the controls inside the boundaries.

Share this post


Link to post
Share on other sites

Yeah Miguel, I see what you mean about it being inside the object bounds and then trying to move an object and flipping accidentally...

Perhaps it can be implemented by holding a modifier key that switched the Shear cursor to the Flip cursors...?


2017 15" MacBook Pro 14,3 w/ Intel 4 Core i7 @ 2.8 GHz, 16 GB RAM, AMD 455 @ 2 GB, 512 GB SSD, macOS High Sierra

Share this post


Link to post
Share on other sites

There are only a couple of reasons why I've been a little hesitant about this and was giving myself some time away to decide how I felt...

 

- Just like Miguel, I personally don't use flip very often at all... (which is quite a biggy)

- Unlike any of the current handles it would work on a click, not a drag - and that feels weird too?

 

I'm wondering if just a simple, easy shortcut for Flip X/Y would be equally as productive?

 

Thanks! :)

Matt

Share this post


Link to post
Share on other sites

I flip objects quite regularly... is that why am I always flipping' out?!  :P  Yeah I agree Matt, the clicking vs. dragging behavior IS inconsistent... maybe a modifier is the most consistent? That way we can perform ALL transform right on the object, while preventing accidental drags (as Miguel pointed out) and inconsistent default behavior (as you pointed out), since it's behind a modifier...


2017 15" MacBook Pro 14,3 w/ Intel 4 Core i7 @ 2.8 GHz, 16 GB RAM, AMD 455 @ 2 GB, 512 GB SSD, macOS High Sierra

Share this post


Link to post
Share on other sites

You can already use dragging of the resize edge handle while holding Cmd to resize about centre.  This is a fast way to reverse/flip an objects bounding box about it's centre point.  Of course, it doesn't presently snap to the original size when flipped, but that is something that could easily be added.  It would work with our present dragging model.  It would also allow you to chose whether to flip in object space, or you can reset the selection box and flip in page space.


SerifLabs team - Affinity Developer
  • Software engineer  -  Photographer  -  Guitarist  -  Philosopher
  • iMac 27" Retina 5K (Late 2015), 4.0GHz i7, AMD Radeon R9 M395
  • MacBook (Early 2015), 1.3GHz Core M, Intel HD 5300
  • iPad Pro 10.5", 256GB

Share this post


Link to post
Share on other sites

Personally I think we should do more with double-clicking. For example, double-clicking on a rotate or shear handle could reset the rotation or shear back to zero. Double-clicking on a resize handle could flip.

 

Ideally they'd act as toggles. For flip that works naturally. For rotation and shear, it'd have to remember the old values so that a second double-click could restore them.

 

(We could also use double-click on a rotation handle to hide/show the rotation centre, but I think reseting rotation is better.)

Share this post


Link to post
Share on other sites

I think Undo is what restores previous values.  Not sure that a tool should track previous state in that way as it's open to inconsistencies.

As you say - flip just works naturally.

 

There is a good argument for doing something on spread as we can offer flip in object space - for example, if your selection box is not aligned to spread, you can flip while preserving the current shear and rotation.  The flip buttons currently only work in spread space.  I do agree with MattP though, we have no concept of on-spread buttons, and I don't want to start adding them. All our on-spread handles relate directly to the selected geometry, and we strongly avoided the idea of having other widgets that float somewhere near the selection. We can however respond to double-clicks with the existing handles.


SerifLabs team - Affinity Developer
  • Software engineer  -  Photographer  -  Guitarist  -  Philosopher
  • iMac 27" Retina 5K (Late 2015), 4.0GHz i7, AMD Radeon R9 M395
  • MacBook (Early 2015), 1.3GHz Core M, Intel HD 5300
  • iPad Pro 10.5", 256GB

Share this post


Link to post
Share on other sites

Ben, perhaps the simplest solution is the best. How about this: maintain the current cursors, handles and behaviors as they are, except when a modifier is held down, at which point the cursor switches to the Flip cursor — and perhaps a UI overlay of the Flip Axis appears as well to avoid confusion — and double clicking and/or dragging the handles across the axis executes the flip.

 

2 more cents...

 

You can already use dragging of the resize edge handle while holding Cmd to resize about centre.  This is a fast way to reverse/flip an objects bounding box about it's centre point.  Of course, it doesn't presently snap to the original size when flipped, but that is something that could easily be added.  It would work with our present dragging model.  It would also allow you to chose whether to flip in object space, or you can reset the selection box and flip in page space.


2017 15" MacBook Pro 14,3 w/ Intel 4 Core i7 @ 2.8 GHz, 16 GB RAM, AMD 455 @ 2 GB, 512 GB SSD, macOS High Sierra

Share this post


Link to post
Share on other sites

We don't have any spare modifier keys though.  The only option is a simple double-click on the resize handles.  There won't be any change of cursor, or additional overlays.  The status bar will be updated with an appropriate hint though.

Resize flip will just snap when holding Cmd and the handle has been dragged within snapping distance of the opposing handle.

 

Of course, I've not made these changes yet, so we still need to see how they feel in practice.


SerifLabs team - Affinity Developer
  • Software engineer  -  Photographer  -  Guitarist  -  Philosopher
  • iMac 27" Retina 5K (Late 2015), 4.0GHz i7, AMD Radeon R9 M395
  • MacBook (Early 2015), 1.3GHz Core M, Intel HD 5300
  • iPad Pro 10.5", 256GB

Share this post


Link to post
Share on other sites

I quite like the resize snapping. Would it be an option under snap? or default behaviour?

 

It would be additional tool snapping - separate to global snapping - maybe with a context bar button for enabling it (I'm thinking of a whole load of correction or adjustment snapping that could be done when resizing, shearing, rotating, etc, flip snapping being one of them).  Much in the same way the Node tool can do snapping of its own for path nodes when global snapping is turned off.


SerifLabs team - Affinity Developer
  • Software engineer  -  Photographer  -  Guitarist  -  Philosopher
  • iMac 27" Retina 5K (Late 2015), 4.0GHz i7, AMD Radeon R9 M395
  • MacBook (Early 2015), 1.3GHz Core M, Intel HD 5300
  • iPad Pro 10.5", 256GB

Share this post


Link to post
Share on other sites

Sounds great Ben! Thanks again for considering and implementing these ideas... you guys rock!

 

We don't have any spare modifier keys though.  The only option is a simple double-click on the resize handles.  There won't be any change of cursor, or additional overlays.  The status bar will be updated with an appropriate hint though.

Resize flip will just snap when holding Cmd and the handle has been dragged within snapping distance of the opposing handle.

 

Of course, I've not made these changes yet, so we still need to see how they feel in practice.


2017 15" MacBook Pro 14,3 w/ Intel 4 Core i7 @ 2.8 GHz, 16 GB RAM, AMD 455 @ 2 GB, 512 GB SSD, macOS High Sierra

Share this post


Link to post
Share on other sites

What ever happened to this? Any chance of seeing this implemented ?

 

It would be additional tool snapping - separate to global snapping - maybe with a context bar button for enabling it (I'm thinking of a whole load of correction or adjustment snapping that could be done when resizing, shearing, rotating, etc, flip snapping being one of them). Much in the same way the Node tool can do snapping of its own for path nodes when global snapping is turned off.


2017 15" MacBook Pro 14,3 w/ Intel 4 Core i7 @ 2.8 GHz, 16 GB RAM, AMD 455 @ 2 GB, 512 GB SSD, macOS High Sierra

Share this post


Link to post
Share on other sites

Wow - I think this is one that slipped under the radar.  I'll have a look into it once we're past 1.5 MAS release...

 

So many snapping changes in 1.5, it's easy to forget a couple.


SerifLabs team - Affinity Developer
  • Software engineer  -  Photographer  -  Guitarist  -  Philosopher
  • iMac 27" Retina 5K (Late 2015), 4.0GHz i7, AMD Radeon R9 M395
  • MacBook (Early 2015), 1.3GHz Core M, Intel HD 5300
  • iPad Pro 10.5", 256GB

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×