Development/Tutorials/Sonnet/SonnetTutorial

    From KDE TechBase

    TODO

    Spellcheck action

    yourkmainwindowrderivative.h:

    #include <sonnet/dialog.h>
    
    ...
    
    private slots:
    ...
       void spellcheck();
       //void spellcheckDone();
       //void spellcheckShow(const QString&,int);
       //void spellcheckReplace(const QString&,int,const QString&);
       //void spellcheckStop(); 
       //void spellcheckCancel();
    ...
    private:
       Sonnet::Dialog* m_sonnetDialog;
    

    yourkmainwindowrderivative.cpp:

    YourKMainWindowrDerivative::YourKMainWindowrDerivative(...)
       : KMainWindow(...)
       ...
       , m_sonnetDialog(0)
    
    ...
    
    void YourKMainWindowrDerivative::setupActions()
    {
       ...
       KStandardAction::spelling(this,SLOT(spellcheck()),actionCollection());
       ...
    }
    
    ...
    
    void KAider::spellcheck()
    {
       if (!m_sonnetDialog)
       {
           m_sonnetDialog=new Sonnet::Dialog(
               new Sonnet::BackgroundChecker( this ),
               0 );
           //connect signals to slots:
           connect(m_sonnetDialog,SIGNAL(misspelling(const QString&,int)),
               this,SLOT(spellcheckShow(const QString&,int)));
           //and so on:
           ...
       }
    
       if (!m_view->selection().isEmpty())
           m_sonnetDialog->setBuffer( m_view->selection() );
       else
           m_sonnetDialog->setBuffer( m_view->toPlaintText());
    
       m_sonnetDialog->show();
    }
    
    //other slots implemetation
    ...
    

    see Sonnet::Dialog API and Sonnet namespace page

    On-the-fly (inline) spellcheck

    stub