From 490bf800e645c4f9c3321315894cdfe57afb2044 Mon Sep 17 00:00:00 2001 From: Jan Arve Saether Date: Fri, 9 Aug 2013 16:14:10 +0200 Subject: Avoid a potential crash in unignoredChildren This doesn't actually fix the source of the problem, but its harmless. This was reproduced with tst_qcolumnview and voiceover enabled Task-number: QTBUG-32440 Change-Id: Iad27884e1ca9194f911271c16908ef358e4b1875 Reviewed-by: Frederik Gladhorn --- src/plugins/platforms/cocoa/qcocoaaccessibility.mm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/plugins/platforms/cocoa/qcocoaaccessibility.mm b/src/plugins/platforms/cocoa/qcocoaaccessibility.mm index 5649f3ad73..e135f36e78 100644 --- a/src/plugins/platforms/cocoa/qcocoaaccessibility.mm +++ b/src/plugins/platforms/cocoa/qcocoaaccessibility.mm @@ -231,8 +231,7 @@ NSArray *unignoredChildren(id parentObject, QAccessibleInterface *interface) NSMutableArray *kids = [NSMutableArray arrayWithCapacity:numKids]; for (int i = 0; i < numKids; ++i) { QAccessibleInterface *child = interface->child(i); - Q_ASSERT(child); - if (child->state().invalid || child->state().invisible) + if (!child || !child->isValid() || child->state().invalid || child->state().invisible) continue; QAccessible::Id childId = QAccessible::uniqueId(child); -- cgit v1.2.3 From 4aea44c1bf313705f5692c9fefb5883d482775b0 Mon Sep 17 00:00:00 2001 From: Mitch Curtis Date: Tue, 13 Aug 2013 10:00:00 +0200 Subject: Tidy up collidingmice example documentation. Change-Id: I22dc325319389d146a99a5beb1e0c1c78283af63 Reviewed-by: Jerome Pasion --- .../widgets/doc/src/collidingmice-example.qdoc | 54 +++++++++++----------- 1 file changed, 26 insertions(+), 28 deletions(-) diff --git a/examples/widgets/doc/src/collidingmice-example.qdoc b/examples/widgets/doc/src/collidingmice-example.qdoc index 09503b4b9a..563f76c1b7 100644 --- a/examples/widgets/doc/src/collidingmice-example.qdoc +++ b/examples/widgets/doc/src/collidingmice-example.qdoc @@ -48,7 +48,7 @@ application window. We will first review the \c Mouse class to see how to animate - items and detect item collision, and then we will review the \c + items and detect item collisions, and then we will review the \c main() function to see how to put the items into a scene and how to implement the corresponding view. @@ -90,7 +90,7 @@ calling the item's \l {QGraphicsItem::setRotation()}{setRotation()} function we alter the direction in which the mouse will start moving. - When the QGraphicsScene decides to advance the scene a frame it will + When the QGraphicsScene decides to advance the scene by a frame, it will call QGraphicsItem::advance() on each of the items. This enables us to animate our mouse using our reimplementation of the advance() function. @@ -98,10 +98,10 @@ \snippet graphicsview/collidingmice/mouse.cpp 5 \snippet graphicsview/collidingmice/mouse.cpp 6 - First, we don't bother doing any advance if the step is 0 since we want to our advance in - the actual advance (advance() is called twice, once with step == 0 indicating that items - are about to advance and with step == 1 for the actual advance). We also ensure that the - mice stays within a circle with a radius of 150 pixels. + First, we don't bother doing any advance if the step is \c 0. This is because + advance() is called twice: once with step == \c 0, indicating that items + are about to advance, and then with step == \c 1 for the actual advance. + We also ensure that the mouse stays within a circle with a radius of 150 pixels. Note the \l {QGraphicsItem::mapFromScene()}{mapFromScene()} function provided by QGraphicsItem. This function maps a position @@ -126,7 +126,7 @@ the parent's coordinate system. For items with no parent, the given position is interpreted as scene coordinates. QGraphicsItem also provides a \l {QGraphicsItem::}{mapToParent()} function to - map a position given in item coordinates, to the parent's + map a position given in item coordinates to the parent's coordinate system. If the item has no parent, the position will be mapped to the scene's coordinate system instead. @@ -140,7 +140,7 @@ defines the outer bounds of the item as a rectangle. Note that the Graphics View framework uses the bounding rectangle to determine whether the item requires redrawing, so all painting must be - restricted inside this rectangle. + done inside this rectangle. \snippet graphicsview/collidingmice/mouse.cpp 3 @@ -148,7 +148,7 @@ {QGraphicsItem::paint()}{paint()} function to paint the contents of the item; the function paints the item in local coordinates. - Note the painting of the ears: Whenever a mouse item collides with + Note the painting of the ears: whenever a mouse item collides with other mice items its ears are filled with red; otherwise they are filled with dark yellow. We use the QGraphicsScene::collidingItems() function to check if there are @@ -166,17 +166,15 @@ {QGraphicsItem::collidesWithItem()}{collidesWithItem()} function to provide your own custom item and shape collision algorithm. - This completes the \c Mouse class implementation, it is now ready + This completes the \c Mouse class implementation; it is now ready for use. Let's take a look at the \c main() function to see how to implement a scene for the mice and a view for displaying the contents of the scene. \section1 The Main() Function - In this example we have chosen to let the \c main() function - provide the main application window, creating the items and the - scene, putting the items into the scene and creating a - corresponding view. + The \c main() function provides the main application window, + as well as creating the items, their scene, and a corresponding view. \snippet graphicsview/collidingmice/main.cpp 0 @@ -192,18 +190,18 @@ The QGraphicsScene class serves as a container for QGraphicsItems. It also provides functionality that lets you efficiently determine the location of items as well as determining - which items that are visible within an arbitrary area on the + which items are visible within an arbitrary area on the scene. When creating a scene it is recommended to set the scene's - rectangle, i.e., the rectangle that defines the extent of the + rectangle; the rectangle that defines the extent of the scene. It is primarily used by QGraphicsView to determine the view's default scrollable area, and by QGraphicsScene to manage item indexing. If not explicitly set, the scene's default rectangle will be the largest bounding rectangle of all the items - on the scene since the scene was created (i.e., the rectangle will - grow when items are added or moved in the scene, but it will never - shrink). + on the scene since the scene was created. This means that the + rectangle will grow when items are added or moved in the scene, + but it will never shrink. \snippet graphicsview/collidingmice/main.cpp 2 @@ -213,8 +211,8 @@ searched. Adding, moving and removing items, however, is done in constant time. This approach is ideal for dynamic scenes, where many items are added, moved or removed continuously. The - alternative is \l {QGraphicsScene::BspTreeIndex}{BspTreeIndex} - which makes use of binary search resulting in item location + alternative is \l {QGraphicsScene::BspTreeIndex}{BspTreeIndex}, + which makes use of a binary search to achieve item location algorithms that are of an order closer to logarithmic complexity. \snippet graphicsview/collidingmice/main.cpp 3 @@ -223,9 +221,9 @@ \snippet graphicsview/collidingmice/main.cpp 4 - To be able to view the scene we must also create a QGraphicsView + To be able to view the scene, we must also create a QGraphicsView widget. The QGraphicsView class visualizes the contents of a scene - in a scrollable viewport. We also ensure that the contents is + in a scrollable viewport. We also ensure that the contents are rendered using antialiasing, and we create the cheese background by setting the view's background brush. @@ -240,14 +238,14 @@ Then we set the cache mode; QGraphicsView can cache pre-rendered content in a pixmap, which is then drawn onto the viewport. The purpose of such caching is to speed up the total rendering time - for areas that are slow to render, e.g., texture, gradient and + for areas that are slow to render, for example: texture, gradient, and alpha blended backgrounds. The \l {QGraphicsView::CacheMode}{CacheMode} property holds which parts - of the view that are cached, and the \l + of the view are cached, and the \l {QGraphicsView::CacheBackground}{CacheBackground} flag enables caching of the view's background. - By setting the \l {QGraphicsView::dragMode}{dragMode} property we + By setting the \l {QGraphicsView::dragMode}{dragMode} property, we define what should happen when the user clicks on the scene background and drags the mouse. The \l {QGraphicsView::ScrollHandDrag}{ScrollHandDrag} flag makes the @@ -264,9 +262,9 @@ advance() slot of the scene. Every time the timer fires, the scene will advance one frame. - We then tell the timer to fire every 1000/33 millisecond. This will + We then tell the timer to fire every 1000/33 milliseconds. This will give us a frame rate of 30 frames a second, which is fast enough for most - animations. Doing the animation with a single timer connect to advance the + animations. Doing the animation with a single timer connection to advance the scene ensures that all the mice are moved at one point and, more importantly, only one update is sent to the screen after all the mice have moved. -- cgit v1.2.3 From 0f79f802be101485950e63b294982eba80558355 Mon Sep 17 00:00:00 2001 From: Jerome Pasion Date: Tue, 13 Aug 2013 14:47:29 +0200 Subject: Doc: Adding link to Qt for BlackBerry wiki as external page Change-Id: I6a93c7b55a90c8616ec67a5cc9b510cc876ed7e2 Reviewed-by: Martin Smith --- doc/global/externalsites/qt-webpages.qdoc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/doc/global/externalsites/qt-webpages.qdoc b/doc/global/externalsites/qt-webpages.qdoc index 1bb6228ed1..e94aee0980 100644 --- a/doc/global/externalsites/qt-webpages.qdoc +++ b/doc/global/externalsites/qt-webpages.qdoc @@ -105,3 +105,8 @@ \externalpage http://qt-project.org/wiki/Qt-Localization \title external: Translating Qt Into Other Languages */ + +/*! + \externalpage http://qt-project.org/wiki/BlackBerry + \title Qt for BlackBerry +*/ -- cgit v1.2.3 From 7510aad98ec4a44335257ccc932381c1f61f9ce6 Mon Sep 17 00:00:00 2001 From: Venu Date: Tue, 13 Aug 2013 15:06:02 +0200 Subject: Doc: Updated the tagged examples list for Android Removed the Boxes example from the list as it requires OpenGL. Task-number: QTBUG-32953 Change-Id: Ieb186afde0a87b12d7ab48037b31ae5895740d60 Reviewed-by: Eskil Abrahamsen Blomfeldt --- doc/global/manifest-meta.qdocconf | 1 - 1 file changed, 1 deletion(-) diff --git a/doc/global/manifest-meta.qdocconf b/doc/global/manifest-meta.qdocconf index ccf3622be9..6b55e0dbad 100644 --- a/doc/global/manifest-meta.qdocconf +++ b/doc/global/manifest-meta.qdocconf @@ -108,7 +108,6 @@ manifestmeta.android.names = "QtQuick/Qt Quick Demo - Maroon*" \ "QtWidgets/Regular Expressions Example" \ "QtWidgets/Colliding Mice Example" \ "QtWidgets/Basic Graphics Layouts Example" \ - "QtWidgets/Boxes" \ "QtWidgets/40000 Chips" \ "QtWidgets/Diagram Scene Example" \ "QtWidgets/Drag and Drop Robot Example" \ -- cgit v1.2.3 From 5b32132762cdaeb558833d5e36629b4248d4be48 Mon Sep 17 00:00:00 2001 From: Gatis Paeglis Date: Tue, 13 Aug 2013 22:13:30 +0200 Subject: Fix escaped compose key parsing This patch fixes the issue when the escape '\' character was interpreted as a compose value. On the whole en_US.UTF-8 Compose file it only affects the following sequences: : "\"" quotedbl # REVERSE SOLIDUS : "\\" backslash # REVERSE SOLIDUS : "\\" backslash # REVERSE SOLIDUS : "\\" backslash # REVERSE SOLIDUS By coincidence the last 3 sequences were working even before this fix. Task-number: QTBUG-32972 Change-Id: Ia4fc2156d982cf2918d0d1be6ee07706cfbfd091 Reviewed-by: Thiago Macieira Reviewed-by: Lars Knoll --- .../platforminputcontexts/compose/generator/qtablegenerator.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.cpp b/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.cpp index f746207cc0..803faaf08a 100644 --- a/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.cpp +++ b/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.cpp @@ -342,7 +342,8 @@ void TableGenerator::parseKeySequence(QString line) } } else { // handle direct text encoded in the locale - elem.value = valueType.unicode(); + const QChar localeValueType = (valueType == '\\') ? line.at(composeValueIndex + 1) : valueType; + elem.value = localeValueType.unicode(); } // find the comment -- cgit v1.2.3 From 1044f23deec0e6bee6455fee9cd8793b3fb65c60 Mon Sep 17 00:00:00 2001 From: Gatis Paeglis Date: Wed, 7 Aug 2013 17:15:49 +0200 Subject: Fix QKeyEvent::isAutoRepeat on Mac Task-number: QTBUG-21500 Change-Id: Ifed85ddcdecd30453207728b0f376baa2abf6e66 Reviewed-by: Gabriel de Dietrich --- src/plugins/platforms/cocoa/qnsview.mm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/platforms/cocoa/qnsview.mm b/src/plugins/platforms/cocoa/qnsview.mm index aff93dd133..4ffab289f0 100644 --- a/src/plugins/platforms/cocoa/qnsview.mm +++ b/src/plugins/platforms/cocoa/qnsview.mm @@ -967,7 +967,7 @@ static QTouchDevice *touchDevice = 0; if (m_sendKeyEvent && m_composingText.isEmpty()) QWindowSystemInterface::handleExtendedKeyEvent(m_window, timestamp, QEvent::Type(eventType), keyCode, modifiers, - nativeScanCode, nativeVirtualKey, nativeModifiers, text); + nativeScanCode, nativeVirtualKey, nativeModifiers, text, [nsevent isARepeat]); m_sendKeyEvent = false; } -- cgit v1.2.3 From 3e4c9cb3d6177c8feb4d57f900f118596f7b3c18 Mon Sep 17 00:00:00 2001 From: Daiwei Li Date: Tue, 13 Aug 2013 15:58:41 -0700 Subject: Cocoa: Set window title after setting window flags if window has border A QWindow should keep its title after removing and restoring the frame, so set it if we are setting window flags that include a frame. Task-number: QTBUG-32978 Change-Id: I0fe1b651eac05a210b06ec4f7f6fb78f2536834d Reviewed-by: Gabriel de Dietrich --- src/plugins/platforms/cocoa/qcocoawindow.mm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/plugins/platforms/cocoa/qcocoawindow.mm b/src/plugins/platforms/cocoa/qcocoawindow.mm index 1126315126..26869d4b5f 100644 --- a/src/plugins/platforms/cocoa/qcocoawindow.mm +++ b/src/plugins/platforms/cocoa/qcocoawindow.mm @@ -486,6 +486,9 @@ void QCocoaWindow::setWindowFlags(Qt::WindowFlags flags) [m_nsWindow setStyleMask:styleMask]; [m_nsWindow setLevel:level]; setWindowShadow(flags); + if (!(styleMask & NSBorderlessWindowMask)) { + setWindowTitle(window()->title()); + } } m_windowFlags = flags; -- cgit v1.2.3 From a8467780fb9f3ac97a05f3acdc07f9cee93a5d23 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Tue, 13 Aug 2013 13:29:07 -0700 Subject: Don't compile qcryptographichash into configure.exe It doesn't need it. Change-Id: I74a8b382fa77ba5bcdabd5b901742bec645ff0c8 Reviewed-by: Oswald Buddenhagen --- tools/configure/Makefile.mingw | 1 - tools/configure/Makefile.win32 | 2 -- 2 files changed, 3 deletions(-) diff --git a/tools/configure/Makefile.mingw b/tools/configure/Makefile.mingw index 7212b0d3a7..1994c9a52b 100644 --- a/tools/configure/Makefile.mingw +++ b/tools/configure/Makefile.mingw @@ -69,7 +69,6 @@ OBJECTS = \ qxmlstream.o \ qxmlutils.o \ quuid.o \ - qcryptographichash.o \ registry.o $(TARGET): $(OBJECTS) diff --git a/tools/configure/Makefile.win32 b/tools/configure/Makefile.win32 index 5b0a21a669..17c2d1089c 100644 --- a/tools/configure/Makefile.win32 +++ b/tools/configure/Makefile.win32 @@ -67,7 +67,6 @@ OBJECTS = \ qxmlstream.obj \ qxmlutils.obj \ quuid.obj \ - qcryptographichash.obj \ registry.obj \ configure_pch.obj @@ -142,7 +141,6 @@ qmalloc.obj: $(CORESRC)\global\qmalloc.cpp $(PCH) qxmlstream.obj: $(CORESRC)\xml\qxmlstream.cpp $(PCH) qxmlutils.obj: $(CORESRC)\xml\qxmlutils.cpp $(PCH) quuid.obj: $(CORESRC)\plugin\quuid.cpp $(PCH) -qcryptographichash.obj: $(CORESRC)\tools\qcryptographichash.cpp $(PCH) {$(CONFSRC)}.cpp{}.obj:: $(CXX) -c $(CXXFLAGS) $< -- cgit v1.2.3 From d5ed6936be137fcb59290b591b46a88e12c34dcd Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Tue, 13 Aug 2013 13:38:45 -0700 Subject: Don't compile MD4, MD5, SHA-2 and SHA-3 into qmake We just need one digest algorithm, any algorithm, to generate a somewhat unique identifier. SHA-1 will suffice. Change-Id: I3cb26bf866d616df3ef32feace10934f19daa1a6 Reviewed-by: Oswald Buddenhagen --- qmake/Makefile.unix | 3 ++- qmake/Makefile.win32 | 2 +- qmake/generators/integrity/gbuild.cpp | 1 - qmake/generators/mac/pbuilder_pbx.cpp | 6 +++--- qmake/generators/win32/msvc_vcproj.cpp | 2 +- qmake/qmake.pri | 2 +- src/corelib/tools/qcryptographichash.cpp | 2 +- 7 files changed, 9 insertions(+), 9 deletions(-) diff --git a/qmake/Makefile.unix b/qmake/Makefile.unix index 9b7bfa6f8b..1a50de8004 100644 --- a/qmake/Makefile.unix +++ b/qmake/Makefile.unix @@ -92,7 +92,8 @@ CPPFLAGS = -g $(EXTRA_CPPFLAGS) \ -I$(SOURCE_PATH)/tools/shared \ -DQT_BUILD_QMAKE -DQT_BOOTSTRAPPED -DPROEVALUATOR_FULL -DPROEVALUATOR_DEBUG \ -DQT_NO_TEXTCODEC -DQT_NO_UNICODETABLES -DQT_NO_COMPONENT -DQT_NO_COMPRESS \ - -DQT_NO_THREAD -DQT_NO_QOBJECT -DQT_NO_GEOM_VARIANT -DQT_NO_DATASTREAM + -DQT_NO_THREAD -DQT_NO_QOBJECT -DQT_NO_GEOM_VARIANT -DQT_NO_DATASTREAM \ + -DQT_CRYPTOGRAPHICHASH_ONLY_SHA1 CXXFLAGS = $(EXTRA_CXXFLAGS) $(CPPFLAGS) diff --git a/qmake/Makefile.win32 b/qmake/Makefile.win32 index 85b5405b41..ac66887b32 100644 --- a/qmake/Makefile.win32 +++ b/qmake/Makefile.win32 @@ -41,7 +41,7 @@ CFLAGS_BARE = -c -Fo./ \ -DQT_BUILD_QMAKE -DQT_BOOTSTRAPPED -DPROEVALUATOR_FULL -DPROEVALUATOR_DEBUG \ -DQT_NO_TEXTCODEC -DQT_NO_UNICODETABLES -DQT_NO_COMPONENT -DQT_NO_COMPRESS \ -DQT_NO_THREAD -DQT_NO_QOBJECT -DQT_NO_GEOM_VARIANT -DQT_NO_DATASTREAM \ - -DUNICODE + -DUNICODE -DQT_CRYPTOGRAPHICHASH_ONLY_SHA1 CFLAGS = -Yuqmake_pch.h -FIqmake_pch.h -Fpqmake_pch.pch $(CFLAGS_BARE) $(CFLAGS) $(EXTRA_CPPFLAGS) CXXFLAGS_BARE = $(CFLAGS_BARE) diff --git a/qmake/generators/integrity/gbuild.cpp b/qmake/generators/integrity/gbuild.cpp index f6bd448cba..8a3a75b7d9 100644 --- a/qmake/generators/integrity/gbuild.cpp +++ b/qmake/generators/integrity/gbuild.cpp @@ -44,7 +44,6 @@ #include "meta.h" #include #include -#include #include #include #include diff --git a/qmake/generators/mac/pbuilder_pbx.cpp b/qmake/generators/mac/pbuilder_pbx.cpp index 41e5754251..e634f6976e 100644 --- a/qmake/generators/mac/pbuilder_pbx.cpp +++ b/qmake/generators/mac/pbuilder_pbx.cpp @@ -66,9 +66,9 @@ QT_BEGIN_NAMESPACE using namespace QMakeInternal; -static QString qtMD5(const QByteArray &src) +static QString qtSha1(const QByteArray &src) { - QByteArray digest = QCryptographicHash::hash(src, QCryptographicHash::Md5); + QByteArray digest = QCryptographicHash::hash(src, QCryptographicHash::Sha1); return QString::fromLatin1(digest.toHex()); } @@ -1545,7 +1545,7 @@ ProjectBuilderMakefileGenerator::keyFor(const QString &block) #endif QString ret; if(!keys.contains(block)) { - ret = qtMD5(block.toUtf8()).left(24).toUpper(); + ret = qtSha1(block.toUtf8()).left(24).toUpper(); keys.insert(block, ret); } else { ret = keys[block]; diff --git a/qmake/generators/win32/msvc_vcproj.cpp b/qmake/generators/win32/msvc_vcproj.cpp index dfcb0ec352..d550748c9b 100644 --- a/qmake/generators/win32/msvc_vcproj.cpp +++ b/qmake/generators/win32/msvc_vcproj.cpp @@ -340,7 +340,7 @@ QUuid VcprojGenerator::getProjectUUID(const QString &filename) // If none, create one based on the MD5 of absolute project path if(uuid.isNull() || !filename.isEmpty()) { QString abspath = Option::fixPathToLocalOS(filename.isEmpty()?project->first("QMAKE_MAKEFILE").toQString():filename); - QByteArray digest = QCryptographicHash::hash(abspath.toUtf8(), QCryptographicHash::Md5); + QByteArray digest = QCryptographicHash::hash(abspath.toUtf8(), QCryptographicHash::Sha1); memcpy((unsigned char*)(&uuid), digest.constData(), sizeof(QUuid)); validUUID = !uuid.isNull(); uuid.data4[0] = (uuid.data4[0] & 0x3F) | 0x80; // UV_DCE variant diff --git a/qmake/qmake.pri b/qmake/qmake.pri index 66f7964c5f..a642f9bae0 100644 --- a/qmake/qmake.pri +++ b/qmake/qmake.pri @@ -147,7 +147,7 @@ bootstrap { #Qt code CFLAGS += -fhonor-std LFLAGS += -lcpp } - DEFINES *= QT_NO_QOBJECT + DEFINES *= QT_NO_QOBJECT QT_CRYPTOGRAPHICHASH_ONLY_SHA1 } else { CONFIG += qt QT = core diff --git a/src/corelib/tools/qcryptographichash.cpp b/src/corelib/tools/qcryptographichash.cpp index 32f5f0b33a..55195ecd6b 100644 --- a/src/corelib/tools/qcryptographichash.cpp +++ b/src/corelib/tools/qcryptographichash.cpp @@ -46,7 +46,7 @@ #include "../../3rdparty/sha1/sha1.cpp" #ifndef QT_CRYPTOGRAPHICHASH_ONLY_SHA1 -// qdoc only needs SHA-1 +// qdoc and qmake only need SHA-1 #include "../../3rdparty/md5/md5.h" #include "../../3rdparty/md5/md5.cpp" #include "../../3rdparty/md4/md4.h" -- cgit v1.2.3 From 37215efeea7a255e6a0d72bd8f39d476735cc94a Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Tue, 13 Aug 2013 13:42:55 -0700 Subject: Ensure that bootstrapped users of QCryptographicHash only use SHA-1 This reduces code size quite considerably in the bootstrapped tools. Change-Id: I7475650b1936e93afcf327cb4def2f7763609179 Reviewed-by: Oswald Buddenhagen --- src/corelib/tools/qcryptographichash.cpp | 4 ++++ src/corelib/tools/qcryptographichash.h | 6 +++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/corelib/tools/qcryptographichash.cpp b/src/corelib/tools/qcryptographichash.cpp index 55195ecd6b..f4f465a623 100644 --- a/src/corelib/tools/qcryptographichash.cpp +++ b/src/corelib/tools/qcryptographichash.cpp @@ -45,6 +45,10 @@ #include "../../3rdparty/sha1/sha1.cpp" +#if defined(QT_BOOTSTRAPPED) && !defined(QT_CRYPTOGRAPHICHASH_ONLY_SHA1) +# error "Are you sure you need the other hashing algorithms besides SHA-1?" +#endif + #ifndef QT_CRYPTOGRAPHICHASH_ONLY_SHA1 // qdoc and qmake only need SHA-1 #include "../../3rdparty/md5/md5.h" diff --git a/src/corelib/tools/qcryptographichash.h b/src/corelib/tools/qcryptographichash.h index d4e75c4667..c4f7c3ab4a 100644 --- a/src/corelib/tools/qcryptographichash.h +++ b/src/corelib/tools/qcryptographichash.h @@ -55,9 +55,12 @@ class Q_CORE_EXPORT QCryptographicHash { public: enum Algorithm { +#ifndef QT_CRYPTOGRAPHICHASH_ONLY_SHA1 Md4, Md5, - Sha1, +#endif + Sha1 = 2, +#ifndef QT_CRYPTOGRAPHICHASH_ONLY_SHA1 Sha224, Sha256, Sha384, @@ -66,6 +69,7 @@ public: Sha3_256, Sha3_384, Sha3_512 +#endif }; explicit QCryptographicHash(Algorithm method); -- cgit v1.2.3 From bab29dd76c7b6794e683220c918dca7c3f5a89fd Mon Sep 17 00:00:00 2001 From: Richard Moe Gustavsen Date: Tue, 13 Aug 2013 09:54:40 +0200 Subject: Cocoa: bugfix mouse wheel + modifier keys not working To avoid using modifier keys when releasing a two-finger mouse wheel flick on a trackpad, we listen to event phases. But for a normal mouse, a separate phase NSEventPhaseNone is given. Ensure that we still send modifier keys when that state is reported. Task-number: QTBUG-32098 Change-Id: Ib840dd661b7842ae49127e5a8d42e3666ae2da4e Reviewed-by: Gabriel de Dietrich Reviewed-by: Shawn Rutledge --- src/plugins/platforms/cocoa/qnsview.mm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/plugins/platforms/cocoa/qnsview.mm b/src/plugins/platforms/cocoa/qnsview.mm index 4ffab289f0..a949bb3ea5 100644 --- a/src/plugins/platforms/cocoa/qnsview.mm +++ b/src/plugins/platforms/cocoa/qnsview.mm @@ -872,13 +872,13 @@ static QTouchDevice *touchDevice = 0; #if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7 if ([theEvent respondsToSelector:@selector(scrollingDeltaX)]) { NSEventPhase phase = [theEvent phase]; - if (phase == NSEventPhaseBegan) { + if (phase == NSEventPhaseBegan || phase == NSEventPhaseNone) { currentWheelModifiers = [QNSView convertKeyModifiers:[theEvent modifierFlags]]; } QWindowSystemInterface::handleWheelEvent(m_window, qt_timestamp, qt_windowPoint, qt_screenPoint, pixelDelta, angleDelta, currentWheelModifiers); - if (phase == NSEventPhaseEnded || phase == NSEventPhaseCancelled) { + if (phase == NSEventPhaseEnded || phase == NSEventPhaseCancelled || phase == NSEventPhaseNone) { currentWheelModifiers = Qt::NoModifier; } } else -- cgit v1.2.3 From bff78163f6dc83d833b2097a51453523cfa7b00b Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Tue, 6 Aug 2013 14:08:47 +0200 Subject: QHeaderView::paintSection(): fix visible index handling MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sections may be hidden => QStyleOptionHeader::position must reflect the state seen on the screen. Otherwise styles will give wrong visual results. Task-number: QTBUG-32203 Change-Id: I7ef86496be092bf6f52ec45f757b501f38c3a431 Reviewed-by: Thorbjørn Lund Martsum Reviewed-by: Stephen Kelly --- src/widgets/itemviews/qheaderview.cpp | 24 +++++++- src/widgets/itemviews/qheaderview_p.h | 2 + .../itemviews/qheaderview/tst_qheaderview.cpp | 65 ++++++++++++++++++++++ 3 files changed, 88 insertions(+), 3 deletions(-) diff --git a/src/widgets/itemviews/qheaderview.cpp b/src/widgets/itemviews/qheaderview.cpp index edfbc5c8f1..864a55d2ea 100644 --- a/src/widgets/itemviews/qheaderview.cpp +++ b/src/widgets/itemviews/qheaderview.cpp @@ -2635,11 +2635,13 @@ void QHeaderView::paintSection(QPainter *painter, const QRect &rect, int logical // the section position int visual = visualIndex(logicalIndex); Q_ASSERT(visual != -1); - if (count() == 1) + bool first = d->isFirstVisibleSection(visual); + bool last = d->isLastVisibleSection(visual); + if (first && last) opt.position = QStyleOptionHeader::OnlyOneSection; - else if (visual == 0) + else if (first) opt.position = QStyleOptionHeader::Beginning; - else if (visual == count() - 1) + else if (last) opt.position = QStyleOptionHeader::End; else opt.position = QStyleOptionHeader::Middle; @@ -3062,6 +3064,22 @@ bool QHeaderViewPrivate::isSectionSelected(int section) const return s; } +bool QHeaderViewPrivate::isFirstVisibleSection(int section) const +{ + if (sectionStartposRecalc) + recalcSectionStartPos(); + const SectionItem &item = sectionItems.at(section); + return item.size > 0 && item.calculated_startpos == 0; +} + +bool QHeaderViewPrivate::isLastVisibleSection(int section) const +{ + if (sectionStartposRecalc) + recalcSectionStartPos(); + const SectionItem &item = sectionItems.at(section); + return item.size > 0 && item.calculatedEndPos() == length; +} + /*! \internal Returns the last visible (ie. not hidden) visual index diff --git a/src/widgets/itemviews/qheaderview_p.h b/src/widgets/itemviews/qheaderview_p.h index 7fda0c8873..f886430ba8 100644 --- a/src/widgets/itemviews/qheaderview_p.h +++ b/src/widgets/itemviews/qheaderview_p.h @@ -114,6 +114,8 @@ public: void _q_layoutChanged(); bool isSectionSelected(int section) const; + bool isFirstVisibleSection(int section) const; + bool isLastVisibleSection(int section) const; inline bool rowIntersectsSelection(int row) const { return (selectionModel ? selectionModel->rowIntersectsSelection(row, root) : false); diff --git a/tests/auto/widgets/itemviews/qheaderview/tst_qheaderview.cpp b/tests/auto/widgets/itemviews/qheaderview/tst_qheaderview.cpp index fa67e16db9..548b74f914 100644 --- a/tests/auto/widgets/itemviews/qheaderview/tst_qheaderview.cpp +++ b/tests/auto/widgets/itemviews/qheaderview/tst_qheaderview.cpp @@ -46,6 +46,7 @@ #include #include #include +#include #include #include @@ -59,6 +60,20 @@ typedef QList IntList; typedef QList BoolList; +class TestStyle : public QProxyStyle +{ +public: + void drawControl(ControlElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget) const + { + if (element == CE_HeaderSection) { + if (const QStyleOptionHeader *header = qstyleoption_cast(option)) + lastPosition = header->position; + } + QProxyStyle::drawControl(element, option, painter, widget); + } + mutable QStyleOptionHeader::SectionPosition lastPosition; +}; + class protected_QHeaderView : public QHeaderView { Q_OBJECT @@ -229,6 +244,7 @@ private slots: void mixedTests(); void resizeToContentTest(); void testStreamWithHide(); + void testStylePosition(); protected: void setupTestData(bool use_reset_model = false); @@ -2732,5 +2748,54 @@ void tst_QHeaderView::testStreamWithHide() #endif } +void tst_QHeaderView::testStylePosition() +{ + topLevel->show(); + QVERIFY(QTest::qWaitForWindowExposed(topLevel)); + + protected_QHeaderView *header = static_cast(view); + + TestStyle proxy; + header->setStyle(&proxy); + + QImage image(1, 1, QImage::Format_ARGB32); + QPainter p(&image); + + // 0, 1, 2, 3 + header->paintSection(&p, view->rect(), 0); + QCOMPARE(proxy.lastPosition, QStyleOptionHeader::Beginning); + header->paintSection(&p, view->rect(), 1); + QCOMPARE(proxy.lastPosition, QStyleOptionHeader::Middle); + header->paintSection(&p, view->rect(), 2); + QCOMPARE(proxy.lastPosition, QStyleOptionHeader::Middle); + header->paintSection(&p, view->rect(), 3); + QCOMPARE(proxy.lastPosition, QStyleOptionHeader::End); + + // (0),2,1,3 + view->setSectionHidden(0, true); + view->swapSections(1, 2); + header->paintSection(&p, view->rect(), 1); + QCOMPARE(proxy.lastPosition, QStyleOptionHeader::Middle); + header->paintSection(&p, view->rect(), 2); + QCOMPARE(proxy.lastPosition, QStyleOptionHeader::Beginning); + header->paintSection(&p, view->rect(), 3); + QCOMPARE(proxy.lastPosition, QStyleOptionHeader::End); + + // (1),2,0,(3) + view->setSectionHidden(3, true); + view->setSectionHidden(0, false); + view->setSectionHidden(1, true); + view->swapSections(0, 1); + header->paintSection(&p, view->rect(), 0); + QCOMPARE(proxy.lastPosition, QStyleOptionHeader::End); + header->paintSection(&p, view->rect(), 2); + QCOMPARE(proxy.lastPosition, QStyleOptionHeader::Beginning); + + // (1),2,(0),(3) + view->setSectionHidden(0, true); + header->paintSection(&p, view->rect(), 2); + QCOMPARE(proxy.lastPosition, QStyleOptionHeader::OnlyOneSection); +} + QTEST_MAIN(tst_QHeaderView) #include "tst_qheaderview.moc" -- cgit v1.2.3 From 3ea974178ae6fb16048cbd75a32908833ece2cf4 Mon Sep 17 00:00:00 2001 From: Bjoern Breitmeyer Date: Fri, 9 Aug 2013 14:08:17 +0200 Subject: Remove not supported mkspecs for Windows CE. Windows CE 5 and the depending Windows Mobile is not supported. Change-Id: I81b9599f837590a1375b6340e58c47b478c079ba Reviewed-by: Joerg Bornemann --- .../default_post.prf | 7 ---- mkspecs/wince50standard-armv4i-msvc2005/qmake.conf | 23 ------------ .../qplatformdefs.h | 43 ---------------------- .../default_post.prf | 1 - mkspecs/wince50standard-armv4i-msvc2008/qmake.conf | 3 -- .../qplatformdefs.h | 43 ---------------------- .../default_post.prf | 7 ---- mkspecs/wince50standard-mipsii-msvc2005/qmake.conf | 24 ------------ .../qplatformdefs.h | 43 ---------------------- .../default_post.prf | 1 - mkspecs/wince50standard-mipsii-msvc2008/qmake.conf | 3 -- .../qplatformdefs.h | 43 ---------------------- mkspecs/wince50standard-mipsiv-msvc2005/qmake.conf | 24 ------------ .../qplatformdefs.h | 43 ---------------------- mkspecs/wince50standard-mipsiv-msvc2008/qmake.conf | 3 -- .../qplatformdefs.h | 43 ---------------------- mkspecs/wince50standard-sh4-msvc2005/qmake.conf | 23 ------------ .../wince50standard-sh4-msvc2005/qplatformdefs.h | 43 ---------------------- mkspecs/wince50standard-sh4-msvc2008/qmake.conf | 3 -- .../wince50standard-sh4-msvc2008/qplatformdefs.h | 43 ---------------------- .../wince50standard-x86-msvc2005/default_post.prf | 6 --- mkspecs/wince50standard-x86-msvc2005/qmake.conf | 21 ----------- .../wince50standard-x86-msvc2005/qplatformdefs.h | 43 ---------------------- .../wince50standard-x86-msvc2008/default_post.prf | 1 - mkspecs/wince50standard-x86-msvc2008/qmake.conf | 3 -- .../wince50standard-x86-msvc2008/qplatformdefs.h | 43 ---------------------- .../default_post.prf | 1 - .../wince70embedded-x86-msvc2008/default_post.prf | 1 - mkspecs/wincewm50pocket-msvc2005/default_post.prf | 7 ---- mkspecs/wincewm50pocket-msvc2005/qmake.conf | 21 ----------- mkspecs/wincewm50pocket-msvc2005/qplatformdefs.h | 43 ---------------------- mkspecs/wincewm50pocket-msvc2008/default_post.prf | 1 - mkspecs/wincewm50pocket-msvc2008/qmake.conf | 3 -- mkspecs/wincewm50pocket-msvc2008/qplatformdefs.h | 43 ---------------------- mkspecs/wincewm50smart-msvc2005/default_post.prf | 7 ---- mkspecs/wincewm50smart-msvc2005/qmake.conf | 21 ----------- mkspecs/wincewm50smart-msvc2005/qplatformdefs.h | 43 ---------------------- mkspecs/wincewm50smart-msvc2008/default_post.prf | 1 - mkspecs/wincewm50smart-msvc2008/qmake.conf | 3 -- mkspecs/wincewm50smart-msvc2008/qplatformdefs.h | 43 ---------------------- .../default_post.prf | 7 ---- mkspecs/wincewm60professional-msvc2005/qmake.conf | 13 ------- .../wincewm60professional-msvc2005/qplatformdefs.h | 43 ---------------------- .../default_post.prf | 1 - mkspecs/wincewm60professional-msvc2008/qmake.conf | 3 -- .../wincewm60professional-msvc2008/qplatformdefs.h | 43 ---------------------- .../wincewm60standard-msvc2005/default_post.prf | 7 ---- mkspecs/wincewm60standard-msvc2005/qmake.conf | 18 --------- mkspecs/wincewm60standard-msvc2005/qplatformdefs.h | 43 ---------------------- .../wincewm60standard-msvc2008/default_post.prf | 1 - mkspecs/wincewm60standard-msvc2008/qmake.conf | 3 -- mkspecs/wincewm60standard-msvc2008/qplatformdefs.h | 43 ---------------------- .../default_post.prf | 1 - mkspecs/wincewm65professional-msvc2005/qmake.conf | 5 --- .../wincewm65professional-msvc2005/qplatformdefs.h | 43 ---------------------- .../default_post.prf | 1 - mkspecs/wincewm65professional-msvc2008/qmake.conf | 3 -- .../wincewm65professional-msvc2008/qplatformdefs.h | 43 ---------------------- 58 files changed, 1142 deletions(-) delete mode 100644 mkspecs/wince50standard-armv4i-msvc2005/default_post.prf delete mode 100644 mkspecs/wince50standard-armv4i-msvc2005/qmake.conf delete mode 100644 mkspecs/wince50standard-armv4i-msvc2005/qplatformdefs.h delete mode 100644 mkspecs/wince50standard-armv4i-msvc2008/default_post.prf delete mode 100644 mkspecs/wince50standard-armv4i-msvc2008/qmake.conf delete mode 100644 mkspecs/wince50standard-armv4i-msvc2008/qplatformdefs.h delete mode 100644 mkspecs/wince50standard-mipsii-msvc2005/default_post.prf delete mode 100644 mkspecs/wince50standard-mipsii-msvc2005/qmake.conf delete mode 100644 mkspecs/wince50standard-mipsii-msvc2005/qplatformdefs.h delete mode 100644 mkspecs/wince50standard-mipsii-msvc2008/default_post.prf delete mode 100644 mkspecs/wince50standard-mipsii-msvc2008/qmake.conf delete mode 100644 mkspecs/wince50standard-mipsii-msvc2008/qplatformdefs.h delete mode 100644 mkspecs/wince50standard-mipsiv-msvc2005/qmake.conf delete mode 100644 mkspecs/wince50standard-mipsiv-msvc2005/qplatformdefs.h delete mode 100644 mkspecs/wince50standard-mipsiv-msvc2008/qmake.conf delete mode 100644 mkspecs/wince50standard-mipsiv-msvc2008/qplatformdefs.h delete mode 100644 mkspecs/wince50standard-sh4-msvc2005/qmake.conf delete mode 100644 mkspecs/wince50standard-sh4-msvc2005/qplatformdefs.h delete mode 100644 mkspecs/wince50standard-sh4-msvc2008/qmake.conf delete mode 100644 mkspecs/wince50standard-sh4-msvc2008/qplatformdefs.h delete mode 100644 mkspecs/wince50standard-x86-msvc2005/default_post.prf delete mode 100644 mkspecs/wince50standard-x86-msvc2005/qmake.conf delete mode 100644 mkspecs/wince50standard-x86-msvc2005/qplatformdefs.h delete mode 100644 mkspecs/wince50standard-x86-msvc2008/default_post.prf delete mode 100644 mkspecs/wince50standard-x86-msvc2008/qmake.conf delete mode 100644 mkspecs/wince50standard-x86-msvc2008/qplatformdefs.h delete mode 100644 mkspecs/wince70embedded-armv4i-msvc2008/default_post.prf delete mode 100644 mkspecs/wince70embedded-x86-msvc2008/default_post.prf delete mode 100644 mkspecs/wincewm50pocket-msvc2005/default_post.prf delete mode 100644 mkspecs/wincewm50pocket-msvc2005/qmake.conf delete mode 100644 mkspecs/wincewm50pocket-msvc2005/qplatformdefs.h delete mode 100644 mkspecs/wincewm50pocket-msvc2008/default_post.prf delete mode 100644 mkspecs/wincewm50pocket-msvc2008/qmake.conf delete mode 100644 mkspecs/wincewm50pocket-msvc2008/qplatformdefs.h delete mode 100644 mkspecs/wincewm50smart-msvc2005/default_post.prf delete mode 100644 mkspecs/wincewm50smart-msvc2005/qmake.conf delete mode 100644 mkspecs/wincewm50smart-msvc2005/qplatformdefs.h delete mode 100644 mkspecs/wincewm50smart-msvc2008/default_post.prf delete mode 100644 mkspecs/wincewm50smart-msvc2008/qmake.conf delete mode 100644 mkspecs/wincewm50smart-msvc2008/qplatformdefs.h delete mode 100644 mkspecs/wincewm60professional-msvc2005/default_post.prf delete mode 100644 mkspecs/wincewm60professional-msvc2005/qmake.conf delete mode 100644 mkspecs/wincewm60professional-msvc2005/qplatformdefs.h delete mode 100644 mkspecs/wincewm60professional-msvc2008/default_post.prf delete mode 100644 mkspecs/wincewm60professional-msvc2008/qmake.conf delete mode 100644 mkspecs/wincewm60professional-msvc2008/qplatformdefs.h delete mode 100644 mkspecs/wincewm60standard-msvc2005/default_post.prf delete mode 100644 mkspecs/wincewm60standard-msvc2005/qmake.conf delete mode 100644 mkspecs/wincewm60standard-msvc2005/qplatformdefs.h delete mode 100644 mkspecs/wincewm60standard-msvc2008/default_post.prf delete mode 100644 mkspecs/wincewm60standard-msvc2008/qmake.conf delete mode 100644 mkspecs/wincewm60standard-msvc2008/qplatformdefs.h delete mode 100644 mkspecs/wincewm65professional-msvc2005/default_post.prf delete mode 100644 mkspecs/wincewm65professional-msvc2005/qmake.conf delete mode 100644 mkspecs/wincewm65professional-msvc2005/qplatformdefs.h delete mode 100644 mkspecs/wincewm65professional-msvc2008/default_post.prf delete mode 100644 mkspecs/wincewm65professional-msvc2008/qmake.conf delete mode 100644 mkspecs/wincewm65professional-msvc2008/qplatformdefs.h diff --git a/mkspecs/wince50standard-armv4i-msvc2005/default_post.prf b/mkspecs/wince50standard-armv4i-msvc2005/default_post.prf deleted file mode 100644 index 900d758cc3..0000000000 --- a/mkspecs/wince50standard-armv4i-msvc2005/default_post.prf +++ /dev/null @@ -1,7 +0,0 @@ -# Visual Studio has some definitions set internally. -# Thus we do not need to redefine these. -equals(TEMPLATE, "vc.*") { - DEFINES -= _M_ARM - QMAKE_CXXFLAGS += -fp:precise -} - diff --git a/mkspecs/wince50standard-armv4i-msvc2005/qmake.conf b/mkspecs/wince50standard-armv4i-msvc2005/qmake.conf deleted file mode 100644 index 5883c75579..0000000000 --- a/mkspecs/wince50standard-armv4i-msvc2005/qmake.conf +++ /dev/null @@ -1,23 +0,0 @@ -# -# qmake configuration for wince50standard-armv4i-msvc2005 -# -# Written for Microsoft VC2005.NET with Standard SDK for WindowsCE 5.0 (ARMV4I) -# -include(../common/wince/qmake.conf) - -CE_SDK = STANDARDSDK_500 -CE_ARCH = ARMV4I - -DEFINES += STANDARDSHELL_UI_MODEL _WIN32_WCE=0x500 $$CE_ARCH _ARMV4I_ armv4i _ARM_ ARM _M_ARM ARM __arm__ Q_OS_WINCE_STD QT_NO_PRINTER QT_NO_PRINTDIALOG - -QMAKE_CFLAGS += -QRarch4T -QRinterwork-return - -QMAKE_LFLAGS_CONSOLE = /SUBSYSTEM:WINDOWSCE,5.00 /MACHINE:THUMB /ENTRY:mainACRTStartup -QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWSCE,5.00 /MACHINE:THUMB -QMAKE_LFLAGS_DLL = /SUBSYSTEM:WINDOWSCE,5.00 /MACHINE:THUMB /DLL -QMAKE_LIBFLAGS = $$QMAKE_LFLAGS_WINDOWS -QMAKE_LIBFLAGS_RELEASE = /LTCG -QMAKE_LIBS = corelibc.lib -QMAKE_LIBS_CORE = corelibc.lib ole32.lib oleaut32.lib uuid.lib commctrl.lib coredll.lib winsock.lib -QMAKE_LIBS_GUI = ceshell.lib ole32.lib $$QMAKE_LIBS_CORE -QMAKE_LIBS_NETWORK = ws2.lib diff --git a/mkspecs/wince50standard-armv4i-msvc2005/qplatformdefs.h b/mkspecs/wince50standard-armv4i-msvc2005/qplatformdefs.h deleted file mode 100644 index 6de176b47c..0000000000 --- a/mkspecs/wince50standard-armv4i-msvc2005/qplatformdefs.h +++ /dev/null @@ -1,43 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of the qmake spec 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 Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/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 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "../common/wince/qplatformdefs.h" - diff --git a/mkspecs/wince50standard-armv4i-msvc2008/default_post.prf b/mkspecs/wince50standard-armv4i-msvc2008/default_post.prf deleted file mode 100644 index 778a2746d6..0000000000 --- a/mkspecs/wince50standard-armv4i-msvc2008/default_post.prf +++ /dev/null @@ -1 +0,0 @@ -include(../wince50standard-armv4i-msvc2005/default_post.prf) diff --git a/mkspecs/wince50standard-armv4i-msvc2008/qmake.conf b/mkspecs/wince50standard-armv4i-msvc2008/qmake.conf deleted file mode 100644 index 16046a34f6..0000000000 --- a/mkspecs/wince50standard-armv4i-msvc2008/qmake.conf +++ /dev/null @@ -1,3 +0,0 @@ -include(../wince50standard-armv4i-msvc2005/qmake.conf) -QMAKE_COMPILER_DEFINES -= _MSC_VER=1400 -QMAKE_COMPILER_DEFINES += _MSC_VER=1500 diff --git a/mkspecs/wince50standard-armv4i-msvc2008/qplatformdefs.h b/mkspecs/wince50standard-armv4i-msvc2008/qplatformdefs.h deleted file mode 100644 index 6de176b47c..0000000000 --- a/mkspecs/wince50standard-armv4i-msvc2008/qplatformdefs.h +++ /dev/null @@ -1,43 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of the qmake spec 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 Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/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 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "../common/wince/qplatformdefs.h" - diff --git a/mkspecs/wince50standard-mipsii-msvc2005/default_post.prf b/mkspecs/wince50standard-mipsii-msvc2005/default_post.prf deleted file mode 100644 index 4dbcf35d6c..0000000000 --- a/mkspecs/wince50standard-mipsii-msvc2005/default_post.prf +++ /dev/null @@ -1,7 +0,0 @@ -# Visual Studio has some definitions set internally. -# Thus we do not need to redefine these. -contains(TEMPLATE, "vc.*") { - DEFINES -= _M_MRX000=3000 - QMAKE_CXXFLAGS += -fp:precise -} - diff --git a/mkspecs/wince50standard-mipsii-msvc2005/qmake.conf b/mkspecs/wince50standard-mipsii-msvc2005/qmake.conf deleted file mode 100644 index 40ef0566ae..0000000000 --- a/mkspecs/wince50standard-mipsii-msvc2005/qmake.conf +++ /dev/null @@ -1,24 +0,0 @@ -# -# qmake configuration for wince50standard-mipsii-msvc2005 -# -# Written for Microsoft VC2005.NET with Standard SDK for WindowsCE 5.0 (MIPSII) -# -include(../common/wince/qmake.conf) - -CE_SDK = STANDARDSDK_500 -CE_ARCH = MIPSII - -DEFINES += STANDARDSHELL_UI_MODEL _WIN32_WCE=0x500 _M_MRX000=3000 MIPS _MIPS_ Q_OS_WINCE_STD QT_NO_PRINTER QT_NO_PRINTDIALOG - -QMAKE_CFLAGS += -QMmips2 -QMAKE_CXXFLAGS += -QMmips2 - -QMAKE_LFLAGS_CONSOLE = /SUBSYSTEM:WINDOWSCE,5.00 /MACHINE:MIPS /ENTRY:mainACRTStartup -QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWSCE,5.00 /MACHINE:MIPS -QMAKE_LFLAGS_DLL = /SUBSYSTEM:WINDOWSCE,5.00 /MACHINE:MIPS /DLL -QMAKE_LIBFLAGS = $$QMAKE_LFLAGS_WINDOWS -QMAKE_LIBFLAGS_RELEASE = /LTCG -QMAKE_LIBS = corelibc.lib -QMAKE_LIBS_CORE = corelibc.lib ole32.lib oleaut32.lib uuid.lib commctrl.lib coredll.lib winsock.lib -QMAKE_LIBS_GUI = ceshell.lib ole32.lib $$QMAKE_LIBS_CORE -QMAKE_LIBS_NETWORK = ws2.lib diff --git a/mkspecs/wince50standard-mipsii-msvc2005/qplatformdefs.h b/mkspecs/wince50standard-mipsii-msvc2005/qplatformdefs.h deleted file mode 100644 index 6de176b47c..0000000000 --- a/mkspecs/wince50standard-mipsii-msvc2005/qplatformdefs.h +++ /dev/null @@ -1,43 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of the qmake spec 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 Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/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 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "../common/wince/qplatformdefs.h" - diff --git a/mkspecs/wince50standard-mipsii-msvc2008/default_post.prf b/mkspecs/wince50standard-mipsii-msvc2008/default_post.prf deleted file mode 100644 index d423784958..0000000000 --- a/mkspecs/wince50standard-mipsii-msvc2008/default_post.prf +++ /dev/null @@ -1 +0,0 @@ -include(../wince50standard-mipsii-msvc2005/default_post.prf) diff --git a/mkspecs/wince50standard-mipsii-msvc2008/qmake.conf b/mkspecs/wince50standard-mipsii-msvc2008/qmake.conf deleted file mode 100644 index 457fddec21..0000000000 --- a/mkspecs/wince50standard-mipsii-msvc2008/qmake.conf +++ /dev/null @@ -1,3 +0,0 @@ -include(../wince50standard-mipsii-msvc2005/qmake.conf) -QMAKE_COMPILER_DEFINES -= _MSC_VER=1400 -QMAKE_COMPILER_DEFINES += _MSC_VER=1500 diff --git a/mkspecs/wince50standard-mipsii-msvc2008/qplatformdefs.h b/mkspecs/wince50standard-mipsii-msvc2008/qplatformdefs.h deleted file mode 100644 index 6de176b47c..0000000000 --- a/mkspecs/wince50standard-mipsii-msvc2008/qplatformdefs.h +++ /dev/null @@ -1,43 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of the qmake spec 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 Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/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 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "../common/wince/qplatformdefs.h" - diff --git a/mkspecs/wince50standard-mipsiv-msvc2005/qmake.conf b/mkspecs/wince50standard-mipsiv-msvc2005/qmake.conf deleted file mode 100644 index b94f3f35d9..0000000000 --- a/mkspecs/wince50standard-mipsiv-msvc2005/qmake.conf +++ /dev/null @@ -1,24 +0,0 @@ -# -# qmake configuration for wince50standard-mipsiv-msvc2005 -# -# Written for Microsoft VC2005.NET with Standard SDK for WindowsCE 5.0 (MIPSIV) -# -include(../common/wince/qmake.conf) - -CE_SDK = STANDARDSDK_500 -CE_ARCH = MIPSIV - -DEFINES += STANDARDSHELL_UI_MODEL _WIN32_WCE=0x500 _M_MRX000=4000 MIPS _MIPS_ Q_OS_WINCE_STD QT_NO_PRINTER QT_NO_PRINTDIALOG MIPS_HAS_FPU - -QMAKE_CFLAGS += -QMmips4 -QMAKE_CXXFLAGS += -QMmips4 - -QMAKE_LFLAGS_CONSOLE = /SUBSYSTEM:WINDOWSCE,5.00 /MACHINE:MIPSFPU /ENTRY:mainACRTStartup -QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWSCE,5.00 /MACHINE:MIPSFPU -QMAKE_LFLAGS_DLL = /SUBSYSTEM:WINDOWSCE,5.00 /MACHINE:MIPSFPU /DLL -QMAKE_LIBFLAGS = $$QMAKE_LFLAGS_WINDOWS -QMAKE_LIBFLAGS_RELEASE = /LTCG -QMAKE_LIBS = corelibc.lib -QMAKE_LIBS_CORE = corelibc.lib ole32.lib oleaut32.lib uuid.lib commctrl.lib coredll.lib winsock.lib -QMAKE_LIBS_GUI = ceshell.lib ole32.lib $$QMAKE_LIBS_CORE -QMAKE_LIBS_NETWORK = ws2.lib diff --git a/mkspecs/wince50standard-mipsiv-msvc2005/qplatformdefs.h b/mkspecs/wince50standard-mipsiv-msvc2005/qplatformdefs.h deleted file mode 100644 index 6de176b47c..0000000000 --- a/mkspecs/wince50standard-mipsiv-msvc2005/qplatformdefs.h +++ /dev/null @@ -1,43 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of the qmake spec 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 Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/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 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "../common/wince/qplatformdefs.h" - diff --git a/mkspecs/wince50standard-mipsiv-msvc2008/qmake.conf b/mkspecs/wince50standard-mipsiv-msvc2008/qmake.conf deleted file mode 100644 index 77e773b55c..0000000000 --- a/mkspecs/wince50standard-mipsiv-msvc2008/qmake.conf +++ /dev/null @@ -1,3 +0,0 @@ -include(../wince50standard-mipsiv-msvc2005/qmake.conf) -QMAKE_COMPILER_DEFINES -= _MSC_VER=1400 -QMAKE_COMPILER_DEFINES += _MSC_VER=1500 diff --git a/mkspecs/wince50standard-mipsiv-msvc2008/qplatformdefs.h b/mkspecs/wince50standard-mipsiv-msvc2008/qplatformdefs.h deleted file mode 100644 index 6de176b47c..0000000000 --- a/mkspecs/wince50standard-mipsiv-msvc2008/qplatformdefs.h +++ /dev/null @@ -1,43 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of the qmake spec 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 Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/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 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "../common/wince/qplatformdefs.h" - diff --git a/mkspecs/wince50standard-sh4-msvc2005/qmake.conf b/mkspecs/wince50standard-sh4-msvc2005/qmake.conf deleted file mode 100644 index 3fdfdbfe43..0000000000 --- a/mkspecs/wince50standard-sh4-msvc2005/qmake.conf +++ /dev/null @@ -1,23 +0,0 @@ -# -# qmake configuration for wincestandard50-sh4-msvc2005 -# -# Written for Microsoft VC2005.NET with Standard SDK for WindowsCE 5.0 (SH4) -# -include(../common/wince/qmake.conf) - -CE_SDK = STANDARDSDK_500 -CE_ARCH = SH4 - -DEFINES += STANDARDSHELL_UI_MODEL _WIN32_WCE=0x500 _M_SH SHx _SHX_ Q_OS_WINCE_STD QT_NO_PRINTER QT_NO_PRINTDIALOG - -QMAKE_CFLAGS = -nologo -Zm200 -Zc:wchar_t- -QSsh4 - -QMAKE_LFLAGS_CONSOLE = /SUBSYSTEM:WINDOWSCE,5.00 /ENTRY:mainACRTStartup -QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWSCE,5.00 -QMAKE_LFLAGS_DLL = /SUBSYSTEM:WINDOWSCE,5.00 /DLL -QMAKE_LIBFLAGS = $$QMAKE_LFLAGS_WINDOWS -QMAKE_LIBFLAGS_RELEASE = /LTCG -QMAKE_LIBS = corelibc.lib -QMAKE_LIBS_CORE = corelibc.lib ole32.lib oleaut32.lib uuid.lib commctrl.lib coredll.lib winsock.lib -QMAKE_LIBS_GUI = ceshell.lib ole32.lib $$QMAKE_LIBS_CORE -QMAKE_LIBS_NETWORK = ws2.lib diff --git a/mkspecs/wince50standard-sh4-msvc2005/qplatformdefs.h b/mkspecs/wince50standard-sh4-msvc2005/qplatformdefs.h deleted file mode 100644 index 6de176b47c..0000000000 --- a/mkspecs/wince50standard-sh4-msvc2005/qplatformdefs.h +++ /dev/null @@ -1,43 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of the qmake spec 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 Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/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 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "../common/wince/qplatformdefs.h" - diff --git a/mkspecs/wince50standard-sh4-msvc2008/qmake.conf b/mkspecs/wince50standard-sh4-msvc2008/qmake.conf deleted file mode 100644 index 5deb0462bc..0000000000 --- a/mkspecs/wince50standard-sh4-msvc2008/qmake.conf +++ /dev/null @@ -1,3 +0,0 @@ -include(../wince50standard-sh4-msvc2005/qmake.conf) -QMAKE_COMPILER_DEFINES -= _MSC_VER=1400 -QMAKE_COMPILER_DEFINES += _MSC_VER=1500 diff --git a/mkspecs/wince50standard-sh4-msvc2008/qplatformdefs.h b/mkspecs/wince50standard-sh4-msvc2008/qplatformdefs.h deleted file mode 100644 index 6de176b47c..0000000000 --- a/mkspecs/wince50standard-sh4-msvc2008/qplatformdefs.h +++ /dev/null @@ -1,43 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of the qmake spec 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 Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/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 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "../common/wince/qplatformdefs.h" - diff --git a/mkspecs/wince50standard-x86-msvc2005/default_post.prf b/mkspecs/wince50standard-x86-msvc2005/default_post.prf deleted file mode 100644 index 2436efb207..0000000000 --- a/mkspecs/wince50standard-x86-msvc2005/default_post.prf +++ /dev/null @@ -1,6 +0,0 @@ -# Visual Studio has some definitions set internally. -# Thus we do not need to redefine these. -equals(TEMPLATE, "vc.*") { - QMAKE_CXXFLAGS += -fp:precise -} - diff --git a/mkspecs/wince50standard-x86-msvc2005/qmake.conf b/mkspecs/wince50standard-x86-msvc2005/qmake.conf deleted file mode 100644 index 850711d4c1..0000000000 --- a/mkspecs/wince50standard-x86-msvc2005/qmake.conf +++ /dev/null @@ -1,21 +0,0 @@ -# -# qmake configuration for wince50standard-x86-msvc2005 -# -# Written for Microsoft VC2005.NET with Standard SDK for WindowsCE 5.0 (x86) -# -include(../common/wince/qmake.conf) - -CE_SDK = STANDARDSDK_500 -CE_ARCH = x86 - -DEFINES += STANDARDSHELL_UI_MODEL _WIN32_WCE=0x500 $$CE_ARCH _X86_ _M_IX86 Q_OS_WINCE_STD QT_NO_PRINTER QT_NO_PRINTDIALOG - -QMAKE_LFLAGS_CONSOLE = /SUBSYSTEM:WINDOWSCE,5.00 /MACHINE:X86 /ENTRY:mainACRTStartup -QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWSCE,5.00 /MACHINE:X86 -QMAKE_LFLAGS_DLL = /SUBSYSTEM:WINDOWSCE,5.00 /MACHINE:X86 /DLL /SAFESEH:NO -QMAKE_LIBFLAGS = $$QMAKE_LFLAGS_WINDOWS -QMAKE_LIBFLAGS_RELEASE = /LTCG -QMAKE_LIBS = corelibc.lib coredll.lib -QMAKE_LIBS_CORE = corelibc.lib ole32.lib oleaut32.lib uuid.lib commctrl.lib coredll.lib winsock.lib -QMAKE_LIBS_GUI = ceshell.lib ole32.lib $$QMAKE_LIBS_CORE -QMAKE_LIBS_NETWORK = ws2.lib $$QMAKE_LIBS_GUI diff --git a/mkspecs/wince50standard-x86-msvc2005/qplatformdefs.h b/mkspecs/wince50standard-x86-msvc2005/qplatformdefs.h deleted file mode 100644 index 6de176b47c..0000000000 --- a/mkspecs/wince50standard-x86-msvc2005/qplatformdefs.h +++ /dev/null @@ -1,43 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of the qmake spec 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 Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/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 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "../common/wince/qplatformdefs.h" - diff --git a/mkspecs/wince50standard-x86-msvc2008/default_post.prf b/mkspecs/wince50standard-x86-msvc2008/default_post.prf deleted file mode 100644 index f2d9c33396..0000000000 --- a/mkspecs/wince50standard-x86-msvc2008/default_post.prf +++ /dev/null @@ -1 +0,0 @@ -include(../wince50standard-x86-msvc2005/default_post.prf) diff --git a/mkspecs/wince50standard-x86-msvc2008/qmake.conf b/mkspecs/wince50standard-x86-msvc2008/qmake.conf deleted file mode 100644 index 961147100b..0000000000 --- a/mkspecs/wince50standard-x86-msvc2008/qmake.conf +++ /dev/null @@ -1,3 +0,0 @@ -include(../wince50standard-x86-msvc2005/qmake.conf) -QMAKE_COMPILER_DEFINES -= _MSC_VER=1400 -QMAKE_COMPILER_DEFINES += _MSC_VER=1500 diff --git a/mkspecs/wince50standard-x86-msvc2008/qplatformdefs.h b/mkspecs/wince50standard-x86-msvc2008/qplatformdefs.h deleted file mode 100644 index 6de176b47c..0000000000 --- a/mkspecs/wince50standard-x86-msvc2008/qplatformdefs.h +++ /dev/null @@ -1,43 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of the qmake spec 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 Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/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 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "../common/wince/qplatformdefs.h" - diff --git a/mkspecs/wince70embedded-armv4i-msvc2008/default_post.prf b/mkspecs/wince70embedded-armv4i-msvc2008/default_post.prf deleted file mode 100644 index f2d9c33396..0000000000 --- a/mkspecs/wince70embedded-armv4i-msvc2008/default_post.prf +++ /dev/null @@ -1 +0,0 @@ -include(../wince50standard-x86-msvc2005/default_post.prf) diff --git a/mkspecs/wince70embedded-x86-msvc2008/default_post.prf b/mkspecs/wince70embedded-x86-msvc2008/default_post.prf deleted file mode 100644 index f2d9c33396..0000000000 --- a/mkspecs/wince70embedded-x86-msvc2008/default_post.prf +++ /dev/null @@ -1 +0,0 @@ -include(../wince50standard-x86-msvc2005/default_post.prf) diff --git a/mkspecs/wincewm50pocket-msvc2005/default_post.prf b/mkspecs/wincewm50pocket-msvc2005/default_post.prf deleted file mode 100644 index 84ea15e095..0000000000 --- a/mkspecs/wincewm50pocket-msvc2005/default_post.prf +++ /dev/null @@ -1,7 +0,0 @@ -# Visual Studio has some definitions set internally. -# Thus we do not need to redefine these. -contains(TEMPLATE, "vc.*") { - DEFINES -= _M_ARM - QMAKE_CXXFLAGS += -fp:precise -} - diff --git a/mkspecs/wincewm50pocket-msvc2005/qmake.conf b/mkspecs/wincewm50pocket-msvc2005/qmake.conf deleted file mode 100644 index f92cdb50f9..0000000000 --- a/mkspecs/wincewm50pocket-msvc2005/qmake.conf +++ /dev/null @@ -1,21 +0,0 @@ -# -# qmake configuration for wincepocket50-msvc2005 -# -# Written for Microsoft VC2005.NET with Windows Mobile 5.0 SDK for Pocket PC (ARMV4I) -# -include(../common/wince/qmake.conf) - -CE_SDK = Windows Mobile 5.0 Pocket PC SDK -CE_ARCH = ARMV4I - -DEFINES += _WIN32_WCE=0x501 $$CE_ARCH _ARMV4I_ armv4i _ARM_ ARM _M_ARM ARM __arm__ Q_OS_WINCE_WM QT_NO_PRINTER QT_NO_PRINTDIALOG - -QMAKE_LFLAGS_CONSOLE = /SUBSYSTEM:WINDOWSCE,5.01 /MACHINE:THUMB /ENTRY:mainACRTStartup -QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWSCE,5.01 /MACHINE:THUMB -QMAKE_LFLAGS_DLL = /SUBSYSTEM:WINDOWSCE,5.01 /MACHINE:THUMB /DLL -QMAKE_LIBFLAGS = $$QMAKE_LFLAGS_WINDOWS -QMAKE_LIBFLAGS_RELEASE = /LTCG -QMAKE_LIBS = corelibc.lib -QMAKE_LIBS_CORE = corelibc.lib ole32.lib oleaut32.lib uuid.lib commctrl.lib coredll.lib winsock.lib -QMAKE_LIBS_GUI = ceshell.lib ole32.lib uuid.lib -QMAKE_LIBS_NETWORK = ws2.lib diff --git a/mkspecs/wincewm50pocket-msvc2005/qplatformdefs.h b/mkspecs/wincewm50pocket-msvc2005/qplatformdefs.h deleted file mode 100644 index 6de176b47c..0000000000 --- a/mkspecs/wincewm50pocket-msvc2005/qplatformdefs.h +++ /dev/null @@ -1,43 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of the qmake spec 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 Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/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 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "../common/wince/qplatformdefs.h" - diff --git a/mkspecs/wincewm50pocket-msvc2008/default_post.prf b/mkspecs/wincewm50pocket-msvc2008/default_post.prf deleted file mode 100644 index c4f6ea9390..0000000000 --- a/mkspecs/wincewm50pocket-msvc2008/default_post.prf +++ /dev/null @@ -1 +0,0 @@ -include(../wincewm50pocket-msvc2005/default_post.prf) diff --git a/mkspecs/wincewm50pocket-msvc2008/qmake.conf b/mkspecs/wincewm50pocket-msvc2008/qmake.conf deleted file mode 100644 index a22eef07a9..0000000000 --- a/mkspecs/wincewm50pocket-msvc2008/qmake.conf +++ /dev/null @@ -1,3 +0,0 @@ -include(../wincewm50pocket-msvc2005/qmake.conf) -QMAKE_COMPILER_DEFINES -= _MSC_VER=1400 -QMAKE_COMPILER_DEFINES += _MSC_VER=1500 diff --git a/mkspecs/wincewm50pocket-msvc2008/qplatformdefs.h b/mkspecs/wincewm50pocket-msvc2008/qplatformdefs.h deleted file mode 100644 index 6de176b47c..0000000000 --- a/mkspecs/wincewm50pocket-msvc2008/qplatformdefs.h +++ /dev/null @@ -1,43 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of the qmake spec 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 Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/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 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "../common/wince/qplatformdefs.h" - diff --git a/mkspecs/wincewm50smart-msvc2005/default_post.prf b/mkspecs/wincewm50smart-msvc2005/default_post.prf deleted file mode 100644 index 84ea15e095..0000000000 --- a/mkspecs/wincewm50smart-msvc2005/default_post.prf +++ /dev/null @@ -1,7 +0,0 @@ -# Visual Studio has some definitions set internally. -# Thus we do not need to redefine these. -contains(TEMPLATE, "vc.*") { - DEFINES -= _M_ARM - QMAKE_CXXFLAGS += -fp:precise -} - diff --git a/mkspecs/wincewm50smart-msvc2005/qmake.conf b/mkspecs/wincewm50smart-msvc2005/qmake.conf deleted file mode 100644 index 9ac41c2866..0000000000 --- a/mkspecs/wincewm50smart-msvc2005/qmake.conf +++ /dev/null @@ -1,21 +0,0 @@ -# -# qmake configuration for wincesmart50-msvc2005 -# -# Written for Microsoft VC2005.NET with Windows Mobile 5.0 SDK for Smartphone (ARMV4I) -# -include(../common/wince/qmake.conf) - -CE_SDK = Windows Mobile 5.0 Smartphone SDK -CE_ARCH = ARMV4I - -DEFINES += SMARTPHONE2003_UI_MODEL _WIN32_WCE=0x501 $$CE_ARCH _ARMV4I_ armv4i _ARM_ ARM _M_ARM ARM __arm__ Q_OS_WINCE_WM QT_NO_PRINTER QT_NO_PRINTDIALOG QT_KEYPAD_NAVIGATION - -QMAKE_LFLAGS_CONSOLE = /SUBSYSTEM:WINDOWSCE,5.01 /MACHINE:THUMB /ENTRY:mainACRTStartup -QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWSCE,5.01 /MACHINE:THUMB -QMAKE_LFLAGS_DLL = /SUBSYSTEM:WINDOWSCE,5.01 /MACHINE:THUMB /DLL -QMAKE_LIBFLAGS = $$QMAKE_LFLAGS_WINDOWS -QMAKE_LIBFLAGS_RELEASE = /LTCG -QMAKE_LIBS = corelibc.lib -QMAKE_LIBS_CORE = corelibc.lib ole32.lib oleaut32.lib uuid.lib commctrl.lib coredll.lib winsock.lib -QMAKE_LIBS_GUI = ceshell.lib ole32.lib uuid.lib -QMAKE_LIBS_NETWORK = ws2.lib diff --git a/mkspecs/wincewm50smart-msvc2005/qplatformdefs.h b/mkspecs/wincewm50smart-msvc2005/qplatformdefs.h deleted file mode 100644 index 6de176b47c..0000000000 --- a/mkspecs/wincewm50smart-msvc2005/qplatformdefs.h +++ /dev/null @@ -1,43 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of the qmake spec 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 Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/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 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "../common/wince/qplatformdefs.h" - diff --git a/mkspecs/wincewm50smart-msvc2008/default_post.prf b/mkspecs/wincewm50smart-msvc2008/default_post.prf deleted file mode 100644 index 912944d79d..0000000000 --- a/mkspecs/wincewm50smart-msvc2008/default_post.prf +++ /dev/null @@ -1 +0,0 @@ -include(../wincewm50smart-msvc2005/default_post.prf) diff --git a/mkspecs/wincewm50smart-msvc2008/qmake.conf b/mkspecs/wincewm50smart-msvc2008/qmake.conf deleted file mode 100644 index 847b2f38ac..0000000000 --- a/mkspecs/wincewm50smart-msvc2008/qmake.conf +++ /dev/null @@ -1,3 +0,0 @@ -include(../wincewm50smart-msvc2005/qmake.conf) -QMAKE_COMPILER_DEFINES -= _MSC_VER=1400 -QMAKE_COMPILER_DEFINES += _MSC_VER=1500 diff --git a/mkspecs/wincewm50smart-msvc2008/qplatformdefs.h b/mkspecs/wincewm50smart-msvc2008/qplatformdefs.h deleted file mode 100644 index 6de176b47c..0000000000 --- a/mkspecs/wincewm50smart-msvc2008/qplatformdefs.h +++ /dev/null @@ -1,43 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of the qmake spec 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 Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/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 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "../common/wince/qplatformdefs.h" - diff --git a/mkspecs/wincewm60professional-msvc2005/default_post.prf b/mkspecs/wincewm60professional-msvc2005/default_post.prf deleted file mode 100644 index 84ea15e095..0000000000 --- a/mkspecs/wincewm60professional-msvc2005/default_post.prf +++ /dev/null @@ -1,7 +0,0 @@ -# Visual Studio has some definitions set internally. -# Thus we do not need to redefine these. -contains(TEMPLATE, "vc.*") { - DEFINES -= _M_ARM - QMAKE_CXXFLAGS += -fp:precise -} - diff --git a/mkspecs/wincewm60professional-msvc2005/qmake.conf b/mkspecs/wincewm60professional-msvc2005/qmake.conf deleted file mode 100644 index 029ea08652..0000000000 --- a/mkspecs/wincewm60professional-msvc2005/qmake.conf +++ /dev/null @@ -1,13 +0,0 @@ -include(../wincewm50pocket-msvc2005/qmake.conf) - -CE_SDK = Windows Mobile 6 Professional SDK -CE_ARCH = ARMV4I - -DEFINES -= _WIN32_WCE=0x501 -DEFINES += _WIN32_WCE=0x502 - -QMAKE_LFLAGS_CONSOLE = /SUBSYSTEM:WINDOWSCE,5.02 /MACHINE:THUMB /ENTRY:mainACRTStartup -QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWSCE,5.02 /MACHINE:THUMB -QMAKE_LFLAGS_DLL = /SUBSYSTEM:WINDOWSCE,5.02 /MACHINE:THUMB /DLL -QMAKE_LIBFLAGS = $$QMAKE_LFLAGS_WINDOWS - diff --git a/mkspecs/wincewm60professional-msvc2005/qplatformdefs.h b/mkspecs/wincewm60professional-msvc2005/qplatformdefs.h deleted file mode 100644 index 6de176b47c..0000000000 --- a/mkspecs/wincewm60professional-msvc2005/qplatformdefs.h +++ /dev/null @@ -1,43 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of the qmake spec 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 Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/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 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "../common/wince/qplatformdefs.h" - diff --git a/mkspecs/wincewm60professional-msvc2008/default_post.prf b/mkspecs/wincewm60professional-msvc2008/default_post.prf deleted file mode 100644 index 86bc964a51..0000000000 --- a/mkspecs/wincewm60professional-msvc2008/default_post.prf +++ /dev/null @@ -1 +0,0 @@ -include(../wincewm60professional-msvc2005/default_post.prf) diff --git a/mkspecs/wincewm60professional-msvc2008/qmake.conf b/mkspecs/wincewm60professional-msvc2008/qmake.conf deleted file mode 100644 index 67e7410c7a..0000000000 --- a/mkspecs/wincewm60professional-msvc2008/qmake.conf +++ /dev/null @@ -1,3 +0,0 @@ -include(../wincewm60professional-msvc2005/qmake.conf) -QMAKE_COMPILER_DEFINES -= _MSC_VER=1400 -QMAKE_COMPILER_DEFINES += _MSC_VER=1500 diff --git a/mkspecs/wincewm60professional-msvc2008/qplatformdefs.h b/mkspecs/wincewm60professional-msvc2008/qplatformdefs.h deleted file mode 100644 index 6de176b47c..0000000000 --- a/mkspecs/wincewm60professional-msvc2008/qplatformdefs.h +++ /dev/null @@ -1,43 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of the qmake spec 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 Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/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 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "../common/wince/qplatformdefs.h" - diff --git a/mkspecs/wincewm60standard-msvc2005/default_post.prf b/mkspecs/wincewm60standard-msvc2005/default_post.prf deleted file mode 100644 index 84ea15e095..0000000000 --- a/mkspecs/wincewm60standard-msvc2005/default_post.prf +++ /dev/null @@ -1,7 +0,0 @@ -# Visual Studio has some definitions set internally. -# Thus we do not need to redefine these. -contains(TEMPLATE, "vc.*") { - DEFINES -= _M_ARM - QMAKE_CXXFLAGS += -fp:precise -} - diff --git a/mkspecs/wincewm60standard-msvc2005/qmake.conf b/mkspecs/wincewm60standard-msvc2005/qmake.conf deleted file mode 100644 index aa1ade030a..0000000000 --- a/mkspecs/wincewm60standard-msvc2005/qmake.conf +++ /dev/null @@ -1,18 +0,0 @@ -include(../wincewm50smart-msvc2005/qmake.conf) - -CE_SDK = Windows Mobile 6 Standard SDK -CE_ARCH = ARMV4I - -DEFINES -= _WIN32_WCE=0x501 -DEFINES += _WIN32_WCE=0x502 - -# Windows Mobile 6 Standard edition defines -# GWES_ICONCURS=1 although there is no cursor support - -DEFINES += QT_NO_CURSOR - -QMAKE_LFLAGS_CONSOLE = /SUBSYSTEM:WINDOWSCE,5.02 /MACHINE:THUMB /ENTRY:mainACRTStartup -QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWSCE,5.02 /MACHINE:THUMB -QMAKE_LFLAGS_DLL = /SUBSYSTEM:WINDOWSCE,5.02 /MACHINE:THUMB /DLL -QMAKE_LIBFLAGS = $$QMAKE_LFLAGS_WINDOWS - diff --git a/mkspecs/wincewm60standard-msvc2005/qplatformdefs.h b/mkspecs/wincewm60standard-msvc2005/qplatformdefs.h deleted file mode 100644 index 6de176b47c..0000000000 --- a/mkspecs/wincewm60standard-msvc2005/qplatformdefs.h +++ /dev/null @@ -1,43 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of the qmake spec 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 Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/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 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "../common/wince/qplatformdefs.h" - diff --git a/mkspecs/wincewm60standard-msvc2008/default_post.prf b/mkspecs/wincewm60standard-msvc2008/default_post.prf deleted file mode 100644 index 5e3af26af6..0000000000 --- a/mkspecs/wincewm60standard-msvc2008/default_post.prf +++ /dev/null @@ -1 +0,0 @@ -include(../wincewm60standard-msvc2005/default_post.prf) diff --git a/mkspecs/wincewm60standard-msvc2008/qmake.conf b/mkspecs/wincewm60standard-msvc2008/qmake.conf deleted file mode 100644 index ff184375c1..0000000000 --- a/mkspecs/wincewm60standard-msvc2008/qmake.conf +++ /dev/null @@ -1,3 +0,0 @@ -include(../wincewm60standard-msvc2005/qmake.conf) -QMAKE_COMPILER_DEFINES -= _MSC_VER=1400 -QMAKE_COMPILER_DEFINES += _MSC_VER=1500 diff --git a/mkspecs/wincewm60standard-msvc2008/qplatformdefs.h b/mkspecs/wincewm60standard-msvc2008/qplatformdefs.h deleted file mode 100644 index 6de176b47c..0000000000 --- a/mkspecs/wincewm60standard-msvc2008/qplatformdefs.h +++ /dev/null @@ -1,43 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of the qmake spec 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 Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/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 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "../common/wince/qplatformdefs.h" - diff --git a/mkspecs/wincewm65professional-msvc2005/default_post.prf b/mkspecs/wincewm65professional-msvc2005/default_post.prf deleted file mode 100644 index 86bc964a51..0000000000 --- a/mkspecs/wincewm65professional-msvc2005/default_post.prf +++ /dev/null @@ -1 +0,0 @@ -include(../wincewm60professional-msvc2005/default_post.prf) diff --git a/mkspecs/wincewm65professional-msvc2005/qmake.conf b/mkspecs/wincewm65professional-msvc2005/qmake.conf deleted file mode 100644 index 561c0495c9..0000000000 --- a/mkspecs/wincewm65professional-msvc2005/qmake.conf +++ /dev/null @@ -1,5 +0,0 @@ -include(../wincewm60professional-msvc2005/qmake.conf) - -DEFINES += QT_WINCE_GESTURES -QMAKE_LIBS_GUI += TouchGestureCore.lib - diff --git a/mkspecs/wincewm65professional-msvc2005/qplatformdefs.h b/mkspecs/wincewm65professional-msvc2005/qplatformdefs.h deleted file mode 100644 index 6de176b47c..0000000000 --- a/mkspecs/wincewm65professional-msvc2005/qplatformdefs.h +++ /dev/null @@ -1,43 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of the qmake spec 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 Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/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 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "../common/wince/qplatformdefs.h" - diff --git a/mkspecs/wincewm65professional-msvc2008/default_post.prf b/mkspecs/wincewm65professional-msvc2008/default_post.prf deleted file mode 100644 index c854561843..0000000000 --- a/mkspecs/wincewm65professional-msvc2008/default_post.prf +++ /dev/null @@ -1 +0,0 @@ -include(../wincewm65professional-msvc2005/default_post.prf) diff --git a/mkspecs/wincewm65professional-msvc2008/qmake.conf b/mkspecs/wincewm65professional-msvc2008/qmake.conf deleted file mode 100644 index 552c7c8be7..0000000000 --- a/mkspecs/wincewm65professional-msvc2008/qmake.conf +++ /dev/null @@ -1,3 +0,0 @@ -include(../wincewm65professional-msvc2005/qmake.conf) -QMAKE_COMPILER_DEFINES -= _MSC_VER=1400 -QMAKE_COMPILER_DEFINES += _MSC_VER=1500 diff --git a/mkspecs/wincewm65professional-msvc2008/qplatformdefs.h b/mkspecs/wincewm65professional-msvc2008/qplatformdefs.h deleted file mode 100644 index 6de176b47c..0000000000 --- a/mkspecs/wincewm65professional-msvc2008/qplatformdefs.h +++ /dev/null @@ -1,43 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of the qmake spec 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 Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/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 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "../common/wince/qplatformdefs.h" - -- cgit v1.2.3 From 4e38c2aab3a197225665645c0634df31d4f45bcc Mon Sep 17 00:00:00 2001 From: Irfan Omair Date: Thu, 16 May 2013 06:23:39 -0700 Subject: update the viewport after changing the background Task-number: QTBUG-4359 Change-Id: I218e6a8b3b64e1b518338efb18e8a7eb95ecf2c7 Reviewed-by: Frederik Gladhorn --- src/widgets/widgets/qmdiarea.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/widgets/widgets/qmdiarea.cpp b/src/widgets/widgets/qmdiarea.cpp index b2409e300c..13c9bf8deb 100644 --- a/src/widgets/widgets/qmdiarea.cpp +++ b/src/widgets/widgets/qmdiarea.cpp @@ -2043,7 +2043,7 @@ void QMdiArea::setBackground(const QBrush &brush) if (d->background != brush) { d->background = brush; d->viewport->setAttribute(Qt::WA_OpaquePaintEvent, brush.isOpaque()); - update(); + d->viewport->update(); } } -- cgit v1.2.3 From 99e1608c52e06b542448cc77e51598b881771901 Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Thu, 15 Aug 2013 14:14:39 +0200 Subject: Doc: public test functions in function libraries Task-number: QTBUG-29168 Change-Id: Ife486d65778ee2ac2d6e1e55f26942bda0bbdbb0 Reviewed-by: Oswald Buddenhagen --- qmake/doc/src/qmake-manual.qdoc | 74 ++++++++++++++++++++++ .../doc/src/snippets/code/doc_src_qmake-manual.pro | 61 ++++++++++++++++++ 2 files changed, 135 insertions(+) diff --git a/qmake/doc/src/qmake-manual.qdoc b/qmake/doc/src/qmake-manual.qdoc index 5f8672c163..a6e4e61c7f 100644 --- a/qmake/doc/src/qmake-manual.qdoc +++ b/qmake/doc/src/qmake-manual.qdoc @@ -3066,6 +3066,80 @@ And then, in the code: \snippet snippets/code/doc_src_qmake-manual.pro 158 + + \section2 prepareRecursiveTarget(target) + + Facilitates the creation of project-wide targets similar to the \c install + target by preparing a target that iterates through all subdirectories. For + example: + + \snippet snippets/code/doc_src_qmake-manual.pro 174 + + Subdirs that have \c have_no_default or \c no__target specified in + their .CONFIG are excluded from this target: + + \snippet snippets/code/doc_src_qmake-manual.pro 175 + + You must add the prepared target manually to \l{QMAKE_EXTRA_TARGETS}: + + \snippet snippets/code/doc_src_qmake-manual.pro 176 + + To make the target global, the code above needs to be included into every + subdirs subproject. In addition, to make these targets do anything, + non-subdirs subprojects need to include respective code. The easiest way to + achieve this is creating a custom feature file. For example: + + \snippet snippets/code/doc_src_qmake-manual.pro 177 + + The feature file needs to be injected into each subproject, for example by + .qmake.conf: + + \snippet snippets/code/doc_src_qmake-manual.pro 178 + + \section2 qtCompileTest(test) + + Builds a test project. If the test passes, true is returned and + \c {config_} is added to the \l{CONFIG} variable. Otherwise, false is + returned. + + To make this function available, you need to load the respective feature + file: + + \snippet snippets/code/doc_src_qmake-manual.pro 179 + + This also sets the variable QMAKE_CONFIG_TESTS_DIR to the + \c config.tests subdirectory of the project's parent directory. + It is possible to override this value after loading the feature file. + + Inside the tests directory, there has to be one subdirectory per test that + contains a simple qmake project. The following code snippet illustrates the + .pro file of the project: + + \snippet snippets/code/doc_src_qmake-manual.pro 180 + + The following code snippet illustrates the main .cpp file of the project: + + \snippet snippets/code/doc_src_qmake-manual.pro 181 + + The following code snippet shows the invocation of the test: + + \snippet snippets/code/doc_src_qmake-manual.pro 182 + + If the test project is built successfully, the test passes. + + The test results are automatically cached, which also makes them + available to all subprojects. It is therefore recommended to run + all configuration tests in the top-level project file. + + To suppress the re-use of cached results, pass \c{CONFIG+=recheck} + to qmake. + + See also \l{load(feature)}{load()}. + + \section2 qtHaveModule(name) + + Checks whether the Qt module specified by \c name is present. + For a list of possible values, see \l{Variables#QT}{QT}. */ /*! diff --git a/qmake/doc/src/snippets/code/doc_src_qmake-manual.pro b/qmake/doc/src/snippets/code/doc_src_qmake-manual.pro index 0ee4785887..aa3f7f3502 100644 --- a/qmake/doc/src/snippets/code/doc_src_qmake-manual.pro +++ b/qmake/doc/src/snippets/code/doc_src_qmake-manual.pro @@ -915,3 +915,64 @@ greaterThan(TMP_VALUE, x456): message("Condition may be true.") #! [173] message("First line$$escape_expand(\\n)Second line") #! [173] + + +#! [174] +TEMPLATE = subdirs +SUBDIRS = one two three +prepareRecursiveTarget(check) +#! [174] + + +#! [175] +two.CONFIG += no_check_target +#! [175] + + +#! [176] +QMAKE_EXTRA_TARGETS += check +#! [176] + + +#! [177] +# /features/mycheck.prf +equals(TEMPLATE, subdirs) { + prepareRecursiveTarget(check) +} else { + check.commands = echo hello user +} +QMAKE_EXTRA_TARGETS += check +#! [177] + + +#! [178] +# /.qmake.conf +CONFIG += mycheck +#! [178] + + +#! [179] +# /project.pro +load(configure) +#! [179] + + +#! [180] +# /config.tests/test/test.pro +SOURCES = main.cpp +LIBS += -ltheFeature +# Note that the test project is built without Qt by default. +#! [180] + + +#! [181] +// /config.tests/test/main.cpp +#include +int main() { return featureFunction(); } +#! [181] + + +#! [182] +# /project.pro +qtCompileTest(test) +#! [182] -- cgit v1.2.3 From 12905fa30f3b92d28dff0e4dc6f32ea516cc42f6 Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Mon, 1 Jul 2013 15:26:01 +0200 Subject: Cut away 2/3 of the startup time on Linux Optimize the parser of the X11 compose tables. Parsing these was responsible for over 90% of the startup time in Qt 5.1. Change-Id: Ifddc3f30828791e51a755f92791c26ffe43a9cd3 Reviewed-by: Konstantin Ritt Reviewed-by: Lars Knoll --- .../compose/generator/qtablegenerator.cpp | 195 +++++++++++++-------- .../compose/generator/qtablegenerator.h | 22 ++- .../compose/qcomposeplatforminputcontext.cpp | 6 +- .../compose/qcomposeplatforminputcontext.h | 2 +- 4 files changed, 138 insertions(+), 87 deletions(-) diff --git a/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.cpp b/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.cpp index f746207cc0..116c6cfa7d 100644 --- a/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.cpp +++ b/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.cpp @@ -41,7 +41,6 @@ #include "qtablegenerator.h" -#include #include #include #include @@ -54,7 +53,8 @@ #include #endif -//#define DEBUG_GENERATOR +#include // strchr, strncmp, etc. +#include // strncasecmp TableGenerator::TableGenerator() : m_state(NoErrors), m_systemComposeDir(QString()) @@ -111,11 +111,9 @@ void TableGenerator::findComposeFile() // check for the system provided compose files if (!found && cleanState()) { - readLocaleMappings(); + QString table = readLocaleMappings(locale().toUpper().toUtf8()); if (cleanState()) { - - QString table = m_localeToTable.value(locale().toUpper()); if (table.isEmpty()) // no table mappings for the system's locale in the compose.dir m_state = UnsupportedLocale; @@ -174,28 +172,49 @@ QString TableGenerator::locale() const return QLatin1String(name); } -void TableGenerator::readLocaleMappings() +QString TableGenerator::readLocaleMappings(const QByteArray &locale) { QFile mappings(systemComposeDir() + QLatin1String("/compose.dir")); - if (mappings.exists()) { - mappings.open(QIODevice::ReadOnly); - QTextStream in(&mappings); - // formating of compose.dir has some inconsistencies - while (!in.atEnd()) { - QString line = in.readLine(); - if (!line.startsWith("#") && line.size() != 0 && - line.at(0).isLower()) { + QString file; + if (mappings.open(QIODevice::ReadOnly)) { + const int localeNameLength = locale.size(); + const char * const localeData = locale.constData(); - QStringList pair = line.split(QRegExp(QLatin1String("\\s+"))); - QString table = pair.at(0); - if (table.endsWith(QLatin1String(":"))) - table.remove(table.size() - 1, 1); - - m_localeToTable.insert(pair.at(1).toUpper(), table); + char l[1024]; + // formating of compose.dir has some inconsistencies + while (!mappings.atEnd()) { + int read = mappings.readLine(l, sizeof(l)); + if (read <= 0) + break; + + char *line = l; + if (*line >= 'a' && *line <= 'z') { + // file name + while (*line && *line != ':' && *line != ' ' && *line != '\t') + ++line; + if (!*line) + continue; + const char * const composeFileNameEnd = line; + *line = '\0'; + ++line; + + // locale name + while (*line && (*line == ' ' || *line == '\t')) + ++line; + const char * const lc = line; + while (*line && *line != ' ' && *line != '\t' && *line != '\n') + ++line; + *line = '\0'; + + if (localeNameLength == (line - lc) && !strncasecmp(lc, localeData, line - lc)) { + file = QString::fromUtf8(l, composeFileNameEnd - l); + break; + } } } mappings.close(); } + return file; } bool TableGenerator::processFile(QString composeFileName) @@ -215,7 +234,7 @@ TableGenerator::~TableGenerator() { } -QList TableGenerator::composeTable() const +QVector TableGenerator::composeTable() const { return m_composeTable; } @@ -225,15 +244,14 @@ void TableGenerator::parseComposeFile(QFile *composeFile) #ifdef DEBUG_GENERATOR qDebug() << "TableGenerator::parseComposeFile: " << composeFile->fileName(); #endif - QTextStream in(composeFile); - while (!in.atEnd()) { - QString line = in.readLine(); - if (line.startsWith(QLatin1String("<"))) { + char line[1024]; + while (!composeFile->atEnd()) { + composeFile->readLine(line, sizeof(line)); + if (*line == '<') parseKeySequence(line); - } else if (line.startsWith(QLatin1String("include"))) { - parseIncludeInstruction(line); - } + else if (!strncmp(line, "include", 7)) + parseIncludeInstruction(QString::fromUtf8(line)); } composeFile->close(); @@ -290,79 +308,103 @@ ushort TableGenerator::keysymToUtf8(quint32 sym) return QString::fromUtf8(chars).at(0).unicode(); } -quint32 TableGenerator::stringToKeysym(QString keysymName) +static inline int fromBase8(const char *s, const char *end) { - quint32 keysym; - QByteArray keysymArray = keysymName.toLatin1(); - const char *name = keysymArray.constData(); - - if ((keysym = xkb_keysym_from_name(name, (xkb_keysym_flags)0)) == XKB_KEY_NoSymbol) - qWarning() << QString("Qt Warning - invalid keysym: %1").arg(keysymName); + int result = 0; + while (*s && s != end) { + if (*s <= '0' && *s >= '7') + return 0; + result *= 8; + result += *s - '0'; + ++s; + } + return result; +} - return keysym; +static inline int fromBase16(const char *s, const char *end) +{ + int result = 0; + while (*s && s != end) { + result *= 16; + if (*s >= '0' && *s <= '9') + result += *s - '0'; + else if (*s >= 'a' && *s <= 'f') + result += *s - 'a' + 10; + else if (*s >= 'A' && *s <= 'F') + result += *s - 'A' + 10; + else + return 0; + ++s; + } + return result; } -void TableGenerator::parseKeySequence(QString line) +void TableGenerator::parseKeySequence(char *line) { // we are interested in the lines with the following format: // : "♬" U266c # BEAMED SIXTEENTH NOTE - int keysEnd = line.indexOf(QLatin1String(":")); - QString keys = line.left(keysEnd).trimmed(); - - // find the key sequence - QString regexp = QStringLiteral("<[^>]+>"); - QRegularExpression reg(regexp); - QRegularExpressionMatchIterator i = reg.globalMatch(keys); - QStringList keyList; - while (i.hasNext()) { - QRegularExpressionMatch match = i.next(); - QString word = match.captured(0); - keyList << word; - } + char *keysEnd = strchr(line, ':'); + if (!keysEnd) + return; QComposeTableElement elem; - QString quote = QStringLiteral("\""); // find the composed value - strings may be direct text encoded in the locale // for which the compose file is to be used, or an escaped octal or hexadecimal // character code. Octal codes are specified as "\123" and hexadecimal codes as "\0x123a". - int composeValueIndex = line.indexOf(quote, keysEnd) + 1; - const QChar valueType(line.at(composeValueIndex)); + char *composeValue = strchr(keysEnd, '"'); + if (!composeValue) + return; + ++composeValue; + + char *composeValueEnd = strchr(composeValue, '"'); + if (!composeValueEnd) + return; - if (valueType == '\\' && line.at(composeValueIndex + 1).isDigit()) { + if (*composeValue == '\\' && composeValue[1] >= '0' && composeValue[1] <= '9') { // handle octal and hex code values - QChar detectBase(line.at(composeValueIndex + 2)); - QString codeValue = line.mid(composeValueIndex + 1, line.lastIndexOf(quote) - composeValueIndex - 1); + char detectBase = composeValue[2]; if (detectBase == 'x') { // hexadecimal character code - elem.value = keysymToUtf8(codeValue.toUInt(0, 16)); + elem.value = keysymToUtf8(fromBase16(composeValue + 3, composeValueEnd)); } else { // octal character code - QString hexStr = QString::number(codeValue.toUInt(0, 8), 16); - elem.value = keysymToUtf8(hexStr.toUInt(0, 16)); + elem.value = keysymToUtf8(fromBase8(composeValue + 1, composeValueEnd)); } } else { // handle direct text encoded in the locale - elem.value = valueType.unicode(); + if (*composeValue == '\\') + ++composeValue; + elem.value = QString::fromUtf8(composeValue).at(0).unicode(); + ++composeValue; } +#ifdef DEBUG_GENERATOR // find the comment - int commnetIndex = line.lastIndexOf(quote) + 1; - elem.comment = line.mid(commnetIndex).trimmed(); - - // Convert to X11 keysym - int count = keyList.length(); - for (int i = 0; i < QT_KEYSEQUENCE_MAX_LEN; i++) { - if (i < count) { - QString keysym = keyList.at(i); - keysym.remove(keysym.length() - 1, 1); - keysym.remove(0, 1); + elem.comment = QString::fromUtf8(composeValueEnd + 1).trimmed(); +#endif - if (keysym == QLatin1String("dead_inverted_breve")) - keysym = QStringLiteral("dead_invertedbreve"); - else if (keysym == QLatin1String("dead_double_grave")) - keysym = QStringLiteral("dead_doublegrave"); + // find the key sequence and convert to X11 keysym + char *k = line; + const char *kend = keysEnd; - elem.keys[i] = stringToKeysym(keysym); + for (int i = 0; i < QT_KEYSEQUENCE_MAX_LEN; i++) { + // find the next pair of angle brackets and get the contents within + while (k < kend && *k != '<') + ++k; + char *sym = ++k; + while (k < kend && *k != '>') + ++k; + *k = '\0'; + if (k < kend) { + elem.keys[i] = xkb_keysym_from_name(sym, (xkb_keysym_flags)0); + if (elem.keys[i] == XKB_KEY_NoSymbol) { + if (!strcmp(sym, "dead_inverted_breve")) + elem.keys[i] = XKB_KEY_dead_invertedbreve; + else if (!strcmp(sym, "dead_double_grave")) + elem.keys[i] = XKB_KEY_dead_doublegrave; + else + qWarning() << QString("Qt Warning - invalid keysym: %1").arg(sym); + } } else { elem.keys[i] = 0; } @@ -372,6 +414,7 @@ void TableGenerator::parseKeySequence(QString line) void TableGenerator::printComposeTable() const { +#ifdef DEBUG_GENERATOR if (composeTable().isEmpty()) return; @@ -393,8 +436,8 @@ void TableGenerator::printComposeTable() const .arg(comma) .arg(elem.comment)); } - qDebug() << "output: \n" << output; +#endif } void TableGenerator::orderComposeTable() diff --git a/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.h b/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.h index cc1db20432..aa65b7b895 100644 --- a/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.h +++ b/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.h @@ -42,19 +42,29 @@ #ifndef QTABLEGENERATOR_H #define QTABLEGENERATOR_H -#include +#include #include #include #include #define QT_KEYSEQUENCE_MAX_LEN 6 +//#define DEBUG_GENERATOR + struct QComposeTableElement { uint keys[QT_KEYSEQUENCE_MAX_LEN]; uint value; +#ifdef DEBUG_GENERATOR QString comment; +#endif }; +#ifndef DEBUG_GENERATOR +QT_BEGIN_NAMESPACE +Q_DECLARE_TYPEINFO(QComposeTableElement, Q_PRIMITIVE_TYPE); +QT_END_NAMESPACE +#endif + class Compare { public: @@ -97,12 +107,12 @@ public: void printComposeTable() const; void orderComposeTable(); - QList composeTable() const; + QVector composeTable() const; TableState tableState() const { return m_state; } protected: bool processFile(QString composeFileName); - void parseKeySequence(QString line); + void parseKeySequence(char *line); void parseIncludeInstruction(QString line); void findComposeFile(); @@ -110,16 +120,14 @@ protected: QString systemComposeDir(); ushort keysymToUtf8(quint32 sym); - quint32 stringToKeysym(QString keysymName); - void readLocaleMappings(); + QString readLocaleMappings(const QByteArray &locale); void initPossibleLocations(); bool cleanState() const { return ((m_state & NoErrors) == NoErrors); } QString locale() const; private: - QList m_composeTable; - QMap m_localeToTable; + QVector m_composeTable; TableState m_state; QString m_systemComposeDir; QList m_possibleLocations; diff --git a/src/plugins/platforminputcontexts/compose/qcomposeplatforminputcontext.cpp b/src/plugins/platforminputcontexts/compose/qcomposeplatforminputcontext.cpp index 433c9eec37..611b9fdd9b 100644 --- a/src/plugins/platforminputcontexts/compose/qcomposeplatforminputcontext.cpp +++ b/src/plugins/platforminputcontexts/compose/qcomposeplatforminputcontext.cpp @@ -169,11 +169,11 @@ static bool isDuplicate(const QComposeTableElement &lhs, const QComposeTableElem bool QComposeInputContext::checkComposeTable() { - QList::iterator it = - qLowerBound(m_composeTable.begin(), m_composeTable.end(), m_composeBuffer, Compare()); + QVector::const_iterator it = + qLowerBound(m_composeTable.constBegin(), m_composeTable.constEnd(), m_composeBuffer, Compare()); // prevent dereferencing an 'end' iterator, which would result in a crash - if (it == m_composeTable.end()) + if (it == m_composeTable.constEnd()) it -= 1; QComposeTableElement elem = *it; diff --git a/src/plugins/platforminputcontexts/compose/qcomposeplatforminputcontext.h b/src/plugins/platforminputcontexts/compose/qcomposeplatforminputcontext.h index 1ced2f8ded..def63486a7 100644 --- a/src/plugins/platforminputcontexts/compose/qcomposeplatforminputcontext.h +++ b/src/plugins/platforminputcontexts/compose/qcomposeplatforminputcontext.h @@ -75,7 +75,7 @@ protected: private: QObject *m_focusObject; - QList m_composeTable; + QVector m_composeTable; uint m_composeBuffer[QT_KEYSEQUENCE_MAX_LEN + 1]; TableGenerator::TableState m_tableState; }; -- cgit v1.2.3 From ca513feb039262714e204be5174c6ed68b66b70d Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Fri, 9 Aug 2013 15:21:34 +0200 Subject: don't include qconfig.cpp into moc and uic whatever it was used for is long gone. Change-Id: Ifab7ae7968b1ab65982b1a6414274b3502bbc3d0 Reviewed-by: Olivier Goffart Reviewed-by: Joerg Bornemann Reviewed-by: Thiago Macieira --- src/tools/moc/main.cpp | 2 +- src/tools/moc/moc.pro | 2 -- src/tools/uic/main.cpp | 2 +- 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/tools/moc/main.cpp b/src/tools/moc/main.cpp index 749cca0911..431c8dd46c 100644 --- a/src/tools/moc/main.cpp +++ b/src/tools/moc/main.cpp @@ -42,7 +42,7 @@ #include "preprocessor.h" #include "moc.h" #include "outputrevision.h" -#include + #include #include #include diff --git a/src/tools/moc/moc.pro b/src/tools/moc/moc.pro index d56c2805eb..d39749a318 100644 --- a/src/tools/moc/moc.pro +++ b/src/tools/moc/moc.pro @@ -3,8 +3,6 @@ CONFIG += force_bootstrap DEFINES += QT_MOC QT_NO_CAST_FROM_ASCII QT_NO_CAST_FROM_BYTEARRAY QT_NO_COMPRESS -INCLUDEPATH += $$QT_BUILD_TREE/src/corelib/global - include(moc.pri) HEADERS += qdatetime_p.h SOURCES += main.cpp diff --git a/src/tools/uic/main.cpp b/src/tools/uic/main.cpp index f5a1301666..a9bbc237a6 100644 --- a/src/tools/uic/main.cpp +++ b/src/tools/uic/main.cpp @@ -42,7 +42,7 @@ #include "uic.h" #include "option.h" #include "driver.h" -#include "../../corelib/global/qconfig.cpp" + #include #include #include -- cgit v1.2.3 From bc2666d9162c74f1f31e05596c903c590cfa6bba Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Wed, 7 Aug 2013 16:21:30 +0200 Subject: suppress error output from pkg-config under normal circumstances, any errors will be noticed already by the pkg-config --exists call, which is silent anyway. therefore this doesn't change anything in normal qmake usage. however, lupdate's and creator's evaluators skip the --exists calls and subsequently invoke the normal query, which then prints useless noise to the terminal. Task-number: QTBUG-28159 Change-Id: I536412060f3830aafeb0587f855cd6af11227bca Reviewed-by: Joerg Bornemann --- mkspecs/features/qt_functions.prf | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf index 2f2c94ce06..07821fd09b 100644 --- a/mkspecs/features/qt_functions.prf +++ b/mkspecs/features/qt_functions.prf @@ -304,6 +304,11 @@ defineReplace(pkgConfigExecutable) { } } + equals(QMAKE_HOST.os, Windows): \ + PKG_CONFIG += 2> NUL + else: \ + PKG_CONFIG += 2> /dev/null + return($$PKG_CONFIG) } -- cgit v1.2.3 From 3e283402e1a01a28cf72cdfced972251cd11547a Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Fri, 17 May 2013 19:54:19 +0200 Subject: TR_EXCLUDE tools including bootstrap lib there is no point in scanning any of it. qdoc already excludes itself (and will hopefully move out of qtbase soon), so not adding it here. Change-Id: I84356c0988be386de331bb7879b3ebd2108526a2 Reviewed-by: Joerg Bornemann --- src/src.pro | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/src.pro b/src/src.pro index b4c96025c1..1c1c0e746e 100644 --- a/src/src.pro +++ b/src/src.pro @@ -139,3 +139,7 @@ SUBDIRS += src_plugins src_tools_qdoc nacl: SUBDIRS -= src_network src_testlib android:!android-no-sdk: SUBDIRS += src_android + +TR_EXCLUDE = \ + src_tools_bootstrap src_tools_moc src_tools_rcc src_tools_uic \ + src_tools_bootstrap_dbus src_tools_qdbusxml2cpp src_tools_qdbuscpp2xml -- cgit v1.2.3 From a6eb28d3f68bec2d4b049da3d0b62808c6525895 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Fri, 9 Aug 2013 13:34:04 +0200 Subject: add configure -extprefix option this adds the possibility to put the actual qt installation outside the sysroot it is configured for. this makes it possible to install an x-built qt without "polluting" the sysroot, which makes it possible to have read-only sysroots, and multiple qt builds for one sysroot. -prefix is the location within the sysroot as seen by the target itself, and gets "burned" into QLibraryInfo in QtCore. -extprefix is the location in the host file system and gets "burned" into QLibraryInfo in qmake. if it is not specified, it defaults to the sysrootified prefix, which is the previous behavior. Task-number: QTBUG-26680 Change-Id: Ia43833c4e27733159afeb8c8b9b2d981378d0cd1 Reviewed-by: Thiago Macieira --- configure | 80 ++++++++++++++++++++++++++++++++++++- src/corelib/global/qlibraryinfo.cpp | 2 +- tools/configure/configureapp.cpp | 71 +++++++++++++++++++++++++++++++- tools/configure/configureapp.h | 2 + 4 files changed, 150 insertions(+), 5 deletions(-) diff --git a/configure b/configure index ba6248eba8..f730ff4e46 100755 --- a/configure +++ b/configure @@ -384,6 +384,16 @@ filterLibraryOptions() filterPathOptions -L "$DEFAULT_LIBDIRS" } +substPrefix() +{ + base=${1#$QT_SYSROOT_PREFIX} + if [ x"$base" != x"$1" ]; then + echo "$QT_EXT_PREFIX$base" + else + echo "$1" + fi +} + #------------------------------------------------------------------------------- # device options #------------------------------------------------------------------------------- @@ -1014,6 +1024,7 @@ QT_HOST_PREFIX= QT_HOST_BINS= QT_HOST_LIBS= QT_HOST_DATA= +QT_EXT_PREFIX= #flags for SQL drivers QT_CFLAGS_PSQL= @@ -1139,6 +1150,7 @@ while [ "$#" -gt 0 ]; do -hostdatadir| \ -hostbindir| \ -hostlibdir| \ + -extprefix| \ -sysroot| \ -depths| \ -make| \ @@ -1347,6 +1359,9 @@ while [ "$#" -gt 0 ]; do hostlibdir) QT_HOST_LIBS="$VAL" ;; + extprefix) + QT_EXT_PREFIX="$VAL" + ;; pkg-config) if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then CFG_PKGCONFIG="$VAL" @@ -3174,6 +3189,39 @@ if [ -z "$QT_INSTALL_TESTS" ]; then #default fi QT_INSTALL_TESTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TESTS"` +#------- sysroot-external install paths -------- + +QT_SYSROOT_PREFIX=$QT_INSTALL_PREFIX +QT_SYSROOT_DOCS=$QT_INSTALL_DOCS +QT_SYSROOT_HEADERS=$QT_INSTALL_HEADERS +QT_SYSROOT_LIBS=$QT_INSTALL_LIBS +QT_SYSROOT_LIBEXECS=$QT_INSTALL_LIBEXECS +QT_SYSROOT_BINS=$QT_INSTALL_BINS +QT_SYSROOT_PLUGINS=$QT_INSTALL_PLUGINS +QT_SYSROOT_IMPORTS=$QT_INSTALL_IMPORTS +QT_SYSROOT_QML=$QT_INSTALL_QML +QT_SYSROOT_ARCHDATA=$QT_INSTALL_ARCHDATA +QT_SYSROOT_DATA=$QT_INSTALL_DATA +QT_SYSROOT_TRANSLATIONS=$QT_INSTALL_TRANSLATIONS +QT_SYSROOT_EXAMPLES=$QT_INSTALL_EXAMPLES +QT_SYSROOT_TESTS=$QT_INSTALL_TESTS +if [ -n "$QT_EXT_PREFIX" ]; then + QT_INSTALL_PREFIX=$QT_EXT_PREFIX + QT_INSTALL_DOCS=`substPrefix "$QT_INSTALL_DOCS"` + QT_INSTALL_HEADERS=`substPrefix "$QT_INSTALL_HEADERS"` + QT_INSTALL_LIBS=`substPrefix "$QT_INSTALL_LIBS"` + QT_INSTALL_LIBEXECS=`substPrefix "$QT_INSTALL_LIBEXECS"` + QT_INSTALL_BINS=`substPrefix "$QT_INSTALL_BINS"` + QT_INSTALL_PLUGINS=`substPrefix "$QT_INSTALL_PLUGINS"` + QT_INSTALL_IMPORTS=`substPrefix "$QT_INSTALL_IMPORTS"` + QT_INSTALL_QML=`substPrefix "$QT_INSTALL_QML"` + QT_INSTALL_ARCHDATA=`substPrefix "$QT_INSTALL_ARCHDATA"` + QT_INSTALL_DATA=`substPrefix "$QT_INSTALL_DATA"` + QT_INSTALL_TRANSLATIONS=`substPrefix "$QT_INSTALL_TRANSLATIONS"` + QT_INSTALL_EXAMPLES=`substPrefix "$QT_INSTALL_EXAMPLES"` + QT_INSTALL_TESTS=`substPrefix "$QT_INSTALL_TESTS"` +fi + #------- host paths -------- if [ -z "$QT_HOST_PREFIX" ]; then @@ -3341,10 +3389,13 @@ Installation options: -prefix ...... This will install everything relative to (default $QT_INSTALL_PREFIX) + -extprefix ... When -sysroot is used, install everything to , + rather than into SYSROOT/PREFIX. + -hostprefix [dir] .. Tools and libraries needed when developing applications are installed in [dir]. If [dir] is not given, the current build directory will be used. - (default PREFIX) + (default EXTPREFIX) You may use these to separate different parts of the install: @@ -3869,6 +3920,12 @@ esac shortxspec=`echo $XQMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` shortspec=`echo $QMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` +if [ -z "$QT_EXT_PREFIX" ]; then + QMAKE_SYSROOTIFY=y +else + QMAKE_SYSROOTIFY=n +fi + cat > "$outpath/src/corelib/global/qconfig.cpp.new" <> "$outpath/src/corelib/global/qconfig.cpp.new" < LastHostPath) { + if ((loc < SysrootPath || loc > LastHostPath) && qt_sysrootify_prefix[12] == 'y') { QString sysroot = rawLocation(SysrootPath, FinalPaths); if (!sysroot.isEmpty() && ret.length() > 2 && ret.at(1) == QLatin1Char(':') && (ret.at(2) == QLatin1Char('/') || ret.at(2) == QLatin1Char('\\'))) diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp index c7477abe99..68b1b74b78 100644 --- a/tools/configure/configureapp.cpp +++ b/tools/configure/configureapp.cpp @@ -1165,6 +1165,13 @@ void Configure::parseCmdLine() dictionary[ "QT_HOST_DATA" ] = configCmdLine.at(i); } + else if (configCmdLine.at(i) == "-extprefix") { + ++i; + if (i == argCount) + break; + dictionary[ "QT_EXT_PREFIX" ] = configCmdLine.at(i); + } + else if (configCmdLine.at(i) == "-make-tool") { ++i; if (i == argCount) @@ -1649,8 +1656,10 @@ bool Configure::displayHelp() desc( "-prefix ", "This will install everything relative to (default $QT_INSTALL_PREFIX)\n"); + desc( "-extprefix ", "When -sysroot is used, install everything to , rather than into SYSROOT/PREFIX.\n"); + desc( "-hostprefix [dir]", "Tools and libraries needed when developing applications are installed in [dir]. " - "If [dir] is not given, the current build directory will be used. (default PREFIX)\n"); + "If [dir] is not given, the current build directory will be used. (default EXTPREFIX)\n"); desc("You may use these to separate different parts of the install:\n\n"); @@ -3623,6 +3632,13 @@ static QString stripPrefix(const QString &str, const QString &pfx) return str.startsWith(pfx) ? str.mid(pfx.length()) : str; } +void Configure::substPrefix(QString *path) +{ + QString spfx = dictionary["QT_SYSROOT_PREFIX"]; + if (path->startsWith(spfx)) + path->replace(0, spfx.size(), dictionary["QT_EXT_PREFIX"]); +} + void Configure::generateQConfigCpp() { // if QT_INSTALL_* have not been specified on commandline, define them now from QT_INSTALL_PREFIX @@ -3662,6 +3678,39 @@ void Configure::generateQConfigCpp() if (!dictionary["QT_INSTALL_TESTS"].size()) dictionary["QT_INSTALL_TESTS"] = qipempty ? "" : dictionary["QT_INSTALL_PREFIX"] + "/tests"; + QChar sysrootifyPrefix = QLatin1Char('y'); + dictionary["QT_SYSROOT_PREFIX"] = dictionary["QT_INSTALL_PREFIX"]; + dictionary["QT_SYSROOT_HEADERS"] = dictionary["QT_INSTALL_HEADERS"]; + dictionary["QT_SYSROOT_LIBS"] = dictionary["QT_INSTALL_LIBS"]; + dictionary["QT_SYSROOT_ARCHDATA"] = dictionary["QT_INSTALL_ARCHDATA"]; + dictionary["QT_SYSROOT_LIBEXECS"] = dictionary["QT_INSTALL_LIBEXECS"]; + dictionary["QT_SYSROOT_BINS"] = dictionary["QT_INSTALL_BINS"]; + dictionary["QT_SYSROOT_PLUGINS"] = dictionary["QT_INSTALL_PLUGINS"]; + dictionary["QT_SYSROOT_IMPORTS"] = dictionary["QT_INSTALL_IMPORTS"]; + dictionary["QT_SYSROOT_QML"] = dictionary["QT_INSTALL_QML"]; + dictionary["QT_SYSROOT_DATA"] = dictionary["QT_INSTALL_DATA"]; + dictionary["QT_SYSROOT_DOCS"] = dictionary["QT_INSTALL_DOCS"]; + dictionary["QT_SYSROOT_TRANSLATIONS"] = dictionary["QT_INSTALL_TRANSLATIONS"]; + dictionary["QT_SYSROOT_EXAMPLES"] = dictionary["QT_INSTALL_EXAMPLES"]; + dictionary["QT_SYSROOT_TESTS"] = dictionary["QT_INSTALL_TESTS"]; + if (dictionary["QT_EXT_PREFIX"].size()) { + sysrootifyPrefix = QLatin1Char('n'); + dictionary["QT_INSTALL_PREFIX"] = dictionary["QT_EXT_PREFIX"]; + substPrefix(&dictionary["QT_INSTALL_HEADERS"]); + substPrefix(&dictionary["QT_INSTALL_LIBS"]); + substPrefix(&dictionary["QT_INSTALL_ARCHDATA"]); + substPrefix(&dictionary["QT_INSTALL_LIBEXECS"]); + substPrefix(&dictionary["QT_INSTALL_BINS"]); + substPrefix(&dictionary["QT_INSTALL_PLUGINS"]); + substPrefix(&dictionary["QT_INSTALL_IMPORTS"]); + substPrefix(&dictionary["QT_INSTALL_QML"]); + substPrefix(&dictionary["QT_INSTALL_DATA"]); + substPrefix(&dictionary["QT_INSTALL_DOCS"]); + substPrefix(&dictionary["QT_INSTALL_TRANSLATIONS"]); + substPrefix(&dictionary["QT_INSTALL_EXAMPLES"]); + substPrefix(&dictionary["QT_INSTALL_TESTS"]); + } + bool haveHpx = false; if (dictionary["QT_HOST_PREFIX"].isEmpty()) dictionary["QT_HOST_PREFIX"] = dictionary["QT_INSTALL_PREFIX"]; @@ -3689,6 +3738,22 @@ void Configure::generateQConfigCpp() << "static const char qt_configure_installation [11 + 12] = \"qt_instdate=" << QDate::currentDate().toString(Qt::ISODate) << "\";" << endl << endl << "static const char qt_configure_prefix_path_strs[][12 + 512] = {" << endl + << "#ifndef QT_BUILD_QMAKE" << endl + << " \"qt_prfxpath=" << formatPath(dictionary["QT_SYSROOT_PREFIX"]) << "\"," << endl + << " \"qt_docspath=" << formatPath(dictionary["QT_SYSROOT_DOCS"]) << "\"," << endl + << " \"qt_hdrspath=" << formatPath(dictionary["QT_SYSROOT_HEADERS"]) << "\"," << endl + << " \"qt_libspath=" << formatPath(dictionary["QT_SYSROOT_LIBS"]) << "\"," << endl + << " \"qt_lbexpath=" << formatPath(dictionary["QT_SYSROOT_LIBEXECS"]) << "\"," << endl + << " \"qt_binspath=" << formatPath(dictionary["QT_SYSROOT_BINS"]) << "\"," << endl + << " \"qt_plugpath=" << formatPath(dictionary["QT_SYSROOT_PLUGINS"]) << "\"," << endl + << " \"qt_impspath=" << formatPath(dictionary["QT_SYSROOT_IMPORTS"]) << "\"," << endl + << " \"qt_qml2path=" << formatPath(dictionary["QT_SYSROOT_QML"]) << "\"," << endl + << " \"qt_adatpath=" << formatPath(dictionary["QT_SYSROOT_ARCHDATA"]) << "\"," << endl + << " \"qt_datapath=" << formatPath(dictionary["QT_SYSROOT_DATA"]) << "\"," << endl + << " \"qt_trnspath=" << formatPath(dictionary["QT_SYSROOT_TRANSLATIONS"]) << "\"," << endl + << " \"qt_xmplpath=" << formatPath(dictionary["QT_SYSROOT_EXAMPLES"]) << "\"," << endl + << " \"qt_tstspath=" << formatPath(dictionary["QT_SYSROOT_TESTS"]) << "\"," << endl + << "#else" << endl << " \"qt_prfxpath=" << formatPath(dictionary["QT_INSTALL_PREFIX"]) << "\"," << endl << " \"qt_docspath=" << formatPath(dictionary["QT_INSTALL_DOCS"]) << "\"," << endl << " \"qt_hdrspath=" << formatPath(dictionary["QT_INSTALL_HEADERS"]) << "\"," << endl @@ -3703,7 +3768,6 @@ void Configure::generateQConfigCpp() << " \"qt_trnspath=" << formatPath(dictionary["QT_INSTALL_TRANSLATIONS"]) << "\"," << endl << " \"qt_xmplpath=" << formatPath(dictionary["QT_INSTALL_EXAMPLES"]) << "\"," << endl << " \"qt_tstspath=" << formatPath(dictionary["QT_INSTALL_TESTS"]) << "\"," << endl - << "#ifdef QT_BUILD_QMAKE" << endl << " \"qt_ssrtpath=" << formatPath(dictionary["CFG_SYSROOT"]) << "\"," << endl << " \"qt_hpfxpath=" << formatPath(dictionary["QT_HOST_PREFIX"]) << "\"," << endl << " \"qt_hbinpath=" << formatPath(dictionary["QT_HOST_BINS"]) << "\"," << endl @@ -3718,6 +3782,9 @@ void Configure::generateQConfigCpp() tmpStream << "static const char qt_configure_settings_path_str [256 + 12] = \"qt_stngpath=" << formatPath(dictionary["QT_INSTALL_SETTINGS"]) << "\";" << endl; tmpStream << endl + << "#ifdef QT_BUILD_QMAKE\n" + << "static const char qt_sysrootify_prefix[] = \"qt_ssrtfpfx=" << sysrootifyPrefix << "\";\n" + << "#endif\n\n" << "/* strlen( \"qt_lcnsxxxx\") == 12 */" << endl << "#define QT_CONFIGURE_LICENSEE qt_configure_licensee_str + 12;" << endl << "#define QT_CONFIGURE_LICENSED_PRODUCTS qt_configure_licensed_products_str + 12;" << endl; diff --git a/tools/configure/configureapp.h b/tools/configure/configureapp.h index 33fc22b27a..314b2be861 100644 --- a/tools/configure/configureapp.h +++ b/tools/configure/configureapp.h @@ -158,6 +158,8 @@ private: int descIndent; int outputWidth; + void substPrefix(QString *path); + QString formatPath(const QString &path); QString formatPaths(const QStringList &paths); -- cgit v1.2.3 From 32d4be85980a3d8c747b428640d0a3d8e36d94d5 Mon Sep 17 00:00:00 2001 From: Bjoern Breitmeyer Date: Fri, 9 Aug 2013 14:10:15 +0200 Subject: Integrate device-option into the windows configure Windows configure does not have -device-option yet. A hack for android already generated the qdevice.pri. But it did this even if no android was build, so merged the device-option with the android generation of qdevice.pri. The qdevice.pri is generated earlier in the configure steps than before to match the linux configure and allow to set device options before the config.tests are run. Change-Id: I753cf0d5eba1479792a685d6e1f5acb38b970893 Reviewed-by: Oswald Buddenhagen --- tools/configure/configureapp.cpp | 70 ++++++++++++++++++++++++---------------- tools/configure/configureapp.h | 1 + tools/configure/main.cpp | 5 +++ 3 files changed, 49 insertions(+), 27 deletions(-) diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp index 68b1b74b78..873568daf8 100644 --- a/tools/configure/configureapp.cpp +++ b/tools/configure/configureapp.cpp @@ -500,6 +500,14 @@ void Configure::parseCmdLine() || configCmdLine.at(i) == "-device") { ++i; // do nothing + } else if (configCmdLine.at(i) == "-device-option") { + ++i; + const QString option = configCmdLine.at(i); + QString &devOpt = dictionary["DEVICE_OPTION"]; + if (!devOpt.isEmpty()) + devOpt.append("\n").append(option); + else + devOpt = option; } else if (configCmdLine.at(i) == "-no-zlib") { @@ -3077,6 +3085,41 @@ bool Configure::compilerSupportsFlag(const QString &compilerAndArgs) return code == 0; } +void Configure::generateQDevicePri() +{ + FileWriter deviceStream(buildPath + "/mkspecs/qdevice.pri"); + if (dictionary.contains("DEVICE_OPTION")) { + const QString devoptionlist = dictionary["DEVICE_OPTION"]; + const QStringList optionlist = devoptionlist.split(QStringLiteral("\n")); + foreach (const QString &entry, optionlist) + deviceStream << entry << "\n"; + } + if (dictionary.contains("ANDROID_SDK_ROOT") && dictionary.contains("ANDROID_NDK_ROOT")) { + QString android_platform(dictionary.contains("ANDROID_PLATFORM") + ? dictionary["ANDROID_PLATFORM"] + : QString("android-9")); + deviceStream << "android_install {" << endl; + deviceStream << " DEFAULT_ANDROID_SDK_ROOT = " << formatPath(dictionary["ANDROID_SDK_ROOT"]) << endl; + deviceStream << " DEFAULT_ANDROID_NDK_ROOT = " << formatPath(dictionary["ANDROID_NDK_ROOT"]) << endl; + deviceStream << " DEFAULT_ANDROID_PLATFORM = " << android_platform << endl; + if (QSysInfo::WordSize == 64) + deviceStream << " DEFAULT_ANDROID_NDK_HOST = windows-x86_64" << endl; + else + deviceStream << " DEFAULT_ANDROID_NDK_HOST = windows" << endl; + QString android_arch(dictionary.contains("ANDROID_TARGET_ARCH") + ? dictionary["ANDROID_TARGET_ARCH"] + : QString("armeabi-v7a")); + QString android_tc_vers(dictionary.contains("ANDROID_NDK_TOOLCHAIN_VERSION") + ? dictionary["ANDROID_NDK_TOOLCHAIN_VERSION"] + : QString("4.7")); + deviceStream << " DEFAULT_ANDROID_TARGET_ARCH = " << android_arch << endl; + deviceStream << " DEFAULT_ANDROID_NDK_TOOLCHAIN_VERSION = " << android_tc_vers << endl; + deviceStream << "}" << endl; + } + if (!deviceStream.flush()) + dictionary[ "DONE" ] = "error"; +} + void Configure::generateQConfigPri() { // Generate qconfig.pri @@ -3363,33 +3406,6 @@ void Configure::generateConfigfiles() dictionary[ "DONE" ] = "error"; } - { - FileWriter tmpStream(buildPath + "/mkspecs/qdevice.pri"); - - QString android_platform(dictionary.contains("ANDROID_PLATFORM") - ? dictionary["ANDROID_PLATFORM"] - : QString("android-9")); - tmpStream << "android_install {" << endl; - tmpStream << " DEFAULT_ANDROID_SDK_ROOT = " << formatPath(dictionary["ANDROID_SDK_ROOT"]) << endl; - tmpStream << " DEFAULT_ANDROID_NDK_ROOT = " << formatPath(dictionary["ANDROID_NDK_ROOT"]) << endl; - tmpStream << " DEFAULT_ANDROID_PLATFORM = " << android_platform << endl; - if (QSysInfo::WordSize == 64) - tmpStream << " DEFAULT_ANDROID_NDK_HOST = windows-x86_64" << endl; - else - tmpStream << " DEFAULT_ANDROID_NDK_HOST = windows" << endl; - QString android_arch(dictionary.contains("ANDROID_TARGET_ARCH") - ? dictionary["ANDROID_TARGET_ARCH"] - : QString("armeabi-v7a")); - QString android_tc_vers(dictionary.contains("ANDROID_NDK_TOOLCHAIN_VERSION") - ? dictionary["ANDROID_NDK_TOOLCHAIN_VERSION"] - : QString("4.7")); - tmpStream << " DEFAULT_ANDROID_TARGET_ARCH = " << android_arch << endl; - tmpStream << " DEFAULT_ANDROID_NDK_TOOLCHAIN_VERSION = " << android_tc_vers << endl; - tmpStream << "}" << endl; - - if (!tmpStream.flush()) - dictionary[ "DONE" ] = "error"; - } } void Configure::displayConfig() diff --git a/tools/configure/configureapp.h b/tools/configure/configureapp.h index 314b2be861..8a22cea6ec 100644 --- a/tools/configure/configureapp.h +++ b/tools/configure/configureapp.h @@ -77,6 +77,7 @@ public: void generateConfigfiles(); void detectArch(); void generateQConfigPri(); + void generateQDevicePri(); void prepareConfigTests(); void showSummary(); QString firstLicensePath(); diff --git a/tools/configure/main.cpp b/tools/configure/main.cpp index 9beee36a50..fb815b287e 100644 --- a/tools/configure/main.cpp +++ b/tools/configure/main.cpp @@ -81,6 +81,11 @@ int runConfigure( int argc, char** argv ) if (!app.isOk()) return 3; + // Generate qdevice.pri + app.generateQDevicePri(); + if (!app.isOk()) + return 3; + // Prepare the config test build directory. app.prepareConfigTests(); if (!app.isOk()) -- cgit v1.2.3 From 7f305ef09e0f064c8279ac0dd731d13c438d1f1b Mon Sep 17 00:00:00 2001 From: Kai Koehne Date: Tue, 6 Aug 2013 11:55:50 +0200 Subject: Don't use deprecated qInstallMsgHandler in testlib We kept using qInstallMsgHandler in testlib to not break test cases using it too. However, this breaks tests using qInstallMessageHandler ... ChangeLog: QTestLib: Test cases have to use qInstallMessageHandler instead of the (deprecated) qInstallMsgHandler Task-number: QTBUG-32391 Change-Id: I3bd95d9b0a48749243a5dd3e074df8ebcbc07dce Reviewed-by: Andy Shaw --- src/testlib/qtestlog.cpp | 42 +++++++----------------------------------- 1 file changed, 7 insertions(+), 35 deletions(-) diff --git a/src/testlib/qtestlog.cpp b/src/testlib/qtestlog.cpp index 99c7ec749d..d094372d0b 100644 --- a/src/testlib/qtestlog.cpp +++ b/src/testlib/qtestlog.cpp @@ -76,14 +76,6 @@ static void saveCoverageTool(const char * appname, bool testfailed, bool install #endif } -// -// declare deprecated API from qlogging.h locally -// (we can't use qInstallMessageHandler because it would break -// tests that (still) rely on qInstallMsgHandler.) -// -typedef void (*QtMsgHandler)(QtMsgType, const char *); -Q_CORE_EXPORT QtMsgHandler qInstallMsgHandler(QtMsgHandler); - namespace QTest { int fails = 0; @@ -212,7 +204,7 @@ namespace QTest { static int maxWarnings = 2002; static bool installedTestCoverage = true; - static QtMsgHandler oldMessageHandler; + static QtMessageHandler oldMessageHandler; static bool handleIgnoredMessage(QtMsgType type, const char *msg) { @@ -238,23 +230,17 @@ namespace QTest { return false; } -// don't warn about qInstallMsgHandler -#if defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ >= 406) && !defined(Q_CC_INTEL) -# pragma GCC diagnostic push -# pragma GCC diagnostic ignored "-Wdeprecated-declarations" -#endif - - static void messageHandler(QtMsgType type, const char *msg) + static void messageHandler(QtMsgType type, const QMessageLogContext & /*context*/, const QString &message) { static QBasicAtomicInt counter = Q_BASIC_ATOMIC_INITIALIZER(QTest::maxWarnings); - if (!msg || QTest::TestLoggers::loggerCount() == 0) { + if (QTest::TestLoggers::loggerCount() == 0) { // if this goes wrong, something is seriously broken. - qInstallMsgHandler(oldMessageHandler); - QTEST_ASSERT(msg); + qInstallMessageHandler(oldMessageHandler); QTEST_ASSERT(QTest::TestLoggers::loggerCount() != 0); } + QByteArray msg = message.toLocal8Bit(); if (handleIgnoredMessage(type, msg)) // the message is expected, so just swallow it. return; @@ -293,10 +279,6 @@ namespace QTest { break; } } - -#if defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ >= 406) && !defined(Q_CC_INTEL) -# pragma GCC diagnostic pop -#endif } void QTestLog::enterTestFunction(const char* function) @@ -399,31 +381,21 @@ void QTestLog::addBenchmarkResult(const QBenchmarkResult &result) QTest::TestLoggers::addBenchmarkResult(result); } -// don't warn about qInstallMsgHandler -#if defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ >= 406) && !defined(Q_CC_INTEL) -# pragma GCC diagnostic push -# pragma GCC diagnostic ignored "-Wdeprecated-declarations" -#endif - void QTestLog::startLogging() { QTest::TestLoggers::startLogging(); - QTest::oldMessageHandler = qInstallMsgHandler(QTest::messageHandler); + QTest::oldMessageHandler = qInstallMessageHandler(QTest::messageHandler); } void QTestLog::stopLogging() { - qInstallMsgHandler(QTest::oldMessageHandler); + qInstallMessageHandler(QTest::oldMessageHandler); QTest::TestLoggers::stopLogging(); QTest::TestLoggers::destroyLoggers(); QTest::loggerUsingStdout = false; saveCoverageTool(QTestResult::currentAppname(), failCount() != 0, QTestLog::installedTestCoverage()); } -#if defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ >= 406) && !defined(Q_CC_INTEL) -# pragma GCC diagnostic pop -#endif - void QTestLog::addLogger(LogMode mode, const char *filename) { if (filename && strcmp(filename, "-") == 0) -- cgit v1.2.3 From 07502898e982dae54f919582350af8be3b4ad2cc Mon Sep 17 00:00:00 2001 From: Kai Koehne Date: Tue, 6 Aug 2013 11:32:18 +0200 Subject: ANGLE: Fix MSVC compiler warning We don't use exceptions anyway, so we can safely ignore this warning. Task-number: QTBUG-32833 Change-Id: Id78cb99770f37a076de3a95721ba40795a8a7b57 Reviewed-by: Andrew Knight Reviewed-by: Thiago Macieira Reviewed-by: Kai Koehne --- src/angle/src/config.pri | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/angle/src/config.pri b/src/angle/src/config.pri index 465bcf6a1e..1c6d8b0167 100644 --- a/src/angle/src/config.pri +++ b/src/angle/src/config.pri @@ -78,10 +78,11 @@ msvc { # 4239: nonstandard extension used : 'token' : conversion from 'type' to 'type' # 4244: 'argument' : conversion from 'type1' to 'type2', possible loss of data # 4245: 'conversion' : conversion from 'type1' to 'type2', signed/unsigned mismatch + # 4275: non - DLL-interface classkey 'identifier' used as base for DLL-interface classkey 'identifier' # 4512: 'class' : assignment operator could not be generated # 4702: unreachable code QMAKE_CFLAGS_WARN_ON -= -W3 - QMAKE_CFLAGS_WARN_ON += -W4 -wd"4100" -wd"4127" -wd"4189" -wd"4239" -wd"4244" -wd"4245" -wd"4512" -wd"4702" + QMAKE_CFLAGS_WARN_ON += -W4 -wd"4100" -wd"4127" -wd"4189" -wd"4239" -wd"4244" -wd"4245" -wd"4275" -wd"4512" -wd"4702" # Optimizations # /Oy: Omits frame pointer (x86 only). # /Gy: Enables function-level linking. -- cgit v1.2.3 From b0b754632e851ca1ae46a8e08fe5b3f8949c6042 Mon Sep 17 00:00:00 2001 From: Sergio Ahumada Date: Thu, 15 Aug 2013 14:56:41 +0200 Subject: test: Skip some more qsslsocket flaky tests [part 2] Task-number: QTBUG-29941 Change-Id: I28e71f952fcade6ab0aa76db71a1e2f408952830 Reviewed-by: Richard J. Moore --- tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp b/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp index 85b60686d6..a15daf660a 100644 --- a/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp +++ b/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp @@ -947,7 +947,8 @@ void tst_QSslSocket::protocol() socket->abort(); QCOMPARE(socket->protocol(), QSsl::TlsV1SslV3); socket->connectToHost(QtNetworkSettings::serverName(), 443); - QVERIFY2(socket->waitForConnected(), qPrintable(socket->errorString())); + if (setProxy && !socket->waitForConnected()) + QSKIP("Skipping flaky test - See QTBUG-29941"); socket->startClientEncryption(); if (setProxy && !socket->waitForEncrypted()) QSKIP("Skipping flaky test - See QTBUG-29941"); @@ -1263,7 +1264,9 @@ void tst_QSslSocket::setSslConfiguration() this->socket = socket.data(); socket->connectToHostEncrypted(QtNetworkSettings::serverName(), 443); QFETCH(bool, works); - QCOMPARE(socket->waitForEncrypted(10000), works); + QFETCH_GLOBAL(bool, setProxy); + if (setProxy && (socket->waitForEncrypted(10000) != works)) + QSKIP("Skipping flaky test - See QTBUG-29941"); if (works) { socket->disconnectFromHost(); QVERIFY2(socket->waitForDisconnected(), qPrintable(socket->errorString())); @@ -2114,7 +2117,9 @@ void tst_QSslSocket::ignoreSslErrorsListWithSlot() QFETCH(int, expectedSslErrorSignalCount); bool expectEncryptionSuccess = (expectedSslErrorSignalCount == 0); - QCOMPARE(socket.waitForEncrypted(10000), expectEncryptionSuccess); + QFETCH_GLOBAL(bool, setProxy); + if (setProxy && (socket.waitForEncrypted(10000) != expectEncryptionSuccess)) + QSKIP("Skipping flaky test - See QTBUG-29941"); } // make sure a closed socket has no bytesAvailable() @@ -2205,7 +2210,8 @@ void tst_QSslSocket::blacklistedCertificates() QVERIFY(server.listen(QHostAddress::LocalHost)); receiver->connectToHost("127.0.0.1", server.serverPort()); QVERIFY(receiver->waitForConnected(5000)); - QVERIFY(server.waitForNewConnection(0)); + if (!server.waitForNewConnection(0)) + QSKIP("Skipping flaky test - See QTBUG-29941"); QSslSocket *sender = server.socket; QVERIFY(sender); @@ -2341,7 +2347,9 @@ void tst_QSslSocket::resume() socket.connectToHostEncrypted(QtNetworkSettings::serverName(), 993); QTestEventLoop::instance().enterLoop(10); - QVERIFY(!QTestEventLoop::instance().timeout()); + QFETCH_GLOBAL(bool, setProxy); + if (setProxy && QTestEventLoop::instance().timeout()) + QSKIP("Skipping flaky test - See QTBUG-29941"); QCOMPARE(sslErrorSpy.count(), 1); QCOMPARE(errorSpy.count(), 0); QCOMPARE(encryptedSpy.count(), 0); -- cgit v1.2.3 From 49af23e776209e94addc74eaacf5e5aaec83379f Mon Sep 17 00:00:00 2001 From: Jonas Gastal Date: Fri, 7 Jun 2013 19:16:06 -0300 Subject: Add documentation about reconnect attempts. Task-number: QTBUG-18082 Change-Id: I3cf667bcd9929d1fc3e8d3c5f9d4e612dddd181e Reviewed-by: Thiago Macieira --- src/network/socket/qabstractsocket.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/network/socket/qabstractsocket.cpp b/src/network/socket/qabstractsocket.cpp index 71d6166840..084e0bc656 100644 --- a/src/network/socket/qabstractsocket.cpp +++ b/src/network/socket/qabstractsocket.cpp @@ -208,6 +208,10 @@ This signal is emitted after an error occurred. The \a socketError parameter describes the type of error that occurred. + When this signal is emitted, the socket may not be ready for a reconnect + attempt. In that case, attempts to reconnect should be done from the event + loop. For example, use a QTimer::singleShot() with 0 as the timeout. + QAbstractSocket::SocketError is not a registered metatype, so for queued connections, you will have to register it with Q_DECLARE_METATYPE() and qRegisterMetaType(). -- cgit v1.2.3 From c2106683461bc02da95f7bd014eca17beeec4319 Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Sat, 17 Aug 2013 15:49:33 +1000 Subject: Fix mouse test event in window warning message. The tests use local coordinates, but window->geometry() gives the global position on the window, i.e. offset by the size of the decoration. Change-Id: Id63ffd7e160b77ddb0f5563d8c3c65c36ad45e89 Reviewed-by: Stephen Kelly --- src/testlib/qtestmouse.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/testlib/qtestmouse.h b/src/testlib/qtestmouse.h index 4d70aff27e..8efa80789c 100644 --- a/src/testlib/qtestmouse.h +++ b/src/testlib/qtestmouse.h @@ -61,6 +61,8 @@ #include #endif +#include + QT_BEGIN_NAMESPACE Q_GUI_EXPORT void qt_handleMouseEvent(QWindow *w, const QPointF & local, const QPointF & global, Qt::MouseButtons b, Qt::KeyboardModifiers mods = Qt::NoModifier); @@ -84,8 +86,10 @@ namespace QTest QTEST_ASSERT(window); extern int Q_TESTLIB_EXPORT defaultMouseDelay(); - if (!window->geometry().contains(pos)) + // pos is in window local coordinates + if (window->geometry().width() <= pos.x() || window->geometry().height() <= pos.y()) { QTest::qWarn("Mouse event occurs outside of target window."); + } static Qt::MouseButton lastButton = Qt::NoButton; -- cgit v1.2.3 From b314b2b844c83b84ad9229c1c16b25caf08b5523 Mon Sep 17 00:00:00 2001 From: Sze Howe Koh Date: Sat, 17 Aug 2013 08:46:55 +0800 Subject: Rename template parameter: "I" -> "II" C99 defines the "I" macro in complex.h. qobjectdefs_impl.h can be indirectly included in user code, which raises the possibility of a name clash if the user's compiler supports C99 and the user includes complex.h Change-Id: Ie79ec7baf2d49a34b66a01556c7e57324303dc04 Reviewed-by: Thiago Macieira --- src/corelib/kernel/qobjectdefs_impl.h | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/corelib/kernel/qobjectdefs_impl.h b/src/corelib/kernel/qobjectdefs_impl.h index 4f44d9204e..d775ef1b65 100644 --- a/src/corelib/kernel/qobjectdefs_impl.h +++ b/src/corelib/kernel/qobjectdefs_impl.h @@ -496,22 +496,22 @@ namespace QtPrivate { template struct FunctionPointer { enum {ArgumentCount = -1}; }; template struct FunctorCall; - template - struct FunctorCall, List, R, Function> { + template + struct FunctorCall, List, R, Function> { static void call(Function f, void **arg) { - f((*reinterpret_cast::Type *>(arg[I+1]))...), ApplyReturnValue(arg[0]); + f((*reinterpret_cast::Type *>(arg[II+1]))...), ApplyReturnValue(arg[0]); } }; - template - struct FunctorCall, List, R, SlotRet (Obj::*)(SlotArgs...)> { + template + struct FunctorCall, List, R, SlotRet (Obj::*)(SlotArgs...)> { static void call(SlotRet (Obj::*f)(SlotArgs...), Obj *o, void **arg) { - (o->*f)((*reinterpret_cast::Type *>(arg[I+1]))...), ApplyReturnValue(arg[0]); + (o->*f)((*reinterpret_cast::Type *>(arg[II+1]))...), ApplyReturnValue(arg[0]); } }; - template - struct FunctorCall, List, R, SlotRet (Obj::*)(SlotArgs...) const> { + template + struct FunctorCall, List, R, SlotRet (Obj::*)(SlotArgs...) const> { static void call(SlotRet (Obj::*f)(SlotArgs...) const, Obj *o, void **arg) { - (o->*f)((*reinterpret_cast::Type *>(arg[I+1]))...), ApplyReturnValue(arg[0]); + (o->*f)((*reinterpret_cast::Type *>(arg[II+1]))...), ApplyReturnValue(arg[0]); } }; -- cgit v1.2.3 From 641d33273e64f6c76db7fe4d1176d9ede09e43db Mon Sep 17 00:00:00 2001 From: Gatis Paeglis Date: Tue, 16 Jul 2013 14:34:10 +0200 Subject: Add manual test for shortcuts Change-Id: I98ba26d97ca60c4a4e22da3b856d0e7e366e6690 Reviewed-by: Friedemann Kleint --- tests/manual/manual.pro | 1 + tests/manual/shortcuts/main.cpp | 148 +++++++++++++++++++++++++++++++++++ tests/manual/shortcuts/shortcuts.pro | 6 ++ 3 files changed, 155 insertions(+) create mode 100644 tests/manual/shortcuts/main.cpp create mode 100644 tests/manual/shortcuts/shortcuts.pro diff --git a/tests/manual/manual.pro b/tests/manual/manual.pro index 2fa05f65e0..5beeec27c2 100644 --- a/tests/manual/manual.pro +++ b/tests/manual/manual.pro @@ -39,6 +39,7 @@ windowmodality \ widgetgrab \ xembed-raster \ xembed-widgets \ +shortcuts \ dialogs \ windowtransparency \ unc diff --git a/tests/manual/shortcuts/main.cpp b/tests/manual/shortcuts/main.cpp new file mode 100644 index 0000000000..95faff671c --- /dev/null +++ b/tests/manual/shortcuts/main.cpp @@ -0,0 +1,148 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the test suite 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 Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/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 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include +#include +#include +#include +#include + +class ShortcutTester : public QWidget +{ +public: + ShortcutTester() { + setupLayout(); + setFixedWidth(200); + } +protected: + void setupLayout() + { + QVBoxLayout *layout = new QVBoxLayout(this); + + QKeySequence sq1(Qt::AltModifier + Qt::ShiftModifier + Qt::Key_G); + QPushButton *b1 = new QPushButton(sq1.toString()); + b1->setShortcut(sq1); + + QKeySequence sq2(Qt::AltModifier + Qt::Key_G); + QPushButton *b2 = new QPushButton(sq2.toString()); + b2->setShortcut(sq2); + + QKeySequence sq3(Qt::ControlModifier + Qt::ShiftModifier + Qt::Key_R); + QPushButton *b3 = new QPushButton(sq3.toString()); + b3->setShortcut(sq3); + + QKeySequence sq4(Qt::ControlModifier + Qt::Key_R); + QPushButton *b4 = new QPushButton(sq4.toString()); + b4->setShortcut(sq4); + + QKeySequence sq5(Qt::ControlModifier + Qt::Key_Return); + QPushButton *b5 = new QPushButton(sq5.toString()); + b5->setShortcut(sq5); + + QKeySequence sq6(Qt::ControlModifier + Qt::ShiftModifier + Qt::AltModifier + Qt::Key_R); + QPushButton *b6 = new QPushButton(sq6.toString()); + b6->setShortcut(sq6); + + QKeySequence sq7(Qt::ShiftModifier + Qt::Key_5); + QPushButton *b7 = new QPushButton(sq7.toString()); + b7->setShortcut(sq7); + + QKeySequence sq8(Qt::ControlModifier + Qt::Key_Q); + QPushButton *b8 = new QPushButton(sq8.toString()); + b8->setShortcut(sq8); + + QKeySequence sq9(Qt::ControlModifier + Qt::Key_Plus); + QPushButton *b9 = new QPushButton(sq9.toString()); + b9->setShortcut(sq9); + + QKeySequence sq10(Qt::ControlModifier + Qt::Key_Y); + QPushButton *b10 = new QPushButton(sq10.toString()); + b10->setShortcut(sq10); + + QKeySequence sq11(Qt::ShiftModifier + Qt::Key_Comma); + QPushButton *b11 = new QPushButton(sq11.toString()); + b11->setShortcut(sq11); + + // LATIN SMALL LETTER O WITH STROKE + QKeySequence sq12(QString(QChar(ushort(0xf8)))); + QPushButton *b12 = new QPushButton(sq12.toString()); + b12->setShortcut(sq12); + + // CYRILLIC SMALL LETTER ZHE + QKeySequence sq13(QString(QChar(ushort(0x436)))); + QPushButton *b13 = new QPushButton(sq13.toString()); + b13->setShortcut(sq13); + + QLabel *testPurpose = new QLabel(); + testPurpose->setWordWrap(true); + testPurpose->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Expanding); + testPurpose->setText("This test come in handy to verify shortcuts under different" + " keyboard layouts - qwerty, dvorak, non-latin (russian, arabic), etc."); + layout->addWidget(testPurpose); + layout->addWidget(b1); + layout->addWidget(b2); + layout->addWidget(b3); + layout->addWidget(b4); + layout->addWidget(b5); + layout->addWidget(b6); + layout->addWidget(b7); + layout->addWidget(b8); + layout->addWidget(b9); + layout->addWidget(b10); + layout->addWidget(b11); + layout->addWidget(new QLabel("Norwegian layout")); + layout->addWidget(b12); + layout->addWidget(new QLabel("Russian layout")); + layout->addWidget(b13); + + setLayout(layout); + } +}; + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + + ShortcutTester tester; + tester.show(); + + return a.exec(); +} diff --git a/tests/manual/shortcuts/shortcuts.pro b/tests/manual/shortcuts/shortcuts.pro new file mode 100644 index 0000000000..3df6f2192b --- /dev/null +++ b/tests/manual/shortcuts/shortcuts.pro @@ -0,0 +1,6 @@ +QT += core gui widgets + +TARGET = shortcuts +TEMPLATE = app + +SOURCES += main.cpp -- cgit v1.2.3 From a45d8edb6c2e234902202f55a0d6ee2f2ba60f5d Mon Sep 17 00:00:00 2001 From: Giuseppe D'Angelo Date: Sun, 18 Aug 2013 13:16:07 +0200 Subject: Fix QPointF::division autotest Change-Id: I567c1252b63aff4273bf15c0d52817f058ea0703 Reviewed-by: Olivier Goffart --- tests/auto/corelib/tools/qpointf/tst_qpointf.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/auto/corelib/tools/qpointf/tst_qpointf.cpp b/tests/auto/corelib/tools/qpointf/tst_qpointf.cpp index fc79b40a18..52a6d3aa46 100644 --- a/tests/auto/corelib/tools/qpointf/tst_qpointf.cpp +++ b/tests/auto/corelib/tools/qpointf/tst_qpointf.cpp @@ -284,12 +284,12 @@ void tst_QPointF::division() { QPointF p(1e-14, 1e-14); p = p / sqrt(dot(p, p)); - qFuzzyCompare(dot(p, p), 1); + QCOMPARE(dot(p, p), qreal(1.0)); } { QPointF p(1e-14, 1e-14); p /= sqrt(dot(p, p)); - qFuzzyCompare(dot(p, p), 1); + QCOMPARE(dot(p, p), qreal(1.0)); } } -- cgit v1.2.3 From 76f32cadb227a8d0a0371e518b9ad99344acf44f Mon Sep 17 00:00:00 2001 From: Giuseppe D'Angelo Date: Sun, 18 Aug 2013 18:43:18 +0200 Subject: Fix QGraphics(Ellipse)Item autotest Change-Id: I6d5d702e97a0186979bd3bdcd0526d53afeecbd8 Reviewed-by: Olivier Goffart --- .../widgets/graphicsview/qgraphicsitem/tst_qgraphicsitem.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/tests/auto/widgets/graphicsview/qgraphicsitem/tst_qgraphicsitem.cpp b/tests/auto/widgets/graphicsview/qgraphicsitem/tst_qgraphicsitem.cpp index 9353aa0eba..2c03850181 100644 --- a/tests/auto/widgets/graphicsview/qgraphicsitem/tst_qgraphicsitem.cpp +++ b/tests/auto/widgets/graphicsview/qgraphicsitem/tst_qgraphicsitem.cpp @@ -4423,10 +4423,13 @@ void tst_QGraphicsItem::defaultItemTest_QGraphicsEllipseItem() QCOMPARE(item.boundingRect(), QRectF(0, 0, 100, 100)); item.setSpanAngle(90 * 16); - qFuzzyCompare(item.boundingRect().left(), qreal(50.0)); - qFuzzyCompare(item.boundingRect().top(), qreal(0.0)); - qFuzzyCompare(item.boundingRect().width(), qreal(50.0)); - qFuzzyCompare(item.boundingRect().height(), qreal(50.0)); + // for some reason, the bounding rect has very few significant digits + // (i.e. it's likely that floats are being used inside it), so we + // must force the conversion from qreals to float or these tests will fail + QCOMPARE(float(item.boundingRect().left()), 50.0f); + QVERIFY(qFuzzyIsNull(float(item.boundingRect().top()))); + QCOMPARE(float(item.boundingRect().width()), 50.0f); + QCOMPARE(float(item.boundingRect().height()), 50.0f); item.setPen(QPen(Qt::black, 1)); QCOMPARE(item.boundingRect(), QRectF(49.5, -0.5, 51, 51)); -- cgit v1.2.3 From 7495b59dbda45049ba54f3682904962c217a9906 Mon Sep 17 00:00:00 2001 From: Jocelyn Turcotte Date: Thu, 1 Aug 2013 13:40:36 +0200 Subject: xcb: Fix TouchPointPressed being sent multiple times. XI2 sends events for individual touch points, but QTouchEvent sends all of them with a stationary state if they didn't change. If a touch pressed event is received, and the next XI2 event is about a different touch point, we wouldn't update the state of the previously pressed touch point. Change-Id: I1ebcbea1cea54872064ef7710e2aac7b0b41cd70 Reviewed-by: Shawn Rutledge --- src/plugins/platforms/xcb/qxcbconnection_xi2.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp b/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp index 991c82eaaa..799bb387e1 100644 --- a/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp +++ b/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp @@ -309,8 +309,6 @@ void QXcbConnection::xi2HandleEvent(xcb_ge_event_t *event) case XI_TouchUpdate: if (touchPoint.area.center() != QPoint(x, y)) touchPoint.state = Qt::TouchPointMoved; - else - touchPoint.state = Qt::TouchPointStationary; break; case XI_TouchEnd: touchPoint.state = Qt::TouchPointReleased; @@ -323,9 +321,13 @@ void QXcbConnection::xi2HandleEvent(xcb_ge_event_t *event) " area " << touchPoint.area << " pressure " << touchPoint.pressure; #endif QWindowSystemInterface::handleTouchEvent(platformWindow->window(), xiEvent->time, dev->qtTouchDevice, m_touchPoints.values()); - // If a touchpoint was released, we can forget it, because the ID won't be reused. if (touchPoint.state == Qt::TouchPointReleased) + // If a touchpoint was released, we can forget it, because the ID won't be reused. m_touchPoints.remove(touchPoint.id); + else + // Make sure that we don't send TouchPointPressed/Moved in more than one QTouchEvent + // with this touch point if the next XI2 event is about a different touch point. + touchPoint.state = Qt::TouchPointStationary; } } #endif -- cgit v1.2.3 From 6a040d5c81cbca0de6290d363a20b4329d1456f8 Mon Sep 17 00:00:00 2001 From: Frederik Gladhorn Date: Sat, 17 Aug 2013 16:51:27 +0200 Subject: Fix potential division by zero MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Since it's possible to call the function on an empty model, return failure in that case. Change-Id: I0a0eabe917da3e6294bdd616a85579f6dc894ec8 Reviewed-by: Jan Arve Sæther --- .../linuxaccessibility/atspiadaptor.cpp | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/src/platformsupport/linuxaccessibility/atspiadaptor.cpp b/src/platformsupport/linuxaccessibility/atspiadaptor.cpp index 6efd5085ac..d42251d4dd 100644 --- a/src/platformsupport/linuxaccessibility/atspiadaptor.cpp +++ b/src/platformsupport/linuxaccessibility/atspiadaptor.cpp @@ -2230,16 +2230,21 @@ bool AtSpiAdaptor::tableInterface(QAccessibleInterface *interface, const QString int index = message.arguments().at(0).toInt(); bool success = false; - int row, col, rowExtents, colExtents; - bool isSelected; + int row = -1; + int col = -1; + int rowExtents = -1; + int colExtents = -1; + bool isSelected = false; int cols = interface->tableInterface()->columnCount(); - row = index/cols; - col = index%cols; - QAccessibleTableCellInterface *cell = interface->tableInterface()->cellAt(row, col)->tableCellInterface(); - if (cell) { - cell->rowColumnExtents(&row, &col, &rowExtents, &colExtents, &isSelected); - success = true; + if (cols > 0) { + row = index / cols; + col = index % cols; + QAccessibleTableCellInterface *cell = interface->tableInterface()->cellAt(row, col)->tableCellInterface(); + if (cell) { + cell->rowColumnExtents(&row, &col, &rowExtents, &colExtents, &isSelected); + success = true; + } } QVariantList list; -- cgit v1.2.3 From d91afa15589e356eec42f653099557883791c755 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simo=20F=C3=A4lt?= Date: Mon, 19 Aug 2013 11:06:40 +0300 Subject: QtBase: Skip some tst_qwidget steps in Ubuntu 11.10 Same steps keeps failing on Ubuntu 11.10 without valid reason. Task-number: QTBUG-30566 Change-Id: Ic7bf65496ff9ad9c4fdef42a30b808aa2c45a1e5 Reviewed-by: Sergio Ahumada Reviewed-by: Frederik Gladhorn --- tests/auto/widgets/kernel/qwidget/qwidget.pro | 1 + tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/tests/auto/widgets/kernel/qwidget/qwidget.pro b/tests/auto/widgets/kernel/qwidget/qwidget.pro index 6916ee85e6..a4fcde8a34 100644 --- a/tests/auto/widgets/kernel/qwidget/qwidget.pro +++ b/tests/auto/widgets/kernel/qwidget/qwidget.pro @@ -23,3 +23,4 @@ x11 { !wince*:win32: LIBS += -luser32 -lgdi32 mac:CONFIG+=insignificant_test # QTBUG-25300, QTBUG-23695 +linux-*:system(". /etc/lsb-release && [ $DISTRIB_CODENAME = oneiric ]"):DEFINES+=UBUNTU_ONEIRIC # QTBUG-30566 \ No newline at end of file diff --git a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp index fefa7333d1..0085b75299 100644 --- a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp +++ b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp @@ -4859,6 +4859,9 @@ void tst_QWidget::moveChild_data() void tst_QWidget::moveChild() { +#if defined(UBUNTU_ONEIRIC) + QSKIP("QTBUG-30566 - Unstable auto-test"); +#endif QFETCH(QPoint, offset); ColorWidget parent; @@ -4909,6 +4912,9 @@ void tst_QWidget::moveChild() void tst_QWidget::showAndMoveChild() { +#if defined(UBUNTU_ONEIRIC) + QSKIP("QTBUG-30566 - Unstable auto-test"); +#endif QWidget parent(0, Qt::FramelessWindowHint); // prevent custom styles parent.setStyle(QStyleFactory::create(QLatin1String("Windows"))); @@ -7636,6 +7642,9 @@ void tst_QWidget::doubleRepaint() #if defined(Q_OS_MAC) if (!macHasAccessToWindowsServer()) QSKIP("Not having window server access causes the wrong number of repaints to be issues"); +#endif +#if defined(UBUNTU_ONEIRIC) + QSKIP("QTBUG-30566 - Unstable auto-test"); #endif UpdateWidget widget; widget.setFocusPolicy(Qt::StrongFocus); -- cgit v1.2.3 From eb2ae61cb4ff3ec80859e7a563878d33df7a6758 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Mon, 19 Aug 2013 10:30:19 +0200 Subject: Windows: Add hit test handling for non-client areas. Suppress resize cursor for fixed size windows. Task-number: QTBUG-32663 Change-Id: I9579bb13d494fe21e5db7b75d01a3cf1b693c7f6 Reviewed-by: Joerg Bornemann --- src/plugins/platforms/windows/qtwindowsglobal.h | 5 +++ src/plugins/platforms/windows/qwindowscontext.cpp | 4 ++- src/plugins/platforms/windows/qwindowswindow.cpp | 41 +++++++++++++++++++++++ src/plugins/platforms/windows/qwindowswindow.h | 3 +- 4 files changed, 51 insertions(+), 2 deletions(-) diff --git a/src/plugins/platforms/windows/qtwindowsglobal.h b/src/plugins/platforms/windows/qtwindowsglobal.h index ae48887a80..238817e85c 100644 --- a/src/plugins/platforms/windows/qtwindowsglobal.h +++ b/src/plugins/platforms/windows/qtwindowsglobal.h @@ -88,6 +88,7 @@ enum WindowsEventType // Simplify event types CursorEvent = MouseEventFlag + 3, TouchEvent = TouchEventFlag + 1, NonClientMouseEvent = NonClientEventFlag + MouseEventFlag + 1, + NonClientHitTest = NonClientEventFlag + 2, KeyEvent = KeyEventFlag + 1, KeyDownEvent = KeyEventFlag + KeyDownEventFlag + 1, InputMethodKeyEvent = InputMethodEventFlag + KeyEventFlag + 1, @@ -142,6 +143,10 @@ inline QtWindows::WindowsEventType windowsEventType(UINT message, WPARAM wParamI return QtWindows::ResizeEvent; case WM_NCCALCSIZE: return QtWindows::CalculateSize; +#ifndef Q_OS_WINCE + case WM_NCHITTEST: + return QtWindows::NonClientHitTest; +#endif // !Q_OS_WINCE case WM_GETMINMAXINFO: return QtWindows::QuerySizeHints; case WM_KEYDOWN: // keyboard event diff --git a/src/plugins/platforms/windows/qwindowscontext.cpp b/src/plugins/platforms/windows/qwindowscontext.cpp index 37a51e1fec..5114e9d524 100644 --- a/src/plugins/platforms/windows/qwindowscontext.cpp +++ b/src/plugins/platforms/windows/qwindowscontext.cpp @@ -819,7 +819,9 @@ bool QWindowsContext::windowsProc(HWND hwnd, UINT message, return true;// maybe available on some SDKs revisit WM_NCCALCSIZE case QtWindows::CalculateSize: return QWindowsGeometryHint::handleCalculateSize(platformWindow->customMargins(), msg, result); -#endif + case QtWindows::NonClientHitTest: + return platformWindow->handleNonClientHitTest(QPoint(msg.pt.x, msg.pt.y), result); +#endif // !Q_OS_WINCE case QtWindows::ExposeEvent: return platformWindow->handleWmPaint(hwnd, message, wParam, lParam); case QtWindows::NonClientMouseEvent: diff --git a/src/plugins/platforms/windows/qwindowswindow.cpp b/src/plugins/platforms/windows/qwindowswindow.cpp index e7e964a128..8ec10294a2 100644 --- a/src/plugins/platforms/windows/qwindowswindow.cpp +++ b/src/plugins/platforms/windows/qwindowswindow.cpp @@ -1796,6 +1796,47 @@ void QWindowsWindow::getSizeHints(MINMAXINFO *mmi) const if (QWindowsContext::verboseWindows) qDebug() << __FUNCTION__ << window() << *mmi; } + +bool QWindowsWindow::handleNonClientHitTest(const QPoint &globalPos, LRESULT *result) const +{ + // QTBUG-32663, suppress resize cursor for fixed size windows. + const QWindow *w = window(); + if (!w->isTopLevel() // Task 105852, minimized windows need to respond to user input. + || (m_windowState != Qt::WindowNoState && m_windowState != Qt::WindowActive) + || (m_data.flags & Qt::FramelessWindowHint)) { + return false; + } + const QSize minimumSize = w->minimumSize(); + if (minimumSize.isEmpty()) + return false; + const QSize maximumSize = w->maximumSize(); + const bool fixedWidth = minimumSize.width() == maximumSize.width(); + const bool fixedHeight = minimumSize.height() == maximumSize.height(); + if (!fixedWidth && !fixedHeight) + return false; + const QPoint localPos = w->mapFromGlobal(globalPos); + const QSize size = w->size(); + if (fixedHeight) { + if (localPos.y() >= size.height()) { + *result = HTBORDER; // Unspecified border, no resize cursor. + return true; + } + if (localPos.y() < 0) { + const QMargins margins = frameMargins(); + const int topResizeBarPos = margins.left() - margins.top(); + if (localPos.y() < topResizeBarPos) { + *result = HTCAPTION; // Extend caption over top resize bar, let's user move the window. + return true; + } + } + } + if (fixedWidth && (localPos.x() < 0 || localPos.x() >= size.width())) { + *result = HTBORDER; // Unspecified border, no resize cursor. + return true; + } + return false; +} + #endif // !Q_OS_WINCE #ifndef QT_NO_CURSOR diff --git a/src/plugins/platforms/windows/qwindowswindow.h b/src/plugins/platforms/windows/qwindowswindow.h index 996542f92a..f7d142fc36 100644 --- a/src/plugins/platforms/windows/qwindowswindow.h +++ b/src/plugins/platforms/windows/qwindowswindow.h @@ -234,7 +234,8 @@ public: void releaseDC(); #ifndef Q_OS_WINCE // maybe available on some SDKs revisit WM_GETMINMAXINFO void getSizeHints(MINMAXINFO *mmi) const; -#endif + bool handleNonClientHitTest(const QPoint &globalPos, LRESULT *result) const; +#endif // !Q_OS_WINCE #ifndef QT_NO_CURSOR QWindowsWindowCursor cursor() const { return m_cursor; } -- cgit v1.2.3 From 1d0715fde129ba36b39bb8ab98355c74b9d78e6a Mon Sep 17 00:00:00 2001 From: Mat Sutcliffe Date: Wed, 14 Aug 2013 23:18:55 +0100 Subject: Give the extra compiler a unique name for the vcproj generation The first word of the .name variable of each extra compiler is used as a key in a container that keeps track of them. See also: qmake/generators/win32/msvc_objectmodel.cpp: VCProjectSingleConfig::filterForExtraCompiler qmake/generators/win32/msvc_vcproj.cpp: VcprojGenerators::initExtraCompilerOutputs Task-number: QTBUG-32912 Change-Id: I7ea5c58884db559621f50740075b7f2e4e3ef7f8 Reviewed-by: Oswald Buddenhagen Reviewed-by: Joerg Bornemann --- mkspecs/features/dbuscommon.pri | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mkspecs/features/dbuscommon.pri b/mkspecs/features/dbuscommon.pri index 4608fb6ca2..6e1e5659c3 100644 --- a/mkspecs/features/dbuscommon.pri +++ b/mkspecs/features/dbuscommon.pri @@ -72,7 +72,7 @@ for(group, groups) { $${group}_moc.output = $$moc_header.output $${group}_moc.input = $${GROUP}_HEADERS $${group}_moc.variable_out = GENERATED_SOURCES - $${group}_moc.name = $$moc_header.name + $${group}_moc.name = $${GROUP}_$$moc_header.name QMAKE_EXTRA_COMPILERS += $${group}_header $${group}_source $${group}_moc } -- cgit v1.2.3 From 882e01a94f83bc1625d68b279cdde9a38dae0166 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Mon, 19 Aug 2013 16:12:17 +0200 Subject: Revert "Disable precision timers when running MSVC2012 code on pre-Windows 8." This reverts commit aa1b4c0943187d82e0c313b93559e99226a9c75a. It turns out that the bug is caused by a different mask constant in Windows 8 which should not take effect in pre-Windows 8. Change-Id: I1ad502262dae42856c07d48ee3bc9dc032ab379b Reviewed-by: Joerg Bornemann --- src/corelib/kernel/qeventdispatcher_win.cpp | 8 -------- 1 file changed, 8 deletions(-) diff --git a/src/corelib/kernel/qeventdispatcher_win.cpp b/src/corelib/kernel/qeventdispatcher_win.cpp index d1bd8fbe95..ae291f13cd 100644 --- a/src/corelib/kernel/qeventdispatcher_win.cpp +++ b/src/corelib/kernel/qeventdispatcher_win.cpp @@ -52,8 +52,6 @@ #include "qelapsedtimer.h" #include "qcoreapplication_p.h" -#include "qsysinfo.h" - #include #include @@ -307,14 +305,8 @@ static void resolveTimerAPI() #endif triedResolve = true; #if !defined(Q_OS_WINCE) -# if defined(_MSC_VER) && _MSC_VER >= 1700 - if (QSysInfo::WindowsVersion >= QSysInfo::WV_WINDOWS8) { // QTBUG-27266, Disable when running MSVC2012-built code on pre-Windows 8 -# else - { -# endif qtimeSetEvent = (ptimeSetEvent)QSystemLibrary::resolve(QLatin1String("winmm"), "timeSetEvent"); qtimeKillEvent = (ptimeKillEvent)QSystemLibrary::resolve(QLatin1String("winmm"), "timeKillEvent"); - } #else qtimeSetEvent = (ptimeSetEvent)QSystemLibrary::resolve(QLatin1String("Mmtimer"), "timeSetEvent"); qtimeKillEvent = (ptimeKillEvent)QSystemLibrary::resolve(QLatin1String("Mmtimer"), "timeKillEvent"); -- cgit v1.2.3 From 54f1d7e2e48b896755aa930ee7e4ecacf51bf977 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Mon, 19 Aug 2013 16:14:01 +0200 Subject: Use correct mask constant in the Windows event dispatcher. Mask out QS_TOUCH, QS_POINTER when running a VS2012-compiled binary on pre-Windows 8 systems. Task-number: QTBUG-32257 Task-number: QTBUG-28513 Task-number: QTBUG-29097 Task-number: QTBUG-29435 Change-Id: I33ce3a659a234cb04d3b5ae9d668d193d681be7f Reviewed-by: Joerg Bornemann --- src/corelib/kernel/qeventdispatcher_win.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/corelib/kernel/qeventdispatcher_win.cpp b/src/corelib/kernel/qeventdispatcher_win.cpp index ae291f13cd..dfb897c0fd 100644 --- a/src/corelib/kernel/qeventdispatcher_win.cpp +++ b/src/corelib/kernel/qeventdispatcher_win.cpp @@ -430,6 +430,18 @@ LRESULT QT_WIN_CALLBACK qt_internal_proc(HWND hwnd, UINT message, WPARAM wp, LPA return DefWindowProc(hwnd, message, wp, lp); } +static inline UINT inputTimerMask() +{ + UINT result = QS_TIMER | QS_INPUT | QS_RAWINPUT; + // QTBUG 28513, QTBUG-29097, QTBUG-29435: QS_TOUCH, QS_POINTER became part of + // QS_INPUT in Windows Kit 8. They should not be used when running on pre-Windows 8. +#if defined(_MSC_VER) && _MSC_VER >= 1700 + if (QSysInfo::WindowsVersion < QSysInfo::WV_WINDOWS8) + result &= ~(QS_TOUCH | QS_POINTER); +#endif // _MSC_VER >= 1700 + return result; +} + LRESULT QT_WIN_CALLBACK qt_GetMessageHook(int code, WPARAM wp, LPARAM lp) { if (wp == PM_REMOVE) { @@ -439,7 +451,8 @@ LRESULT QT_WIN_CALLBACK qt_GetMessageHook(int code, WPARAM wp, LPARAM lp) MSG *msg = (MSG *) lp; QEventDispatcherWin32Private *d = q->d_func(); const int localSerialNumber = d->serialNumber.load(); - if (HIWORD(GetQueueStatus(QS_TIMER | QS_INPUT | QS_RAWINPUT)) == 0) { + static const UINT mask = inputTimerMask(); + if (HIWORD(GetQueueStatus(mask)) == 0) { // no more input or timer events in the message queue, we can allow posted events to be sent normally now if (d->sendPostedEventsWindowsTimerId != 0) { // stop the timer to send posted events, since we now allow the WM_QT_SENDPOSTEDEVENTS message -- cgit v1.2.3 From 1e47a9594cae0240bcc9dfb615dea5639e6e65d2 Mon Sep 17 00:00:00 2001 From: Nico Vertriest Date: Fri, 9 Aug 2013 12:55:08 +0200 Subject: Doc: qtgui configuration file with comments Task-number: QTBUG-31801 Change-Id: I225edf67f586cc5822269c643020d5666465712d Reviewed-by: Martin Smith Reviewed-by: Jerome Pasion --- src/tools/qdoc/doc/qtgui-qdocconf.qdoc | 292 +++++++++++++++++++++++++++++++++ 1 file changed, 292 insertions(+) create mode 100644 src/tools/qdoc/doc/qtgui-qdocconf.qdoc diff --git a/src/tools/qdoc/doc/qtgui-qdocconf.qdoc b/src/tools/qdoc/doc/qtgui-qdocconf.qdoc new file mode 100644 index 0000000000..7e6da0feb5 --- /dev/null +++ b/src/tools/qdoc/doc/qtgui-qdocconf.qdoc @@ -0,0 +1,292 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:FDL$ +** 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 Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Free Documentation License Usage +** Alternatively, this file may be used under the terms of the GNU Free +** Documentation License version 1.3 as published by the Free Software +** Foundation and appearing in the file included in the packaging of +** this file. Please review the following information to ensure +** the GNU Free Documentation License version 1.3 requirements +** will be met: http://www.gnu.org/copyleft/fdl.html. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +/*! + +\page qtgui-qdocconf.html +\title qtgui.qdocconf with Comments + +\brief A walkthrough of a typical qdocconf file + +This document goes through a typical Qt 5 qdocconf file. The contents is taken from +Qt GUI's \e qtgui.qdocconf file. + +Below you will find the full contents of qtgui.qdocconf. The subsequent section will discuss +every statement in the qdocconf file. + +\code + include($QT_INSTALL_DOCS/global/qt-module-defaults.qdocconf) + + project = QtGui + description = Qt GUI Reference Documentation + url = http://qt-project.org/doc/qt-$QT_VER/qtgui + version = $QT_VERSION + + examplesinstallpath = gui + + qhp.projects = QtGui + + qhp.QtGui.file = qtgui.qhp + qhp.QtGui.namespace = org.qt-project.qtgui.$QT_VERSION_TAG + qhp.QtGui.virtualFolder = qtgui + qhp.QtGui.indexTitle = Qt GUI + qhp.QtGui.indexRoot = + + qhp.QtGui.filterAttributes = qtgui $QT_VERSION qtrefdoc + qhp.QtGui.customFilters.Qt.name = Qtgui $QT_VERSION + qhp.QtGui.customFilters.Qt.filterAttributes = qtgui $QT_VERSION + + qhp.QtGui.subprojects = classes + qhp.QtGui.subprojects.classes.title = C++ Classes + qhp.QtGui.subprojects.classes.indexTitle = Qt GUI C++ Classes + qhp.QtGui.subprojects.classes.selectors = class fake:headerfile + qhp.QtGui.subprojects.classes.sortPages = true + + tagfile = ../../../doc/qtgui/qtgui.tags + + depends += \ + qtcore \ + qtnetwork \ + qtopengl \ + qtsvg \ + qtqml \ + qtquick \ + qtwidgets \ + qtdoc + + headerdirs += .. + + sourcedirs += .. \ + ../../../examples/gui/doc/src + + exampledirs += ../../../examples/gui \ + snippets + + imagedirs += images \ + ../../../examples/gui/doc/images \ + ../../../doc/src/images \ +\endcode + +\title Qtgui.qdocconf with notes + +\code + include($QT_INSTALL_DOCS/global/qt-module-defaults.qdocconf) +\endcode + +QDoc inherits the default templates, macros, and settings from the directory +specified from the \c $QT_INSTALL_DOCS variable. \c qmake prints the value of +the variable. +\code + qmake -query +\endcode + +\sa include + +\code + project = QtGui +\endcode + +The \c project variable sets the name of the QDoc build. This name is also +used to form the index file, which, in this case, will be \e qtgui.index. The +name of the index file doesn't adopt the uppercase letters of the project name. + +\sa project + +\code + description = Qt GUI Reference Documentation +\endcode + +A short description of the project concerned. + +\code + url = http://qt-project.org/doc/qt-$QT_VER/qtgui +\endcode + +The \c url variable holds the base url of the project. + +The URL is stored in the generated index file for the project. +QDoc will use this as the base URL when constructing links +to content listed in the index. + +\note QDoc omits this value when the -installdir argument +is specified when running QDoc. + +\keyword examplesinstallpath + +\code + examplesinstallpath = gui +\endcode + +This \e examplesinstallpath variable indicates that the examples will be installed +in the \e gui directory under the parent examples directory (for Qt, this is +$QT_INSTALL_EXAMPLES). + +\note The examplepath variable has to match the example directory specified in exampledirs. +\sa exampledirs + +\code + qhp.projects = QtGui + qhp.QtGui.file = qtgui.qhp +\endcode + +The following parameters are for creating a QHP file (\e .qhp). The qhelpgenerator +program can convert the QHP file into a QCH file (\e .qch), which can be opened in +Qt Assistant or Qt Creator. + +\code + qhp.QtGui.namespace = org.qt-project.qtgui.$QT_VERSION_TAG +\endcode + +A unique identifier which enables QHelpEngine to retrieve the helpfile +from a given link. This namespace is also used as a base url for links +to the helpfile. + +\code + qhp.QtGui.virtualFolder = qtgui +\endcode + +Virtual folders group documentation together into a single location. A +virtual folder will become the root directory of all files referenced in a +compressed help file. + +When two manuals are located in the same virtual folder, it is possible to refer + to sections of the other manual using relative paths. +The virtual folder tag is mandatory and the folder must not contain any '/'. + +\code + qhp.QtGui.indexTitle = Qt GUI the title of the page that has the contents +\endcode + +This is the title of the page that has the contents. + +\code + qhp.QtGui.indexRoot = to be checked +\endcode + +Specifies the title of the root (namespace) page to generate the documentation for. +Typically defined as an empty string. + +\code + qhp.QtGui.filterAttributes = qtgui $QT_VERSION qtrefdoc + qhp.QtGui.customFilters.Qt.name = QtGui $QT_VERSION + qhp.QtGui.customFilters.Qt.filterAttributes = qtgui $QT_VERSION +\endcode + +The documentation set (one per QDoc project) can have any number of filter +attributes assigned to it. A filter attribute is an ordinary string which +can be freely chosen. Additionally, custom filters that reference above +attributes can be defined. Qt Assistant will display the name of the custom +filter in its \gui{Filtered by} drop-down list. Only the documentation sets +that have their filter attributes match the attributes of the selected +custom filter will be shown. + +\code + qhp.QtGui.subprojects = classes + qhp.QtGui.subprojects.classes.title = C++ Classes + qhp.QtGui.subprojects.classes.indexTitle = Qt GUI C++ Classes +\endcode +The subprojects specify the sections that are displayed in the table of contents +for this project. In this example, the subproject, which is displayed in +the Assistant's sidebar, is named "C++ Classes" and its index is the page +titled "QT GUI C++ Classes". + +\code + qhp.QtGui.subprojects.classes.selectors = class fake:headerfile +\endcode + +Lists all headerfiles. + +A ‘fake’ type specifies a generic documentation node, and is followed by +a c\ : and a \e subtype specifier. + +Possible values: +\code + example + headerfile + file + group + module + page + externalpage + qmlclass + qmlpropertygroup + qmlbasictype +\endcode + +tagfile = ../../../doc/qtgui/qtgui.tags +This specifies the Doxygen tag file that needs to be written when the html is generated +by QDoc. + +\code +depends += \ + qtcore \ + qtnetwork \ + qtopengl \ + qtsvg \ + qtqml \ + qtquick \ + qtwidgets \ + qtdoc +\endcode + +Specifies the modules QDoc needs to load for generating output for Qt GUI. +QDoc loads the index files for all modules listed in the depends statement in +order to enable linking to pages in these modules. + +\code + headerdirs += .. +\endcode + +Add the parent directory to the list of directories containing the header files +associated with the \e .cpp source files. + +\code + sourcedirs += .. \ + ../../../examples/gui/doc/src +\endcode + +Add the specified directories to the list of directories containing the \e .cpp and +\e .qdoc files used in the documentation. + +\code + exampledirs += ../../../examples/gui \ + snippets +\endcode +\sa examplesinstallpath + +Add the two directories specified to the list of directories containing the source +code of the example files. + +\code + imagedirs += images \ + ../../../examples/gui/doc/images \ + ../../../doc/src/images \ +\endcode + +Add the directories specified above to the list of directories where the images +can be found. +*/ -- cgit v1.2.3 From 8b540f68a8404e4b9e3ac65a22c11416a91ee749 Mon Sep 17 00:00:00 2001 From: Mitch Curtis Date: Mon, 19 Aug 2013 09:02:27 +0200 Subject: Tidy up QJsonObject documentation. Change-Id: I445e0573c3c4fdb86ef535299a4eb299e225c15d Reviewed-by: Jerome Pasion Reviewed-by: Lars Knoll --- src/corelib/json/qjsonobject.cpp | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/src/corelib/json/qjsonobject.cpp b/src/corelib/json/qjsonobject.cpp index 2be9d8891d..43336de2e7 100644 --- a/src/corelib/json/qjsonobject.cpp +++ b/src/corelib/json/qjsonobject.cpp @@ -69,7 +69,7 @@ QT_BEGIN_NAMESPACE QJsonObject is an implicitly shared class, and shares the data with the document it has been created from as long as it is not being modified. - You can convert the array to and from text based JSON through QJsonDocument. + You can convert the object to and from text based JSON through QJsonDocument. */ /*! @@ -104,7 +104,7 @@ QT_BEGIN_NAMESPACE /*! - Constructs an empty JSON object + Constructs an empty JSON object. \sa isEmpty() */ @@ -245,7 +245,7 @@ bool QJsonObject::isEmpty() const /*! Returns a QJsonValue representing the value for the key \a key. - The returned QJsonValue is \c Undefined, if the key does not exist. + The returned QJsonValue is QJsonValue::Undefined if the key does not exist. \sa QJsonValue, QJsonValue::isUndefined() */ @@ -266,7 +266,7 @@ QJsonValue QJsonObject::value(const QString &key) const This does the same as value(). - The returned QJsonValue is \c Undefined, if the key does not exist. + The returned QJsonValue is QJsonValue::Undefined if the key does not exist. \sa value(), QJsonValue, QJsonValue::isUndefined() */ @@ -281,7 +281,7 @@ QJsonValue QJsonObject::operator [](const QString &key) const The return value is of type QJsonValueRef, a helper class for QJsonArray and QJsonObject. When you get an object of type QJsonValueRef, you can use it as if it were a reference to a QJsonValue. If you assign to it, - the assignment will apply to the character in the QJsonArray of QJsonObject + the assignment will apply to the element in the QJsonArray or QJsonObject from which you got the reference. \sa value() @@ -301,13 +301,13 @@ QJsonValueRef QJsonObject::operator [](const QString &key) /*! Inserts a new item with the key \a key and a value of \a value. - If there is already an item with the key \a key then that item's value + If there is already an item with the key \a key, then that item's value is replaced with \a value. Returns an iterator pointing to the inserted item. If the value is QJsonValue::Undefined, it will cause the key to get removed - from the object. The returned iterator will then point to end() + from the object. The returned iterator will then point to end(). \sa remove(), take(), QJsonObject::iterator, end() */ @@ -382,7 +382,7 @@ void QJsonObject::remove(const QString &key) Returns a QJsonValue containing the value referenced by \a key. If \a key was not contained in the object, the returned QJsonValue - is Undefined. + is QJsonValue::Undefined. \sa insert(), remove(), QJsonValue */ @@ -422,7 +422,7 @@ bool QJsonObject::contains(const QString &key) const } /*! - Returns \c true if \a other is equal to this object + Returns \c true if \a other is equal to this object. */ bool QJsonObject::operator==(const QJsonObject &other) const { @@ -447,7 +447,7 @@ bool QJsonObject::operator==(const QJsonObject &other) const } /*! - Returns \c true if \a other is not equal to this object + Returns \c true if \a other is not equal to this object. */ bool QJsonObject::operator!=(const QJsonObject &other) const { @@ -501,7 +501,7 @@ QJsonObject::iterator QJsonObject::find(const QString &key) */ /*! - Returns an const iterator pointing to the item with key \a key in the + Returns a const iterator pointing to the item with key \a key in the map. If the map contains no item with key \a key, the function @@ -594,7 +594,7 @@ QJsonObject::const_iterator QJsonObject::constFind(const QString &key) const should use QJsonObject::const_iterator. It is generally good practice to use QJsonObject::const_iterator on a non-const QJsonObject as well, unless you need to change the QJsonObject through the iterator. Const iterators are - slightly faster, and improves code readability. + slightly faster, and improve code readability. The default QJsonObject::iterator constructor creates an uninitialized iterator. You must initialize it using a QJsonObject function like @@ -614,8 +614,8 @@ QJsonObject::const_iterator QJsonObject::constFind(const QString &key) const /*! \typedef QJsonObject::iterator::iterator_category - A synonym for \e {std::bidirectional_iterator_tag} indicating - this iterator is a bidirectional iterator. + A synonym for \e {std::bidirectional_iterator_tag} indicating + this iterator is a bidirectional iterator. */ /*! \typedef QJsonObject::iterator::reference @@ -664,7 +664,7 @@ QJsonObject::const_iterator QJsonObject::constFind(const QString &key) const The return value is of type QJsonValueRef, a helper class for QJsonArray and QJsonObject. When you get an object of type QJsonValueRef, you can use it as if it were a reference to a QJsonValue. If you assign to it, - the assignment will apply to the character in the QJsonArray of QJsonObject + the assignment will apply to the element in the QJsonArray or QJsonObject from which you got the reference. \sa key(), operator*() @@ -679,7 +679,7 @@ QJsonObject::const_iterator QJsonObject::constFind(const QString &key) const The return value is of type QJsonValueRef, a helper class for QJsonArray and QJsonObject. When you get an object of type QJsonValueRef, you can use it as if it were a reference to a QJsonValue. If you assign to it, - the assignment will apply to the character in the QJsonArray of QJsonObject + the assignment will apply to the element in the QJsonArray or QJsonObject from which you got the reference. \sa key() @@ -788,7 +788,7 @@ QJsonObject::const_iterator QJsonObject::constFind(const QString &key) const over it, you must use QJsonObject::iterator instead. It is generally good practice to use QJsonObject::const_iterator on a non-const QJsonObject as well, unless you need to change the QJsonObject through the iterator. - Const iterators are slightly faster and improves code + Const iterators are slightly faster and improve code readability. The default QJsonObject::const_iterator constructor creates an @@ -809,8 +809,8 @@ QJsonObject::const_iterator QJsonObject::constFind(const QString &key) const /*! \typedef QJsonObject::const_iterator::iterator_category - A synonym for \e {std::bidirectional_iterator_tag} indicating - this iterator is a bidirectional iterator. + A synonym for \e {std::bidirectional_iterator_tag} indicating + this iterator is a bidirectional iterator. */ /*! \typedef QJsonObject::const_iterator::reference -- cgit v1.2.3