summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMarkus Goetz <Markus.Goetz@nokia.com>2009-08-24 13:06:41 (GMT)
committerMarkus Goetz <Markus.Goetz@nokia.com>2009-08-24 13:06:41 (GMT)
commitdd3f78028e897436132070f9ef3ea5adacc6327f (patch)
treee0397e6b7cdfa64e6b95ff899474d3f083e39906 /src
parenta70b513ee0d56016c5ed3e0709d4f994c0881baf (diff)
parentaf05155d2d6518bc0481bc1aae0e20e58c59ba9f (diff)
downloadQt-dd3f78028e897436132070f9ef3ea5adacc6327f.zip
Qt-dd3f78028e897436132070f9ef3ea5adacc6327f.tar.gz
Qt-dd3f78028e897436132070f9ef3ea5adacc6327f.tar.bz2
Merge branch '4.6' of git@scm.dev.nokia.troll.no:qt/qt into 4.6
Diffstat (limited to 'src')
-rw-r--r--src/3rdparty/phonon/ds9/qmeminputpin.cpp100
-rw-r--r--src/3rdparty/phonon/ds9/qmeminputpin.h9
-rw-r--r--src/3rdparty/phonon/ds9/qpin.cpp3
-rw-r--r--src/3rdparty/phonon/ds9/qpin.h2
-rw-r--r--src/3rdparty/phonon/ds9/videorenderer_soft.cpp2
-rw-r--r--src/3rdparty/phonon/ds9/volumeeffect.cpp5
-rw-r--r--src/corelib/tools/qmap.cpp6
-rw-r--r--src/gui/kernel/qapplication_win.cpp3
-rw-r--r--src/gui/widgets/qplaintextedit.cpp5
-rw-r--r--src/script/api/qscriptvalue_p.h1
-rw-r--r--src/testlib/qtestcase.cpp4
11 files changed, 44 insertions, 96 deletions
diff --git a/src/3rdparty/phonon/ds9/qmeminputpin.cpp b/src/3rdparty/phonon/ds9/qmeminputpin.cpp
index 630cfb4..a21fbe7 100644
--- a/src/3rdparty/phonon/ds9/qmeminputpin.cpp
+++ b/src/3rdparty/phonon/ds9/qmeminputpin.cpp
@@ -28,8 +28,8 @@ namespace Phonon
namespace DS9
{
- QMemInputPin::QMemInputPin(QBaseFilter *parent, const QVector<AM_MEDIA_TYPE> &mt, bool transform) :
- QPin(parent, PINDIR_INPUT, mt), m_shouldDuplicateSamples(true), m_transform(transform)
+ QMemInputPin::QMemInputPin(QBaseFilter *parent, const QVector<AM_MEDIA_TYPE> &mt, bool transform, QPin *output) :
+ QPin(parent, PINDIR_INPUT, mt), m_shouldDuplicateSamples(true), m_transform(transform), m_output(output)
{
}
@@ -66,11 +66,9 @@ namespace Phonon
{
//this allows to serialize with Receive calls
QMutexLocker locker(&m_mutexReceive);
- for(int i = 0; i < m_outputs.count(); ++i) {
- IPin *conn = m_outputs.at(i)->connected();
- if (conn) {
- conn->EndOfStream();
- }
+ IPin *conn = m_output ? m_output->connected() : 0;
+ if (conn) {
+ conn->EndOfStream();
}
return S_OK;
}
@@ -78,11 +76,9 @@ namespace Phonon
STDMETHODIMP QMemInputPin::BeginFlush()
{
//pass downstream
- for(int i = 0; i < m_outputs.count(); ++i) {
- IPin *conn = m_outputs.at(i)->connected();
- if (conn) {
- conn->BeginFlush();
- }
+ IPin *conn = m_output ? m_output->connected() : 0;
+ if (conn) {
+ conn->BeginFlush();
}
QMutexLocker locker(&m_mutex);
m_flushing = true;
@@ -92,11 +88,9 @@ namespace Phonon
STDMETHODIMP QMemInputPin::EndFlush()
{
//pass downstream
- for(int i = 0; i < m_outputs.count(); ++i) {
- IPin *conn = m_outputs.at(i)->connected();
- if (conn) {
- conn->EndFlush();
- }
+ IPin *conn = m_output ? m_output->connected() : 0;
+ if (conn) {
+ conn->EndFlush();
}
QMutexLocker locker(&m_mutex);
m_flushing = false;
@@ -105,9 +99,8 @@ namespace Phonon
STDMETHODIMP QMemInputPin::NewSegment(REFERENCE_TIME start, REFERENCE_TIME stop, double rate)
{
- for(int i = 0; i < m_outputs.count(); ++i) {
- m_outputs.at(i)->NewSegment(start, stop, rate);
- }
+ if (m_output)
+ m_output->NewSegment(start, stop, rate);
return S_OK;
}
@@ -119,14 +112,9 @@ namespace Phonon
if (hr == S_OK &&
mt->majortype != MEDIATYPE_NULL &&
mt->subtype != MEDIASUBTYPE_NULL &&
- mt->formattype != GUID_NULL) {
- //we tell the output pins that they should connect with this type
- for(int i = 0; i < m_outputs.count(); ++i) {
- hr = m_outputs.at(i)->setAcceptedMediaType(connectedType());
- if (FAILED(hr)) {
- break;
- }
- }
+ mt->formattype != GUID_NULL && m_output) {
+ //we tell the output pin that it should connect with this type
+ hr = m_output->setAcceptedMediaType(connectedType());
}
return hr;
}
@@ -158,12 +146,9 @@ namespace Phonon
setMemoryAllocator(alloc);
- for(int i = 0; i < m_outputs.count(); ++i) {
- IPin *pin = m_outputs.at(i)->connected();
- if (pin) {
- ComPointer<IMemInputPin> input(pin, IID_IMemInputPin);
- input->NotifyAllocator(alloc, m_shouldDuplicateSamples);
- }
+ if (m_output) {
+ ComPointer<IMemInputPin> input(m_output, IID_IMemInputPin);
+ input->NotifyAllocator(alloc, m_shouldDuplicateSamples);
}
return S_OK;
@@ -202,22 +187,18 @@ namespace Phonon
}
}
- for (int i = 0; i < m_outputs.count(); ++i) {
- QPin *current = m_outputs.at(i);
+ if (m_output) {
IMediaSample *outSample = m_shouldDuplicateSamples ?
- duplicateSampleForOutput(sample, current->memoryAllocator())
+ duplicateSampleForOutput(sample, m_output->memoryAllocator())
: sample;
if (m_shouldDuplicateSamples) {
m_parent->processSample(outSample);
}
- IPin *pin = current->connected();
- if (pin) {
- ComPointer<IMemInputPin> input(pin, IID_IMemInputPin);
- if (input) {
- input->Receive(outSample);
- }
+ ComPointer<IMemInputPin> input(m_output->connected(), IID_IMemInputPin);
+ if (input) {
+ input->Receive(outSample);
}
if (m_shouldDuplicateSamples) {
@@ -248,39 +229,16 @@ namespace Phonon
STDMETHODIMP QMemInputPin::ReceiveCanBlock()
{
- //we test the output to see if they can block
- for(int i = 0; i < m_outputs.count(); ++i) {
- IPin *input = m_outputs.at(i)->connected();
- if (input) {
- ComPointer<IMemInputPin> meminput(input, IID_IMemInputPin);
- if (meminput && meminput->ReceiveCanBlock() != S_FALSE) {
- return S_OK;
- }
+ //we test the output to see if it can block
+ if (m_output) {
+ ComPointer<IMemInputPin> meminput(m_output->connected(), IID_IMemInputPin);
+ if (meminput && meminput->ReceiveCanBlock() != S_FALSE) {
+ return S_OK;
}
}
return S_FALSE;
}
- //addition
- //this should be used by the filter to tell its input pins to which output they should route the samples
-
- void QMemInputPin::addOutput(QPin *output)
- {
- QMutexLocker locker(&m_mutex);
- m_outputs += output;
- }
-
- void QMemInputPin::removeOutput(QPin *output)
- {
- QMutexLocker locker(&m_mutex);
- m_outputs.removeOne(output);
- }
-
- QList<QPin*> QMemInputPin::outputs() const
- {
- QMutexLocker locker(&m_mutex);
- return m_outputs;
- }
ALLOCATOR_PROPERTIES QMemInputPin::getDefaultAllocatorProperties() const
{
diff --git a/src/3rdparty/phonon/ds9/qmeminputpin.h b/src/3rdparty/phonon/ds9/qmeminputpin.h
index c449721..d74c451 100644
--- a/src/3rdparty/phonon/ds9/qmeminputpin.h
+++ b/src/3rdparty/phonon/ds9/qmeminputpin.h
@@ -37,7 +37,7 @@ namespace Phonon
class QMemInputPin : public QPin, public IMemInputPin
{
public:
- QMemInputPin(QBaseFilter *, const QVector<AM_MEDIA_TYPE> &, bool transform);
+ QMemInputPin(QBaseFilter *, const QVector<AM_MEDIA_TYPE> &, bool transform, QPin *output);
~QMemInputPin();
//reimplementation from IUnknown
@@ -60,18 +60,13 @@ namespace Phonon
STDMETHODIMP ReceiveMultiple(IMediaSample **,long,long *);
STDMETHODIMP ReceiveCanBlock();
- //addition
- void addOutput(QPin *output);
- void removeOutput(QPin *output);
- QList<QPin*> outputs() const;
-
private:
IMediaSample *duplicateSampleForOutput(IMediaSample *, IMemAllocator *);
ALLOCATOR_PROPERTIES getDefaultAllocatorProperties() const;
bool m_shouldDuplicateSamples;
const bool m_transform; //defines if the pin is transforming the samples
- QList<QPin*> m_outputs;
+ QPin* const m_output;
QMutex m_mutexReceive;
};
}
diff --git a/src/3rdparty/phonon/ds9/qpin.cpp b/src/3rdparty/phonon/ds9/qpin.cpp
index 55c952c..8653db9 100644
--- a/src/3rdparty/phonon/ds9/qpin.cpp
+++ b/src/3rdparty/phonon/ds9/qpin.cpp
@@ -338,7 +338,6 @@ namespace Phonon
STDMETHODIMP QPin::QueryPinInfo(PIN_INFO *info)
{
- QMutexLocker locker(&m_mutex);
if (!info) {
return E_POINTER;
}
@@ -352,7 +351,6 @@ namespace Phonon
STDMETHODIMP QPin::QueryDirection(PIN_DIRECTION *dir)
{
- QMutexLocker locker(&m_mutex);
if (!dir) {
return E_POINTER;
}
@@ -363,7 +361,6 @@ namespace Phonon
STDMETHODIMP QPin::QueryId(LPWSTR *id)
{
- QMutexLocker locker(&m_mutex);
if (!id) {
return E_POINTER;
}
diff --git a/src/3rdparty/phonon/ds9/qpin.h b/src/3rdparty/phonon/ds9/qpin.h
index 9af6077..280ad61 100644
--- a/src/3rdparty/phonon/ds9/qpin.h
+++ b/src/3rdparty/phonon/ds9/qpin.h
@@ -86,7 +86,7 @@ namespace Phonon
protected:
//this can be used by sub-classes
mutable QMutex m_mutex;
- QBaseFilter *m_parent;
+ QBaseFilter * const m_parent;
bool m_flushing;
private:
diff --git a/src/3rdparty/phonon/ds9/videorenderer_soft.cpp b/src/3rdparty/phonon/ds9/videorenderer_soft.cpp
index cf5ce96..82d6235 100644
--- a/src/3rdparty/phonon/ds9/videorenderer_soft.cpp
+++ b/src/3rdparty/phonon/ds9/videorenderer_soft.cpp
@@ -365,7 +365,7 @@ namespace Phonon
{
public:
VideoRendererSoftPin(VideoRendererSoftFilter *parent) :
- QMemInputPin(parent, videoMediaTypes(), false /*no transformation of the samples*/),
+ QMemInputPin(parent, videoMediaTypes(), false /*no transformation of the samples*/, 0),
m_renderer(parent)
{
}
diff --git a/src/3rdparty/phonon/ds9/volumeeffect.cpp b/src/3rdparty/phonon/ds9/volumeeffect.cpp
index b9a5fce..a93b074 100644
--- a/src/3rdparty/phonon/ds9/volumeeffect.cpp
+++ b/src/3rdparty/phonon/ds9/volumeeffect.cpp
@@ -76,7 +76,7 @@ namespace Phonon
class VolumeMemInputPin : public QMemInputPin
{
public:
- VolumeMemInputPin(QBaseFilter *parent, const QVector<AM_MEDIA_TYPE> &mt) : QMemInputPin(parent, mt, true /*transform*/)
+ VolumeMemInputPin(QBaseFilter *parent, const QVector<AM_MEDIA_TYPE> &mt, QPin *output) : QMemInputPin(parent, mt, true /*transform*/, output)
{
}
@@ -139,8 +139,7 @@ namespace Phonon
//then creating the input
mt << audioMediaType();
- m_input = new VolumeMemInputPin(this, mt);
- m_input->addOutput(m_output); //make the connection here
+ m_input = new VolumeMemInputPin(this, mt, m_output);
}
void VolumeEffectFilter::treatOneSamplePerChannel(BYTE **buffer, int sampleSize, int channelCount, int frequency)
diff --git a/src/corelib/tools/qmap.cpp b/src/corelib/tools/qmap.cpp
index e913232..9f8e05c 100644
--- a/src/corelib/tools/qmap.cpp
+++ b/src/corelib/tools/qmap.cpp
@@ -93,6 +93,9 @@ void QMapData::continueFreeData(int offset)
could be several pointers to this node on different levels.
\a offset is an amount of bytes that needs to reserved just before the
QMapData::Node structure.
+
+ \internal
+ \since 4.6
*/
QMapData::Node *QMapData::node_create(Node *update[], int offset)
{
@@ -128,7 +131,6 @@ QMapData::Node *QMapData::node_create(Node *update[], int offset)
update[i]->forward[i] = abstractNode;
update[i] = abstractNode;
}
- // update[level+1]=reinterpret_cast<Node *>(this);
++size;
return abstractNode;
}
@@ -191,7 +193,7 @@ void QMapData::dump()
update[i] = node->forward[i];
}
for (int j = level + 1; j <= topLevel; ++j)
- output[j] += QString("---------------");
+ output[j] += QLatin1String("---------------");
node = node->forward[0];
}
diff --git a/src/gui/kernel/qapplication_win.cpp b/src/gui/kernel/qapplication_win.cpp
index 12cd879..76a3b1e 100644
--- a/src/gui/kernel/qapplication_win.cpp
+++ b/src/gui/kernel/qapplication_win.cpp
@@ -323,6 +323,7 @@ extern HRGN qt_tryCreateRegion(QRegion::RegionType type, int left, int top, int
#define APPCOMMAND_BASS_UP 21
#define APPCOMMAND_TREBLE_DOWN 22
#define APPCOMMAND_TREBLE_UP 23
+#endif // FAPPCOMMAND_MOUSE
// New commands from Windows XP (some even Sp1)
#ifndef APPCOMMAND_MICROPHONE_VOLUME_MUTE
@@ -357,8 +358,6 @@ extern HRGN qt_tryCreateRegion(QRegion::RegionType type, int left, int top, int
#define APPCOMMAND_MEDIA_CHANNEL_DOWN 52
#endif // APPCOMMAND_MICROPHONE_VOLUME_MUTE
-#endif // FAPPCOMMAND_MOUSE
-
#if (_WIN32_WINNT < 0x0400)
// This struct is defined in winuser.h if the _WIN32_WINNT >= 0x0400 -- in the
// other cases we have to define it on our own.
diff --git a/src/gui/widgets/qplaintextedit.cpp b/src/gui/widgets/qplaintextedit.cpp
index 20de404..03c36d7 100644
--- a/src/gui/widgets/qplaintextedit.cpp
+++ b/src/gui/widgets/qplaintextedit.cpp
@@ -573,7 +573,8 @@ QRectF QPlainTextEditControl::blockBoundingRect(const QTextBlock &block) const {
if (!block.isValid())
return QRectF();
QRectF r = documentLayout->blockBoundingRect(currentBlock);
- while (currentBlockNumber < blockNumber && offset.y() <= 2* textEdit->viewport()->height()) {
+ int maxVerticalOffset = r.height();
+ while (currentBlockNumber < blockNumber && offset.y() - maxVerticalOffset <= 2* textEdit->viewport()->height()) {
offset.ry() += r.height();
currentBlock = currentBlock.next();
++currentBlockNumber;
@@ -583,7 +584,7 @@ QRectF QPlainTextEditControl::blockBoundingRect(const QTextBlock &block) const {
}
r = documentLayout->blockBoundingRect(currentBlock);
}
- while (currentBlockNumber > blockNumber && offset.y() >= -textEdit->viewport()->height()) {
+ while (currentBlockNumber > blockNumber && offset.y() + maxVerticalOffset >= -textEdit->viewport()->height()) {
currentBlock = currentBlock.previous();
--currentBlockNumber;
while (!currentBlock.isVisible()) {
diff --git a/src/script/api/qscriptvalue_p.h b/src/script/api/qscriptvalue_p.h
index ee471c7..cb4f1ba 100644
--- a/src/script/api/qscriptvalue_p.h
+++ b/src/script/api/qscriptvalue_p.h
@@ -95,7 +95,6 @@ public:
{
QScriptValue tmp;
tmp.d_ptr = d;
- d->ref.ref();
return tmp;
}
diff --git a/src/testlib/qtestcase.cpp b/src/testlib/qtestcase.cpp
index 9a09c19..e0667bb 100644
--- a/src/testlib/qtestcase.cpp
+++ b/src/testlib/qtestcase.cpp
@@ -1659,10 +1659,8 @@ int QTest::qExec(QObject *testObject, int argc, char **argv)
IOPMAssertionRelease(powerID);
}
#endif
-//# ifdef Q_OS_WIN
- // rethrow exception to make debugging easier
+ // Rethrow exception to make debugging easier.
throw;
-//# endif
return 1;
}
# endif