summaryrefslogtreecommitdiffstats
path: root/src/corelib/io/qbuffer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/corelib/io/qbuffer.cpp')
-rw-r--r--src/corelib/io/qbuffer.cpp29
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