Bug 181607 - wrong 'ignore all' action on spell checker
Summary: wrong 'ignore all' action on spell checker
Status: CONFIRMED
Alias: None
Product: kdelibs
Classification: Frameworks and Libraries
Component: kspell (show other bugs)
Version: 4.1
Platform: unspecified Linux
: NOR normal
Target Milestone: ---
Assignee: Zack Rusin
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-01-22 16:44 UTC by Cristóvão Sousa
Modified: 2009-06-15 22:59 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Cristóvão Sousa 2009-01-22 16:44:52 UTC
Version:            (using KDE 4.1.3)
OS:                Linux
Installed from:    Unlisted Binary Package

Bug tested in spell checkers at Kate 3.1.3, Konqueror 4.1.3 and Kile 2.0.80 :

Spell checker action 'Ignore All' do just the same as the 'Add to Dictionary' action:
the misspelled word will be added to '.aspell.en.pws' and '.config/enchant/en.dic' dictionaries, and will no more (at any application) be considered a wrong word.


How to Reproduce:

- type a misspelled word, like 'qwertyuiop', in Kate;
- run spell checker and click 'Ignore all' when prompted about that word;
- close and reopen Kate;
- type the same misspelled word;
- run spell checker.

The misspelled word will now be a valid word.
Check the dictionary files:
$ grep qwertyuiop ~/.aspell.en.pws
$ grep qwertyuiop ~/.config/enchant/en.dic


Expected Behaviour:

The 'ignored all' misspelled word should not be added to the dictionary, it should be ignored only in the current spell check run.
Comment 1 Dario Andres 2009-06-15 22:55:40 UTC
Here using:

Qt: 4.5.1 (qt-copy  971295)
KDE: 4.2.91 (KDE 4.2.91 (KDE 4.3 >= 20090609))
kdelibs svn rev. 982117 / kdebase svn rev. 982118
aspell 0.60.6, enchant 1.4.2
on ArchLinux i686 - Kernel 2.6.29.4

I can confirm this bug
Comment 2 Dario Andres 2009-06-15 22:59:02 UTC
Indeed:

void Dialog::slotSkipAll()
{
    //### do we want that or should we have a d->ignoreAll list?
    Speller speller = d->checker->speller();
    speller.addToPersonal(d->currentWord.word);
    d->checker->setSpeller(speller);
    d->checker->continueChecking();
}