summaryrefslogtreecommitdiff
path: root/Source/WebCore/platform/text/qt/TextBreakIteratorQt.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/platform/text/qt/TextBreakIteratorQt.cpp')
-rw-r--r--Source/WebCore/platform/text/qt/TextBreakIteratorQt.cpp175
1 files changed, 0 insertions, 175 deletions
diff --git a/Source/WebCore/platform/text/qt/TextBreakIteratorQt.cpp b/Source/WebCore/platform/text/qt/TextBreakIteratorQt.cpp
deleted file mode 100644
index 0d9d48dbe..000000000
--- a/Source/WebCore/platform/text/qt/TextBreakIteratorQt.cpp
+++ /dev/null
@@ -1,175 +0,0 @@
-/*
- * Copyright (C) 2006 Lars Knoll <lars@trolltech.com>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library 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
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- *
- */
-
-#include "config.h"
-#include "TextBreakIterator.h"
-
-#include <QtCore/qtextboundaryfinder.h>
-#include <algorithm>
-#include <qdebug.h>
-#include <wtf/Atomics.h>
-
-// #define DEBUG_TEXT_ITERATORS
-#ifdef DEBUG_TEXT_ITERATORS
-#define DEBUG qDebug
-#else
-#define DEBUG if (1) {} else qDebug
-#endif
-
-using namespace WTF;
-using namespace std;
-
-namespace WebCore {
-
- class TextBreakIterator : public QTextBoundaryFinder {
- public:
- TextBreakIterator(QTextBoundaryFinder::BoundaryType type, const QString& string)
- : QTextBoundaryFinder(type, string)
- { }
- TextBreakIterator()
- : QTextBoundaryFinder()
- { }
- };
-
- TextBreakIterator* setUpIterator(TextBreakIterator& iterator, QTextBoundaryFinder::BoundaryType type, const UChar* characters, int length)
- {
- if (!characters || !length)
- return 0;
-
- if (iterator.isValid() && type == iterator.type() && iterator.string() == QString::fromRawData(reinterpret_cast<const QChar*>(characters), length)) {
- iterator.toStart();
- return &iterator;
- }
-
- iterator = TextBreakIterator(type, QString(reinterpret_cast<const QChar*>(characters), length));
- return &iterator;
- }
-
- TextBreakIterator* wordBreakIterator(const UChar* string, int length)
- {
- static TextBreakIterator staticWordBreakIterator;
- return setUpIterator(staticWordBreakIterator, QTextBoundaryFinder::Word, string, length);
- }
-
- static TextBreakIterator* nonSharedCharacterBreakIterator;
-
- NonSharedCharacterBreakIterator::NonSharedCharacterBreakIterator(const UChar* buffer, int length)
- {
- m_iterator = nonSharedCharacterBreakIterator;
- bool createdIterator = m_iterator && weakCompareAndSwap(reinterpret_cast<void**>(&nonSharedCharacterBreakIterator), m_iterator, 0);
- if (!createdIterator)
- m_iterator = new TextBreakIterator();
- if (!setUpIterator(*m_iterator, QTextBoundaryFinder::Grapheme, buffer, length)) {
- delete m_iterator;
- m_iterator = 0;
- }
- }
-
- NonSharedCharacterBreakIterator::~NonSharedCharacterBreakIterator()
- {
- if (!weakCompareAndSwap(reinterpret_cast<void**>(&nonSharedCharacterBreakIterator), 0, m_iterator))
- delete m_iterator;
- }
-
- TextBreakIterator* cursorMovementIterator(const UChar* string, int length)
- {
- static TextBreakIterator staticCursorMovementIterator;
- return setUpIterator(staticCursorMovementIterator, QTextBoundaryFinder::Grapheme, string, length);
- }
-
- static TextBreakIterator* staticLineBreakIterator;
-
- TextBreakIterator* acquireLineBreakIterator(const UChar* string, int length, const AtomicString&)
- {
- TextBreakIterator* lineBreakIterator = 0;
- if (staticLineBreakIterator) {
- setUpIterator(*staticLineBreakIterator, QTextBoundaryFinder::Line, string, length);
- std::swap(staticLineBreakIterator, lineBreakIterator);
- }
-
- if (!lineBreakIterator && string && length)
- lineBreakIterator = new TextBreakIterator(QTextBoundaryFinder::Line, QString(reinterpret_cast<const QChar*>(string), length));
-
- return lineBreakIterator;
- }
-
- void releaseLineBreakIterator(TextBreakIterator* iterator)
- {
- ASSERT(iterator);
-
- if (!staticLineBreakIterator)
- staticLineBreakIterator = iterator;
- else
- delete iterator;
- }
-
- TextBreakIterator* sentenceBreakIterator(const UChar* string, int length)
- {
- static TextBreakIterator staticSentenceBreakIterator;
- return setUpIterator(staticSentenceBreakIterator, QTextBoundaryFinder::Sentence, string, length);
-
- }
-
- int textBreakFirst(TextBreakIterator* bi)
- {
- bi->toStart();
- DEBUG() << "textBreakFirst" << bi->position();
- return bi->position();
- }
-
- int textBreakNext(TextBreakIterator* bi)
- {
- int pos = bi->toNextBoundary();
- DEBUG() << "textBreakNext" << pos;
- return pos;
- }
-
- int textBreakPreceding(TextBreakIterator* bi, int pos)
- {
- bi->setPosition(pos);
- int newpos = bi->toPreviousBoundary();
- DEBUG() << "textBreakPreceding" << pos << newpos;
- return newpos;
- }
-
- int textBreakFollowing(TextBreakIterator* bi, int pos)
- {
- bi->setPosition(pos);
- int newpos = bi->toNextBoundary();
- DEBUG() << "textBreakFollowing" << pos << newpos;
- return newpos;
- }
-
- int textBreakCurrent(TextBreakIterator* bi)
- {
- return bi->position();
- }
-
- bool isTextBreak(TextBreakIterator*, int)
- {
- return true;
- }
-
- bool isWordTextBreak(TextBreakIterator*)
- {
- return true;
- }
-
-}