Development/Tutorials/Sonnet/SonnetTutorial: Difference between revisions

From KDE TechBase
(s/0/this/)
m (Text replace - "<code cppqt>" to "<syntaxhighlight lang="cpp-qt">")
Line 3: Line 3:
==Spellcheck action==
==Spellcheck action==
yourkmainwindowrderivative.h:
yourkmainwindowrderivative.h:
<code cppqt>
<syntaxhighlight lang="cpp-qt">
  #include <sonnet/dialog.h>
  #include <sonnet/dialog.h>
   
   
Line 22: Line 22:


yourkmainwindowrderivative.cpp:
yourkmainwindowrderivative.cpp:
<code cppqt>
<syntaxhighlight lang="cpp-qt">
  YourKMainWindowrDerivative::YourKMainWindowrDerivative(...)
  YourKMainWindowrDerivative::YourKMainWindowrDerivative(...)
     : KMainWindow(...)
     : KMainWindow(...)

Revision as of 20:30, 29 June 2011

TODO

Spellcheck action

yourkmainwindowrderivative.h: <syntaxhighlight lang="cpp-qt">

#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: <syntaxhighlight lang="cpp-qt">

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