From add4d83be92f332246adf851d89c27b60b4737dc Mon Sep 17 00:00:00 2001 From: David Boddie Date: Fri, 4 Dec 2009 16:57:36 +0100 Subject: Doc: Added links to missing examples and placeholder documentation. Reviewed-by: Trust Me --- doc/src/examples/fademessage.qdoc | 10 +++++++++- doc/src/getting-started/examples.qdoc | 16 +++++++++++++--- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/doc/src/examples/fademessage.qdoc b/doc/src/examples/fademessage.qdoc index ecea095..6063fa7 100644 --- a/doc/src/examples/fademessage.qdoc +++ b/doc/src/examples/fademessage.qdoc @@ -43,5 +43,13 @@ \example effects/fademessage \title Fade Message Effect Example - \image fademessageeffect-example.png + \raw HTML +
+ \endraw + \inlineimage fademessageeffect-example.png + \inlineimage fademessageeffect-example-faded.png + \raw HTML +
+ \endraw + */ diff --git a/doc/src/getting-started/examples.qdoc b/doc/src/getting-started/examples.qdoc index f0a6799..2d4f5c9 100644 --- a/doc/src/getting-started/examples.qdoc +++ b/doc/src/getting-started/examples.qdoc @@ -546,6 +546,14 @@ \o \l{graphicsview/portedcanvas}{Ported Canvas} \endlist + Some examples demonstrate the use of graphics effects with canvas items. + + \list + \o \l{effects/blurpicker}{Blur Picker Effect} + \o \l{effects/fademessage}{Fade Message Effect} + \o \l{effects/lighting}{Lighting Effect} + \endlist + Examples marked with an asterisk (*) are fully documented. */ @@ -851,11 +859,13 @@ \section1 Multimedia - Qt provides low-level audio support on linux,windows and mac platforms by default and - an audio plugin API to allow developers to implement there own audio support for + Qt provides low-level audio support on Linux, Windows and Mac OS X by default and + an audio plugin API to allow developers to implement their own audio support for custom devices and platforms. - These examples demonstrate the basic techniques used to take advantage of + \section1 Audio Handling + + These examples demonstrate the basic techniques used to take advantage of the Audio API in Qt applications. \list -- cgit v0.12 From 4b09e47add266c44b15bd3748cf2ef948b8512fb Mon Sep 17 00:00:00 2001 From: David Boddie Date: Fri, 4 Dec 2009 16:58:55 +0100 Subject: Doc: Whitespace fix. Reviewed-by: Trust Me --- doc/src/modules.qdoc | 91 ++++++++++++++++++++++++++-------------------------- 1 file changed, 45 insertions(+), 46 deletions(-) diff --git a/doc/src/modules.qdoc b/doc/src/modules.qdoc index 3058b84..5e759db 100644 --- a/doc/src/modules.qdoc +++ b/doc/src/modules.qdoc @@ -409,59 +409,58 @@ */ /*! - \module QtSvg - \title QtSvg Module - \since 4.1 - \contentspage All Qt Modules - \previouspage QtSql - \nextpage QtWebKit - \ingroup modules + \module QtSvg + \title QtSvg Module + \since 4.1 + \contentspage All Qt Modules + \previouspage QtSql + \nextpage QtWebKit + \ingroup modules - \brief The QtSvg module provides classes for displaying the contents of SVG - files. + \brief The QtSvg module provides classes for displaying and creating SVG files. - To include the definitions of the module's classes, use the - following directive: + To include the definitions of the module's classes, use the + following directive: - \snippet doc/src/snippets/code/doc_src_qtsvg.qdoc 0 + \snippet doc/src/snippets/code/doc_src_qtsvg.qdoc 0 - To link against the module, add this line to your \l qmake \c - .pro file: + To link against the module, add this line to your \l qmake \c + .pro file: - \snippet doc/src/snippets/code/doc_src_qtsvg.qdoc 1 + \snippet doc/src/snippets/code/doc_src_qtsvg.qdoc 1 - The QtSvg module is part of the \l{Qt Full Framework Edition} and the - \l{Open Source Versions of Qt}. + The QtSvg module is part of the \l{Qt Full Framework Edition} and the + \l{Open Source Versions of Qt}. - \section1 License Information - - Some code for arc handling in this module is derived from code with - the following license: - - \legalese - Copyright 2002 USC/Information Sciences Institute - - Permission to use, copy, modify, distribute, and sell this software - and its documentation for any purpose is hereby granted without - fee, provided that the above copyright notice appear in all copies - and that both that copyright notice and this permission notice - appear in supporting documentation, and that the name of - Information Sciences Institute not be used in advertising or - publicity pertaining to distribution of the software without - specific, written prior permission. Information Sciences Institute - makes no representations about the suitability of this software for - any purpose. It is provided "as is" without express or implied - warranty. - - INFORMATION SCIENCES INSTITUTE DISCLAIMS ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL INFORMATION SCIENCES - INSTITUTE BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA - OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER - TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - PERFORMANCE OF THIS SOFTWARE. - \endlegalese + \section1 License Information + + Some code for arc handling in this module is derived from code with + the following license: + + \legalese + Copyright 2002 USC/Information Sciences Institute + + Permission to use, copy, modify, distribute, and sell this software + and its documentation for any purpose is hereby granted without + fee, provided that the above copyright notice appear in all copies + and that both that copyright notice and this permission notice + appear in supporting documentation, and that the name of + Information Sciences Institute not be used in advertising or + publicity pertaining to distribution of the software without + specific, written prior permission. Information Sciences Institute + makes no representations about the suitability of this software for + any purpose. It is provided "as is" without express or implied + warranty. + + INFORMATION SCIENCES INSTITUTE DISCLAIMS ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL INFORMATION SCIENCES + INSTITUTE BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL + DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA + OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + \endlegalese */ /*! -- cgit v0.12 From 8577da4a70be7400b1dc7d2265a31de46f8e8bb9 Mon Sep 17 00:00:00 2001 From: David Boddie Date: Fri, 4 Dec 2009 16:59:25 +0100 Subject: Doc: Fixed license information as requested by Legal. Reviewed-by: Trust Me --- doc/src/frameworks-technologies/dnd.qdoc | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/doc/src/frameworks-technologies/dnd.qdoc b/doc/src/frameworks-technologies/dnd.qdoc index a7b1622..65fddfb 100644 --- a/doc/src/frameworks-technologies/dnd.qdoc +++ b/doc/src/frameworks-technologies/dnd.qdoc @@ -426,6 +426,7 @@ \legalese Copyright 1996 Daniel Dardailler. + Copyright 1999 Matt Koss Permission to use, copy, modify, distribute, and sell this software for any purpose is hereby granted without fee, provided that the above @@ -436,13 +437,11 @@ written prior permission. Daniel Dardailler makes no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty. - - Modifications Copyright 1999 Matt Koss, under the same license as - above. \endlegalese - \omit NOTE: The copyright notice is from qmotifdnd_x11.cpp. \endomit + \omit NOTE: The original version of this copyright notice can be found + in qmotifdnd_x11.cpp. \endomit - Note: The Motif Drag \& Drop Protocol only allows receivers to + \note The Motif Drag \& Drop Protocol only allows receivers to request data in response to a QDropEvent. If you attempt to request data in response to e.g. a QDragMoveEvent, an empty QByteArray is returned. -- cgit v0.12 From 74b0c482b1edf606e1326c9053c612a7e514dee4 Mon Sep 17 00:00:00 2001 From: David Boddie Date: Mon, 7 Dec 2009 15:59:20 +0100 Subject: Doc: Fixed references to "old" 2.x and "new" 3.x font name conventions. Reviewed-by: Trust Me As-reported-by: Eskil --- src/gui/text/qfontdatabase.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/gui/text/qfontdatabase.cpp b/src/gui/text/qfontdatabase.cpp index 7e93aa0..e9c7b89 100644 --- a/src/gui/text/qfontdatabase.cpp +++ b/src/gui/text/qfontdatabase.cpp @@ -1482,13 +1482,13 @@ QString QFontDatabase::styleString(const QFontInfo &fontInfo) and style will look attractive. If the font family is available from two or more foundries the - foundry name is included in the family name, e.g. "Helvetica - [Adobe]" and "Helvetica [Cronyx]". When you specify a family you - can either use the old hyphenated Qt 2.x "foundry-family" format, - e.g. "Cronyx-Helvetica", or the new bracketed Qt 3.x "family - [foundry]" format e.g. "Helvetica [Cronyx]". If the family has a - foundry it is always returned, e.g. by families(), using the - bracketed format. + foundry name is included in the family name; for example: + "Helvetica [Adobe]" and "Helvetica [Cronyx]". When you specify a + family, you can either use the old hyphenated "foundry-family" + format or the bracketed "family [foundry]" format; for example: + "Cronyx-Helvetica" or "Helvetica [Cronyx]". If the family has a + foundry it is always returned using the bracketed format, as is + the case with the value returned by families(). The font() function returns a QFont given a family, style and point size. -- cgit v0.12 From 2fe3395812b6497e7151e556686a82cfd763f243 Mon Sep 17 00:00:00 2001 From: David Boddie Date: Mon, 14 Dec 2009 19:51:13 +0100 Subject: Doc: Minor fixes to language. Reviewed-by: Trust Me --- src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp b/src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp index 1bdc3ed..88b7271 100644 --- a/src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp +++ b/src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp @@ -3407,9 +3407,9 @@ quint64 QWebPage::bytesReceived() const /*! \fn void QWebPage::unsupportedContent(QNetworkReply *reply) - This signals is emitted when webkit cannot handle a link the user navigated to. + This signal is emitted when WebKit cannot handle a link the user navigated to. - At signal emissions time the meta data of the QNetworkReply \a reply is available. + At signal emission time the meta-data of the QNetworkReply \a reply is available. \note This signal is only emitted if the forwardUnsupportedContent property is set to true. -- cgit v0.12 From ad4ca2152c161f7023e5febcf9e90c0652b8e57d Mon Sep 17 00:00:00 2001 From: David Boddie Date: Mon, 14 Dec 2009 19:54:33 +0100 Subject: Doc: Fixed an image reference. Reviewed-by: Trust Me --- src/gui/kernel/qevent.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gui/kernel/qevent.cpp b/src/gui/kernel/qevent.cpp index c4a25e1..3579c79 100644 --- a/src/gui/kernel/qevent.cpp +++ b/src/gui/kernel/qevent.cpp @@ -409,7 +409,7 @@ QMouseEventEx::~QMouseEventEx() consider a top-level window A containing a child B which in turn contains a child C (all with mouse tracking enabled): - \image hoverEvents.png + \image hoverevents.png Now, if you move the cursor from the top to the bottom in the middle of A, you will get the following QEvent::MouseMove events: @@ -432,7 +432,7 @@ QMouseEventEx::~QMouseEventEx() \o A::HoverMove, B::HoverMove \o A::HoverMove, B::HoverMove, C::HoverMove \endlist - + */ /*! -- cgit v0.12 From 2a2dec6666f8f38e9240784b423ce69b18e1064e Mon Sep 17 00:00:00 2001 From: David Boddie Date: Tue, 15 Dec 2009 21:00:18 +0100 Subject: Doc: Modified the coding style of the Audio Devices example. This commit will be a duplicate of the same change applied elsewhere. Reviewed-by: Kurt Korbatits --- examples/multimedia/audiodevices/audiodevices.cpp | 81 +++++++++------------- examples/multimedia/audiodevices/audiodevices.h | 6 +- examples/multimedia/audiodevices/audiodevices.pro | 2 +- .../multimedia/audiodevices/audiodevicesbase.ui | 64 ++++++++++++----- 4 files changed, 84 insertions(+), 69 deletions(-) diff --git a/examples/multimedia/audiodevices/audiodevices.cpp b/examples/multimedia/audiodevices/audiodevices.cpp index e205e03..45c7a53 100644 --- a/examples/multimedia/audiodevices/audiodevices.cpp +++ b/examples/multimedia/audiodevices/audiodevices.cpp @@ -40,45 +40,33 @@ ****************************************************************************/ -#include #include #include "audiodevices.h" -AudioDevicesBase::AudioDevicesBase( QMainWindow *parent, Qt::WFlags f ) +AudioDevicesBase::AudioDevicesBase(QWidget *parent, Qt::WFlags f) + : QMainWindow(parent, f) { - Q_UNUSED(parent) - Q_UNUSED(f) - setupUi( this ); + setupUi(this); } AudioDevicesBase::~AudioDevicesBase() {} -AudioTest::AudioTest( QMainWindow *parent, Qt::WFlags f ) - : AudioDevicesBase( parent, f ) +AudioTest::AudioTest(QWidget *parent, Qt::WFlags f) + : AudioDevicesBase(parent, f) { - nearestFreq->setDisabled(true); - nearestChannel->setDisabled(true); - nearestCodec->setDisabled(true); - nearestSampleSize->setDisabled(true); - nearestSampleType->setDisabled(true); - nearestEndian->setDisabled(true); - logOutput->setDisabled(true); - mode = QAudio::AudioOutput; - modeBox->addItem("Input"); - modeBox->addItem("Output"); - connect(testButton,SIGNAL(clicked()),SLOT(test())); - connect(modeBox,SIGNAL(activated(int)),SLOT(modeChanged(int))); - connect(deviceBox,SIGNAL(activated(int)),SLOT(deviceChanged(int))); - connect(frequencyBox,SIGNAL(activated(int)),SLOT(freqChanged(int))); - connect(channelsBox,SIGNAL(activated(int)),SLOT(channelChanged(int))); - connect(codecsBox,SIGNAL(activated(int)),SLOT(codecChanged(int))); - connect(sampleSizesBox,SIGNAL(activated(int)),SLOT(sampleSizeChanged(int))); - connect(sampleTypesBox,SIGNAL(activated(int)),SLOT(sampleTypeChanged(int))); - connect(endianBox,SIGNAL(activated(int)),SLOT(endianChanged(int))); + connect(testButton, SIGNAL(clicked()), SLOT(test())); + connect(modeBox, SIGNAL(activated(int)), SLOT(modeChanged(int))); + connect(deviceBox, SIGNAL(activated(int)), SLOT(deviceChanged(int))); + connect(frequencyBox, SIGNAL(activated(int)), SLOT(freqChanged(int))); + connect(channelsBox, SIGNAL(activated(int)), SLOT(channelChanged(int))); + connect(codecsBox, SIGNAL(activated(int)), SLOT(codecChanged(int))); + connect(sampleSizesBox, SIGNAL(activated(int)), SLOT(sampleSizeChanged(int))); + connect(sampleTypesBox, SIGNAL(activated(int)), SLOT(sampleTypeChanged(int))); + connect(endianBox, SIGNAL(activated(int)), SLOT(endianChanged(int))); modeBox->setCurrentIndex(0); modeChanged(0); @@ -98,7 +86,7 @@ void AudioTest::test() if (!deviceInfo.isNull()) { if (deviceInfo.isFormatSupported(settings)) { - logOutput->append("Success"); + logOutput->append(tr("Success")); nearestFreq->setText(""); nearestChannel->setText(""); nearestCodec->setText(""); @@ -136,16 +124,16 @@ void AudioTest::test() } } else - logOutput->append("No Device"); + logOutput->append(tr("No Device")); } void AudioTest::modeChanged(int idx) { // mode has changed - if(idx == 0) - mode=QAudio::AudioInput; + if (idx == 0) + mode = QAudio::AudioInput; else - mode=QAudio::AudioOutput; + mode = QAudio::AudioOutput; deviceBox->clear(); foreach (const QAudioDeviceInfo &deviceInfo, QAudioDeviceInfo::availableDevices(mode)) @@ -162,37 +150,37 @@ void AudioTest::deviceChanged(int idx) frequencyBox->clear(); QList freqz = deviceInfo.supportedFrequencies(); - for(int i = 0; i < freqz.size(); ++i) + for (int i = 0; i < freqz.size(); ++i) frequencyBox->addItem(QString("%1").arg(freqz.at(i))); - if(freqz.size()) + if (freqz.size()) settings.setFrequency(freqz.at(0)); channelsBox->clear(); QList chz = deviceInfo.supportedChannels(); - for(int i = 0; i < chz.size(); ++i) + for (int i = 0; i < chz.size(); ++i) channelsBox->addItem(QString("%1").arg(chz.at(i))); - if(chz.size()) + if (chz.size()) settings.setChannels(chz.at(0)); codecsBox->clear(); QStringList codecz = deviceInfo.supportedCodecs(); - for(int i = 0; i < codecz.size(); ++i) + for (int i = 0; i < codecz.size(); ++i) codecsBox->addItem(QString("%1").arg(codecz.at(i))); - if(codecz.size()) + if (codecz.size()) settings.setCodec(codecz.at(0)); // Add false to create failed condition! codecsBox->addItem("audio/test"); sampleSizesBox->clear(); QList sampleSizez = deviceInfo.supportedSampleSizes(); - for(int i = 0; i < sampleSizez.size(); ++i) + for (int i = 0; i < sampleSizez.size(); ++i) sampleSizesBox->addItem(QString("%1").arg(sampleSizez.at(i))); - if(sampleSizez.size()) + if (sampleSizez.size()) settings.setSampleSize(sampleSizez.at(0)); sampleTypesBox->clear(); QList sampleTypez = deviceInfo.supportedSampleTypes(); - for(int i = 0; i < sampleTypez.size(); ++i) { + for (int i = 0; i < sampleTypez.size(); ++i) { switch(sampleTypez.at(i)) { case QAudioFormat::SignedInt: sampleTypesBox->addItem("SignedInt"); @@ -206,14 +194,14 @@ void AudioTest::deviceChanged(int idx) case QAudioFormat::Unknown: sampleTypesBox->addItem("Unknown"); } - if(sampleTypez.size()) + if (sampleTypez.size()) settings.setSampleType(sampleTypez.at(0)); } endianBox->clear(); QList endianz = deviceInfo.supportedByteOrders(); - for(int i = 0; i < endianz.size(); ++i) { - switch(endianz.at(i)) { + for (int i = 0; i < endianz.size(); ++i) { + switch (endianz.at(i)) { case QAudioFormat::LittleEndian: endianBox->addItem("Little Endian"); break; @@ -222,7 +210,7 @@ void AudioTest::deviceChanged(int idx) break; } } - if(endianz.size()) + if (endianz.size()) settings.setByteOrder(endianz.at(0)); } @@ -249,7 +237,7 @@ void AudioTest::sampleSizeChanged(int idx) void AudioTest::sampleTypeChanged(int idx) { - switch(sampleTypesBox->itemText(idx).toInt()) { + switch (sampleTypesBox->itemText(idx).toInt()) { case QAudioFormat::SignedInt: settings.setSampleType(QAudioFormat::SignedInt); break; @@ -263,7 +251,7 @@ void AudioTest::sampleTypeChanged(int idx) void AudioTest::endianChanged(int idx) { - switch(endianBox->itemText(idx).toInt()) { + switch (endianBox->itemText(idx).toInt()) { case QAudioFormat::LittleEndian: settings.setByteOrder(QAudioFormat::LittleEndian); break; @@ -271,4 +259,3 @@ void AudioTest::endianChanged(int idx) settings.setByteOrder(QAudioFormat::BigEndian); } } - diff --git a/examples/multimedia/audiodevices/audiodevices.h b/examples/multimedia/audiodevices/audiodevices.h index 5fe5547..bd4b7c4 100644 --- a/examples/multimedia/audiodevices/audiodevices.h +++ b/examples/multimedia/audiodevices/audiodevices.h @@ -49,7 +49,7 @@ class AudioDevicesBase : public QMainWindow, public Ui::AudioDevicesBase { public: - AudioDevicesBase( QMainWindow *parent = 0, Qt::WFlags f = 0 ); + AudioDevicesBase(QWidget *parent = 0, Qt::WFlags f = 0); virtual ~AudioDevicesBase(); }; @@ -57,10 +57,10 @@ class AudioTest : public AudioDevicesBase { Q_OBJECT public: - AudioTest( QMainWindow *parent = 0, Qt::WFlags f = 0 ); + AudioTest(QWidget *parent = 0, Qt::WFlags f = 0); virtual ~AudioTest(); - QAudioDeviceInfo deviceInfo; + QAudioDeviceInfo deviceInfo; QAudioFormat settings; QAudio::Mode mode; diff --git a/examples/multimedia/audiodevices/audiodevices.pro b/examples/multimedia/audiodevices/audiodevices.pro index 232da09..1cb4679 100644 --- a/examples/multimedia/audiodevices/audiodevices.pro +++ b/examples/multimedia/audiodevices/audiodevices.pro @@ -1,7 +1,7 @@ HEADERS = audiodevices.h SOURCES = audiodevices.cpp \ main.cpp -FORMS += audiodevicesbase.ui +FORMS += audiodevicesbase.ui QT += multimedia diff --git a/examples/multimedia/audiodevices/audiodevicesbase.ui b/examples/multimedia/audiodevices/audiodevicesbase.ui index 5207338..faa39dc 100644 --- a/examples/multimedia/audiodevices/audiodevicesbase.ui +++ b/examples/multimedia/audiodevices/audiodevicesbase.ui @@ -11,7 +11,7 @@ - AudioDevicesBase + Audio Devices @@ -41,7 +41,18 @@ - + + + + Input + + + + + Output + + + @@ -93,7 +104,11 @@ - + + + false + + @@ -113,7 +128,11 @@ - + + + false + + @@ -133,7 +152,11 @@ - + + + false + + @@ -153,7 +176,11 @@ - + + + false + + @@ -173,7 +200,11 @@ - + + + false + + @@ -193,10 +224,17 @@ - + + + false + + + + false + 0 @@ -216,16 +254,6 @@ - - - - 0 - 0 - 504 - 19 - - - -- cgit v0.12 From d0d5d9d8e6d7815a0c97af28a7d231bfb9e83c19 Mon Sep 17 00:00:00 2001 From: Denis Dzyubenko Date: Wed, 16 Dec 2009 11:30:44 +0100 Subject: Revert "Changes to support locale change event for symbian platform" Revert a change that is not yet complete and was pushed by mistake. This reverts commit 44f7c1e097582a704a06ccbbf516536b88ddcd3a. --- src/corelib/kernel/qcore_symbian_p.h | 3 +- src/corelib/kernel/qcoreapplication.cpp | 10 --- src/corelib/kernel/qcoreapplication.h | 4 -- src/corelib/kernel/qcoreapplication_p.h | 4 -- src/corelib/tools/qlocale.cpp | 43 +++--------- src/corelib/tools/qlocale_p.h | 5 +- src/corelib/tools/qlocale_symbian.cpp | 121 ++------------------------------ src/plugins/s60/src/qlocale_3_1.cpp | 8 --- 8 files changed, 17 insertions(+), 181 deletions(-) diff --git a/src/corelib/kernel/qcore_symbian_p.h b/src/corelib/kernel/qcore_symbian_p.h index 2ef48b5..f86bfd3 100644 --- a/src/corelib/kernel/qcore_symbian_p.h +++ b/src/corelib/kernel/qcore_symbian_p.h @@ -139,8 +139,7 @@ enum S60PluginFuncOrdinals S60Plugin_GetLongDateFormatSpec = 3, S60Plugin_GetShortDateFormatSpec = 4, S60Plugin_LocalizedDirectoryName = 5, - S60Plugin_GetSystemDrive = 6, - S60Plugin_RefreshLocaleInfo = 7 + S60Plugin_GetSystemDrive = 6 }; Q_CORE_EXPORT TLibraryFunction qt_resolveS60PluginFunc(int ordinal); diff --git a/src/corelib/kernel/qcoreapplication.cpp b/src/corelib/kernel/qcoreapplication.cpp index 93df45d..8a55bad 100644 --- a/src/corelib/kernel/qcoreapplication.cpp +++ b/src/corelib/kernel/qcoreapplication.cpp @@ -69,7 +69,6 @@ # include # include "qeventdispatcher_symbian_p.h" # include "private/qcore_symbian_p.h" -# include "private/qlocale_p.h" #elif defined(Q_OS_UNIX) # if !defined(QT_NO_GLIB) # include "qeventdispatcher_glib_p.h" @@ -2602,13 +2601,4 @@ int QCoreApplication::loopLevel() \sa Q_OBJECT, QObject::tr(), QObject::trUtf8() */ -#if defined(Q_OS_SYMBIAN) -void QCoreApplicationPrivate::_q_symbianRegisterLocaleNotifier() -{ - QLocalePrivate::symbianRegisterLocaleNotifier(); -} -#endif - QT_END_NAMESPACE - -#include "moc_qcoreapplication.cpp" diff --git a/src/corelib/kernel/qcoreapplication.h b/src/corelib/kernel/qcoreapplication.h index 152a775..097b8b4 100644 --- a/src/corelib/kernel/qcoreapplication.h +++ b/src/corelib/kernel/qcoreapplication.h @@ -196,10 +196,6 @@ private: static QCoreApplication *self; -#if defined(Q_OS_SYMBIAN) - Q_PRIVATE_SLOT(d_func(), void _q_symbianRegisterLocaleNotifier()) -#endif - Q_DISABLE_COPY(QCoreApplication) friend class QEventDispatcherUNIXPrivate; diff --git a/src/corelib/kernel/qcoreapplication_p.h b/src/corelib/kernel/qcoreapplication_p.h index 39e50c4..bf43f88 100644 --- a/src/corelib/kernel/qcoreapplication_p.h +++ b/src/corelib/kernel/qcoreapplication_p.h @@ -122,10 +122,6 @@ public: static uint attribs; static inline bool testAttribute(uint flag) { return attribs & (1 << flag); } - -#if defined(Q_OS_SYMBIAN) - void _q_symbianRegisterLocaleNotifier(); -#endif }; QT_END_NAMESPACE diff --git a/src/corelib/tools/qlocale.cpp b/src/corelib/tools/qlocale.cpp index 22114c2..4a66b92 100644 --- a/src/corelib/tools/qlocale.cpp +++ b/src/corelib/tools/qlocale.cpp @@ -129,10 +129,6 @@ inline bool isascii(int c) } #endif -#if defined(Q_OS_SYMBIAN) -void symbianUpdateSystemPrivate(); -#endif - /****************************************************************************** ** Helpers for accessing Qt locale database */ @@ -1392,8 +1388,7 @@ QSystemLocale::QSystemLocale() /*! \internal */ QSystemLocale::QSystemLocale(bool) -{ -} +{ } /*! Deletes the object. @@ -1412,29 +1407,16 @@ static const QSystemLocale *systemLocale() { if (_systemLocale) return _systemLocale; -#if defined(Q_OS_SYMBIAN) - symbianInitSystemLocale(); -#endif return QSystemLocale_globalSystemLocale(); } -void QLocalePrivate::updateSystemPrivate(bool initialize) +void QLocalePrivate::updateSystemPrivate() { const QSystemLocale *sys_locale = systemLocale(); if (!system_lp) system_lp = globalLocalePrivate(); *system_lp = *sys_locale->fallbackLocale().d(); - system_lp->m_language_id = 0; -#if defined(Q_OS_SYMBIAN) - RDebug::Print(_L("updateSystemPrivate")); -#endif - if (!initialize) - return; - -#if defined(Q_OS_SYMBIAN) - symbianUpdateSystemPrivate(); -#endif QVariant res = sys_locale->query(QSystemLocale::LanguageId, QVariant()); if (!res.isNull()) system_lp->m_language_id = res.toInt(); @@ -1464,12 +1446,12 @@ void QLocalePrivate::updateSystemPrivate(bool initialize) } #endif -static const QLocalePrivate *systemPrivate(bool initialize = true) +static const QLocalePrivate *systemPrivate() { #ifndef QT_NO_SYSTEMLOCALE // copy over the information from the fallback locale and modify if (!system_lp || system_lp->m_language_id == 0) - QLocalePrivate::updateSystemPrivate(initialize); + QLocalePrivate::updateSystemPrivate(); return system_lp; #else @@ -1477,10 +1459,10 @@ static const QLocalePrivate *systemPrivate(bool initialize = true) #endif } -static const QLocalePrivate *defaultPrivate(bool initialize = true) +static const QLocalePrivate *defaultPrivate() { if (!default_lp) - default_lp = systemPrivate(initialize); + default_lp = systemPrivate(); return default_lp; } @@ -2187,7 +2169,7 @@ QLocale::QLocale() : v(0) { p.numberOptions = default_number_options; - p.index = localePrivateIndex(defaultPrivate(false)); + p.index = localePrivateIndex(defaultPrivate()); } /*! @@ -2217,7 +2199,7 @@ QLocale::QLocale(Language language, Country country) // If not found, should default to system if (d->languageId() == QLocale::C && language != QLocale::C) { p.numberOptions = default_number_options; - p.index = localePrivateIndex(defaultPrivate(false)); + p.index = localePrivateIndex(defaultPrivate()); } else { p.numberOptions = 0; p.index = localePrivateIndex(d); @@ -2301,7 +2283,6 @@ void QLocale::setDefault(const QLocale &locale) */ QLocale::Language QLocale::language() const { - systemPrivate(); // make sure inline data is initialized from the system. return Language(d()->languageId()); } @@ -2312,7 +2293,6 @@ QLocale::Language QLocale::language() const */ QLocale::Country QLocale::country() const { - systemPrivate(); // make sure inline data is initialized from the system. return Country(d()->countryId()); } @@ -3041,7 +3021,6 @@ QDateTime QLocale::toDateTime(const QString &string, const QString &format) cons */ QChar QLocale::decimalPoint() const { - systemPrivate(); // make sure inline data is initialized from the system. return d()->decimal(); } @@ -3052,7 +3031,6 @@ QChar QLocale::decimalPoint() const */ QChar QLocale::groupSeparator() const { - systemPrivate(); // make sure inline data is initialized from the system. return d()->group(); } @@ -3063,7 +3041,6 @@ QChar QLocale::groupSeparator() const */ QChar QLocale::percent() const { - systemPrivate(); // make sure inline data is initialized from the system. return d()->percent(); } @@ -3074,7 +3051,6 @@ QChar QLocale::percent() const */ QChar QLocale::zeroDigit() const { - systemPrivate(); // make sure inline data is initialized from the system. return d()->zero(); } @@ -3085,7 +3061,6 @@ QChar QLocale::zeroDigit() const */ QChar QLocale::negativeSign() const { - systemPrivate(); // make sure inline data is initialized from the system. return d()->minus(); } @@ -3096,7 +3071,6 @@ QChar QLocale::negativeSign() const */ QChar QLocale::positiveSign() const { - systemPrivate(); // make sure inline data is initialized from the system. return d()->plus(); } @@ -3107,7 +3081,6 @@ QChar QLocale::positiveSign() const */ QChar QLocale::exponential() const { - systemPrivate(); // make sure inline data is initialized from the system. return d()->exponential(); } diff --git a/src/corelib/tools/qlocale_p.h b/src/corelib/tools/qlocale_p.h index 63e9e0f..0123a6e 100644 --- a/src/corelib/tools/qlocale_p.h +++ b/src/corelib/tools/qlocale_p.h @@ -132,10 +132,7 @@ public: CharBuff *result) const; inline char digitToCLocale(const QChar &c) const; - static void updateSystemPrivate(bool initialize = true); -#if defined(Q_OS_SYMBIAN) - static void symbianRegisterLocaleNotifier(); -#endif + static void updateSystemPrivate(); enum NumberMode { IntegerMode, DoubleStandardMode, DoubleScientificMode }; bool validateChars(const QString &str, NumberMode numMode, QByteArray *buff, int decDigits = -1) const; diff --git a/src/corelib/tools/qlocale_symbian.cpp b/src/corelib/tools/qlocale_symbian.cpp index c4ad67c..1273d06 100644 --- a/src/corelib/tools/qlocale_symbian.cpp +++ b/src/corelib/tools/qlocale_symbian.cpp @@ -46,94 +46,10 @@ #include #include -#include -#include #include "private/qcore_symbian_p.h" -#include "private/qcoreapplication_p.h" -#include "qlocale_p.h" -#include "qdebug.h" - -QT_BEGIN_NAMESPACE - -class CLocaleChangeNotifier : public CActive -{ -public: - static CLocaleChangeNotifier *NewL(); - ~CLocaleChangeNotifier(); - -private: - CLocaleChangeNotifier(); - void ConstructL(); - void RunL(); - void DoCancel(); - -private: - RChangeNotifier changeNotifier; -}; - -static CLocaleChangeNotifier *qt_changeNotifier = NULL; - -CLocaleChangeNotifier *CLocaleChangeNotifier::NewL() -{ - CLocaleChangeNotifier *self = new (ELeave) CLocaleChangeNotifier(); - CleanupStack::PushL(self); - self->ConstructL(); - CleanupStack::Pop(); - return self; -} - -CLocaleChangeNotifier::CLocaleChangeNotifier() - : CActive(CActive::EPriorityStandard) -{ -} -CLocaleChangeNotifier::~CLocaleChangeNotifier() -{ - Cancel(); - changeNotifier.Close(); -} - -void CLocaleChangeNotifier::ConstructL() -{ - changeNotifier.Create(); - CActiveScheduler::Add(this); - SetActive(); -} - -void CLocaleChangeNotifier::DoCancel() -{ - changeNotifier.LogonCancel(); -} - -void CLocaleChangeNotifier::RunL() -{ - SetActive(); - if (changeNotifier.Logon(iStatus) == KErrNone) { - if (iStatus.Int() == EChangesLocale) { - RDebug::Print(_L("notifier:locale changed")); - QT_TRYCATCH_LEAVING(QLocalePrivate::updateSystemPrivate()); - } else { - RDebug::Print(_L("notifier:something else changed")); - } - } else { - RDebug::Print(_L("notifier:logon failed")); - } -} - -static void qt_cleanupLocaleNotifier() -{ - delete qt_changeNotifier; - qt_changeNotifier = NULL; -} - -void QLocalePrivate::symbianRegisterLocaleNotifier() -{ - if (!qt_changeNotifier) { - QT_TRAP_THROWING(qt_changeNotifier = CLocaleChangeNotifier::NewL()); - qAddPostRoutine(qt_cleanupLocaleNotifier); - } -} +QT_BEGIN_NAMESPACE // Located in qlocale.cpp extern void getLangAndCountry(const QString &name, QLocale::Language &lang, QLocale::Country &cntry); @@ -149,7 +65,6 @@ static FormatFunc ptrTimeFormatL = NULL; static FormatSpecFunc ptrGetTimeFormatSpec = NULL; static FormatSpecFunc ptrGetLongDateFormatSpec = NULL; static FormatSpecFunc ptrGetShortDateFormatSpec = NULL; -static FormatSpecFunc ptrRefreshLocaleInfo = NULL; // Default functions if functions cannot be resolved static void defaultTimeFormatL(TTime&, TDes& des, const TDesC&, const TLocale&) @@ -299,8 +214,6 @@ static const char *jp_locale_dep[] = { */ static QString s60ToQtFormat(const QString &sys_fmt) { - RDebug::Print(_L("Time Format \"%S\""), &timeFormat); - TLocale *locale = _s60Locale.GetLocale(); QString result; @@ -766,8 +679,6 @@ static QString symbianDateFormat(bool short_format) dateFormat.Set(ptrGetLongDateFormatSpec(_s60Locale)); } - RDebug::Print(_L("symDateFormat: \"%S\""), &dateFormat); - return s60ToQtFormat(qt_TDesC2QString(dateFormat)); } @@ -777,8 +688,6 @@ static QString symbianDateFormat(bool short_format) */ static QString symbianTimeFormat() { - TPtrC timeFormat = ptrGetTimeFormatSpec(_s60Locale); - RDebug::Print(_L("symTimeFormat: \"%S\""), &timeFormat); return s60ToQtFormat(qt_TDesC2QString(ptrGetTimeFormatSpec(_s60Locale))); } @@ -862,35 +771,22 @@ static QLocale::MeasurementSystem symbianMeasurementSystem() return QLocale::MetricSystem; } -void symbianUpdateSystemPrivate() +QLocale QSystemLocale::fallbackLocale() const { - RDebug::Print(_L("symbianUpdateSystemPrivate")); // load system data before query calls - _s60Locale.LoadSystemSettings(); - if (ptrRefreshLocaleInfo) - ptrRefreshLocaleInfo(); -} - -void symbianInitSystemLocale() -{ - RDebug::Print(_L("symbianInitSystemLocale")); static QBasicAtomicInt initDone = Q_BASIC_ATOMIC_INITIALIZER(0); if (initDone.testAndSetRelaxed(0, 1)) { - if (!qt_changeNotifier) { - QMetaObject::invokeMethod(qApp, SLOT(_q_symbianRegisterLocaleNotifier()), Qt::AutoConnection); - } + _s60Locale.LoadSystemSettings(); // Initialize platform version dependent function pointers ptrTimeFormatL = reinterpret_cast - (qt_resolveS60PluginFunc(S60Plugin_TimeFormatL)); + (qt_resolveS60PluginFunc(S60Plugin_TimeFormatL)); ptrGetTimeFormatSpec = reinterpret_cast - (qt_resolveS60PluginFunc(S60Plugin_GetTimeFormatSpec)); + (qt_resolveS60PluginFunc(S60Plugin_GetTimeFormatSpec)); ptrGetLongDateFormatSpec = reinterpret_cast - (qt_resolveS60PluginFunc(S60Plugin_GetLongDateFormatSpec)); + (qt_resolveS60PluginFunc(S60Plugin_GetLongDateFormatSpec)); ptrGetShortDateFormatSpec = reinterpret_cast - (qt_resolveS60PluginFunc(S60Plugin_GetShortDateFormatSpec)); - ptrRefreshLocaleInfo = reinterpret_cast - (qt_resolveS60PluginFunc(S60Plugin_RefreshLocaleInfo)); + (qt_resolveS60PluginFunc(S60Plugin_GetShortDateFormatSpec)); if (!ptrTimeFormatL) ptrTimeFormatL = &defaultTimeFormatL; if (!ptrGetTimeFormatSpec) @@ -905,10 +801,7 @@ void symbianInitSystemLocale() } while(initDone != 2) QThread::yieldCurrentThread(); -} -QLocale QSystemLocale::fallbackLocale() const -{ TLanguage lang = User::Language(); QString locale = QLatin1String(qt_symbianLocaleName(lang)); return QLocale(locale); diff --git a/src/plugins/s60/src/qlocale_3_1.cpp b/src/plugins/s60/src/qlocale_3_1.cpp index d597861..beeee7f 100644 --- a/src/plugins/s60/src/qlocale_3_1.cpp +++ b/src/plugins/s60/src/qlocale_3_1.cpp @@ -50,7 +50,6 @@ _LIT(KLocaleIndependent, "%F"); static TBuf<10> dateFormat; static TBuf<10> timeFormat; -#define _DEBUG static void initialiseDateFormat() { if(dateFormat.Length()) @@ -147,10 +146,3 @@ EXPORT_C TPtrC defaultGetShortDateFormatSpec(TExtendedLocale&) initialiseDateFormat(); return TPtrC(dateFormat); } - -EXPORT_C void refreshLocaleInfo() -{ - // clear the buffers, so next time we re-read data from the system. - dateFormat.Zero(); - timeFormat.Zero(); -} -- cgit v0.12 From e1706eab16a4cd7f64665249717cc293d3a1ce93 Mon Sep 17 00:00:00 2001 From: Andy Shaw Date: Wed, 16 Dec 2009 13:14:15 +0100 Subject: Fixes: Ensure QMAKE_LFLAGS+=/MACHINE:X64 works for vcproj files RevBy: Marius SO Details: It worked fine for Makefiles since no checking is done of the flags. Now its fixed so it works for vcproj files too making it easier for people to build 64bit targets in Visual Studio. --- qmake/generators/win32/msvc_objectmodel.cpp | 4 +++- qmake/generators/win32/msvc_objectmodel.h | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/qmake/generators/win32/msvc_objectmodel.cpp b/qmake/generators/win32/msvc_objectmodel.cpp index 7dc456e..593a075 100644 --- a/qmake/generators/win32/msvc_objectmodel.cpp +++ b/qmake/generators/win32/msvc_objectmodel.cpp @@ -1394,8 +1394,10 @@ bool VCLinkerTool::parseOption(const char* option) case 0x0005bb6: // X86 TargetMachine = machineX86; break; - // so we put the others in AdditionalOptions... case 0x0005b94: // X64 + TargetMachine = machineX64; + break; + // so we put the others in AdditionalOptions... case 0x0046063: // AM33 case 0x000466d: // ARM case 0x0004795: // CEE diff --git a/qmake/generators/win32/msvc_objectmodel.h b/qmake/generators/win32/msvc_objectmodel.h index d178d30..f7fdf3a 100644 --- a/qmake/generators/win32/msvc_objectmodel.h +++ b/qmake/generators/win32/msvc_objectmodel.h @@ -298,7 +298,8 @@ enum linkProgressOption { }; enum machineTypeOption { machineNotSet, - machineX86 + machineX86, + machineX64 = 17 }; enum midlCharOption { midlCharUnsigned, -- cgit v0.12 From 0568fb9f428a84a344baaa5c53395db4b99f082c Mon Sep 17 00:00:00 2001 From: Prasanth Ullattil Date: Wed, 16 Dec 2009 13:14:12 +0100 Subject: Text cursor is not shown properly in line edits on Mac OS X. The mac stlye disables the blinking cursor when there is a selection in the line edit. The cursor is not shown back when this selection is removed (either by mouse or key press events). This patch watches the selection changed signal from the line control and updates the cursor status accordingly. Task-number: QTBUG-6378 Reviewed-by: Olivier Goffart --- src/gui/widgets/qlineedit.h | 1 + src/gui/widgets/qlineedit_p.cpp | 17 ++++++++++++++++- src/gui/widgets/qlineedit_p.h | 2 +- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/gui/widgets/qlineedit.h b/src/gui/widgets/qlineedit.h index 594e488..3f159f6 100644 --- a/src/gui/widgets/qlineedit.h +++ b/src/gui/widgets/qlineedit.h @@ -288,6 +288,7 @@ private: #ifdef QT_KEYPAD_NAVIGATION Q_PRIVATE_SLOT(d_func(), void _q_editFocusChange(bool)) #endif + Q_PRIVATE_SLOT(d_func(), void _q_selectionChanged()) }; #endif // QT_NO_LINEEDIT diff --git a/src/gui/widgets/qlineedit_p.cpp b/src/gui/widgets/qlineedit_p.cpp index 4437fef..23ab817 100644 --- a/src/gui/widgets/qlineedit_p.cpp +++ b/src/gui/widgets/qlineedit_p.cpp @@ -126,6 +126,21 @@ void QLineEditPrivate::_q_editFocusChange(bool e) } #endif +void QLineEditPrivate::_q_selectionChanged() +{ + Q_Q(QLineEdit); + if (control->preeditAreaText().isEmpty()) { + QStyleOptionFrameV2 opt; + q->initStyleOption(&opt); + bool showCursor = control->hasSelectedText() ? + q->style()->styleHint(QStyle::SH_BlinkCursorWhenTextSelected, &opt, q): + true; + setCursorVisible(showCursor); + } + + emit q->selectionChanged(); +} + void QLineEditPrivate::init(const QString& txt) { Q_Q(QLineEdit); @@ -138,7 +153,7 @@ void QLineEditPrivate::init(const QString& txt) QObject::connect(control, SIGNAL(cursorPositionChanged(int,int)), q, SLOT(_q_cursorPositionChanged(int,int))); QObject::connect(control, SIGNAL(selectionChanged()), - q, SIGNAL(selectionChanged())); + q, SLOT(_q_selectionChanged())); QObject::connect(control, SIGNAL(accepted()), q, SIGNAL(returnPressed())); QObject::connect(control, SIGNAL(editingFinished()), diff --git a/src/gui/widgets/qlineedit_p.h b/src/gui/widgets/qlineedit_p.h index dc648e8..f13dce2 100644 --- a/src/gui/widgets/qlineedit_p.h +++ b/src/gui/widgets/qlineedit_p.h @@ -128,7 +128,7 @@ public: #ifdef QT_KEYPAD_NAVIGATION void _q_editFocusChange(bool); #endif - + void _q_selectionChanged(); #ifndef QT_NO_COMPLETER void _q_completionHighlighted(QString); #endif -- cgit v0.12 From f9d962ac5d738b26d3c939f83fe6d32bd3202535 Mon Sep 17 00:00:00 2001 From: Denis Dzyubenko Date: Thu, 10 Dec 2009 17:52:18 +0100 Subject: Do not call macToQtFormat twice in QLocale. We already convert date/time format inside the getMacDateFormat, so no reason to do it again later. Reviewed-by: Prasanth --- src/corelib/tools/qlocale.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/corelib/tools/qlocale.cpp b/src/corelib/tools/qlocale.cpp index 4a66b92..8645f17 100644 --- a/src/corelib/tools/qlocale.cpp +++ b/src/corelib/tools/qlocale.cpp @@ -1187,14 +1187,14 @@ QVariant QSystemLocale::query(QueryType type, QVariant in = QVariant()) const } case DateFormatLong: case DateFormatShort: - return macToQtFormat(getMacDateFormat(type == DateFormatShort + return getMacDateFormat(type == DateFormatShort ? kCFDateFormatterShortStyle - : kCFDateFormatterLongStyle)); + : kCFDateFormatterLongStyle); case TimeFormatLong: case TimeFormatShort: - return macToQtFormat(getMacTimeFormat(type == TimeFormatShort + return getMacTimeFormat(type == TimeFormatShort ? kCFDateFormatterShortStyle - : kCFDateFormatterLongStyle)); + : kCFDateFormatterLongStyle); case DayNameLong: case DayNameShort: return macDayName(in.toInt(), (type == DayNameShort)); -- cgit v0.12 From cc598ec6b0d396ab11de20a3f21064522578960c Mon Sep 17 00:00:00 2001 From: Denis Dzyubenko Date: Fri, 11 Dec 2009 17:54:22 +0100 Subject: Doc fix: mark QFileOpenEvent::url to be available since 4.6 Reviewed-by: trustme --- src/gui/kernel/qevent.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/gui/kernel/qevent.cpp b/src/gui/kernel/qevent.cpp index c4a25e1..e836eda 100644 --- a/src/gui/kernel/qevent.cpp +++ b/src/gui/kernel/qevent.cpp @@ -3023,7 +3023,7 @@ QShowEvent::~QShowEvent() This event is only used to notify the application of a request. It may be safely ignored. - \note This class is currently supported for Mac Os X only. + \note This class is currently supported for Mac OS X only. */ /*! @@ -3066,6 +3066,8 @@ QFileOpenEvent::~QFileOpenEvent() \fn QUrl QFileOpenEvent::url() const Returns the url that is being opened. + + \since 4.6 */ QUrl QFileOpenEvent::url() const { -- cgit v0.12 From 6d84ab27595ad9b570ccaf5a3230e83aa878ef06 Mon Sep 17 00:00:00 2001 From: Denis Dzyubenko Date: Tue, 15 Dec 2009 17:07:13 +0100 Subject: An optimisation to QTextStream Using QLocale::operator== is faster than comparing languages, because when getting a language from a default constructed QLocale object, it initializes the system locale and quieries the system which languge it supports. Reviewed-by: Olivier Goffart --- src/corelib/io/qtextstream.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/corelib/io/qtextstream.cpp b/src/corelib/io/qtextstream.cpp index 594718e..47f340c 100644 --- a/src/corelib/io/qtextstream.cpp +++ b/src/corelib/io/qtextstream.cpp @@ -440,7 +440,7 @@ QTextStreamPrivate::QTextStreamPrivate(QTextStream *q_ptr) readConverterSavedState(0), #endif readConverterSavedStateOffset(0), - locale(QLocale::C) + locale(QLocale::c()) { this->q_ptr = q_ptr; reset(); @@ -1806,8 +1806,7 @@ QTextStreamPrivate::NumberParsingStatus QTextStreamPrivate::getNumber(qulonglong if (ch.isDigit()) { val *= 10; val += ch.digitValue(); - } else if (locale.language() != QLocale::C - && ch == locale.groupSeparator()) { + } else if (locale != QLocale::c() && ch == locale.groupSeparator()) { continue; } else { ungetChar(ch); @@ -1958,7 +1957,7 @@ bool QTextStreamPrivate::getReal(double *f) else if (lc == locale.negativeSign().toLower() || lc == locale.positiveSign().toLower()) input = InputSign; - else if (locale.language() != QLocale::C // backward-compatibility + else if (locale != QLocale::c() // backward-compatibility && lc == locale.groupSeparator().toLower()) input = InputDigit; // well, it isn't a digit, but no one cares. else @@ -2283,7 +2282,7 @@ bool QTextStreamPrivate::putNumber(qulonglong number, bool negative) // add thousands group separators. For backward compatibility we // don't add a group separator for C locale. - if (locale.language() != QLocale::C) + if (locale != QLocale::c()) flags |= QLocalePrivate::ThousandsGroup; const QLocalePrivate *dd = locale.d(); -- cgit v0.12 From cbe70d58bc1667b2e09f78a5d4427e7d071a2354 Mon Sep 17 00:00:00 2001 From: Denis Dzyubenko Date: Wed, 16 Dec 2009 15:44:11 +0100 Subject: Fixed wheel event delivery in graphicsview. We don't need to flip the y-coordinate of window- and view-local coordinates because they are flipped already. Reviewed-by: Prasanth --- src/gui/kernel/qcocoaview_mac.mm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/kernel/qcocoaview_mac.mm b/src/gui/kernel/qcocoaview_mac.mm index ddd8ca6..6c06746 100644 --- a/src/gui/kernel/qcocoaview_mac.mm +++ b/src/gui/kernel/qcocoaview_mac.mm @@ -777,7 +777,7 @@ extern "C" { NSPoint windowPoint = [theEvent locationInWindow]; NSPoint globalPoint = [[theEvent window] convertBaseToScreen:windowPoint]; NSPoint localPoint = [self convertPoint:windowPoint fromView:nil]; - QPoint qlocal = QPoint(localPoint.x, flipYCoordinate(localPoint.y)); + QPoint qlocal = QPoint(localPoint.x, localPoint.y); QPoint qglobal = QPoint(globalPoint.x, flipYCoordinate(globalPoint.y)); Qt::MouseButtons buttons = QApplication::mouseButtons(); bool wheelOK = false; -- cgit v0.12 From 11ec7b3694feed8514f9559c7b732ad6217e88c6 Mon Sep 17 00:00:00 2001 From: Rohan McGovern Date: Thu, 17 Dec 2009 10:27:37 +1000 Subject: Disable benchlibwalltime test. The test is inherently dependent on the timing behavior of the test machine. For now, it seems too difficult to ensure this works everywhere. --- tests/auto/selftests/tst_selftests.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/auto/selftests/tst_selftests.cpp b/tests/auto/selftests/tst_selftests.cpp index 579f4eb..ed3b08e 100644 --- a/tests/auto/selftests/tst_selftests.cpp +++ b/tests/auto/selftests/tst_selftests.cpp @@ -182,12 +182,12 @@ void tst_Selftests::runSubTest_data() #endif QTest::newRow("benchlibeventcounter") << "benchlibeventcounter" << QStringList("-eventcounter"); QTest::newRow("benchliboptions") << "benchliboptions" << QStringList("-eventcounter"); - QTest::newRow("benchlibwalltime") << "benchlibwalltime" << QStringList(); - //### This test is affected by the speed of the CPU and whether the tick counter is - //### monotonically increasing. It won't work on some machines so leave it off by default. + //### These tests are affected by timing and whether the CPU tick counter is + //### monotonically increasing. They won't work on some machines so leave them off by default. //### Feel free to uncomment for your own testing. #if 0 + QTest::newRow("benchlibwalltime") << "benchlibwalltime" << QStringList(); QTest::newRow("benchlibtickcounter") << "benchlibtickcounter" << QStringList("-tickcounter"); #endif -- cgit v0.12 From bc01bb10da23d0d2308cf02a16947be836bc9a21 Mon Sep 17 00:00:00 2001 From: "Bradley T. Hughes" Date: Thu, 17 Dec 2009 10:20:46 +0100 Subject: Avoid timer starvation when handling many X11 events After commit d0d0fdb8e46351b4ab8492de31e5363ef6662b57, timers are normally run at idle priority. This makes it possible for the X11 handler to starve timers indefinitely. Fix this by enforcing one normal priority pass of the timer source after we have processed all X11 events. This has the added benefit of keeping animation timers smooth and consistent, which is the intention of this change. Reviewed-by: Jens Bache-Wiig --- src/corelib/kernel/qeventdispatcher_glib.cpp | 5 +++++ src/corelib/kernel/qeventdispatcher_glib_p.h | 2 ++ src/gui/kernel/qguieventdispatcher_glib.cpp | 2 ++ 3 files changed, 9 insertions(+) diff --git a/src/corelib/kernel/qeventdispatcher_glib.cpp b/src/corelib/kernel/qeventdispatcher_glib.cpp index 665b73e..16871c3 100644 --- a/src/corelib/kernel/qeventdispatcher_glib.cpp +++ b/src/corelib/kernel/qeventdispatcher_glib.cpp @@ -341,6 +341,11 @@ QEventDispatcherGlibPrivate::QEventDispatcherGlibPrivate(GMainContext *context) g_source_attach(&idleTimerSource->source, mainContext); } +void QEventDispatcherGlibPrivate::runTimersOnceWithNormalPriority() +{ + timerSource->runWithIdlePriority = false; +} + QEventDispatcherGlib::QEventDispatcherGlib(QObject *parent) : QAbstractEventDispatcher(*(new QEventDispatcherGlibPrivate), parent) { diff --git a/src/corelib/kernel/qeventdispatcher_glib_p.h b/src/corelib/kernel/qeventdispatcher_glib_p.h index 6a4e726..57cbf94 100644 --- a/src/corelib/kernel/qeventdispatcher_glib_p.h +++ b/src/corelib/kernel/qeventdispatcher_glib_p.h @@ -110,6 +110,8 @@ public: GSocketNotifierSource *socketNotifierSource; GTimerSource *timerSource; GIdleTimerSource *idleTimerSource; + + void runTimersOnceWithNormalPriority(); }; QT_END_NAMESPACE diff --git a/src/gui/kernel/qguieventdispatcher_glib.cpp b/src/gui/kernel/qguieventdispatcher_glib.cpp index f8a638c..a252499 100644 --- a/src/gui/kernel/qguieventdispatcher_glib.cpp +++ b/src/gui/kernel/qguieventdispatcher_glib.cpp @@ -152,6 +152,8 @@ static gboolean x11EventSourceDispatch(GSource *s, GSourceFunc callback, gpointe out: + source->d->runTimersOnceWithNormalPriority(); + if (callback) callback(user_data); return true; -- cgit v0.12 From 274afe71968739b3387d0250baa59845e912e0c0 Mon Sep 17 00:00:00 2001 From: Prasanth Ullattil Date: Thu, 17 Dec 2009 10:20:03 +0100 Subject: Stack overflow when closing a Color panel in Cocoa. The QCocoaColorPanelDelegate was going into an infinite recrusion in this particular case. The patch guards the delegate from calling accept() or reject() more than once. Task-number: QTBUG-6636 Reviewed-by: Richard Moe Gustavsen --- src/gui/dialogs/qcolordialog_mac.mm | 35 +++++++++++++++++++++++------------ 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/src/gui/dialogs/qcolordialog_mac.mm b/src/gui/dialogs/qcolordialog_mac.mm index 53d2e1e..5753954 100644 --- a/src/gui/dialogs/qcolordialog_mac.mm +++ b/src/gui/dialogs/qcolordialog_mac.mm @@ -79,6 +79,7 @@ QT_USE_NAMESPACE BOOL mHackedPanel; NSInteger mResultCode; BOOL mDialogIsExecuting; + BOOL mResultSet; } - (id)initWithColorPanel:(NSColorPanel *)panel stolenContentView:(NSView *)stolenContentView @@ -116,6 +117,7 @@ QT_USE_NAMESPACE mHackedPanel = (okButton != 0); mResultCode = NSCancelButton; mDialogIsExecuting = false; + mResultSet = false; if (mHackedPanel) { [self relayout]; @@ -159,11 +161,13 @@ QT_USE_NAMESPACE - (BOOL)windowShouldClose:(id)window { Q_UNUSED(window); - if (mHackedPanel) { - [self onCancelClicked]; - } else { + if (!mHackedPanel) [self updateQtColor]; + if (mDialogIsExecuting) { [self finishOffWithCode:NSCancelButton]; + } else { + mResultSet = true; + mPriv->colorDialog()->reject(); } return true; } @@ -240,11 +244,12 @@ QT_USE_NAMESPACE - (void)onCancelClicked { - Q_ASSERT(mHackedPanel); - [[mStolenContentView window] close]; - delete mQtColor; - mQtColor = new QColor(); - [self finishOffWithCode:NSCancelButton]; + if (mHackedPanel) { + [[mStolenContentView window] close]; + delete mQtColor; + mQtColor = new QColor(); + [self finishOffWithCode:NSCancelButton]; + } } - (void)updateQtColor @@ -306,10 +311,16 @@ QT_USE_NAMESPACE } else { // Since we are not in a modal event loop, we can safely close // down QColorDialog - if (mResultCode == NSCancelButton) - mPriv->colorDialog()->reject(); - else - mPriv->colorDialog()->accept(); + // Calling accept() or reject() can in turn call closeCocoaColorPanel. + // This check will prevent any such recursion. + if (!mResultSet) { + mResultSet = true; + if (mResultCode == NSCancelButton) { + mPriv->colorDialog()->reject(); + } else { + mPriv->colorDialog()->accept(); + } + } } } -- cgit v0.12