X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fuisupport%2Fmultilineedit.cpp;h=133a24338dd3e4b95ef7e83cba7e46fe8478b01d;hb=1f2784bfa1c1ce90defa32f13c78afd72c227bfd;hp=31335d1fa651800e0a1d92281a91b7a42e0fb209;hpb=8eab2bd6ca5c9b8de11ed1db6d0900d9c9360a5d;p=quassel.git diff --git a/src/uisupport/multilineedit.cpp b/src/uisupport/multilineedit.cpp index 31335d1f..133a2433 100644 --- a/src/uisupport/multilineedit.cpp +++ b/src/uisupport/multilineedit.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2016 by the Quassel Project * + * Copyright (C) 2005-2018 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -22,10 +22,6 @@ #include #include -#ifdef HAVE_SONNET -# include -#endif - #include "actioncollection.h" #include "bufferview.h" #include "graphicalui.h" @@ -54,8 +50,9 @@ MultiLineEdit::MultiLineEdit(QWidget *parent) enableFindReplace(false); #endif -#ifdef HAVE_SONNET - new Sonnet::SpellCheckDecorator(this); +#if defined HAVE_SONNET && !defined HAVE_KDE + _spellCheckDecorator = new Sonnet::SpellCheckDecorator(this); + highlighter()->setActive(highlighter()->checkerEnabledByDefault()); #endif setMode(SingleLine); @@ -90,15 +87,39 @@ MultiLineEdit::~MultiLineEdit() { } -#if defined HAVE_KF5 || defined HAVE_KDE4 -void MultiLineEdit::createHighlighter() + +#if defined HAVE_SONNET && !defined HAVE_KDE +Sonnet::Highlighter *MultiLineEdit::highlighter() const +{ + return _spellCheckDecorator->highlighter(); +} + + +void MultiLineEdit::setSpellCheckEnabled(bool enabled) +{ + highlighter()->setActive(enabled); + if (enabled) { + highlighter()->slotRehighlight(); + } +} + +void MultiLineEdit::contextMenuEvent(QContextMenuEvent *event) { - KTextEdit::createHighlighter(); - if (highlighter()) - highlighter()->setAutomatic(false); + QMenu *menu = createStandardContextMenu(); + menu->addSeparator(); + + auto action = menu->addAction(tr("Auto Spell Check")); + action->setCheckable(true); + action->setChecked(highlighter()->isActive()); + connect(action, SIGNAL(toggled(bool)), this, SLOT(setSpellCheckEnabled(bool))); + + menu->exec(event->globalPos()); + delete menu; } + #endif + void MultiLineEdit::setCustomFont(const QFont &font) { setFont(font); @@ -229,16 +250,6 @@ void MultiLineEdit::setEmacsMode(bool enable) } -void MultiLineEdit::setSpellCheckEnabled(bool enable) -{ -#ifdef HAVE_KDE - setCheckSpellingEnabled(enable); -#else - Q_UNUSED(enable) -#endif -} - - void MultiLineEdit::setPasteProtectionEnabled(bool enable, QWidget *) { _pasteProtectionEnabled = enable;