Development/Tutorials/Sonnet/SonnetTutorial

    From KDE TechBase
    Warning
    This section needs improvements: Please help us to

    cleanup confusing sections and fix sections which contain a todo


    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 ),
                this );
            //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