kspell.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef __KSPELL_H__
00019 #define __KSPELL_H__
00020
00021 #include "ksconfig.h"
00022
00023 #include <qobject.h>
00024 #include <qstringlist.h>
00025 #include <qstring.h>
00026
00027 class QTextCodec;
00028 class KProcIO;
00029 class KProcess;
00030 class KSpellDlg;
00031
00044 class KSpell : public QObject
00045 {
00046 Q_OBJECT
00047
00048 public:
00049
00063 enum spellStatus { Starting = 0, Running, Cleaning, Finished, Error, Crashed };
00064
00082 KSpell(QWidget *parent, const QString &caption,
00083 QObject *receiver, const char *slot, KSpellConfig *kcs=0,
00084 bool progressbar = TRUE, bool modal = FALSE );
00085
00091 spellStatus status() const { return m_status; }
00092
00100 virtual void cleanUp ();
00101
00106 void setAutoDelete(bool _autoDelete) { autoDelete = _autoDelete; }
00107
00121 virtual bool check (const QString &_buffer, bool usedialog = TRUE);
00122
00128 int lastPosition() const
00129 { return lastpos;}
00130
00141 virtual bool checkList (QStringList *_wordlist, bool usedialog = TRUE);
00142
00165 virtual bool checkWord (const QString &_buffer, bool usedialog = FALSE);
00166
00172 void hide ();
00173
00182 QStringList suggestions () const { return sugg; }
00183
00200 int dlgResult () const
00201 { return dlgresult; }
00202
00211 void moveDlg (int x, int y);
00212
00216 int heightDlg () const;
00220 int widthDlg () const;
00221
00227 QString intermediateBuffer () const {return newbuffer;}
00228
00235 virtual bool ignore (const QString & word);
00236
00243 virtual bool addPersonal (const QString & word);
00244
00248 KSpellConfig ksConfig () const;
00249
00257 void setProgressResolution (unsigned res);
00258
00263 virtual ~KSpell();
00264
00271 static int modalCheck( QString& text );
00272
00281 static int modalCheck( QString& text, KSpellConfig * kcs );
00282
00287 void setIgnoreUpperWords(bool b);
00288
00294 void setIgnoreTitleCase(bool b);
00295
00296 signals:
00297
00315 void misspelling (const QString & originalword, const QStringList & suggestions,
00316 unsigned int pos);
00317
00333 void corrected (const QString & originalword, const QString & newword, unsigned int pos);
00334
00341 void ignoreall (const QString & originalword);
00342
00348 void ignoreword (const QString & originalword);
00349
00356 void addword (const QString & originalword);
00357
00361 void replaceall( const QString & origword , const QString &replacement );
00362
00367 void ready(KSpell *);
00368
00373 void progress (unsigned int i);
00374
00383 void done (const QString &buffer);
00384
00392 void done(bool);
00393
00404 void death( );
00405
00406
00407 protected slots:
00408
00409 void KSpell2 (KProcIO *);
00410 void checkWord2 (KProcIO *);
00411 void checkWord3 ();
00412 void check2 (KProcIO *);
00413 void checkList2 ();
00414 void checkList3a (KProcIO *);
00415 void checkListReplaceCurrent ();
00416 void checkList4 ();
00417 void dialog2 (int dlgresult);
00418 void check3 ();
00419
00420 void slotStopCancel (int);
00421 void ispellExit (KProcess *);
00422 void emitDeath();
00423 void ispellErrors (KProcess *, char *, int);
00424
00425 private slots:
00429 void slotModalReady();
00430
00434 void slotModalDone( const QString & );
00435
00439 void slotSpellCheckerCorrected( const QString & oldText, const QString & newText, unsigned int );
00440
00444 void slotModalSpellCheckerFinished( );
00445
00446 signals:
00447 void dialog3 ();
00448
00449 protected:
00450
00451 KProcIO *proc;
00452 QWidget *parent;
00453 KSpellConfig *ksconfig;
00454 KSpellDlg *ksdlg;
00455 QStringList *wordlist;
00456 QStringList::Iterator wlIt;
00457 QStringList ignorelist;
00458 QStringList replacelist;
00459 QStringList sugg;
00460 QTextCodec* codec;
00461
00462 spellStatus m_status;
00463
00464 bool usedialog;
00465 bool texmode;
00466 bool dlgon;
00467 bool personaldict;
00468 bool dialogwillprocess;
00469 bool progressbar;
00470 bool dialogsetup;
00471 bool autoDelete;
00472
00473 QString caption;
00474 QString orig;
00475 QString origbuffer;
00476 QString newbuffer;
00477 QString cwword;
00478 QString dlgorigword;
00479 QString dlgreplacement;
00480 QString dialog3slot;
00481
00482 int dlgresult;
00483 int trystart;
00484 int maxtrystart;
00485 int lastpos;
00486 unsigned int totalpos;
00487 unsigned int lastline;
00488 unsigned int posinline;
00489 unsigned int lastlastline;
00490 unsigned int offset;
00491 unsigned int progres;
00492 unsigned int curprog;
00493
00497 bool modaldlg;
00498 static QString modaltext;
00499 static int modalreturn;
00500 static QWidget* modalWidgetHack;
00501 static QStringList modalListText;
00502
00503 int parseOneResponse (const QString &_buffer, QString &word, QStringList &sugg);
00504 QString funnyWord (const QString & word);
00505 void dialog (const QString & word, QStringList & sugg, const char* _slot);
00506 QString replacement () const
00507 { return dlgreplacement; }
00508
00509 void setUpDialog ( bool reallyusedialogbox = TRUE);
00510
00511 void emitProgress ();
00512 bool cleanFputs (const QString & s, bool appendCR=TRUE);
00513 bool cleanFputsWord (const QString & s, bool appendCR=TRUE);
00514 void startIspell();
00515 bool writePersonalDictionary ();
00516
00517 private:
00518 class KSpellPrivate;
00519 KSpellPrivate *d;
00520 };
00521
00548 #endif
This file is part of the documentation for kdelibs Version 3.1.4.