Jump to content

GSoC/2025/StatusReports/Rossr

From KDE Community Wiki

Selection Action Bar

KDE’s Krita does not have a floating action bar for selection layers. When users select a layer in Krita, there is no UI to display common selection actions. This makes it difficult for non-keyboard users to switch between modes and is not intuitive for new or experienced user interaction.

The idea is to create a toggleable floating toolbar that will allow users to switch between commonly used actions without having to read deep into user manuals or require a keyboard shortcut. This feature would improve accessibility and the overall experience of users by introducing an ‘on-screen’ toggleable shortcut for common selection actions.

My goal is to develop the UI, test rigorously, join the community, get user feedback, and create documentation through user guides and tutorials.

Caption

Mentors

Emmet O'Neill

Work report

Week 1

Week 1 Blog

  • initial blog post
  • review and validate implementation
  • learned how to build Krita outside of QtCreator and use Docker

Week 2

Week 2 Blog

  • recreated Assistant Tool
  • learned to qDebug() and grep -rn "search" to find code

Week 3

Week 3 Blog

  • created base UI of floating bar with QPainterPath

Week 4

Week 4 Blog

  • learned about custom icons for buttons
  • created a draft MR to keep track of changes

Week 5

Week 5 Blog

  • created new classes to hold floating bar UI
  • improved UI appearance
  • implemented toggle to turn on and off the UI

Week 6

Week 6 Blog

  • implemented buttons to activate selection action (select all, deselect, copy to new layer)
  • learned QPushButton, connect(), QSLOTS and QSIGNALS

Week 7

Week 7 Blog

  • added icons to buttons
  • built reusable template pattern for button creation

Week 8

Week 8 Blog

  • added dragging interaction
  • learned how to handle mouse events: mousePressEvent, mouseMoveEvent, mouseReleaseEvent

Week 9

Week 9 Blog

  • improved dragging interaction by adding boundary constraints to prevent toolbar from being dragged off canvas, ensuring accessibility
  • learned about geometry checks for boundaries and user interface

Week 10

Week 10 Blog

  • repositioned toolbar dynamically under the initial user selection
  • learned to track selection events and implement UI updates with image space and canvas space

Week 11

Week 11 Blog

  • wrote user documentation in Krita's reference manual
  • refactored code to improve maintainability, readability, and support future contributions

Week 12

Week 12 Blog

  • feedback from mentor
  • fixed any blockers
  • updated final documentation
  • reflected on journey
  • made future plans

Future Plans

My plan moving forward is to:

  • Continue refining the Selection Action Bar based on user feedback
  • Add customization options to the Selection Action Bar
  • Stay involved through ownership of feature creation, bug fixes, community participation, and feature proposals with the Krita and KDE community

Links

Blogs on Planet KDE

Blog Homepage

Related Merge Requests

Code MR

Documentation MR

Related Issues

https://krita-artists.org/t/selection-action-bar/48767

Contact

[email protected]

@rossr:matrix.org