poboiko created this revision.
poboiko added reviewers: Frameworks, mlaurent, ahmadsamir, dfaure.
Herald added a project: Frameworks.
poboiko requested review of this revision.

REVISION SUMMARY
  This patch adds support of different headings (essentially, HTML h1..h6 tags).
  Those might be pretty useful when formatting a rich text (I'm having KJots - 
note taking app - in mind)
  
  `QTextBlockFormat` supports `headingLevel` since Qt 5.12; however, as stated 
in the documentation,
  `setHeadingLevel` does not adjust style (font size, etc), so we have to take 
care of it on our own.
  
  It also adds a `KSelectAction` to choose between different headings.
  
  There are few behavior nuances:
  
  1. If user presses `Enter` at the end of heading line, cursor should switch 
to `basic text`
  2. If user presses `Enter` in the middle of the heading, line just breaks 
into two headings
  3. If user presses `Backspace` at the beginning of a line after the heading, 
the line is merged with the previous one (and thus becomes heading itself)
  4. The same with `Delete` at the end of heading line: the next line should 
become heading too.

TEST PLAN
  See the video of `KRichTextEditor` from `KXmlGui` (I had to add 
`format_heading_level` to rc-file).

REPOSITORY
  R310 KTextWidgets

BRANCH
  textwidget-heading (branched from master)

REVISION DETAIL
  https://phabricator.kde.org/D28854

AFFECTED FILES
  src/widgets/krichtextedit.cpp
  src/widgets/krichtextedit.h
  src/widgets/krichtextwidget.cpp
  src/widgets/krichtextwidget.h

To: poboiko, #frameworks, mlaurent, ahmadsamir, dfaure
Cc: kde-frameworks-devel, LeGast00n, cblack, michaelh, ngraham, bruns

Reply via email to