From b88573e29b1a7e5201dab7d894df41bb5ebe6c37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Mon, 2 May 2016 19:42:27 +0200 Subject: Collate conversion functions for Core Foundation/Foundation types Makes it easier to apply similar changes across all related functions, and to implement functions for new types by having the previous approaches available in one place. Change-Id: I3f0590d67d0e6deb1c6c856ab1de96b55b6af058 Reviewed-by: Jake Petroules --- src/corelib/tools/qbytearray_mac.mm | 177 ------------------------------------ src/corelib/tools/qdatetime_mac.mm | 103 --------------------- src/corelib/tools/qstring_mac.mm | 112 ----------------------- src/corelib/tools/tools.pri | 3 - 4 files changed, 395 deletions(-) delete mode 100644 src/corelib/tools/qbytearray_mac.mm delete mode 100644 src/corelib/tools/qdatetime_mac.mm delete mode 100644 src/corelib/tools/qstring_mac.mm (limited to 'src/corelib/tools') diff --git a/src/corelib/tools/qbytearray_mac.mm b/src/corelib/tools/qbytearray_mac.mm deleted file mode 100644 index aada473f92..0000000000 --- a/src/corelib/tools/qbytearray_mac.mm +++ /dev/null @@ -1,177 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 Samuel Gaist -** Copyright (C) 2016 The Qt Company Ltd. -** 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$ -** -****************************************************************************/ - -#include "qbytearray.h" - -#import - -QT_BEGIN_NAMESPACE - -/*! \fn QByteArray QByteArray::fromCFData(CFDataRef data) - \since 5.3 - - Constructs a new QByteArray containing a copy of the CFData \a data. - - \sa fromRawCFData(), fromRawData(), toRawCFData(), toCFData() -*/ -QByteArray QByteArray::fromCFData(CFDataRef data) -{ - if (!data) - return QByteArray(); - - return QByteArray(reinterpret_cast(CFDataGetBytePtr(data)), CFDataGetLength(data)); -} - -/*! \fn QByteArray QByteArray::fromRawCFData(CFDataRef data) - \since 5.3 - - Constructs a QByteArray that uses the bytes of the CFData \a data. - - The \a data's bytes are not copied. - - The caller guarantees that the CFData will not be deleted - or modified as long as this QByteArray object exists. - - \sa fromCFData(), fromRawData(), toRawCFData(), toCFData() -*/ -QByteArray QByteArray::fromRawCFData(CFDataRef data) -{ - if (!data) - return QByteArray(); - - return QByteArray::fromRawData(reinterpret_cast(CFDataGetBytePtr(data)), CFDataGetLength(data)); -} - -/*! \fn CFDataRef QByteArray::toCFData() const - \since 5.3 - - Creates a CFData from a QByteArray. The caller owns the CFData object - and is responsible for releasing it. - - \sa toRawCFData(), fromCFData(), fromRawCFData(), fromRawData() -*/ -CFDataRef QByteArray::toCFData() const -{ - return CFDataCreate(kCFAllocatorDefault, reinterpret_cast(data()), length()); -} - -/*! \fn CFDataRef QByteArray::toRawCFData() const - \since 5.3 - - Constructs a CFData that uses the bytes of the QByteArray. - - The QByteArray's bytes are not copied. - - The caller guarantees that the QByteArray will not be deleted - or modified as long as this CFData object exists. - - \sa toCFData(), fromRawCFData(), fromCFData(), fromRawData() -*/ - -CFDataRef QByteArray::toRawCFData() const -{ - return CFDataCreateWithBytesNoCopy(kCFAllocatorDefault, reinterpret_cast(data()), - length(), kCFAllocatorNull); -} - -/*! \fn QByteArray QByteArray::fromNSData(const NSData *data) - \since 5.3 - - Constructs a new QByteArray containing a copy of the NSData \a data. - - \sa fromRawNSData(), fromRawData(), toNSData(), toRawNSData() -*/ -QByteArray QByteArray::fromNSData(const NSData *data) -{ - if (!data) - return QByteArray(); - return QByteArray(reinterpret_cast([data bytes]), [data length]); -} - -/*! \fn QByteArray QByteArray::fromRawNSData(const NSData *data) - \since 5.3 - - Constructs a QByteArray that uses the bytes of the NSData \a data. - - The \a data's bytes are not copied. - - The caller guarantees that the NSData will not be deleted - or modified as long as this QByteArray object exists. - - \sa fromNSData(), fromRawData(), toRawNSData(), toNSData() -*/ -QByteArray QByteArray::fromRawNSData(const NSData *data) -{ - if (!data) - return QByteArray(); - return QByteArray::fromRawData(reinterpret_cast([data bytes]), [data length]); -} - -/*! \fn NSData QByteArray::toNSData() const - \since 5.3 - - Creates a NSData from a QByteArray. The NSData object is autoreleased. - - \sa fromNSData(), fromRawNSData(), fromRawData(), toRawNSData() -*/ -NSData *QByteArray::toNSData() const -{ - return [NSData dataWithBytes:constData() length:size()]; -} - -/*! \fn NSData QByteArray::toRawNSData() const - \since 5.3 - - Constructs a NSData that uses the bytes of the QByteArray. - - The QByteArray's bytes are not copied. - - The caller guarantees that the QByteArray will not be deleted - or modified as long as this NSData object exists. - - \sa fromRawNSData(), fromNSData(), fromRawData(), toNSData() -*/ -NSData *QByteArray::toRawNSData() const -{ - // const_cast is fine here because NSData is immutable thus will never modify bytes we're giving it - return [NSData dataWithBytesNoCopy:const_cast(constData()) length:size() freeWhenDone:NO]; -} - -QT_END_NAMESPACE diff --git a/src/corelib/tools/qdatetime_mac.mm b/src/corelib/tools/qdatetime_mac.mm deleted file mode 100644 index c03c57d9f1..0000000000 --- a/src/corelib/tools/qdatetime_mac.mm +++ /dev/null @@ -1,103 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Copyright (C) 2014 Petroules Corporation. -** 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$ -** -****************************************************************************/ - -#include "qdatetime.h" - -#import - -QT_BEGIN_NAMESPACE - -/*! \fn QDateTime QDateTime::fromCFDate(CFDateRef date) - \since 5.5 - - Constructs a new QDateTime containing a copy of the CFDate \a date. - - \sa toCFDate() -*/ -QDateTime QDateTime::fromCFDate(CFDateRef date) -{ - if (!date) - return QDateTime(); - return QDateTime::fromMSecsSinceEpoch(static_cast((CFDateGetAbsoluteTime(date) - + kCFAbsoluteTimeIntervalSince1970) * 1000)); -} - -/*! \fn CFDateRef QDateTime::toCFDate() const - \since 5.5 - - Creates a CFDate from a QDateTime. The caller owns the CFDate object - and is responsible for releasing it. - - \sa fromCFDate() -*/ -CFDateRef QDateTime::toCFDate() const -{ - return CFDateCreate(kCFAllocatorDefault, (static_cast(toMSecsSinceEpoch()) - / 1000) - kCFAbsoluteTimeIntervalSince1970); -} - -/*! \fn QDateTime QDateTime::fromNSDate(const NSDate *date) - \since 5.5 - - Constructs a new QDateTime containing a copy of the NSDate \a date. - - \sa toNSDate() -*/ -QDateTime QDateTime::fromNSDate(const NSDate *date) -{ - if (!date) - return QDateTime(); - return QDateTime::fromMSecsSinceEpoch(static_cast([date timeIntervalSince1970] * 1000)); -} - -/*! \fn NSDate QDateTime::toNSDate() const - \since 5.5 - - Creates an NSDate from a QDateTime. The NSDate object is autoreleased. - - \sa fromNSDate() -*/ -NSDate *QDateTime::toNSDate() const -{ - return [NSDate - dateWithTimeIntervalSince1970:static_cast(toMSecsSinceEpoch()) / 1000]; -} - -QT_END_NAMESPACE diff --git a/src/corelib/tools/qstring_mac.mm b/src/corelib/tools/qstring_mac.mm deleted file mode 100644 index 81cbb91e6c..0000000000 --- a/src/corelib/tools/qstring_mac.mm +++ /dev/null @@ -1,112 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** 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$ -** -****************************************************************************/ - -#include "qstring.h" - -#import - -QT_BEGIN_NAMESPACE - -/*! \fn QString QString::fromCFString(CFStringRef string) - \since 5.2 - - Constructs a new QString containing a copy of the \a string CFString. - - \note this function is only available on OS X and iOS. -*/ -QString QString::fromCFString(CFStringRef string) -{ - if (!string) - return QString(); - CFIndex length = CFStringGetLength(string); - - // Fast path: CFStringGetCharactersPtr does not copy but may - // return null for any and no reason. - const UniChar *chars = CFStringGetCharactersPtr(string); - if (chars) - return QString(reinterpret_cast(chars), length); - - QString ret(length, Qt::Uninitialized); - CFStringGetCharacters(string, CFRangeMake(0, length), reinterpret_cast(ret.data())); - return ret; -} - -/*! \fn CFStringRef QString::toCFString() const - \since 5.2 - - Creates a CFString from a QString. The caller owns the CFString and is - responsible for releasing it. - - \note this function is only available on OS X and iOS. -*/ -CFStringRef QString::toCFString() const -{ - return CFStringCreateWithCharacters(0, reinterpret_cast(unicode()), length()); -} - -/*! \fn QString QString::fromNSString(const NSString *string) - \since 5.2 - - Constructs a new QString containing a copy of the \a string NSString. - - \note this function is only available on OS X and iOS. -*/ -QString QString::fromNSString(const NSString *string) -{ - if (!string) - return QString(); - QString qstring; - qstring.resize([string length]); - [string getCharacters: reinterpret_cast(qstring.data()) range: NSMakeRange(0, [string length])]; - return qstring; -} - -/*! \fn NSString QString::toNSString() const - \since 5.2 - - Creates a NSString from a QString. The NSString is autoreleased. - - \note this function is only available on OS X and iOS. -*/ -NSString *QString::toNSString() const -{ - return [NSString stringWithCharacters: reinterpret_cast(unicode()) length: length()]; -} - -QT_END_NAMESPACE diff --git a/src/corelib/tools/tools.pri b/src/corelib/tools/tools.pri index 07200b1249..de86a60616 100644 --- a/src/corelib/tools/tools.pri +++ b/src/corelib/tools/tools.pri @@ -133,9 +133,6 @@ false: SOURCES += $$NO_PCH_SOURCES # Hack for QtCreator SOURCES += tools/qelapsedtimer_mac.cpp OBJECTIVE_SOURCES += tools/qlocale_mac.mm \ tools/qtimezoneprivate_mac.mm \ - tools/qstring_mac.mm \ - tools/qbytearray_mac.mm \ - tools/qdatetime_mac.mm } else:android { SOURCES += tools/qelapsedtimer_unix.cpp tools/qlocale_unix.cpp tools/qtimezoneprivate_android.cpp -- cgit v1.2.3