diff options
Diffstat (limited to 'src/corelib/io/qbuffer.cpp')
-rw-r--r-- | src/corelib/io/qbuffer.cpp | 29 |
1 files changed, 19 insertions, 10 deletions
diff --git a/src/corelib/io/qbuffer.cpp b/src/corelib/io/qbuffer.cpp index dfc85a434d..dee4295966 100644 --- a/src/corelib/io/qbuffer.cpp +++ b/src/corelib/io/qbuffer.cpp @@ -40,6 +40,7 @@ ****************************************************************************/ #include "qbuffer.h" +#include <QtCore/qmetaobject.h> #include "private/qiodevice_p.h" QT_BEGIN_NAMESPACE @@ -112,7 +113,7 @@ QByteArray QBufferPrivate::peek(qint64 maxSize) interface. The QByteArray is treated just as a standard random-accessed file. Example: - \snippet doc/src/snippets/buffer/buffer.cpp 0 + \snippet buffer/buffer.cpp 0 By default, an internal QByteArray buffer is created for you when you create a QBuffer. You can access this buffer directly by @@ -130,12 +131,12 @@ QByteArray QBufferPrivate::peek(qint64 maxSize) The following code snippet shows how to write data to a QByteArray using QDataStream and QBuffer: - \snippet doc/src/snippets/buffer/buffer.cpp 1 + \snippet buffer/buffer.cpp 1 Effectively, we convert the application's QPalette into a byte array. Here's how to read the data from the QByteArray: - \snippet doc/src/snippets/buffer/buffer.cpp 2 + \snippet buffer/buffer.cpp 2 QTextStream and QDataStream also provide convenience constructors that take a QByteArray and that create a QBuffer behind the @@ -194,7 +195,7 @@ QBuffer::QBuffer(QObject *parent) Example: - \snippet doc/src/snippets/buffer/buffer.cpp 3 + \snippet buffer/buffer.cpp 3 \sa open(), setBuffer(), setData() */ @@ -230,7 +231,7 @@ QBuffer::~QBuffer() Example: - \snippet doc/src/snippets/buffer/buffer.cpp 4 + \snippet buffer/buffer.cpp 4 If \a byteArray is 0, the buffer creates its own internal QByteArray to work on. This byte array is initially empty. @@ -459,9 +460,11 @@ qint64 QBuffer::writeData(const char *data, qint64 len) \reimp \internal */ -void QBuffer::connectNotify(const char *signal) +void QBuffer::connectNotify(const QMetaMethod &signal) { - if (strcmp(signal + 1, "readyRead()") == 0 || strcmp(signal + 1, "bytesWritten(qint64)") == 0) + static const QMetaMethod readyReadSignal = QMetaMethod::fromSignal(&QBuffer::readyRead); + static const QMetaMethod bytesWrittenSignal = QMetaMethod::fromSignal(&QBuffer::bytesWritten); + if (signal == readyReadSignal || signal == bytesWrittenSignal) d_func()->signalConnectionCount++; } @@ -469,10 +472,16 @@ void QBuffer::connectNotify(const char *signal) \reimp \internal */ -void QBuffer::disconnectNotify(const char *signal) +void QBuffer::disconnectNotify(const QMetaMethod &signal) { - if (!signal || strcmp(signal + 1, "readyRead()") == 0 || strcmp(signal + 1, "bytesWritten(qint64)") == 0) - d_func()->signalConnectionCount--; + if (signal.isValid()) { + static const QMetaMethod readyReadSignal = QMetaMethod::fromSignal(&QBuffer::readyRead); + static const QMetaMethod bytesWrittenSignal = QMetaMethod::fromSignal(&QBuffer::bytesWritten); + if (signal == readyReadSignal || signal == bytesWrittenSignal) + d_func()->signalConnectionCount--; + } else { + d_func()->signalConnectionCount = 0; + } } #endif |