Le mercredi 7 août 2013 11:13:53 Aurélien Gâteau a écrit : > Hi, > > I'd like to reach a decision regarding spell checking for QTextEdit. > > It was initially a Qt5 task: > > "Allow to register a default syntax highlighter type for QTextEdit, the KDE > backend would register the spell checking one coming from sonnet as default" > > I started working on this task and put together a first patch, but then > realized it would not be enough: in addition to the syntax highlighter, > integration with QTextEdit requires context menu support to be able to > provide suggestions for spelling errors. > > I already have code which integrates Sonnet (our spellchecker component) > with QTextEdit, in the form of a helper class named (for now) > Sonnet::TextEditInstaller: > > https://git.reviewboard.kde.org/r/111912/ > > > There was a discussion on IRC two days ago regarding how transparent should > spellcheck integration with QTextEdit be, with two possible positions: > > > A. Find a way to inject spellchecking in all QTextEdit through either QPA or > our style. > > Pros: > - Completely transparent to Qt app developers > - Porting a KDE app to KF5 is only KTextEdit => QTextEdit > > Cons: > - Depends on QPA and/or style, so won't always be available depending on the > platform > - Could cause problems if spellchecking is injected in QTextEdit where it > makes no sense to provide this feature (eg. code editor) > > > B. Only provide Sonnet::TextEditInstaller, which app developers would then > have to explicitly use to add spell checking to QTextEdit in their > applications. > > Pros: > - No under-the-hood hack > - Independant from the platform as long as we have Sonnet plugins for it > - Gives more control to the app developer: for example changing the spelling > language, adding custom words to ignore, or ignoring blocks of text (think > quoted email) > > Cons: > - Requires developers to explicitly use the API, so porting a KDE app to KF5 > is KTextEdit => QTextEdit + use Sonnet::TextEditInstaller.
More on this topic, Alex Fiestas suggested a new option: C) Add spellchecking to QTextEdit itself: - Extend QTextEdit with new properties to enable spellchecking, set spellchecking language... - Add a spellcheck syntax highlighter - Extend QPA to integrate with the platform spellchecking API. Pros: - Sounds like the proper way to do it in the long run: it provides proper platform integration (Android spellchecking suggestion is not done with a context menu for example) - Could also be used to bring spellchecking to other widgets like QLineEdit? I know KMail could use this for its subject line edit, which is right now a custom one-line KTextEdit. - Less work to port KDE apps to KF5: KTextEdit => QTextEdit + calling QTextEdit::setSpellCheckingEnabled(true) Cons: - More work, not sure it can be done in time for Qt 5.2. I am tempted to say B) in the short term since it's mostly done, then C), but this could mean KDE apps would be first changed to use Sonnet::TextEditInstaller, only to drop it when QTextEdit gains the feature. Aurélien _______________________________________________ Kde-frameworks-devel mailing list Kde-frameworks-devel@kde.org https://mail.kde.org/mailman/listinfo/kde-frameworks-devel