diff options
Diffstat (limited to 'libkdepim/spellingfilter.cpp')
-rw-r--r-- | libkdepim/spellingfilter.cpp | 220 |
1 files changed, 0 insertions, 220 deletions
diff --git a/libkdepim/spellingfilter.cpp b/libkdepim/spellingfilter.cpp deleted file mode 100644 index cc94968d..00000000 --- a/libkdepim/spellingfilter.cpp +++ /dev/null @@ -1,220 +0,0 @@ -/** - * spellingfilter.cpp - * - * Copyright (c) 2002 Dave Corrie <kde@davecorrie.com> - * - * This file is part of KMail. - * - * KMail is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include <kdebug.h> -#include "spellingfilter.h" - -//----------------------------------------------------------------------------- -// SpellingFilter implementation -// - -SpellingFilter::SpellingFilter(const TQString& text, const TQString& quotePrefix, - UrlFiltering filterUrls, EmailAddressFiltering filterEmailAddresses, - const TQStringList& filterStrings) - : mOriginal(text) -{ - TextCensor c(text); - - if(!quotePrefix.isEmpty()) - c.censorQuotations(quotePrefix); - - if(filterUrls) - c.censorUrls(); - - if(filterEmailAddresses) - c.censorEmailAddresses(); - - TQStringList::const_iterator iter = filterStrings.begin(); - while(iter != filterStrings.end()) - { - c.censorString(*iter); - ++iter; - } - - mFiltered = c.censoredText(); -} - -TQString SpellingFilter::originalText() const -{ - return mOriginal; -} - -TQString SpellingFilter::filteredText() const -{ - return mFiltered; -} - -//----------------------------------------------------------------------------- -// SpellingFilter::TextCensor implementation -// - -SpellingFilter::TextCensor::TextCensor(const TQString& s) - : LinkLocator(s) -{ - -} - -void SpellingFilter::TextCensor::censorQuotations(const TQString& quotePrefix) -{ - mPos = 0; - while(mPos < static_cast<int>(mText.length())) - { - // Find start of quotation - findQuotation(quotePrefix); - if(mPos < static_cast<int>(mText.length())) - { - int start = mPos; - skipQuotation(quotePrefix); - - // Replace quotation with spaces - int len = mPos - start; - TQString spaces; - spaces.fill(' ', len); - mText.replace(start, len, spaces); - - //kdDebug(5006) << "censored quotation [" - // << start << ", " << mPos << ")" << endl; - } - } -} - -void SpellingFilter::TextCensor::censorUrls() -{ - mPos = 0; - while(mPos < static_cast<int>(mText.length())) - { - // Find start of url - TQString url; - while(mPos < static_cast<int>(mText.length()) && url.isEmpty()) - { - url = getUrl(); - ++mPos; - } - - if(mPos < static_cast<int>(mText.length()) && !url.isEmpty()) - { - int start = mPos - url.length(); - - // Replace url with spaces - url.fill(' '); - mText.replace(start, url.length(), url); - - //kdDebug(5006) << "censored url [" - // << start << ", " << mPos << ")" << endl; - } - } -} - -void SpellingFilter::TextCensor::censorEmailAddresses() -{ - mPos = 0; - while(mPos < static_cast<int>(mText.length())) - { - // Find start of email address - findEmailAddress(); - if(mPos < static_cast<int>(mText.length())) - { - TQString address = getEmailAddress(); - ++mPos; - if(!address.isEmpty()) - { - int start = mPos - address.length(); - - // Replace address with spaces - address.fill(' '); - mText.replace(start, address.length(), address); - - //kdDebug(5006) << "censored addr [" - // << start << ", "<< mPos << ")" << endl; - } - } - } -} - -void SpellingFilter::TextCensor::censorString(const TQString& s) -{ - mPos = 0; - while(mPos != -1) - { - // Find start of string - mPos = mText.find(s, mPos); - if(mPos != -1) - { - // Replace string with spaces - TQString spaces; - spaces.fill(' ', s.length()); - mText.replace(mPos, s.length(), spaces); - mPos += s.length(); - - //kdDebug(5006) << "censored string [" - // << mPos << ", "<< mPos+s.length() << ")" << endl; - } - } -} - -TQString SpellingFilter::TextCensor::censoredText() const -{ - return mText; -} - -//----------------------------------------------------------------------------- -// text censorship helper functions -// - -bool SpellingFilter::TextCensor::atLineStart() const -{ - return (mPos == 0 && static_cast<int>(mText.length()) > 0) || (mText[mPos - 1] == '\n'); -} - -void SpellingFilter::TextCensor::skipLine() -{ - mPos = mText.find('\n', mPos); - if(mPos == -1) - mPos = static_cast<int>(mText.length()); - else - ++mPos; -} - -bool SpellingFilter::TextCensor::atQuotation(const TQString& quotePrefix) const -{ - return atLineStart() && - mText.mid(mPos, quotePrefix.length()) == quotePrefix; -} - -void SpellingFilter::TextCensor::skipQuotation(const TQString& quotePrefix) -{ - while(atQuotation(quotePrefix)) - skipLine(); -} - -void SpellingFilter::TextCensor::findQuotation(const TQString& quotePrefix) -{ - while(mPos < static_cast<int>(mText.length()) && !atQuotation(quotePrefix)) - skipLine(); -} - -void SpellingFilter::TextCensor::findEmailAddress() -{ - while(mPos < static_cast<int>(mText.length()) && mText[mPos] != '@') - ++mPos; -} - |