libkdenetwork Library API Documentation

spellingfilter.h

00001 
00023 #ifndef SPELLINGFILTER_H_INCLUDED
00024 #define SPELLINGFILTER_H_INCLUDED
00025 
00026 #include <qstring.h>
00027 #include <qstringlist.h>
00028 #include "linklocator.h"
00029 
00030 class SpellingFilter
00031 {
00032 public:
00033   enum UrlFiltering { DontFilterUrls, FilterUrls };
00034   enum EmailAddressFiltering { DontFilterEmailAddresses, FilterEmailAddresses };
00035 
00036   SpellingFilter(const QString& text, const QString& quotePrefix,
00037     UrlFiltering filterUrls = FilterUrls,
00038     EmailAddressFiltering filterEmailAddresses = FilterEmailAddresses,
00039     const QStringList& filterStrings = QStringList());
00040 
00041   QString originalText() const;
00042   QString filteredText() const;
00043 
00044   class TextCensor;
00045 
00046 private:
00047   const QString mOriginal;
00048   QString mFiltered;
00049 };
00050 
00051 class SpellingFilter::TextCensor : public LinkLocator
00052 {
00053 public:
00054   TextCensor(const QString& s);
00055 
00056   void censorQuotations(const QString& quotePrefix);
00057   void censorUrls();
00058   void censorEmailAddresses();
00059   void censorString(const QString& s);
00060 
00061   QString censoredText() const;
00062 
00063 private:
00064   bool atLineStart() const;
00065   void skipLine();
00066 
00067   bool atQuotation(const QString& quotePrefix) const;
00068   void skipQuotation(const QString& quotePrefix);
00069   void findQuotation(const QString& quotePrefix);
00070 
00071   void findEmailAddress();
00072 };
00073 
00074 #endif // SPELLINGFILTER_H_INCLUDED
00075 
KDE Logo
This file is part of the documentation for libkdenetwork Library Version 3.3.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Wed Oct 17 09:52:22 2007 by doxygen 1.4.2 written by Dimitri van Heesch, © 1997-2003