diff options
author | Edward Welbourne <edward.welbourne@qt.io> | 2019-05-27 19:13:54 +0200 |
---|---|---|
committer | Edward Welbourne <edward.welbourne@qt.io> | 2019-07-10 17:05:30 +0200 |
commit | a9aa206b7b8ac4e69f8c46233b4080e00e845ff5 (patch) | |
tree | 0d19cb1f1a3b9d79d322e6e63f6f72160977ca67 /src/corelib/tools/qcollator_p.h | |
parent | 85d3061c1cd4617ef09cb381320611c27da205a5 (diff) |
Move text-related code out of corelib/tools/ to corelib/text/
This includes byte array, string, char, unicode, locale, collation and
regular expressions.
Change-Id: I8b125fa52c8c513eb57a0f1298b91910e5a0d786
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Diffstat (limited to 'src/corelib/tools/qcollator_p.h')
-rw-r--r-- | src/corelib/tools/qcollator_p.h | 148 |
1 files changed, 0 insertions, 148 deletions
diff --git a/src/corelib/tools/qcollator_p.h b/src/corelib/tools/qcollator_p.h deleted file mode 100644 index fc2d434a8d..0000000000 --- a/src/corelib/tools/qcollator_p.h +++ /dev/null @@ -1,148 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Copyright (C) 2013 Aleix Pol Gonzalez <aleixpol@kde.org> -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtCore module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QCOLLATOR_P_H -#define QCOLLATOR_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include <QtCore/private/qglobal_p.h> -#include "qcollator.h" -#include <QVector> -#if QT_CONFIG(icu) -#include <unicode/ucol.h> -#elif defined(Q_OS_OSX) -#include <CoreServices/CoreServices.h> -#elif defined(Q_OS_WIN) -#include <qt_windows.h> -#endif - -QT_BEGIN_NAMESPACE - -#if QT_CONFIG(icu) -typedef UCollator *CollatorType; -typedef QByteArray CollatorKeyType; -const CollatorType NoCollator = nullptr; - -#elif defined(Q_OS_OSX) -typedef CollatorRef CollatorType; -typedef QVector<UCCollationValue> CollatorKeyType; -const CollatorType NoCollator = 0; - -#elif defined(Q_OS_WIN) -typedef QString CollatorKeyType; -typedef int CollatorType; -const CollatorType NoCollator = 0; -# ifdef Q_OS_WINRT -# define USE_COMPARESTRINGEX -# endif - -#else // posix - ignores CollatorType collator, only handles system locale -typedef QVector<wchar_t> CollatorKeyType; -typedef bool CollatorType; -const CollatorType NoCollator = false; -#endif - -class QCollatorPrivate -{ -public: - QAtomicInt ref = 1; - QLocale locale; -#if defined(Q_OS_WIN) && !QT_CONFIG(icu) -#ifdef USE_COMPARESTRINGEX - QString localeName; -#else - LCID localeID; -#endif -#endif - Qt::CaseSensitivity caseSensitivity = Qt::CaseSensitive; - bool numericMode = false; - bool ignorePunctuation = false; - bool dirty = true; - - CollatorType collator = NoCollator; - - QCollatorPrivate(const QLocale &locale) : locale(locale) {} - ~QCollatorPrivate() { cleanup(); } - bool isC() { return locale.language() == QLocale::C; } - - void clear() { - cleanup(); - collator = NoCollator; - } - - // Implemented by each back-end, in its own way: - void init(); - void cleanup(); - -private: - Q_DISABLE_COPY_MOVE(QCollatorPrivate) -}; - -class QCollatorSortKeyPrivate : public QSharedData -{ - friend class QCollator; -public: - template <typename...T> - explicit QCollatorSortKeyPrivate(T &&...args) - : QSharedData() - , m_key(std::forward<T>(args)...) - { - } - - CollatorKeyType m_key; - -private: - Q_DISABLE_COPY_MOVE(QCollatorSortKeyPrivate) -}; - - -QT_END_NAMESPACE - -#endif // QCOLLATOR_P_H |