Jump to content

GSoC/2019/StatusReports/AhmedFathy

From KDE Community Wiki

UPDATE #1 . 12-6-2019

I implemented a basic re-sizable feature to the old cloning tool. It still needs fine-tuning for user-friendliness but It does work as expected. I merged that into my git branch. Using "+" and "-" , you can zoom-in and out. Using "m" you can drag the image around to reach the specific part you wish to heal. I still need to add some UI bars and stuff to have both GUI and keyboard inputs but that's easy.


Also note to self : For now, when I zoom-in the image a scrollbar doesn't appear. This is not a problem as anyway I can drag the image itself and this seems the more natural and userfriendly solution anyway not the scrollbar, but I will keep that in mind for later modification.

I will also experiment a little to know which key & mouse combination are more friendly for dragging, zooming, and so on.



Update 2 : 24-6-2019

=====

I added some more features, following my timeline.

-> I made the cloning more user-friendly, using more keyboard shortcuts. Pressing "S" key will switch to "set a cloning-start point", letting you chose where to start cloning. The cursor will change into a Red circle indicating we are in the "set" mode. -> Pressing "M" will switch the cursor color to "yellow", indicating we are in the "move" or "drag" mode. -> I also implemented a UI for zooming in and out using a side-bar.

This video shows all my modifications in action, along with a comparison with my timeline so far. https://www.youtube.com/watch?v=a6TpXO_B2g8&feature=youtu.be

Next task (I) (to be finished before 27-6) : I found some issues in the old implementation. For example, if you do some healing and resize the canvas without explicitly saving the image using the "save" button, you healing is removed and you need to start overagain. I will fix this issue in the following days.

Next task (II) ( to be finished before 30-6) : Add more user-friendliness to the brush-resizing feature.


Update 3 : 28-6-2019

============

I solved the reset-after-resize issue I talked about in the previous update. I created a slotReclone function that gets called after every resize event, that re-draws all necessary pixels, taking into consideration the difference in scaling factors. It works now perfectly as expected.

Now to task (II) from the previous updates, in addition to some UI modifications that my mentor requested during his first evaluation of my work.

minor update 1 [ Mentor requested ] : changed the move cursor to openhand - closedhand, and for movement now you need to press and grab not just move. minor update 2 [Mentor requested] : Zooming in and out can now be performed using mouse scroll and laptop touchpad using two fingers, in addition to the previous plus/minus buttons.