Summary: | JJ: Simple Pan Zoom functionality for overview docker | ||
---|---|---|---|
Product: | [Applications] krita | Reporter: | Bollebib <kwadraatnope> |
Component: | Dockers | Assignee: | Krita Bugs <krita-bugs-null> |
Status: | RESOLVED FIXED | ||
Severity: | wishlist | CC: | dimula73, eduardelriceam, esdouzewa, ghevan, halla, kahncub, sven.langkamp |
Priority: | NOR | Keywords: | junior-jobs |
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | unspecified | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
Bollebib
2014-01-14 16:03:32 UTC
Yea, this has been a TODO for me for ages. The problem is that current overview docker does what I needed it to do for me when I started on it :-) And that spare time is hard to come by. I would also add the following improvements: - Change scaling to bi or trilinear to improve visual quality and clarity. The overview docker currently shows a hardly usable, aliased mess on large canvases. - Make the scaled canvas shown inside the overview docker clickable. Clicking any part of it would change the current canvas view to the click area. Click-dragging should be supported, and would work similarly to the spacebar or middle click pan. This would be useful make navigating large canvases when working at 100% zoom much easier. - Inside the overview docker, add a box representing the current canvas in the viewport. This would make further clear which area of the entire canvas one is working on. The box would have exactly the same proportions of the visible canvas in the Krita program window. - When showing the entire canvas, the overview docker would work like similar ones in commercial drawing/painting programs such as MangaStudio, OpenCanvas, PaintTool SAI. The docker could optionally be set up to show a zoomed view (100% or 200% zoom) following the cursor in real time. In this way it would work like the "Magnifier" widget in OpenCanvas which allows to draw/write with great precision even at low zoom settings. *** Bug 331096 has been marked as a duplicate of this bug. *** Dropping another idea. The overview could also show the current canvas rotation state. It could have a little compass ring with an arrow showing the canvas current north at the bottom right, that also could be used to rotate if click and drag and reset rotation if click at the centre of it. Or maybe the small box representing canvas viewport could be represented rotated with an arrow pointing to the document's north. *** Bug 330628 has been marked as a duplicate of this bug. *** Forgot to CC the bug. I just added the pan and zoom functionality to the overview docker. Git commit b99cb3fe1cab063da0202b9e6fe943b3936ab323 by Sven Langkamp. Committed on 07/09/2014 at 11:40. Pushed by langkamp into branch 'master'. make sure that the events are accepted and dragging in the overview docker doesn't sometimes move the application M +3 -6 krita/plugins/extensions/dockers/overview/overviewwidget.cc http://commits.kde.org/calligra/b99cb3fe1cab063da0202b9e6fe943b3936ab323 great additions sven,it's already much better I do have a few questions 1) is it possible to enable shortcuts that the user has configured for zoom and pan on canvas? (like MMB+drag and RMB+drag) That makes it much more natural and predictable. 2)could there be an option to keep the red rectangle in focus so that you actually zoom into the image, without actually zooming in on the canvas? That's what I originally asked for,but now I see that the overview could also be used for what you implemented. I'm not sure how to go from here,or if it would be better to keep this as is,and use this idea to improve the reference docker ,so that it can also show the current document (like the overview,in realtime) but with better zoom and pan control (those buttons and workflow are not ideal) Let me know what you think 1) I guess it would be possible if we map all the input onto the big canvas. Might be even able to paint from the docker ;). On the other hand I think it's good if the overview dockers is decoupled from the canvas input handling e.g. it's possible to use click+drag for pan while that's not possible on the canvas. Also other applications like Gimp show the same behavior. 2) I don't understand what you mean. 1) my reason for this is to not need another way of working. I find it annoying that I just can't mimick what I do on a canvas,it's natural. Any other way is also not ideal for a setup. If I need a mouse ,I need to grab my mouse,which interupts my flow. etc... I'm not saying you need to get rid of mouse scroll to zoom in,that is great for people who want it. But any way you will provide will inherently be slower then what people have already configured and are used to on a canvas-like surface. Muscle memory trumps all other considerations,imo. You mention painting inside a docker but it's precisely what I ask in this wish https://bugs.kde.org/show_bug.cgi?id=338096 Reference docker already has click+drag but that is annoying. You can only drag to zoom in,and then you have to press an awkward button to zoom out. It's very slow,very tedious ,so I would advise against this. It's one of the reasons I don't want to work with the Reference docker because it feels unnatural to me. 1b) Additionally maybe overview should also have + and - button onderneath the overview to zoom in and out, and 1:1 button and "show all" button. 2) I was asking if it was possible for the reference docker to have the current image,open in krita as an image. The overview is nice but for big images it's unreadable. And when you zoom in,you use the red rectangle which is good for an overview. But it would be nice to be able to look at your current image,in realtime, as a reference. For example: in top left corner of your workimage/drawing there is a fly. In the bottom right corner you want to draw a similar fly. The original fly is very small. If you can zoom in to that fly,and use this in a docker as a reference to draw the second fly that would be great. If you want to do this currently you need to save the image,then open it in reference docker to see it. =>it would be better if you could just have "current image" option in reference docker. Then it would work like overview (realtime,current image) but you can actually zoom in. With overview you can't use the current image as it's own reference to keep an eye on certain details. 2b) Alternatively this can also be done with the overview if there is a button to toggle between I - the red rectangle II - the contents of the rectangle II would be the actual zoom. is this more clear? SHORT version 1) Current way overview zoom (mouse) is fine,but extra option to work as a person is used to would be appreciated. Just mimick the canvas because of muscle memory. 1b) maybe extra buttons under the overview would be good (like gimp) (zoom, 1:1 , ALL) 2)Improve "reference docker" to have "overview docker"-like functionality (realtime image) or 2b) Improve "Overview Docker" to have "reference docker"-like functionality (actual zoom in,no rectangle) Git commit 2ea1cabe79b9888a58b4e850cbaa0875a91f8ef3 by Sven Langkamp. Committed on 14/09/2014 at 13:22. Pushed by langkamp into branch 'master'. Allow to have more than one zoom widget, also add an additional zoom widget to the Krita overview docker M +7 -3 krita/plugins/extensions/dockers/overview/overviewdocker_dock.cpp M +2 -0 krita/plugins/extensions/dockers/overview/overviewdocker_dock.h M +1 -1 libs/widgets/CMakeLists.txt M +28 -101 libs/widgets/KoZoomAction.cpp M +5 -0 libs/widgets/KoZoomAction.h A +134 -0 libs/widgets/KoZoomWidget.cpp [License: LGPL (v2)] A +82 -0 libs/widgets/KoZoomWidget.h [License: LGPL (v2)] http://commits.kde.org/calligra/2ea1cabe79b9888a58b4e850cbaa0875a91f8ef3 Btw, it might also be a good idea to ensure that the borders of the red rectangle never disappear when the rect goes out of the widget Here is what we have now: http://pbrd.co/1qPElsC It is quite perplexing for a user when he sees only one or two lines of the rectangle. Hm, yes, I agree with Dmitry. That would be good to have. The scaling quality of the thumbnail also needs a bit of improvement. The panning is a bit weird when you have canvas mirroring on, too :-) Showing the borders inside the widget is wrong as the real border is outside of the image and that would give a wrong indication. Might be solved by drawing the outside of the rectangle darker. Due to the fact that the image is shown untransformed in the docker some operations like rotation and panning when mirrored look a weird. It would be possible to reverse that effect, but then you have the image rotating in weird ways around the rectangle ;) I have seen that out of bounds zooming is now solved with a striped line which works great! Overview still perhaps needs a way to toggle between rectangle mode (current implementation) and zoom mode that provides a way to look,zoom and pan the image and use it as a quickreference so you can focus on something that is out of the canvas scope. |