summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLászló Németh <nemeth@numbertext.org>2014-01-24 12:15:54 +0100
committerLászló Németh <nemeth@numbertext.org>2014-01-24 12:20:03 +0100
commit52d4203a312e9aecac9bffdc2afe93471b88a9dc (patch)
treec2bb75e5fdeb6986778feb77a878d529889ff7f8
parent800857bcbb57bca59818660e2c8cfad12ad2243a (diff)
fdo#56954, fdo#73868 grammar checking UI fixes
Change-Id: I20577ba3bfbd12a89d34892a8f32d9c2b741f4dd
-rw-r--r--cui/source/dialogs/SpellDialog.cxx3
-rw-r--r--sw/source/ui/lingu/olmenu.cxx39
2 files changed, 26 insertions, 16 deletions
diff --git a/cui/source/dialogs/SpellDialog.cxx b/cui/source/dialogs/SpellDialog.cxx
index e11ed6b0906d..323c0b7b33ff 100644
--- a/cui/source/dialogs/SpellDialog.cxx
+++ b/cui/source/dialogs/SpellDialog.cxx
@@ -621,6 +621,9 @@ IMPL_LINK( SpellDialog, IgnoreAllHdl, Button *, pButton )
{
pSpellErrorDescription->xGrammarChecker->ignoreRule( pSpellErrorDescription->sRuleId,
pSpellErrorDescription->aLocale );
+ // refresh the layout (workaround to launch a dictionary event)
+ aXDictionary->setActive(sal_False);
+ aXDictionary->setActive(sal_True);
}
}
catch( const uno::Exception& )
diff --git a/sw/source/ui/lingu/olmenu.cxx b/sw/source/ui/lingu/olmenu.cxx
index d93b0f841043..83d281351247 100644
--- a/sw/source/ui/lingu/olmenu.cxx
+++ b/sw/source/ui/lingu/olmenu.cxx
@@ -88,6 +88,7 @@
#include <com/sun/star/linguistic2/SingleProofreadingError.hpp>
#include <com/sun/star/linguistic2/XLanguageGuessing.hpp>
#include <com/sun/star/linguistic2/XSpellChecker1.hpp>
+#include <com/sun/star/linguistic2/DictionaryEventFlags.hpp>
#include <com/sun/star/uno/Any.hxx>
#include <com/sun/star/system/SystemShellExecuteFlags.hpp>
#include <com/sun/star/system/SystemShellExecute.hpp>
@@ -564,7 +565,6 @@ m_aInfo16( SW_RES(IMG_INFO_16) )
m_nGuessLangPara = m_nGuessLangWord;
}
- EnableItem( MN_IGNORE_WORD, false );
EnableItem( MN_ADD_TO_DIC, false );
EnableItem( MN_ADD_TO_DIC_SINGLE, false );
@@ -740,26 +740,33 @@ void SwSpellPopup::Execute( sal_uInt16 nId )
else if (nId == MN_IGNORE_SELECTION)
{
SwPaM *pPaM = m_pSh->GetCrsr();
- if (pPaM) {
- if (m_bGrammarResults) {
- try
- {
- m_xGrammarResult.xProofreader->ignoreRule(
- m_xGrammarResult.aErrors[ m_nGrammarError ].aRuleIdentifier,
- m_xGrammarResult.aLocale );
- }
- catch( const uno::Exception& )
- {
- }
- }
+ if (pPaM)
m_pSh->IgnoreGrammarErrorAt( *pPaM );
- }
}
else if (nId == MN_IGNORE_WORD)
{
uno::Reference< linguistic2::XDictionary > xDictionary( SvxGetIgnoreAllList(), uno::UNO_QUERY );
- linguistic::AddEntryToDic( xDictionary,
- m_xSpellAlt->getWord(), sal_False, OUString(), LANGUAGE_NONE );
+ if (m_bGrammarResults) {
+ try
+ {
+ m_xGrammarResult.xProofreader->ignoreRule(
+ m_xGrammarResult.aErrors[ m_nGrammarError ].aRuleIdentifier,
+ m_xGrammarResult.aLocale );
+ // refresh the layout of the actual paragraph (faster)
+ SwPaM *pPaM = m_pSh->GetCrsr();
+ if (pPaM)
+ m_pSh->IgnoreGrammarErrorAt( *pPaM );
+ // refresh the layout of all paragraphs (workaround to launch a dictionary event)
+ xDictionary->setActive(sal_False);
+ xDictionary->setActive(sal_True);
+ }
+ catch( const uno::Exception& )
+ {
+ }
+ } else {
+ linguistic::AddEntryToDic( xDictionary,
+ m_xSpellAlt->getWord(), sal_False, OUString(), LANGUAGE_NONE );
+ }
}
else if ((MN_DICTIONARIES_START <= nId && nId <= MN_DICTIONARIES_END) || nId == MN_ADD_TO_DIC_SINGLE)
{