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
This file is part of the documentation for libkdenetwork Library Version 3.3.2.