Development/Tutorials/Sonnet/SonnetTutorial: Difference between revisions

From KDE TechBase
No edit summary
(Mark for updating, needs content)
 
(8 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Improve}}
TODO
TODO


==Spellcheck action==
==Spellcheck action==
yourkmainwindowrderivative.h:
yourkmainwindowrderivative.h:
<syntaxhighlight lang="cpp-qt">
  #include <sonnet/dialog.h>
  #include <sonnet/dialog.h>
   
   
Line 18: Line 21:
  private:
  private:
     Sonnet::Dialog* m_sonnetDialog;
     Sonnet::Dialog* m_sonnetDialog;
 
</syntaxhighlight>


yourkmainwindowrderivative.cpp:
yourkmainwindowrderivative.cpp:
 
<syntaxhighlight lang="cpp-qt">
  YourKMainWindowrDerivative::YourKMainWindowrDerivative(...)
  YourKMainWindowrDerivative::YourKMainWindowrDerivative(...)
     : KMainWindow(...)
     : KMainWindow(...)
Line 44: Line 47:
         m_sonnetDialog=new Sonnet::Dialog(
         m_sonnetDialog=new Sonnet::Dialog(
             new Sonnet::BackgroundChecker( this ),
             new Sonnet::BackgroundChecker( this ),
             0 );
             this );
         //connect signals to slots:
         //connect signals to slots:
         connect(m_sonnetDialog,SIGNAL(misspelling(const QString&,int)),
         connect(m_sonnetDialog,SIGNAL(misspelling(const QString&,int)),
Line 50: Line 53:
         //and so on:
         //and so on:
         ...
         ...
     }
     }
   
   
Line 57: Line 59:
     else
     else
         m_sonnetDialog->setBuffer( m_view->toPlaintText());
         m_sonnetDialog->setBuffer( m_view->toPlaintText());
 
     m_sonnetDialog->show();
     m_sonnetDialog->show();
  }
  }
   
   
  //other slots implemetation
  //other slots implemetation
  ...
  ...
</syntaxhighlight>
see [http://api.kde.org/4.0-api/kdelibs-apidocs/kdeui/html/classSonnet_1_1Dialog.html Sonnet::Dialog API] and [http://api.kde.org/4.0-api/kdelibs-apidocs/kdecore/html/namespaceSonnet.html Sonnet namespace page]
see [http://api.kde.org/4.0-api/kdelibs-apidocs/kdeui/html/classSonnet_1_1Dialog.html Sonnet::Dialog API] and [http://api.kde.org/4.0-api/kdelibs-apidocs/kdecore/html/namespaceSonnet.html Sonnet namespace page]


==On-the-fly (inline) spellcheck==
==On-the-fly (inline) spellcheck==
stub
stub

Latest revision as of 14:38, 31 May 2019

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