From dcfb814498be938421b56020d7c9946cce7296dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Thu, 25 Aug 2016 15:07:33 +0200 Subject: Cocoa: Add support for triple-buffered GL contexts As usual, the requested format may not be available, so clients should check the actual format to confirm triple-buffering. Change-Id: Icf073cc9ddf2c912eb5c3ce0ac80d1694d1c56d7 Reviewed-by: Jake Petroules Reviewed-by: Laszlo Agocs --- src/platformsupport/cglconvenience/cglconvenience.mm | 5 ++++- src/plugins/platforms/cocoa/qcocoaglcontext.mm | 10 +++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/platformsupport/cglconvenience/cglconvenience.mm b/src/platformsupport/cglconvenience/cglconvenience.mm index 6b0a91e13f..fb609ae485 100644 --- a/src/platformsupport/cglconvenience/cglconvenience.mm +++ b/src/platformsupport/cglconvenience/cglconvenience.mm @@ -81,8 +81,11 @@ void *qcgl_createNSOpenGLPixelFormat(const QSurfaceFormat &format) QVector attrs; - if (format.swapBehavior() != QSurfaceFormat::SingleBuffer) + if (format.swapBehavior() == QSurfaceFormat::DoubleBuffer + || format.swapBehavior() == QSurfaceFormat::DefaultSwapBehavior) attrs.append(NSOpenGLPFADoubleBuffer); + else if (format.swapBehavior() == QSurfaceFormat::TripleBuffer) + attrs.append(NSOpenGLPFATripleBuffer); #if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7 if (QSysInfo::MacintoshVersion >= QSysInfo::MV_10_7) { diff --git a/src/plugins/platforms/cocoa/qcocoaglcontext.mm b/src/plugins/platforms/cocoa/qcocoaglcontext.mm index 0f9b8b900d..b77ca07141 100644 --- a/src/plugins/platforms/cocoa/qcocoaglcontext.mm +++ b/src/plugins/platforms/cocoa/qcocoaglcontext.mm @@ -305,8 +305,16 @@ void QCocoaGLContext::updateSurfaceFormat() m_format.setSamples(samples); int doubleBuffered = -1; + int tripleBuffered = -1; [pixelFormat getValues:&doubleBuffered forAttribute:NSOpenGLPFADoubleBuffer forVirtualScreen:0]; - m_format.setSwapBehavior(doubleBuffered == 1 ? QSurfaceFormat::DoubleBuffer : QSurfaceFormat::SingleBuffer); + [pixelFormat getValues:&tripleBuffered forAttribute:NSOpenGLPFATripleBuffer forVirtualScreen:0]; + + if (tripleBuffered == 1) + m_format.setSwapBehavior(QSurfaceFormat::TripleBuffer); + else if (doubleBuffered == 1) + m_format.setSwapBehavior(QSurfaceFormat::DoubleBuffer); + else + m_format.setSwapBehavior(QSurfaceFormat::SingleBuffer); int steroBuffers = -1; [pixelFormat getValues:&steroBuffers forAttribute:NSOpenGLPFAStereo forVirtualScreen:0]; -- cgit v1.2.3 From 55ab276700b9631f230d15d2c2edc16371191c45 Mon Sep 17 00:00:00 2001 From: Edward Welbourne Date: Mon, 25 Jul 2016 15:55:47 +0200 Subject: Major re-write of generate_expected_output.py Restructured, separated the canonicalising of output lines out (into an object that prepares the necessary regexes and replacements) suppress more, changed the path-stripping to strip qtbase's parent rather than os.getcwd() and took account of shadow builds (so both source tree and build tree provide prefixes we want to strip from paths). Also cope with $PWD potentially having symlinks in it, where os.getcwd() is canonical. It's possible some output might name files elsewhere in the source tree; these won't be filtered by the prior cwd prefix removal; and, in any case, the problem with cwd is only that the ancestry of qtbase is apt to vary; paths relative to there should be consistent between test runs. This change shall lead to a one-off rewrite of all expected_* files; but it should now catch all paths. By stripping both build root and source root (when different) it also avoids differences for those doing out-of-source ("shadow") builds. In our XML formats, any hyphens in root paths (e.g. I had Qt-5.6 in my build root's path) got represented by a character entity, confounding the replacement; so also do replacement that catches this. We may discover other character entity subsitutions needed along with this. Now filtering line numbers and timing information, including benchmark results; these numbers all get replaced with 0 to avoid noisy diffs. Also purging dangling hspace, to placate sanity-bot. The module can now be imported - the code it runs is packaged as a main() function that a __name__ == '__main__' stanza runs - and all data is localised to where it's needed, rather than held in globals. Tidied up and organized the existing regexes. There are doc-strings; there is a short usage comment. Data is localised rather than global and modern pythonic idioms get used where apt. Regexes are compiled once instead of repeatedly. An object looks after the list of patterns to apply and its construction handles all anticipated problems. Failures are mediated by an exception. The output file now gets written once, instead of twice (once before editing, then over-write to edit), and Popen uses text mode, so that write can do the same. Its command is delivered as an array, avoiding the need to invoke a shell. Instead of relying on qmake being in our path (which might give us a bogus QT_VERSION if the one in path doesn't match our build tree), use the relative path to qmake - we rely on being run in a specific directory in the build tree, after all. Escape dots in the version properly, so that 51730 doesn't get mistaken for 5.7.0 (for example), and moved this check later in the sequence (matching a smaller target makes it more likely to falsely match). Overtly check we are in the right directory and tell the user what we actually need, if run from the wrong place. Simplify handling of the unsupported use-case for MS-Windows (but note what would be needed for it). Change-Id: Ibdff8f8cae173f6c31492648148cc345ae29022b Reviewed-by: Mitch Curtis Reviewed-by: Frederik Gladhorn --- .../testlib/selftests/generate_expected_output.py | 260 ++++++++++++++------- 1 file changed, 178 insertions(+), 82 deletions(-) diff --git a/tests/auto/testlib/selftests/generate_expected_output.py b/tests/auto/testlib/selftests/generate_expected_output.py index b917dacc78..1bf8cf6603 100755 --- a/tests/auto/testlib/selftests/generate_expected_output.py +++ b/tests/auto/testlib/selftests/generate_expected_output.py @@ -32,89 +32,185 @@ ## ############################################################################# -#regenerate all test's output +# Regenerate all tests' output. +# +# Usage: cd to the build directory corresponding to this script's +# location; invoke this script; optionally pass the names of sub-dirs +# to limit which tests to regenerate expected_* files for. import os -import sys import subprocess -import re - -formats = ['xml', 'txt', 'xunitxml', 'lightxml'] - -qtver = subprocess.check_output(['qmake', '-query', 'QT_VERSION']).strip().decode('utf-8') -rootPath = os.getcwd() - -isWindows = sys.platform == 'win32' - -replacements = [ - (qtver, r'@INSERT_QT_VERSION_HERE@'), - (r'Config: Using QtTest library.*', r'Config: Using QtTest library'), # Build string in text logs - (rootPath.encode('unicode-escape').decode('utf-8'), r''), - (r'( *)', r'\1'), - (r'( *)[^<]+', r'\1'), # Build element in xml, lightxml - (r'', r'') # Build in xunitxml -] - -extraArgs = { - "commandlinedata": "fiveTablePasses fiveTablePasses:fiveTablePasses_data1 -v2", - "benchlibcallgrind": "-callgrind", - "benchlibeventcounter": "-eventcounter", - "benchliboptions": "-eventcounter", - "benchlibtickcounter": "-tickcounter", - "badxml": "-eventcounter", - "benchlibcounting": "-eventcounter", - "printdatatags": "-datatags", - "printdatatagswithglobaltags": "-datatags", - "silent": "-silent", - "verbose1": "-v1", - "verbose2": "-v2", -} - -# Replace all occurrences of searchExp in one file -def replaceInFile(file): - import sys - import fileinput - for line in fileinput.input(file, inplace=1): - for searchExp, replaceExp in replacements: - line = re.sub(searchExp, replaceExp, line) - sys.stdout.write(line) - -def subdirs(): - result = [] - for path in os.listdir('.'): - if os.path.isdir('./' + path): - result.append(path) - return result - -def getTestForPath(path): - if isWindows: - testpath = path + '\\' + path + '.exe' - else: - testpath = path + '/' + path - return testpath - -def generateTestData(testname): - print(" running " + testname) + +class Fail (Exception): pass + +class Cleaner (object): + """Tool to clean up test output to make diff-ing runs useful. + + We care about whether tests pass or fail - if that changes, + something that matters has happened - and we care about some + changes to what they say when they do fail; but we don't care + exactly what line of what file the failing line of code now + occupies, nor do we care how many milliseconds each test took to + run; and changes to the Qt version number mean nothing to us. + + Create one singleton instance; it'll do mildly expensive things + once and you can use its .clean() method to tidy up your test + output.""" + + def __init__(self, here, command): + """Set up the details we need for later cleaning. + + Takes two parameters: here is $PWD and command is how this + script was invoked, from which we'll work out where it is; in + a shadow build, the former is the build tree's location + corresponding to this last. Checks $PWD does look as expected + in a build tree - raising Fail() if not - then invokes qmake + to discover Qt version (saved as .version for the benefit of + clients) and prepares the sequence of (regex, replace) pairs + that .clean() needs to do its job.""" + self.version, self.__replace = self.__getPatterns(here, command) + + import re + @staticmethod + def __getPatterns(here, command, + patterns = ( + # Timings: + (r'( *', r'\1"0"/>'), # xml, lightxml + (r'(Totals:.*,) *[0-9.]+ms', r'\1 0ms'), # txt + # Benchmarks: + (r'[0-9,.]+( (?:CPU ticks|msecs) per iteration \(total:) [0-9,.]+ ', r'0\1 0, '), # txt + (r'(,"(?:CPUTicks|WalltimeMilliseconds)"),\d+,\d+,', r'\1,0,0,'), # csv + (r'([^<]+', r'\1/>'), # xml, lightxml + (r'()', r'\1\2'), # xunitxml + # Line numbers in source files: + (r'(Loc: \[[^[\]()]+)\(\d+\)', r'\1(0)'), # txt + # (r'(\[Loc: [^[\]()]+)\(\d+\)', r'\1(0)'), # teamcity + (r'( Date: Fri, 26 Aug 2016 11:57:21 +0200 Subject: QIcon::addFile(): Invoke QMimeDatabase when matching by suffix fails This will detect image files correctly even if case resource aliases without suffixed are used. Task-number: QTBUG-55388 Change-Id: I337ca1f6be7126fe731e5e278b23aaef6cdfd9ef Reviewed-by: Eirik Aavitsland --- src/gui/image/qicon.cpp | 40 ++++++++++++++++++++++------------------ 1 file changed, 22 insertions(+), 18 deletions(-) diff --git a/src/gui/image/qicon.cpp b/src/gui/image/qicon.cpp index 62ec8e93b2..716a7c52c2 100644 --- a/src/gui/image/qicon.cpp +++ b/src/gui/image/qicon.cpp @@ -47,6 +47,8 @@ #include "private/qiconloader_p.h" #include "qpainter.h" #include "qfileinfo.h" +#include +#include #include "qpixmapcache.h" #include "qvariant.h" #include "qcache.h" @@ -976,6 +978,18 @@ void QIcon::addPixmap(const QPixmap &pixmap, Mode mode, State state) d->engine->addPixmap(pixmap, mode, state); } +static QIconEngine *iconEngineFromSuffix(const QString &fileName, const QString &suffix) +{ + if (!suffix.isEmpty()) { + const int index = loader()->indexOf(suffix); + if (index != -1) { + if (QIconEnginePlugin *factory = qobject_cast(loader()->instance(index))) { + return factory->create(fileName); + } + } + } + return nullptr; +} /*! Adds an image from the file with the given \a fileName to the icon, as a specialization for \a size, \a mode and \a state. The @@ -1013,25 +1027,15 @@ void QIcon::addFile(const QString &fileName, const QSize &size, Mode mode, State return; detach(); if (!d) { + QFileInfo info(fileName); - QString suffix = info.suffix(); - if (!suffix.isEmpty()) { - // first try version 2 engines.. - const int index = loader()->indexOf(suffix); - if (index != -1) { - if (QIconEnginePlugin *factory = qobject_cast(loader()->instance(index))) { - if (QIconEngine *engine = factory->create(fileName)) { - d = new QIconPrivate; - d->engine = engine; - } - } - } - } - // ...then fall back to the default engine - if (!d) { - d = new QIconPrivate; - d->engine = new QPixmapIconEngine; - } + QIconEngine *engine = iconEngineFromSuffix(fileName, info.suffix()); +#ifndef QT_NO_MIMETYPE + if (!engine) + engine = iconEngineFromSuffix(fileName, QMimeDatabase().mimeTypeForFile(info).preferredSuffix()); +#endif // !QT_NO_MIMETYPE + d = new QIconPrivate; + d->engine = engine ? engine : new QPixmapIconEngine; } d->engine->addFile(fileName, size, mode, state); -- cgit v1.2.3 From 17e5d9d7cadb4fceb39cfc875162add57e962db8 Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Fri, 24 Jun 2016 10:57:10 +0200 Subject: Fix QMainWindow::restoreDockWidget() with GroupedDragging MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We need to account for the fact that the placeholder might be in a floating tab. Task-number: QTBUG-50491 Change-Id: I03d8e49cc40f58691154f5c3984f3b0670a974d5 Reviewed-by: Friedemann Kleint Reviewed-by: Sérgio Martins --- src/widgets/widgets/qdockarealayout.cpp | 53 ++++++++++++++++------- src/widgets/widgets/qdockarealayout_p.h | 1 + src/widgets/widgets/qmainwindowlayout.cpp | 70 ++++++++++++++++++------------- src/widgets/widgets/qmainwindowlayout_p.h | 2 +- 4 files changed, 80 insertions(+), 46 deletions(-) diff --git a/src/widgets/widgets/qdockarealayout.cpp b/src/widgets/widgets/qdockarealayout.cpp index d22e89c6e1..1d10de904d 100644 --- a/src/widgets/widgets/qdockarealayout.cpp +++ b/src/widgets/widgets/qdockarealayout.cpp @@ -2604,6 +2604,21 @@ void QDockAreaLayout::remove(const QList &path) docks[index].remove(path.mid(1)); } +void QDockAreaLayout::removePlaceHolder(const QString &name) +{ + QList index = indexOfPlaceHolder(name); + if (!index.isEmpty()) + remove(index); + foreach (QDockWidgetGroupWindow *dwgw, mainWindow->findChildren( + QString(), Qt::FindDirectChildrenOnly)) { + index = dwgw->layoutInfo()->indexOfPlaceHolder(name); + if (!index.isEmpty()) { + dwgw->layoutInfo()->remove(index); + dwgw->destroyOrHideIfEmpty(); + } + } +} + static inline int qMax(int i1, int i2, int i3) { return qMax(i1, qMax(i2, i3)); } void QDockAreaLayout::getGrid(QVector *_ver_struct_list, @@ -3030,15 +3045,27 @@ QRect QDockAreaLayout::constrainedRect(QRect rect, QWidget* widget) bool QDockAreaLayout::restoreDockWidget(QDockWidget *dockWidget) { - QList index = indexOfPlaceHolder(dockWidget->objectName()); - if (index.isEmpty()) - return false; + QDockAreaLayoutItem *item = 0; + foreach (QDockWidgetGroupWindow *dwgw, mainWindow->findChildren( + QString(), Qt::FindDirectChildrenOnly)) { + QList index = dwgw->layoutInfo()->indexOfPlaceHolder(dockWidget->objectName()); + if (!index.isEmpty()) { + dockWidget->setParent(dwgw); + item = const_cast(&dwgw->layoutInfo()->item(index)); + break; + } + } + if (!item) { + QList index = indexOfPlaceHolder(dockWidget->objectName()); + if (index.isEmpty()) + return false; + item = const_cast(&this->item(index)); + } - QDockAreaLayoutItem &item = this->item(index); - QPlaceHolderItem *placeHolder = item.placeHolderItem; + QPlaceHolderItem *placeHolder = item->placeHolderItem; Q_ASSERT(placeHolder != 0); - item.widgetItem = new QDockWidgetItem(dockWidget); + item->widgetItem = new QDockWidgetItem(dockWidget); if (placeHolder->window) { const QRect r = constrainedRect(placeHolder->topLevelRect, dockWidget); @@ -3050,7 +3077,7 @@ bool QDockAreaLayout::restoreDockWidget(QDockWidget *dockWidget) dockWidget->d_func()->setWindowState(true); #endif - item.placeHolderItem = 0; + item->placeHolderItem = 0; delete placeHolder; return true; @@ -3086,9 +3113,7 @@ void QDockAreaLayout::addDockWidget(QInternal::DockPosition pos, QDockWidget *do info = new_info; } - QList index = indexOfPlaceHolder(dockWidget->objectName()); - if (!index.isEmpty()) - remove(index); + removePlaceHolder(dockWidget->objectName()); } void QDockAreaLayout::tabifyDockWidget(QDockWidget *first, QDockWidget *second) @@ -3101,9 +3126,7 @@ void QDockAreaLayout::tabifyDockWidget(QDockWidget *first, QDockWidget *second) Q_ASSERT(info != 0); info->tab(path.last(), new QDockWidgetItem(second)); - QList index = indexOfPlaceHolder(second->objectName()); - if (!index.isEmpty()) - remove(index); + removePlaceHolder(second->objectName()); } void QDockAreaLayout::resizeDocks(const QList &docks, @@ -3165,9 +3188,7 @@ void QDockAreaLayout::splitDockWidget(QDockWidget *after, Q_ASSERT(info != 0); info->split(path.last(), orientation, new QDockWidgetItem(dockWidget)); - QList index = indexOfPlaceHolder(dockWidget->objectName()); - if (!index.isEmpty()) - remove(index); + removePlaceHolder(dockWidget->objectName()); } void QDockAreaLayout::apply(bool animate) diff --git a/src/widgets/widgets/qdockarealayout_p.h b/src/widgets/widgets/qdockarealayout_p.h index 5d352f0124..8a35d8b035 100644 --- a/src/widgets/widgets/qdockarealayout_p.h +++ b/src/widgets/widgets/qdockarealayout_p.h @@ -255,6 +255,7 @@ public: QLayoutItem *plug(const QList &path); QLayoutItem *unplug(const QList &path); void remove(const QList &path); + void removePlaceHolder(const QString &name); void fitLayout(); diff --git a/src/widgets/widgets/qmainwindowlayout.cpp b/src/widgets/widgets/qmainwindowlayout.cpp index 6b247d8d11..f581fe4d88 100644 --- a/src/widgets/widgets/qmainwindowlayout.cpp +++ b/src/widgets/widgets/qmainwindowlayout.cpp @@ -215,11 +215,10 @@ public: } void setGeometry(const QRect&r) Q_DECL_OVERRIDE { + static_cast(parent())->destroyOrHideIfEmpty(); QDockAreaLayoutInfo *li = layoutInfo(); - if (li->isEmpty()) { - static_cast(parent())->destroyIfEmpty(); + if (li->isEmpty()) return; - } int fw = frameWidth(); li->reparentWidgets(parentWidget()); li->rect = r.adjusted(fw, fw, -fw, -fw); @@ -272,6 +271,10 @@ bool QDockWidgetGroupWindow::event(QEvent *e) if (qobject_cast(static_cast(e)->child())) adjustFlags(); break; + case QEvent::LayoutRequest: + // We might need to show the widget again + destroyOrHideIfEmpty(); + break; default: break; } @@ -325,34 +328,43 @@ QDockWidget *QDockWidgetGroupWindow::topDockWidget() const } /*! \internal - Destroy this window if there is no more QDockWidget in it. + Destroy or hide this window if there is no more QDockWidget in it. + Otherwise make sure it is shown. */ -void QDockWidgetGroupWindow::destroyIfEmpty() -{ - if (layoutInfo()->isEmpty()) { - // Make sure to reparent the possibly floating or hidden QDockWidgets to the parent - foreach (QDockWidget *dw, - findChildren(QString(), Qt::FindDirectChildrenOnly)) { - bool wasFloating = dw->isFloating(); - bool wasHidden = dw->isHidden(); - dw->setParent(parentWidget()); - if (wasFloating) { - dw->setFloating(true); - } else { - // maybe it was hidden, we still have to put it back in the main layout. - QMainWindowLayout *ml = qt_mainwindow_layout(static_cast(parentWidget())); - Qt::DockWidgetArea area = ml->dockWidgetArea(this); - if (area == Qt::NoDockWidgetArea) - area = Qt::LeftDockWidgetArea; - static_cast(parentWidget())->addDockWidget(area, dw); - } - if (!wasHidden) - dw->show(); +void QDockWidgetGroupWindow::destroyOrHideIfEmpty() +{ + if (!layoutInfo()->isEmpty()) { + show(); // It might have been hidden, + return; + } + // There might still be placeholders + if (!layoutInfo()->item_list.isEmpty()) { + hide(); + return; + } + + // Make sure to reparent the possibly floating or hidden QDockWidgets to the parent + foreach (QDockWidget *dw, findChildren(QString(), Qt::FindDirectChildrenOnly)) { + bool wasFloating = dw->isFloating(); + bool wasHidden = dw->isHidden(); + dw->setParent(parentWidget()); + if (wasFloating) { + dw->setFloating(true); + } else { + // maybe it was hidden, we still have to put it back in the main layout. + QMainWindowLayout *ml = + qt_mainwindow_layout(static_cast(parentWidget())); + Qt::DockWidgetArea area = ml->dockWidgetArea(this); + if (area == Qt::NoDockWidgetArea) + area = Qt::LeftDockWidgetArea; + static_cast(parentWidget())->addDockWidget(area, dw); } - foreach (QTabBar *tb, findChildren(QString(), Qt::FindDirectChildrenOnly)) - tb->setParent(parentWidget()); - deleteLater(); + if (!wasHidden) + dw->show(); } + foreach (QTabBar *tb, findChildren(QString(), Qt::FindDirectChildrenOnly)) + tb->setParent(parentWidget()); + deleteLater(); } /*! \internal @@ -2075,7 +2087,7 @@ void QMainWindowLayout::animationFinished(QWidget *widget) item.subinfo->reparentWidgets(parentWidget()); item.subinfo->setTabBarShape(parentInfo->tabBarShape); } - dwgw->destroyIfEmpty(); + dwgw->destroyOrHideIfEmpty(); } if (QDockWidget *dw = qobject_cast(widget)) { diff --git a/src/widgets/widgets/qmainwindowlayout_p.h b/src/widgets/widgets/qmainwindowlayout_p.h index 9a13e5f5ce..7475da8bdc 100644 --- a/src/widgets/widgets/qmainwindowlayout_p.h +++ b/src/widgets/widgets/qmainwindowlayout_p.h @@ -86,7 +86,7 @@ public: : QWidget(parent, f) {} QDockAreaLayoutInfo *layoutInfo() const; QDockWidget *topDockWidget() const; - void destroyIfEmpty(); + void destroyOrHideIfEmpty(); void adjustFlags(); protected: bool event(QEvent *) Q_DECL_OVERRIDE; -- cgit v1.2.3 From ce2815b43c3f10c474c35d30197e14c58c9106ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Fri, 19 Aug 2016 14:44:21 +0200 Subject: Guard against calling QWindow::requestUpdate() on non-GUI threads Change-Id: I851ff672bc234146deb61615fc7c56df87d62065 Reviewed-by: Laszlo Agocs Reviewed-by: Timur Pocheptsov --- src/gui/kernel/qwindow.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/gui/kernel/qwindow.cpp b/src/gui/kernel/qwindow.cpp index 2e212e5fdb..bcd29b6fe1 100644 --- a/src/gui/kernel/qwindow.cpp +++ b/src/gui/kernel/qwindow.cpp @@ -2160,6 +2160,9 @@ void QWindowPrivate::deliverUpdateRequest() */ void QWindow::requestUpdate() { + Q_ASSERT_X(QThread::currentThread() == QCoreApplication::instance()->thread(), + "QWindow", "Updates can only be scheduled from the GUI (main) thread"); + Q_D(QWindow); if (d->updateRequestPending || !d->platformWindow) return; -- cgit v1.2.3 From 579283507c392fc5bc0976c054304ecb8938cb06 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Tue, 30 Aug 2016 13:42:43 +0200 Subject: QWin32PrintEngine: Fix uninitialized memory read of dpi_x, dpi_y Discovered by purify: QWin32PrintEnginePrivate::initialize() called updateMetrics() via updatePageLayout() after initHDC(), so dpi_x, dpi_y were accessed before initialized from the display resolution. Fix by moving the call initHDC() up and giving default values. Change-Id: Ia360c06d156e569ca6b1472ec5b5cdc52948f913 Reviewed-by: Andy Shaw --- src/printsupport/kernel/qprintengine_win.cpp | 4 ++-- src/printsupport/kernel/qprintengine_win_p.h | 6 +++++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/printsupport/kernel/qprintengine_win.cpp b/src/printsupport/kernel/qprintengine_win.cpp index a9d316095c..1c02d389fe 100644 --- a/src/printsupport/kernel/qprintengine_win.cpp +++ b/src/printsupport/kernel/qprintengine_win.cpp @@ -918,14 +918,14 @@ void QWin32PrintEnginePrivate::initialize() Q_ASSERT(hPrinter); Q_ASSERT(pInfo); + initHDC(); + if (devMode) { num_copies = devMode->dmCopies; devMode->dmCollate = DMCOLLATE_TRUE; updatePageLayout(); } - initHDC(); - #if defined QT_DEBUG_DRAW || defined QT_DEBUG_METRICS qDebug() << "QWin32PrintEngine::initialize()"; debugMetrics(); diff --git a/src/printsupport/kernel/qprintengine_win_p.h b/src/printsupport/kernel/qprintengine_win_p.h index c1d7b452f9..74b78ae2b1 100644 --- a/src/printsupport/kernel/qprintengine_win_p.h +++ b/src/printsupport/kernel/qprintengine_win_p.h @@ -124,10 +124,14 @@ public: state(QPrinter::Idle), resolution(0), m_pageLayout(QPageLayout(QPageSize(QPageSize::A4), QPageLayout::Portrait, QMarginsF(0, 0, 0, 0))), + stretch_x(1), stretch_y(1), origin_x(0), origin_y(0), + dpi_x(96), dpi_y(96), dpi_display(96), num_copies(1), printToFile(false), reinit(false), - embed_fonts(true) + complex_xform(false), has_pen(false), has_brush(false), has_custom_paper_size(false), + embed_fonts(true), + txop(0 /* QTransform::TxNone */) { } -- cgit v1.2.3 From 2ca4fd401b90831857a0dcd643e5d382feb75cb0 Mon Sep 17 00:00:00 2001 From: Andy Shaw Date: Fri, 5 Aug 2016 14:43:15 +0200 Subject: QIcon: Set the pixmap's dpr to 1.0 if the window is also set to 1.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When the pixmap is initially from a higher device pixel ratio and it is being used on a window that does not have a device pixel ratio other than 1.0 set then the pixmap should also have it set to 1.0. This ensures that the size of the pixmap is preserved and it is not scaled down as a result on the normal display. Change-Id: Ie5d96b3e1508867b723000bea182c8157640af02 Reviewed-by: Morten Johan Sørvig --- src/gui/image/qicon.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/gui/image/qicon.cpp b/src/gui/image/qicon.cpp index e1e5367766..3531be412e 100644 --- a/src/gui/image/qicon.cpp +++ b/src/gui/image/qicon.cpp @@ -835,8 +835,11 @@ QPixmap QIcon::pixmap(QWindow *window, const QSize &size, Mode mode, State state qreal devicePixelRatio = qt_effective_device_pixel_ratio(window); // Handle the simple normal-dpi case: - if (!(devicePixelRatio > 1.0)) - return d->engine->pixmap(size, mode, state); + if (!(devicePixelRatio > 1.0)) { + QPixmap pixmap = d->engine->pixmap(size, mode, state); + pixmap.setDevicePixelRatio(1.0); + return pixmap; + } // Try get a pixmap that is big enough to be displayed at device pixel resolution. QPixmap pixmap = d->engine->pixmap(size * devicePixelRatio, mode, state); -- cgit v1.2.3 From 531a2b1b1c26127f75bfe1230051db615e5874c5 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Tue, 30 Aug 2016 12:25:00 +0200 Subject: Windows QPA: Fix leaks in native file dialogs Release the IShellItem instances according to the documentation of IFile[Open]Dialog. Task-number: QTBUG-55509 Task-number: QTBUG-55459 Change-Id: Ib79622cde21982b1bda0be7d0483c6e652a1d5fe Reviewed-by: Andreas Holzammer Reviewed-by: Simon Hausmann Reviewed-by: Maurice Kalinowski --- src/plugins/platforms/windows/qwindowsdialoghelpers.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp b/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp index 6e8df340df..94bb71e429 100644 --- a/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp +++ b/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp @@ -1044,12 +1044,15 @@ void QWindowsNativeFileDialogBase::setDirectory(const QUrl &directory) QString QWindowsNativeFileDialogBase::directory() const { + QString result; #ifndef Q_OS_WINCE IShellItem *item = 0; - if (m_fileDialog && SUCCEEDED(m_fileDialog->GetFolder(&item)) && item) - return QWindowsNativeFileDialogBase::itemPath(item); + if (m_fileDialog && SUCCEEDED(m_fileDialog->GetFolder(&item)) && item) { + result = QWindowsNativeFileDialogBase::itemPath(item); + item->Release(); + } #endif - return QString(); + return result; } void QWindowsNativeFileDialogBase::doExec(HWND owner) @@ -1514,8 +1517,10 @@ QList QWindowsNativeSaveFileDialog::selectedFiles() const QList result; IShellItem *item = 0; const HRESULT hr = fileDialog()->GetCurrentSelection(&item); - if (SUCCEEDED(hr) && item) + if (SUCCEEDED(hr) && item) { result.push_back(QUrl::fromLocalFile(QWindowsNativeSaveFileDialog::itemPath(item))); + item->Release(); + } return result; } -- cgit v1.2.3 From fa2aef5eb8f1a28a79e253a006f348e62afef58a Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Thu, 30 Jun 2016 14:56:34 +0200 Subject: Fix QWindowPrivate::globalPosition() for foreign windows MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Use mapToGlobal(QPoint(0, 0)) when encountering a foreign window in the parent hierarchy as it is not clear whether it is a native top level or child. In the latter case, using the position is not sufficient. Task-number: QTBUG-43252 Change-Id: I5eebb1f0dbc6a0abbd968c5d383d3eded75c11a5 Reviewed-by: Jan Arve Sæther --- src/gui/kernel/qwindow_p.h | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/gui/kernel/qwindow_p.h b/src/gui/kernel/qwindow_p.h index ccd14f66ae..4020376feb 100644 --- a/src/gui/kernel/qwindow_p.h +++ b/src/gui/kernel/qwindow_p.h @@ -125,8 +125,14 @@ public: QPoint globalPosition() const { Q_Q(const QWindow); QPoint offset = q->position(); - for (const QWindow *p = q->parent(); p; p = p->parent()) - offset += p->position(); + for (const QWindow *p = q->parent(); p; p = p->parent()) { + if (p->type() != Qt::ForeignWindow) { + offset += p->position(); + } else { // QTBUG-43252, mapToGlobal() for foreign children. + offset += p->mapToGlobal(QPoint(0, 0)); + break; + } + } return offset; } -- cgit v1.2.3 From 0127f0fa6be0f553a0a466bc069dd28a8a5d2a9f Mon Sep 17 00:00:00 2001 From: Maurice Kalinowski Date: Tue, 30 Aug 2016 13:31:41 +0200 Subject: update testdata Change-Id: I7bc5c58e73a5b31ef3a5ee6eff62212d0c18e416 Reviewed-by: Oliver Wolff --- tests/auto/gui/text/qcssparser/qcssparser.pro | 2 ++ tests/auto/gui/text/qfontdatabase/qfontdatabase.pro | 1 + tests/auto/gui/text/qzip/qzip.pro | 1 + 3 files changed, 4 insertions(+) diff --git a/tests/auto/gui/text/qcssparser/qcssparser.pro b/tests/auto/gui/text/qcssparser/qcssparser.pro index e2bb3eeea8..776b4b3de2 100644 --- a/tests/auto/gui/text/qcssparser/qcssparser.pro +++ b/tests/auto/gui/text/qcssparser/qcssparser.pro @@ -3,6 +3,8 @@ TARGET = tst_qcssparser SOURCES += tst_qcssparser.cpp QT += xml gui-private testlib +TESTDATA += testdata + requires(qtConfig(private_tests)) DEFINES += SRCDIR=\\\"$$PWD\\\" diff --git a/tests/auto/gui/text/qfontdatabase/qfontdatabase.pro b/tests/auto/gui/text/qfontdatabase/qfontdatabase.pro index 0aff8a3ac8..8a08cdc182 100644 --- a/tests/auto/gui/text/qfontdatabase/qfontdatabase.pro +++ b/tests/auto/gui/text/qfontdatabase/qfontdatabase.pro @@ -2,6 +2,7 @@ CONFIG += testcase TARGET = tst_qfontdatabase SOURCES += tst_qfontdatabase.cpp QT += testlib core-private gui-private +TESTDATA += LED_REAL.TTF android { RESOURCES += testdata.qrc diff --git a/tests/auto/gui/text/qzip/qzip.pro b/tests/auto/gui/text/qzip/qzip.pro index eb3de04da6..ee92855093 100644 --- a/tests/auto/gui/text/qzip/qzip.pro +++ b/tests/auto/gui/text/qzip/qzip.pro @@ -2,6 +2,7 @@ CONFIG += testcase TARGET = tst_qzip QT += gui-private testlib SOURCES += tst_qzip.cpp +TESTDATA += testdata android { RESOURCES += \ -- cgit v1.2.3 From a62015e3a2eca5016affc8199d824d4cef80a2ee Mon Sep 17 00:00:00 2001 From: Maurice Kalinowski Date: Tue, 30 Aug 2016 13:32:00 +0200 Subject: winrt: Update search location for testdata Change-Id: I5fd9001eec90c6054c0429506d75640ecf104ae5 Reviewed-by: Oliver Wolff --- tests/auto/gui/text/qcssparser/tst_qcssparser.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/auto/gui/text/qcssparser/tst_qcssparser.cpp b/tests/auto/gui/text/qcssparser/tst_qcssparser.cpp index 2301655909..45cfd6f43a 100644 --- a/tests/auto/gui/text/qcssparser/tst_qcssparser.cpp +++ b/tests/auto/gui/text/qcssparser/tst_qcssparser.cpp @@ -85,7 +85,7 @@ void tst_QCssParser::scanner_data() QTest::addColumn("input"); QTest::addColumn("output"); -#if defined(Q_OS_ANDROID) +#if defined(Q_OS_ANDROID) || defined(Q_OS_WINRT) QDir d(":/"); #elif !defined(Q_OS_IRIX) QDir d(SRCDIR); -- cgit v1.2.3 From 982f17e961500128c9bc849cf5d3ff404b4b4d7c Mon Sep 17 00:00:00 2001 From: Maurice Kalinowski Date: Tue, 30 Aug 2016 15:34:07 +0200 Subject: Make test work for sandboxed targets While testdata has been added in a previous commit, the test never searched for files and directories properly. Change-Id: Ieae28e5f7e4ef8968b13f5ede553bd5268e53e17 Reviewed-by: Oliver Wolff --- .../sax/qxmlsimplereader/tst_qxmlsimplereader.cpp | 110 +++++++++++---------- 1 file changed, 60 insertions(+), 50 deletions(-) diff --git a/tests/auto/xml/sax/qxmlsimplereader/tst_qxmlsimplereader.cpp b/tests/auto/xml/sax/qxmlsimplereader/tst_qxmlsimplereader.cpp index 5d5e00ac42..da38ed254b 100644 --- a/tests/auto/xml/sax/qxmlsimplereader/tst_qxmlsimplereader.cpp +++ b/tests/auto/xml/sax/qxmlsimplereader/tst_qxmlsimplereader.cpp @@ -257,6 +257,7 @@ static QStringList findXmlFiles(QString dir_name) { QStringList result; + dir_name = QFINDTESTDATA(dir_name); QDir dir(dir_name); QFileInfoList file_list = dir.entryInfoList(QStringList("*.xml"), QDir::Files, QDir::Name); @@ -300,7 +301,7 @@ void tst_QXmlSimpleReader::testGoodXmlFile() QVERIFY(file.open(QIODevice::ReadOnly)); Parser parser; - QEXPECT_FAIL("xmldocs/valid/sa/089.xml", "a form feed character is not accepted in XML", Continue); + QEXPECT_FAIL(QFINDTESTDATA("xmldocs/valid/sa/089.xml").toLocal8Bit().constData(), "a form feed character is not accepted in XML", Continue); QVERIFY(parser.parseFile(&file)); QFile ref_file(file_name + ".ref"); @@ -337,46 +338,46 @@ void tst_QXmlSimpleReader::testBadXmlFile() QVERIFY(file.open(QIODevice::ReadOnly)); Parser parser; - QEXPECT_FAIL("xmldocs/not-wf/sa/030.xml", "a form feed character is not accepted in XML", Continue); - QEXPECT_FAIL("xmldocs/not-wf/sa/031.xml", "a form feed character is not accepted in a processing instruction", Continue); - QEXPECT_FAIL("xmldocs/not-wf/sa/032.xml", "a form feed character is not accepted in a comment", Continue); - QEXPECT_FAIL("xmldocs/not-wf/sa/033.xml", "overlong sequence - small latin letter d should be rejected", Continue); - QEXPECT_FAIL("xmldocs/not-wf/sa/038.xml", "attribute x redefined; should be rejected", Continue); - QEXPECT_FAIL("xmldocs/not-wf/sa/072.xml", "entity foo not defined", Continue); - QEXPECT_FAIL("xmldocs/not-wf/sa/073.xml", "entity f not defined", Continue); - QEXPECT_FAIL("xmldocs/not-wf/sa/074.xml", "entity e is not well-formed ()", Continue); - QEXPECT_FAIL("xmldocs/not-wf/sa/076.xml", "entity foo is not defined", Continue); - QEXPECT_FAIL("xmldocs/not-wf/sa/077.xml", "entity bar is not defined within the definition of entity foo", Continue); - QEXPECT_FAIL("xmldocs/not-wf/sa/078.xml", "entity foo not defined", Continue); - QEXPECT_FAIL("xmldocs/not-wf/sa/085.xml", "Unfinished Public or System Id", Continue); - QEXPECT_FAIL("xmldocs/not-wf/sa/086.xml", "Unfinished Public or System Id", Continue); - QEXPECT_FAIL("xmldocs/not-wf/sa/087.xml", "Unfinished Public or System Id", Continue); - QEXPECT_FAIL("xmldocs/not-wf/sa/101.xml", "Invalid XML encoding name (space before utf-8)", Continue); - QEXPECT_FAIL("xmldocs/not-wf/sa/102.xml", "Invalid version specification (1.0 followed by space)", Continue); - QEXPECT_FAIL("xmldocs/not-wf/sa/104.xml", "Premature end of data in tag foo", Continue); - QEXPECT_FAIL("xmldocs/not-wf/sa/116.xml", "Invalid decimal value", Continue); - QEXPECT_FAIL("xmldocs/not-wf/sa/117.xml", "No name", Continue); - QEXPECT_FAIL("xmldocs/not-wf/sa/119.xml", "No name", Continue); - QEXPECT_FAIL("xmldocs/not-wf/sa/122.xml", "; expected in declaration of element", Continue); - QEXPECT_FAIL("xmldocs/not-wf/sa/132.xml", "; expected in declaration of element", Continue); - QEXPECT_FAIL("xmldocs/not-wf/sa/142.xml", "Invalid value '0'", Continue); - QEXPECT_FAIL("xmldocs/not-wf/sa/143.xml", "Invalid value '31'", Continue); - - QEXPECT_FAIL("xmldocs/not-wf/sa/144.xml", "noncharacter code 0xFFFF should be rejected", Continue); - QEXPECT_FAIL("xmldocs/not-wf/sa/145.xml", "surrogate code point 0xD800 should be rejected", Continue); - QEXPECT_FAIL("xmldocs/not-wf/sa/146.xml", "code point out-of-range 0x110000 (must be < 0x10FFFE)", Abort); - QEXPECT_FAIL("xmldocs/not-wf/sa/160.xml", "Parameter references forbidden in internal subset", Continue); - QEXPECT_FAIL("xmldocs/not-wf/sa/162.xml", "Parameter references forbidden in internal subset", Continue); - - QEXPECT_FAIL("xmldocs/not-wf/sa/168.xml", "Surrogate code point 0xEDA080 should be rejected", Continue); - QEXPECT_FAIL("xmldocs/not-wf/sa/169.xml", "Surrogate code point 0xEDB080 should be rejected", Continue); - QEXPECT_FAIL("xmldocs/not-wf/sa/170.xml", "Code point 0xF7808080 should be rejected", Continue); - - QEXPECT_FAIL("xmldocs/not-wf/sa/180.xml", "Entity e is not defined", Continue); - QEXPECT_FAIL("xmldocs/not-wf/sa/181.xml", "Unregistered error message", Continue); - QEXPECT_FAIL("xmldocs/not-wf/sa/182.xml", "Comment not terminated", Continue); - QEXPECT_FAIL("xmldocs/not-wf/sa/185.xml", "Entity e not defined", Continue); - QEXPECT_FAIL("xmldocs/not-wf/sa/186.xml", "Attributes constructs error", Continue); + QEXPECT_FAIL(QFINDTESTDATA("xmldocs/not-wf/sa/030.xml").toLocal8Bit().constData(), "a form feed character is not accepted in XML", Continue); + QEXPECT_FAIL(QFINDTESTDATA("xmldocs/not-wf/sa/031.xml").toLocal8Bit().constData(), "a form feed character is not accepted in a processing instruction", Continue); + QEXPECT_FAIL(QFINDTESTDATA("xmldocs/not-wf/sa/032.xml").toLocal8Bit().constData(), "a form feed character is not accepted in a comment", Continue); + QEXPECT_FAIL(QFINDTESTDATA("xmldocs/not-wf/sa/033.xml").toLocal8Bit().constData(), "overlong sequence - small latin letter d should be rejected", Continue); + QEXPECT_FAIL(QFINDTESTDATA("xmldocs/not-wf/sa/038.xml").toLocal8Bit().constData(), "attribute x redefined; should be rejected", Continue); + QEXPECT_FAIL(QFINDTESTDATA("xmldocs/not-wf/sa/072.xml").toLocal8Bit().constData(), "entity foo not defined", Continue); + QEXPECT_FAIL(QFINDTESTDATA("xmldocs/not-wf/sa/073.xml").toLocal8Bit().constData(), "entity f not defined", Continue); + QEXPECT_FAIL(QFINDTESTDATA("xmldocs/not-wf/sa/074.xml").toLocal8Bit().constData(), "entity e is not well-formed ()", Continue); + QEXPECT_FAIL(QFINDTESTDATA("xmldocs/not-wf/sa/076.xml").toLocal8Bit().constData(), "entity foo is not defined", Continue); + QEXPECT_FAIL(QFINDTESTDATA("xmldocs/not-wf/sa/077.xml").toLocal8Bit().constData(), "entity bar is not defined within the definition of entity foo", Continue); + QEXPECT_FAIL(QFINDTESTDATA("xmldocs/not-wf/sa/078.xml").toLocal8Bit().constData(), "entity foo not defined", Continue); + QEXPECT_FAIL(QFINDTESTDATA("xmldocs/not-wf/sa/085.xml").toLocal8Bit().constData(), "Unfinished Public or System Id", Continue); + QEXPECT_FAIL(QFINDTESTDATA("xmldocs/not-wf/sa/086.xml").toLocal8Bit().constData(), "Unfinished Public or System Id", Continue); + QEXPECT_FAIL(QFINDTESTDATA("xmldocs/not-wf/sa/087.xml").toLocal8Bit().constData(), "Unfinished Public or System Id", Continue); + QEXPECT_FAIL(QFINDTESTDATA("xmldocs/not-wf/sa/101.xml").toLocal8Bit().constData(), "Invalid XML encoding name (space before utf-8)", Continue); + QEXPECT_FAIL(QFINDTESTDATA("xmldocs/not-wf/sa/102.xml").toLocal8Bit().constData(), "Invalid version specification (1.0 followed by space)", Continue); + QEXPECT_FAIL(QFINDTESTDATA("xmldocs/not-wf/sa/104.xml").toLocal8Bit().constData(), "Premature end of data in tag foo", Continue); + QEXPECT_FAIL(QFINDTESTDATA("xmldocs/not-wf/sa/116.xml").toLocal8Bit().constData(), "Invalid decimal value", Continue); + QEXPECT_FAIL(QFINDTESTDATA("xmldocs/not-wf/sa/117.xml").toLocal8Bit().constData(), "No name", Continue); + QEXPECT_FAIL(QFINDTESTDATA("xmldocs/not-wf/sa/119.xml").toLocal8Bit().constData(), "No name", Continue); + QEXPECT_FAIL(QFINDTESTDATA("xmldocs/not-wf/sa/122.xml").toLocal8Bit().constData(), "; expected in declaration of element", Continue); + QEXPECT_FAIL(QFINDTESTDATA("xmldocs/not-wf/sa/132.xml").toLocal8Bit().constData(), "; expected in declaration of element", Continue); + QEXPECT_FAIL(QFINDTESTDATA("xmldocs/not-wf/sa/142.xml").toLocal8Bit().constData(), "Invalid value '0'", Continue); + QEXPECT_FAIL(QFINDTESTDATA("xmldocs/not-wf/sa/143.xml").toLocal8Bit().constData(), "Invalid value '31'", Continue); + + QEXPECT_FAIL(QFINDTESTDATA("xmldocs/not-wf/sa/144.xml").toLocal8Bit().constData(), "noncharacter code 0xFFFF should be rejected", Continue); + QEXPECT_FAIL(QFINDTESTDATA("xmldocs/not-wf/sa/145.xml").toLocal8Bit().constData(), "surrogate code point 0xD800 should be rejected", Continue); + QEXPECT_FAIL(QFINDTESTDATA("xmldocs/not-wf/sa/146.xml").toLocal8Bit().constData(), "code point out-of-range 0x110000 (must be < 0x10FFFE)", Abort); + QEXPECT_FAIL(QFINDTESTDATA("xmldocs/not-wf/sa/160.xml").toLocal8Bit().constData(), "Parameter references forbidden in internal subset", Continue); + QEXPECT_FAIL(QFINDTESTDATA("xmldocs/not-wf/sa/162.xml").toLocal8Bit().constData(), "Parameter references forbidden in internal subset", Continue); + + QEXPECT_FAIL(QFINDTESTDATA("xmldocs/not-wf/sa/168.xml").toLocal8Bit().constData(), "Surrogate code point 0xEDA080 should be rejected", Continue); + QEXPECT_FAIL(QFINDTESTDATA("xmldocs/not-wf/sa/169.xml").toLocal8Bit().constData(), "Surrogate code point 0xEDB080 should be rejected", Continue); + QEXPECT_FAIL(QFINDTESTDATA("xmldocs/not-wf/sa/170.xml").toLocal8Bit().constData(), "Code point 0xF7808080 should be rejected", Continue); + + QEXPECT_FAIL(QFINDTESTDATA("xmldocs/not-wf/sa/180.xml").toLocal8Bit().constData(), "Entity e is not defined", Continue); + QEXPECT_FAIL(QFINDTESTDATA("xmldocs/not-wf/sa/181.xml").toLocal8Bit().constData(), "Unregistered error message", Continue); + QEXPECT_FAIL(QFINDTESTDATA("xmldocs/not-wf/sa/182.xml").toLocal8Bit().constData(), "Comment not terminated", Continue); + QEXPECT_FAIL(QFINDTESTDATA("xmldocs/not-wf/sa/185.xml").toLocal8Bit().constData(), "Entity e not defined", Continue); + QEXPECT_FAIL(QFINDTESTDATA("xmldocs/not-wf/sa/186.xml").toLocal8Bit().constData(), "Attributes constructs error", Continue); QVERIFY(!parser.parseFile(&file)); @@ -386,7 +387,7 @@ void tst_QXmlSimpleReader::testBadXmlFile() ref_stream.setCodec("UTF-8"); QString ref_file_contents = ref_stream.readAll(); - QEXPECT_FAIL("xmldocs/not-wf/sa/145.xml", "Surrogate code point 0xD800 should be rejected", Continue); + QEXPECT_FAIL(QFINDTESTDATA("xmldocs/not-wf/sa/145.xml").toLocal8Bit().constData(), "Surrogate code point 0xD800 should be rejected", Continue); QCOMPARE(parser.result(), ref_file_contents); } @@ -410,14 +411,20 @@ void tst_QXmlSimpleReader::testIncrementalParsing_data() for (int i=1; i<10; ++i) { QStringList::const_iterator it = good_file_list.begin(); + const QString skip49 = QFINDTESTDATA("xmldocs/valid/sa/049.xml"); + const QString skip50 = QFINDTESTDATA("xmldocs/valid/sa/050.xml"); + const QString skip51 = QFINDTESTDATA("xmldocs/valid/sa/051.xml"); + const QString skip52 = QFINDTESTDATA("xmldocs/valid/sa/052.xml"); + const QString skip89 = QFINDTESTDATA("xmldocs/valid/sa/089.xml"); + for (; it != good_file_list.end(); ++it) { - if ( *it == "xmldocs/valid/sa/089.xml" ) + if ( *it == skip89 ) continue;// TODO: fails at the moment -- don't bother if ( i==1 && ( - *it == "xmldocs/valid/sa/049.xml" || - *it == "xmldocs/valid/sa/050.xml" || - *it == "xmldocs/valid/sa/051.xml" || - *it == "xmldocs/valid/sa/052.xml" ) ) { + *it == skip49 || + *it == skip50 || + *it == skip51 || + *it == skip52 ) ) { continue; // TODO: fails at the moment -- don't bother } QTest::newRow(QString("%1 %2").arg(*it).arg(i).toLatin1()) << *it << i; @@ -551,6 +558,9 @@ void tst_QXmlSimpleReader::inputFromSocket_data() void tst_QXmlSimpleReader::inputFromSocket() { QFETCH(QString, file_name); +#ifdef Q_OS_WINRT + QSKIP("WinRT does not support connecting to localhost"); +#endif QTRY_VERIFY(server->listening); @@ -756,7 +766,7 @@ public: void tst_QXmlSimpleReader::dtdRecursionLimit() { - QFile file("xmldocs/2-levels-nested-dtd.xml"); + QFile file(QFINDTESTDATA("xmldocs/2-levels-nested-dtd.xml")); QVERIFY(file.open(QIODevice::ReadOnly)); QXmlSimpleReader xmlReader; { @@ -768,7 +778,7 @@ void tst_QXmlSimpleReader::dtdRecursionLimit() } file.close(); - file.setFileName("xmldocs/1-levels-nested-dtd.xml"); + file.setFileName(QFINDTESTDATA("xmldocs/1-levels-nested-dtd.xml")); QVERIFY(file.open(QIODevice::ReadOnly)); { QXmlInputSource *source = new QXmlInputSource(&file); @@ -782,7 +792,7 @@ void tst_QXmlSimpleReader::dtdRecursionLimit() } file.close(); - file.setFileName("xmldocs/internal-entity-polynomial-attribute.xml"); + file.setFileName(QFINDTESTDATA("xmldocs/internal-entity-polynomial-attribute.xml")); QVERIFY(file.open(QIODevice::ReadOnly)); { QXmlInputSource *source = new QXmlInputSource(&file); -- cgit v1.2.3 From b09e0636f8c781f5643d7582706bfcfc47106e7c Mon Sep 17 00:00:00 2001 From: Gabriel de Dietrich Date: Wed, 29 Jun 2016 16:23:40 -0700 Subject: QNetworkProxy: Remove calls to deprecated API on macOS CFURLCreateDataAndPropertiesFromResource has been deprecated since 10.9. Instead of loading the PAC file contents, we call CFNetworkExecuteProxyAutoConfigurationURL. This function being asynchronous, we make sure we block until the CFProxyAutoConfigurationResultCallback has been invoked. Change-Id: I97e32d7f9b349e8e15fe1fdcb35b10e7aab39b3a Reviewed-by: Jake Petroules --- src/network/kernel/qnetworkproxy_mac.cpp | 80 ++++++++++++++------------------ 1 file changed, 34 insertions(+), 46 deletions(-) diff --git a/src/network/kernel/qnetworkproxy_mac.cpp b/src/network/kernel/qnetworkproxy_mac.cpp index 37126298c6..76a2d2df9f 100644 --- a/src/network/kernel/qnetworkproxy_mac.cpp +++ b/src/network/kernel/qnetworkproxy_mac.cpp @@ -180,31 +180,23 @@ static QNetworkProxy proxyFromDictionary(CFDictionaryRef dict) return QNetworkProxy(proxyType, hostName, port, user, password); } -const char * cfurlErrorDescription(SInt32 errorCode) +namespace { +struct PACInfo { + QCFType proxies; + QCFType error; + bool done = false; +}; + +void proxyAutoConfigCallback(void *client, CFArrayRef proxylist, CFErrorRef error) { - switch (errorCode) { - case kCFURLUnknownError: - return "Unknown Error"; - case kCFURLUnknownSchemeError: - return "Unknown Scheme"; - case kCFURLResourceNotFoundError: - return "Resource Not Found"; - case kCFURLResourceAccessViolationError: - return "Resource Access Violation"; - case kCFURLRemoteHostUnavailableError: - return "Remote Host Unavailable"; - case kCFURLImproperArgumentsError: - return "Improper Arguments"; - case kCFURLUnknownPropertyKeyError: - return "Unknown Property Key"; - case kCFURLPropertyKeyUnavailableError: - return "Property Key Unavailable"; - case kCFURLTimeoutError: - return "Timeout"; - default: - return "Really Unknown Error"; - } + PACInfo *info = reinterpret_cast(reinterpret_cast(client)->info); + info->done = true; + if (proxylist) + CFRetain(proxylist); + info->proxies = proxylist; + info->error = error; } +} // anon namespace QList macQueryInternal(const QNetworkProxyQuery &query) { @@ -240,23 +232,6 @@ QList macQueryInternal(const QNetworkProxyQuery &query) qWarning("Invalid PAC URL \"%s\"", qPrintable(QCFString::toQString(cfPacLocation))); return result; } - SInt32 errorCode; - if (!CFURLCreateDataAndPropertiesFromResource(kCFAllocatorDefault, pacUrl, &pacData, NULL, NULL, &errorCode)) { - QString pacLocation = QCFString::toQString(cfPacLocation); - qWarning("Unable to get the PAC script at \"%s\" (%s)", qPrintable(pacLocation), cfurlErrorDescription(errorCode)); - return result; - } - if (!pacData) { - qWarning("\"%s\" returned an empty PAC script", qPrintable(QCFString::toQString(cfPacLocation))); - return result; - } - QCFType pacScript = CFStringCreateFromExternalRepresentation(kCFAllocatorDefault, pacData, kCFStringEncodingISOLatin1); - if (!pacScript) { - // This should never happen, but the documentation says it may return NULL if there was a problem creating the object. - QString pacLocation = QCFString::toQString(cfPacLocation); - qWarning("Unable to read the PAC script at \"%s\"", qPrintable(pacLocation)); - return result; - } QByteArray encodedURL = query.url().toEncoded(); // converted to UTF-8 if (encodedURL.isEmpty()) { @@ -268,18 +243,31 @@ QList macQueryInternal(const QNetworkProxyQuery &query) return result; // URL creation problem, abort } - QCFType pacError; - QCFType proxies = CFNetworkCopyProxiesForAutoConfigurationScript(pacScript, targetURL, &pacError); - if (!proxies) { + CFStreamClientContext pacCtx; + pacCtx.version = 0; + PACInfo pacInfo; + pacCtx.info = &pacInfo; + pacCtx.retain = NULL; + pacCtx.release = NULL; + pacCtx.copyDescription = NULL; + + static CFStringRef pacRunLoopMode = CFSTR("qtPACRunLoopMode"); + + QCFType pacRunLoopSource = CFNetworkExecuteProxyAutoConfigurationURL(pacUrl, targetURL, &proxyAutoConfigCallback, &pacCtx); + CFRunLoopAddSource(CFRunLoopGetCurrent(), pacRunLoopSource, pacRunLoopMode); + while (!pacInfo.done) + CFRunLoopRunInMode(pacRunLoopMode, 1000, /*returnAfterSourceHandled*/ true); + + if (!pacInfo.proxies) { QString pacLocation = QCFString::toQString(cfPacLocation); - QCFType pacErrorDescription = CFErrorCopyDescription(pacError); + QCFType pacErrorDescription = CFErrorCopyDescription(pacInfo.error); qWarning("Execution of PAC script at \"%s\" failed: %s", qPrintable(pacLocation), qPrintable(QCFString::toQString(pacErrorDescription))); return result; } - CFIndex size = CFArrayGetCount(proxies); + CFIndex size = CFArrayGetCount(pacInfo.proxies); for (CFIndex i = 0; i < size; ++i) { - CFDictionaryRef proxy = (CFDictionaryRef)CFArrayGetValueAtIndex(proxies, i); + CFDictionaryRef proxy = (CFDictionaryRef)CFArrayGetValueAtIndex(pacInfo.proxies, i); result << proxyFromDictionary(proxy); } return result; -- cgit v1.2.3 From 8cfac7fba69b9c903672e9f8eca9b8b752c640eb Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Tue, 30 Aug 2016 12:07:20 -0700 Subject: configure: ask pkg-config only for the info we're interested No need to get libs flags other than -L and -l, since we're adding everything to the LIBS variable in qmake anyway. We wouldn't want rpath or other linker flags to leak through. Change-Id: I7d42fe4b581e49df891cfffd146fab61fecbc5c9 Reviewed-by: Jake Petroules Reviewed-by: Oswald Buddenhagen --- mkspecs/features/qt_configure.prf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mkspecs/features/qt_configure.prf b/mkspecs/features/qt_configure.prf index 536ae2cd8a..bb93e3cffd 100644 --- a/mkspecs/features/qt_configure.prf +++ b/mkspecs/features/qt_configure.prf @@ -487,7 +487,7 @@ defineTest(qtConfLibrary_pkgConfig) { return(false) qtRunLoggedCommand("$$pkg_config --modversion $$args", version)|return(false) - qtRunLoggedCommand("$$pkg_config --libs $$args", $${1}.libs)|return(false) + qtRunLoggedCommand("$$pkg_config --libs-only-L --libs-only-l $$args", $${1}.libs)|return(false) qtRunLoggedCommand("$$pkg_config --cflags $$args", $${1}.cflags)|return(false) qtRunLoggedCommand("$$pkg_config --cflags-only-I $$args", includes)|return(false) eval(includes = $$includes) -- cgit v1.2.3 From 013210e9dae24288f4e408b4a574433da435ab8a Mon Sep 17 00:00:00 2001 From: Jake Petroules Date: Tue, 30 Aug 2016 19:29:37 -0700 Subject: Fix unused variable warning on iOS Change-Id: Ieae5d7833b45a49a743a52a437d5383bd8a962c5 Reviewed-by: Thiago Macieira --- src/gui/opengl/qopenglframebufferobject.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/opengl/qopenglframebufferobject.cpp b/src/gui/opengl/qopenglframebufferobject.cpp index 1ee90a0827..56e04c09d8 100644 --- a/src/gui/opengl/qopenglframebufferobject.cpp +++ b/src/gui/opengl/qopenglframebufferobject.cpp @@ -1281,11 +1281,11 @@ static inline QImage qt_gl_read_framebuffer_rgba8(const QSize &size, bool includ ? context->hasExtension(QByteArrayLiteral("GL_EXT_read_format_bgra")) : context->hasExtension(QByteArrayLiteral("GL_EXT_bgra")); +#ifndef Q_OS_IOS const char *renderer = reinterpret_cast(funcs->glGetString(GL_RENDERER)); const char *ver = reinterpret_cast(funcs->glGetString(GL_VERSION)); // Blacklist GPU chipsets that have problems with their BGRA support. -#ifndef Q_OS_IOS const bool blackListed = (qstrcmp(renderer, "PowerVR Rogue G6200") == 0 && ::strstr(ver, "1.3") != 0) || (qstrcmp(renderer, "Mali-T760") == 0 -- cgit v1.2.3 From 4e53159d431e39c03488517588669ae2cc9052d1 Mon Sep 17 00:00:00 2001 From: Jake Petroules Date: Tue, 30 Aug 2016 19:29:20 -0700 Subject: Mark Apple Clang 7.x as warning-free on macOS and (also Clang 3.9) iOS iOS was excluded in 09aeda21b902763919c2e0b2b06d09275d136e8c, probably unnecessarily. The build has been found to be warning-free. Change-Id: I81de2fff40938b6ab9f7a6a5b9f08f8a8baadb16 Reviewed-by: Oswald Buddenhagen --- mkspecs/features/qt_common.prf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mkspecs/features/qt_common.prf b/mkspecs/features/qt_common.prf index c1809468af..6512fb1db2 100644 --- a/mkspecs/features/qt_common.prf +++ b/mkspecs/features/qt_common.prf @@ -52,12 +52,12 @@ warnings_are_errors:warning_clean { # If the module declares that it has does its clean-up of warnings, enable -Werror. # This setting is compiler-dependent anyway because it depends on the version of the # compiler. - clang:!ios { - # Apple clang 4.0-4.2,5.0-5.1,6.0-6.4 + clang { + # Apple clang 4.0-4.2,5.0-5.1,6.0-6.4,7.0-7.3 # Regular clang 3.3-3.9 apple_ver = $${QT_APPLE_CLANG_MAJOR_VERSION}.$${QT_APPLE_CLANG_MINOR_VERSION} reg_ver = $${QT_CLANG_MAJOR_VERSION}.$${QT_CLANG_MINOR_VERSION} - contains(apple_ver, "4\\.[012]|5\\.[01]|6\\.[01234]")|contains(reg_ver, "3\\.[3-9]") { + contains(apple_ver, "4\\.[012]|5\\.[01]|6\\.[01234]|7\\.[0123]")|contains(reg_ver, "3\\.[3-9]") { QMAKE_CXXFLAGS_WARN_ON += -Werror -Wno-error=\\$${LITERAL_HASH}warnings -Wno-error=deprecated-declarations $$WERROR } } else:intel_icc:linux { -- cgit v1.2.3 From 6e64008e69d2b8f0303808402f36f69514344627 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Fri, 19 Aug 2016 08:49:46 +0200 Subject: QColor: move contents of qcolor_p.cpp into qcolor.cpp The functions defined there are used almost exclusively in qcolor.cpp, so give the compiler the whole picture. Also fixes the non-standard naming of the files: qcolor_p.h should have been qcolor_p_p.h, since it declared functions defined in qcolor_p.cpp. Change-Id: I06e61232a906fd0d98d5adcfe4af5881985367d8 Reviewed-by: Edward Welbourne Reviewed-by: Thiago Macieira --- src/gui/painting/painting.pri | 1 - src/gui/painting/qcolor.cpp | 323 ++++++++++++++++++++++++++++++++++++ src/gui/painting/qcolor_p.cpp | 369 ------------------------------------------ 3 files changed, 323 insertions(+), 370 deletions(-) delete mode 100644 src/gui/painting/qcolor_p.cpp diff --git a/src/gui/painting/painting.pri b/src/gui/painting/painting.pri index 00f2375923..c47060a2ad 100644 --- a/src/gui/painting/painting.pri +++ b/src/gui/painting/painting.pri @@ -63,7 +63,6 @@ SOURCES += \ painting/qblittable.cpp \ painting/qbrush.cpp \ painting/qcolor.cpp \ - painting/qcolor_p.cpp \ painting/qcompositionfunctions.cpp \ painting/qcosmeticstroker.cpp \ painting/qcssutil.cpp \ diff --git a/src/gui/painting/qcolor.cpp b/src/gui/painting/qcolor.cpp index 56180af693..650ba0187e 100644 --- a/src/gui/painting/qcolor.cpp +++ b/src/gui/painting/qcolor.cpp @@ -43,12 +43,335 @@ #include "qdatastream.h" #include "qvariant.h" #include "qdebug.h" +#include "private/qtools_p.h" + +#include #include #include QT_BEGIN_NAMESPACE +/*! + \internal + If s[0..1] is a valid hex number, returns its integer value, + otherwise returns -1. + */ +static inline int hex2int(const char *s) +{ + const int hi = QtMiscUtils::fromHex(s[0]); + if (hi < 0) + return -1; + const int lo = QtMiscUtils::fromHex(s[1]); + if (lo < 0) + return -1; + return (hi << 4) | lo; +} + +/*! + \internal + If s is a valid hex digit, returns its integer value, + multiplied by 0x11, otherwise returns -1. + */ +static inline int hex2int(char s) +{ + const int h = QtMiscUtils::fromHex(s); + return h < 0 ? h : (h << 4) | h; +} + +bool qt_get_hex_rgb(const char *name, QRgb *rgb) +{ + if (name[0] != '#') + return false; + name++; + int len = qstrlen(name); + int a, r, g, b; + a = 255; + if (len == 12) { + r = hex2int(name); + g = hex2int(name + 4); + b = hex2int(name + 8); + } else if (len == 9) { + r = hex2int(name); + g = hex2int(name + 3); + b = hex2int(name + 6); + } else if (len == 8) { + a = hex2int(name); + r = hex2int(name + 2); + g = hex2int(name + 4); + b = hex2int(name + 6); + } else if (len == 6) { + r = hex2int(name); + g = hex2int(name + 2); + b = hex2int(name + 4); + } else if (len == 3) { + r = hex2int(name[0]); + g = hex2int(name[1]); + b = hex2int(name[2]); + } else { + r = g = b = -1; + } + if ((uint)r > 255 || (uint)g > 255 || (uint)b > 255 || (uint)a > 255) { + *rgb = 0; + return false; + } + *rgb = qRgba(r, g ,b, a); + return true; +} + +bool qt_get_hex_rgb(const QChar *str, int len, QRgb *rgb) +{ + if (len > 13) + return false; + char tmp[16]; + for (int i = 0; i < len; ++i) + tmp[i] = str[i].toLatin1(); + tmp[len] = 0; + return qt_get_hex_rgb(tmp, rgb); +} + +#ifndef QT_NO_COLORNAMES + +/* + CSS color names = SVG 1.0 color names + transparent (rgba(0,0,0,0)) +*/ + +#ifdef rgb +# undef rgb +#endif +#define rgb(r,g,b) (0xff000000 | (r << 16) | (g << 8) | b) + +static const struct RGBData { + const char name[21]; + uint value; +} rgbTbl[] = { + { "aliceblue", rgb(240, 248, 255) }, + { "antiquewhite", rgb(250, 235, 215) }, + { "aqua", rgb( 0, 255, 255) }, + { "aquamarine", rgb(127, 255, 212) }, + { "azure", rgb(240, 255, 255) }, + { "beige", rgb(245, 245, 220) }, + { "bisque", rgb(255, 228, 196) }, + { "black", rgb( 0, 0, 0) }, + { "blanchedalmond", rgb(255, 235, 205) }, + { "blue", rgb( 0, 0, 255) }, + { "blueviolet", rgb(138, 43, 226) }, + { "brown", rgb(165, 42, 42) }, + { "burlywood", rgb(222, 184, 135) }, + { "cadetblue", rgb( 95, 158, 160) }, + { "chartreuse", rgb(127, 255, 0) }, + { "chocolate", rgb(210, 105, 30) }, + { "coral", rgb(255, 127, 80) }, + { "cornflowerblue", rgb(100, 149, 237) }, + { "cornsilk", rgb(255, 248, 220) }, + { "crimson", rgb(220, 20, 60) }, + { "cyan", rgb( 0, 255, 255) }, + { "darkblue", rgb( 0, 0, 139) }, + { "darkcyan", rgb( 0, 139, 139) }, + { "darkgoldenrod", rgb(184, 134, 11) }, + { "darkgray", rgb(169, 169, 169) }, + { "darkgreen", rgb( 0, 100, 0) }, + { "darkgrey", rgb(169, 169, 169) }, + { "darkkhaki", rgb(189, 183, 107) }, + { "darkmagenta", rgb(139, 0, 139) }, + { "darkolivegreen", rgb( 85, 107, 47) }, + { "darkorange", rgb(255, 140, 0) }, + { "darkorchid", rgb(153, 50, 204) }, + { "darkred", rgb(139, 0, 0) }, + { "darksalmon", rgb(233, 150, 122) }, + { "darkseagreen", rgb(143, 188, 143) }, + { "darkslateblue", rgb( 72, 61, 139) }, + { "darkslategray", rgb( 47, 79, 79) }, + { "darkslategrey", rgb( 47, 79, 79) }, + { "darkturquoise", rgb( 0, 206, 209) }, + { "darkviolet", rgb(148, 0, 211) }, + { "deeppink", rgb(255, 20, 147) }, + { "deepskyblue", rgb( 0, 191, 255) }, + { "dimgray", rgb(105, 105, 105) }, + { "dimgrey", rgb(105, 105, 105) }, + { "dodgerblue", rgb( 30, 144, 255) }, + { "firebrick", rgb(178, 34, 34) }, + { "floralwhite", rgb(255, 250, 240) }, + { "forestgreen", rgb( 34, 139, 34) }, + { "fuchsia", rgb(255, 0, 255) }, + { "gainsboro", rgb(220, 220, 220) }, + { "ghostwhite", rgb(248, 248, 255) }, + { "gold", rgb(255, 215, 0) }, + { "goldenrod", rgb(218, 165, 32) }, + { "gray", rgb(128, 128, 128) }, + { "green", rgb( 0, 128, 0) }, + { "greenyellow", rgb(173, 255, 47) }, + { "grey", rgb(128, 128, 128) }, + { "honeydew", rgb(240, 255, 240) }, + { "hotpink", rgb(255, 105, 180) }, + { "indianred", rgb(205, 92, 92) }, + { "indigo", rgb( 75, 0, 130) }, + { "ivory", rgb(255, 255, 240) }, + { "khaki", rgb(240, 230, 140) }, + { "lavender", rgb(230, 230, 250) }, + { "lavenderblush", rgb(255, 240, 245) }, + { "lawngreen", rgb(124, 252, 0) }, + { "lemonchiffon", rgb(255, 250, 205) }, + { "lightblue", rgb(173, 216, 230) }, + { "lightcoral", rgb(240, 128, 128) }, + { "lightcyan", rgb(224, 255, 255) }, + { "lightgoldenrodyellow", rgb(250, 250, 210) }, + { "lightgray", rgb(211, 211, 211) }, + { "lightgreen", rgb(144, 238, 144) }, + { "lightgrey", rgb(211, 211, 211) }, + { "lightpink", rgb(255, 182, 193) }, + { "lightsalmon", rgb(255, 160, 122) }, + { "lightseagreen", rgb( 32, 178, 170) }, + { "lightskyblue", rgb(135, 206, 250) }, + { "lightslategray", rgb(119, 136, 153) }, + { "lightslategrey", rgb(119, 136, 153) }, + { "lightsteelblue", rgb(176, 196, 222) }, + { "lightyellow", rgb(255, 255, 224) }, + { "lime", rgb( 0, 255, 0) }, + { "limegreen", rgb( 50, 205, 50) }, + { "linen", rgb(250, 240, 230) }, + { "magenta", rgb(255, 0, 255) }, + { "maroon", rgb(128, 0, 0) }, + { "mediumaquamarine", rgb(102, 205, 170) }, + { "mediumblue", rgb( 0, 0, 205) }, + { "mediumorchid", rgb(186, 85, 211) }, + { "mediumpurple", rgb(147, 112, 219) }, + { "mediumseagreen", rgb( 60, 179, 113) }, + { "mediumslateblue", rgb(123, 104, 238) }, + { "mediumspringgreen", rgb( 0, 250, 154) }, + { "mediumturquoise", rgb( 72, 209, 204) }, + { "mediumvioletred", rgb(199, 21, 133) }, + { "midnightblue", rgb( 25, 25, 112) }, + { "mintcream", rgb(245, 255, 250) }, + { "mistyrose", rgb(255, 228, 225) }, + { "moccasin", rgb(255, 228, 181) }, + { "navajowhite", rgb(255, 222, 173) }, + { "navy", rgb( 0, 0, 128) }, + { "oldlace", rgb(253, 245, 230) }, + { "olive", rgb(128, 128, 0) }, + { "olivedrab", rgb(107, 142, 35) }, + { "orange", rgb(255, 165, 0) }, + { "orangered", rgb(255, 69, 0) }, + { "orchid", rgb(218, 112, 214) }, + { "palegoldenrod", rgb(238, 232, 170) }, + { "palegreen", rgb(152, 251, 152) }, + { "paleturquoise", rgb(175, 238, 238) }, + { "palevioletred", rgb(219, 112, 147) }, + { "papayawhip", rgb(255, 239, 213) }, + { "peachpuff", rgb(255, 218, 185) }, + { "peru", rgb(205, 133, 63) }, + { "pink", rgb(255, 192, 203) }, + { "plum", rgb(221, 160, 221) }, + { "powderblue", rgb(176, 224, 230) }, + { "purple", rgb(128, 0, 128) }, + { "red", rgb(255, 0, 0) }, + { "rosybrown", rgb(188, 143, 143) }, + { "royalblue", rgb( 65, 105, 225) }, + { "saddlebrown", rgb(139, 69, 19) }, + { "salmon", rgb(250, 128, 114) }, + { "sandybrown", rgb(244, 164, 96) }, + { "seagreen", rgb( 46, 139, 87) }, + { "seashell", rgb(255, 245, 238) }, + { "sienna", rgb(160, 82, 45) }, + { "silver", rgb(192, 192, 192) }, + { "skyblue", rgb(135, 206, 235) }, + { "slateblue", rgb(106, 90, 205) }, + { "slategray", rgb(112, 128, 144) }, + { "slategrey", rgb(112, 128, 144) }, + { "snow", rgb(255, 250, 250) }, + { "springgreen", rgb( 0, 255, 127) }, + { "steelblue", rgb( 70, 130, 180) }, + { "tan", rgb(210, 180, 140) }, + { "teal", rgb( 0, 128, 128) }, + { "thistle", rgb(216, 191, 216) }, + { "tomato", rgb(255, 99, 71) }, + { "transparent", 0 }, + { "turquoise", rgb( 64, 224, 208) }, + { "violet", rgb(238, 130, 238) }, + { "wheat", rgb(245, 222, 179) }, + { "white", rgb(255, 255, 255) }, + { "whitesmoke", rgb(245, 245, 245) }, + { "yellow", rgb(255, 255, 0) }, + { "yellowgreen", rgb(154, 205, 50) } +}; + +static const int rgbTblSize = sizeof(rgbTbl) / sizeof(RGBData); + +#undef rgb + +#if defined(Q_CC_MSVC) && _MSC_VER < 1600 +inline bool operator<(const RGBData &data1, const RGBData &data2) +{ return qstrcmp(data1.name, data2.name) < 0; } +#endif + +inline bool operator<(const char *name, const RGBData &data) +{ return qstrcmp(name, data.name) < 0; } +inline bool operator<(const RGBData &data, const char *name) +{ return qstrcmp(data.name, name) < 0; } + +static bool get_named_rgb(const char *name_no_space, QRgb *rgb) +{ + const RGBData *r = std::lower_bound(rgbTbl, rgbTbl + rgbTblSize, name_no_space); + if ((r != rgbTbl + rgbTblSize) && !(name_no_space < *r)) { + *rgb = r->value; + return true; + } + return false; +} + +bool qt_get_named_rgb(const char *name, QRgb* rgb) +{ + int len = int(strlen(name)); + if (len > 255) + return false; + char name_no_space[256]; + int pos = 0; + for (int i = 0; i < len; i++) { + if (name[i] != '\t' && name[i] != ' ') + name_no_space[pos++] = QChar::toLower(name[i]); + } + name_no_space[pos] = 0; + + return get_named_rgb(name_no_space, rgb); +} + +bool qt_get_named_rgb(const QChar *name, int len, QRgb *rgb) +{ + if (len > 255) + return false; + char name_no_space[256]; + int pos = 0; + for (int i = 0; i < len; i++) { + if (name[i] != QLatin1Char('\t') && name[i] != QLatin1Char(' ')) + name_no_space[pos++] = name[i].toLower().toLatin1(); + } + name_no_space[pos] = 0; + return get_named_rgb(name_no_space, rgb); +} + +QStringList qt_get_colornames() +{ + int i = 0; + QStringList lst; + lst.reserve(rgbTblSize); + for (i = 0; i < rgbTblSize; i++) + lst << QLatin1String(rgbTbl[i].name); + return lst; +} + +#else + +bool qt_get_named_rgb(const char *, QRgb*) +{ + return false; +} + +QStringList qt_get_colornames() +{ + return QStringList(); +} +#endif // QT_NO_COLORNAMES + /*! \class QColor \brief The QColor class provides colors based on RGB, HSV or CMYK values. diff --git a/src/gui/painting/qcolor_p.cpp b/src/gui/painting/qcolor_p.cpp deleted file mode 100644 index b4ade9dc58..0000000000 --- a/src/gui/painting/qcolor_p.cpp +++ /dev/null @@ -1,369 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtGui module 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 The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/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 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qglobal.h" -#include "qrgb.h" -#include "qstringlist.h" -#include "private/qtools_p.h" - -#include - -QT_BEGIN_NAMESPACE - -/*! - \internal - If s[0..1] is a valid hex number, returns its integer value, - otherwise returns -1. - */ -static inline int hex2int(const char *s) -{ - const int hi = QtMiscUtils::fromHex(s[0]); - if (hi < 0) - return -1; - const int lo = QtMiscUtils::fromHex(s[1]); - if (lo < 0) - return -1; - return (hi << 4) | lo; -} - -/*! - \internal - If s is a valid hex digit, returns its integer value, - multiplied by 0x11, otherwise returns -1. - */ -static inline int hex2int(char s) -{ - const int h = QtMiscUtils::fromHex(s); - return h < 0 ? h : (h << 4) | h; -} - -bool qt_get_hex_rgb(const char *name, QRgb *rgb) -{ - if(name[0] != '#') - return false; - name++; - int len = qstrlen(name); - int a, r, g, b; - a = 255; - if (len == 12) { - r = hex2int(name); - g = hex2int(name + 4); - b = hex2int(name + 8); - } else if (len == 9) { - r = hex2int(name); - g = hex2int(name + 3); - b = hex2int(name + 6); - } else if (len == 8) { - a = hex2int(name); - r = hex2int(name + 2); - g = hex2int(name + 4); - b = hex2int(name + 6); - } else if (len == 6) { - r = hex2int(name); - g = hex2int(name + 2); - b = hex2int(name + 4); - } else if (len == 3) { - r = hex2int(name[0]); - g = hex2int(name[1]); - b = hex2int(name[2]); - } else { - r = g = b = -1; - } - if ((uint)r > 255 || (uint)g > 255 || (uint)b > 255 || (uint)a > 255) { - *rgb = 0; - return false; - } - *rgb = qRgba(r, g ,b, a); - return true; -} - -bool qt_get_hex_rgb(const QChar *str, int len, QRgb *rgb) -{ - if (len > 13) - return false; - char tmp[16]; - for(int i = 0; i < len; ++i) - tmp[i] = str[i].toLatin1(); - tmp[len] = 0; - return qt_get_hex_rgb(tmp, rgb); -} - -#ifndef QT_NO_COLORNAMES - -/* - CSS color names = SVG 1.0 color names + transparent (rgba(0,0,0,0)) -*/ - -#ifdef rgb -# undef rgb -#endif -#define rgb(r,g,b) (0xff000000 | (r << 16) | (g << 8) | b) - -static const struct RGBData { - const char name[21]; - uint value; -} rgbTbl[] = { - { "aliceblue", rgb(240, 248, 255) }, - { "antiquewhite", rgb(250, 235, 215) }, - { "aqua", rgb( 0, 255, 255) }, - { "aquamarine", rgb(127, 255, 212) }, - { "azure", rgb(240, 255, 255) }, - { "beige", rgb(245, 245, 220) }, - { "bisque", rgb(255, 228, 196) }, - { "black", rgb( 0, 0, 0) }, - { "blanchedalmond", rgb(255, 235, 205) }, - { "blue", rgb( 0, 0, 255) }, - { "blueviolet", rgb(138, 43, 226) }, - { "brown", rgb(165, 42, 42) }, - { "burlywood", rgb(222, 184, 135) }, - { "cadetblue", rgb( 95, 158, 160) }, - { "chartreuse", rgb(127, 255, 0) }, - { "chocolate", rgb(210, 105, 30) }, - { "coral", rgb(255, 127, 80) }, - { "cornflowerblue", rgb(100, 149, 237) }, - { "cornsilk", rgb(255, 248, 220) }, - { "crimson", rgb(220, 20, 60) }, - { "cyan", rgb( 0, 255, 255) }, - { "darkblue", rgb( 0, 0, 139) }, - { "darkcyan", rgb( 0, 139, 139) }, - { "darkgoldenrod", rgb(184, 134, 11) }, - { "darkgray", rgb(169, 169, 169) }, - { "darkgreen", rgb( 0, 100, 0) }, - { "darkgrey", rgb(169, 169, 169) }, - { "darkkhaki", rgb(189, 183, 107) }, - { "darkmagenta", rgb(139, 0, 139) }, - { "darkolivegreen", rgb( 85, 107, 47) }, - { "darkorange", rgb(255, 140, 0) }, - { "darkorchid", rgb(153, 50, 204) }, - { "darkred", rgb(139, 0, 0) }, - { "darksalmon", rgb(233, 150, 122) }, - { "darkseagreen", rgb(143, 188, 143) }, - { "darkslateblue", rgb( 72, 61, 139) }, - { "darkslategray", rgb( 47, 79, 79) }, - { "darkslategrey", rgb( 47, 79, 79) }, - { "darkturquoise", rgb( 0, 206, 209) }, - { "darkviolet", rgb(148, 0, 211) }, - { "deeppink", rgb(255, 20, 147) }, - { "deepskyblue", rgb( 0, 191, 255) }, - { "dimgray", rgb(105, 105, 105) }, - { "dimgrey", rgb(105, 105, 105) }, - { "dodgerblue", rgb( 30, 144, 255) }, - { "firebrick", rgb(178, 34, 34) }, - { "floralwhite", rgb(255, 250, 240) }, - { "forestgreen", rgb( 34, 139, 34) }, - { "fuchsia", rgb(255, 0, 255) }, - { "gainsboro", rgb(220, 220, 220) }, - { "ghostwhite", rgb(248, 248, 255) }, - { "gold", rgb(255, 215, 0) }, - { "goldenrod", rgb(218, 165, 32) }, - { "gray", rgb(128, 128, 128) }, - { "green", rgb( 0, 128, 0) }, - { "greenyellow", rgb(173, 255, 47) }, - { "grey", rgb(128, 128, 128) }, - { "honeydew", rgb(240, 255, 240) }, - { "hotpink", rgb(255, 105, 180) }, - { "indianred", rgb(205, 92, 92) }, - { "indigo", rgb( 75, 0, 130) }, - { "ivory", rgb(255, 255, 240) }, - { "khaki", rgb(240, 230, 140) }, - { "lavender", rgb(230, 230, 250) }, - { "lavenderblush", rgb(255, 240, 245) }, - { "lawngreen", rgb(124, 252, 0) }, - { "lemonchiffon", rgb(255, 250, 205) }, - { "lightblue", rgb(173, 216, 230) }, - { "lightcoral", rgb(240, 128, 128) }, - { "lightcyan", rgb(224, 255, 255) }, - { "lightgoldenrodyellow", rgb(250, 250, 210) }, - { "lightgray", rgb(211, 211, 211) }, - { "lightgreen", rgb(144, 238, 144) }, - { "lightgrey", rgb(211, 211, 211) }, - { "lightpink", rgb(255, 182, 193) }, - { "lightsalmon", rgb(255, 160, 122) }, - { "lightseagreen", rgb( 32, 178, 170) }, - { "lightskyblue", rgb(135, 206, 250) }, - { "lightslategray", rgb(119, 136, 153) }, - { "lightslategrey", rgb(119, 136, 153) }, - { "lightsteelblue", rgb(176, 196, 222) }, - { "lightyellow", rgb(255, 255, 224) }, - { "lime", rgb( 0, 255, 0) }, - { "limegreen", rgb( 50, 205, 50) }, - { "linen", rgb(250, 240, 230) }, - { "magenta", rgb(255, 0, 255) }, - { "maroon", rgb(128, 0, 0) }, - { "mediumaquamarine", rgb(102, 205, 170) }, - { "mediumblue", rgb( 0, 0, 205) }, - { "mediumorchid", rgb(186, 85, 211) }, - { "mediumpurple", rgb(147, 112, 219) }, - { "mediumseagreen", rgb( 60, 179, 113) }, - { "mediumslateblue", rgb(123, 104, 238) }, - { "mediumspringgreen", rgb( 0, 250, 154) }, - { "mediumturquoise", rgb( 72, 209, 204) }, - { "mediumvioletred", rgb(199, 21, 133) }, - { "midnightblue", rgb( 25, 25, 112) }, - { "mintcream", rgb(245, 255, 250) }, - { "mistyrose", rgb(255, 228, 225) }, - { "moccasin", rgb(255, 228, 181) }, - { "navajowhite", rgb(255, 222, 173) }, - { "navy", rgb( 0, 0, 128) }, - { "oldlace", rgb(253, 245, 230) }, - { "olive", rgb(128, 128, 0) }, - { "olivedrab", rgb(107, 142, 35) }, - { "orange", rgb(255, 165, 0) }, - { "orangered", rgb(255, 69, 0) }, - { "orchid", rgb(218, 112, 214) }, - { "palegoldenrod", rgb(238, 232, 170) }, - { "palegreen", rgb(152, 251, 152) }, - { "paleturquoise", rgb(175, 238, 238) }, - { "palevioletred", rgb(219, 112, 147) }, - { "papayawhip", rgb(255, 239, 213) }, - { "peachpuff", rgb(255, 218, 185) }, - { "peru", rgb(205, 133, 63) }, - { "pink", rgb(255, 192, 203) }, - { "plum", rgb(221, 160, 221) }, - { "powderblue", rgb(176, 224, 230) }, - { "purple", rgb(128, 0, 128) }, - { "red", rgb(255, 0, 0) }, - { "rosybrown", rgb(188, 143, 143) }, - { "royalblue", rgb( 65, 105, 225) }, - { "saddlebrown", rgb(139, 69, 19) }, - { "salmon", rgb(250, 128, 114) }, - { "sandybrown", rgb(244, 164, 96) }, - { "seagreen", rgb( 46, 139, 87) }, - { "seashell", rgb(255, 245, 238) }, - { "sienna", rgb(160, 82, 45) }, - { "silver", rgb(192, 192, 192) }, - { "skyblue", rgb(135, 206, 235) }, - { "slateblue", rgb(106, 90, 205) }, - { "slategray", rgb(112, 128, 144) }, - { "slategrey", rgb(112, 128, 144) }, - { "snow", rgb(255, 250, 250) }, - { "springgreen", rgb( 0, 255, 127) }, - { "steelblue", rgb( 70, 130, 180) }, - { "tan", rgb(210, 180, 140) }, - { "teal", rgb( 0, 128, 128) }, - { "thistle", rgb(216, 191, 216) }, - { "tomato", rgb(255, 99, 71) }, - { "transparent", 0 }, - { "turquoise", rgb( 64, 224, 208) }, - { "violet", rgb(238, 130, 238) }, - { "wheat", rgb(245, 222, 179) }, - { "white", rgb(255, 255, 255) }, - { "whitesmoke", rgb(245, 245, 245) }, - { "yellow", rgb(255, 255, 0) }, - { "yellowgreen", rgb(154, 205, 50) } -}; - -static const int rgbTblSize = sizeof(rgbTbl) / sizeof(RGBData); - -#undef rgb - -#if defined(Q_CC_MSVC) && _MSC_VER < 1600 -inline bool operator<(const RGBData &data1, const RGBData &data2) -{ return qstrcmp(data1.name, data2.name) < 0; } -#endif - -inline bool operator<(const char *name, const RGBData &data) -{ return qstrcmp(name, data.name) < 0; } -inline bool operator<(const RGBData &data, const char *name) -{ return qstrcmp(data.name, name) < 0; } - -static bool get_named_rgb(const char *name_no_space, QRgb *rgb) -{ - const RGBData *r = std::lower_bound(rgbTbl, rgbTbl + rgbTblSize, name_no_space); - if ((r != rgbTbl + rgbTblSize) && !(name_no_space < *r)) { - *rgb = r->value; - return true; - } - return false; -} - -bool qt_get_named_rgb(const char *name, QRgb* rgb) -{ - int len = int(strlen(name)); - if(len > 255) - return false; - char name_no_space[256]; - int pos = 0; - for(int i = 0; i < len; i++) { - if(name[i] != '\t' && name[i] != ' ') - name_no_space[pos++] = QChar::toLower(name[i]); - } - name_no_space[pos] = 0; - - return get_named_rgb(name_no_space, rgb); -} - -bool qt_get_named_rgb(const QChar *name, int len, QRgb *rgb) -{ - if(len > 255) - return false; - char name_no_space[256]; - int pos = 0; - for(int i = 0; i < len; i++) { - if(name[i] != QLatin1Char('\t') && name[i] != QLatin1Char(' ')) - name_no_space[pos++] = name[i].toLower().toLatin1(); - } - name_no_space[pos] = 0; - return get_named_rgb(name_no_space, rgb); -} - -QStringList qt_get_colornames() -{ - int i = 0; - QStringList lst; - lst.reserve(rgbTblSize); - for (i = 0; i < rgbTblSize; i++) - lst << QLatin1String(rgbTbl[i].name); - return lst; -} - -#else - -bool qt_get_named_rgb(const char *, QRgb*) -{ - return false; -} - -QStringList qt_get_colornames() -{ - return QStringList(); -} -#endif // QT_NO_COLORNAMES - -QT_END_NAMESPACE -- cgit v1.2.3 From bb7e3e2dd71490eeffbfc12b7ee2a9d4c8b70f07 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Sun, 28 Aug 2016 20:17:24 +0200 Subject: QTest: allow to mark QFETCH variables const [ChangeLog][QtTest] QFETCH variables can now be declared const (QFETCH(const T, name)). Change-Id: I7cc1e4568d7082f27f90d8b5abf53ffafb1c48c7 Reviewed-by: Thiago Macieira --- src/testlib/qtestcase.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/testlib/qtestcase.h b/src/testlib/qtestcase.h index 09da575bc9..106fa7abd5 100644 --- a/src/testlib/qtestcase.h +++ b/src/testlib/qtestcase.h @@ -52,11 +52,11 @@ #include +#include #ifndef QT_NO_EXCEPTIONS # include #endif // QT_NO_EXCEPTIONS - QT_BEGIN_NAMESPACE class QRegularExpression; @@ -204,11 +204,11 @@ do {\ return;\ } while (0) -#define QFETCH(type, name)\ - type name = *static_cast(QTest::qData(#name, ::qMetaTypeId())) +#define QFETCH(Type, name)\ + Type name = *static_cast(QTest::qData(#name, ::qMetaTypeId::type>())) -#define QFETCH_GLOBAL(type, name)\ - type name = *static_cast(QTest::qGlobalData(#name, ::qMetaTypeId())) +#define QFETCH_GLOBAL(Type, name)\ + Type name = *static_cast(QTest::qGlobalData(#name, ::qMetaTypeId::type>())) #define QTEST(actual, testElement)\ do {\ -- cgit v1.2.3 From 443240b5120af72b261d7a99812066258a6d74f3 Mon Sep 17 00:00:00 2001 From: Maurice Kalinowski Date: Thu, 1 Sep 2016 13:55:55 +0200 Subject: Fix output location for generated files Not all tests have been updated to consider sandboxed targets causing open/write errors. Change-Id: Id7bb925c0faf04bf88cb126fb7c2846c38f36290 Reviewed-by: Friedemann Kleint --- tests/auto/gui/image/qimagewriter/tst_qimagewriter.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/auto/gui/image/qimagewriter/tst_qimagewriter.cpp b/tests/auto/gui/image/qimagewriter/tst_qimagewriter.cpp index b66eef5759..191aabdf6a 100644 --- a/tests/auto/gui/image/qimagewriter/tst_qimagewriter.cpp +++ b/tests/auto/gui/image/qimagewriter/tst_qimagewriter.cpp @@ -239,7 +239,7 @@ void tst_QImageWriter::writeImage2_data() foreach (const QString format, formats) { const QString fileName = QLatin1String("solidcolor_") + QString::number(imgFormat) + QLatin1Char('.') + format; - QTest::newRow(fileName.toLatin1()) << fileName + QTest::newRow(fileName.toLatin1()) << writePrefix + fileName << format.toLatin1() << image; } @@ -510,7 +510,7 @@ void tst_QImageWriter::saveToTemporaryFile() } { // 3) Via QImageWriter's API, with a named temp file - QTemporaryFile file("tempXXXXXX"); + QTemporaryFile file(writePrefix + QLatin1String("tempXXXXXX")); QVERIFY2(file.open(), qPrintable(file.errorString())); QImageWriter writer(&file, "PNG"); QVERIFY(writer.write(image)); @@ -518,7 +518,7 @@ void tst_QImageWriter::saveToTemporaryFile() } { // 4) Via QImage's API, with a named temp file - QTemporaryFile file("tempXXXXXX"); + QTemporaryFile file(writePrefix + QLatin1String("tempXXXXXX")); QVERIFY2(file.open(), qPrintable(file.errorString())); QVERIFY(image.save(&file, "PNG")); file.reset(); -- cgit v1.2.3 From 73331eebf885ba8918447d26ba37bef2208bdb5e Mon Sep 17 00:00:00 2001 From: Jake Petroules Date: Tue, 23 Aug 2016 15:16:42 -0700 Subject: Enable precompiled headers on iOS, tvOS, watchOS The actual blocker for precompiled headers is not the iOS/tvOS/watchOS platforms, but the way qmake handled multiple-architecture builds on Apple platforms. This patch allows multi-arch builds to be performed while using precompiled headers. Since df91ef3d6c55692a0236f67b6c6b134a3bf84098 (April 2009), Clang has had support for PCH files in the driver, which allows to use the -include flag to automatically translate to -include-pch. We can then take advantage of the fact that the -include option is allowed to not be separate from its argument, which lets us take advantage of -Xarch to specify a per-architecture precompiled header file. This is done through some magic in the qmake Makefile generator which "multiplexes" the PCH creation rule across multiple architectures and replaces a series of tokens with the proper precompiled header paths and architecture flags at usage point. Change-Id: I76c8dc9cda7e218869c2919f023d9b04f311c6fd Reviewed-by: Oswald Buddenhagen --- configure.json | 2 +- mkspecs/features/mac/sdk.prf | 29 +++++++++++++--- mkspecs/features/uikit/default_post.prf | 2 ++ qmake/generators/unix/unixmake.cpp | 26 +++++++++++++-- qmake/generators/unix/unixmake2.cpp | 59 ++++++++++++++++++++++++--------- 5 files changed, 94 insertions(+), 24 deletions(-) diff --git a/configure.json b/configure.json index 294299d82f..ee5a229ffd 100644 --- a/configure.json +++ b/configure.json @@ -1484,7 +1484,7 @@ }, "precompile_header": { "description": "Using precompiled headers", - "condition": "config.msvc || (!config.uikit && tests.precompile_header)", + "condition": "config.msvc || tests.precompile_header", "output": [ "privateConfig", { "type": "varRemove", "negative": true, "name": "CONFIG", "value": "'precompile_header'" } diff --git a/mkspecs/features/mac/sdk.prf b/mkspecs/features/mac/sdk.prf index 5abc741b90..c7395ea572 100644 --- a/mkspecs/features/mac/sdk.prf +++ b/mkspecs/features/mac/sdk.prf @@ -56,13 +56,32 @@ for(tool, $$list(QMAKE_CC QMAKE_CXX QMAKE_FIX_RPATH QMAKE_AR QMAKE_RANLIB QMAKE_ !equals(MAKEFILE_GENERATOR, XCODE) { uikit:!host_build { - simulator: \ + ios: os_var = IOS + tvos: os_var = TVOS + watchos: os_var = WATCHOS + + deployment_target = $$eval(QMAKE_$${os_var}_DEPLOYMENT_TARGET) + simulator { + archs = $$eval(QMAKE_$${os_var}_SIMULATOR_ARCHS) version_identifier = $$simulator.deployment_identifier - else: \ + } else { + archs = $$eval(QMAKE_$${os_var}_DEVICE_ARCHS) version_identifier = $$device.deployment_identifier - ios: deployment_target = $$QMAKE_IOS_DEPLOYMENT_TARGET - tvos: deployment_target = $$QMAKE_TVOS_DEPLOYMENT_TARGET - watchos: deployment_target = $$QMAKE_WATCHOS_DEPLOYMENT_TARGET + } + + single_arch: archs = $$first(archs) + + QMAKE_CFLAGS_USE_PRECOMPILE = + for(arch, archs) { + QMAKE_CFLAGS_USE_PRECOMPILE += \ + -Xarch_$${arch} \ + -include${QMAKE_PCH_OUTPUT_$${arch}} + } + QMAKE_CXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE + QMAKE_OBJCFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE + QMAKE_OBJCXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE + + QMAKE_PCH_OUTPUT_EXT = _${QMAKE_PCH_ARCH}$${QMAKE_PCH_OUTPUT_EXT} } else: osx { version_identifier = macosx deployment_target = $$QMAKE_MACOSX_DEPLOYMENT_TARGET diff --git a/mkspecs/features/uikit/default_post.prf b/mkspecs/features/uikit/default_post.prf index 52c9b1e8c8..199074eefe 100644 --- a/mkspecs/features/uikit/default_post.prf +++ b/mkspecs/features/uikit/default_post.prf @@ -114,4 +114,6 @@ macx-xcode { QMAKE_CFLAGS += $$arch_flags QMAKE_CXXFLAGS += $$arch_flags QMAKE_LFLAGS += $$arch_flags + + QMAKE_PCH_ARCHS = $$VALID_ARCHS } diff --git a/qmake/generators/unix/unixmake.cpp b/qmake/generators/unix/unixmake.cpp index b0f7593fbe..349dcd2f40 100644 --- a/qmake/generators/unix/unixmake.cpp +++ b/qmake/generators/unix/unixmake.cpp @@ -194,6 +194,18 @@ UnixMakefileGenerator::init() if (!language.isEmpty()) { pchFlags.replace(QLatin1String("${QMAKE_PCH_OUTPUT}"), escapeFilePath(pchBaseName + language + headerSuffix)); + const ProStringList pchArchs = project->values("QMAKE_PCH_ARCHS"); + for (const ProString &arch : pchArchs) { + QString suffix = headerSuffix; + suffix.replace(QLatin1String("${QMAKE_PCH_ARCH}"), arch.toQString()); + if (project->isActiveConfig("clang_pch_style") + && (suffix.endsWith(QLatin1String(".pch")) + || suffix.endsWith(QLatin1String(".gch")))) { + suffix.chop(4); // must omit header suffix for -include to recognize the PCH + } + pchFlags.replace(QLatin1String("${QMAKE_PCH_OUTPUT_") + arch + QLatin1Char('}'), + escapeFilePath(pchBaseName + language + suffix)); + } } } @@ -351,9 +363,17 @@ QStringList if (!file.endsWith(extension.toQString())) continue; - QString precompiledHeader = header_prefix + language + header_suffix; - if (!ret.contains(precompiledHeader)) - ret += precompiledHeader; + ProStringList pchArchs = project->values("QMAKE_PCH_ARCHS"); + if (pchArchs.isEmpty()) + pchArchs << ProString(); // normal single-arch PCH + for (const ProString &arch : qAsConst(pchArchs)) { + QString suffix = header_suffix; + if (!arch.isEmpty()) + suffix.replace(QLatin1String("${QMAKE_PCH_ARCH}"), arch.toQString()); + QString precompiledHeader = header_prefix + language + suffix; + if (!ret.contains(precompiledHeader)) + ret += precompiledHeader; + } goto foundPrecompiledDependency; } diff --git a/qmake/generators/unix/unixmake2.cpp b/qmake/generators/unix/unixmake2.cpp index d437a0782b..6fa355390f 100644 --- a/qmake/generators/unix/unixmake2.cpp +++ b/qmake/generators/unix/unixmake2.cpp @@ -996,7 +996,15 @@ UnixMakefileGenerator::writeMakeParts(QTextStream &t) if (language.isEmpty()) continue; - precomp_files += precomph_out_dir + header_prefix + language + header_suffix; + ProStringList pchArchs = project->values("QMAKE_PCH_ARCHS"); + if (pchArchs.isEmpty()) + pchArchs << ProString(); // normal single-arch PCH + for (const ProString &arch : qAsConst(pchArchs)) { + auto suffix = header_suffix.toQString(); + if (!arch.isEmpty()) + suffix.replace(QStringLiteral("${QMAKE_PCH_ARCH}"), arch.toQString()); + precomp_files += precomph_out_dir + header_prefix + language + suffix; + } } } t << "-$(DEL_FILE) " << escapeFilePaths(precomp_files).join(' ') << "\n\t"; @@ -1052,6 +1060,7 @@ UnixMakefileGenerator::writeMakeParts(QTextStream &t) QString pchInput = project->first("PRECOMPILED_HEADER").toQString(); t << "###### Precompiled headers\n"; for (const ProString &compiler : project->values("QMAKE_BUILTIN_COMPILERS")) { + QString pchOutputDir; QString pchFlags = var(ProKey("QMAKE_" + compiler + "FLAGS_PRECOMPILE")); if(pchFlags.isEmpty()) continue; @@ -1062,6 +1071,9 @@ UnixMakefileGenerator::writeMakeParts(QTextStream &t) else cflags += " $(CXXFLAGS)"; + ProStringList pchArchs = project->values("QMAKE_PCH_ARCHS"); + if (pchArchs.isEmpty()) + pchArchs << ProString(); // normal single-arch PCH ProString pchBaseName = project->first("QMAKE_ORIG_TARGET"); ProString pchOutput; if(!project->isEmpty("PRECOMPILED_DIR")) @@ -1088,30 +1100,47 @@ UnixMakefileGenerator::writeMakeParts(QTextStream &t) ProString header_suffix = project->isActiveConfig("clang_pch_style") ? project->first("QMAKE_PCH_OUTPUT_EXT") : ""; pchOutput += Option::dir_sep; - QString pchOutputDir = pchOutput.toQString(); + pchOutputDir = pchOutput.toQString(); QString language = project->first(ProKey("QMAKE_LANGUAGE_" + compiler)).toQString(); if (language.isEmpty()) continue; pchOutput += header_prefix + language + header_suffix; - - t << escapeDependencyPath(pchOutput) << ": " << escapeDependencyPath(pchInput) << ' ' - << escapeDependencyPaths(findDependencies(pchInput)).join(" \\\n\t\t") - << "\n\t" << mkdir_p_asstring(pchOutputDir); } pchFlags.replace(QLatin1String("${QMAKE_PCH_INPUT}"), escapeFilePath(pchInput)) - .replace(QLatin1String("${QMAKE_PCH_OUTPUT_BASE}"), escapeFilePath(pchBaseName.toQString())) - .replace(QLatin1String("${QMAKE_PCH_OUTPUT}"), escapeFilePath(pchOutput.toQString())); + .replace(QLatin1String("${QMAKE_PCH_OUTPUT_BASE}"), escapeFilePath(pchBaseName.toQString())); + for (const ProString &arch : qAsConst(pchArchs)) { + auto pchArchOutput = pchOutput.toQString(); + if (!arch.isEmpty()) + pchArchOutput.replace(QStringLiteral("${QMAKE_PCH_ARCH}"), arch.toQString()); + + if (!project->isActiveConfig("icc_pch_style")) { + const auto pchFilePath_d = escapeDependencyPath(pchArchOutput); + if (!arch.isEmpty()) { + t << pchFilePath_d << ": " << "EXPORT_ARCH_ARGS = -arch " << arch << "\n\n"; + t << pchFilePath_d << ": " + << "EXPORT_QMAKE_XARCH_CFLAGS = $(EXPORT_QMAKE_XARCH_CFLAGS_" << arch << ")" << "\n\n"; + t << pchFilePath_d << ": " + << "EXPORT_QMAKE_XARCH_LFLAGS = $(EXPORT_QMAKE_XARCH_LFLAGS_" << arch << ")" << "\n\n"; + } + t << pchFilePath_d << ": " << escapeDependencyPath(pchInput) << ' ' + << escapeDependencyPaths(findDependencies(pchInput)).join(" \\\n\t\t") + << "\n\t" << mkdir_p_asstring(pchOutputDir); + } - QString compilerExecutable; - if (compiler == "C" || compiler == "OBJC") - compilerExecutable = "$(CC)"; - else - compilerExecutable = "$(CXX)"; + auto pchArchFlags = pchFlags; + pchArchFlags.replace(QLatin1String("${QMAKE_PCH_OUTPUT}"), escapeFilePath(pchArchOutput)); - // compile command - t << "\n\t" << compilerExecutable << cflags << " $(INCPATH) " << pchFlags << endl << endl; + QString compilerExecutable; + if (compiler == "C" || compiler == "OBJC") + compilerExecutable = "$(CC)"; + else + compilerExecutable = "$(CXX)"; + + // compile command + t << "\n\t" << compilerExecutable << cflags << " $(INCPATH) " << pchArchFlags << endl << endl; + } } } -- cgit v1.2.3 From ed9f8a0e9d2984b0b9d6aa31ab3a7209bae1708e Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Thu, 1 Sep 2016 15:17:27 +0200 Subject: bearer plugins: eradicate Java-style iterators and Q_FOREACH This is the simple part of the job, removing Q_FOREACH loops which are obviously safe to be replaced by C++11 range-for. In QNetworkManagerEngine::sessionStateForId(), instead of iterating over QHash::keys(), iterate over the QHash directly (using C++11 range-for, as we're only using the values, not the keys). In QNetworkManagerEngine::connectToId(), simplify the loop body by merging three identical if blocks into one. Saves ~1.7KiB accumulated over the three Linux bearer plugins: connman, generic, nm (optimized GCC 6.1 Linux AMD64 build). Change-Id: Ic66139c25f7e2173f5a919927e269b873334d2c8 Reviewed-by: Lorn Potter --- src/plugins/bearer/connman/qconnmanengine.cpp | 16 +++-- .../bearer/connman/qconnmanservice_linux.cpp | 14 ++-- .../bearer/linux_common/qofonoservice_linux.cpp | 12 ++-- .../networkmanager/qnetworkmanagerengine.cpp | 74 +++++++++------------- src/plugins/bearer/qnetworksession_impl.cpp | 6 +- 5 files changed, 56 insertions(+), 66 deletions(-) diff --git a/src/plugins/bearer/connman/qconnmanengine.cpp b/src/plugins/bearer/connman/qconnmanengine.cpp index 51ee51a64a..eabae5a07b 100644 --- a/src/plugins/bearer/connman/qconnmanengine.cpp +++ b/src/plugins/bearer/connman/qconnmanengine.cpp @@ -93,9 +93,9 @@ void QConnmanEngine::initialize() connect(connmanManager,SIGNAL(servicesReady(QStringList)),this,SLOT(servicesReady(QStringList))); connect(connmanManager,SIGNAL(scanFinished(bool)),this,SLOT(finishedScan(bool))); - foreach (const QString &servPath, connmanManager->getServices()) { + const auto servPaths = connmanManager->getServices(); + for (const QString &servPath : servPaths) addServiceConfiguration(servPath); - } Q_EMIT updateCompleted(); } @@ -115,9 +115,8 @@ void QConnmanEngine::changedModem() void QConnmanEngine::servicesReady(const QStringList &list) { QMutexLocker locker(&mutex); - foreach (const QString &servPath, list) { + for (const QString &servPath : list) addServiceConfiguration(servPath); - } Q_EMIT updateCompleted(); } @@ -329,7 +328,8 @@ QNetworkSessionPrivate *QConnmanEngine::createSessionBackend() QNetworkConfigurationPrivatePointer QConnmanEngine::defaultConfiguration() { const QMutexLocker locker(&mutex); - Q_FOREACH (const QString &servPath, connmanManager->getServices()) { + const auto servPaths = connmanManager->getServices(); + for (const QString &servPath : servPaths) { if (connmanServiceInterfaces.contains(servPath)) { if (accessPointConfigurations.contains(servPath)) return accessPointConfigurations.value(servPath); @@ -461,7 +461,8 @@ QNetworkConfiguration::BearerType QConnmanEngine::ofonoTechToBearerType(const QS bool QConnmanEngine::isRoamingAllowed(const QString &context) { - foreach (const QString &dcPath, ofonoContextManager->contexts()) { + const auto dcPaths = ofonoContextManager->contexts(); + for (const QString &dcPath : dcPaths) { if (dcPath.contains(context.section("_",-1))) { return ofonoContextManager->roamingAllowed(); } @@ -557,7 +558,8 @@ bool QConnmanEngine::requiresPolling() const void QConnmanEngine::reEvaluateCellular() { - Q_FOREACH (const QString &servicePath, connmanManager->getServices()) { + const auto servicePaths = connmanManager->getServices(); + for (const QString &servicePath : servicePaths) { if (servicePath.contains("cellular") && accessPointConfigurations.contains(servicePath)) { configurationChange(connmanServiceInterfaces.value(servicePath)); } diff --git a/src/plugins/bearer/connman/qconnmanservice_linux.cpp b/src/plugins/bearer/connman/qconnmanservice_linux.cpp index 7fbbe2cd07..bc89f540fc 100644 --- a/src/plugins/bearer/connman/qconnmanservice_linux.cpp +++ b/src/plugins/bearer/connman/qconnmanservice_linux.cpp @@ -144,10 +144,9 @@ void QConnmanManagerInterface::servicesReply(QDBusPendingCallWatcher *call) qDebug() << serv_reply.error().message(); } else { servicesList.clear(); //connman list changes order - ConnmanMap connmanobj; - Q_FOREACH (connmanobj, serv_reply.value()) { + const ConnmanMapList connmanobjs = serv_reply.value(); + for (const ConnmanMap &connmanobj : connmanobjs) servicesList << connmanobj.objectPath.path(); - } Q_EMIT servicesReady(servicesList); } call->deleteLater(); @@ -181,7 +180,7 @@ void QConnmanManagerInterface::connectNotify(const QMetaMethod &signal) void QConnmanManagerInterface::onServicesChanged(const ConnmanMapList &changed, const QList &removed) { servicesList.clear(); //connman list changes order - Q_FOREACH (const ConnmanMap &connmanobj, changed) { + for (const ConnmanMap &connmanobj : changed) { const QString svcPath(connmanobj.objectPath.path()); servicesList << svcPath; } @@ -225,7 +224,8 @@ QStringList QConnmanManagerInterface::getTechnologies() QDBusPendingReply reply = call(QLatin1String("GetTechnologies")); reply.waitForFinished(); if (!reply.isError()) { - Q_FOREACH (const ConnmanMap &map, reply.value()) { + const ConnmanMapList maps = reply.value(); + for (const ConnmanMap &map : maps) { if (!technologiesMap.contains(map.objectPath.path())) { technologyAdded(map.objectPath, map.propertyMap); } @@ -241,9 +241,9 @@ QStringList QConnmanManagerInterface::getServices() QDBusPendingReply reply = call(QLatin1String("GetServices")); reply.waitForFinished(); if (!reply.isError()) { - Q_FOREACH (const ConnmanMap &map, reply.value()) { + const ConnmanMapList maps = reply.value(); + for (const ConnmanMap &map : maps) servicesList << map.objectPath.path(); - } } } return servicesList; diff --git a/src/plugins/bearer/linux_common/qofonoservice_linux.cpp b/src/plugins/bearer/linux_common/qofonoservice_linux.cpp index b0f5f29f6c..adf7feef2e 100644 --- a/src/plugins/bearer/linux_common/qofonoservice_linux.cpp +++ b/src/plugins/bearer/linux_common/qofonoservice_linux.cpp @@ -103,9 +103,9 @@ QStringList QOfonoManagerInterface::getModems() QDBusPendingReply reply = callWithArgumentList(QDBus::Block, QLatin1String("GetModems"), argumentList); reply.waitForFinished(); if (!reply.isError()) { - foreach (const ObjectPathProperties &modem, reply.value()) { + const auto modems = reply.value(); + for (const ObjectPathProperties &modem : modems) modemList << modem.path.path(); - } } } @@ -114,8 +114,8 @@ QStringList QOfonoManagerInterface::getModems() QString QOfonoManagerInterface::currentModem() { - QStringList modems = getModems(); - foreach (const QString &modem, modems) { + const QStringList modems = getModems(); + for (const QString &modem : modems) { QOfonoModemInterface device(modem); if (device.isPowered() && device.isOnline() && device.interfaces().contains(QStringLiteral("org.ofono.NetworkRegistration"))) @@ -266,9 +266,9 @@ QStringList QOfonoDataConnectionManagerInterface::contexts() QDBusPendingReply reply = call(QLatin1String("GetContexts")); reply.waitForFinished(); if (!reply.isError()) { - foreach (const ObjectPathProperties &context, reply.value()) { + const auto contexts = reply.value(); + for (const ObjectPathProperties &context : contexts) contextList << context.path.path(); - } } } return contextList; diff --git a/src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp b/src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp index f02b6befb8..543e66491d 100644 --- a/src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp +++ b/src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp @@ -127,7 +127,8 @@ void QNetworkManagerEngine::setupConfigurations() { QMutexLocker locker(&mutex); // Get active connections. - foreach (const QDBusObjectPath &acPath, managerInterface->activeConnections()) { + const auto acPaths = managerInterface->activeConnections(); + for (const QDBusObjectPath &acPath : acPaths) { if (activeConnectionsList.contains(acPath.path())) continue; @@ -144,8 +145,10 @@ void QNetworkManagerEngine::setupConfigurations() connectionInterfaces.insert(activeConnection->connection().path(),device.networkInterface()); } } + // Get connections. - foreach (const QDBusObjectPath &settingsPath, systemSettings->listConnections()) { + const auto settingsPaths = systemSettings->listConnections(); + for (const QDBusObjectPath &settingsPath : settingsPaths) { locker.unlock(); if (!hasIdentifier(settingsPath.path())) newConnection(settingsPath, systemSettings); //add system connection configs @@ -189,21 +192,13 @@ void QNetworkManagerEngine::connectToId(const QString &id) if (isConnectionActive(settingsPath)) return; - QHashIterator i(interfaceDevices); - while (i.hasNext()) { - i.next(); - if (i.value()->deviceType() == DEVICE_TYPE_ETHERNET && - connectionType == DEVICE_TYPE_ETHERNET) { - dbusDevicePath = i.key(); - break; - } else if (i.value()->deviceType() == DEVICE_TYPE_WIFI && - connectionType == DEVICE_TYPE_WIFI) { - dbusDevicePath = i.key(); - break; - } else if (i.value()->deviceType() == DEVICE_TYPE_MODEM && - connectionType == DEVICE_TYPE_MODEM) { - dbusDevicePath = i.key(); - break; + for (auto i = interfaceDevices.cbegin(), end = interfaceDevices.cend(); i != end; ++i) { + const auto type = i.value()->deviceType(); + if (type == DEVICE_TYPE_ETHERNET || type == DEVICE_TYPE_WIFI || type == DEVICE_TYPE_MODEM) { + if (type == connectionType) { + dbusDevicePath = i.key(); + break; + } } } @@ -230,9 +225,7 @@ void QNetworkManagerEngine::disconnectFromId(const QString &id) return; } - QHashIterator i(activeConnectionsList); - while (i.hasNext()) { - i.next(); + for (auto i = activeConnectionsList.cbegin(), end = activeConnectionsList.cend(); i != end; ++i) { if (id == i.value()->connection().path() && accessPointConfigurations.contains(id)) { managerInterface->deactivateConnection(QDBusObjectPath(i.key())); break; @@ -243,11 +236,8 @@ void QNetworkManagerEngine::disconnectFromId(const QString &id) void QNetworkManagerEngine::requestUpdate() { if (managerInterface && managerInterface->wirelessEnabled()) { - QHashIterator i(wirelessDevices); - while (i.hasNext()) { - i.next(); - i.value()->requestScan(); - } + for (auto *wirelessDevice : qAsConst(wirelessDevices)) + wirelessDevice->requestScan(); } QMetaObject::invokeMethod(this, "updateCompleted", Qt::QueuedConnection); } @@ -255,20 +245,17 @@ void QNetworkManagerEngine::requestUpdate() void QNetworkManagerEngine::interfacePropertiesChanged(const QMap &properties) { QMutexLocker locker(&mutex); - QMapIterator i(properties); - while (i.hasNext()) { - i.next(); + for (auto i = properties.cbegin(), end = properties.cend(); i != end; ++i) { if (i.key() == QLatin1String("ActiveConnections")) { // Active connections changed, update configurations. - QList activeConnections = - qdbus_cast >(i.value().value()); + const auto activeConnections = qdbus_cast >(i.value().value()); QStringList identifiers = accessPointConfigurations.keys(); QStringList priorActiveConnections = activeConnectionsList.keys(); - foreach (const QDBusObjectPath &acPath, activeConnections) { + for (const QDBusObjectPath &acPath : activeConnections) { priorActiveConnections.removeOne(acPath.path()); QNetworkManagerConnectionActive *activeConnection = activeConnectionsList.value(acPath.path()); @@ -399,7 +386,8 @@ void QNetworkManagerEngine::wiredCarrierChanged(bool carrier) if (!deviceWired) return; QMutexLocker locker(&mutex); - foreach (const QDBusObjectPath &settingsPath, systemSettings->listConnections()) { + const auto settingsPaths = systemSettings->listConnections(); + for (const QDBusObjectPath &settingsPath : settingsPaths) { for (int i = 0; i < connections.count(); ++i) { QNetworkManagerSettingsConnection *connection = connections.at(i); if (connection->getType() == DEVICE_TYPE_ETHERNET @@ -477,12 +465,9 @@ void QNetworkManagerEngine::newConnection(const QDBusObjectPath &path, cpPriv->state |= QNetworkConfiguration::Active; if (deviceType == DEVICE_TYPE_ETHERNET) { - QHashIterator i(interfaceDevices); - while (i.hasNext()) { - i.next(); - if (i.value()->deviceType() == deviceType) { - QNetworkManagerInterfaceDeviceWired *wiredDevice - = wiredDevices.value(i.value()->path()); + for (const auto *interfaceDevice : interfaceDevices) { + if (interfaceDevice->deviceType() == deviceType) { + auto *wiredDevice = wiredDevices.value(interfaceDevice->path()); if (wiredDevice && wiredDevice->carrier()) { cpPriv->state |= QNetworkConfiguration::Discovered; } @@ -559,7 +544,8 @@ void QNetworkManagerEngine::updateConnection() QNetworkConfigurationPrivate *cpPriv = parseConnection(settingsPath, connection->getSettings()); // Check if connection is active. - foreach (const QDBusObjectPath &acPath, managerInterface->activeConnections()) { + const auto acPaths = managerInterface->activeConnections(); + for (const QDBusObjectPath &acPath : acPaths) { QNetworkManagerConnectionActive activeConnection(acPath.path()); if (activeConnection.connection().path() == settingsPath && @@ -635,7 +621,8 @@ QNetworkConfigurationPrivate *QNetworkManagerEngine::parseConnection(const QStri if (connectionType == QLatin1String("802-3-ethernet")) { cpPriv->bearerType = QNetworkConfiguration::BearerEthernet; - foreach (const QDBusObjectPath &devicePath, managerInterface->getDevices()) { + const auto devicePaths = managerInterface->getDevices(); + for (const QDBusObjectPath &devicePath : devicePaths) { QNetworkManagerInterfaceDevice device(devicePath.path(),this); if (device.deviceType() == DEVICE_TYPE_ETHERNET) { QNetworkManagerInterfaceDeviceWired *wiredDevice = wiredDevices.value(device.path()); @@ -729,9 +716,7 @@ QNetworkSession::State QNetworkManagerEngine::sessionStateForId(const QString &i if (!ptr->isValid) return QNetworkSession::Invalid; - foreach (const QString &acPath, activeConnectionsList.keys()) { - QNetworkManagerConnectionActive *activeConnection = activeConnectionsList.value(acPath); - + for (QNetworkManagerConnectionActive *activeConnection : activeConnectionsList) { const QString identifier = activeConnection->connection().path(); if (id == identifier) { @@ -932,7 +917,8 @@ void QNetworkManagerEngine::ofonoRegistered(const QString &) } ofonoManager = new QOfonoManagerInterface(this); if (ofonoManager && ofonoManager->isValid()) { - Q_FOREACH (const QString &modem, ofonoManager->getModems()) { + const auto modems = ofonoManager->getModems(); + for (const QString &modem : modems) { QOfonoDataConnectionManagerInterface *ofonoContextManager = new QOfonoDataConnectionManagerInterface(modem,this); ofonoContextManagers.insert(modem, ofonoContextManager); diff --git a/src/plugins/bearer/qnetworksession_impl.cpp b/src/plugins/bearer/qnetworksession_impl.cpp index 85942b56f1..5ce51670f7 100644 --- a/src/plugins/bearer/qnetworksession_impl.cpp +++ b/src/plugins/bearer/qnetworksession_impl.cpp @@ -54,7 +54,8 @@ static QBearerEngineImpl *getEngineFromId(const QString &id) { QNetworkConfigurationManagerPrivate *priv = qNetworkConfigurationManagerPrivate(); - foreach (QBearerEngine *engine, priv->engines()) { + const auto engines = priv->engines(); + for (QBearerEngine *engine : engines) { QBearerEngineImpl *engineImpl = qobject_cast(engine); if (engineImpl && engineImpl->hasIdentifier(id)) return engineImpl; @@ -306,7 +307,8 @@ void QNetworkSessionPrivateImpl::updateStateFromServiceNetwork() { QNetworkSession::State oldState = state; - foreach (const QNetworkConfiguration &config, serviceConfig.children()) { + const auto configs = serviceConfig.children(); + for (const QNetworkConfiguration &config : configs) { if ((config.state() & QNetworkConfiguration::Active) != QNetworkConfiguration::Active) continue; -- cgit v1.2.3 From 7fb34481617cb1a283082cb12885dd3f625e77a2 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Thu, 1 Sep 2016 10:05:55 +0200 Subject: configure.pri: Determine MSVC compiler version Run cl.exe /? and extract version from header line printed to standard error. Change-Id: Iecf18f1b0f94cc1d51add7021d80772784e0f953 Reviewed-by: Oswald Buddenhagen --- configure.pri | 3 +++ 1 file changed, 3 insertions(+) diff --git a/configure.pri b/configure.pri index 8c87aaed81..6a75398d35 100644 --- a/configure.pri +++ b/configure.pri @@ -281,8 +281,11 @@ defineTest(qtConfTest_checkCompiler) { $${1}.compilerId = "icc" $${1}.compilerVersion = $$replace(version, "icpc version ([0-9.]+).*", "\\1") } else: msvc { + qtRunLoggedCommand("$$QMAKE_CXX /? 2>&1", version)|return(false) + version = "$$version" $${1}.compilerDescription = "MSVC" $${1}.compilerId = "cl" + $${1}.compilerVersion = $$replace(version, "^.*Compiler Version ([0-9.]+) for.*$", "\\1") } else { return(false) } -- cgit v1.2.3 From 7f801ed73a3b9e9098fafed64c21e98ae7d73dff Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Tue, 16 Aug 2016 10:01:05 +0200 Subject: tuiotouch: clean up - order includes from most specific to most general - include only what you need - port uses of inefficient QLists to QVector (required adding default ctors to the payload types) - mark types as Q_MOVABLE_TYPE - inline some trivial functions - add explicit to ctors - mark plugin with QT_NO_FOREACH Change-Id: I7ae13141ece22bfdf49be42deb0987d51da2d72b Reviewed-by: Shawn Rutledge Reviewed-by: Robin Burchell --- src/plugins/generic/tuiotouch/qoscbundle.cpp | 23 +++++------------------ src/plugins/generic/tuiotouch/qoscbundle_p.h | 19 +++++++++++++------ src/plugins/generic/tuiotouch/qoscmessage.cpp | 25 +++++-------------------- src/plugins/generic/tuiotouch/qoscmessage_p.h | 18 ++++++++++++++---- src/plugins/generic/tuiotouch/qtuiocursor_p.h | 1 + src/plugins/generic/tuiotouch/qtuiohandler.cpp | 23 +++++++++++++---------- src/plugins/generic/tuiotouch/qtuiotoken_p.h | 1 + src/plugins/generic/tuiotouch/tuiotouch.pro | 1 + 8 files changed, 53 insertions(+), 58 deletions(-) diff --git a/src/plugins/generic/tuiotouch/qoscbundle.cpp b/src/plugins/generic/tuiotouch/qoscbundle.cpp index 6ddca9b09d..b84ae39aca 100644 --- a/src/plugins/generic/tuiotouch/qoscbundle.cpp +++ b/src/plugins/generic/tuiotouch/qoscbundle.cpp @@ -38,17 +38,20 @@ ** ****************************************************************************/ +#include "qoscbundle_p.h" +#include "qtuio_p.h" + #include #include #include -#include "qoscbundle_p.h" -#include "qtuio_p.h" QT_BEGIN_NAMESPACE Q_LOGGING_CATEGORY(lcTuioBundle, "qt.qpa.tuio.bundle") +QOscBundle::QOscBundle() {} + // TUIO packets are transmitted using the OSC protocol, located at: // http://opensoundcontrol.org/specification // Snippets of this specification have been pasted into the source as a means of @@ -172,21 +175,5 @@ QOscBundle::QOscBundle(const QByteArray &data) } } - -bool QOscBundle::isValid() const -{ - return m_isValid; -} - -QList QOscBundle::bundles() const -{ - return m_bundles; -} - -QList QOscBundle::messages() const -{ - return m_messages; -} - QT_END_NAMESPACE diff --git a/src/plugins/generic/tuiotouch/qoscbundle_p.h b/src/plugins/generic/tuiotouch/qoscbundle_p.h index e95a202ae7..cb3ec4d251 100644 --- a/src/plugins/generic/tuiotouch/qoscbundle_p.h +++ b/src/plugins/generic/tuiotouch/qoscbundle_p.h @@ -43,25 +43,32 @@ #include "qoscmessage_p.h" +#include + QT_BEGIN_NAMESPACE +class QByteArray; + class QOscBundle { + QOscBundle(); // for QVector, don't use + friend class QVector; public: - QOscBundle(const QByteArray &data); + explicit QOscBundle(const QByteArray &data); - bool isValid() const; - QList bundles() const; - QList messages() const; + bool isValid() const { return m_isValid; } + QVector bundles() const { return m_bundles; } + QVector messages() const { return m_messages; } private: bool m_isValid; bool m_immediate; quint32 m_timeEpoch; quint32 m_timePico; - QList m_bundles; - QList m_messages; + QVector m_bundles; + QVector m_messages; }; +Q_DECLARE_TYPEINFO(QOscBundle, Q_MOVABLE_TYPE); QT_END_NAMESPACE diff --git a/src/plugins/generic/tuiotouch/qoscmessage.cpp b/src/plugins/generic/tuiotouch/qoscmessage.cpp index 6f82cd784b..b2004903bd 100644 --- a/src/plugins/generic/tuiotouch/qoscmessage.cpp +++ b/src/plugins/generic/tuiotouch/qoscmessage.cpp @@ -38,19 +38,19 @@ ** ****************************************************************************/ -#include +#include "qoscmessage_p.h" +#include "qtuio_p.h" + #include #include -#include #include -#include "qoscmessage_p.h" -#include "qtuio_p.h" - QT_BEGIN_NAMESPACE Q_LOGGING_CATEGORY(lcTuioMessage, "qt.qpa.tuio.message") +QOscMessage::QOscMessage() {} + // TUIO packets are transmitted using the OSC protocol, located at: // http://opensoundcontrol.org/specification // Snippets of this specification have been pasted into the source as a means of @@ -125,20 +125,5 @@ QOscMessage::QOscMessage(const QByteArray &data) qCDebug(lcTuioMessage) << "Message with address pattern: " << addressPattern << " arguments: " << arguments; } -bool QOscMessage::isValid() const -{ - return m_isValid; -} - -QByteArray QOscMessage::addressPattern() const -{ - return m_addressPattern; -} - -QList QOscMessage::arguments() const -{ - return m_arguments; -} - QT_END_NAMESPACE diff --git a/src/plugins/generic/tuiotouch/qoscmessage_p.h b/src/plugins/generic/tuiotouch/qoscmessage_p.h index 788a03e504..76d40ceb18 100644 --- a/src/plugins/generic/tuiotouch/qoscmessage_p.h +++ b/src/plugins/generic/tuiotouch/qoscmessage_p.h @@ -41,22 +41,32 @@ #ifndef QOSCMESSAGE_P_H #define QOSCMESSAGE_P_H +#include +#include +#include +#include + + QT_BEGIN_NAMESPACE class QOscMessage { + QOscMessage(); // for QVector, don't use + friend class QVector; public: - QOscMessage(const QByteArray &data); - bool isValid() const; + explicit QOscMessage(const QByteArray &data); + + bool isValid() const { return m_isValid; } - QByteArray addressPattern() const; - QList arguments() const; + QByteArray addressPattern() const { return m_addressPattern; } + QList arguments() const { return m_arguments; } private: bool m_isValid; QByteArray m_addressPattern; QList m_arguments; }; +Q_DECLARE_TYPEINFO(QOscMessage, Q_MOVABLE_TYPE); QT_END_NAMESPACE diff --git a/src/plugins/generic/tuiotouch/qtuiocursor_p.h b/src/plugins/generic/tuiotouch/qtuiocursor_p.h index 2ff762b836..46134e6f3f 100644 --- a/src/plugins/generic/tuiotouch/qtuiocursor_p.h +++ b/src/plugins/generic/tuiotouch/qtuiocursor_p.h @@ -102,6 +102,7 @@ private: float m_acceleration; Qt::TouchPointState m_state; }; +Q_DECLARE_TYPEINFO(QTuioCursor, Q_MOVABLE_TYPE); // Q_PRIMITIVE_TYPE: not possible, m_state is = 1, not 0. QT_END_NAMESPACE diff --git a/src/plugins/generic/tuiotouch/qtuiohandler.cpp b/src/plugins/generic/tuiotouch/qtuiohandler.cpp index 38105fe656..26b88d6d78 100644 --- a/src/plugins/generic/tuiotouch/qtuiohandler.cpp +++ b/src/plugins/generic/tuiotouch/qtuiohandler.cpp @@ -38,19 +38,22 @@ ** ****************************************************************************/ -#include -#include -#include -#include -#include -#include - -#include +#include "qtuiohandler_p.h" #include "qtuiocursor_p.h" #include "qtuiotoken_p.h" -#include "qtuiohandler_p.h" #include "qoscbundle_p.h" +#include "qoscmessage_p.h" + +#include + +#include +#include +#include + +#include +#include +#include QT_BEGIN_NAMESPACE @@ -151,7 +154,7 @@ void QTuioHandler::processPackets() // messages. The FSEQ frame ID is incremented for each delivered bundle, // while redundant bundles can be marked using the frame sequence ID // -1." - QList messages; + QVector messages; QOscBundle bundle(datagram); if (bundle.isValid()) { diff --git a/src/plugins/generic/tuiotouch/qtuiotoken_p.h b/src/plugins/generic/tuiotouch/qtuiotoken_p.h index 5084aeed11..b784190d53 100644 --- a/src/plugins/generic/tuiotouch/qtuiotoken_p.h +++ b/src/plugins/generic/tuiotouch/qtuiotoken_p.h @@ -138,6 +138,7 @@ private: float m_angularAcceleration; Qt::TouchPointState m_state; }; +Q_DECLARE_TYPEINFO(QTuioToken, Q_MOVABLE_TYPE); // Q_PRIMITIVE_TYPE: not possible: m_id, m_classId == -1 QT_END_NAMESPACE diff --git a/src/plugins/generic/tuiotouch/tuiotouch.pro b/src/plugins/generic/tuiotouch/tuiotouch.pro index ad6a1c6876..08f7036c92 100644 --- a/src/plugins/generic/tuiotouch/tuiotouch.pro +++ b/src/plugins/generic/tuiotouch/tuiotouch.pro @@ -21,6 +21,7 @@ HEADERS += \ OTHER_FILES += \ tuiotouch.json +DEFINES += QT_NO_FOREACH PLUGIN_TYPE = generic PLUGIN_EXTENDS = - PLUGIN_CLASS_NAME = QTuioTouchPlugin -- cgit v1.2.3 From 816a6238761810c28a991a959ea61a834de2a2a5 Mon Sep 17 00:00:00 2001 From: Dyami Caliri Date: Tue, 16 Aug 2016 20:52:14 -0700 Subject: uic: generate translate calls with Q_NULLPTR instead of 0 uic should use Q_NULLPTR instead of 0 as the default disambiguation context. Task-number: QTBUG-45291 Change-Id: I889182c7fe1c4be3336f3cd645aa60838863c633 Reviewed-by: Marc Mutz --- src/tools/uic/cpp/cppwriteinitialization.cpp | 2 +- .../uic/baseline/Dialog_with_Buttons_Bottom.ui.h | 2 +- .../uic/baseline/Dialog_with_Buttons_Right.ui.h | 2 +- .../tools/uic/baseline/Dialog_without_Buttons.ui.h | 2 +- tests/auto/tools/uic/baseline/Main_Window.ui.h | 2 +- tests/auto/tools/uic/baseline/Widget.ui.h | 8 +- tests/auto/tools/uic/baseline/addlinkdialog.ui.h | 6 +- tests/auto/tools/uic/baseline/addtorrentform.ui.h | 34 +++---- .../tools/uic/baseline/authenticationdialog.ui.h | 12 +-- tests/auto/tools/uic/baseline/backside.ui.h | 38 +++---- .../auto/tools/uic/baseline/batchtranslation.ui.h | 20 ++-- tests/auto/tools/uic/baseline/bookmarkdialog.ui.h | 12 +-- tests/auto/tools/uic/baseline/bookwindow.ui.h | 16 +-- tests/auto/tools/uic/baseline/browserwidget.ui.h | 16 +-- .../tools/uic/baseline/bug18156QTreeWidget.ui.h | 4 +- tests/auto/tools/uic/baseline/calculator.ui.h | 56 +++++------ tests/auto/tools/uic/baseline/calculatorform.ui.h | 14 +-- tests/auto/tools/uic/baseline/certificateinfo.ui.h | 6 +- tests/auto/tools/uic/baseline/chatdialog.ui.h | 4 +- tests/auto/tools/uic/baseline/chatmainwindow.ui.h | 24 ++--- tests/auto/tools/uic/baseline/chatsetnickname.ui.h | 8 +- tests/auto/tools/uic/baseline/config.ui.h | 74 +++++++------- tests/auto/tools/uic/baseline/connectdialog.ui.h | 12 +-- tests/auto/tools/uic/baseline/controller.ui.h | 12 +-- tests/auto/tools/uic/baseline/cookies.ui.h | 6 +- .../auto/tools/uic/baseline/cookiesexceptions.ui.h | 18 ++-- tests/auto/tools/uic/baseline/default.ui.h | 84 ++++++++-------- tests/auto/tools/uic/baseline/dialog.ui.h | 8 +- tests/auto/tools/uic/baseline/downloaditem.ui.h | 12 +-- tests/auto/tools/uic/baseline/downloads.ui.h | 6 +- tests/auto/tools/uic/baseline/embeddeddialog.ui.h | 14 +-- tests/auto/tools/uic/baseline/enumnostdset.ui.h | 2 +- tests/auto/tools/uic/baseline/filespage.ui.h | 8 +- .../auto/tools/uic/baseline/filternamedialog.ui.h | 4 +- tests/auto/tools/uic/baseline/filterpage.ui.h | 14 +-- tests/auto/tools/uic/baseline/finddialog.ui.h | 36 +++---- tests/auto/tools/uic/baseline/form.ui.h | 6 +- .../tools/uic/baseline/formwindowsettings.ui.h | 22 ++-- tests/auto/tools/uic/baseline/generalpage.ui.h | 6 +- tests/auto/tools/uic/baseline/gridalignment.ui.h | 10 +- tests/auto/tools/uic/baseline/gridpanel.ui.h | 16 +-- tests/auto/tools/uic/baseline/helpdialog.ui.h | 66 ++++++------ tests/auto/tools/uic/baseline/history.ui.h | 6 +- tests/auto/tools/uic/baseline/icontheme.ui.h | 8 +- tests/auto/tools/uic/baseline/identifierpage.ui.h | 8 +- tests/auto/tools/uic/baseline/imagedialog.ui.h | 16 +-- tests/auto/tools/uic/baseline/inputpage.ui.h | 6 +- tests/auto/tools/uic/baseline/installdialog.ui.h | 14 +-- tests/auto/tools/uic/baseline/languagesdialog.ui.h | 24 ++--- .../auto/tools/uic/baseline/listwidgeteditor.ui.h | 24 ++--- tests/auto/tools/uic/baseline/mainwindow.ui.h | 48 ++++----- tests/auto/tools/uic/baseline/mydialog.ui.h | 8 +- tests/auto/tools/uic/baseline/myform.ui.h | 22 ++-- tests/auto/tools/uic/baseline/newactiondialog.ui.h | 8 +- .../uic/baseline/newdynamicpropertydialog.ui.h | 6 +- tests/auto/tools/uic/baseline/newform.ui.h | 8 +- tests/auto/tools/uic/baseline/orderdialog.ui.h | 8 +- tests/auto/tools/uic/baseline/outputpage.ui.h | 6 +- tests/auto/tools/uic/baseline/pagefold.ui.h | 88 ++++++++-------- tests/auto/tools/uic/baseline/paletteeditor.ui.h | 18 ++-- tests/auto/tools/uic/baseline/passworddialog.ui.h | 10 +- tests/auto/tools/uic/baseline/pathpage.ui.h | 10 +- tests/auto/tools/uic/baseline/phrasebookbox.ui.h | 32 +++--- tests/auto/tools/uic/baseline/plugindialog.ui.h | 8 +- .../auto/tools/uic/baseline/preferencesdialog.ui.h | 10 +- .../uic/baseline/previewconfigurationwidget.ui.h | 16 +-- .../auto/tools/uic/baseline/previewdialogbase.ui.h | 8 +- tests/auto/tools/uic/baseline/previewwidget.ui.h | 22 ++-- tests/auto/tools/uic/baseline/proxy.ui.h | 10 +- tests/auto/tools/uic/baseline/qfiledialog.ui.h | 16 +-- .../auto/tools/uic/baseline/qpagesetupwidget.ui.h | 40 ++++---- .../tools/uic/baseline/qprintpropertieswidget.ui.h | 6 +- .../tools/uic/baseline/qprintsettingsoutput.ui.h | 38 +++---- tests/auto/tools/uic/baseline/qprintwidget.ui.h | 18 ++-- .../tools/uic/baseline/qsqlconnectiondialog.ui.h | 24 ++--- .../auto/tools/uic/baseline/qtgradientdialog.ui.h | 2 +- .../auto/tools/uic/baseline/qtgradienteditor.ui.h | 112 ++++++++++----------- tests/auto/tools/uic/baseline/qtgradientview.ui.h | 10 +- .../tools/uic/baseline/qtgradientviewdialog.ui.h | 2 +- .../tools/uic/baseline/qtresourceeditordialog.ui.h | 22 ++-- tests/auto/tools/uic/baseline/qttoolbardialog.ui.h | 38 +++---- tests/auto/tools/uic/baseline/querywidget.ui.h | 8 +- tests/auto/tools/uic/baseline/remotecontrol.ui.h | 26 ++--- .../tools/uic/baseline/saveformastemplate.ui.h | 6 +- tests/auto/tools/uic/baseline/settings.ui.h | 14 +-- .../auto/tools/uic/baseline/signalslotdialog.ui.h | 22 ++-- tests/auto/tools/uic/baseline/sslclient.ui.h | 22 ++-- tests/auto/tools/uic/baseline/sslerrors.ui.h | 10 +- tests/auto/tools/uic/baseline/statistics.ui.h | 26 ++--- .../auto/tools/uic/baseline/stringlisteditor.ui.h | 22 ++-- .../auto/tools/uic/baseline/stylesheeteditor.ui.h | 14 +-- tests/auto/tools/uic/baseline/tabbedbrowser.ui.h | 14 +-- .../auto/tools/uic/baseline/tablewidgeteditor.ui.h | 52 +++++----- tests/auto/tools/uic/baseline/tetrixwindow.ui.h | 16 +-- tests/auto/tools/uic/baseline/textfinder.ui.h | 6 +- tests/auto/tools/uic/baseline/topicchooser.ui.h | 8 +- tests/auto/tools/uic/baseline/translatedialog.ui.h | 32 +++--- .../translation/Dialog_without_Buttons_tr.h | 2 +- .../tools/uic/baseline/translationsettings.ui.h | 8 +- .../auto/tools/uic/baseline/treewidgeteditor.ui.h | 60 +++++------ tests/auto/tools/uic/baseline/trpreviewtool.ui.h | 26 ++--- tests/auto/tools/uic/baseline/validators.ui.h | 28 +++--- .../tools/uic/baseline/wateringconfigdialog.ui.h | 46 ++++----- 103 files changed, 986 insertions(+), 986 deletions(-) diff --git a/src/tools/uic/cpp/cppwriteinitialization.cpp b/src/tools/uic/cpp/cppwriteinitialization.cpp index 518944d9d7..a59c14faf9 100644 --- a/src/tools/uic/cpp/cppwriteinitialization.cpp +++ b/src/tools/uic/cpp/cppwriteinitialization.cpp @@ -2320,7 +2320,7 @@ QString WriteInitialization::trCall(const QString &str, const QString &commentHi return QLatin1String("QString()"); QString result; - const QString comment = commentHint.isEmpty() ? QString(QLatin1Char('0')) : fixString(commentHint, m_dindent); + const QString comment = commentHint.isEmpty() ? QString(QLatin1String("Q_NULLPTR")) : fixString(commentHint, m_dindent); if (m_option.translateFunction.isEmpty()) { result = QLatin1String("QApplication::translate(\""); diff --git a/tests/auto/tools/uic/baseline/Dialog_with_Buttons_Bottom.ui.h b/tests/auto/tools/uic/baseline/Dialog_with_Buttons_Bottom.ui.h index 37f02008f1..f63995af24 100644 --- a/tests/auto/tools/uic/baseline/Dialog_with_Buttons_Bottom.ui.h +++ b/tests/auto/tools/uic/baseline/Dialog_with_Buttons_Bottom.ui.h @@ -44,7 +44,7 @@ public: void retranslateUi(QDialog *Dialog) { - Dialog->setWindowTitle(QApplication::translate("Dialog", "Dialog", 0)); + Dialog->setWindowTitle(QApplication::translate("Dialog", "Dialog", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/Dialog_with_Buttons_Right.ui.h b/tests/auto/tools/uic/baseline/Dialog_with_Buttons_Right.ui.h index 17647ba5f5..5cee346d35 100644 --- a/tests/auto/tools/uic/baseline/Dialog_with_Buttons_Right.ui.h +++ b/tests/auto/tools/uic/baseline/Dialog_with_Buttons_Right.ui.h @@ -44,7 +44,7 @@ public: void retranslateUi(QDialog *Dialog) { - Dialog->setWindowTitle(QApplication::translate("Dialog", "Dialog", 0)); + Dialog->setWindowTitle(QApplication::translate("Dialog", "Dialog", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/Dialog_without_Buttons.ui.h b/tests/auto/tools/uic/baseline/Dialog_without_Buttons.ui.h index 08b751a34c..05330c9a2a 100644 --- a/tests/auto/tools/uic/baseline/Dialog_without_Buttons.ui.h +++ b/tests/auto/tools/uic/baseline/Dialog_without_Buttons.ui.h @@ -35,7 +35,7 @@ public: void retranslateUi(QDialog *Dialog) { - Dialog->setWindowTitle(QApplication::translate("Dialog", "Dialog", 0)); + Dialog->setWindowTitle(QApplication::translate("Dialog", "Dialog", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/Main_Window.ui.h b/tests/auto/tools/uic/baseline/Main_Window.ui.h index 43459280a4..da2f4c8e07 100644 --- a/tests/auto/tools/uic/baseline/Main_Window.ui.h +++ b/tests/auto/tools/uic/baseline/Main_Window.ui.h @@ -50,7 +50,7 @@ public: void retranslateUi(QMainWindow *MainWindow) { - MainWindow->setWindowTitle(QApplication::translate("MainWindow", "MainWindow", 0)); + MainWindow->setWindowTitle(QApplication::translate("MainWindow", "MainWindow", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/Widget.ui.h b/tests/auto/tools/uic/baseline/Widget.ui.h index b5bb974423..b812386645 100644 --- a/tests/auto/tools/uic/baseline/Widget.ui.h +++ b/tests/auto/tools/uic/baseline/Widget.ui.h @@ -60,13 +60,13 @@ public: void retranslateUi(QWidget *Form) { - Form->setWindowTitle(QApplication::translate("Form", "Form", 0)); + Form->setWindowTitle(QApplication::translate("Form", "Form", Q_NULLPTR)); Alabel->setText(QApplication::translate("Form", "A label.\n" "One new line.\n" "Another new line.\n" -"Last line.", 0)); - groupBox->setTitle(QApplication::translate("Form", "A Group Box", 0)); - pushButton->setText(QApplication::translate("Form", "PushButton", 0)); +"Last line.", Q_NULLPTR)); + groupBox->setTitle(QApplication::translate("Form", "A Group Box", Q_NULLPTR)); + pushButton->setText(QApplication::translate("Form", "PushButton", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/addlinkdialog.ui.h b/tests/auto/tools/uic/baseline/addlinkdialog.ui.h index 5a26984c70..9430d47c00 100644 --- a/tests/auto/tools/uic/baseline/addlinkdialog.ui.h +++ b/tests/auto/tools/uic/baseline/addlinkdialog.ui.h @@ -100,9 +100,9 @@ public: void retranslateUi(QDialog *AddLinkDialog) { - AddLinkDialog->setWindowTitle(QApplication::translate("AddLinkDialog", "Insert Link", 0)); - label->setText(QApplication::translate("AddLinkDialog", "Title:", 0)); - label_2->setText(QApplication::translate("AddLinkDialog", "URL:", 0)); + AddLinkDialog->setWindowTitle(QApplication::translate("AddLinkDialog", "Insert Link", Q_NULLPTR)); + label->setText(QApplication::translate("AddLinkDialog", "Title:", Q_NULLPTR)); + label_2->setText(QApplication::translate("AddLinkDialog", "URL:", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/addtorrentform.ui.h b/tests/auto/tools/uic/baseline/addtorrentform.ui.h index 5aca0c4e47..9d40907ad2 100644 --- a/tests/auto/tools/uic/baseline/addtorrentform.ui.h +++ b/tests/auto/tools/uic/baseline/addtorrentform.ui.h @@ -212,23 +212,23 @@ public: void retranslateUi(QDialog *AddTorrentFile) { - AddTorrentFile->setWindowTitle(QApplication::translate("AddTorrentFile", "Add a torrent", 0)); - groupBox->setTitle(QApplication::translate("AddTorrentFile", "Select a torrent source", 0)); - label_4->setText(QApplication::translate("AddTorrentFile", "Destination:", 0)); - label_2->setText(QApplication::translate("AddTorrentFile", "Tracker URL:", 0)); - browseTorrents->setText(QApplication::translate("AddTorrentFile", "Browse", 0)); - label_5->setText(QApplication::translate("AddTorrentFile", "File(s):", 0)); - label_3->setText(QApplication::translate("AddTorrentFile", "Size:", 0)); - label_6->setText(QApplication::translate("AddTorrentFile", "Creator:", 0)); - announceUrl->setText(QApplication::translate("AddTorrentFile", "", 0)); - label->setText(QApplication::translate("AddTorrentFile", "Torrent file:", 0)); - browseDestination->setText(QApplication::translate("AddTorrentFile", "Browse", 0)); - label_7->setText(QApplication::translate("AddTorrentFile", "Comment:", 0)); - commentLabel->setText(QApplication::translate("AddTorrentFile", "", 0)); - creatorLabel->setText(QApplication::translate("AddTorrentFile", "", 0)); - sizeLabel->setText(QApplication::translate("AddTorrentFile", "0", 0)); - okButton->setText(QApplication::translate("AddTorrentFile", "&OK", 0)); - cancelButton->setText(QApplication::translate("AddTorrentFile", "&Cancel", 0)); + AddTorrentFile->setWindowTitle(QApplication::translate("AddTorrentFile", "Add a torrent", Q_NULLPTR)); + groupBox->setTitle(QApplication::translate("AddTorrentFile", "Select a torrent source", Q_NULLPTR)); + label_4->setText(QApplication::translate("AddTorrentFile", "Destination:", Q_NULLPTR)); + label_2->setText(QApplication::translate("AddTorrentFile", "Tracker URL:", Q_NULLPTR)); + browseTorrents->setText(QApplication::translate("AddTorrentFile", "Browse", Q_NULLPTR)); + label_5->setText(QApplication::translate("AddTorrentFile", "File(s):", Q_NULLPTR)); + label_3->setText(QApplication::translate("AddTorrentFile", "Size:", Q_NULLPTR)); + label_6->setText(QApplication::translate("AddTorrentFile", "Creator:", Q_NULLPTR)); + announceUrl->setText(QApplication::translate("AddTorrentFile", "", Q_NULLPTR)); + label->setText(QApplication::translate("AddTorrentFile", "Torrent file:", Q_NULLPTR)); + browseDestination->setText(QApplication::translate("AddTorrentFile", "Browse", Q_NULLPTR)); + label_7->setText(QApplication::translate("AddTorrentFile", "Comment:", Q_NULLPTR)); + commentLabel->setText(QApplication::translate("AddTorrentFile", "", Q_NULLPTR)); + creatorLabel->setText(QApplication::translate("AddTorrentFile", "", Q_NULLPTR)); + sizeLabel->setText(QApplication::translate("AddTorrentFile", "0", Q_NULLPTR)); + okButton->setText(QApplication::translate("AddTorrentFile", "&OK", Q_NULLPTR)); + cancelButton->setText(QApplication::translate("AddTorrentFile", "&Cancel", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/authenticationdialog.ui.h b/tests/auto/tools/uic/baseline/authenticationdialog.ui.h index ba888c30d6..fbc379a1c1 100644 --- a/tests/auto/tools/uic/baseline/authenticationdialog.ui.h +++ b/tests/auto/tools/uic/baseline/authenticationdialog.ui.h @@ -106,12 +106,12 @@ public: void retranslateUi(QDialog *Dialog) { - Dialog->setWindowTitle(QApplication::translate("Dialog", "Http authentication required", 0)); - label->setText(QApplication::translate("Dialog", "You need to supply a Username and a Password to access this site", 0)); - label_2->setText(QApplication::translate("Dialog", "Username:", 0)); - label_3->setText(QApplication::translate("Dialog", "Password:", 0)); - label_4->setText(QApplication::translate("Dialog", "Site:", 0)); - siteDescription->setText(QApplication::translate("Dialog", "%1 at %2", 0)); + Dialog->setWindowTitle(QApplication::translate("Dialog", "Http authentication required", Q_NULLPTR)); + label->setText(QApplication::translate("Dialog", "You need to supply a Username and a Password to access this site", Q_NULLPTR)); + label_2->setText(QApplication::translate("Dialog", "Username:", Q_NULLPTR)); + label_3->setText(QApplication::translate("Dialog", "Password:", Q_NULLPTR)); + label_4->setText(QApplication::translate("Dialog", "Site:", Q_NULLPTR)); + siteDescription->setText(QApplication::translate("Dialog", "%1 at %2", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/backside.ui.h b/tests/auto/tools/uic/baseline/backside.ui.h index 9ac2d6a442..abbf331182 100644 --- a/tests/auto/tools/uic/baseline/backside.ui.h +++ b/tests/auto/tools/uic/baseline/backside.ui.h @@ -146,40 +146,40 @@ public: void retranslateUi(QWidget *BackSide) { - BackSide->setWindowTitle(QApplication::translate("BackSide", "BackSide", 0)); - groupBox->setTitle(QApplication::translate("BackSide", "Settings", 0)); - label->setText(QApplication::translate("BackSide", "Title:", 0)); - hostName->setText(QApplication::translate("BackSide", "Pad Navigator Example", 0)); - label_2->setText(QApplication::translate("BackSide", "Modified:", 0)); - label_3->setText(QApplication::translate("BackSide", "Extent", 0)); - groupBox_2->setTitle(QApplication::translate("BackSide", "Other input", 0)); + BackSide->setWindowTitle(QApplication::translate("BackSide", "BackSide", Q_NULLPTR)); + groupBox->setTitle(QApplication::translate("BackSide", "Settings", Q_NULLPTR)); + label->setText(QApplication::translate("BackSide", "Title:", Q_NULLPTR)); + hostName->setText(QApplication::translate("BackSide", "Pad Navigator Example", Q_NULLPTR)); + label_2->setText(QApplication::translate("BackSide", "Modified:", Q_NULLPTR)); + label_3->setText(QApplication::translate("BackSide", "Extent", Q_NULLPTR)); + groupBox_2->setTitle(QApplication::translate("BackSide", "Other input", Q_NULLPTR)); QTreeWidgetItem *___qtreewidgetitem = treeWidget->headerItem(); - ___qtreewidgetitem->setText(0, QApplication::translate("BackSide", "Widgets On Graphics View", 0)); + ___qtreewidgetitem->setText(0, QApplication::translate("BackSide", "Widgets On Graphics View", Q_NULLPTR)); const bool __sortingEnabled = treeWidget->isSortingEnabled(); treeWidget->setSortingEnabled(false); QTreeWidgetItem *___qtreewidgetitem1 = treeWidget->topLevelItem(0); - ___qtreewidgetitem1->setText(0, QApplication::translate("BackSide", "QGraphicsProxyWidget", 0)); + ___qtreewidgetitem1->setText(0, QApplication::translate("BackSide", "QGraphicsProxyWidget", Q_NULLPTR)); QTreeWidgetItem *___qtreewidgetitem2 = ___qtreewidgetitem1->child(0); - ___qtreewidgetitem2->setText(0, QApplication::translate("BackSide", "QGraphicsWidget", 0)); + ___qtreewidgetitem2->setText(0, QApplication::translate("BackSide", "QGraphicsWidget", Q_NULLPTR)); QTreeWidgetItem *___qtreewidgetitem3 = ___qtreewidgetitem2->child(0); - ___qtreewidgetitem3->setText(0, QApplication::translate("BackSide", "QObject", 0)); + ___qtreewidgetitem3->setText(0, QApplication::translate("BackSide", "QObject", Q_NULLPTR)); QTreeWidgetItem *___qtreewidgetitem4 = ___qtreewidgetitem2->child(1); - ___qtreewidgetitem4->setText(0, QApplication::translate("BackSide", "QGraphicsItem", 0)); + ___qtreewidgetitem4->setText(0, QApplication::translate("BackSide", "QGraphicsItem", Q_NULLPTR)); QTreeWidgetItem *___qtreewidgetitem5 = ___qtreewidgetitem2->child(2); - ___qtreewidgetitem5->setText(0, QApplication::translate("BackSide", "QGraphicsLayoutItem", 0)); + ___qtreewidgetitem5->setText(0, QApplication::translate("BackSide", "QGraphicsLayoutItem", Q_NULLPTR)); QTreeWidgetItem *___qtreewidgetitem6 = treeWidget->topLevelItem(1); - ___qtreewidgetitem6->setText(0, QApplication::translate("BackSide", "QGraphicsGridLayout", 0)); + ___qtreewidgetitem6->setText(0, QApplication::translate("BackSide", "QGraphicsGridLayout", Q_NULLPTR)); QTreeWidgetItem *___qtreewidgetitem7 = ___qtreewidgetitem6->child(0); - ___qtreewidgetitem7->setText(0, QApplication::translate("BackSide", "QGraphicsLayout", 0)); + ___qtreewidgetitem7->setText(0, QApplication::translate("BackSide", "QGraphicsLayout", Q_NULLPTR)); QTreeWidgetItem *___qtreewidgetitem8 = ___qtreewidgetitem7->child(0); - ___qtreewidgetitem8->setText(0, QApplication::translate("BackSide", "QGraphicsLayoutItem", 0)); + ___qtreewidgetitem8->setText(0, QApplication::translate("BackSide", "QGraphicsLayoutItem", Q_NULLPTR)); QTreeWidgetItem *___qtreewidgetitem9 = treeWidget->topLevelItem(2); - ___qtreewidgetitem9->setText(0, QApplication::translate("BackSide", "QGraphicsLinearLayout", 0)); + ___qtreewidgetitem9->setText(0, QApplication::translate("BackSide", "QGraphicsLinearLayout", Q_NULLPTR)); QTreeWidgetItem *___qtreewidgetitem10 = ___qtreewidgetitem9->child(0); - ___qtreewidgetitem10->setText(0, QApplication::translate("BackSide", "QGraphicsLayout", 0)); + ___qtreewidgetitem10->setText(0, QApplication::translate("BackSide", "QGraphicsLayout", Q_NULLPTR)); QTreeWidgetItem *___qtreewidgetitem11 = ___qtreewidgetitem10->child(0); - ___qtreewidgetitem11->setText(0, QApplication::translate("BackSide", "QGraphicsLayoutItem", 0)); + ___qtreewidgetitem11->setText(0, QApplication::translate("BackSide", "QGraphicsLayoutItem", Q_NULLPTR)); treeWidget->setSortingEnabled(__sortingEnabled); } // retranslateUi diff --git a/tests/auto/tools/uic/baseline/batchtranslation.ui.h b/tests/auto/tools/uic/baseline/batchtranslation.ui.h index ebc4a5fd9e..dfcce669a5 100644 --- a/tests/auto/tools/uic/baseline/batchtranslation.ui.h +++ b/tests/auto/tools/uic/baseline/batchtranslation.ui.h @@ -221,16 +221,16 @@ public: void retranslateUi(QDialog *databaseTranslationDialog) { - databaseTranslationDialog->setWindowTitle(QApplication::translate("databaseTranslationDialog", "Qt Linguist - Batch Translation", 0)); - groupBox->setTitle(QApplication::translate("databaseTranslationDialog", "Options", 0)); - ckOnlyUntranslated->setText(QApplication::translate("databaseTranslationDialog", "Only translate entries with no translation", 0)); - ckMarkFinished->setText(QApplication::translate("databaseTranslationDialog", "Set translated entries to finished", 0)); - groupBox_2->setTitle(QApplication::translate("databaseTranslationDialog", "Phrase book preference", 0)); - moveUpButton->setText(QApplication::translate("databaseTranslationDialog", "Move up", 0)); - moveDownButton->setText(QApplication::translate("databaseTranslationDialog", "Move down", 0)); - label->setText(QApplication::translate("databaseTranslationDialog", "The batch translator will search through the selected phrasebooks in the order given above.", 0)); - runButton->setText(QApplication::translate("databaseTranslationDialog", "&Run", 0)); - cancelButton->setText(QApplication::translate("databaseTranslationDialog", "&Cancel", 0)); + databaseTranslationDialog->setWindowTitle(QApplication::translate("databaseTranslationDialog", "Qt Linguist - Batch Translation", Q_NULLPTR)); + groupBox->setTitle(QApplication::translate("databaseTranslationDialog", "Options", Q_NULLPTR)); + ckOnlyUntranslated->setText(QApplication::translate("databaseTranslationDialog", "Only translate entries with no translation", Q_NULLPTR)); + ckMarkFinished->setText(QApplication::translate("databaseTranslationDialog", "Set translated entries to finished", Q_NULLPTR)); + groupBox_2->setTitle(QApplication::translate("databaseTranslationDialog", "Phrase book preference", Q_NULLPTR)); + moveUpButton->setText(QApplication::translate("databaseTranslationDialog", "Move up", Q_NULLPTR)); + moveDownButton->setText(QApplication::translate("databaseTranslationDialog", "Move down", Q_NULLPTR)); + label->setText(QApplication::translate("databaseTranslationDialog", "The batch translator will search through the selected phrasebooks in the order given above.", Q_NULLPTR)); + runButton->setText(QApplication::translate("databaseTranslationDialog", "&Run", Q_NULLPTR)); + cancelButton->setText(QApplication::translate("databaseTranslationDialog", "&Cancel", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/bookmarkdialog.ui.h b/tests/auto/tools/uic/baseline/bookmarkdialog.ui.h index fa18ba5cda..6e62aeaec5 100644 --- a/tests/auto/tools/uic/baseline/bookmarkdialog.ui.h +++ b/tests/auto/tools/uic/baseline/bookmarkdialog.ui.h @@ -150,13 +150,13 @@ public: void retranslateUi(QDialog *BookmarkDialog) { - BookmarkDialog->setWindowTitle(QApplication::translate("BookmarkDialog", "Add Bookmark", 0)); - label->setText(QApplication::translate("BookmarkDialog", "Bookmark:", 0)); - label_2->setText(QApplication::translate("BookmarkDialog", "Add in Folder:", 0)); - toolButton->setText(QApplication::translate("BookmarkDialog", "+", 0)); + BookmarkDialog->setWindowTitle(QApplication::translate("BookmarkDialog", "Add Bookmark", Q_NULLPTR)); + label->setText(QApplication::translate("BookmarkDialog", "Bookmark:", Q_NULLPTR)); + label_2->setText(QApplication::translate("BookmarkDialog", "Add in Folder:", Q_NULLPTR)); + toolButton->setText(QApplication::translate("BookmarkDialog", "+", Q_NULLPTR)); QTreeWidgetItem *___qtreewidgetitem = bookmarkWidget->headerItem(); - ___qtreewidgetitem->setText(0, QApplication::translate("BookmarkDialog", "1", 0)); - newFolderButton->setText(QApplication::translate("BookmarkDialog", "New Folder", 0)); + ___qtreewidgetitem->setText(0, QApplication::translate("BookmarkDialog", "1", Q_NULLPTR)); + newFolderButton->setText(QApplication::translate("BookmarkDialog", "New Folder", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/bookwindow.ui.h b/tests/auto/tools/uic/baseline/bookwindow.ui.h index 1f498421c9..57ac4b3bdd 100644 --- a/tests/auto/tools/uic/baseline/bookwindow.ui.h +++ b/tests/auto/tools/uic/baseline/bookwindow.ui.h @@ -159,15 +159,15 @@ public: void retranslateUi(QMainWindow *BookWindow) { - BookWindow->setWindowTitle(QApplication::translate("BookWindow", "Books", 0)); - groupBox->setTitle(QApplication::translate("BookWindow", "Books", 0)); - groupBox_2->setTitle(QApplication::translate("BookWindow", "Details", 0)); - label_5->setText(QApplication::translate("BookWindow", "Title:", 0)); - label_2_2_2_2->setText(QApplication::translate("BookWindow", "Author: ", 0)); - label_3->setText(QApplication::translate("BookWindow", "Genre:", 0)); - label_4->setText(QApplication::translate("BookWindow", "Year:", 0)); + BookWindow->setWindowTitle(QApplication::translate("BookWindow", "Books", Q_NULLPTR)); + groupBox->setTitle(QApplication::translate("BookWindow", "Books", Q_NULLPTR)); + groupBox_2->setTitle(QApplication::translate("BookWindow", "Details", Q_NULLPTR)); + label_5->setText(QApplication::translate("BookWindow", "Title:", Q_NULLPTR)); + label_2_2_2_2->setText(QApplication::translate("BookWindow", "Author: ", Q_NULLPTR)); + label_3->setText(QApplication::translate("BookWindow", "Genre:", Q_NULLPTR)); + label_4->setText(QApplication::translate("BookWindow", "Year:", Q_NULLPTR)); yearEdit->setPrefix(QString()); - label->setText(QApplication::translate("BookWindow", "Rating:", 0)); + label->setText(QApplication::translate("BookWindow", "Rating:", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/browserwidget.ui.h b/tests/auto/tools/uic/baseline/browserwidget.ui.h index aa0e6786a0..876e99d504 100644 --- a/tests/auto/tools/uic/baseline/browserwidget.ui.h +++ b/tests/auto/tools/uic/baseline/browserwidget.ui.h @@ -156,18 +156,18 @@ public: void retranslateUi(QWidget *Browser) { - Browser->setWindowTitle(QApplication::translate("Browser", "Qt SQL Browser", 0)); - insertRowAction->setText(QApplication::translate("Browser", "&Insert Row", 0)); + Browser->setWindowTitle(QApplication::translate("Browser", "Qt SQL Browser", Q_NULLPTR)); + insertRowAction->setText(QApplication::translate("Browser", "&Insert Row", Q_NULLPTR)); #ifndef QT_NO_STATUSTIP - insertRowAction->setStatusTip(QApplication::translate("Browser", "Inserts a new Row", 0)); + insertRowAction->setStatusTip(QApplication::translate("Browser", "Inserts a new Row", Q_NULLPTR)); #endif // QT_NO_STATUSTIP - deleteRowAction->setText(QApplication::translate("Browser", "&Delete Row", 0)); + deleteRowAction->setText(QApplication::translate("Browser", "&Delete Row", Q_NULLPTR)); #ifndef QT_NO_STATUSTIP - deleteRowAction->setStatusTip(QApplication::translate("Browser", "Deletes the current Row", 0)); + deleteRowAction->setStatusTip(QApplication::translate("Browser", "Deletes the current Row", Q_NULLPTR)); #endif // QT_NO_STATUSTIP - groupBox->setTitle(QApplication::translate("Browser", "SQL Query", 0)); - clearButton->setText(QApplication::translate("Browser", "&Clear", 0)); - submitButton->setText(QApplication::translate("Browser", "&Submit", 0)); + groupBox->setTitle(QApplication::translate("Browser", "SQL Query", Q_NULLPTR)); + clearButton->setText(QApplication::translate("Browser", "&Clear", Q_NULLPTR)); + submitButton->setText(QApplication::translate("Browser", "&Submit", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/bug18156QTreeWidget.ui.h b/tests/auto/tools/uic/baseline/bug18156QTreeWidget.ui.h index 8bee2c3a02..d72ca81be6 100644 --- a/tests/auto/tools/uic/baseline/bug18156QTreeWidget.ui.h +++ b/tests/auto/tools/uic/baseline/bug18156QTreeWidget.ui.h @@ -59,9 +59,9 @@ public: void retranslateUi(QDialog *Dialog) { - Dialog->setWindowTitle(QApplication::translate("Dialog", "Dialog", 0)); + Dialog->setWindowTitle(QApplication::translate("Dialog", "Dialog", Q_NULLPTR)); QTreeWidgetItem *___qtreewidgetitem = treeWidget->headerItem(); - ___qtreewidgetitem->setText(1, QApplication::translate("Dialog", "4", 0)); + ___qtreewidgetitem->setText(1, QApplication::translate("Dialog", "4", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/calculator.ui.h b/tests/auto/tools/uic/baseline/calculator.ui.h index 7ac878e3fb..88644eaaaf 100644 --- a/tests/auto/tools/uic/baseline/calculator.ui.h +++ b/tests/auto/tools/uic/baseline/calculator.ui.h @@ -159,34 +159,34 @@ public: void retranslateUi(QWidget *Calculator) { - Calculator->setWindowTitle(QApplication::translate("Calculator", "Calculator", 0)); - backspaceButton->setText(QApplication::translate("Calculator", "Backspace", 0)); - clearButton->setText(QApplication::translate("Calculator", "Clear", 0)); - clearAllButton->setText(QApplication::translate("Calculator", "Clear All", 0)); - clearMemoryButton->setText(QApplication::translate("Calculator", "MC", 0)); - readMemoryButton->setText(QApplication::translate("Calculator", "MR", 0)); - setMemoryButton->setText(QApplication::translate("Calculator", "MS", 0)); - addToMemoryButton->setText(QApplication::translate("Calculator", "M+", 0)); - sevenButton->setText(QApplication::translate("Calculator", "7", 0)); - eightButton->setText(QApplication::translate("Calculator", "8", 0)); - nineButton->setText(QApplication::translate("Calculator", "9", 0)); - fourButton->setText(QApplication::translate("Calculator", "4", 0)); - fiveButton->setText(QApplication::translate("Calculator", "5", 0)); - sixButton->setText(QApplication::translate("Calculator", "6", 0)); - oneButton->setText(QApplication::translate("Calculator", "1", 0)); - twoButton->setText(QApplication::translate("Calculator", "2", 0)); - threeButton->setText(QApplication::translate("Calculator", "3", 0)); - zeroButton->setText(QApplication::translate("Calculator", "0", 0)); - pointButton->setText(QApplication::translate("Calculator", ".", 0)); - changeSignButton->setText(QApplication::translate("Calculator", "+-", 0)); - plusButton->setText(QApplication::translate("Calculator", "+", 0)); - divisionButton->setText(QApplication::translate("Calculator", "/", 0)); - timesButton->setText(QApplication::translate("Calculator", "*", 0)); - minusButton->setText(QApplication::translate("Calculator", "-", 0)); - squareRootButton->setText(QApplication::translate("Calculator", "Sqrt", 0)); - powerButton->setText(QApplication::translate("Calculator", "x^2", 0)); - reciprocalButton->setText(QApplication::translate("Calculator", "1/x", 0)); - equalButton->setText(QApplication::translate("Calculator", "=", 0)); + Calculator->setWindowTitle(QApplication::translate("Calculator", "Calculator", Q_NULLPTR)); + backspaceButton->setText(QApplication::translate("Calculator", "Backspace", Q_NULLPTR)); + clearButton->setText(QApplication::translate("Calculator", "Clear", Q_NULLPTR)); + clearAllButton->setText(QApplication::translate("Calculator", "Clear All", Q_NULLPTR)); + clearMemoryButton->setText(QApplication::translate("Calculator", "MC", Q_NULLPTR)); + readMemoryButton->setText(QApplication::translate("Calculator", "MR", Q_NULLPTR)); + setMemoryButton->setText(QApplication::translate("Calculator", "MS", Q_NULLPTR)); + addToMemoryButton->setText(QApplication::translate("Calculator", "M+", Q_NULLPTR)); + sevenButton->setText(QApplication::translate("Calculator", "7", Q_NULLPTR)); + eightButton->setText(QApplication::translate("Calculator", "8", Q_NULLPTR)); + nineButton->setText(QApplication::translate("Calculator", "9", Q_NULLPTR)); + fourButton->setText(QApplication::translate("Calculator", "4", Q_NULLPTR)); + fiveButton->setText(QApplication::translate("Calculator", "5", Q_NULLPTR)); + sixButton->setText(QApplication::translate("Calculator", "6", Q_NULLPTR)); + oneButton->setText(QApplication::translate("Calculator", "1", Q_NULLPTR)); + twoButton->setText(QApplication::translate("Calculator", "2", Q_NULLPTR)); + threeButton->setText(QApplication::translate("Calculator", "3", Q_NULLPTR)); + zeroButton->setText(QApplication::translate("Calculator", "0", Q_NULLPTR)); + pointButton->setText(QApplication::translate("Calculator", ".", Q_NULLPTR)); + changeSignButton->setText(QApplication::translate("Calculator", "+-", Q_NULLPTR)); + plusButton->setText(QApplication::translate("Calculator", "+", Q_NULLPTR)); + divisionButton->setText(QApplication::translate("Calculator", "/", Q_NULLPTR)); + timesButton->setText(QApplication::translate("Calculator", "*", Q_NULLPTR)); + minusButton->setText(QApplication::translate("Calculator", "-", Q_NULLPTR)); + squareRootButton->setText(QApplication::translate("Calculator", "Sqrt", Q_NULLPTR)); + powerButton->setText(QApplication::translate("Calculator", "x^2", Q_NULLPTR)); + reciprocalButton->setText(QApplication::translate("Calculator", "1/x", Q_NULLPTR)); + equalButton->setText(QApplication::translate("Calculator", "=", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/calculatorform.ui.h b/tests/auto/tools/uic/baseline/calculatorform.ui.h index 1383244504..3688c79d04 100644 --- a/tests/auto/tools/uic/baseline/calculatorform.ui.h +++ b/tests/auto/tools/uic/baseline/calculatorform.ui.h @@ -173,13 +173,13 @@ public: void retranslateUi(QWidget *CalculatorForm) { - CalculatorForm->setWindowTitle(QApplication::translate("CalculatorForm", "Calculator Builder", 0)); - label->setText(QApplication::translate("CalculatorForm", "Input 1", 0)); - label_3->setText(QApplication::translate("CalculatorForm", "+", 0)); - label_2->setText(QApplication::translate("CalculatorForm", "Input 2", 0)); - label_3_2->setText(QApplication::translate("CalculatorForm", "=", 0)); - label_2_2_2->setText(QApplication::translate("CalculatorForm", "Output", 0)); - outputWidget->setText(QApplication::translate("CalculatorForm", "0", 0)); + CalculatorForm->setWindowTitle(QApplication::translate("CalculatorForm", "Calculator Builder", Q_NULLPTR)); + label->setText(QApplication::translate("CalculatorForm", "Input 1", Q_NULLPTR)); + label_3->setText(QApplication::translate("CalculatorForm", "+", Q_NULLPTR)); + label_2->setText(QApplication::translate("CalculatorForm", "Input 2", Q_NULLPTR)); + label_3_2->setText(QApplication::translate("CalculatorForm", "=", Q_NULLPTR)); + label_2_2_2->setText(QApplication::translate("CalculatorForm", "Output", Q_NULLPTR)); + outputWidget->setText(QApplication::translate("CalculatorForm", "0", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/certificateinfo.ui.h b/tests/auto/tools/uic/baseline/certificateinfo.ui.h index 9b16110d33..183b89aaff 100644 --- a/tests/auto/tools/uic/baseline/certificateinfo.ui.h +++ b/tests/auto/tools/uic/baseline/certificateinfo.ui.h @@ -93,9 +93,9 @@ public: void retranslateUi(QDialog *CertificateInfo) { - CertificateInfo->setWindowTitle(QApplication::translate("CertificateInfo", "Display Certificate Information", 0)); - groupBox->setTitle(QApplication::translate("CertificateInfo", "Certification Path", 0)); - groupBox_2->setTitle(QApplication::translate("CertificateInfo", "Certificate Information", 0)); + CertificateInfo->setWindowTitle(QApplication::translate("CertificateInfo", "Display Certificate Information", Q_NULLPTR)); + groupBox->setTitle(QApplication::translate("CertificateInfo", "Certification Path", Q_NULLPTR)); + groupBox_2->setTitle(QApplication::translate("CertificateInfo", "Certificate Information", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/chatdialog.ui.h b/tests/auto/tools/uic/baseline/chatdialog.ui.h index e917eb9fb1..b678b85eb9 100644 --- a/tests/auto/tools/uic/baseline/chatdialog.ui.h +++ b/tests/auto/tools/uic/baseline/chatdialog.ui.h @@ -100,8 +100,8 @@ public: void retranslateUi(QDialog *ChatDialog) { - ChatDialog->setWindowTitle(QApplication::translate("ChatDialog", "Chat", 0)); - label->setText(QApplication::translate("ChatDialog", "Message:", 0)); + ChatDialog->setWindowTitle(QApplication::translate("ChatDialog", "Chat", Q_NULLPTR)); + label->setText(QApplication::translate("ChatDialog", "Message:", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/chatmainwindow.ui.h b/tests/auto/tools/uic/baseline/chatmainwindow.ui.h index b3675746bf..8cfd9b4851 100644 --- a/tests/auto/tools/uic/baseline/chatmainwindow.ui.h +++ b/tests/auto/tools/uic/baseline/chatmainwindow.ui.h @@ -149,25 +149,25 @@ public: void retranslateUi(QMainWindow *ChatMainWindow) { - ChatMainWindow->setWindowTitle(QApplication::translate("ChatMainWindow", "Qt D-Bus Chat", 0)); - actionQuit->setText(QApplication::translate("ChatMainWindow", "Quit", 0)); - actionQuit->setShortcut(QApplication::translate("ChatMainWindow", "Ctrl+Q", 0)); - actionAboutQt->setText(QApplication::translate("ChatMainWindow", "About Qt...", 0)); - actionChangeNickname->setText(QApplication::translate("ChatMainWindow", "Change nickname...", 0)); - actionChangeNickname->setShortcut(QApplication::translate("ChatMainWindow", "Ctrl+N", 0)); + ChatMainWindow->setWindowTitle(QApplication::translate("ChatMainWindow", "Qt D-Bus Chat", Q_NULLPTR)); + actionQuit->setText(QApplication::translate("ChatMainWindow", "Quit", Q_NULLPTR)); + actionQuit->setShortcut(QApplication::translate("ChatMainWindow", "Ctrl+Q", Q_NULLPTR)); + actionAboutQt->setText(QApplication::translate("ChatMainWindow", "About Qt...", Q_NULLPTR)); + actionChangeNickname->setText(QApplication::translate("ChatMainWindow", "Change nickname...", Q_NULLPTR)); + actionChangeNickname->setShortcut(QApplication::translate("ChatMainWindow", "Ctrl+N", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - chatHistory->setToolTip(QApplication::translate("ChatMainWindow", "Messages sent and received from other users", 0)); + chatHistory->setToolTip(QApplication::translate("ChatMainWindow", "Messages sent and received from other users", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - label->setText(QApplication::translate("ChatMainWindow", "Message:", 0)); + label->setText(QApplication::translate("ChatMainWindow", "Message:", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - sendButton->setToolTip(QApplication::translate("ChatMainWindow", "Sends a message to other people", 0)); + sendButton->setToolTip(QApplication::translate("ChatMainWindow", "Sends a message to other people", Q_NULLPTR)); #endif // QT_NO_TOOLTIP #ifndef QT_NO_WHATSTHIS sendButton->setWhatsThis(QString()); #endif // QT_NO_WHATSTHIS - sendButton->setText(QApplication::translate("ChatMainWindow", "Send", 0)); - menuQuit->setTitle(QApplication::translate("ChatMainWindow", "Help", 0)); - menuFile->setTitle(QApplication::translate("ChatMainWindow", "File", 0)); + sendButton->setText(QApplication::translate("ChatMainWindow", "Send", Q_NULLPTR)); + menuQuit->setTitle(QApplication::translate("ChatMainWindow", "Help", Q_NULLPTR)); + menuFile->setTitle(QApplication::translate("ChatMainWindow", "File", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/chatsetnickname.ui.h b/tests/auto/tools/uic/baseline/chatsetnickname.ui.h index e9ebca5f7f..aa023a56fb 100644 --- a/tests/auto/tools/uic/baseline/chatsetnickname.ui.h +++ b/tests/auto/tools/uic/baseline/chatsetnickname.ui.h @@ -115,10 +115,10 @@ public: void retranslateUi(QDialog *NicknameDialog) { - NicknameDialog->setWindowTitle(QApplication::translate("NicknameDialog", "Set nickname", 0)); - label->setText(QApplication::translate("NicknameDialog", "New nickname:", 0)); - okButton->setText(QApplication::translate("NicknameDialog", "OK", 0)); - cancelButton->setText(QApplication::translate("NicknameDialog", "Cancel", 0)); + NicknameDialog->setWindowTitle(QApplication::translate("NicknameDialog", "Set nickname", Q_NULLPTR)); + label->setText(QApplication::translate("NicknameDialog", "New nickname:", Q_NULLPTR)); + okButton->setText(QApplication::translate("NicknameDialog", "OK", Q_NULLPTR)); + cancelButton->setText(QApplication::translate("NicknameDialog", "Cancel", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/config.ui.h b/tests/auto/tools/uic/baseline/config.ui.h index 2d9003b4b9..3e28443913 100644 --- a/tests/auto/tools/uic/baseline/config.ui.h +++ b/tests/auto/tools/uic/baseline/config.ui.h @@ -713,46 +713,46 @@ public: void retranslateUi(QDialog *Config) { - Config->setWindowTitle(QApplication::translate("Config", "Configure", 0)); - ButtonGroup1->setTitle(QApplication::translate("Config", "Size", 0)); - size_176_220->setText(QApplication::translate("Config", "176x220 \"SmartPhone\"", 0)); - size_240_320->setText(QApplication::translate("Config", "240x320 \"PDA\"", 0)); - size_320_240->setText(QApplication::translate("Config", "320x240 \"TV\" / \"QVGA\"", 0)); - size_640_480->setText(QApplication::translate("Config", "640x480 \"VGA\"", 0)); - size_800_600->setText(QApplication::translate("Config", "800x600", 0)); - size_1024_768->setText(QApplication::translate("Config", "1024x768", 0)); - size_custom->setText(QApplication::translate("Config", "Custom", 0)); - ButtonGroup2->setTitle(QApplication::translate("Config", "Depth", 0)); - depth_1->setText(QApplication::translate("Config", "1 bit monochrome", 0)); - depth_4gray->setText(QApplication::translate("Config", "4 bit grayscale", 0)); - depth_8->setText(QApplication::translate("Config", "8 bit", 0)); - depth_12->setText(QApplication::translate("Config", "12 (16) bit", 0)); - depth_15->setText(QApplication::translate("Config", "15 bit", 0)); - depth_16->setText(QApplication::translate("Config", "16 bit", 0)); - depth_18->setText(QApplication::translate("Config", "18 bit", 0)); - depth_24->setText(QApplication::translate("Config", "24 bit", 0)); - depth_32->setText(QApplication::translate("Config", "32 bit", 0)); - depth_32_argb->setText(QApplication::translate("Config", "32 bit ARGB", 0)); - TextLabel1_3->setText(QApplication::translate("Config", "Skin", 0)); + Config->setWindowTitle(QApplication::translate("Config", "Configure", Q_NULLPTR)); + ButtonGroup1->setTitle(QApplication::translate("Config", "Size", Q_NULLPTR)); + size_176_220->setText(QApplication::translate("Config", "176x220 \"SmartPhone\"", Q_NULLPTR)); + size_240_320->setText(QApplication::translate("Config", "240x320 \"PDA\"", Q_NULLPTR)); + size_320_240->setText(QApplication::translate("Config", "320x240 \"TV\" / \"QVGA\"", Q_NULLPTR)); + size_640_480->setText(QApplication::translate("Config", "640x480 \"VGA\"", Q_NULLPTR)); + size_800_600->setText(QApplication::translate("Config", "800x600", Q_NULLPTR)); + size_1024_768->setText(QApplication::translate("Config", "1024x768", Q_NULLPTR)); + size_custom->setText(QApplication::translate("Config", "Custom", Q_NULLPTR)); + ButtonGroup2->setTitle(QApplication::translate("Config", "Depth", Q_NULLPTR)); + depth_1->setText(QApplication::translate("Config", "1 bit monochrome", Q_NULLPTR)); + depth_4gray->setText(QApplication::translate("Config", "4 bit grayscale", Q_NULLPTR)); + depth_8->setText(QApplication::translate("Config", "8 bit", Q_NULLPTR)); + depth_12->setText(QApplication::translate("Config", "12 (16) bit", Q_NULLPTR)); + depth_15->setText(QApplication::translate("Config", "15 bit", Q_NULLPTR)); + depth_16->setText(QApplication::translate("Config", "16 bit", Q_NULLPTR)); + depth_18->setText(QApplication::translate("Config", "18 bit", Q_NULLPTR)); + depth_24->setText(QApplication::translate("Config", "24 bit", Q_NULLPTR)); + depth_32->setText(QApplication::translate("Config", "32 bit", Q_NULLPTR)); + depth_32_argb->setText(QApplication::translate("Config", "32 bit ARGB", Q_NULLPTR)); + TextLabel1_3->setText(QApplication::translate("Config", "Skin", Q_NULLPTR)); skin->clear(); skin->insertItems(0, QStringList() - << QApplication::translate("Config", "None", 0) + << QApplication::translate("Config", "None", Q_NULLPTR) ); - touchScreen->setText(QApplication::translate("Config", "Emulate touch screen (no mouse move)", 0)); - lcdScreen->setText(QApplication::translate("Config", "Emulate LCD screen (Only with fixed zoom of 3.0 times magnification)", 0)); - TextLabel1->setText(QApplication::translate("Config", "

Note that any applications using the virtual framebuffer will be terminated if you change the Size or Depth above. You may freely modify the Gamma below.", 0)); - GroupBox1->setTitle(QApplication::translate("Config", "Gamma", 0)); - TextLabel3->setText(QApplication::translate("Config", "Blue", 0)); - blabel->setText(QApplication::translate("Config", "1.0", 0)); - TextLabel2->setText(QApplication::translate("Config", "Green", 0)); - glabel->setText(QApplication::translate("Config", "1.0", 0)); - TextLabel7->setText(QApplication::translate("Config", "All", 0)); - TextLabel8->setText(QApplication::translate("Config", "1.0", 0)); - TextLabel1_2->setText(QApplication::translate("Config", "Red", 0)); - rlabel->setText(QApplication::translate("Config", "1.0", 0)); - PushButton3->setText(QApplication::translate("Config", "Set all to 1.0", 0)); - buttonOk->setText(QApplication::translate("Config", "&OK", 0)); - buttonCancel->setText(QApplication::translate("Config", "&Cancel", 0)); + touchScreen->setText(QApplication::translate("Config", "Emulate touch screen (no mouse move)", Q_NULLPTR)); + lcdScreen->setText(QApplication::translate("Config", "Emulate LCD screen (Only with fixed zoom of 3.0 times magnification)", Q_NULLPTR)); + TextLabel1->setText(QApplication::translate("Config", "

Note that any applications using the virtual framebuffer will be terminated if you change the Size or Depth above. You may freely modify the Gamma below.", Q_NULLPTR)); + GroupBox1->setTitle(QApplication::translate("Config", "Gamma", Q_NULLPTR)); + TextLabel3->setText(QApplication::translate("Config", "Blue", Q_NULLPTR)); + blabel->setText(QApplication::translate("Config", "1.0", Q_NULLPTR)); + TextLabel2->setText(QApplication::translate("Config", "Green", Q_NULLPTR)); + glabel->setText(QApplication::translate("Config", "1.0", Q_NULLPTR)); + TextLabel7->setText(QApplication::translate("Config", "All", Q_NULLPTR)); + TextLabel8->setText(QApplication::translate("Config", "1.0", Q_NULLPTR)); + TextLabel1_2->setText(QApplication::translate("Config", "Red", Q_NULLPTR)); + rlabel->setText(QApplication::translate("Config", "1.0", Q_NULLPTR)); + PushButton3->setText(QApplication::translate("Config", "Set all to 1.0", Q_NULLPTR)); + buttonOk->setText(QApplication::translate("Config", "&OK", Q_NULLPTR)); + buttonCancel->setText(QApplication::translate("Config", "&Cancel", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/connectdialog.ui.h b/tests/auto/tools/uic/baseline/connectdialog.ui.h index b01238c344..384f406582 100644 --- a/tests/auto/tools/uic/baseline/connectdialog.ui.h +++ b/tests/auto/tools/uic/baseline/connectdialog.ui.h @@ -129,12 +129,12 @@ public: void retranslateUi(QDialog *ConnectDialog) { - ConnectDialog->setWindowTitle(QApplication::translate("ConnectDialog", "Configure Connection", 0)); - signalGroupBox->setTitle(QApplication::translate("ConnectDialog", "GroupBox", 0)); - editSignalsButton->setText(QApplication::translate("ConnectDialog", "Edit...", 0)); - slotGroupBox->setTitle(QApplication::translate("ConnectDialog", "GroupBox", 0)); - editSlotsButton->setText(QApplication::translate("ConnectDialog", "Edit...", 0)); - showAllCheckBox->setText(QApplication::translate("ConnectDialog", "Show signals and slots inherited from QWidget", 0)); + ConnectDialog->setWindowTitle(QApplication::translate("ConnectDialog", "Configure Connection", Q_NULLPTR)); + signalGroupBox->setTitle(QApplication::translate("ConnectDialog", "GroupBox", Q_NULLPTR)); + editSignalsButton->setText(QApplication::translate("ConnectDialog", "Edit...", Q_NULLPTR)); + slotGroupBox->setTitle(QApplication::translate("ConnectDialog", "GroupBox", Q_NULLPTR)); + editSlotsButton->setText(QApplication::translate("ConnectDialog", "Edit...", Q_NULLPTR)); + showAllCheckBox->setText(QApplication::translate("ConnectDialog", "Show signals and slots inherited from QWidget", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/controller.ui.h b/tests/auto/tools/uic/baseline/controller.ui.h index e66c3622be..6f3162c5c6 100644 --- a/tests/auto/tools/uic/baseline/controller.ui.h +++ b/tests/auto/tools/uic/baseline/controller.ui.h @@ -78,12 +78,12 @@ public: void retranslateUi(QWidget *Controller) { - Controller->setWindowTitle(QApplication::translate("Controller", "Controller", 0)); - label->setText(QApplication::translate("Controller", "Controller", 0)); - decelerate->setText(QApplication::translate("Controller", "Decelerate", 0)); - accelerate->setText(QApplication::translate("Controller", "Accelerate", 0)); - right->setText(QApplication::translate("Controller", "Right", 0)); - left->setText(QApplication::translate("Controller", "Left", 0)); + Controller->setWindowTitle(QApplication::translate("Controller", "Controller", Q_NULLPTR)); + label->setText(QApplication::translate("Controller", "Controller", Q_NULLPTR)); + decelerate->setText(QApplication::translate("Controller", "Decelerate", Q_NULLPTR)); + accelerate->setText(QApplication::translate("Controller", "Accelerate", Q_NULLPTR)); + right->setText(QApplication::translate("Controller", "Right", Q_NULLPTR)); + left->setText(QApplication::translate("Controller", "Left", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/cookies.ui.h b/tests/auto/tools/uic/baseline/cookies.ui.h index a47b2b9969..f1c7a6a4f9 100644 --- a/tests/auto/tools/uic/baseline/cookies.ui.h +++ b/tests/auto/tools/uic/baseline/cookies.ui.h @@ -93,9 +93,9 @@ public: void retranslateUi(QDialog *CookiesDialog) { - CookiesDialog->setWindowTitle(QApplication::translate("CookiesDialog", "Cookies", 0)); - removeButton->setText(QApplication::translate("CookiesDialog", "&Remove", 0)); - removeAllButton->setText(QApplication::translate("CookiesDialog", "Remove &All Cookies", 0)); + CookiesDialog->setWindowTitle(QApplication::translate("CookiesDialog", "Cookies", Q_NULLPTR)); + removeButton->setText(QApplication::translate("CookiesDialog", "&Remove", Q_NULLPTR)); + removeAllButton->setText(QApplication::translate("CookiesDialog", "Remove &All Cookies", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/cookiesexceptions.ui.h b/tests/auto/tools/uic/baseline/cookiesexceptions.ui.h index 0c6c6cf307..a86c40d289 100644 --- a/tests/auto/tools/uic/baseline/cookiesexceptions.ui.h +++ b/tests/auto/tools/uic/baseline/cookiesexceptions.ui.h @@ -160,15 +160,15 @@ public: void retranslateUi(QDialog *CookiesExceptionsDialog) { - CookiesExceptionsDialog->setWindowTitle(QApplication::translate("CookiesExceptionsDialog", "Cookie Exceptions", 0)); - newExceptionGroupBox->setTitle(QApplication::translate("CookiesExceptionsDialog", "New Exception", 0)); - label->setText(QApplication::translate("CookiesExceptionsDialog", "Domain:", 0)); - blockButton->setText(QApplication::translate("CookiesExceptionsDialog", "Block", 0)); - allowForSessionButton->setText(QApplication::translate("CookiesExceptionsDialog", "Allow For Session", 0)); - allowButton->setText(QApplication::translate("CookiesExceptionsDialog", "Allow", 0)); - ExceptionsGroupBox->setTitle(QApplication::translate("CookiesExceptionsDialog", "Exceptions", 0)); - removeButton->setText(QApplication::translate("CookiesExceptionsDialog", "&Remove", 0)); - removeAllButton->setText(QApplication::translate("CookiesExceptionsDialog", "Remove &All", 0)); + CookiesExceptionsDialog->setWindowTitle(QApplication::translate("CookiesExceptionsDialog", "Cookie Exceptions", Q_NULLPTR)); + newExceptionGroupBox->setTitle(QApplication::translate("CookiesExceptionsDialog", "New Exception", Q_NULLPTR)); + label->setText(QApplication::translate("CookiesExceptionsDialog", "Domain:", Q_NULLPTR)); + blockButton->setText(QApplication::translate("CookiesExceptionsDialog", "Block", Q_NULLPTR)); + allowForSessionButton->setText(QApplication::translate("CookiesExceptionsDialog", "Allow For Session", Q_NULLPTR)); + allowButton->setText(QApplication::translate("CookiesExceptionsDialog", "Allow", Q_NULLPTR)); + ExceptionsGroupBox->setTitle(QApplication::translate("CookiesExceptionsDialog", "Exceptions", Q_NULLPTR)); + removeButton->setText(QApplication::translate("CookiesExceptionsDialog", "&Remove", Q_NULLPTR)); + removeAllButton->setText(QApplication::translate("CookiesExceptionsDialog", "Remove &All", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/default.ui.h b/tests/auto/tools/uic/baseline/default.ui.h index b9e1475d70..03d97f86f1 100644 --- a/tests/auto/tools/uic/baseline/default.ui.h +++ b/tests/auto/tools/uic/baseline/default.ui.h @@ -219,88 +219,88 @@ public: void retranslateUi(QMainWindow *MainWindow) { - MainWindow->setWindowTitle(QApplication::translate("MainWindow", "MainWindow", 0)); - exitAction->setText(QApplication::translate("MainWindow", "&Exit", 0)); - aboutQtAction->setText(QApplication::translate("MainWindow", "About Qt", 0)); - editStyleAction->setText(QApplication::translate("MainWindow", "Edit &Style", 0)); - aboutAction->setText(QApplication::translate("MainWindow", "About", 0)); - nameLabel->setText(QApplication::translate("MainWindow", "&Name:", 0)); + MainWindow->setWindowTitle(QApplication::translate("MainWindow", "MainWindow", Q_NULLPTR)); + exitAction->setText(QApplication::translate("MainWindow", "&Exit", Q_NULLPTR)); + aboutQtAction->setText(QApplication::translate("MainWindow", "About Qt", Q_NULLPTR)); + editStyleAction->setText(QApplication::translate("MainWindow", "Edit &Style", Q_NULLPTR)); + aboutAction->setText(QApplication::translate("MainWindow", "About", Q_NULLPTR)); + nameLabel->setText(QApplication::translate("MainWindow", "&Name:", Q_NULLPTR)); nameCombo->clear(); nameCombo->insertItems(0, QStringList() - << QApplication::translate("MainWindow", "Girish", 0) - << QApplication::translate("MainWindow", "Jasmin", 0) - << QApplication::translate("MainWindow", "Simon", 0) - << QApplication::translate("MainWindow", "Zack", 0) + << QApplication::translate("MainWindow", "Girish", Q_NULLPTR) + << QApplication::translate("MainWindow", "Jasmin", Q_NULLPTR) + << QApplication::translate("MainWindow", "Simon", Q_NULLPTR) + << QApplication::translate("MainWindow", "Zack", Q_NULLPTR) ); #ifndef QT_NO_TOOLTIP - nameCombo->setToolTip(QApplication::translate("MainWindow", "Specify your name", 0)); + nameCombo->setToolTip(QApplication::translate("MainWindow", "Specify your name", Q_NULLPTR)); #endif // QT_NO_TOOLTIP #ifndef QT_NO_TOOLTIP - femaleRadioButton->setToolTip(QApplication::translate("MainWindow", "Check this if you are female", 0)); + femaleRadioButton->setToolTip(QApplication::translate("MainWindow", "Check this if you are female", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - femaleRadioButton->setText(QApplication::translate("MainWindow", "&Female", 0)); + femaleRadioButton->setText(QApplication::translate("MainWindow", "&Female", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - agreeCheckBox->setToolTip(QApplication::translate("MainWindow", "Please read the license before checking this", 0)); + agreeCheckBox->setToolTip(QApplication::translate("MainWindow", "Please read the license before checking this", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - agreeCheckBox->setText(QApplication::translate("MainWindow", "I &accept the terms and conditions", 0)); + agreeCheckBox->setText(QApplication::translate("MainWindow", "I &accept the terms and conditions", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - maleRadioButton->setToolTip(QApplication::translate("MainWindow", "Check this if you are male", 0)); + maleRadioButton->setToolTip(QApplication::translate("MainWindow", "Check this if you are male", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - maleRadioButton->setText(QApplication::translate("MainWindow", "&Male", 0)); - genderLabel->setText(QApplication::translate("MainWindow", "Gender:", 0)); + maleRadioButton->setText(QApplication::translate("MainWindow", "&Male", Q_NULLPTR)); + genderLabel->setText(QApplication::translate("MainWindow", "Gender:", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - ageSpinBox->setToolTip(QApplication::translate("MainWindow", "Specify your age", 0)); + ageSpinBox->setToolTip(QApplication::translate("MainWindow", "Specify your age", Q_NULLPTR)); #endif // QT_NO_TOOLTIP #ifndef QT_NO_STATUSTIP - ageSpinBox->setStatusTip(QApplication::translate("MainWindow", "Specify your age here", 0)); + ageSpinBox->setStatusTip(QApplication::translate("MainWindow", "Specify your age here", Q_NULLPTR)); #endif // QT_NO_STATUSTIP - ageLabel->setText(QApplication::translate("MainWindow", "&Age:", 0)); - passwordLabel->setText(QApplication::translate("MainWindow", "&Password:", 0)); + ageLabel->setText(QApplication::translate("MainWindow", "&Age:", Q_NULLPTR)); + passwordLabel->setText(QApplication::translate("MainWindow", "&Password:", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - passwordEdit->setToolTip(QApplication::translate("MainWindow", "Specify your password", 0)); + passwordEdit->setToolTip(QApplication::translate("MainWindow", "Specify your password", Q_NULLPTR)); #endif // QT_NO_TOOLTIP #ifndef QT_NO_STATUSTIP - passwordEdit->setStatusTip(QApplication::translate("MainWindow", "Specify your password here", 0)); + passwordEdit->setStatusTip(QApplication::translate("MainWindow", "Specify your password here", Q_NULLPTR)); #endif // QT_NO_STATUSTIP - passwordEdit->setText(QApplication::translate("MainWindow", "Password", 0)); - label->setText(QApplication::translate("MainWindow", "Profession", 0)); - countryLabel->setText(QApplication::translate("MainWindow", "&Country", 0)); + passwordEdit->setText(QApplication::translate("MainWindow", "Password", Q_NULLPTR)); + label->setText(QApplication::translate("MainWindow", "Profession", Q_NULLPTR)); + countryLabel->setText(QApplication::translate("MainWindow", "&Country", Q_NULLPTR)); const bool __sortingEnabled = professionList->isSortingEnabled(); professionList->setSortingEnabled(false); QListWidgetItem *___qlistwidgetitem = professionList->item(0); - ___qlistwidgetitem->setText(QApplication::translate("MainWindow", "Developer", 0)); + ___qlistwidgetitem->setText(QApplication::translate("MainWindow", "Developer", Q_NULLPTR)); QListWidgetItem *___qlistwidgetitem1 = professionList->item(1); - ___qlistwidgetitem1->setText(QApplication::translate("MainWindow", "Student", 0)); + ___qlistwidgetitem1->setText(QApplication::translate("MainWindow", "Student", Q_NULLPTR)); QListWidgetItem *___qlistwidgetitem2 = professionList->item(2); - ___qlistwidgetitem2->setText(QApplication::translate("MainWindow", "Fisherman", 0)); + ___qlistwidgetitem2->setText(QApplication::translate("MainWindow", "Fisherman", Q_NULLPTR)); professionList->setSortingEnabled(__sortingEnabled); #ifndef QT_NO_TOOLTIP - professionList->setToolTip(QApplication::translate("MainWindow", "Select your profession", 0)); + professionList->setToolTip(QApplication::translate("MainWindow", "Select your profession", Q_NULLPTR)); #endif // QT_NO_TOOLTIP #ifndef QT_NO_STATUSTIP - professionList->setStatusTip(QApplication::translate("MainWindow", "Select your profession", 0)); + professionList->setStatusTip(QApplication::translate("MainWindow", "Select your profession", Q_NULLPTR)); #endif // QT_NO_STATUSTIP #ifndef QT_NO_WHATSTHIS - professionList->setWhatsThis(QApplication::translate("MainWindow", "Select your profession", 0)); + professionList->setWhatsThis(QApplication::translate("MainWindow", "Select your profession", Q_NULLPTR)); #endif // QT_NO_WHATSTHIS countryCombo->clear(); countryCombo->insertItems(0, QStringList() - << QApplication::translate("MainWindow", "Germany", 0) - << QApplication::translate("MainWindow", "India", 0) - << QApplication::translate("MainWindow", "Norway", 0) - << QApplication::translate("MainWindow", "United States Of America", 0) - << QApplication::translate("MainWindow", "United Kingdom", 0) + << QApplication::translate("MainWindow", "Germany", Q_NULLPTR) + << QApplication::translate("MainWindow", "India", Q_NULLPTR) + << QApplication::translate("MainWindow", "Norway", Q_NULLPTR) + << QApplication::translate("MainWindow", "United States Of America", Q_NULLPTR) + << QApplication::translate("MainWindow", "United Kingdom", Q_NULLPTR) ); #ifndef QT_NO_TOOLTIP - countryCombo->setToolTip(QApplication::translate("MainWindow", "Specify your country", 0)); + countryCombo->setToolTip(QApplication::translate("MainWindow", "Specify your country", Q_NULLPTR)); #endif // QT_NO_TOOLTIP #ifndef QT_NO_STATUSTIP - countryCombo->setStatusTip(QApplication::translate("MainWindow", "Specify your country here", 0)); + countryCombo->setStatusTip(QApplication::translate("MainWindow", "Specify your country here", Q_NULLPTR)); #endif // QT_NO_STATUSTIP - menu_File->setTitle(QApplication::translate("MainWindow", "&File", 0)); - menu_Help->setTitle(QApplication::translate("MainWindow", "&Help", 0)); + menu_File->setTitle(QApplication::translate("MainWindow", "&File", Q_NULLPTR)); + menu_Help->setTitle(QApplication::translate("MainWindow", "&Help", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/dialog.ui.h b/tests/auto/tools/uic/baseline/dialog.ui.h index ef587f9d9d..88ca359e20 100644 --- a/tests/auto/tools/uic/baseline/dialog.ui.h +++ b/tests/auto/tools/uic/baseline/dialog.ui.h @@ -61,10 +61,10 @@ public: void retranslateUi(QDialog *Dialog) { - Dialog->setWindowTitle(QApplication::translate("Dialog", "Dialog", 0)); - loadFromFileButton->setText(QApplication::translate("Dialog", "Load Image From File...", 0)); - label->setText(QApplication::translate("Dialog", "Launch two of these dialogs. In the first, press the top button and load an image from a file. In the second, press the bottom button and display the loaded image from shared memory.", 0)); - loadFromSharedMemoryButton->setText(QApplication::translate("Dialog", "Display Image From Shared Memory", 0)); + Dialog->setWindowTitle(QApplication::translate("Dialog", "Dialog", Q_NULLPTR)); + loadFromFileButton->setText(QApplication::translate("Dialog", "Load Image From File...", Q_NULLPTR)); + label->setText(QApplication::translate("Dialog", "Launch two of these dialogs. In the first, press the top button and load an image from a file. In the second, press the bottom button and display the loaded image from shared memory.", Q_NULLPTR)); + loadFromSharedMemoryButton->setText(QApplication::translate("Dialog", "Display Image From Shared Memory", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/downloaditem.ui.h b/tests/auto/tools/uic/baseline/downloaditem.ui.h index b0f5106246..87f2efe3eb 100644 --- a/tests/auto/tools/uic/baseline/downloaditem.ui.h +++ b/tests/auto/tools/uic/baseline/downloaditem.ui.h @@ -127,13 +127,13 @@ public: void retranslateUi(QWidget *DownloadItem) { - DownloadItem->setWindowTitle(QApplication::translate("DownloadItem", "Form", 0)); - fileIcon->setText(QApplication::translate("DownloadItem", "Ico", 0)); - fileNameLabel->setProperty("text", QVariant(QApplication::translate("DownloadItem", "Filename", 0))); + DownloadItem->setWindowTitle(QApplication::translate("DownloadItem", "Form", Q_NULLPTR)); + fileIcon->setText(QApplication::translate("DownloadItem", "Ico", Q_NULLPTR)); + fileNameLabel->setProperty("text", QVariant(QApplication::translate("DownloadItem", "Filename", Q_NULLPTR))); downloadInfoLabel->setProperty("text", QVariant(QString())); - tryAgainButton->setText(QApplication::translate("DownloadItem", "Try Again", 0)); - stopButton->setText(QApplication::translate("DownloadItem", "Stop", 0)); - openButton->setText(QApplication::translate("DownloadItem", "Open", 0)); + tryAgainButton->setText(QApplication::translate("DownloadItem", "Try Again", Q_NULLPTR)); + stopButton->setText(QApplication::translate("DownloadItem", "Stop", Q_NULLPTR)); + openButton->setText(QApplication::translate("DownloadItem", "Open", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/downloads.ui.h b/tests/auto/tools/uic/baseline/downloads.ui.h index 7e688669e4..4fbcceb7b4 100644 --- a/tests/auto/tools/uic/baseline/downloads.ui.h +++ b/tests/auto/tools/uic/baseline/downloads.ui.h @@ -81,9 +81,9 @@ public: void retranslateUi(QDialog *DownloadDialog) { - DownloadDialog->setWindowTitle(QApplication::translate("DownloadDialog", "Downloads", 0)); - cleanupButton->setText(QApplication::translate("DownloadDialog", "Clean up", 0)); - itemCount->setText(QApplication::translate("DownloadDialog", "0 Items", 0)); + DownloadDialog->setWindowTitle(QApplication::translate("DownloadDialog", "Downloads", Q_NULLPTR)); + cleanupButton->setText(QApplication::translate("DownloadDialog", "Clean up", Q_NULLPTR)); + itemCount->setText(QApplication::translate("DownloadDialog", "0 Items", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/embeddeddialog.ui.h b/tests/auto/tools/uic/baseline/embeddeddialog.ui.h index 872dc7db87..69027286b6 100644 --- a/tests/auto/tools/uic/baseline/embeddeddialog.ui.h +++ b/tests/auto/tools/uic/baseline/embeddeddialog.ui.h @@ -98,16 +98,16 @@ public: void retranslateUi(QDialog *embeddedDialog) { - embeddedDialog->setWindowTitle(QApplication::translate("embeddedDialog", "Embedded Dialog", 0)); - label->setText(QApplication::translate("embeddedDialog", "Layout Direction:", 0)); + embeddedDialog->setWindowTitle(QApplication::translate("embeddedDialog", "Embedded Dialog", Q_NULLPTR)); + label->setText(QApplication::translate("embeddedDialog", "Layout Direction:", Q_NULLPTR)); layoutDirection->clear(); layoutDirection->insertItems(0, QStringList() - << QApplication::translate("embeddedDialog", "Left to Right", 0) - << QApplication::translate("embeddedDialog", "Right to Left", 0) + << QApplication::translate("embeddedDialog", "Left to Right", Q_NULLPTR) + << QApplication::translate("embeddedDialog", "Right to Left", Q_NULLPTR) ); - label_2->setText(QApplication::translate("embeddedDialog", "Select Font:", 0)); - label_3->setText(QApplication::translate("embeddedDialog", "Style:", 0)); - label_4->setText(QApplication::translate("embeddedDialog", "Layout spacing:", 0)); + label_2->setText(QApplication::translate("embeddedDialog", "Select Font:", Q_NULLPTR)); + label_3->setText(QApplication::translate("embeddedDialog", "Style:", Q_NULLPTR)); + label_4->setText(QApplication::translate("embeddedDialog", "Layout spacing:", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/enumnostdset.ui.h b/tests/auto/tools/uic/baseline/enumnostdset.ui.h index 89a8411b4a..2c7d4cb591 100644 --- a/tests/auto/tools/uic/baseline/enumnostdset.ui.h +++ b/tests/auto/tools/uic/baseline/enumnostdset.ui.h @@ -41,7 +41,7 @@ public: void retranslateUi(QWidget *Form) { - Form->setWindowTitle(QApplication::translate("Form", "Form", 0)); + Form->setWindowTitle(QApplication::translate("Form", "Form", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/filespage.ui.h b/tests/auto/tools/uic/baseline/filespage.ui.h index ee4f702233..d84d609e01 100644 --- a/tests/auto/tools/uic/baseline/filespage.ui.h +++ b/tests/auto/tools/uic/baseline/filespage.ui.h @@ -83,10 +83,10 @@ public: void retranslateUi(QWidget *FilesPage) { - FilesPage->setWindowTitle(QApplication::translate("FilesPage", "Form", 0)); - fileLabel->setText(QApplication::translate("FilesPage", "Files:", 0)); - removeButton->setText(QApplication::translate("FilesPage", "Remove", 0)); - removeAllButton->setText(QApplication::translate("FilesPage", "Remove All", 0)); + FilesPage->setWindowTitle(QApplication::translate("FilesPage", "Form", Q_NULLPTR)); + fileLabel->setText(QApplication::translate("FilesPage", "Files:", Q_NULLPTR)); + removeButton->setText(QApplication::translate("FilesPage", "Remove", Q_NULLPTR)); + removeAllButton->setText(QApplication::translate("FilesPage", "Remove All", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/filternamedialog.ui.h b/tests/auto/tools/uic/baseline/filternamedialog.ui.h index 7b10ceb7ec..b789b9045b 100644 --- a/tests/auto/tools/uic/baseline/filternamedialog.ui.h +++ b/tests/auto/tools/uic/baseline/filternamedialog.ui.h @@ -79,8 +79,8 @@ public: void retranslateUi(QDialog *FilterNameDialogClass) { - FilterNameDialogClass->setWindowTitle(QApplication::translate("FilterNameDialogClass", "FilterNameDialog", 0)); - label->setText(QApplication::translate("FilterNameDialogClass", "Filter Name:", 0)); + FilterNameDialogClass->setWindowTitle(QApplication::translate("FilterNameDialogClass", "FilterNameDialog", Q_NULLPTR)); + label->setText(QApplication::translate("FilterNameDialogClass", "Filter Name:", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/filterpage.ui.h b/tests/auto/tools/uic/baseline/filterpage.ui.h index fb12686a83..d2e37dc5a4 100644 --- a/tests/auto/tools/uic/baseline/filterpage.ui.h +++ b/tests/auto/tools/uic/baseline/filterpage.ui.h @@ -105,14 +105,14 @@ public: void retranslateUi(QWidget *FilterPage) { - FilterPage->setWindowTitle(QApplication::translate("FilterPage", "Form", 0)); - label->setText(QApplication::translate("FilterPage", "Filter attributes for current documentation (comma separated list):", 0)); - groupBox->setTitle(QApplication::translate("FilterPage", "Custom Filters", 0)); + FilterPage->setWindowTitle(QApplication::translate("FilterPage", "Form", Q_NULLPTR)); + label->setText(QApplication::translate("FilterPage", "Filter attributes for current documentation (comma separated list):", Q_NULLPTR)); + groupBox->setTitle(QApplication::translate("FilterPage", "Custom Filters", Q_NULLPTR)); QTreeWidgetItem *___qtreewidgetitem = customFilterWidget->headerItem(); - ___qtreewidgetitem->setText(1, QApplication::translate("FilterPage", "2", 0)); - ___qtreewidgetitem->setText(0, QApplication::translate("FilterPage", "1", 0)); - addButton->setText(QApplication::translate("FilterPage", "Add", 0)); - removeButton->setText(QApplication::translate("FilterPage", "Remove", 0)); + ___qtreewidgetitem->setText(1, QApplication::translate("FilterPage", "2", Q_NULLPTR)); + ___qtreewidgetitem->setText(0, QApplication::translate("FilterPage", "1", Q_NULLPTR)); + addButton->setText(QApplication::translate("FilterPage", "Add", Q_NULLPTR)); + removeButton->setText(QApplication::translate("FilterPage", "Remove", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/finddialog.ui.h b/tests/auto/tools/uic/baseline/finddialog.ui.h index 259d36569f..404ad249af 100644 --- a/tests/auto/tools/uic/baseline/finddialog.ui.h +++ b/tests/auto/tools/uic/baseline/finddialog.ui.h @@ -201,40 +201,40 @@ public: void retranslateUi(QDialog *FindDialog) { - FindDialog->setWindowTitle(QApplication::translate("FindDialog", "Find", 0)); + FindDialog->setWindowTitle(QApplication::translate("FindDialog", "Find", Q_NULLPTR)); #ifndef QT_NO_WHATSTHIS - FindDialog->setWhatsThis(QApplication::translate("FindDialog", "This window allows you to search for some text in the translation source file.", 0)); + FindDialog->setWhatsThis(QApplication::translate("FindDialog", "This window allows you to search for some text in the translation source file.", Q_NULLPTR)); #endif // QT_NO_WHATSTHIS - findWhat->setText(QApplication::translate("FindDialog", "&Find what:", 0)); + findWhat->setText(QApplication::translate("FindDialog", "&Find what:", Q_NULLPTR)); #ifndef QT_NO_WHATSTHIS - led->setWhatsThis(QApplication::translate("FindDialog", "Type in the text to search for.", 0)); + led->setWhatsThis(QApplication::translate("FindDialog", "Type in the text to search for.", Q_NULLPTR)); #endif // QT_NO_WHATSTHIS - groupBox->setTitle(QApplication::translate("FindDialog", "Options", 0)); + groupBox->setTitle(QApplication::translate("FindDialog", "Options", Q_NULLPTR)); #ifndef QT_NO_WHATSTHIS - sourceText->setWhatsThis(QApplication::translate("FindDialog", "Source texts are searched when checked.", 0)); + sourceText->setWhatsThis(QApplication::translate("FindDialog", "Source texts are searched when checked.", Q_NULLPTR)); #endif // QT_NO_WHATSTHIS - sourceText->setText(QApplication::translate("FindDialog", "&Source texts", 0)); + sourceText->setText(QApplication::translate("FindDialog", "&Source texts", Q_NULLPTR)); #ifndef QT_NO_WHATSTHIS - translations->setWhatsThis(QApplication::translate("FindDialog", "Translations are searched when checked.", 0)); + translations->setWhatsThis(QApplication::translate("FindDialog", "Translations are searched when checked.", Q_NULLPTR)); #endif // QT_NO_WHATSTHIS - translations->setText(QApplication::translate("FindDialog", "&Translations", 0)); + translations->setText(QApplication::translate("FindDialog", "&Translations", Q_NULLPTR)); #ifndef QT_NO_WHATSTHIS - matchCase->setWhatsThis(QApplication::translate("FindDialog", "Texts such as 'TeX' and 'tex' are considered as different when checked.", 0)); + matchCase->setWhatsThis(QApplication::translate("FindDialog", "Texts such as 'TeX' and 'tex' are considered as different when checked.", Q_NULLPTR)); #endif // QT_NO_WHATSTHIS - matchCase->setText(QApplication::translate("FindDialog", "&Match case", 0)); + matchCase->setText(QApplication::translate("FindDialog", "&Match case", Q_NULLPTR)); #ifndef QT_NO_WHATSTHIS - comments->setWhatsThis(QApplication::translate("FindDialog", "Comments and contexts are searched when checked.", 0)); + comments->setWhatsThis(QApplication::translate("FindDialog", "Comments and contexts are searched when checked.", Q_NULLPTR)); #endif // QT_NO_WHATSTHIS - comments->setText(QApplication::translate("FindDialog", "&Comments", 0)); - ignoreAccelerators->setText(QApplication::translate("FindDialog", "Ignore &accelerators", 0)); + comments->setText(QApplication::translate("FindDialog", "&Comments", Q_NULLPTR)); + ignoreAccelerators->setText(QApplication::translate("FindDialog", "Ignore &accelerators", Q_NULLPTR)); #ifndef QT_NO_WHATSTHIS - findNxt->setWhatsThis(QApplication::translate("FindDialog", "Click here to find the next occurrence of the text you typed in.", 0)); + findNxt->setWhatsThis(QApplication::translate("FindDialog", "Click here to find the next occurrence of the text you typed in.", Q_NULLPTR)); #endif // QT_NO_WHATSTHIS - findNxt->setText(QApplication::translate("FindDialog", "Find Next", 0)); + findNxt->setText(QApplication::translate("FindDialog", "Find Next", Q_NULLPTR)); #ifndef QT_NO_WHATSTHIS - cancel->setWhatsThis(QApplication::translate("FindDialog", "Click here to close this window.", 0)); + cancel->setWhatsThis(QApplication::translate("FindDialog", "Click here to close this window.", Q_NULLPTR)); #endif // QT_NO_WHATSTHIS - cancel->setText(QApplication::translate("FindDialog", "Cancel", 0)); + cancel->setText(QApplication::translate("FindDialog", "Cancel", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/form.ui.h b/tests/auto/tools/uic/baseline/form.ui.h index 0b82a41f5d..89a08c2050 100644 --- a/tests/auto/tools/uic/baseline/form.ui.h +++ b/tests/auto/tools/uic/baseline/form.ui.h @@ -126,9 +126,9 @@ public: void retranslateUi(QWidget *WorldTimeForm) { - WorldTimeForm->setWindowTitle(QApplication::translate("WorldTimeForm", "World Time Clock", 0)); - label->setText(QApplication::translate("WorldTimeForm", "Current time:", 0)); - label_2->setText(QApplication::translate("WorldTimeForm", "Set time zone:", 0)); + WorldTimeForm->setWindowTitle(QApplication::translate("WorldTimeForm", "World Time Clock", Q_NULLPTR)); + label->setText(QApplication::translate("WorldTimeForm", "Current time:", Q_NULLPTR)); + label_2->setText(QApplication::translate("WorldTimeForm", "Set time zone:", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/formwindowsettings.ui.h b/tests/auto/tools/uic/baseline/formwindowsettings.ui.h index f4f2c9fe8e..71f9477712 100644 --- a/tests/auto/tools/uic/baseline/formwindowsettings.ui.h +++ b/tests/auto/tools/uic/baseline/formwindowsettings.ui.h @@ -279,17 +279,17 @@ public: void retranslateUi(QDialog *FormWindowSettings) { - FormWindowSettings->setWindowTitle(QApplication::translate("FormWindowSettings", "Form Settings", 0)); - layoutDefaultGroupBox->setTitle(QApplication::translate("FormWindowSettings", "Layout &Default", 0)); - label_2->setText(QApplication::translate("FormWindowSettings", "&Spacing:", 0)); - label->setText(QApplication::translate("FormWindowSettings", "&Margin:", 0)); - layoutFunctionGroupBox->setTitle(QApplication::translate("FormWindowSettings", "&Layout Function", 0)); - label_3->setText(QApplication::translate("FormWindowSettings", "Ma&rgin:", 0)); - label_3_2->setText(QApplication::translate("FormWindowSettings", "Spa&cing:", 0)); - pixmapFunctionGroupBox_2->setTitle(QApplication::translate("FormWindowSettings", "&Author", 0)); - includeHintsGroupBox->setTitle(QApplication::translate("FormWindowSettings", "&Include Hints", 0)); - pixmapFunctionGroupBox->setTitle(QApplication::translate("FormWindowSettings", "&Pixmap Function", 0)); - gridPanel->setTitle(QApplication::translate("FormWindowSettings", "Grid", 0)); + FormWindowSettings->setWindowTitle(QApplication::translate("FormWindowSettings", "Form Settings", Q_NULLPTR)); + layoutDefaultGroupBox->setTitle(QApplication::translate("FormWindowSettings", "Layout &Default", Q_NULLPTR)); + label_2->setText(QApplication::translate("FormWindowSettings", "&Spacing:", Q_NULLPTR)); + label->setText(QApplication::translate("FormWindowSettings", "&Margin:", Q_NULLPTR)); + layoutFunctionGroupBox->setTitle(QApplication::translate("FormWindowSettings", "&Layout Function", Q_NULLPTR)); + label_3->setText(QApplication::translate("FormWindowSettings", "Ma&rgin:", Q_NULLPTR)); + label_3_2->setText(QApplication::translate("FormWindowSettings", "Spa&cing:", Q_NULLPTR)); + pixmapFunctionGroupBox_2->setTitle(QApplication::translate("FormWindowSettings", "&Author", Q_NULLPTR)); + includeHintsGroupBox->setTitle(QApplication::translate("FormWindowSettings", "&Include Hints", Q_NULLPTR)); + pixmapFunctionGroupBox->setTitle(QApplication::translate("FormWindowSettings", "&Pixmap Function", Q_NULLPTR)); + gridPanel->setTitle(QApplication::translate("FormWindowSettings", "Grid", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/generalpage.ui.h b/tests/auto/tools/uic/baseline/generalpage.ui.h index ec51c40ab5..6cdc6f812e 100644 --- a/tests/auto/tools/uic/baseline/generalpage.ui.h +++ b/tests/auto/tools/uic/baseline/generalpage.ui.h @@ -76,9 +76,9 @@ public: void retranslateUi(QWidget *GeneralPage) { - GeneralPage->setWindowTitle(QApplication::translate("GeneralPage", "Form", 0)); - label->setText(QApplication::translate("GeneralPage", "Namespace:", 0)); - label_2->setText(QApplication::translate("GeneralPage", "Virtual Folder:", 0)); + GeneralPage->setWindowTitle(QApplication::translate("GeneralPage", "Form", Q_NULLPTR)); + label->setText(QApplication::translate("GeneralPage", "Namespace:", Q_NULLPTR)); + label_2->setText(QApplication::translate("GeneralPage", "Virtual Folder:", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/gridalignment.ui.h b/tests/auto/tools/uic/baseline/gridalignment.ui.h index 8e82d5460d..3513e0e727 100644 --- a/tests/auto/tools/uic/baseline/gridalignment.ui.h +++ b/tests/auto/tools/uic/baseline/gridalignment.ui.h @@ -64,11 +64,11 @@ public: void retranslateUi(QWidget *Form) { - Form->setWindowTitle(QApplication::translate("Form", "Form", 0)); - pushButton->setText(QApplication::translate("Form", "Left", 0)); - pushButton_3->setText(QApplication::translate("Form", "Top", 0)); - pushButton_2->setText(QApplication::translate("Form", "Right", 0)); - pushButton_4->setText(QApplication::translate("Form", "Bottom", 0)); + Form->setWindowTitle(QApplication::translate("Form", "Form", Q_NULLPTR)); + pushButton->setText(QApplication::translate("Form", "Left", Q_NULLPTR)); + pushButton_3->setText(QApplication::translate("Form", "Top", Q_NULLPTR)); + pushButton_2->setText(QApplication::translate("Form", "Right", Q_NULLPTR)); + pushButton_4->setText(QApplication::translate("Form", "Bottom", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/gridpanel.ui.h b/tests/auto/tools/uic/baseline/gridpanel.ui.h index c289914aaf..2c61c7228b 100644 --- a/tests/auto/tools/uic/baseline/gridpanel.ui.h +++ b/tests/auto/tools/uic/baseline/gridpanel.ui.h @@ -135,14 +135,14 @@ public: void retranslateUi(QWidget *qdesigner_internal__GridPanel) { - qdesigner_internal__GridPanel->setWindowTitle(QApplication::translate("qdesigner_internal::GridPanel", "Form", 0)); - m_gridGroupBox->setTitle(QApplication::translate("qdesigner_internal::GridPanel", "Grid", 0)); - m_visibleCheckBox->setText(QApplication::translate("qdesigner_internal::GridPanel", "Visible", 0)); - label->setText(QApplication::translate("qdesigner_internal::GridPanel", "Grid &X", 0)); - m_snapXCheckBox->setText(QApplication::translate("qdesigner_internal::GridPanel", "Snap", 0)); - m_resetButton->setText(QApplication::translate("qdesigner_internal::GridPanel", "Reset", 0)); - label_2->setText(QApplication::translate("qdesigner_internal::GridPanel", "Grid &Y", 0)); - m_snapYCheckBox->setText(QApplication::translate("qdesigner_internal::GridPanel", "Snap", 0)); + qdesigner_internal__GridPanel->setWindowTitle(QApplication::translate("qdesigner_internal::GridPanel", "Form", Q_NULLPTR)); + m_gridGroupBox->setTitle(QApplication::translate("qdesigner_internal::GridPanel", "Grid", Q_NULLPTR)); + m_visibleCheckBox->setText(QApplication::translate("qdesigner_internal::GridPanel", "Visible", Q_NULLPTR)); + label->setText(QApplication::translate("qdesigner_internal::GridPanel", "Grid &X", Q_NULLPTR)); + m_snapXCheckBox->setText(QApplication::translate("qdesigner_internal::GridPanel", "Snap", Q_NULLPTR)); + m_resetButton->setText(QApplication::translate("qdesigner_internal::GridPanel", "Reset", Q_NULLPTR)); + label_2->setText(QApplication::translate("qdesigner_internal::GridPanel", "Grid &Y", Q_NULLPTR)); + m_snapYCheckBox->setText(QApplication::translate("qdesigner_internal::GridPanel", "Snap", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/helpdialog.ui.h b/tests/auto/tools/uic/baseline/helpdialog.ui.h index 15f3d77b2a..c1d7f8286a 100644 --- a/tests/auto/tools/uic/baseline/helpdialog.ui.h +++ b/tests/auto/tools/uic/baseline/helpdialog.ui.h @@ -303,77 +303,77 @@ public: void retranslateUi(QWidget *HelpDialog) { - HelpDialog->setWindowTitle(QApplication::translate("HelpDialog", "Help", 0)); + HelpDialog->setWindowTitle(QApplication::translate("HelpDialog", "Help", Q_NULLPTR)); #ifndef QT_NO_WHATSTHIS - HelpDialog->setWhatsThis(QApplication::translate("HelpDialog", "Help

Choose the topic you want help on from the contents list, or search the index for keywords.

", 0)); + HelpDialog->setWhatsThis(QApplication::translate("HelpDialog", "Help

Choose the topic you want help on from the contents list, or search the index for keywords.

", Q_NULLPTR)); #endif // QT_NO_WHATSTHIS #ifndef QT_NO_WHATSTHIS - tabWidget->setWhatsThis(QApplication::translate("HelpDialog", "Displays help topics organized by category, index or bookmarks. Another tab inherits the full text search.", 0)); + tabWidget->setWhatsThis(QApplication::translate("HelpDialog", "Displays help topics organized by category, index or bookmarks. Another tab inherits the full text search.", Q_NULLPTR)); #endif // QT_NO_WHATSTHIS QTreeWidgetItem *___qtreewidgetitem = listContents->headerItem(); - ___qtreewidgetitem->setText(0, QApplication::translate("HelpDialog", "column 1", 0)); + ___qtreewidgetitem->setText(0, QApplication::translate("HelpDialog", "column 1", Q_NULLPTR)); #ifndef QT_NO_WHATSTHIS - listContents->setWhatsThis(QApplication::translate("HelpDialog", "Help topics organized by category.

Double-click an item to see the topics in that category. To view a topic, just double-click it.

", 0)); + listContents->setWhatsThis(QApplication::translate("HelpDialog", "Help topics organized by category.

Double-click an item to see the topics in that category. To view a topic, just double-click it.

", Q_NULLPTR)); #endif // QT_NO_WHATSTHIS - tabWidget->setTabText(tabWidget->indexOf(contentPage), QApplication::translate("HelpDialog", "Con&tents", 0)); - TextLabel1->setText(QApplication::translate("HelpDialog", "&Look For:", 0)); + tabWidget->setTabText(tabWidget->indexOf(contentPage), QApplication::translate("HelpDialog", "Con&tents", Q_NULLPTR)); + TextLabel1->setText(QApplication::translate("HelpDialog", "&Look For:", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - editIndex->setToolTip(QApplication::translate("HelpDialog", "Enter keyword", 0)); + editIndex->setToolTip(QApplication::translate("HelpDialog", "Enter keyword", Q_NULLPTR)); #endif // QT_NO_TOOLTIP #ifndef QT_NO_WHATSTHIS - editIndex->setWhatsThis(QApplication::translate("HelpDialog", "Enter a keyword.

The list will select an item that matches the entered string best.

", 0)); + editIndex->setWhatsThis(QApplication::translate("HelpDialog", "Enter a keyword.

The list will select an item that matches the entered string best.

", Q_NULLPTR)); #endif // QT_NO_WHATSTHIS #ifndef QT_NO_WHATSTHIS - listIndex->setWhatsThis(QApplication::translate("HelpDialog", "List of available help topics.

Double-click on an item to open its help page. If more than one is found, you must specify which page you want.

", 0)); + listIndex->setWhatsThis(QApplication::translate("HelpDialog", "List of available help topics.

Double-click on an item to open its help page. If more than one is found, you must specify which page you want.

", Q_NULLPTR)); #endif // QT_NO_WHATSTHIS - tabWidget->setTabText(tabWidget->indexOf(indexPage), QApplication::translate("HelpDialog", "&Index", 0)); + tabWidget->setTabText(tabWidget->indexOf(indexPage), QApplication::translate("HelpDialog", "&Index", Q_NULLPTR)); QTreeWidgetItem *___qtreewidgetitem1 = listBookmarks->headerItem(); - ___qtreewidgetitem1->setText(0, QApplication::translate("HelpDialog", "column 1", 0)); + ___qtreewidgetitem1->setText(0, QApplication::translate("HelpDialog", "column 1", Q_NULLPTR)); #ifndef QT_NO_WHATSTHIS - listBookmarks->setWhatsThis(QApplication::translate("HelpDialog", "Displays the list of bookmarks.", 0)); + listBookmarks->setWhatsThis(QApplication::translate("HelpDialog", "Displays the list of bookmarks.", Q_NULLPTR)); #endif // QT_NO_WHATSTHIS #ifndef QT_NO_TOOLTIP - buttonAdd->setToolTip(QApplication::translate("HelpDialog", "Add new bookmark", 0)); + buttonAdd->setToolTip(QApplication::translate("HelpDialog", "Add new bookmark", Q_NULLPTR)); #endif // QT_NO_TOOLTIP #ifndef QT_NO_WHATSTHIS - buttonAdd->setWhatsThis(QApplication::translate("HelpDialog", "Add the currently displayed page as a new bookmark.", 0)); + buttonAdd->setWhatsThis(QApplication::translate("HelpDialog", "Add the currently displayed page as a new bookmark.", Q_NULLPTR)); #endif // QT_NO_WHATSTHIS - buttonAdd->setText(QApplication::translate("HelpDialog", "&New", 0)); + buttonAdd->setText(QApplication::translate("HelpDialog", "&New", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - buttonRemove->setToolTip(QApplication::translate("HelpDialog", "Delete bookmark", 0)); + buttonRemove->setToolTip(QApplication::translate("HelpDialog", "Delete bookmark", Q_NULLPTR)); #endif // QT_NO_TOOLTIP #ifndef QT_NO_WHATSTHIS - buttonRemove->setWhatsThis(QApplication::translate("HelpDialog", "Delete the selected bookmark.", 0)); + buttonRemove->setWhatsThis(QApplication::translate("HelpDialog", "Delete the selected bookmark.", Q_NULLPTR)); #endif // QT_NO_WHATSTHIS - buttonRemove->setText(QApplication::translate("HelpDialog", "&Delete", 0)); - tabWidget->setTabText(tabWidget->indexOf(bookmarkPage), QApplication::translate("HelpDialog", "&Bookmarks", 0)); - TextLabel1_2->setText(QApplication::translate("HelpDialog", "Searching f&or:", 0)); + buttonRemove->setText(QApplication::translate("HelpDialog", "&Delete", Q_NULLPTR)); + tabWidget->setTabText(tabWidget->indexOf(bookmarkPage), QApplication::translate("HelpDialog", "&Bookmarks", Q_NULLPTR)); + TextLabel1_2->setText(QApplication::translate("HelpDialog", "Searching f&or:", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - termsEdit->setToolTip(QApplication::translate("HelpDialog", "Enter searchword(s).", 0)); + termsEdit->setToolTip(QApplication::translate("HelpDialog", "Enter searchword(s).", Q_NULLPTR)); #endif // QT_NO_TOOLTIP #ifndef QT_NO_WHATSTHIS - termsEdit->setWhatsThis(QApplication::translate("HelpDialog", "Enter search word(s).

Enter here the word(s) you are looking for. The words may contain wildcards (*). For a sequence of words quote them.

", 0)); + termsEdit->setWhatsThis(QApplication::translate("HelpDialog", "Enter search word(s).

Enter here the word(s) you are looking for. The words may contain wildcards (*). For a sequence of words quote them.

", Q_NULLPTR)); #endif // QT_NO_WHATSTHIS #ifndef QT_NO_WHATSTHIS - resultBox->setWhatsThis(QApplication::translate("HelpDialog", "Found documents

This list contains all found documents from the last search. The documents are ordered, i.e. the first document has the most matches.

", 0)); + resultBox->setWhatsThis(QApplication::translate("HelpDialog", "Found documents

This list contains all found documents from the last search. The documents are ordered, i.e. the first document has the most matches.

", Q_NULLPTR)); #endif // QT_NO_WHATSTHIS - TextLabel2->setText(QApplication::translate("HelpDialog", "Found &Documents:", 0)); + TextLabel2->setText(QApplication::translate("HelpDialog", "Found &Documents:", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - helpButton->setToolTip(QApplication::translate("HelpDialog", "Display the help page.", 0)); + helpButton->setToolTip(QApplication::translate("HelpDialog", "Display the help page.", Q_NULLPTR)); #endif // QT_NO_TOOLTIP #ifndef QT_NO_WHATSTHIS - helpButton->setWhatsThis(QApplication::translate("HelpDialog", "Display the help page for the full text search.", 0)); + helpButton->setWhatsThis(QApplication::translate("HelpDialog", "Display the help page for the full text search.", Q_NULLPTR)); #endif // QT_NO_WHATSTHIS - helpButton->setText(QApplication::translate("HelpDialog", "He&lp", 0)); + helpButton->setText(QApplication::translate("HelpDialog", "He&lp", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - searchButton->setToolTip(QApplication::translate("HelpDialog", "Start searching.", 0)); + searchButton->setToolTip(QApplication::translate("HelpDialog", "Start searching.", Q_NULLPTR)); #endif // QT_NO_TOOLTIP #ifndef QT_NO_WHATSTHIS - searchButton->setWhatsThis(QApplication::translate("HelpDialog", "Pressing this button starts the search.", 0)); + searchButton->setWhatsThis(QApplication::translate("HelpDialog", "Pressing this button starts the search.", Q_NULLPTR)); #endif // QT_NO_WHATSTHIS - searchButton->setText(QApplication::translate("HelpDialog", "&Search", 0)); - tabWidget->setTabText(tabWidget->indexOf(searchPage), QApplication::translate("HelpDialog", "&Search", 0)); - labelPrepare->setText(QApplication::translate("HelpDialog", "Preparing...", 0)); + searchButton->setText(QApplication::translate("HelpDialog", "&Search", Q_NULLPTR)); + tabWidget->setTabText(tabWidget->indexOf(searchPage), QApplication::translate("HelpDialog", "&Search", Q_NULLPTR)); + labelPrepare->setText(QApplication::translate("HelpDialog", "Preparing...", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/history.ui.h b/tests/auto/tools/uic/baseline/history.ui.h index e4c4c7d1b5..b0eccba5bc 100644 --- a/tests/auto/tools/uic/baseline/history.ui.h +++ b/tests/auto/tools/uic/baseline/history.ui.h @@ -93,9 +93,9 @@ public: void retranslateUi(QDialog *HistoryDialog) { - HistoryDialog->setWindowTitle(QApplication::translate("HistoryDialog", "History", 0)); - removeButton->setText(QApplication::translate("HistoryDialog", "&Remove", 0)); - removeAllButton->setText(QApplication::translate("HistoryDialog", "Remove &All", 0)); + HistoryDialog->setWindowTitle(QApplication::translate("HistoryDialog", "History", Q_NULLPTR)); + removeButton->setText(QApplication::translate("HistoryDialog", "&Remove", Q_NULLPTR)); + removeAllButton->setText(QApplication::translate("HistoryDialog", "Remove &All", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/icontheme.ui.h b/tests/auto/tools/uic/baseline/icontheme.ui.h index 28fd27475d..f9cc837761 100644 --- a/tests/auto/tools/uic/baseline/icontheme.ui.h +++ b/tests/auto/tools/uic/baseline/icontheme.ui.h @@ -77,10 +77,10 @@ public: void retranslateUi(QWidget *Form) { - Form->setWindowTitle(QApplication::translate("Form", "Form", 0)); - fileicon->setText(QApplication::translate("Form", "fileicon", 0)); - fileandthemeicon->setText(QApplication::translate("Form", "PushButton", 0)); - themeicon->setText(QApplication::translate("Form", "PushButton", 0)); + Form->setWindowTitle(QApplication::translate("Form", "Form", Q_NULLPTR)); + fileicon->setText(QApplication::translate("Form", "fileicon", Q_NULLPTR)); + fileandthemeicon->setText(QApplication::translate("Form", "PushButton", Q_NULLPTR)); + themeicon->setText(QApplication::translate("Form", "PushButton", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/identifierpage.ui.h b/tests/auto/tools/uic/baseline/identifierpage.ui.h index 9f92608c62..68649a8a9e 100644 --- a/tests/auto/tools/uic/baseline/identifierpage.ui.h +++ b/tests/auto/tools/uic/baseline/identifierpage.ui.h @@ -92,10 +92,10 @@ public: void retranslateUi(QWidget *IdentifierPage) { - IdentifierPage->setWindowTitle(QApplication::translate("IdentifierPage", "Form", 0)); - identifierCheckBox->setText(QApplication::translate("IdentifierPage", "Create identifiers", 0)); - globalButton->setText(QApplication::translate("IdentifierPage", "Global prefix:", 0)); - fileNameButton->setText(QApplication::translate("IdentifierPage", "Inherit prefix from file names", 0)); + IdentifierPage->setWindowTitle(QApplication::translate("IdentifierPage", "Form", Q_NULLPTR)); + identifierCheckBox->setText(QApplication::translate("IdentifierPage", "Create identifiers", Q_NULLPTR)); + globalButton->setText(QApplication::translate("IdentifierPage", "Global prefix:", Q_NULLPTR)); + fileNameButton->setText(QApplication::translate("IdentifierPage", "Inherit prefix from file names", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/imagedialog.ui.h b/tests/auto/tools/uic/baseline/imagedialog.ui.h index 99e853b7a8..9ce2a577f0 100644 --- a/tests/auto/tools/uic/baseline/imagedialog.ui.h +++ b/tests/auto/tools/uic/baseline/imagedialog.ui.h @@ -199,14 +199,14 @@ public: void retranslateUi(QDialog *dialog) { - dialog->setWindowTitle(QApplication::translate("ImageDialog", "Create Image", 0)); - widthLabel->setText(QApplication::translate("ImageDialog", "Width:", 0)); - heightLabel->setText(QApplication::translate("ImageDialog", "Height:", 0)); - nameLineEdit->setText(QApplication::translate("ImageDialog", "Untitled image", 0)); - nameLabel->setText(QApplication::translate("ImageDialog", "Name:", 0)); - colorDepthLabel->setText(QApplication::translate("ImageDialog", "Color depth:", 0)); - okButton->setText(QApplication::translate("ImageDialog", "OK", 0)); - cancelButton->setText(QApplication::translate("ImageDialog", "Cancel", 0)); + dialog->setWindowTitle(QApplication::translate("ImageDialog", "Create Image", Q_NULLPTR)); + widthLabel->setText(QApplication::translate("ImageDialog", "Width:", Q_NULLPTR)); + heightLabel->setText(QApplication::translate("ImageDialog", "Height:", Q_NULLPTR)); + nameLineEdit->setText(QApplication::translate("ImageDialog", "Untitled image", Q_NULLPTR)); + nameLabel->setText(QApplication::translate("ImageDialog", "Name:", Q_NULLPTR)); + colorDepthLabel->setText(QApplication::translate("ImageDialog", "Color depth:", Q_NULLPTR)); + okButton->setText(QApplication::translate("ImageDialog", "OK", Q_NULLPTR)); + cancelButton->setText(QApplication::translate("ImageDialog", "Cancel", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/inputpage.ui.h b/tests/auto/tools/uic/baseline/inputpage.ui.h index b064f94c20..ad97dfcf85 100644 --- a/tests/auto/tools/uic/baseline/inputpage.ui.h +++ b/tests/auto/tools/uic/baseline/inputpage.ui.h @@ -84,9 +84,9 @@ public: void retranslateUi(QWidget *InputPage) { - InputPage->setWindowTitle(QApplication::translate("InputPage", "Form", 0)); - label->setText(QApplication::translate("InputPage", "File name:", 0)); - browseButton->setText(QApplication::translate("InputPage", "...", 0)); + InputPage->setWindowTitle(QApplication::translate("InputPage", "Form", Q_NULLPTR)); + label->setText(QApplication::translate("InputPage", "File name:", Q_NULLPTR)); + browseButton->setText(QApplication::translate("InputPage", "...", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/installdialog.ui.h b/tests/auto/tools/uic/baseline/installdialog.ui.h index 6ba51c7404..5bbd7b6f08 100644 --- a/tests/auto/tools/uic/baseline/installdialog.ui.h +++ b/tests/auto/tools/uic/baseline/installdialog.ui.h @@ -123,13 +123,13 @@ public: void retranslateUi(QDialog *InstallDialog) { - InstallDialog->setWindowTitle(QApplication::translate("InstallDialog", "Install Documentation", 0)); - label->setText(QApplication::translate("InstallDialog", "Available Documentation:", 0)); - installButton->setText(QApplication::translate("InstallDialog", "Install", 0)); - cancelButton->setText(QApplication::translate("InstallDialog", "Cancel", 0)); - closeButton->setText(QApplication::translate("InstallDialog", "Close", 0)); - label_4->setText(QApplication::translate("InstallDialog", "Installation Path:", 0)); - browseButton->setText(QApplication::translate("InstallDialog", "...", 0)); + InstallDialog->setWindowTitle(QApplication::translate("InstallDialog", "Install Documentation", Q_NULLPTR)); + label->setText(QApplication::translate("InstallDialog", "Available Documentation:", Q_NULLPTR)); + installButton->setText(QApplication::translate("InstallDialog", "Install", Q_NULLPTR)); + cancelButton->setText(QApplication::translate("InstallDialog", "Cancel", Q_NULLPTR)); + closeButton->setText(QApplication::translate("InstallDialog", "Close", Q_NULLPTR)); + label_4->setText(QApplication::translate("InstallDialog", "Installation Path:", Q_NULLPTR)); + browseButton->setText(QApplication::translate("InstallDialog", "...", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/languagesdialog.ui.h b/tests/auto/tools/uic/baseline/languagesdialog.ui.h index dfdc1d1ac6..7d22656471 100644 --- a/tests/auto/tools/uic/baseline/languagesdialog.ui.h +++ b/tests/auto/tools/uic/baseline/languagesdialog.ui.h @@ -109,39 +109,39 @@ public: void retranslateUi(QDialog *LanguagesDialog) { - LanguagesDialog->setWindowTitle(QApplication::translate("LanguagesDialog", "Auxiliary Languages", 0)); + LanguagesDialog->setWindowTitle(QApplication::translate("LanguagesDialog", "Auxiliary Languages", Q_NULLPTR)); QTreeWidgetItem *___qtreewidgetitem = languagesList->headerItem(); - ___qtreewidgetitem->setText(1, QApplication::translate("LanguagesDialog", "File", 0)); - ___qtreewidgetitem->setText(0, QApplication::translate("LanguagesDialog", "Locale", 0)); + ___qtreewidgetitem->setText(1, QApplication::translate("LanguagesDialog", "File", Q_NULLPTR)); + ___qtreewidgetitem->setText(0, QApplication::translate("LanguagesDialog", "Locale", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP upButton->setToolTip(QApplication::translate("LanguagesDialog", "\n" -"

Move selected language up

", 0)); +"

Move selected language up

", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - upButton->setText(QApplication::translate("LanguagesDialog", "up", 0)); + upButton->setText(QApplication::translate("LanguagesDialog", "up", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP downButton->setToolTip(QApplication::translate("LanguagesDialog", "\n" -"

Move selected language down

", 0)); +"

Move selected language down

", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - downButton->setText(QApplication::translate("LanguagesDialog", "down", 0)); + downButton->setText(QApplication::translate("LanguagesDialog", "down", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP removeButton->setToolTip(QApplication::translate("LanguagesDialog", "\n" -"

Remove selected language

", 0)); +"

Remove selected language

", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - removeButton->setText(QApplication::translate("LanguagesDialog", "remove", 0)); + removeButton->setText(QApplication::translate("LanguagesDialog", "remove", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP openFileButton->setToolTip(QApplication::translate("LanguagesDialog", "\n" -"

Open auxiliary language files

", 0)); +"

Open auxiliary language files

", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - openFileButton->setText(QApplication::translate("LanguagesDialog", "...", 0)); - okButton->setText(QApplication::translate("LanguagesDialog", "OK", 0)); + openFileButton->setText(QApplication::translate("LanguagesDialog", "...", Q_NULLPTR)); + okButton->setText(QApplication::translate("LanguagesDialog", "OK", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/listwidgeteditor.ui.h b/tests/auto/tools/uic/baseline/listwidgeteditor.ui.h index 329a5d370d..62acc2ba9e 100644 --- a/tests/auto/tools/uic/baseline/listwidgeteditor.ui.h +++ b/tests/auto/tools/uic/baseline/listwidgeteditor.ui.h @@ -180,28 +180,28 @@ public: void retranslateUi(QDialog *qdesigner_internal__ListWidgetEditor) { - qdesigner_internal__ListWidgetEditor->setWindowTitle(QApplication::translate("qdesigner_internal::ListWidgetEditor", "Dialog", 0)); - groupBox->setTitle(QApplication::translate("qdesigner_internal::ListWidgetEditor", "Items List", 0)); + qdesigner_internal__ListWidgetEditor->setWindowTitle(QApplication::translate("qdesigner_internal::ListWidgetEditor", "Dialog", Q_NULLPTR)); + groupBox->setTitle(QApplication::translate("qdesigner_internal::ListWidgetEditor", "Items List", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - listWidget->setToolTip(QApplication::translate("qdesigner_internal::ListWidgetEditor", "Items List", 0)); + listWidget->setToolTip(QApplication::translate("qdesigner_internal::ListWidgetEditor", "Items List", Q_NULLPTR)); #endif // QT_NO_TOOLTIP #ifndef QT_NO_TOOLTIP - newItemButton->setToolTip(QApplication::translate("qdesigner_internal::ListWidgetEditor", "New Item", 0)); + newItemButton->setToolTip(QApplication::translate("qdesigner_internal::ListWidgetEditor", "New Item", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - newItemButton->setText(QApplication::translate("qdesigner_internal::ListWidgetEditor", "&New", 0)); + newItemButton->setText(QApplication::translate("qdesigner_internal::ListWidgetEditor", "&New", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - deleteItemButton->setToolTip(QApplication::translate("qdesigner_internal::ListWidgetEditor", "Delete Item", 0)); + deleteItemButton->setToolTip(QApplication::translate("qdesigner_internal::ListWidgetEditor", "Delete Item", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - deleteItemButton->setText(QApplication::translate("qdesigner_internal::ListWidgetEditor", "&Delete", 0)); + deleteItemButton->setText(QApplication::translate("qdesigner_internal::ListWidgetEditor", "&Delete", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - moveItemUpButton->setToolTip(QApplication::translate("qdesigner_internal::ListWidgetEditor", "Move Item Up", 0)); + moveItemUpButton->setToolTip(QApplication::translate("qdesigner_internal::ListWidgetEditor", "Move Item Up", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - moveItemUpButton->setText(QApplication::translate("qdesigner_internal::ListWidgetEditor", "U", 0)); + moveItemUpButton->setText(QApplication::translate("qdesigner_internal::ListWidgetEditor", "U", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - moveItemDownButton->setToolTip(QApplication::translate("qdesigner_internal::ListWidgetEditor", "Move Item Down", 0)); + moveItemDownButton->setToolTip(QApplication::translate("qdesigner_internal::ListWidgetEditor", "Move Item Down", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - moveItemDownButton->setText(QApplication::translate("qdesigner_internal::ListWidgetEditor", "D", 0)); - label->setText(QApplication::translate("qdesigner_internal::ListWidgetEditor", "Icon", 0)); + moveItemDownButton->setText(QApplication::translate("qdesigner_internal::ListWidgetEditor", "D", Q_NULLPTR)); + label->setText(QApplication::translate("qdesigner_internal::ListWidgetEditor", "Icon", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/mainwindow.ui.h b/tests/auto/tools/uic/baseline/mainwindow.ui.h index bb6c8641a1..62b1e8766c 100644 --- a/tests/auto/tools/uic/baseline/mainwindow.ui.h +++ b/tests/auto/tools/uic/baseline/mainwindow.ui.h @@ -363,30 +363,30 @@ public: void retranslateUi(QMainWindow *MainWindow) { - MainWindow->setWindowTitle(QApplication::translate("MainWindow", "MakeQPF", 0)); - actionAdd_Custom_Font->setText(QApplication::translate("MainWindow", "&Add Custom Font...", 0)); - action_Exit->setText(QApplication::translate("MainWindow", "&Exit", 0)); - groupBox->setTitle(QApplication::translate("MainWindow", "Font Properties", 0)); - label->setText(QApplication::translate("MainWindow", "Family:", 0)); - label_2->setText(QApplication::translate("MainWindow", "Pixel Size:", 0)); - label_7->setText(QApplication::translate("MainWindow", "Weight:", 0)); - italic->setText(QApplication::translate("MainWindow", "Italic", 0)); - groupBox_2->setTitle(QApplication::translate("MainWindow", "Glyph Coverage", 0)); - chooseFromCodePoints->setText(QApplication::translate("MainWindow", "Choose from Unicode Codepoints:", 0)); - selectAll->setText(QApplication::translate("MainWindow", "Select &All", 0)); - deselectAll->setText(QApplication::translate("MainWindow", "&Deselect All", 0)); - invertSelection->setText(QApplication::translate("MainWindow", "&Invert Selection", 0)); - chooseFromSampleFile->setText(QApplication::translate("MainWindow", "Choose from Sample Text File (UTF-8 Encoded):", 0)); - label_5->setText(QApplication::translate("MainWindow", "Path:", 0)); - browseSampleFile->setText(QApplication::translate("MainWindow", "Browse...", 0)); - charCount->setText(QApplication::translate("MainWindow", "TextLabel", 0)); - groupBox_3->setTitle(QApplication::translate("MainWindow", "Preview", 0)); - groupBox_4->setTitle(QApplication::translate("MainWindow", "Output Options", 0)); - label_3->setText(QApplication::translate("MainWindow", "Path:", 0)); - browsePath->setText(QApplication::translate("MainWindow", "Browse...", 0)); - label_4->setText(QApplication::translate("MainWindow", "Filename:", 0)); - generate->setText(QApplication::translate("MainWindow", "Generate Pre-Rendered Font...", 0)); - menuFile->setTitle(QApplication::translate("MainWindow", "File", 0)); + MainWindow->setWindowTitle(QApplication::translate("MainWindow", "MakeQPF", Q_NULLPTR)); + actionAdd_Custom_Font->setText(QApplication::translate("MainWindow", "&Add Custom Font...", Q_NULLPTR)); + action_Exit->setText(QApplication::translate("MainWindow", "&Exit", Q_NULLPTR)); + groupBox->setTitle(QApplication::translate("MainWindow", "Font Properties", Q_NULLPTR)); + label->setText(QApplication::translate("MainWindow", "Family:", Q_NULLPTR)); + label_2->setText(QApplication::translate("MainWindow", "Pixel Size:", Q_NULLPTR)); + label_7->setText(QApplication::translate("MainWindow", "Weight:", Q_NULLPTR)); + italic->setText(QApplication::translate("MainWindow", "Italic", Q_NULLPTR)); + groupBox_2->setTitle(QApplication::translate("MainWindow", "Glyph Coverage", Q_NULLPTR)); + chooseFromCodePoints->setText(QApplication::translate("MainWindow", "Choose from Unicode Codepoints:", Q_NULLPTR)); + selectAll->setText(QApplication::translate("MainWindow", "Select &All", Q_NULLPTR)); + deselectAll->setText(QApplication::translate("MainWindow", "&Deselect All", Q_NULLPTR)); + invertSelection->setText(QApplication::translate("MainWindow", "&Invert Selection", Q_NULLPTR)); + chooseFromSampleFile->setText(QApplication::translate("MainWindow", "Choose from Sample Text File (UTF-8 Encoded):", Q_NULLPTR)); + label_5->setText(QApplication::translate("MainWindow", "Path:", Q_NULLPTR)); + browseSampleFile->setText(QApplication::translate("MainWindow", "Browse...", Q_NULLPTR)); + charCount->setText(QApplication::translate("MainWindow", "TextLabel", Q_NULLPTR)); + groupBox_3->setTitle(QApplication::translate("MainWindow", "Preview", Q_NULLPTR)); + groupBox_4->setTitle(QApplication::translate("MainWindow", "Output Options", Q_NULLPTR)); + label_3->setText(QApplication::translate("MainWindow", "Path:", Q_NULLPTR)); + browsePath->setText(QApplication::translate("MainWindow", "Browse...", Q_NULLPTR)); + label_4->setText(QApplication::translate("MainWindow", "Filename:", Q_NULLPTR)); + generate->setText(QApplication::translate("MainWindow", "Generate Pre-Rendered Font...", Q_NULLPTR)); + menuFile->setTitle(QApplication::translate("MainWindow", "File", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/mydialog.ui.h b/tests/auto/tools/uic/baseline/mydialog.ui.h index 6f2462611b..061b476f63 100644 --- a/tests/auto/tools/uic/baseline/mydialog.ui.h +++ b/tests/auto/tools/uic/baseline/mydialog.ui.h @@ -59,10 +59,10 @@ public: void retranslateUi(QDialog *MyDialog) { - MyDialog->setWindowTitle(QApplication::translate("MyDialog", "Mach 2!", 0)); - aLabel->setText(QApplication::translate("MyDialog", "Join the life in the fastlane; - PCH enable your project today! -", 0)); - aButton->setText(QApplication::translate("MyDialog", "&Quit", 0)); - aButton->setShortcut(QApplication::translate("MyDialog", "Alt+Q", 0)); + MyDialog->setWindowTitle(QApplication::translate("MyDialog", "Mach 2!", Q_NULLPTR)); + aLabel->setText(QApplication::translate("MyDialog", "Join the life in the fastlane; - PCH enable your project today! -", Q_NULLPTR)); + aButton->setText(QApplication::translate("MyDialog", "&Quit", Q_NULLPTR)); + aButton->setShortcut(QApplication::translate("MyDialog", "Alt+Q", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/myform.ui.h b/tests/auto/tools/uic/baseline/myform.ui.h index 4c58bceed9..6e7873c5ad 100644 --- a/tests/auto/tools/uic/baseline/myform.ui.h +++ b/tests/auto/tools/uic/baseline/myform.ui.h @@ -123,17 +123,17 @@ public: void retranslateUi(QWidget *Form) { - Form->setWindowTitle(QApplication::translate("Form", "Export Document", 0)); - groupBox->setTitle(QApplication::translate("Form", "Export Options", 0)); - radioButton_2->setText(QApplication::translate("Form", "&DocBook", 0)); - radioButton->setText(QApplication::translate("Form", "&LaTeX", 0)); - checkBox_2->setText(QApplication::translate("Form", "Include p&ictures", 0)); - checkBox->setText(QApplication::translate("Form", "&Compress", 0)); - radioButton_2_2->setText(QApplication::translate("Form", "&HTML", 0)); - radioButton_3->setText(QApplication::translate("Form", "&PostScript", 0)); - radioButton_4->setText(QApplication::translate("Form", "PD&F", 0)); - checkBox_3->setText(QApplication::translate("Form", "Include &metadata", 0)); - checkBox_4->setText(QApplication::translate("Form", "Create inde&x", 0)); + Form->setWindowTitle(QApplication::translate("Form", "Export Document", Q_NULLPTR)); + groupBox->setTitle(QApplication::translate("Form", "Export Options", Q_NULLPTR)); + radioButton_2->setText(QApplication::translate("Form", "&DocBook", Q_NULLPTR)); + radioButton->setText(QApplication::translate("Form", "&LaTeX", Q_NULLPTR)); + checkBox_2->setText(QApplication::translate("Form", "Include p&ictures", Q_NULLPTR)); + checkBox->setText(QApplication::translate("Form", "&Compress", Q_NULLPTR)); + radioButton_2_2->setText(QApplication::translate("Form", "&HTML", Q_NULLPTR)); + radioButton_3->setText(QApplication::translate("Form", "&PostScript", Q_NULLPTR)); + radioButton_4->setText(QApplication::translate("Form", "PD&F", Q_NULLPTR)); + checkBox_3->setText(QApplication::translate("Form", "Include &metadata", Q_NULLPTR)); + checkBox_4->setText(QApplication::translate("Form", "Create inde&x", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/newactiondialog.ui.h b/tests/auto/tools/uic/baseline/newactiondialog.ui.h index 7d43379d28..eab492eaba 100644 --- a/tests/auto/tools/uic/baseline/newactiondialog.ui.h +++ b/tests/auto/tools/uic/baseline/newactiondialog.ui.h @@ -167,10 +167,10 @@ public: void retranslateUi(QDialog *qdesigner_internal__NewActionDialog) { - qdesigner_internal__NewActionDialog->setWindowTitle(QApplication::translate("qdesigner_internal::NewActionDialog", "New Action...", 0)); - label->setText(QApplication::translate("qdesigner_internal::NewActionDialog", "&Text:", 0)); - label_3->setText(QApplication::translate("qdesigner_internal::NewActionDialog", "Object &name:", 0)); - label_2->setText(QApplication::translate("qdesigner_internal::NewActionDialog", "&Icon:", 0)); + qdesigner_internal__NewActionDialog->setWindowTitle(QApplication::translate("qdesigner_internal::NewActionDialog", "New Action...", Q_NULLPTR)); + label->setText(QApplication::translate("qdesigner_internal::NewActionDialog", "&Text:", Q_NULLPTR)); + label_3->setText(QApplication::translate("qdesigner_internal::NewActionDialog", "Object &name:", Q_NULLPTR)); + label_2->setText(QApplication::translate("qdesigner_internal::NewActionDialog", "&Icon:", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/newdynamicpropertydialog.ui.h b/tests/auto/tools/uic/baseline/newdynamicpropertydialog.ui.h index 3c4e0ba09e..43a7250737 100644 --- a/tests/auto/tools/uic/baseline/newdynamicpropertydialog.ui.h +++ b/tests/auto/tools/uic/baseline/newdynamicpropertydialog.ui.h @@ -111,9 +111,9 @@ public: void retranslateUi(QDialog *qdesigner_internal__NewDynamicPropertyDialog) { - qdesigner_internal__NewDynamicPropertyDialog->setWindowTitle(QApplication::translate("qdesigner_internal::NewDynamicPropertyDialog", "Create Dynamic Property", 0)); - label->setText(QApplication::translate("qdesigner_internal::NewDynamicPropertyDialog", "Property Name", 0)); - label_2->setText(QApplication::translate("qdesigner_internal::NewDynamicPropertyDialog", "Property Type", 0)); + qdesigner_internal__NewDynamicPropertyDialog->setWindowTitle(QApplication::translate("qdesigner_internal::NewDynamicPropertyDialog", "Create Dynamic Property", Q_NULLPTR)); + label->setText(QApplication::translate("qdesigner_internal::NewDynamicPropertyDialog", "Property Name", Q_NULLPTR)); + label_2->setText(QApplication::translate("qdesigner_internal::NewDynamicPropertyDialog", "Property Type", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/newform.ui.h b/tests/auto/tools/uic/baseline/newform.ui.h index c5eb226322..f1ec2f02a4 100644 --- a/tests/auto/tools/uic/baseline/newform.ui.h +++ b/tests/auto/tools/uic/baseline/newform.ui.h @@ -139,11 +139,11 @@ public: void retranslateUi(QDialog *NewForm) { - NewForm->setWindowTitle(QApplication::translate("NewForm", "New Form", 0)); + NewForm->setWindowTitle(QApplication::translate("NewForm", "New Form", Q_NULLPTR)); QTreeWidgetItem *___qtreewidgetitem = treeWidget->headerItem(); - ___qtreewidgetitem->setText(0, QApplication::translate("NewForm", "0", 0)); - lblPreview->setText(QApplication::translate("NewForm", "Choose a template for a preview", 0)); - chkShowOnStartup->setText(QApplication::translate("NewForm", "Show this Dialog on Startup", 0)); + ___qtreewidgetitem->setText(0, QApplication::translate("NewForm", "0", Q_NULLPTR)); + lblPreview->setText(QApplication::translate("NewForm", "Choose a template for a preview", Q_NULLPTR)); + chkShowOnStartup->setText(QApplication::translate("NewForm", "Show this Dialog on Startup", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/orderdialog.ui.h b/tests/auto/tools/uic/baseline/orderdialog.ui.h index d51273e664..e9655dc95a 100644 --- a/tests/auto/tools/uic/baseline/orderdialog.ui.h +++ b/tests/auto/tools/uic/baseline/orderdialog.ui.h @@ -138,13 +138,13 @@ public: void retranslateUi(QDialog *qdesigner_internal__OrderDialog) { - qdesigner_internal__OrderDialog->setWindowTitle(QApplication::translate("qdesigner_internal::OrderDialog", "Change Page Order", 0)); - groupBox->setTitle(QApplication::translate("qdesigner_internal::OrderDialog", "Page Order", 0)); + qdesigner_internal__OrderDialog->setWindowTitle(QApplication::translate("qdesigner_internal::OrderDialog", "Change Page Order", Q_NULLPTR)); + groupBox->setTitle(QApplication::translate("qdesigner_internal::OrderDialog", "Page Order", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - upButton->setToolTip(QApplication::translate("qdesigner_internal::OrderDialog", "Move page up", 0)); + upButton->setToolTip(QApplication::translate("qdesigner_internal::OrderDialog", "Move page up", Q_NULLPTR)); #endif // QT_NO_TOOLTIP #ifndef QT_NO_TOOLTIP - downButton->setToolTip(QApplication::translate("qdesigner_internal::OrderDialog", "Move page down", 0)); + downButton->setToolTip(QApplication::translate("qdesigner_internal::OrderDialog", "Move page down", Q_NULLPTR)); #endif // QT_NO_TOOLTIP } // retranslateUi diff --git a/tests/auto/tools/uic/baseline/outputpage.ui.h b/tests/auto/tools/uic/baseline/outputpage.ui.h index 4adb76e642..6d0c392f7e 100644 --- a/tests/auto/tools/uic/baseline/outputpage.ui.h +++ b/tests/auto/tools/uic/baseline/outputpage.ui.h @@ -90,9 +90,9 @@ public: void retranslateUi(QWidget *OutputPage) { - OutputPage->setWindowTitle(QApplication::translate("OutputPage", "Form", 0)); - label->setText(QApplication::translate("OutputPage", "Project file name:", 0)); - label_2->setText(QApplication::translate("OutputPage", "Collection file name:", 0)); + OutputPage->setWindowTitle(QApplication::translate("OutputPage", "Form", Q_NULLPTR)); + label->setText(QApplication::translate("OutputPage", "Project file name:", Q_NULLPTR)); + label_2->setText(QApplication::translate("OutputPage", "Collection file name:", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/pagefold.ui.h b/tests/auto/tools/uic/baseline/pagefold.ui.h index e9ec66f4e9..b82c8d7fbd 100644 --- a/tests/auto/tools/uic/baseline/pagefold.ui.h +++ b/tests/auto/tools/uic/baseline/pagefold.ui.h @@ -233,88 +233,88 @@ public: void retranslateUi(QMainWindow *MainWindow) { - MainWindow->setWindowTitle(QApplication::translate("MainWindow", "MainWindow", 0)); - exitAction->setText(QApplication::translate("MainWindow", "&Exit", 0)); - aboutQtAction->setText(QApplication::translate("MainWindow", "About Qt", 0)); - editStyleAction->setText(QApplication::translate("MainWindow", "Edit &Style", 0)); - aboutAction->setText(QApplication::translate("MainWindow", "About", 0)); + MainWindow->setWindowTitle(QApplication::translate("MainWindow", "MainWindow", Q_NULLPTR)); + exitAction->setText(QApplication::translate("MainWindow", "&Exit", Q_NULLPTR)); + aboutQtAction->setText(QApplication::translate("MainWindow", "About Qt", Q_NULLPTR)); + editStyleAction->setText(QApplication::translate("MainWindow", "Edit &Style", Q_NULLPTR)); + aboutAction->setText(QApplication::translate("MainWindow", "About", Q_NULLPTR)); nameCombo->clear(); nameCombo->insertItems(0, QStringList() - << QApplication::translate("MainWindow", "Girish", 0) - << QApplication::translate("MainWindow", "Jasmin", 0) - << QApplication::translate("MainWindow", "Simon", 0) - << QApplication::translate("MainWindow", "Zack", 0) + << QApplication::translate("MainWindow", "Girish", Q_NULLPTR) + << QApplication::translate("MainWindow", "Jasmin", Q_NULLPTR) + << QApplication::translate("MainWindow", "Simon", Q_NULLPTR) + << QApplication::translate("MainWindow", "Zack", Q_NULLPTR) ); #ifndef QT_NO_TOOLTIP - nameCombo->setToolTip(QApplication::translate("MainWindow", "Specify your name", 0)); + nameCombo->setToolTip(QApplication::translate("MainWindow", "Specify your name", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - femaleRadioButton->setStyleSheet(QApplication::translate("MainWindow", "Check this if you are female", 0)); - femaleRadioButton->setText(QApplication::translate("MainWindow", "&Female", 0)); - genderLabel->setText(QApplication::translate("MainWindow", "Gender:", 0)); - ageLabel->setText(QApplication::translate("MainWindow", "&Age:", 0)); + femaleRadioButton->setStyleSheet(QApplication::translate("MainWindow", "Check this if you are female", Q_NULLPTR)); + femaleRadioButton->setText(QApplication::translate("MainWindow", "&Female", Q_NULLPTR)); + genderLabel->setText(QApplication::translate("MainWindow", "Gender:", Q_NULLPTR)); + ageLabel->setText(QApplication::translate("MainWindow", "&Age:", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - maleRadioButton->setToolTip(QApplication::translate("MainWindow", "Check this if you are male", 0)); + maleRadioButton->setToolTip(QApplication::translate("MainWindow", "Check this if you are male", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - maleRadioButton->setText(QApplication::translate("MainWindow", "&Male", 0)); - nameLabel->setText(QApplication::translate("MainWindow", "&Name:", 0)); - passwordLabel->setText(QApplication::translate("MainWindow", "&Password:", 0)); + maleRadioButton->setText(QApplication::translate("MainWindow", "&Male", Q_NULLPTR)); + nameLabel->setText(QApplication::translate("MainWindow", "&Name:", Q_NULLPTR)); + passwordLabel->setText(QApplication::translate("MainWindow", "&Password:", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - ageSpinBox->setToolTip(QApplication::translate("MainWindow", "Specify your age", 0)); + ageSpinBox->setToolTip(QApplication::translate("MainWindow", "Specify your age", Q_NULLPTR)); #endif // QT_NO_TOOLTIP #ifndef QT_NO_STATUSTIP - ageSpinBox->setStatusTip(QApplication::translate("MainWindow", "Specify your age", 0)); + ageSpinBox->setStatusTip(QApplication::translate("MainWindow", "Specify your age", Q_NULLPTR)); #endif // QT_NO_STATUSTIP #ifndef QT_NO_TOOLTIP - agreeCheckBox->setToolTip(QApplication::translate("MainWindow", "Please read the LICENSE file before checking", 0)); + agreeCheckBox->setToolTip(QApplication::translate("MainWindow", "Please read the LICENSE file before checking", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - agreeCheckBox->setText(QApplication::translate("MainWindow", "I &accept the terms and &conditions", 0)); + agreeCheckBox->setText(QApplication::translate("MainWindow", "I &accept the terms and &conditions", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - passwordEdit->setToolTip(QApplication::translate("MainWindow", "Specify your password", 0)); + passwordEdit->setToolTip(QApplication::translate("MainWindow", "Specify your password", Q_NULLPTR)); #endif // QT_NO_TOOLTIP #ifndef QT_NO_STATUSTIP - passwordEdit->setStatusTip(QApplication::translate("MainWindow", "Specify your password", 0)); + passwordEdit->setStatusTip(QApplication::translate("MainWindow", "Specify your password", Q_NULLPTR)); #endif // QT_NO_STATUSTIP - passwordEdit->setText(QApplication::translate("MainWindow", "Password", 0)); + passwordEdit->setText(QApplication::translate("MainWindow", "Password", Q_NULLPTR)); const bool __sortingEnabled = professionList->isSortingEnabled(); professionList->setSortingEnabled(false); QListWidgetItem *___qlistwidgetitem = professionList->item(0); - ___qlistwidgetitem->setText(QApplication::translate("MainWindow", "Developer", 0)); + ___qlistwidgetitem->setText(QApplication::translate("MainWindow", "Developer", Q_NULLPTR)); QListWidgetItem *___qlistwidgetitem1 = professionList->item(1); - ___qlistwidgetitem1->setText(QApplication::translate("MainWindow", "Student", 0)); + ___qlistwidgetitem1->setText(QApplication::translate("MainWindow", "Student", Q_NULLPTR)); QListWidgetItem *___qlistwidgetitem2 = professionList->item(2); - ___qlistwidgetitem2->setText(QApplication::translate("MainWindow", "Fisherman", 0)); + ___qlistwidgetitem2->setText(QApplication::translate("MainWindow", "Fisherman", Q_NULLPTR)); professionList->setSortingEnabled(__sortingEnabled); #ifndef QT_NO_TOOLTIP - professionList->setToolTip(QApplication::translate("MainWindow", "Select your profession", 0)); + professionList->setToolTip(QApplication::translate("MainWindow", "Select your profession", Q_NULLPTR)); #endif // QT_NO_TOOLTIP #ifndef QT_NO_STATUSTIP - professionList->setStatusTip(QApplication::translate("MainWindow", "Specify your name here", 0)); + professionList->setStatusTip(QApplication::translate("MainWindow", "Specify your name here", Q_NULLPTR)); #endif // QT_NO_STATUSTIP #ifndef QT_NO_WHATSTHIS - professionList->setWhatsThis(QApplication::translate("MainWindow", "Specify your name here", 0)); + professionList->setWhatsThis(QApplication::translate("MainWindow", "Specify your name here", Q_NULLPTR)); #endif // QT_NO_WHATSTHIS - label->setText(QApplication::translate("MainWindow", "Profession:", 0)); + label->setText(QApplication::translate("MainWindow", "Profession:", Q_NULLPTR)); countryCombo->clear(); countryCombo->insertItems(0, QStringList() - << QApplication::translate("MainWindow", "Egypt", 0) - << QApplication::translate("MainWindow", "France", 0) - << QApplication::translate("MainWindow", "Germany", 0) - << QApplication::translate("MainWindow", "India", 0) - << QApplication::translate("MainWindow", "Italy", 0) - << QApplication::translate("MainWindow", "Korea", 0) - << QApplication::translate("MainWindow", "Norway", 0) + << QApplication::translate("MainWindow", "Egypt", Q_NULLPTR) + << QApplication::translate("MainWindow", "France", Q_NULLPTR) + << QApplication::translate("MainWindow", "Germany", Q_NULLPTR) + << QApplication::translate("MainWindow", "India", Q_NULLPTR) + << QApplication::translate("MainWindow", "Italy", Q_NULLPTR) + << QApplication::translate("MainWindow", "Korea", Q_NULLPTR) + << QApplication::translate("MainWindow", "Norway", Q_NULLPTR) ); #ifndef QT_NO_TOOLTIP - countryCombo->setToolTip(QApplication::translate("MainWindow", "Specify country of origin", 0)); + countryCombo->setToolTip(QApplication::translate("MainWindow", "Specify country of origin", Q_NULLPTR)); #endif // QT_NO_TOOLTIP #ifndef QT_NO_STATUSTIP - countryCombo->setStatusTip(QApplication::translate("MainWindow", "Specify country of origin", 0)); + countryCombo->setStatusTip(QApplication::translate("MainWindow", "Specify country of origin", Q_NULLPTR)); #endif // QT_NO_STATUSTIP - countryLabel->setText(QApplication::translate("MainWindow", "Pro&fession", 0)); - menu_File->setTitle(QApplication::translate("MainWindow", "&File", 0)); - menu_Help->setTitle(QApplication::translate("MainWindow", "&Help", 0)); + countryLabel->setText(QApplication::translate("MainWindow", "Pro&fession", Q_NULLPTR)); + menu_File->setTitle(QApplication::translate("MainWindow", "&File", Q_NULLPTR)); + menu_Help->setTitle(QApplication::translate("MainWindow", "&Help", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/paletteeditor.ui.h b/tests/auto/tools/uic/baseline/paletteeditor.ui.h index 85d5bff8fb..8bd94ae7f8 100644 --- a/tests/auto/tools/uic/baseline/paletteeditor.ui.h +++ b/tests/auto/tools/uic/baseline/paletteeditor.ui.h @@ -204,16 +204,16 @@ public: void retranslateUi(QDialog *qdesigner_internal__PaletteEditor) { - qdesigner_internal__PaletteEditor->setWindowTitle(QApplication::translate("qdesigner_internal::PaletteEditor", "Edit Palette", 0)); - advancedBox->setTitle(QApplication::translate("qdesigner_internal::PaletteEditor", "Tune Palette", 0)); + qdesigner_internal__PaletteEditor->setWindowTitle(QApplication::translate("qdesigner_internal::PaletteEditor", "Edit Palette", Q_NULLPTR)); + advancedBox->setTitle(QApplication::translate("qdesigner_internal::PaletteEditor", "Tune Palette", Q_NULLPTR)); buildButton->setText(QString()); - detailsRadio->setText(QApplication::translate("qdesigner_internal::PaletteEditor", "Show Details", 0)); - computeRadio->setText(QApplication::translate("qdesigner_internal::PaletteEditor", "Compute Details", 0)); - label->setText(QApplication::translate("qdesigner_internal::PaletteEditor", "Quick", 0)); - GroupBox126->setTitle(QApplication::translate("qdesigner_internal::PaletteEditor", "Preview", 0)); - disabledRadio->setText(QApplication::translate("qdesigner_internal::PaletteEditor", "Disabled", 0)); - inactiveRadio->setText(QApplication::translate("qdesigner_internal::PaletteEditor", "Inactive", 0)); - activeRadio->setText(QApplication::translate("qdesigner_internal::PaletteEditor", "Active", 0)); + detailsRadio->setText(QApplication::translate("qdesigner_internal::PaletteEditor", "Show Details", Q_NULLPTR)); + computeRadio->setText(QApplication::translate("qdesigner_internal::PaletteEditor", "Compute Details", Q_NULLPTR)); + label->setText(QApplication::translate("qdesigner_internal::PaletteEditor", "Quick", Q_NULLPTR)); + GroupBox126->setTitle(QApplication::translate("qdesigner_internal::PaletteEditor", "Preview", Q_NULLPTR)); + disabledRadio->setText(QApplication::translate("qdesigner_internal::PaletteEditor", "Disabled", Q_NULLPTR)); + inactiveRadio->setText(QApplication::translate("qdesigner_internal::PaletteEditor", "Inactive", Q_NULLPTR)); + activeRadio->setText(QApplication::translate("qdesigner_internal::PaletteEditor", "Active", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/passworddialog.ui.h b/tests/auto/tools/uic/baseline/passworddialog.ui.h index b99954ab88..a9c9ed842f 100644 --- a/tests/auto/tools/uic/baseline/passworddialog.ui.h +++ b/tests/auto/tools/uic/baseline/passworddialog.ui.h @@ -101,11 +101,11 @@ public: void retranslateUi(QDialog *PasswordDialog) { - PasswordDialog->setWindowTitle(QApplication::translate("PasswordDialog", "Authentication Required", 0)); - iconLabel->setText(QApplication::translate("PasswordDialog", "DUMMY ICON", 0)); - introLabel->setText(QApplication::translate("PasswordDialog", "INTRO TEXT DUMMY", 0)); - label->setText(QApplication::translate("PasswordDialog", "Username:", 0)); - lblPassword->setText(QApplication::translate("PasswordDialog", "Password:", 0)); + PasswordDialog->setWindowTitle(QApplication::translate("PasswordDialog", "Authentication Required", Q_NULLPTR)); + iconLabel->setText(QApplication::translate("PasswordDialog", "DUMMY ICON", Q_NULLPTR)); + introLabel->setText(QApplication::translate("PasswordDialog", "INTRO TEXT DUMMY", Q_NULLPTR)); + label->setText(QApplication::translate("PasswordDialog", "Username:", Q_NULLPTR)); + lblPassword->setText(QApplication::translate("PasswordDialog", "Password:", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/pathpage.ui.h b/tests/auto/tools/uic/baseline/pathpage.ui.h index 018e62c091..10a11d5fbd 100644 --- a/tests/auto/tools/uic/baseline/pathpage.ui.h +++ b/tests/auto/tools/uic/baseline/pathpage.ui.h @@ -107,11 +107,11 @@ public: void retranslateUi(QWidget *PathPage) { - PathPage->setWindowTitle(QApplication::translate("PathPage", "Form", 0)); - label_2->setText(QApplication::translate("PathPage", "File filters:", 0)); - label->setText(QApplication::translate("PathPage", "Documentation source file paths:", 0)); - addButton->setText(QApplication::translate("PathPage", "Add", 0)); - removeButton->setText(QApplication::translate("PathPage", "Remove", 0)); + PathPage->setWindowTitle(QApplication::translate("PathPage", "Form", Q_NULLPTR)); + label_2->setText(QApplication::translate("PathPage", "File filters:", Q_NULLPTR)); + label->setText(QApplication::translate("PathPage", "Documentation source file paths:", Q_NULLPTR)); + addButton->setText(QApplication::translate("PathPage", "Add", Q_NULLPTR)); + removeButton->setText(QApplication::translate("PathPage", "Remove", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/phrasebookbox.ui.h b/tests/auto/tools/uic/baseline/phrasebookbox.ui.h index 0fb6522be8..caf80e7dda 100644 --- a/tests/auto/tools/uic/baseline/phrasebookbox.ui.h +++ b/tests/auto/tools/uic/baseline/phrasebookbox.ui.h @@ -191,38 +191,38 @@ public: void retranslateUi(QDialog *PhraseBookBox) { - PhraseBookBox->setWindowTitle(QApplication::translate("PhraseBookBox", "Edit Phrase Book", 0)); + PhraseBookBox->setWindowTitle(QApplication::translate("PhraseBookBox", "Edit Phrase Book", Q_NULLPTR)); #ifndef QT_NO_WHATSTHIS - PhraseBookBox->setWhatsThis(QApplication::translate("PhraseBookBox", "This window allows you to add, modify, or delete phrases in a phrase book.", 0)); + PhraseBookBox->setWhatsThis(QApplication::translate("PhraseBookBox", "This window allows you to add, modify, or delete phrases in a phrase book.", Q_NULLPTR)); #endif // QT_NO_WHATSTHIS - target->setText(QApplication::translate("PhraseBookBox", "&Translation:", 0)); + target->setText(QApplication::translate("PhraseBookBox", "&Translation:", Q_NULLPTR)); #ifndef QT_NO_WHATSTHIS - targetLed->setWhatsThis(QApplication::translate("PhraseBookBox", "This is the phrase in the target language corresponding to the source phrase.", 0)); + targetLed->setWhatsThis(QApplication::translate("PhraseBookBox", "This is the phrase in the target language corresponding to the source phrase.", Q_NULLPTR)); #endif // QT_NO_WHATSTHIS - source->setText(QApplication::translate("PhraseBookBox", "S&ource phrase:", 0)); + source->setText(QApplication::translate("PhraseBookBox", "S&ource phrase:", Q_NULLPTR)); #ifndef QT_NO_WHATSTHIS - definitionLed->setWhatsThis(QApplication::translate("PhraseBookBox", "This is a definition for the source phrase.", 0)); + definitionLed->setWhatsThis(QApplication::translate("PhraseBookBox", "This is a definition for the source phrase.", Q_NULLPTR)); #endif // QT_NO_WHATSTHIS #ifndef QT_NO_WHATSTHIS - sourceLed->setWhatsThis(QApplication::translate("PhraseBookBox", "This is the phrase in the source language.", 0)); + sourceLed->setWhatsThis(QApplication::translate("PhraseBookBox", "This is the phrase in the source language.", Q_NULLPTR)); #endif // QT_NO_WHATSTHIS - definition->setText(QApplication::translate("PhraseBookBox", "&Definition:", 0)); + definition->setText(QApplication::translate("PhraseBookBox", "&Definition:", Q_NULLPTR)); #ifndef QT_NO_WHATSTHIS - newBut->setWhatsThis(QApplication::translate("PhraseBookBox", "Click here to add the phrase to the phrase book.", 0)); + newBut->setWhatsThis(QApplication::translate("PhraseBookBox", "Click here to add the phrase to the phrase book.", Q_NULLPTR)); #endif // QT_NO_WHATSTHIS - newBut->setText(QApplication::translate("PhraseBookBox", "&New Phrase", 0)); + newBut->setText(QApplication::translate("PhraseBookBox", "&New Phrase", Q_NULLPTR)); #ifndef QT_NO_WHATSTHIS - removeBut->setWhatsThis(QApplication::translate("PhraseBookBox", "Click here to remove the phrase from the phrase book.", 0)); + removeBut->setWhatsThis(QApplication::translate("PhraseBookBox", "Click here to remove the phrase from the phrase book.", Q_NULLPTR)); #endif // QT_NO_WHATSTHIS - removeBut->setText(QApplication::translate("PhraseBookBox", "&Remove Phrase", 0)); + removeBut->setText(QApplication::translate("PhraseBookBox", "&Remove Phrase", Q_NULLPTR)); #ifndef QT_NO_WHATSTHIS - saveBut->setWhatsThis(QApplication::translate("PhraseBookBox", "Click here to save the changes made.", 0)); + saveBut->setWhatsThis(QApplication::translate("PhraseBookBox", "Click here to save the changes made.", Q_NULLPTR)); #endif // QT_NO_WHATSTHIS - saveBut->setText(QApplication::translate("PhraseBookBox", "&Save", 0)); + saveBut->setText(QApplication::translate("PhraseBookBox", "&Save", Q_NULLPTR)); #ifndef QT_NO_WHATSTHIS - closeBut->setWhatsThis(QApplication::translate("PhraseBookBox", "Click here to close this window.", 0)); + closeBut->setWhatsThis(QApplication::translate("PhraseBookBox", "Click here to close this window.", Q_NULLPTR)); #endif // QT_NO_WHATSTHIS - closeBut->setText(QApplication::translate("PhraseBookBox", "Close", 0)); + closeBut->setText(QApplication::translate("PhraseBookBox", "Close", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/plugindialog.ui.h b/tests/auto/tools/uic/baseline/plugindialog.ui.h index 1553e910b4..312c48565c 100644 --- a/tests/auto/tools/uic/baseline/plugindialog.ui.h +++ b/tests/auto/tools/uic/baseline/plugindialog.ui.h @@ -118,11 +118,11 @@ public: void retranslateUi(QDialog *PluginDialog) { - PluginDialog->setWindowTitle(QApplication::translate("PluginDialog", "Plugin Information", 0)); - label->setText(QApplication::translate("PluginDialog", "TextLabel", 0)); + PluginDialog->setWindowTitle(QApplication::translate("PluginDialog", "Plugin Information", Q_NULLPTR)); + label->setText(QApplication::translate("PluginDialog", "TextLabel", Q_NULLPTR)); QTreeWidgetItem *___qtreewidgetitem = treeWidget->headerItem(); - ___qtreewidgetitem->setText(0, QApplication::translate("PluginDialog", "1", 0)); - message->setText(QApplication::translate("PluginDialog", "TextLabel", 0)); + ___qtreewidgetitem->setText(0, QApplication::translate("PluginDialog", "1", Q_NULLPTR)); + message->setText(QApplication::translate("PluginDialog", "TextLabel", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/preferencesdialog.ui.h b/tests/auto/tools/uic/baseline/preferencesdialog.ui.h index 2c4d08c547..078d13a7f5 100644 --- a/tests/auto/tools/uic/baseline/preferencesdialog.ui.h +++ b/tests/auto/tools/uic/baseline/preferencesdialog.ui.h @@ -153,11 +153,11 @@ public: void retranslateUi(QDialog *PreferencesDialog) { - PreferencesDialog->setWindowTitle(QApplication::translate("PreferencesDialog", "Preferences", 0)); - m_uiModeGroupBox->setTitle(QApplication::translate("PreferencesDialog", "User Interface Mode", 0)); - m_templatePathGroupBox->setTitle(QApplication::translate("PreferencesDialog", "Additional Template Paths", 0)); - m_addTemplatePathButton->setText(QApplication::translate("PreferencesDialog", "...", 0)); - m_removeTemplatePathButton->setText(QApplication::translate("PreferencesDialog", "...", 0)); + PreferencesDialog->setWindowTitle(QApplication::translate("PreferencesDialog", "Preferences", Q_NULLPTR)); + m_uiModeGroupBox->setTitle(QApplication::translate("PreferencesDialog", "User Interface Mode", Q_NULLPTR)); + m_templatePathGroupBox->setTitle(QApplication::translate("PreferencesDialog", "Additional Template Paths", Q_NULLPTR)); + m_addTemplatePathButton->setText(QApplication::translate("PreferencesDialog", "...", Q_NULLPTR)); + m_removeTemplatePathButton->setText(QApplication::translate("PreferencesDialog", "...", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/previewconfigurationwidget.ui.h b/tests/auto/tools/uic/baseline/previewconfigurationwidget.ui.h index 11051c7a15..3209e203e8 100644 --- a/tests/auto/tools/uic/baseline/previewconfigurationwidget.ui.h +++ b/tests/auto/tools/uic/baseline/previewconfigurationwidget.ui.h @@ -111,14 +111,14 @@ public: void retranslateUi(QGroupBox *PreviewConfigurationWidget) { - PreviewConfigurationWidget->setWindowTitle(QApplication::translate("PreviewConfigurationWidget", "Form", 0)); - PreviewConfigurationWidget->setTitle(QApplication::translate("PreviewConfigurationWidget", "Print/Preview Configuration", 0)); - m_styleLabel->setText(QApplication::translate("PreviewConfigurationWidget", "Style", 0)); - m_appStyleSheetLabel->setText(QApplication::translate("PreviewConfigurationWidget", "Style sheet", 0)); - m_appStyleSheetChangeButton->setText(QApplication::translate("PreviewConfigurationWidget", "...", 0)); - m_appStyleSheetClearButton->setText(QApplication::translate("PreviewConfigurationWidget", "...", 0)); - m_skinLabel->setText(QApplication::translate("PreviewConfigurationWidget", "Device skin", 0)); - m_skinRemoveButton->setText(QApplication::translate("PreviewConfigurationWidget", "...", 0)); + PreviewConfigurationWidget->setWindowTitle(QApplication::translate("PreviewConfigurationWidget", "Form", Q_NULLPTR)); + PreviewConfigurationWidget->setTitle(QApplication::translate("PreviewConfigurationWidget", "Print/Preview Configuration", Q_NULLPTR)); + m_styleLabel->setText(QApplication::translate("PreviewConfigurationWidget", "Style", Q_NULLPTR)); + m_appStyleSheetLabel->setText(QApplication::translate("PreviewConfigurationWidget", "Style sheet", Q_NULLPTR)); + m_appStyleSheetChangeButton->setText(QApplication::translate("PreviewConfigurationWidget", "...", Q_NULLPTR)); + m_appStyleSheetClearButton->setText(QApplication::translate("PreviewConfigurationWidget", "...", Q_NULLPTR)); + m_skinLabel->setText(QApplication::translate("PreviewConfigurationWidget", "Device skin", Q_NULLPTR)); + m_skinRemoveButton->setText(QApplication::translate("PreviewConfigurationWidget", "...", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/previewdialogbase.ui.h b/tests/auto/tools/uic/baseline/previewdialogbase.ui.h index d717ac91af..de046d575a 100644 --- a/tests/auto/tools/uic/baseline/previewdialogbase.ui.h +++ b/tests/auto/tools/uic/baseline/previewdialogbase.ui.h @@ -172,11 +172,11 @@ public: void retranslateUi(QDialog *PreviewDialogBase) { - PreviewDialogBase->setWindowTitle(QApplication::translate("PreviewDialogBase", "Print Preview", 0)); - label->setText(QApplication::translate("PreviewDialogBase", "&Paper Size:", 0)); - label_2->setText(QApplication::translate("PreviewDialogBase", "&Orientation:", 0)); + PreviewDialogBase->setWindowTitle(QApplication::translate("PreviewDialogBase", "Print Preview", Q_NULLPTR)); + label->setText(QApplication::translate("PreviewDialogBase", "&Paper Size:", Q_NULLPTR)); + label_2->setText(QApplication::translate("PreviewDialogBase", "&Orientation:", Q_NULLPTR)); QTreeWidgetItem *___qtreewidgetitem = pageList->headerItem(); - ___qtreewidgetitem->setText(0, QApplication::translate("PreviewDialogBase", "1", 0)); + ___qtreewidgetitem->setText(0, QApplication::translate("PreviewDialogBase", "1", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/previewwidget.ui.h b/tests/auto/tools/uic/baseline/previewwidget.ui.h index a641ea7054..cc7240d950 100644 --- a/tests/auto/tools/uic/baseline/previewwidget.ui.h +++ b/tests/auto/tools/uic/baseline/previewwidget.ui.h @@ -242,20 +242,20 @@ public: void retranslateUi(QWidget *qdesigner_internal__PreviewWidget) { - qdesigner_internal__PreviewWidget->setWindowTitle(QApplication::translate("qdesigner_internal::PreviewWidget", "Preview Window", 0)); - LineEdit1->setText(QApplication::translate("qdesigner_internal::PreviewWidget", "LineEdit", 0)); + qdesigner_internal__PreviewWidget->setWindowTitle(QApplication::translate("qdesigner_internal::PreviewWidget", "Preview Window", Q_NULLPTR)); + LineEdit1->setText(QApplication::translate("qdesigner_internal::PreviewWidget", "LineEdit", Q_NULLPTR)); ComboBox1->clear(); ComboBox1->insertItems(0, QStringList() - << QApplication::translate("qdesigner_internal::PreviewWidget", "ComboBox", 0) + << QApplication::translate("qdesigner_internal::PreviewWidget", "ComboBox", Q_NULLPTR) ); - PushButton1->setText(QApplication::translate("qdesigner_internal::PreviewWidget", "PushButton", 0)); - ButtonGroup2->setTitle(QApplication::translate("qdesigner_internal::PreviewWidget", "ButtonGroup2", 0)); - CheckBox1->setText(QApplication::translate("qdesigner_internal::PreviewWidget", "CheckBox1", 0)); - CheckBox2->setText(QApplication::translate("qdesigner_internal::PreviewWidget", "CheckBox2", 0)); - ButtonGroup1->setTitle(QApplication::translate("qdesigner_internal::PreviewWidget", "ButtonGroup", 0)); - RadioButton1->setText(QApplication::translate("qdesigner_internal::PreviewWidget", "RadioButton1", 0)); - RadioButton2->setText(QApplication::translate("qdesigner_internal::PreviewWidget", "RadioButton2", 0)); - RadioButton3->setText(QApplication::translate("qdesigner_internal::PreviewWidget", "RadioButton3", 0)); + PushButton1->setText(QApplication::translate("qdesigner_internal::PreviewWidget", "PushButton", Q_NULLPTR)); + ButtonGroup2->setTitle(QApplication::translate("qdesigner_internal::PreviewWidget", "ButtonGroup2", Q_NULLPTR)); + CheckBox1->setText(QApplication::translate("qdesigner_internal::PreviewWidget", "CheckBox1", Q_NULLPTR)); + CheckBox2->setText(QApplication::translate("qdesigner_internal::PreviewWidget", "CheckBox2", Q_NULLPTR)); + ButtonGroup1->setTitle(QApplication::translate("qdesigner_internal::PreviewWidget", "ButtonGroup", Q_NULLPTR)); + RadioButton1->setText(QApplication::translate("qdesigner_internal::PreviewWidget", "RadioButton1", Q_NULLPTR)); + RadioButton2->setText(QApplication::translate("qdesigner_internal::PreviewWidget", "RadioButton2", Q_NULLPTR)); + RadioButton3->setText(QApplication::translate("qdesigner_internal::PreviewWidget", "RadioButton3", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/proxy.ui.h b/tests/auto/tools/uic/baseline/proxy.ui.h index d311478853..79a33251b7 100644 --- a/tests/auto/tools/uic/baseline/proxy.ui.h +++ b/tests/auto/tools/uic/baseline/proxy.ui.h @@ -90,11 +90,11 @@ public: void retranslateUi(QDialog *ProxyDialog) { - ProxyDialog->setWindowTitle(QApplication::translate("ProxyDialog", "Proxy Authentication", 0)); - iconLabel->setText(QApplication::translate("ProxyDialog", "ICON", 0)); - introLabel->setText(QApplication::translate("ProxyDialog", "Connect to proxy", 0)); - usernameLabel->setText(QApplication::translate("ProxyDialog", "Username:", 0)); - passwordLabel->setText(QApplication::translate("ProxyDialog", "Password:", 0)); + ProxyDialog->setWindowTitle(QApplication::translate("ProxyDialog", "Proxy Authentication", Q_NULLPTR)); + iconLabel->setText(QApplication::translate("ProxyDialog", "ICON", Q_NULLPTR)); + introLabel->setText(QApplication::translate("ProxyDialog", "Connect to proxy", Q_NULLPTR)); + usernameLabel->setText(QApplication::translate("ProxyDialog", "Username:", Q_NULLPTR)); + passwordLabel->setText(QApplication::translate("ProxyDialog", "Password:", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/qfiledialog.ui.h b/tests/auto/tools/uic/baseline/qfiledialog.ui.h index eb38bd06c3..79e8fdf66b 100644 --- a/tests/auto/tools/uic/baseline/qfiledialog.ui.h +++ b/tests/auto/tools/uic/baseline/qfiledialog.ui.h @@ -278,26 +278,26 @@ public: void retranslateUi(QDialog *QFileDialog) { - lookInLabel->setText(QApplication::translate("QFileDialog", "Look in:", 0)); + lookInLabel->setText(QApplication::translate("QFileDialog", "Look in:", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - backButton->setToolTip(QApplication::translate("QFileDialog", "Back", 0)); + backButton->setToolTip(QApplication::translate("QFileDialog", "Back", Q_NULLPTR)); #endif // QT_NO_TOOLTIP #ifndef QT_NO_TOOLTIP - forwardButton->setToolTip(QApplication::translate("QFileDialog", "Forward", 0)); + forwardButton->setToolTip(QApplication::translate("QFileDialog", "Forward", Q_NULLPTR)); #endif // QT_NO_TOOLTIP #ifndef QT_NO_TOOLTIP - toParentButton->setToolTip(QApplication::translate("QFileDialog", "Parent Directory", 0)); + toParentButton->setToolTip(QApplication::translate("QFileDialog", "Parent Directory", Q_NULLPTR)); #endif // QT_NO_TOOLTIP #ifndef QT_NO_TOOLTIP - newFolderButton->setToolTip(QApplication::translate("QFileDialog", "Create New Folder", 0)); + newFolderButton->setToolTip(QApplication::translate("QFileDialog", "Create New Folder", Q_NULLPTR)); #endif // QT_NO_TOOLTIP #ifndef QT_NO_TOOLTIP - listModeButton->setToolTip(QApplication::translate("QFileDialog", "List View", 0)); + listModeButton->setToolTip(QApplication::translate("QFileDialog", "List View", Q_NULLPTR)); #endif // QT_NO_TOOLTIP #ifndef QT_NO_TOOLTIP - detailModeButton->setToolTip(QApplication::translate("QFileDialog", "Detail View", 0)); + detailModeButton->setToolTip(QApplication::translate("QFileDialog", "Detail View", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - fileTypeLabel->setText(QApplication::translate("QFileDialog", "Files of type:", 0)); + fileTypeLabel->setText(QApplication::translate("QFileDialog", "Files of type:", Q_NULLPTR)); Q_UNUSED(QFileDialog); } // retranslateUi diff --git a/tests/auto/tools/uic/baseline/qpagesetupwidget.ui.h b/tests/auto/tools/uic/baseline/qpagesetupwidget.ui.h index 48f840f2f8..0c6fc92ea2 100644 --- a/tests/auto/tools/uic/baseline/qpagesetupwidget.ui.h +++ b/tests/auto/tools/uic/baseline/qpagesetupwidget.ui.h @@ -269,41 +269,41 @@ public: void retranslateUi(QWidget *QPageSetupWidget) { - QPageSetupWidget->setWindowTitle(QApplication::translate("QPageSetupWidget", "Form", 0)); - groupBox_2->setTitle(QApplication::translate("QPageSetupWidget", "Paper", 0)); - pageSizeLabel->setText(QApplication::translate("QPageSetupWidget", "Page size:", 0)); - widthLabel->setText(QApplication::translate("QPageSetupWidget", "Width:", 0)); - heightLabel->setText(QApplication::translate("QPageSetupWidget", "Height:", 0)); - paperSourceLabel->setText(QApplication::translate("QPageSetupWidget", "Paper source:", 0)); - groupBox_3->setTitle(QApplication::translate("QPageSetupWidget", "Orientation", 0)); - portrait->setText(QApplication::translate("QPageSetupWidget", "Portrait", 0)); - landscape->setText(QApplication::translate("QPageSetupWidget", "Landscape", 0)); - reverseLandscape->setText(QApplication::translate("QPageSetupWidget", "Reverse landscape", 0)); - reversePortrait->setText(QApplication::translate("QPageSetupWidget", "Reverse portrait", 0)); - groupBox->setTitle(QApplication::translate("QPageSetupWidget", "Margins", 0)); + QPageSetupWidget->setWindowTitle(QApplication::translate("QPageSetupWidget", "Form", Q_NULLPTR)); + groupBox_2->setTitle(QApplication::translate("QPageSetupWidget", "Paper", Q_NULLPTR)); + pageSizeLabel->setText(QApplication::translate("QPageSetupWidget", "Page size:", Q_NULLPTR)); + widthLabel->setText(QApplication::translate("QPageSetupWidget", "Width:", Q_NULLPTR)); + heightLabel->setText(QApplication::translate("QPageSetupWidget", "Height:", Q_NULLPTR)); + paperSourceLabel->setText(QApplication::translate("QPageSetupWidget", "Paper source:", Q_NULLPTR)); + groupBox_3->setTitle(QApplication::translate("QPageSetupWidget", "Orientation", Q_NULLPTR)); + portrait->setText(QApplication::translate("QPageSetupWidget", "Portrait", Q_NULLPTR)); + landscape->setText(QApplication::translate("QPageSetupWidget", "Landscape", Q_NULLPTR)); + reverseLandscape->setText(QApplication::translate("QPageSetupWidget", "Reverse landscape", Q_NULLPTR)); + reversePortrait->setText(QApplication::translate("QPageSetupWidget", "Reverse portrait", Q_NULLPTR)); + groupBox->setTitle(QApplication::translate("QPageSetupWidget", "Margins", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - topMargin->setToolTip(QApplication::translate("QPageSetupWidget", "top margin", 0)); + topMargin->setToolTip(QApplication::translate("QPageSetupWidget", "top margin", Q_NULLPTR)); #endif // QT_NO_TOOLTIP #ifndef QT_NO_ACCESSIBILITY - topMargin->setAccessibleName(QApplication::translate("QPageSetupWidget", "top margin", 0)); + topMargin->setAccessibleName(QApplication::translate("QPageSetupWidget", "top margin", Q_NULLPTR)); #endif // QT_NO_ACCESSIBILITY #ifndef QT_NO_TOOLTIP - leftMargin->setToolTip(QApplication::translate("QPageSetupWidget", "left margin", 0)); + leftMargin->setToolTip(QApplication::translate("QPageSetupWidget", "left margin", Q_NULLPTR)); #endif // QT_NO_TOOLTIP #ifndef QT_NO_ACCESSIBILITY - leftMargin->setAccessibleName(QApplication::translate("QPageSetupWidget", "left margin", 0)); + leftMargin->setAccessibleName(QApplication::translate("QPageSetupWidget", "left margin", Q_NULLPTR)); #endif // QT_NO_ACCESSIBILITY #ifndef QT_NO_TOOLTIP - rightMargin->setToolTip(QApplication::translate("QPageSetupWidget", "right margin", 0)); + rightMargin->setToolTip(QApplication::translate("QPageSetupWidget", "right margin", Q_NULLPTR)); #endif // QT_NO_TOOLTIP #ifndef QT_NO_ACCESSIBILITY - rightMargin->setAccessibleName(QApplication::translate("QPageSetupWidget", "right margin", 0)); + rightMargin->setAccessibleName(QApplication::translate("QPageSetupWidget", "right margin", Q_NULLPTR)); #endif // QT_NO_ACCESSIBILITY #ifndef QT_NO_TOOLTIP - bottomMargin->setToolTip(QApplication::translate("QPageSetupWidget", "bottom margin", 0)); + bottomMargin->setToolTip(QApplication::translate("QPageSetupWidget", "bottom margin", Q_NULLPTR)); #endif // QT_NO_TOOLTIP #ifndef QT_NO_ACCESSIBILITY - bottomMargin->setAccessibleName(QApplication::translate("QPageSetupWidget", "bottom margin", 0)); + bottomMargin->setAccessibleName(QApplication::translate("QPageSetupWidget", "bottom margin", Q_NULLPTR)); #endif // QT_NO_ACCESSIBILITY } // retranslateUi diff --git a/tests/auto/tools/uic/baseline/qprintpropertieswidget.ui.h b/tests/auto/tools/uic/baseline/qprintpropertieswidget.ui.h index 7251f05300..dcd6ca6efd 100644 --- a/tests/auto/tools/uic/baseline/qprintpropertieswidget.ui.h +++ b/tests/auto/tools/uic/baseline/qprintpropertieswidget.ui.h @@ -81,9 +81,9 @@ public: void retranslateUi(QWidget *QPrintPropertiesWidget) { - QPrintPropertiesWidget->setWindowTitle(QApplication::translate("QPrintPropertiesWidget", "Form", 0)); - tabs->setTabText(tabs->indexOf(tabPage), QApplication::translate("QPrintPropertiesWidget", "Page", 0)); - tabs->setTabText(tabs->indexOf(cupsPropertiesPage), QApplication::translate("QPrintPropertiesWidget", "Advanced", 0)); + QPrintPropertiesWidget->setWindowTitle(QApplication::translate("QPrintPropertiesWidget", "Form", Q_NULLPTR)); + tabs->setTabText(tabs->indexOf(tabPage), QApplication::translate("QPrintPropertiesWidget", "Page", Q_NULLPTR)); + tabs->setTabText(tabs->indexOf(cupsPropertiesPage), QApplication::translate("QPrintPropertiesWidget", "Advanced", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/qprintsettingsoutput.ui.h b/tests/auto/tools/uic/baseline/qprintsettingsoutput.ui.h index f3816965dd..a11709c014 100644 --- a/tests/auto/tools/uic/baseline/qprintsettingsoutput.ui.h +++ b/tests/auto/tools/uic/baseline/qprintsettingsoutput.ui.h @@ -279,25 +279,25 @@ public: void retranslateUi(QWidget *QPrintSettingsOutput) { - QPrintSettingsOutput->setWindowTitle(QApplication::translate("QPrintSettingsOutput", "Form", 0)); - gbPrintRange->setTitle(QApplication::translate("QPrintSettingsOutput", "Print range", 0)); - printAll->setText(QApplication::translate("QPrintSettingsOutput", "Print all", 0)); - printRange->setText(QApplication::translate("QPrintSettingsOutput", "Pages from", 0)); - label_3->setText(QApplication::translate("QPrintSettingsOutput", "to", 0)); - printSelection->setText(QApplication::translate("QPrintSettingsOutput", "Selection", 0)); - groupBox->setTitle(QApplication::translate("QPrintSettingsOutput", "Output Settings", 0)); - label->setText(QApplication::translate("QPrintSettingsOutput", "Copies:", 0)); - collate->setText(QApplication::translate("QPrintSettingsOutput", "Collate", 0)); - reverse->setText(QApplication::translate("QPrintSettingsOutput", "Reverse", 0)); - tabs->setTabText(tabs->indexOf(copiesTab), QApplication::translate("QPrintSettingsOutput", "Copies", 0)); - colorMode->setTitle(QApplication::translate("QPrintSettingsOutput", "Color Mode", 0)); - color->setText(QApplication::translate("QPrintSettingsOutput", "Color", 0)); - grayscale->setText(QApplication::translate("QPrintSettingsOutput", "Grayscale", 0)); - duplex->setTitle(QApplication::translate("QPrintSettingsOutput", "Duplex Printing", 0)); - noDuplex->setText(QApplication::translate("QPrintSettingsOutput", "None", 0)); - duplexLong->setText(QApplication::translate("QPrintSettingsOutput", "Long side", 0)); - duplexShort->setText(QApplication::translate("QPrintSettingsOutput", "Short side", 0)); - tabs->setTabText(tabs->indexOf(optionsTab), QApplication::translate("QPrintSettingsOutput", "Options", 0)); + QPrintSettingsOutput->setWindowTitle(QApplication::translate("QPrintSettingsOutput", "Form", Q_NULLPTR)); + gbPrintRange->setTitle(QApplication::translate("QPrintSettingsOutput", "Print range", Q_NULLPTR)); + printAll->setText(QApplication::translate("QPrintSettingsOutput", "Print all", Q_NULLPTR)); + printRange->setText(QApplication::translate("QPrintSettingsOutput", "Pages from", Q_NULLPTR)); + label_3->setText(QApplication::translate("QPrintSettingsOutput", "to", Q_NULLPTR)); + printSelection->setText(QApplication::translate("QPrintSettingsOutput", "Selection", Q_NULLPTR)); + groupBox->setTitle(QApplication::translate("QPrintSettingsOutput", "Output Settings", Q_NULLPTR)); + label->setText(QApplication::translate("QPrintSettingsOutput", "Copies:", Q_NULLPTR)); + collate->setText(QApplication::translate("QPrintSettingsOutput", "Collate", Q_NULLPTR)); + reverse->setText(QApplication::translate("QPrintSettingsOutput", "Reverse", Q_NULLPTR)); + tabs->setTabText(tabs->indexOf(copiesTab), QApplication::translate("QPrintSettingsOutput", "Copies", Q_NULLPTR)); + colorMode->setTitle(QApplication::translate("QPrintSettingsOutput", "Color Mode", Q_NULLPTR)); + color->setText(QApplication::translate("QPrintSettingsOutput", "Color", Q_NULLPTR)); + grayscale->setText(QApplication::translate("QPrintSettingsOutput", "Grayscale", Q_NULLPTR)); + duplex->setTitle(QApplication::translate("QPrintSettingsOutput", "Duplex Printing", Q_NULLPTR)); + noDuplex->setText(QApplication::translate("QPrintSettingsOutput", "None", Q_NULLPTR)); + duplexLong->setText(QApplication::translate("QPrintSettingsOutput", "Long side", Q_NULLPTR)); + duplexShort->setText(QApplication::translate("QPrintSettingsOutput", "Short side", Q_NULLPTR)); + tabs->setTabText(tabs->indexOf(optionsTab), QApplication::translate("QPrintSettingsOutput", "Options", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/qprintwidget.ui.h b/tests/auto/tools/uic/baseline/qprintwidget.ui.h index 0358176321..7a81f3daf5 100644 --- a/tests/auto/tools/uic/baseline/qprintwidget.ui.h +++ b/tests/auto/tools/uic/baseline/qprintwidget.ui.h @@ -143,15 +143,15 @@ public: void retranslateUi(QWidget *QPrintWidget) { - QPrintWidget->setWindowTitle(QApplication::translate("QPrintWidget", "Form", 0)); - printerGroup->setTitle(QApplication::translate("QPrintWidget", "Printer", 0)); - label->setText(QApplication::translate("QPrintWidget", "&Name:", 0)); - properties->setText(QApplication::translate("QPrintWidget", "P&roperties", 0)); - label_2->setText(QApplication::translate("QPrintWidget", "Location:", 0)); - preview->setText(QApplication::translate("QPrintWidget", "Preview", 0)); - label_3->setText(QApplication::translate("QPrintWidget", "Type:", 0)); - lOutput->setText(QApplication::translate("QPrintWidget", "Output &file:", 0)); - fileBrowser->setText(QApplication::translate("QPrintWidget", "...", 0)); + QPrintWidget->setWindowTitle(QApplication::translate("QPrintWidget", "Form", Q_NULLPTR)); + printerGroup->setTitle(QApplication::translate("QPrintWidget", "Printer", Q_NULLPTR)); + label->setText(QApplication::translate("QPrintWidget", "&Name:", Q_NULLPTR)); + properties->setText(QApplication::translate("QPrintWidget", "P&roperties", Q_NULLPTR)); + label_2->setText(QApplication::translate("QPrintWidget", "Location:", Q_NULLPTR)); + preview->setText(QApplication::translate("QPrintWidget", "Preview", Q_NULLPTR)); + label_3->setText(QApplication::translate("QPrintWidget", "Type:", Q_NULLPTR)); + lOutput->setText(QApplication::translate("QPrintWidget", "Output &file:", Q_NULLPTR)); + fileBrowser->setText(QApplication::translate("QPrintWidget", "...", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/qsqlconnectiondialog.ui.h b/tests/auto/tools/uic/baseline/qsqlconnectiondialog.ui.h index 31edb426fe..bffb9a1b63 100644 --- a/tests/auto/tools/uic/baseline/qsqlconnectiondialog.ui.h +++ b/tests/auto/tools/uic/baseline/qsqlconnectiondialog.ui.h @@ -209,18 +209,18 @@ public: void retranslateUi(QDialog *QSqlConnectionDialogUi) { - QSqlConnectionDialogUi->setWindowTitle(QApplication::translate("QSqlConnectionDialogUi", "Connect...", 0)); - connGroupBox->setTitle(QApplication::translate("QSqlConnectionDialogUi", "Connection settings", 0)); - textLabel4->setText(QApplication::translate("QSqlConnectionDialogUi", "&Username:", 0)); - textLabel2->setText(QApplication::translate("QSqlConnectionDialogUi", "D&river", 0)); - portSpinBox->setSpecialValueText(QApplication::translate("QSqlConnectionDialogUi", "Default", 0)); - textLabel3->setText(QApplication::translate("QSqlConnectionDialogUi", "Database Name:", 0)); - textLabel5->setText(QApplication::translate("QSqlConnectionDialogUi", "&Hostname:", 0)); - textLabel5_2->setText(QApplication::translate("QSqlConnectionDialogUi", "P&ort:", 0)); - textLabel4_2->setText(QApplication::translate("QSqlConnectionDialogUi", "&Password:", 0)); - dbCheckBox->setText(QApplication::translate("QSqlConnectionDialogUi", "Us&e predefined in-memory database", 0)); - okButton->setText(QApplication::translate("QSqlConnectionDialogUi", "&OK", 0)); - cancelButton->setText(QApplication::translate("QSqlConnectionDialogUi", "&Cancel", 0)); + QSqlConnectionDialogUi->setWindowTitle(QApplication::translate("QSqlConnectionDialogUi", "Connect...", Q_NULLPTR)); + connGroupBox->setTitle(QApplication::translate("QSqlConnectionDialogUi", "Connection settings", Q_NULLPTR)); + textLabel4->setText(QApplication::translate("QSqlConnectionDialogUi", "&Username:", Q_NULLPTR)); + textLabel2->setText(QApplication::translate("QSqlConnectionDialogUi", "D&river", Q_NULLPTR)); + portSpinBox->setSpecialValueText(QApplication::translate("QSqlConnectionDialogUi", "Default", Q_NULLPTR)); + textLabel3->setText(QApplication::translate("QSqlConnectionDialogUi", "Database Name:", Q_NULLPTR)); + textLabel5->setText(QApplication::translate("QSqlConnectionDialogUi", "&Hostname:", Q_NULLPTR)); + textLabel5_2->setText(QApplication::translate("QSqlConnectionDialogUi", "P&ort:", Q_NULLPTR)); + textLabel4_2->setText(QApplication::translate("QSqlConnectionDialogUi", "&Password:", Q_NULLPTR)); + dbCheckBox->setText(QApplication::translate("QSqlConnectionDialogUi", "Us&e predefined in-memory database", Q_NULLPTR)); + okButton->setText(QApplication::translate("QSqlConnectionDialogUi", "&OK", Q_NULLPTR)); + cancelButton->setText(QApplication::translate("QSqlConnectionDialogUi", "&Cancel", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/qtgradientdialog.ui.h b/tests/auto/tools/uic/baseline/qtgradientdialog.ui.h index e1503c7009..53dd11636f 100644 --- a/tests/auto/tools/uic/baseline/qtgradientdialog.ui.h +++ b/tests/auto/tools/uic/baseline/qtgradientdialog.ui.h @@ -97,7 +97,7 @@ public: void retranslateUi(QDialog *QtGradientDialog) { - QtGradientDialog->setWindowTitle(QApplication::translate("QtGradientDialog", "Edit Gradient", 0)); + QtGradientDialog->setWindowTitle(QApplication::translate("QtGradientDialog", "Edit Gradient", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/qtgradienteditor.ui.h b/tests/auto/tools/uic/baseline/qtgradienteditor.ui.h index 5a148d1e31..702879e479 100644 --- a/tests/auto/tools/uic/baseline/qtgradienteditor.ui.h +++ b/tests/auto/tools/uic/baseline/qtgradienteditor.ui.h @@ -591,119 +591,119 @@ public: void retranslateUi(QWidget *QtGradientEditor) { - QtGradientEditor->setWindowTitle(QApplication::translate("QtGradientEditor", "Form", 0)); + QtGradientEditor->setWindowTitle(QApplication::translate("QtGradientEditor", "Form", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - gradientWidget->setToolTip(QApplication::translate("QtGradientEditor", "Gradient Editor", 0)); + gradientWidget->setToolTip(QApplication::translate("QtGradientEditor", "Gradient Editor", Q_NULLPTR)); #endif // QT_NO_TOOLTIP #ifndef QT_NO_WHATSTHIS - gradientWidget->setWhatsThis(QApplication::translate("QtGradientEditor", "This area shows a preview of the gradient being edited. It also allows you to edit parameters specific to the gradient's type such as start and final point, radius, etc. by drag & drop.", 0)); + gradientWidget->setWhatsThis(QApplication::translate("QtGradientEditor", "This area shows a preview of the gradient being edited. It also allows you to edit parameters specific to the gradient's type such as start and final point, radius, etc. by drag & drop.", Q_NULLPTR)); #endif // QT_NO_WHATSTHIS - label1->setText(QApplication::translate("QtGradientEditor", "1", 0)); - label2->setText(QApplication::translate("QtGradientEditor", "2", 0)); - label3->setText(QApplication::translate("QtGradientEditor", "3", 0)); - label4->setText(QApplication::translate("QtGradientEditor", "4", 0)); - label5->setText(QApplication::translate("QtGradientEditor", "5", 0)); + label1->setText(QApplication::translate("QtGradientEditor", "1", Q_NULLPTR)); + label2->setText(QApplication::translate("QtGradientEditor", "2", Q_NULLPTR)); + label3->setText(QApplication::translate("QtGradientEditor", "3", Q_NULLPTR)); + label4->setText(QApplication::translate("QtGradientEditor", "4", Q_NULLPTR)); + label5->setText(QApplication::translate("QtGradientEditor", "5", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - gradientStopsWidget->setToolTip(QApplication::translate("QtGradientEditor", "Gradient Stops Editor", 0)); + gradientStopsWidget->setToolTip(QApplication::translate("QtGradientEditor", "Gradient Stops Editor", Q_NULLPTR)); #endif // QT_NO_TOOLTIP #ifndef QT_NO_WHATSTHIS - gradientStopsWidget->setWhatsThis(QApplication::translate("QtGradientEditor", "This area allows you to edit gradient stops. Double click on the existing stop handle to duplicate it. Double click outside of the existing stop handles to create a new stop. Drag & drop the handle to reposition it. Use right mouse button to popup context menu with extra actions.", 0)); + gradientStopsWidget->setWhatsThis(QApplication::translate("QtGradientEditor", "This area allows you to edit gradient stops. Double click on the existing stop handle to duplicate it. Double click outside of the existing stop handles to create a new stop. Drag & drop the handle to reposition it. Use right mouse button to popup context menu with extra actions.", Q_NULLPTR)); #endif // QT_NO_WHATSTHIS - zoomLabel->setText(QApplication::translate("QtGradientEditor", "Zoom", 0)); + zoomLabel->setText(QApplication::translate("QtGradientEditor", "Zoom", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - zoomAllButton->setToolTip(QApplication::translate("QtGradientEditor", "Reset Zoom", 0)); + zoomAllButton->setToolTip(QApplication::translate("QtGradientEditor", "Reset Zoom", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - zoomAllButton->setText(QApplication::translate("QtGradientEditor", "Reset Zoom", 0)); - positionLabel->setText(QApplication::translate("QtGradientEditor", "Position", 0)); + zoomAllButton->setText(QApplication::translate("QtGradientEditor", "Reset Zoom", Q_NULLPTR)); + positionLabel->setText(QApplication::translate("QtGradientEditor", "Position", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - hLabel->setToolTip(QApplication::translate("QtGradientEditor", "Hue", 0)); + hLabel->setToolTip(QApplication::translate("QtGradientEditor", "Hue", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - hLabel->setText(QApplication::translate("QtGradientEditor", "H", 0)); + hLabel->setText(QApplication::translate("QtGradientEditor", "H", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - hueColorLine->setToolTip(QApplication::translate("QtGradientEditor", "Hue", 0)); + hueColorLine->setToolTip(QApplication::translate("QtGradientEditor", "Hue", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - hueLabel->setText(QApplication::translate("QtGradientEditor", "Hue", 0)); + hueLabel->setText(QApplication::translate("QtGradientEditor", "Hue", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - sLabel->setToolTip(QApplication::translate("QtGradientEditor", "Saturation", 0)); + sLabel->setToolTip(QApplication::translate("QtGradientEditor", "Saturation", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - sLabel->setText(QApplication::translate("QtGradientEditor", "S", 0)); + sLabel->setText(QApplication::translate("QtGradientEditor", "S", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - saturationColorLine->setToolTip(QApplication::translate("QtGradientEditor", "Saturation", 0)); + saturationColorLine->setToolTip(QApplication::translate("QtGradientEditor", "Saturation", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - saturationLabel->setText(QApplication::translate("QtGradientEditor", "Sat", 0)); + saturationLabel->setText(QApplication::translate("QtGradientEditor", "Sat", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - vLabel->setToolTip(QApplication::translate("QtGradientEditor", "Value", 0)); + vLabel->setToolTip(QApplication::translate("QtGradientEditor", "Value", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - vLabel->setText(QApplication::translate("QtGradientEditor", "V", 0)); + vLabel->setText(QApplication::translate("QtGradientEditor", "V", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - valueColorLine->setToolTip(QApplication::translate("QtGradientEditor", "Value", 0)); + valueColorLine->setToolTip(QApplication::translate("QtGradientEditor", "Value", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - valueLabel->setText(QApplication::translate("QtGradientEditor", "Val", 0)); + valueLabel->setText(QApplication::translate("QtGradientEditor", "Val", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - aLabel->setToolTip(QApplication::translate("QtGradientEditor", "Alpha", 0)); + aLabel->setToolTip(QApplication::translate("QtGradientEditor", "Alpha", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - aLabel->setText(QApplication::translate("QtGradientEditor", "A", 0)); + aLabel->setText(QApplication::translate("QtGradientEditor", "A", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - alphaColorLine->setToolTip(QApplication::translate("QtGradientEditor", "Alpha", 0)); + alphaColorLine->setToolTip(QApplication::translate("QtGradientEditor", "Alpha", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - alphaLabel->setText(QApplication::translate("QtGradientEditor", "Alpha", 0)); + alphaLabel->setText(QApplication::translate("QtGradientEditor", "Alpha", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - typeComboBox->setToolTip(QApplication::translate("QtGradientEditor", "Type", 0)); + typeComboBox->setToolTip(QApplication::translate("QtGradientEditor", "Type", Q_NULLPTR)); #endif // QT_NO_TOOLTIP #ifndef QT_NO_TOOLTIP - spreadComboBox->setToolTip(QApplication::translate("QtGradientEditor", "Spread", 0)); + spreadComboBox->setToolTip(QApplication::translate("QtGradientEditor", "Spread", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - colorLabel->setText(QApplication::translate("QtGradientEditor", "Color", 0)); + colorLabel->setText(QApplication::translate("QtGradientEditor", "Color", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - colorButton->setToolTip(QApplication::translate("QtGradientEditor", "Current stop's color", 0)); + colorButton->setToolTip(QApplication::translate("QtGradientEditor", "Current stop's color", Q_NULLPTR)); #endif // QT_NO_TOOLTIP colorButton->setText(QString()); #ifndef QT_NO_TOOLTIP - hsvRadioButton->setToolTip(QApplication::translate("QtGradientEditor", "Show HSV specification", 0)); + hsvRadioButton->setToolTip(QApplication::translate("QtGradientEditor", "Show HSV specification", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - hsvRadioButton->setText(QApplication::translate("QtGradientEditor", "HSV", 0)); + hsvRadioButton->setText(QApplication::translate("QtGradientEditor", "HSV", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - rgbRadioButton->setToolTip(QApplication::translate("QtGradientEditor", "Show RGB specification", 0)); + rgbRadioButton->setToolTip(QApplication::translate("QtGradientEditor", "Show RGB specification", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - rgbRadioButton->setText(QApplication::translate("QtGradientEditor", "RGB", 0)); + rgbRadioButton->setText(QApplication::translate("QtGradientEditor", "RGB", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - positionSpinBox->setToolTip(QApplication::translate("QtGradientEditor", "Current stop's position", 0)); + positionSpinBox->setToolTip(QApplication::translate("QtGradientEditor", "Current stop's position", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - zoomSpinBox->setSuffix(QApplication::translate("QtGradientEditor", "%", 0)); + zoomSpinBox->setSuffix(QApplication::translate("QtGradientEditor", "%", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - zoomInButton->setToolTip(QApplication::translate("QtGradientEditor", "Zoom In", 0)); + zoomInButton->setToolTip(QApplication::translate("QtGradientEditor", "Zoom In", Q_NULLPTR)); #endif // QT_NO_TOOLTIP #ifndef QT_NO_TOOLTIP - zoomOutButton->setToolTip(QApplication::translate("QtGradientEditor", "Zoom Out", 0)); + zoomOutButton->setToolTip(QApplication::translate("QtGradientEditor", "Zoom Out", Q_NULLPTR)); #endif // QT_NO_TOOLTIP #ifndef QT_NO_TOOLTIP - detailsButton->setToolTip(QApplication::translate("QtGradientEditor", "Toggle details extension", 0)); + detailsButton->setToolTip(QApplication::translate("QtGradientEditor", "Toggle details extension", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - detailsButton->setText(QApplication::translate("QtGradientEditor", ">", 0)); + detailsButton->setText(QApplication::translate("QtGradientEditor", ">", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - linearButton->setToolTip(QApplication::translate("QtGradientEditor", "Linear Type", 0)); + linearButton->setToolTip(QApplication::translate("QtGradientEditor", "Linear Type", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - linearButton->setText(QApplication::translate("QtGradientEditor", "...", 0)); + linearButton->setText(QApplication::translate("QtGradientEditor", "...", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - radialButton->setToolTip(QApplication::translate("QtGradientEditor", "Radial Type", 0)); + radialButton->setToolTip(QApplication::translate("QtGradientEditor", "Radial Type", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - radialButton->setText(QApplication::translate("QtGradientEditor", "...", 0)); + radialButton->setText(QApplication::translate("QtGradientEditor", "...", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - conicalButton->setToolTip(QApplication::translate("QtGradientEditor", "Conical Type", 0)); + conicalButton->setToolTip(QApplication::translate("QtGradientEditor", "Conical Type", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - conicalButton->setText(QApplication::translate("QtGradientEditor", "...", 0)); + conicalButton->setText(QApplication::translate("QtGradientEditor", "...", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - padButton->setToolTip(QApplication::translate("QtGradientEditor", "Pad Spread", 0)); + padButton->setToolTip(QApplication::translate("QtGradientEditor", "Pad Spread", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - padButton->setText(QApplication::translate("QtGradientEditor", "...", 0)); + padButton->setText(QApplication::translate("QtGradientEditor", "...", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - repeatButton->setToolTip(QApplication::translate("QtGradientEditor", "Repeat Spread", 0)); + repeatButton->setToolTip(QApplication::translate("QtGradientEditor", "Repeat Spread", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - repeatButton->setText(QApplication::translate("QtGradientEditor", "...", 0)); + repeatButton->setText(QApplication::translate("QtGradientEditor", "...", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - reflectButton->setToolTip(QApplication::translate("QtGradientEditor", "Reflect Spread", 0)); + reflectButton->setToolTip(QApplication::translate("QtGradientEditor", "Reflect Spread", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - reflectButton->setText(QApplication::translate("QtGradientEditor", "...", 0)); + reflectButton->setText(QApplication::translate("QtGradientEditor", "...", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/qtgradientview.ui.h b/tests/auto/tools/uic/baseline/qtgradientview.ui.h index 5847730235..14cb1da6b2 100644 --- a/tests/auto/tools/uic/baseline/qtgradientview.ui.h +++ b/tests/auto/tools/uic/baseline/qtgradientview.ui.h @@ -108,11 +108,11 @@ public: void retranslateUi(QWidget *QtGradientView) { - QtGradientView->setWindowTitle(QApplication::translate("QtGradientView", "Gradient View", 0)); - newButton->setText(QApplication::translate("QtGradientView", "New...", 0)); - editButton->setText(QApplication::translate("QtGradientView", "Edit...", 0)); - renameButton->setText(QApplication::translate("QtGradientView", "Rename", 0)); - removeButton->setText(QApplication::translate("QtGradientView", "Remove", 0)); + QtGradientView->setWindowTitle(QApplication::translate("QtGradientView", "Gradient View", Q_NULLPTR)); + newButton->setText(QApplication::translate("QtGradientView", "New...", Q_NULLPTR)); + editButton->setText(QApplication::translate("QtGradientView", "Edit...", Q_NULLPTR)); + renameButton->setText(QApplication::translate("QtGradientView", "Rename", Q_NULLPTR)); + removeButton->setText(QApplication::translate("QtGradientView", "Remove", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/qtgradientviewdialog.ui.h b/tests/auto/tools/uic/baseline/qtgradientviewdialog.ui.h index e2494f9107..917c0f07f9 100644 --- a/tests/auto/tools/uic/baseline/qtgradientviewdialog.ui.h +++ b/tests/auto/tools/uic/baseline/qtgradientviewdialog.ui.h @@ -97,7 +97,7 @@ public: void retranslateUi(QDialog *QtGradientViewDialog) { - QtGradientViewDialog->setWindowTitle(QApplication::translate("QtGradientViewDialog", "Select Gradient", 0)); + QtGradientViewDialog->setWindowTitle(QApplication::translate("QtGradientViewDialog", "Select Gradient", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/qtresourceeditordialog.ui.h b/tests/auto/tools/uic/baseline/qtresourceeditordialog.ui.h index 6d5f25872b..50c844cf35 100644 --- a/tests/auto/tools/uic/baseline/qtresourceeditordialog.ui.h +++ b/tests/auto/tools/uic/baseline/qtresourceeditordialog.ui.h @@ -143,25 +143,25 @@ public: void retranslateUi(QDialog *QtResourceEditorDialog) { - QtResourceEditorDialog->setWindowTitle(QApplication::translate("QtResourceEditorDialog", "Dialog", 0)); + QtResourceEditorDialog->setWindowTitle(QApplication::translate("QtResourceEditorDialog", "Dialog", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - newQrcButton->setToolTip(QApplication::translate("QtResourceEditorDialog", "New File", 0)); + newQrcButton->setToolTip(QApplication::translate("QtResourceEditorDialog", "New File", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - newQrcButton->setText(QApplication::translate("QtResourceEditorDialog", "N", 0)); + newQrcButton->setText(QApplication::translate("QtResourceEditorDialog", "N", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - removeQrcButton->setToolTip(QApplication::translate("QtResourceEditorDialog", "Remove File", 0)); + removeQrcButton->setToolTip(QApplication::translate("QtResourceEditorDialog", "Remove File", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - removeQrcButton->setText(QApplication::translate("QtResourceEditorDialog", "R", 0)); - importQrcButton->setText(QApplication::translate("QtResourceEditorDialog", "I", 0)); + removeQrcButton->setText(QApplication::translate("QtResourceEditorDialog", "R", Q_NULLPTR)); + importQrcButton->setText(QApplication::translate("QtResourceEditorDialog", "I", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - newResourceButton->setToolTip(QApplication::translate("QtResourceEditorDialog", "New Resource", 0)); + newResourceButton->setToolTip(QApplication::translate("QtResourceEditorDialog", "New Resource", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - newResourceButton->setText(QApplication::translate("QtResourceEditorDialog", "N", 0)); - addResourceButton->setText(QApplication::translate("QtResourceEditorDialog", "A", 0)); + newResourceButton->setText(QApplication::translate("QtResourceEditorDialog", "N", Q_NULLPTR)); + addResourceButton->setText(QApplication::translate("QtResourceEditorDialog", "A", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - removeResourceButton->setToolTip(QApplication::translate("QtResourceEditorDialog", "Remove Resource or File", 0)); + removeResourceButton->setToolTip(QApplication::translate("QtResourceEditorDialog", "Remove Resource or File", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - removeResourceButton->setText(QApplication::translate("QtResourceEditorDialog", "R", 0)); + removeResourceButton->setText(QApplication::translate("QtResourceEditorDialog", "R", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/qttoolbardialog.ui.h b/tests/auto/tools/uic/baseline/qttoolbardialog.ui.h index 9439b6b1d3..6694cf4ccd 100644 --- a/tests/auto/tools/uic/baseline/qttoolbardialog.ui.h +++ b/tests/auto/tools/uic/baseline/qttoolbardialog.ui.h @@ -180,40 +180,40 @@ public: void retranslateUi(QDialog *QtToolBarDialog) { - QtToolBarDialog->setWindowTitle(QApplication::translate("QtToolBarDialog", "Customize Toolbars", 0)); + QtToolBarDialog->setWindowTitle(QApplication::translate("QtToolBarDialog", "Customize Toolbars", Q_NULLPTR)); QTreeWidgetItem *___qtreewidgetitem = actionTree->headerItem(); - ___qtreewidgetitem->setText(0, QApplication::translate("QtToolBarDialog", "1", 0)); - label->setText(QApplication::translate("QtToolBarDialog", "Actions", 0)); - label_2->setText(QApplication::translate("QtToolBarDialog", "Toolbars", 0)); + ___qtreewidgetitem->setText(0, QApplication::translate("QtToolBarDialog", "1", Q_NULLPTR)); + label->setText(QApplication::translate("QtToolBarDialog", "Actions", Q_NULLPTR)); + label_2->setText(QApplication::translate("QtToolBarDialog", "Toolbars", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - newButton->setToolTip(QApplication::translate("QtToolBarDialog", "Add new toolbar", 0)); + newButton->setToolTip(QApplication::translate("QtToolBarDialog", "Add new toolbar", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - newButton->setText(QApplication::translate("QtToolBarDialog", "New", 0)); + newButton->setText(QApplication::translate("QtToolBarDialog", "New", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - removeButton->setToolTip(QApplication::translate("QtToolBarDialog", "Remove selected toolbar", 0)); + removeButton->setToolTip(QApplication::translate("QtToolBarDialog", "Remove selected toolbar", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - removeButton->setText(QApplication::translate("QtToolBarDialog", "Remove", 0)); + removeButton->setText(QApplication::translate("QtToolBarDialog", "Remove", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - renameButton->setToolTip(QApplication::translate("QtToolBarDialog", "Rename toolbar", 0)); + renameButton->setToolTip(QApplication::translate("QtToolBarDialog", "Rename toolbar", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - renameButton->setText(QApplication::translate("QtToolBarDialog", "Rename", 0)); + renameButton->setText(QApplication::translate("QtToolBarDialog", "Rename", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - upButton->setToolTip(QApplication::translate("QtToolBarDialog", "Move action up", 0)); + upButton->setToolTip(QApplication::translate("QtToolBarDialog", "Move action up", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - upButton->setText(QApplication::translate("QtToolBarDialog", "Up", 0)); + upButton->setText(QApplication::translate("QtToolBarDialog", "Up", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - leftButton->setToolTip(QApplication::translate("QtToolBarDialog", "Remove action from toolbar", 0)); + leftButton->setToolTip(QApplication::translate("QtToolBarDialog", "Remove action from toolbar", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - leftButton->setText(QApplication::translate("QtToolBarDialog", "<-", 0)); + leftButton->setText(QApplication::translate("QtToolBarDialog", "<-", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - rightButton->setToolTip(QApplication::translate("QtToolBarDialog", "Add action to toolbar", 0)); + rightButton->setToolTip(QApplication::translate("QtToolBarDialog", "Add action to toolbar", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - rightButton->setText(QApplication::translate("QtToolBarDialog", "->", 0)); + rightButton->setText(QApplication::translate("QtToolBarDialog", "->", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - downButton->setToolTip(QApplication::translate("QtToolBarDialog", "Move action down", 0)); + downButton->setToolTip(QApplication::translate("QtToolBarDialog", "Move action down", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - downButton->setText(QApplication::translate("QtToolBarDialog", "Down", 0)); - label_3->setText(QApplication::translate("QtToolBarDialog", "Current Toolbar Actions", 0)); + downButton->setText(QApplication::translate("QtToolBarDialog", "Down", Q_NULLPTR)); + label_3->setText(QApplication::translate("QtToolBarDialog", "Current Toolbar Actions", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/querywidget.ui.h b/tests/auto/tools/uic/baseline/querywidget.ui.h index 1dcf7befdd..531df0d614 100644 --- a/tests/auto/tools/uic/baseline/querywidget.ui.h +++ b/tests/auto/tools/uic/baseline/querywidget.ui.h @@ -156,10 +156,10 @@ public: void retranslateUi(QMainWindow *QueryWidget) { - QueryWidget->setWindowTitle(QApplication::translate("QueryWidget", "Recipes XQuery Example", 0)); - inputGroupBox->setTitle(QApplication::translate("QueryWidget", "Input Document", 0)); - queryGroupBox->setTitle(QApplication::translate("QueryWidget", "Select your query:", 0)); - outputGroupBox->setTitle(QApplication::translate("QueryWidget", "Output Document", 0)); + QueryWidget->setWindowTitle(QApplication::translate("QueryWidget", "Recipes XQuery Example", Q_NULLPTR)); + inputGroupBox->setTitle(QApplication::translate("QueryWidget", "Input Document", Q_NULLPTR)); + queryGroupBox->setTitle(QApplication::translate("QueryWidget", "Select your query:", Q_NULLPTR)); + outputGroupBox->setTitle(QApplication::translate("QueryWidget", "Output Document", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/remotecontrol.ui.h b/tests/auto/tools/uic/baseline/remotecontrol.ui.h index b25f940450..00af983ed7 100644 --- a/tests/auto/tools/uic/baseline/remotecontrol.ui.h +++ b/tests/auto/tools/uic/baseline/remotecontrol.ui.h @@ -223,22 +223,22 @@ public: void retranslateUi(QMainWindow *RemoteControlClass) { - RemoteControlClass->setWindowTitle(QApplication::translate("RemoteControlClass", "RemoteControl", 0)); - actionQuit->setText(QApplication::translate("RemoteControlClass", "Quit", 0)); - label->setText(QApplication::translate("RemoteControlClass", "Start URL:", 0)); - launchButton->setText(QApplication::translate("RemoteControlClass", "Launch Qt HelpViewer", 0)); - actionGroupBox->setTitle(QApplication::translate("RemoteControlClass", "Actions", 0)); - label_2->setText(QApplication::translate("RemoteControlClass", "Search in Index:", 0)); + RemoteControlClass->setWindowTitle(QApplication::translate("RemoteControlClass", "RemoteControl", Q_NULLPTR)); + actionQuit->setText(QApplication::translate("RemoteControlClass", "Quit", Q_NULLPTR)); + label->setText(QApplication::translate("RemoteControlClass", "Start URL:", Q_NULLPTR)); + launchButton->setText(QApplication::translate("RemoteControlClass", "Launch Qt HelpViewer", Q_NULLPTR)); + actionGroupBox->setTitle(QApplication::translate("RemoteControlClass", "Actions", Q_NULLPTR)); + label_2->setText(QApplication::translate("RemoteControlClass", "Search in Index:", Q_NULLPTR)); indexButton->setText(QString()); - label_4->setText(QApplication::translate("RemoteControlClass", "Identifier:", 0)); + label_4->setText(QApplication::translate("RemoteControlClass", "Identifier:", Q_NULLPTR)); identifierButton->setText(QString()); - label_3->setText(QApplication::translate("RemoteControlClass", "Show URL:", 0)); + label_3->setText(QApplication::translate("RemoteControlClass", "Show URL:", Q_NULLPTR)); urlButton->setText(QString()); - syncContentsButton->setText(QApplication::translate("RemoteControlClass", "Sync Contents", 0)); - contentsCheckBox->setText(QApplication::translate("RemoteControlClass", "Show Contents", 0)); - indexCheckBox->setText(QApplication::translate("RemoteControlClass", "Show Index", 0)); - bookmarksCheckBox->setText(QApplication::translate("RemoteControlClass", "Show Bookmarks", 0)); - menuFile->setTitle(QApplication::translate("RemoteControlClass", "File", 0)); + syncContentsButton->setText(QApplication::translate("RemoteControlClass", "Sync Contents", Q_NULLPTR)); + contentsCheckBox->setText(QApplication::translate("RemoteControlClass", "Show Contents", Q_NULLPTR)); + indexCheckBox->setText(QApplication::translate("RemoteControlClass", "Show Index", Q_NULLPTR)); + bookmarksCheckBox->setText(QApplication::translate("RemoteControlClass", "Show Bookmarks", Q_NULLPTR)); + menuFile->setTitle(QApplication::translate("RemoteControlClass", "File", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/saveformastemplate.ui.h b/tests/auto/tools/uic/baseline/saveformastemplate.ui.h index 7403088466..f4cd14d0c7 100644 --- a/tests/auto/tools/uic/baseline/saveformastemplate.ui.h +++ b/tests/auto/tools/uic/baseline/saveformastemplate.ui.h @@ -139,10 +139,10 @@ public: void retranslateUi(QDialog *SaveFormAsTemplate) { - SaveFormAsTemplate->setWindowTitle(QApplication::translate("SaveFormAsTemplate", "Save Form As Template", 0)); - label->setText(QApplication::translate("SaveFormAsTemplate", "&Name:", 0)); + SaveFormAsTemplate->setWindowTitle(QApplication::translate("SaveFormAsTemplate", "Save Form As Template", Q_NULLPTR)); + label->setText(QApplication::translate("SaveFormAsTemplate", "&Name:", Q_NULLPTR)); templateNameEdit->setText(QString()); - label_2->setText(QApplication::translate("SaveFormAsTemplate", "&Category:", 0)); + label_2->setText(QApplication::translate("SaveFormAsTemplate", "&Category:", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/settings.ui.h b/tests/auto/tools/uic/baseline/settings.ui.h index aa03609e98..7342810462 100644 --- a/tests/auto/tools/uic/baseline/settings.ui.h +++ b/tests/auto/tools/uic/baseline/settings.ui.h @@ -185,13 +185,13 @@ public: void retranslateUi(QDialog *Dialog) { - Dialog->setWindowTitle(QApplication::translate("Dialog", "Dialog", 0)); - label->setText(QApplication::translate("Dialog", "Audio device:", 0)); - label_6->setText(QApplication::translate("Dialog", "Audio effect:", 0)); - crossFadeLabel->setText(QApplication::translate("Dialog", "Cross fade:", 0)); - label_3->setText(QApplication::translate("Dialog", "-10 Sec", 0)); - label_5->setText(QApplication::translate("Dialog", "0", 0)); - label_4->setText(QApplication::translate("Dialog", "10 Sec", 0)); + Dialog->setWindowTitle(QApplication::translate("Dialog", "Dialog", Q_NULLPTR)); + label->setText(QApplication::translate("Dialog", "Audio device:", Q_NULLPTR)); + label_6->setText(QApplication::translate("Dialog", "Audio effect:", Q_NULLPTR)); + crossFadeLabel->setText(QApplication::translate("Dialog", "Cross fade:", Q_NULLPTR)); + label_3->setText(QApplication::translate("Dialog", "-10 Sec", Q_NULLPTR)); + label_5->setText(QApplication::translate("Dialog", "0", Q_NULLPTR)); + label_4->setText(QApplication::translate("Dialog", "10 Sec", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/signalslotdialog.ui.h b/tests/auto/tools/uic/baseline/signalslotdialog.ui.h index c0a72b3c91..5c1483c651 100644 --- a/tests/auto/tools/uic/baseline/signalslotdialog.ui.h +++ b/tests/auto/tools/uic/baseline/signalslotdialog.ui.h @@ -136,25 +136,25 @@ public: void retranslateUi(QDialog *SignalSlotDialogClass) { - SignalSlotDialogClass->setWindowTitle(QApplication::translate("SignalSlotDialogClass", "Signals and slots", 0)); - slotGroupBox->setTitle(QApplication::translate("SignalSlotDialogClass", "Slots", 0)); + SignalSlotDialogClass->setWindowTitle(QApplication::translate("SignalSlotDialogClass", "Signals and slots", Q_NULLPTR)); + slotGroupBox->setTitle(QApplication::translate("SignalSlotDialogClass", "Slots", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - addSlotButton->setToolTip(QApplication::translate("SignalSlotDialogClass", "Add", 0)); + addSlotButton->setToolTip(QApplication::translate("SignalSlotDialogClass", "Add", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - addSlotButton->setText(QApplication::translate("SignalSlotDialogClass", "...", 0)); + addSlotButton->setText(QApplication::translate("SignalSlotDialogClass", "...", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - removeSlotButton->setToolTip(QApplication::translate("SignalSlotDialogClass", "Delete", 0)); + removeSlotButton->setToolTip(QApplication::translate("SignalSlotDialogClass", "Delete", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - removeSlotButton->setText(QApplication::translate("SignalSlotDialogClass", "...", 0)); - signalGroupBox->setTitle(QApplication::translate("SignalSlotDialogClass", "Signals", 0)); + removeSlotButton->setText(QApplication::translate("SignalSlotDialogClass", "...", Q_NULLPTR)); + signalGroupBox->setTitle(QApplication::translate("SignalSlotDialogClass", "Signals", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - addSignalButton->setToolTip(QApplication::translate("SignalSlotDialogClass", "Add", 0)); + addSignalButton->setToolTip(QApplication::translate("SignalSlotDialogClass", "Add", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - addSignalButton->setText(QApplication::translate("SignalSlotDialogClass", "...", 0)); + addSignalButton->setText(QApplication::translate("SignalSlotDialogClass", "...", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - removeSignalButton->setToolTip(QApplication::translate("SignalSlotDialogClass", "Delete", 0)); + removeSignalButton->setToolTip(QApplication::translate("SignalSlotDialogClass", "Delete", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - removeSignalButton->setText(QApplication::translate("SignalSlotDialogClass", "...", 0)); + removeSignalButton->setText(QApplication::translate("SignalSlotDialogClass", "...", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/sslclient.ui.h b/tests/auto/tools/uic/baseline/sslclient.ui.h index f2071d8780..7c8676eec7 100644 --- a/tests/auto/tools/uic/baseline/sslclient.ui.h +++ b/tests/auto/tools/uic/baseline/sslclient.ui.h @@ -158,20 +158,20 @@ public: void retranslateUi(QWidget *Form) { - Form->setWindowTitle(QApplication::translate("Form", "Secure Socket Client", 0)); - hostNameLabel->setText(QApplication::translate("Form", "Host name:", 0)); - hostNameEdit->setText(QApplication::translate("Form", "imap.example.com", 0)); - portLabel->setText(QApplication::translate("Form", "Port:", 0)); - connectButton->setText(QApplication::translate("Form", "Connect to host", 0)); - sessionBox->setTitle(QApplication::translate("Form", "Active session", 0)); - cipherText->setText(QApplication::translate("Form", "Cryptographic Cipher:", 0)); - cipherLabel->setText(QApplication::translate("Form", "", 0)); + Form->setWindowTitle(QApplication::translate("Form", "Secure Socket Client", Q_NULLPTR)); + hostNameLabel->setText(QApplication::translate("Form", "Host name:", Q_NULLPTR)); + hostNameEdit->setText(QApplication::translate("Form", "imap.example.com", Q_NULLPTR)); + portLabel->setText(QApplication::translate("Form", "Port:", Q_NULLPTR)); + connectButton->setText(QApplication::translate("Form", "Connect to host", Q_NULLPTR)); + sessionBox->setTitle(QApplication::translate("Form", "Active session", Q_NULLPTR)); + cipherText->setText(QApplication::translate("Form", "Cryptographic Cipher:", Q_NULLPTR)); + cipherLabel->setText(QApplication::translate("Form", "", Q_NULLPTR)); sessionOutput->setHtml(QApplication::translate("Form", "\n" -"

", 0)); - sessionInputLabel->setText(QApplication::translate("Form", "Input:", 0)); - sendButton->setText(QApplication::translate("Form", "&Send", 0)); +"

", Q_NULLPTR)); + sessionInputLabel->setText(QApplication::translate("Form", "Input:", Q_NULLPTR)); + sendButton->setText(QApplication::translate("Form", "&Send", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/sslerrors.ui.h b/tests/auto/tools/uic/baseline/sslerrors.ui.h index c52c71f3aa..0149eee45a 100644 --- a/tests/auto/tools/uic/baseline/sslerrors.ui.h +++ b/tests/auto/tools/uic/baseline/sslerrors.ui.h @@ -89,14 +89,14 @@ public: void retranslateUi(QDialog *SslErrors) { - SslErrors->setWindowTitle(QApplication::translate("SslErrors", "Unable To Validate The Connection", 0)); + SslErrors->setWindowTitle(QApplication::translate("SslErrors", "Unable To Validate The Connection", Q_NULLPTR)); label->setText(QApplication::translate("SslErrors", "\n" -"

Warning: One or more errors with this connection prevent validating the authenticity of the host you are connecting to. Please review the following list of errors, and click Ignore to continue, or Cancel to abort the connection.

", 0)); - certificateChainButton->setText(QApplication::translate("SslErrors", "View Certificate Chain", 0)); - pushButton->setText(QApplication::translate("SslErrors", "Ignore", 0)); - pushButton_2->setText(QApplication::translate("SslErrors", "Cancel", 0)); +"

Warning: One or more errors with this connection prevent validating the authenticity of the host you are connecting to. Please review the following list of errors, and click Ignore to continue, or Cancel to abort the connection.

", Q_NULLPTR)); + certificateChainButton->setText(QApplication::translate("SslErrors", "View Certificate Chain", Q_NULLPTR)); + pushButton->setText(QApplication::translate("SslErrors", "Ignore", Q_NULLPTR)); + pushButton_2->setText(QApplication::translate("SslErrors", "Cancel", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/statistics.ui.h b/tests/auto/tools/uic/baseline/statistics.ui.h index 9758b6721a..261759c487 100644 --- a/tests/auto/tools/uic/baseline/statistics.ui.h +++ b/tests/auto/tools/uic/baseline/statistics.ui.h @@ -187,19 +187,19 @@ public: void retranslateUi(QDialog *Statistics) { - Statistics->setWindowTitle(QApplication::translate("Statistics", "Statistics", 0)); - closeBtn->setText(QApplication::translate("Statistics", "&Close", 0)); - textLabel4->setText(QApplication::translate("Statistics", "Translation", 0)); - textLabel5->setText(QApplication::translate("Statistics", "Source", 0)); - untrWords->setText(QApplication::translate("Statistics", "0", 0)); - trWords->setText(QApplication::translate("Statistics", "0", 0)); - textLabel1->setText(QApplication::translate("Statistics", "Words:", 0)); - trChars->setText(QApplication::translate("Statistics", "0", 0)); - untrChars->setText(QApplication::translate("Statistics", "0", 0)); - textLabel3->setText(QApplication::translate("Statistics", "Characters:", 0)); - textLabel6->setText(QApplication::translate("Statistics", "Characters (with spaces):", 0)); - trCharsSpc->setText(QApplication::translate("Statistics", "0", 0)); - untrCharsSpc->setText(QApplication::translate("Statistics", "0", 0)); + Statistics->setWindowTitle(QApplication::translate("Statistics", "Statistics", Q_NULLPTR)); + closeBtn->setText(QApplication::translate("Statistics", "&Close", Q_NULLPTR)); + textLabel4->setText(QApplication::translate("Statistics", "Translation", Q_NULLPTR)); + textLabel5->setText(QApplication::translate("Statistics", "Source", Q_NULLPTR)); + untrWords->setText(QApplication::translate("Statistics", "0", Q_NULLPTR)); + trWords->setText(QApplication::translate("Statistics", "0", Q_NULLPTR)); + textLabel1->setText(QApplication::translate("Statistics", "Words:", Q_NULLPTR)); + trChars->setText(QApplication::translate("Statistics", "0", Q_NULLPTR)); + untrChars->setText(QApplication::translate("Statistics", "0", Q_NULLPTR)); + textLabel3->setText(QApplication::translate("Statistics", "Characters:", Q_NULLPTR)); + textLabel6->setText(QApplication::translate("Statistics", "Characters (with spaces):", Q_NULLPTR)); + trCharsSpc->setText(QApplication::translate("Statistics", "0", Q_NULLPTR)); + untrCharsSpc->setText(QApplication::translate("Statistics", "0", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/stringlisteditor.ui.h b/tests/auto/tools/uic/baseline/stringlisteditor.ui.h index a1652cd0d0..f599b0fdef 100644 --- a/tests/auto/tools/uic/baseline/stringlisteditor.ui.h +++ b/tests/auto/tools/uic/baseline/stringlisteditor.ui.h @@ -222,25 +222,25 @@ public: void retranslateUi(QDialog *qdesigner_internal__Dialog) { - qdesigner_internal__Dialog->setWindowTitle(QApplication::translate("qdesigner_internal::Dialog", "Dialog", 0)); - groupBox->setTitle(QApplication::translate("qdesigner_internal::Dialog", "StringList", 0)); + qdesigner_internal__Dialog->setWindowTitle(QApplication::translate("qdesigner_internal::Dialog", "Dialog", Q_NULLPTR)); + groupBox->setTitle(QApplication::translate("qdesigner_internal::Dialog", "StringList", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - newButton->setToolTip(QApplication::translate("qdesigner_internal::Dialog", "New String", 0)); + newButton->setToolTip(QApplication::translate("qdesigner_internal::Dialog", "New String", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - newButton->setText(QApplication::translate("qdesigner_internal::Dialog", "&New", 0)); + newButton->setText(QApplication::translate("qdesigner_internal::Dialog", "&New", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - deleteButton->setToolTip(QApplication::translate("qdesigner_internal::Dialog", "Delete String", 0)); + deleteButton->setToolTip(QApplication::translate("qdesigner_internal::Dialog", "Delete String", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - deleteButton->setText(QApplication::translate("qdesigner_internal::Dialog", "&Delete", 0)); - label->setText(QApplication::translate("qdesigner_internal::Dialog", "&Value:", 0)); + deleteButton->setText(QApplication::translate("qdesigner_internal::Dialog", "&Delete", Q_NULLPTR)); + label->setText(QApplication::translate("qdesigner_internal::Dialog", "&Value:", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - upButton->setToolTip(QApplication::translate("qdesigner_internal::Dialog", "Move String Up", 0)); + upButton->setToolTip(QApplication::translate("qdesigner_internal::Dialog", "Move String Up", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - upButton->setText(QApplication::translate("qdesigner_internal::Dialog", "Up", 0)); + upButton->setText(QApplication::translate("qdesigner_internal::Dialog", "Up", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - downButton->setToolTip(QApplication::translate("qdesigner_internal::Dialog", "Move String Down", 0)); + downButton->setToolTip(QApplication::translate("qdesigner_internal::Dialog", "Move String Down", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - downButton->setText(QApplication::translate("qdesigner_internal::Dialog", "Down", 0)); + downButton->setText(QApplication::translate("qdesigner_internal::Dialog", "Down", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/stylesheeteditor.ui.h b/tests/auto/tools/uic/baseline/stylesheeteditor.ui.h index 35b45f7e94..94ffa45509 100644 --- a/tests/auto/tools/uic/baseline/stylesheeteditor.ui.h +++ b/tests/auto/tools/uic/baseline/stylesheeteditor.ui.h @@ -130,16 +130,16 @@ public: void retranslateUi(QWidget *StyleSheetEditor) { - StyleSheetEditor->setWindowTitle(QApplication::translate("StyleSheetEditor", "Style Editor", 0)); + StyleSheetEditor->setWindowTitle(QApplication::translate("StyleSheetEditor", "Style Editor", Q_NULLPTR)); styleSheetCombo->clear(); styleSheetCombo->insertItems(0, QStringList() - << QApplication::translate("StyleSheetEditor", "Default", 0) - << QApplication::translate("StyleSheetEditor", "Coffee", 0) - << QApplication::translate("StyleSheetEditor", "Pagefold", 0) + << QApplication::translate("StyleSheetEditor", "Default", Q_NULLPTR) + << QApplication::translate("StyleSheetEditor", "Coffee", Q_NULLPTR) + << QApplication::translate("StyleSheetEditor", "Pagefold", Q_NULLPTR) ); - label_7->setText(QApplication::translate("StyleSheetEditor", "Style:", 0)); - applyButton->setText(QApplication::translate("StyleSheetEditor", "&Apply", 0)); - label_8->setText(QApplication::translate("StyleSheetEditor", "Style Sheet:", 0)); + label_7->setText(QApplication::translate("StyleSheetEditor", "Style:", Q_NULLPTR)); + applyButton->setText(QApplication::translate("StyleSheetEditor", "&Apply", Q_NULLPTR)); + label_8->setText(QApplication::translate("StyleSheetEditor", "Style Sheet:", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/tabbedbrowser.ui.h b/tests/auto/tools/uic/baseline/tabbedbrowser.ui.h index 79c70c0440..571138771d 100644 --- a/tests/auto/tools/uic/baseline/tabbedbrowser.ui.h +++ b/tests/auto/tools/uic/baseline/tabbedbrowser.ui.h @@ -188,14 +188,14 @@ public: void retranslateUi(QWidget *TabbedBrowser) { - TabbedBrowser->setWindowTitle(QApplication::translate("TabbedBrowser", "TabbedBrowser", 0)); - tab->setTabText(tab->indexOf(frontpage), QApplication::translate("TabbedBrowser", "Untitled", 0)); + TabbedBrowser->setWindowTitle(QApplication::translate("TabbedBrowser", "TabbedBrowser", Q_NULLPTR)); + tab->setTabText(tab->indexOf(frontpage), QApplication::translate("TabbedBrowser", "Untitled", Q_NULLPTR)); toolClose->setText(QString()); - toolPrevious->setText(QApplication::translate("TabbedBrowser", "Previous", 0)); - toolNext->setText(QApplication::translate("TabbedBrowser", "Next", 0)); - checkCase->setText(QApplication::translate("TabbedBrowser", "Case Sensitive", 0)); - checkWholeWords->setText(QApplication::translate("TabbedBrowser", "Whole words", 0)); - labelWrapped->setText(QApplication::translate("TabbedBrowser", " Search wrapped", 0)); + toolPrevious->setText(QApplication::translate("TabbedBrowser", "Previous", Q_NULLPTR)); + toolNext->setText(QApplication::translate("TabbedBrowser", "Next", Q_NULLPTR)); + checkCase->setText(QApplication::translate("TabbedBrowser", "Case Sensitive", Q_NULLPTR)); + checkWholeWords->setText(QApplication::translate("TabbedBrowser", "Whole words", Q_NULLPTR)); + labelWrapped->setText(QApplication::translate("TabbedBrowser", " Search wrapped", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/tablewidgeteditor.ui.h b/tests/auto/tools/uic/baseline/tablewidgeteditor.ui.h index 6587b76613..ae54db7db3 100644 --- a/tests/auto/tools/uic/baseline/tablewidgeteditor.ui.h +++ b/tests/auto/tools/uic/baseline/tablewidgeteditor.ui.h @@ -318,54 +318,54 @@ public: void retranslateUi(QDialog *qdesigner_internal__TableWidgetEditor) { - qdesigner_internal__TableWidgetEditor->setWindowTitle(QApplication::translate("qdesigner_internal::TableWidgetEditor", "Edit Table Widget", 0)); - itemsBox->setTitle(QApplication::translate("qdesigner_internal::TableWidgetEditor", "Table Items", 0)); + qdesigner_internal__TableWidgetEditor->setWindowTitle(QApplication::translate("qdesigner_internal::TableWidgetEditor", "Edit Table Widget", Q_NULLPTR)); + itemsBox->setTitle(QApplication::translate("qdesigner_internal::TableWidgetEditor", "Table Items", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - tableWidget->setToolTip(QApplication::translate("qdesigner_internal::TableWidgetEditor", "Table Items", 0)); + tableWidget->setToolTip(QApplication::translate("qdesigner_internal::TableWidgetEditor", "Table Items", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - label_3->setText(QApplication::translate("qdesigner_internal::TableWidgetEditor", "Icon", 0)); - columnsBox->setTitle(QApplication::translate("qdesigner_internal::TableWidgetEditor", "Columns", 0)); + label_3->setText(QApplication::translate("qdesigner_internal::TableWidgetEditor", "Icon", Q_NULLPTR)); + columnsBox->setTitle(QApplication::translate("qdesigner_internal::TableWidgetEditor", "Columns", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - columnsListWidget->setToolTip(QApplication::translate("qdesigner_internal::TableWidgetEditor", "Table Columns", 0)); + columnsListWidget->setToolTip(QApplication::translate("qdesigner_internal::TableWidgetEditor", "Table Columns", Q_NULLPTR)); #endif // QT_NO_TOOLTIP #ifndef QT_NO_TOOLTIP - newColumnButton->setToolTip(QApplication::translate("qdesigner_internal::TableWidgetEditor", "New Column", 0)); + newColumnButton->setToolTip(QApplication::translate("qdesigner_internal::TableWidgetEditor", "New Column", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - newColumnButton->setText(QApplication::translate("qdesigner_internal::TableWidgetEditor", "New", 0)); + newColumnButton->setText(QApplication::translate("qdesigner_internal::TableWidgetEditor", "New", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - deleteColumnButton->setToolTip(QApplication::translate("qdesigner_internal::TableWidgetEditor", "Delete Column", 0)); + deleteColumnButton->setToolTip(QApplication::translate("qdesigner_internal::TableWidgetEditor", "Delete Column", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - deleteColumnButton->setText(QApplication::translate("qdesigner_internal::TableWidgetEditor", "Delete", 0)); + deleteColumnButton->setText(QApplication::translate("qdesigner_internal::TableWidgetEditor", "Delete", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - moveColumnUpButton->setToolTip(QApplication::translate("qdesigner_internal::TableWidgetEditor", "Move Column Up", 0)); + moveColumnUpButton->setToolTip(QApplication::translate("qdesigner_internal::TableWidgetEditor", "Move Column Up", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - moveColumnUpButton->setText(QApplication::translate("qdesigner_internal::TableWidgetEditor", "U", 0)); + moveColumnUpButton->setText(QApplication::translate("qdesigner_internal::TableWidgetEditor", "U", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - moveColumnDownButton->setToolTip(QApplication::translate("qdesigner_internal::TableWidgetEditor", "Move Column Down", 0)); + moveColumnDownButton->setToolTip(QApplication::translate("qdesigner_internal::TableWidgetEditor", "Move Column Down", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - moveColumnDownButton->setText(QApplication::translate("qdesigner_internal::TableWidgetEditor", "D", 0)); - label->setText(QApplication::translate("qdesigner_internal::TableWidgetEditor", "Icon", 0)); - rowsBox->setTitle(QApplication::translate("qdesigner_internal::TableWidgetEditor", "Rows", 0)); + moveColumnDownButton->setText(QApplication::translate("qdesigner_internal::TableWidgetEditor", "D", Q_NULLPTR)); + label->setText(QApplication::translate("qdesigner_internal::TableWidgetEditor", "Icon", Q_NULLPTR)); + rowsBox->setTitle(QApplication::translate("qdesigner_internal::TableWidgetEditor", "Rows", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - rowsListWidget->setToolTip(QApplication::translate("qdesigner_internal::TableWidgetEditor", "Table Rows", 0)); + rowsListWidget->setToolTip(QApplication::translate("qdesigner_internal::TableWidgetEditor", "Table Rows", Q_NULLPTR)); #endif // QT_NO_TOOLTIP #ifndef QT_NO_TOOLTIP - newRowButton->setToolTip(QApplication::translate("qdesigner_internal::TableWidgetEditor", "New Row", 0)); + newRowButton->setToolTip(QApplication::translate("qdesigner_internal::TableWidgetEditor", "New Row", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - newRowButton->setText(QApplication::translate("qdesigner_internal::TableWidgetEditor", "New", 0)); + newRowButton->setText(QApplication::translate("qdesigner_internal::TableWidgetEditor", "New", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - deleteRowButton->setToolTip(QApplication::translate("qdesigner_internal::TableWidgetEditor", "Delete Row", 0)); + deleteRowButton->setToolTip(QApplication::translate("qdesigner_internal::TableWidgetEditor", "Delete Row", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - deleteRowButton->setText(QApplication::translate("qdesigner_internal::TableWidgetEditor", "Delete", 0)); + deleteRowButton->setText(QApplication::translate("qdesigner_internal::TableWidgetEditor", "Delete", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - moveRowUpButton->setToolTip(QApplication::translate("qdesigner_internal::TableWidgetEditor", "Move Row Up", 0)); + moveRowUpButton->setToolTip(QApplication::translate("qdesigner_internal::TableWidgetEditor", "Move Row Up", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - moveRowUpButton->setText(QApplication::translate("qdesigner_internal::TableWidgetEditor", "U", 0)); + moveRowUpButton->setText(QApplication::translate("qdesigner_internal::TableWidgetEditor", "U", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - moveRowDownButton->setToolTip(QApplication::translate("qdesigner_internal::TableWidgetEditor", "Move Row Down", 0)); + moveRowDownButton->setToolTip(QApplication::translate("qdesigner_internal::TableWidgetEditor", "Move Row Down", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - moveRowDownButton->setText(QApplication::translate("qdesigner_internal::TableWidgetEditor", "D", 0)); - label_2->setText(QApplication::translate("qdesigner_internal::TableWidgetEditor", "Icon", 0)); + moveRowDownButton->setText(QApplication::translate("qdesigner_internal::TableWidgetEditor", "D", Q_NULLPTR)); + label_2->setText(QApplication::translate("qdesigner_internal::TableWidgetEditor", "Icon", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/tetrixwindow.ui.h b/tests/auto/tools/uic/baseline/tetrixwindow.ui.h index 0f945fab35..f3ec6d6fc9 100644 --- a/tests/auto/tools/uic/baseline/tetrixwindow.ui.h +++ b/tests/auto/tools/uic/baseline/tetrixwindow.ui.h @@ -150,15 +150,15 @@ public: void retranslateUi(QWidget *TetrixWindow) { - TetrixWindow->setWindowTitle(QApplication::translate("TetrixWindow", "Tetrix", 0)); - startButton->setText(QApplication::translate("TetrixWindow", "&Start", 0)); - linesRemovedLabel->setText(QApplication::translate("TetrixWindow", "LINES REMOVED", 0)); - pauseButton->setText(QApplication::translate("TetrixWindow", "&Pause", 0)); - levelLabel->setText(QApplication::translate("TetrixWindow", "LEVEL", 0)); - nextLabel->setText(QApplication::translate("TetrixWindow", "NEXT", 0)); - scoreLabel->setText(QApplication::translate("TetrixWindow", "SCORE", 0)); + TetrixWindow->setWindowTitle(QApplication::translate("TetrixWindow", "Tetrix", Q_NULLPTR)); + startButton->setText(QApplication::translate("TetrixWindow", "&Start", Q_NULLPTR)); + linesRemovedLabel->setText(QApplication::translate("TetrixWindow", "LINES REMOVED", Q_NULLPTR)); + pauseButton->setText(QApplication::translate("TetrixWindow", "&Pause", Q_NULLPTR)); + levelLabel->setText(QApplication::translate("TetrixWindow", "LEVEL", Q_NULLPTR)); + nextLabel->setText(QApplication::translate("TetrixWindow", "NEXT", Q_NULLPTR)); + scoreLabel->setText(QApplication::translate("TetrixWindow", "SCORE", Q_NULLPTR)); nextPieceLabel->setText(QString()); - quitButton->setText(QApplication::translate("TetrixWindow", "&Quit", 0)); + quitButton->setText(QApplication::translate("TetrixWindow", "&Quit", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/textfinder.ui.h b/tests/auto/tools/uic/baseline/textfinder.ui.h index 148bf11dbc..159cb54c0a 100644 --- a/tests/auto/tools/uic/baseline/textfinder.ui.h +++ b/tests/auto/tools/uic/baseline/textfinder.ui.h @@ -96,9 +96,9 @@ public: void retranslateUi(QWidget *Form) { - Form->setWindowTitle(QApplication::translate("Form", "Find Text", 0)); - searchLabel->setText(QApplication::translate("Form", "&Keyword:", 0)); - findButton->setText(QApplication::translate("Form", "&Find", 0)); + Form->setWindowTitle(QApplication::translate("Form", "Find Text", Q_NULLPTR)); + searchLabel->setText(QApplication::translate("Form", "&Keyword:", Q_NULLPTR)); + findButton->setText(QApplication::translate("Form", "&Find", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/topicchooser.ui.h b/tests/auto/tools/uic/baseline/topicchooser.ui.h index 3935a7a87b..5580b437da 100644 --- a/tests/auto/tools/uic/baseline/topicchooser.ui.h +++ b/tests/auto/tools/uic/baseline/topicchooser.ui.h @@ -103,10 +103,10 @@ public: void retranslateUi(QDialog *TopicChooser) { - TopicChooser->setWindowTitle(QApplication::translate("TopicChooser", "Choose Topic", 0)); - label->setText(QApplication::translate("TopicChooser", "&Topics", 0)); - buttonDisplay->setText(QApplication::translate("TopicChooser", "&Display", 0)); - buttonCancel->setText(QApplication::translate("TopicChooser", "&Close", 0)); + TopicChooser->setWindowTitle(QApplication::translate("TopicChooser", "Choose Topic", Q_NULLPTR)); + label->setText(QApplication::translate("TopicChooser", "&Topics", Q_NULLPTR)); + buttonDisplay->setText(QApplication::translate("TopicChooser", "&Display", Q_NULLPTR)); + buttonCancel->setText(QApplication::translate("TopicChooser", "&Close", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/translatedialog.ui.h b/tests/auto/tools/uic/baseline/translatedialog.ui.h index c494ca77c3..e79649cb88 100644 --- a/tests/auto/tools/uic/baseline/translatedialog.ui.h +++ b/tests/auto/tools/uic/baseline/translatedialog.ui.h @@ -213,34 +213,34 @@ public: void retranslateUi(QDialog *TranslateDialog) { - TranslateDialog->setWindowTitle(QApplication::translate("TranslateDialog", "Qt Linguist", 0)); + TranslateDialog->setWindowTitle(QApplication::translate("TranslateDialog", "Qt Linguist", Q_NULLPTR)); #ifndef QT_NO_WHATSTHIS - TranslateDialog->setWhatsThis(QApplication::translate("TranslateDialog", "This window allows you to search for some text in the translation source file.", 0)); + TranslateDialog->setWhatsThis(QApplication::translate("TranslateDialog", "This window allows you to search for some text in the translation source file.", Q_NULLPTR)); #endif // QT_NO_WHATSTHIS #ifndef QT_NO_WHATSTHIS - ledTranslateTo->setWhatsThis(QApplication::translate("TranslateDialog", "Type in the text to search for.", 0)); + ledTranslateTo->setWhatsThis(QApplication::translate("TranslateDialog", "Type in the text to search for.", Q_NULLPTR)); #endif // QT_NO_WHATSTHIS - findWhat->setText(QApplication::translate("TranslateDialog", "Find &source text:", 0)); - translateTo->setText(QApplication::translate("TranslateDialog", "&Translate to:", 0)); + findWhat->setText(QApplication::translate("TranslateDialog", "Find &source text:", Q_NULLPTR)); + translateTo->setText(QApplication::translate("TranslateDialog", "&Translate to:", Q_NULLPTR)); #ifndef QT_NO_WHATSTHIS - ledFindWhat->setWhatsThis(QApplication::translate("TranslateDialog", "Type in the text to search for.", 0)); + ledFindWhat->setWhatsThis(QApplication::translate("TranslateDialog", "Type in the text to search for.", Q_NULLPTR)); #endif // QT_NO_WHATSTHIS - groupBox->setTitle(QApplication::translate("TranslateDialog", "Search options", 0)); + groupBox->setTitle(QApplication::translate("TranslateDialog", "Search options", Q_NULLPTR)); #ifndef QT_NO_WHATSTHIS - ckMatchCase->setWhatsThis(QApplication::translate("TranslateDialog", "Texts such as 'TeX' and 'tex' are considered as different when checked.", 0)); + ckMatchCase->setWhatsThis(QApplication::translate("TranslateDialog", "Texts such as 'TeX' and 'tex' are considered as different when checked.", Q_NULLPTR)); #endif // QT_NO_WHATSTHIS - ckMatchCase->setText(QApplication::translate("TranslateDialog", "Match &case", 0)); - ckMarkFinished->setText(QApplication::translate("TranslateDialog", "Mark new translation as &finished", 0)); + ckMatchCase->setText(QApplication::translate("TranslateDialog", "Match &case", Q_NULLPTR)); + ckMarkFinished->setText(QApplication::translate("TranslateDialog", "Mark new translation as &finished", Q_NULLPTR)); #ifndef QT_NO_WHATSTHIS - findNxt->setWhatsThis(QApplication::translate("TranslateDialog", "Click here to find the next occurrence of the text you typed in.", 0)); + findNxt->setWhatsThis(QApplication::translate("TranslateDialog", "Click here to find the next occurrence of the text you typed in.", Q_NULLPTR)); #endif // QT_NO_WHATSTHIS - findNxt->setText(QApplication::translate("TranslateDialog", "Find Next", 0)); - translate->setText(QApplication::translate("TranslateDialog", "Translate", 0)); - translateAll->setText(QApplication::translate("TranslateDialog", "Translate All", 0)); + findNxt->setText(QApplication::translate("TranslateDialog", "Find Next", Q_NULLPTR)); + translate->setText(QApplication::translate("TranslateDialog", "Translate", Q_NULLPTR)); + translateAll->setText(QApplication::translate("TranslateDialog", "Translate All", Q_NULLPTR)); #ifndef QT_NO_WHATSTHIS - cancel->setWhatsThis(QApplication::translate("TranslateDialog", "Click here to close this window.", 0)); + cancel->setWhatsThis(QApplication::translate("TranslateDialog", "Click here to close this window.", Q_NULLPTR)); #endif // QT_NO_WHATSTHIS - cancel->setText(QApplication::translate("TranslateDialog", "Cancel", 0)); + cancel->setText(QApplication::translate("TranslateDialog", "Cancel", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/translation/Dialog_without_Buttons_tr.h b/tests/auto/tools/uic/baseline/translation/Dialog_without_Buttons_tr.h index 597728e207..08c063cf6f 100644 --- a/tests/auto/tools/uic/baseline/translation/Dialog_without_Buttons_tr.h +++ b/tests/auto/tools/uic/baseline/translation/Dialog_without_Buttons_tr.h @@ -36,7 +36,7 @@ public: void retranslateUi(QDialog *Dialog) { - Dialog->setWindowTitle(i18n("Dialog", 0)); + Dialog->setWindowTitle(i18n("Dialog", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/translationsettings.ui.h b/tests/auto/tools/uic/baseline/translationsettings.ui.h index e67cba5289..628c42d42e 100644 --- a/tests/auto/tools/uic/baseline/translationsettings.ui.h +++ b/tests/auto/tools/uic/baseline/translationsettings.ui.h @@ -102,10 +102,10 @@ public: void retranslateUi(QDialog *TranslationSettings) { - TranslationSettings->setWindowTitle(QApplication::translate("TranslationSettings", "Qt Linguist - Translation file settings", 0)); - groupBox->setTitle(QApplication::translate("TranslationSettings", "Target language", 0)); - label->setText(QApplication::translate("TranslationSettings", "Language", 0)); - lblCountry->setText(QApplication::translate("TranslationSettings", "Country/Region", 0)); + TranslationSettings->setWindowTitle(QApplication::translate("TranslationSettings", "Qt Linguist - Translation file settings", Q_NULLPTR)); + groupBox->setTitle(QApplication::translate("TranslationSettings", "Target language", Q_NULLPTR)); + label->setText(QApplication::translate("TranslationSettings", "Language", Q_NULLPTR)); + lblCountry->setText(QApplication::translate("TranslationSettings", "Country/Region", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/treewidgeteditor.ui.h b/tests/auto/tools/uic/baseline/treewidgeteditor.ui.h index 9c18506f25..f34dcfd98e 100644 --- a/tests/auto/tools/uic/baseline/treewidgeteditor.ui.h +++ b/tests/auto/tools/uic/baseline/treewidgeteditor.ui.h @@ -283,63 +283,63 @@ public: void retranslateUi(QDialog *qdesigner_internal__TreeWidgetEditor) { - qdesigner_internal__TreeWidgetEditor->setWindowTitle(QApplication::translate("qdesigner_internal::TreeWidgetEditor", "Edit Tree Widget", 0)); - itemsBox->setTitle(QApplication::translate("qdesigner_internal::TreeWidgetEditor", "Tree Items", 0)); + qdesigner_internal__TreeWidgetEditor->setWindowTitle(QApplication::translate("qdesigner_internal::TreeWidgetEditor", "Edit Tree Widget", Q_NULLPTR)); + itemsBox->setTitle(QApplication::translate("qdesigner_internal::TreeWidgetEditor", "Tree Items", Q_NULLPTR)); QTreeWidgetItem *___qtreewidgetitem = treeWidget->headerItem(); - ___qtreewidgetitem->setText(0, QApplication::translate("qdesigner_internal::TreeWidgetEditor", "1", 0)); + ___qtreewidgetitem->setText(0, QApplication::translate("qdesigner_internal::TreeWidgetEditor", "1", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - treeWidget->setToolTip(QApplication::translate("qdesigner_internal::TreeWidgetEditor", "Tree Items", 0)); + treeWidget->setToolTip(QApplication::translate("qdesigner_internal::TreeWidgetEditor", "Tree Items", Q_NULLPTR)); #endif // QT_NO_TOOLTIP #ifndef QT_NO_TOOLTIP - newItemButton->setToolTip(QApplication::translate("qdesigner_internal::TreeWidgetEditor", "New Item", 0)); + newItemButton->setToolTip(QApplication::translate("qdesigner_internal::TreeWidgetEditor", "New Item", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - newItemButton->setText(QApplication::translate("qdesigner_internal::TreeWidgetEditor", "&New", 0)); + newItemButton->setText(QApplication::translate("qdesigner_internal::TreeWidgetEditor", "&New", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - newSubItemButton->setToolTip(QApplication::translate("qdesigner_internal::TreeWidgetEditor", "New Subitem", 0)); + newSubItemButton->setToolTip(QApplication::translate("qdesigner_internal::TreeWidgetEditor", "New Subitem", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - newSubItemButton->setText(QApplication::translate("qdesigner_internal::TreeWidgetEditor", "New &Subitem", 0)); + newSubItemButton->setText(QApplication::translate("qdesigner_internal::TreeWidgetEditor", "New &Subitem", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - deleteItemButton->setToolTip(QApplication::translate("qdesigner_internal::TreeWidgetEditor", "Delete Item", 0)); + deleteItemButton->setToolTip(QApplication::translate("qdesigner_internal::TreeWidgetEditor", "Delete Item", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - deleteItemButton->setText(QApplication::translate("qdesigner_internal::TreeWidgetEditor", "&Delete", 0)); + deleteItemButton->setText(QApplication::translate("qdesigner_internal::TreeWidgetEditor", "&Delete", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - moveItemLeftButton->setToolTip(QApplication::translate("qdesigner_internal::TreeWidgetEditor", "Move Item Left (before Parent Item)", 0)); + moveItemLeftButton->setToolTip(QApplication::translate("qdesigner_internal::TreeWidgetEditor", "Move Item Left (before Parent Item)", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - moveItemLeftButton->setText(QApplication::translate("qdesigner_internal::TreeWidgetEditor", "L", 0)); + moveItemLeftButton->setText(QApplication::translate("qdesigner_internal::TreeWidgetEditor", "L", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - moveItemRightButton->setToolTip(QApplication::translate("qdesigner_internal::TreeWidgetEditor", "Move Item Right (as a First Subitem of the Next Sibling Item)", 0)); + moveItemRightButton->setToolTip(QApplication::translate("qdesigner_internal::TreeWidgetEditor", "Move Item Right (as a First Subitem of the Next Sibling Item)", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - moveItemRightButton->setText(QApplication::translate("qdesigner_internal::TreeWidgetEditor", "R", 0)); + moveItemRightButton->setText(QApplication::translate("qdesigner_internal::TreeWidgetEditor", "R", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - moveItemUpButton->setToolTip(QApplication::translate("qdesigner_internal::TreeWidgetEditor", "Move Item Up", 0)); + moveItemUpButton->setToolTip(QApplication::translate("qdesigner_internal::TreeWidgetEditor", "Move Item Up", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - moveItemUpButton->setText(QApplication::translate("qdesigner_internal::TreeWidgetEditor", "U", 0)); + moveItemUpButton->setText(QApplication::translate("qdesigner_internal::TreeWidgetEditor", "U", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - moveItemDownButton->setToolTip(QApplication::translate("qdesigner_internal::TreeWidgetEditor", "Move Item Down", 0)); + moveItemDownButton->setToolTip(QApplication::translate("qdesigner_internal::TreeWidgetEditor", "Move Item Down", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - moveItemDownButton->setText(QApplication::translate("qdesigner_internal::TreeWidgetEditor", "D", 0)); - label_2->setText(QApplication::translate("qdesigner_internal::TreeWidgetEditor", "Icon", 0)); - columnsBox->setTitle(QApplication::translate("qdesigner_internal::TreeWidgetEditor", "Columns", 0)); + moveItemDownButton->setText(QApplication::translate("qdesigner_internal::TreeWidgetEditor", "D", Q_NULLPTR)); + label_2->setText(QApplication::translate("qdesigner_internal::TreeWidgetEditor", "Icon", Q_NULLPTR)); + columnsBox->setTitle(QApplication::translate("qdesigner_internal::TreeWidgetEditor", "Columns", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - listWidget->setToolTip(QApplication::translate("qdesigner_internal::TreeWidgetEditor", "Tree Columns", 0)); + listWidget->setToolTip(QApplication::translate("qdesigner_internal::TreeWidgetEditor", "Tree Columns", Q_NULLPTR)); #endif // QT_NO_TOOLTIP #ifndef QT_NO_TOOLTIP - newColumnButton->setToolTip(QApplication::translate("qdesigner_internal::TreeWidgetEditor", "New Column", 0)); + newColumnButton->setToolTip(QApplication::translate("qdesigner_internal::TreeWidgetEditor", "New Column", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - newColumnButton->setText(QApplication::translate("qdesigner_internal::TreeWidgetEditor", "New", 0)); + newColumnButton->setText(QApplication::translate("qdesigner_internal::TreeWidgetEditor", "New", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - deleteColumnButton->setToolTip(QApplication::translate("qdesigner_internal::TreeWidgetEditor", "Delete Column", 0)); + deleteColumnButton->setToolTip(QApplication::translate("qdesigner_internal::TreeWidgetEditor", "Delete Column", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - deleteColumnButton->setText(QApplication::translate("qdesigner_internal::TreeWidgetEditor", "Delete", 0)); + deleteColumnButton->setText(QApplication::translate("qdesigner_internal::TreeWidgetEditor", "Delete", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - moveColumnUpButton->setToolTip(QApplication::translate("qdesigner_internal::TreeWidgetEditor", "Move Column Up", 0)); + moveColumnUpButton->setToolTip(QApplication::translate("qdesigner_internal::TreeWidgetEditor", "Move Column Up", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - moveColumnUpButton->setText(QApplication::translate("qdesigner_internal::TreeWidgetEditor", "U", 0)); + moveColumnUpButton->setText(QApplication::translate("qdesigner_internal::TreeWidgetEditor", "U", Q_NULLPTR)); #ifndef QT_NO_TOOLTIP - moveColumnDownButton->setToolTip(QApplication::translate("qdesigner_internal::TreeWidgetEditor", "Move Column Down", 0)); + moveColumnDownButton->setToolTip(QApplication::translate("qdesigner_internal::TreeWidgetEditor", "Move Column Down", Q_NULLPTR)); #endif // QT_NO_TOOLTIP - moveColumnDownButton->setText(QApplication::translate("qdesigner_internal::TreeWidgetEditor", "D", 0)); - label->setText(QApplication::translate("qdesigner_internal::TreeWidgetEditor", "Icon", 0)); + moveColumnDownButton->setText(QApplication::translate("qdesigner_internal::TreeWidgetEditor", "D", Q_NULLPTR)); + label->setText(QApplication::translate("qdesigner_internal::TreeWidgetEditor", "Icon", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/trpreviewtool.ui.h b/tests/auto/tools/uic/baseline/trpreviewtool.ui.h index 82b7be851c..8caf5b75db 100644 --- a/tests/auto/tools/uic/baseline/trpreviewtool.ui.h +++ b/tests/auto/tools/uic/baseline/trpreviewtool.ui.h @@ -169,19 +169,19 @@ public: void retranslateUi(QMainWindow *TrPreviewToolClass) { - TrPreviewToolClass->setWindowTitle(QApplication::translate("TrPreviewToolClass", "Qt Translation Preview Tool", 0)); - actionOpenForm->setText(QApplication::translate("TrPreviewToolClass", "&Open Form...", 0)); - actionLoadTranslation->setText(QApplication::translate("TrPreviewToolClass", "&Load Translation...", 0)); - actionReloadTranslations->setText(QApplication::translate("TrPreviewToolClass", "&Reload Translations", 0)); - actionReloadTranslations->setShortcut(QApplication::translate("TrPreviewToolClass", "F5", 0)); - actionClose->setText(QApplication::translate("TrPreviewToolClass", "&Close", 0)); - actionAbout->setText(QApplication::translate("TrPreviewToolClass", "About", 0)); - actionAbout_Qt->setText(QApplication::translate("TrPreviewToolClass", "About Qt", 0)); - menuView->setTitle(QApplication::translate("TrPreviewToolClass", "&View", 0)); - menuViewViews->setTitle(QApplication::translate("TrPreviewToolClass", "&Views", 0)); - menuHelp->setTitle(QApplication::translate("TrPreviewToolClass", "&Help", 0)); - menuFile->setTitle(QApplication::translate("TrPreviewToolClass", "&File", 0)); - dwForms->setWindowTitle(QApplication::translate("TrPreviewToolClass", "Forms", 0)); + TrPreviewToolClass->setWindowTitle(QApplication::translate("TrPreviewToolClass", "Qt Translation Preview Tool", Q_NULLPTR)); + actionOpenForm->setText(QApplication::translate("TrPreviewToolClass", "&Open Form...", Q_NULLPTR)); + actionLoadTranslation->setText(QApplication::translate("TrPreviewToolClass", "&Load Translation...", Q_NULLPTR)); + actionReloadTranslations->setText(QApplication::translate("TrPreviewToolClass", "&Reload Translations", Q_NULLPTR)); + actionReloadTranslations->setShortcut(QApplication::translate("TrPreviewToolClass", "F5", Q_NULLPTR)); + actionClose->setText(QApplication::translate("TrPreviewToolClass", "&Close", Q_NULLPTR)); + actionAbout->setText(QApplication::translate("TrPreviewToolClass", "About", Q_NULLPTR)); + actionAbout_Qt->setText(QApplication::translate("TrPreviewToolClass", "About Qt", Q_NULLPTR)); + menuView->setTitle(QApplication::translate("TrPreviewToolClass", "&View", Q_NULLPTR)); + menuViewViews->setTitle(QApplication::translate("TrPreviewToolClass", "&Views", Q_NULLPTR)); + menuHelp->setTitle(QApplication::translate("TrPreviewToolClass", "&Help", Q_NULLPTR)); + menuFile->setTitle(QApplication::translate("TrPreviewToolClass", "&File", Q_NULLPTR)); + dwForms->setWindowTitle(QApplication::translate("TrPreviewToolClass", "Forms", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/validators.ui.h b/tests/auto/tools/uic/baseline/validators.ui.h index 3770c45dcb..e8548f1454 100644 --- a/tests/auto/tools/uic/baseline/validators.ui.h +++ b/tests/auto/tools/uic/baseline/validators.ui.h @@ -376,24 +376,24 @@ public: void retranslateUi(QWidget *ValidatorsForm) { - ValidatorsForm->setWindowTitle(QApplication::translate("ValidatorsForm", "Form", 0)); - groupBox->setTitle(QApplication::translate("ValidatorsForm", "QIntValidator", 0)); - label->setText(QApplication::translate("ValidatorsForm", "Min:", 0)); - label_2->setText(QApplication::translate("ValidatorsForm", "Max:", 0)); - label_7->setText(QApplication::translate("ValidatorsForm", "editingFinished()", 0)); - groupBox_2->setTitle(QApplication::translate("ValidatorsForm", "QDoubleValidator", 0)); - label_3->setText(QApplication::translate("ValidatorsForm", "Min:", 0)); - label_5->setText(QApplication::translate("ValidatorsForm", "Format:", 0)); + ValidatorsForm->setWindowTitle(QApplication::translate("ValidatorsForm", "Form", Q_NULLPTR)); + groupBox->setTitle(QApplication::translate("ValidatorsForm", "QIntValidator", Q_NULLPTR)); + label->setText(QApplication::translate("ValidatorsForm", "Min:", Q_NULLPTR)); + label_2->setText(QApplication::translate("ValidatorsForm", "Max:", Q_NULLPTR)); + label_7->setText(QApplication::translate("ValidatorsForm", "editingFinished()", Q_NULLPTR)); + groupBox_2->setTitle(QApplication::translate("ValidatorsForm", "QDoubleValidator", Q_NULLPTR)); + label_3->setText(QApplication::translate("ValidatorsForm", "Min:", Q_NULLPTR)); + label_5->setText(QApplication::translate("ValidatorsForm", "Format:", Q_NULLPTR)); doubleFormat->clear(); doubleFormat->insertItems(0, QStringList() - << QApplication::translate("ValidatorsForm", "Standard", 0) - << QApplication::translate("ValidatorsForm", "Scientific", 0) + << QApplication::translate("ValidatorsForm", "Standard", Q_NULLPTR) + << QApplication::translate("ValidatorsForm", "Scientific", Q_NULLPTR) ); - label_4->setText(QApplication::translate("ValidatorsForm", "Max:", 0)); - label_6->setText(QApplication::translate("ValidatorsForm", "Decimals:", 0)); + label_4->setText(QApplication::translate("ValidatorsForm", "Max:", Q_NULLPTR)); + label_6->setText(QApplication::translate("ValidatorsForm", "Decimals:", Q_NULLPTR)); doubleLedWidget->setText(QString()); - label_8->setText(QApplication::translate("ValidatorsForm", "editingFinished()", 0)); - pushButton->setText(QApplication::translate("ValidatorsForm", "Quit", 0)); + label_8->setText(QApplication::translate("ValidatorsForm", "editingFinished()", Q_NULLPTR)); + pushButton->setText(QApplication::translate("ValidatorsForm", "Quit", Q_NULLPTR)); } // retranslateUi }; diff --git a/tests/auto/tools/uic/baseline/wateringconfigdialog.ui.h b/tests/auto/tools/uic/baseline/wateringconfigdialog.ui.h index 705c7bb142..348a83a8da 100644 --- a/tests/auto/tools/uic/baseline/wateringconfigdialog.ui.h +++ b/tests/auto/tools/uic/baseline/wateringconfigdialog.ui.h @@ -243,38 +243,38 @@ public: void retranslateUi(QDialog *WateringConfigDialog) { - WateringConfigDialog->setWindowTitle(QApplication::translate("WateringConfigDialog", "Watering Configuration", 0)); - label_3->setText(QApplication::translate("WateringConfigDialog", "Plant:", 0)); + WateringConfigDialog->setWindowTitle(QApplication::translate("WateringConfigDialog", "Watering Configuration", Q_NULLPTR)); + label_3->setText(QApplication::translate("WateringConfigDialog", "Plant:", Q_NULLPTR)); plantComboBox->clear(); plantComboBox->insertItems(0, QStringList() - << QApplication::translate("WateringConfigDialog", "Squash", 0) - << QApplication::translate("WateringConfigDialog", "Bean", 0) - << QApplication::translate("WateringConfigDialog", "Carrot", 0) - << QApplication::translate("WateringConfigDialog", "Strawberry", 0) - << QApplication::translate("WateringConfigDialog", "Raspberry", 0) - << QApplication::translate("WateringConfigDialog", "Blueberry", 0) + << QApplication::translate("WateringConfigDialog", "Squash", Q_NULLPTR) + << QApplication::translate("WateringConfigDialog", "Bean", Q_NULLPTR) + << QApplication::translate("WateringConfigDialog", "Carrot", Q_NULLPTR) + << QApplication::translate("WateringConfigDialog", "Strawberry", Q_NULLPTR) + << QApplication::translate("WateringConfigDialog", "Raspberry", Q_NULLPTR) + << QApplication::translate("WateringConfigDialog", "Blueberry", Q_NULLPTR) ); - label_2->setText(QApplication::translate("WateringConfigDialog", "Water when:", 0)); - temperatureCheckBox->setText(QApplication::translate("WateringConfigDialog", "Temperature is higher than:", 0)); + label_2->setText(QApplication::translate("WateringConfigDialog", "Water when:", Q_NULLPTR)); + temperatureCheckBox->setText(QApplication::translate("WateringConfigDialog", "Temperature is higher than:", Q_NULLPTR)); temperatureSpinBox->setSpecialValueText(QString()); - temperatureSpinBox->setSuffix(QApplication::translate("WateringConfigDialog", "C", 0)); - rainCheckBox->setText(QApplication::translate("WateringConfigDialog", "Rain less than:", 0)); + temperatureSpinBox->setSuffix(QApplication::translate("WateringConfigDialog", "C", Q_NULLPTR)); + rainCheckBox->setText(QApplication::translate("WateringConfigDialog", "Rain less than:", Q_NULLPTR)); rainSpinBox->setSpecialValueText(QString()); - rainSpinBox->setSuffix(QApplication::translate("WateringConfigDialog", "mm", 0)); - label->setText(QApplication::translate("WateringConfigDialog", "Starting Time:", 0)); - label_4->setText(QApplication::translate("WateringConfigDialog", "Amount:", 0)); - amountSpinBox->setSuffix(QApplication::translate("WateringConfigDialog", "l", 0)); - label_5->setText(QApplication::translate("WateringConfigDialog", "Source:", 0)); + rainSpinBox->setSuffix(QApplication::translate("WateringConfigDialog", "mm", Q_NULLPTR)); + label->setText(QApplication::translate("WateringConfigDialog", "Starting Time:", Q_NULLPTR)); + label_4->setText(QApplication::translate("WateringConfigDialog", "Amount:", Q_NULLPTR)); + amountSpinBox->setSuffix(QApplication::translate("WateringConfigDialog", "l", Q_NULLPTR)); + label_5->setText(QApplication::translate("WateringConfigDialog", "Source:", Q_NULLPTR)); sourceComboBox->clear(); sourceComboBox->insertItems(0, QStringList() - << QApplication::translate("WateringConfigDialog", "Foundain", 0) - << QApplication::translate("WateringConfigDialog", "River", 0) - << QApplication::translate("WateringConfigDialog", "Lake", 0) - << QApplication::translate("WateringConfigDialog", "Public Water System", 0) + << QApplication::translate("WateringConfigDialog", "Foundain", Q_NULLPTR) + << QApplication::translate("WateringConfigDialog", "River", Q_NULLPTR) + << QApplication::translate("WateringConfigDialog", "Lake", Q_NULLPTR) + << QApplication::translate("WateringConfigDialog", "Public Water System", Q_NULLPTR) ); - label_6->setText(QApplication::translate("WateringConfigDialog", "Filter:", 0)); + label_6->setText(QApplication::translate("WateringConfigDialog", "Filter:", Q_NULLPTR)); filterCheckBox->setText(QString()); - helpLabel->setText(QApplication::translate("WateringConfigDialog", "Show Details", 0)); + helpLabel->setText(QApplication::translate("WateringConfigDialog", "Show Details", Q_NULLPTR)); } // retranslateUi }; -- cgit v1.2.3 From 312d08b290d079f5d72d9afc14a47606ebdde240 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Fri, 26 Aug 2016 10:03:05 +0200 Subject: qstrncpy: don't call strncpy_s with invalid parameters According to https://msdn.microsoft.com/en-us/library/5dae5d43.aspx, strncpy_s' second argument must not be 0: > If strDest or strSource is NULL, *or numberOfElements is 0*, the > invalid parameter handler is invoked. Move the existing check for len > 0 up to protect the strncpy_s call, too. Change-Id: I70d339ea60d4b76f3038b2e4e4756f6590a9bd31 Reviewed-by: Edward Welbourne Reviewed-by: Thiago Macieira --- src/corelib/tools/qbytearray.cpp | 7 ++++--- tests/auto/corelib/tools/qbytearray/tst_qbytearray.cpp | 14 +++++++++++--- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/corelib/tools/qbytearray.cpp b/src/corelib/tools/qbytearray.cpp index 00d15fd518..8bae505d76 100644 --- a/src/corelib/tools/qbytearray.cpp +++ b/src/corelib/tools/qbytearray.cpp @@ -208,13 +208,14 @@ char *qstrncpy(char *dst, const char *src, uint len) { if (!src || !dst) return 0; + if (len > 0) { #if defined(_MSC_VER) && _MSC_VER >= 1400 - strncpy_s(dst, len, src, len-1); + strncpy_s(dst, len, src, len - 1); #else - strncpy(dst, src, len); + strncpy(dst, src, len); #endif - if (len > 0) dst[len-1] = '\0'; + } return dst; } diff --git a/tests/auto/corelib/tools/qbytearray/tst_qbytearray.cpp b/tests/auto/corelib/tools/qbytearray/tst_qbytearray.cpp index f942eab800..6d1c7481a9 100644 --- a/tests/auto/corelib/tools/qbytearray/tst_qbytearray.cpp +++ b/tests/auto/corelib/tools/qbytearray/tst_qbytearray.cpp @@ -794,9 +794,17 @@ void tst_QByteArray::qstrncpy() { QByteArray src(1024, 'a'), dst(1024, 'b'); - // singularities - QCOMPARE(::qstrncpy(0, 0,0), (char*)0); - QCOMPARE(::qstrncpy(dst.data(), 0, 0), (char*)0); + // dst == nullptr + QCOMPARE(::qstrncpy(0, src.data(), 0), (char*)0); + QCOMPARE(::qstrncpy(0, src.data(), 10), (char*)0); + + // src == nullptr + QCOMPARE(::qstrncpy(dst.data(), 0, 0), (char*)0); + QCOMPARE(::qstrncpy(dst.data(), 0, 10), (char*)0); + + // valid pointers, but len == 0 + QCOMPARE(::qstrncpy(dst.data(), src.data(), 0), dst.data()); + QCOMPARE(*dst.data(), 'b'); // must not have written to dst // normal copy QCOMPARE(::qstrncpy(dst.data(), src.data(), src.size()), dst.data()); -- cgit v1.2.3 From 2a6bea7a55308776a76cef838f307e272f23f406 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Thu, 1 Sep 2016 08:27:57 +0200 Subject: qcompilerdetection.h: retract Q_COMPILER_DEFAULT_MEMBERS for MSVC < 2015 Earlier versions of the compiler cannot default move special member functions, even though we also define Q_COMPILER_RVALUE_REFS for them. Fix by retracting the less-often-used of the two compiler feature defines. Q_COMPILER_DEFAULT_MEMBERS is not used outside QtBase in neither 5.6 nor 5.7 (5.8 is not released at this time, so wasn't considered). The same is true of the dependent macros Q_COMPILER_DEFAULT_DELETE_MEMBERS and Q_DECL_EQ_DEFAULT. In QtBase, the three uses are: 1. in QAtomic*, where the user also requires Q_COMPILER_CONSTEXPR, which is not defined for any MSVC at this time, 2. for QEnableSharedFromThis, which is a class template with an alternative {} implementa- tion of the default constructor, and uncon- ditional user-defined copy special member functions. 3. The test of the corresponding functionality in tst_compiler, which this commit amends. That means that neither of these two only uses of the macro in Qt libraries are affected by the change. The reason we do this change, then, is that in the future, we want to be able to more easily restore move special member functions for classes for which they are suppressed due to user-defined dtors or copy special member functions. Change-Id: I6f88cad66d6b87a758231f16355c3bddae697b86 Reviewed-by: Thiago Macieira --- src/corelib/global/qcompilerdetection.h | 4 +++- tests/auto/other/compiler/tst_compiler.cpp | 5 ++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/corelib/global/qcompilerdetection.h b/src/corelib/global/qcompilerdetection.h index 2d9e0463b7..e324c043af 100644 --- a/src/corelib/global/qcompilerdetection.h +++ b/src/corelib/global/qcompilerdetection.h @@ -887,7 +887,8 @@ # endif /* VC 11 */ # if _MSC_VER >= 1800 /* C++11 features in VC12 = VC2013 */ -# define Q_COMPILER_DEFAULT_MEMBERS +/* Implemented, but can't be used on move special members */ +/* # define Q_COMPILER_DEFAULT_MEMBERS */ # define Q_COMPILER_DELETE_MEMBERS # define Q_COMPILER_DELEGATING_CONSTRUCTORS # define Q_COMPILER_EXPLICIT_CONVERSIONS @@ -905,6 +906,7 @@ # endif /* VC 12 SP 2 RC */ # if _MSC_VER >= 1900 /* C++11 features in VC14 = VC2015 */ +# define Q_COMPILER_DEFAULT_MEMBERS # define Q_COMPILER_ALIGNAS # define Q_COMPILER_ALIGNOF // Partial support, insufficient for Qt diff --git a/tests/auto/other/compiler/tst_compiler.cpp b/tests/auto/other/compiler/tst_compiler.cpp index 8cd25bf164..941514b206 100644 --- a/tests/auto/other/compiler/tst_compiler.cpp +++ b/tests/auto/other/compiler/tst_compiler.cpp @@ -875,11 +875,14 @@ void tst_Compiler::cxx11_default_members() }; class DefaultMembersChild: public DefaultMembers { + DefaultMembersChild(const DefaultMembersChild &) : DefaultMembers() {} public: DefaultMembersChild():DefaultMembers() {}; + DefaultMembersChild(DefaultMembersChild &&) = default; }; DefaultMembersChild dm; - Q_UNUSED(dm); + DefaultMembersChild dm2 = std::move(dm); + Q_UNUSED(dm2); #endif } -- cgit v1.2.3 From c8cb188dd47d89da18f44a08557ca875baefcba7 Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Tue, 23 Aug 2016 16:40:56 +0200 Subject: Ensure the fontdatabase is initialized when requesting fallbacks Otherwise we will return an empty list of fallbacks if no QFontDatabase has been created yet. Task-number: QTBUG-55222 Change-Id: I50508162fad3206e0acf3cc6eb39aefac5c3e197 Reviewed-by: Peter Varga Reviewed-by: Eskil Abrahamsen Blomfeldt --- src/gui/text/qfontdatabase.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/gui/text/qfontdatabase.cpp b/src/gui/text/qfontdatabase.cpp index 0621f2a524..f063541249 100644 --- a/src/gui/text/qfontdatabase.cpp +++ b/src/gui/text/qfontdatabase.cpp @@ -840,9 +840,13 @@ QStringList QPlatformFontDatabase::fallbacksForFamily(const QString &family, QFo return retList; } +static void initializeDb(); + static QStringList fallbacksForFamily(const QString &family, QFont::Style style, QFont::StyleHint styleHint, QChar::Script script) { QFontDatabasePrivate *db = privateDb(); + if (!db->count) + initializeDb(); const FallbacksCacheKey cacheKey = { family, style, styleHint, script }; -- cgit v1.2.3 From 24bd7fd6518985f00e4102c2702ef50a8852b731 Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Thu, 1 Sep 2016 14:00:58 +0200 Subject: Fix crash when rendering to grayscale8 images An entry was missing in one of the tables. This patch adds it back in and adds the enum comments used to keep track of whether they all are there and correctly set. Change-Id: Ic6a55a8f81f9c42a3174a2a75c80c3a354f173b7 Reviewed-by: Olivier Goffart (Woboq GmbH) --- src/gui/painting/qdrawhelper.cpp | 65 ++++++++++++++++++++-------------------- 1 file changed, 33 insertions(+), 32 deletions(-) diff --git a/src/gui/painting/qdrawhelper.cpp b/src/gui/painting/qdrawhelper.cpp index ac22c7fc00..ee3863ceb8 100644 --- a/src/gui/painting/qdrawhelper.cpp +++ b/src/gui/painting/qdrawhelper.cpp @@ -5384,17 +5384,17 @@ static const ProcessSpans processTextureSpans[NBlendTypes][QImage::NImageFormats blend_src_generic, // ARGB32 blend_transformed_argb, // ARGB32_Premultiplied blend_transformed_rgb565, - blend_src_generic, - blend_src_generic, - blend_src_generic, - blend_src_generic, - blend_src_generic, - blend_src_generic, - blend_src_generic, - blend_src_generic, - blend_src_generic, - blend_src_generic, - blend_src_generic, + blend_src_generic, // ARGB8565_Premultiplied + blend_src_generic, // RGB666 + blend_src_generic, // ARGB6666_Premultiplied + blend_src_generic, // RGB555 + blend_src_generic, // ARGB8555_Premultiplied + blend_src_generic, // RGB888 + blend_src_generic, // RGB444 + blend_src_generic, // ARGB4444_Premultiplied + blend_src_generic, // RGBX8888 + blend_src_generic, // RGBA8888 + blend_src_generic, // RGBA8888_Premultiplied blend_src_generic_rgb64, blend_src_generic_rgb64, blend_src_generic_rgb64, @@ -5412,16 +5412,17 @@ static const ProcessSpans processTextureSpans[NBlendTypes][QImage::NImageFormats blend_src_generic, // ARGB32 blend_transformed_tiled_argb, // ARGB32_Premultiplied blend_transformed_tiled_rgb565, - blend_src_generic, - blend_src_generic, - blend_src_generic, - blend_src_generic, - blend_src_generic, - blend_src_generic, - blend_src_generic, - blend_src_generic, - blend_src_generic, - blend_src_generic, + blend_src_generic, // ARGB8565_Premultiplied + blend_src_generic, // RGB666 + blend_src_generic, // ARGB6666_Premultiplied + blend_src_generic, // RGB555 + blend_src_generic, // ARGB8555_Premultiplied + blend_src_generic, // RGB888 + blend_src_generic, // RGB444 + blend_src_generic, // ARGB4444_Premultiplied + blend_src_generic, // RGBX8888 + blend_src_generic, // RGBA8888 + blend_src_generic, // RGBA8888_Premultiplied blend_src_generic_rgb64, blend_src_generic_rgb64, blend_src_generic_rgb64, @@ -5439,17 +5440,17 @@ static const ProcessSpans processTextureSpans[NBlendTypes][QImage::NImageFormats blend_src_generic, // ARGB32 blend_src_generic, // ARGB32_Premultiplied blend_transformed_bilinear_rgb565, - blend_src_generic, - blend_src_generic, - blend_src_generic, - blend_src_generic, - blend_src_generic, - blend_src_generic, - blend_src_generic, - blend_src_generic, - blend_src_generic, - blend_src_generic, - blend_src_generic, + blend_src_generic, // ARGB8565_Premultiplied + blend_src_generic, // RGB666 + blend_src_generic, // ARGB6666_Premultiplied + blend_src_generic, // RGB555 + blend_src_generic, // ARGB8555_Premultiplied + blend_src_generic, // RGB888 + blend_src_generic, // RGB444 + blend_src_generic, // ARGB4444_Premultiplied + blend_src_generic, // RGBX8888 + blend_src_generic, // RGBA8888 + blend_src_generic, // RGBA8888_Premultiplied blend_src_generic_rgb64, blend_src_generic_rgb64, blend_src_generic_rgb64, -- cgit v1.2.3 From 4eb2feb29c5078cd3eda19e4d2331c54a35843ce Mon Sep 17 00:00:00 2001 From: Jake Petroules Date: Fri, 2 Sep 2016 15:42:52 +0200 Subject: Remove the ability to build simulator/device targets from SUBDIRS projects This is done because a followup patch will cause simulator_and_device builds to no longer use exclusive builds and so this feature could not work, but it is not strictly necessary anyways because users do not need to be able to do this. Done-with: Oswald Buddenhagen Change-Id: If869fbfea776751553c352c2d652edf745a3638d Reviewed-by: Oswald Buddenhagen --- mkspecs/features/uikit/resolve_config.prf | 34 ------------------------------- src/src.pro | 8 -------- 2 files changed, 42 deletions(-) diff --git a/mkspecs/features/uikit/resolve_config.prf b/mkspecs/features/uikit/resolve_config.prf index c3ab90f45e..983dca82f4 100644 --- a/mkspecs/features/uikit/resolve_config.prf +++ b/mkspecs/features/uikit/resolve_config.prf @@ -32,37 +32,3 @@ macx-xcode { } else { addExclusiveBuilds(simulator, device) } - -equals(TEMPLATE, subdirs) { - # Prevent recursion into host_builds - for(subdir, SUBDIRS) { - contains($${subdir}.CONFIG, host_build) { - $${subdir}.CONFIG += no_$${simulator.target}_target no_$${device.target}_target - - # Other targets which we do want to recurse into may depend on this target, - # for example corelib depends on moc, rcc, bootstrap, etc, and other libs - # may depend on host-tools that are needed to build the lib, so we resolve - # the final target name and redirect it to the base target, so that the - # dependency chain is not broken for the other targets. - - !isEmpty($${subdir}.target) { - target = $$eval($${subdir}.target) - } else { - !isEmpty($${subdir}.file): \ - file = $$eval($${subdir}.file) - else: !isEmpty($${subdir}.subdir): \ - file = $$eval($${subdir}.subdir) - else: \ - file = $$subdir - - target = sub-$$file - } - - target ~= s,[^a-zA-Z0-9_],-, - - $${target}-$${simulator.target}.depends = $$target - $${target}-$${device.target}.depends = $$target - QMAKE_EXTRA_TARGETS += $${target}-$${simulator.target} $${target}-$${device.target} - } - } -} diff --git a/src/src.pro b/src/src.pro index ec656e483c..96a88a62ac 100644 --- a/src/src.pro +++ b/src/src.pro @@ -5,44 +5,36 @@ src_qtzlib.target = sub-zlib src_tools_bootstrap.subdir = tools/bootstrap src_tools_bootstrap.target = sub-bootstrap -src_tools_bootstrap.CONFIG = host_build src_tools_moc.subdir = tools/moc src_tools_moc.target = sub-moc src_tools_moc.depends = src_tools_bootstrap -src_tools_moc.CONFIG = host_build src_tools_rcc.subdir = tools/rcc src_tools_rcc.target = sub-rcc src_tools_rcc.depends = src_tools_bootstrap -src_tools_rcc.CONFIG = host_build src_tools_qlalr.subdir = tools/qlalr src_tools_qlalr.target = sub-qlalr -src_tools_qlalr.CONFIG = host_build force_bootstrap: src_tools_qlalr.depends = src_tools_bootstrap else: src_tools_qlalr.depends = src_corelib src_tools_uic.subdir = tools/uic src_tools_uic.target = sub-uic -src_tools_uic.CONFIG = host_build force_bootstrap: src_tools_uic.depends = src_tools_bootstrap else: src_tools_uic.depends = src_corelib src_tools_bootstrap_dbus.subdir = tools/bootstrap-dbus src_tools_bootstrap_dbus.target = sub-bootstrap_dbus src_tools_bootstrap_dbus.depends = src_tools_bootstrap -src_tools_bootstrap_dbus.CONFIG = host_build src_tools_qdbusxml2cpp.subdir = tools/qdbusxml2cpp src_tools_qdbusxml2cpp.target = sub-qdbusxml2cpp -src_tools_qdbusxml2cpp.CONFIG = host_build force_bootstrap: src_tools_qdbusxml2cpp.depends = src_tools_bootstrap_dbus else: src_tools_qdbusxml2cpp.depends = src_dbus src_tools_qdbuscpp2xml.subdir = tools/qdbuscpp2xml src_tools_qdbuscpp2xml.target = sub-qdbuscpp2xml -src_tools_qdbuscpp2xml.CONFIG = host_build force_bootstrap: src_tools_qdbuscpp2xml.depends = src_tools_bootstrap_dbus else: src_tools_qdbuscpp2xml.depends = src_dbus -- cgit v1.2.3 From 397f345a6a2c69c8f15f5d2f21989c303aca586e Mon Sep 17 00:00:00 2001 From: Jake Petroules Date: Thu, 25 Aug 2016 06:07:54 -0700 Subject: Remove simulator_and_device handling for the Makefile generator This patch moves towards a more sensible layout for UIKit platforms, where both the device and simulator architectures for binaries are combined into a single Mach-O file instead of separating out the simulator architecutures into separate _simulator.a files. This approach is both more common in the iOS ecosystem at large and significantly simplifies the implementation details for Qt, especially with the upcoming support for shared libraries on UIKit platforms. This patch takes advantage of the -Xarch compiler option to pass the appropriate -isysroot, -syslibroot, and -m*-version-min compiler and linker flags to the clang frontend, operating in exactly the same way as a normal multi-arch build for device or simulator did previously. Exclusive builds are still enabled for the xcodebuild wrapper Makefile, which builds all four configurations of a UIKit Xcode project as before, as expected. A particularly advantageous benefit of this change is that it flows very well with existing Xcode workflows, namely that: - Slicing out unused architectures is handled completely automatically for static builds, as an executable linking to a library with more architectures than it itself is linked as, the unused architectures will be ignored silently, resulting in the same behavior for users (and the App Store won't let you submit Intel architectures either). - Removing architectures from a fat binary using lipo does NOT invalidate the code signature of that file or its container if it is a bundle. This allows shared library and framework builds of Qt to work mostly automatically as well, since an Xcode shell script build phase can remove unused architectures from the embedded frameworks when that is implemented, and if Qt ever starts signing its SDK releases, it won't interfere with that either (though binaries are just resigned). Change-Id: I6c3578c78f75845a2fcc85f3a5b728ec997dbe90 Reviewed-by: Oswald Buddenhagen --- mkspecs/features/mac/sdk.prf | 62 ++++++++++++++++++++++--------- mkspecs/features/moc.prf | 5 ++- mkspecs/features/qt_functions.prf | 6 +-- mkspecs/features/qt_module.prf | 3 +- mkspecs/features/uikit/default_post.prf | 19 +++++----- mkspecs/features/uikit/default_pre.prf | 39 ++++++++----------- mkspecs/features/uikit/resolve_config.prf | 27 +------------- 7 files changed, 77 insertions(+), 84 deletions(-) diff --git a/mkspecs/features/mac/sdk.prf b/mkspecs/features/mac/sdk.prf index c7395ea572..1db1db7b26 100644 --- a/mkspecs/features/mac/sdk.prf +++ b/mkspecs/features/mac/sdk.prf @@ -24,12 +24,6 @@ QMAKE_MAC_SDK_PATH = $$xcodeSDKInfo(Path) QMAKE_MAC_SDK_PLATFORM_PATH = $$xcodeSDKInfo(PlatformPath) QMAKE_MAC_SDK_VERSION = $$xcodeSDKInfo(SDKVersion) -!equals(MAKEFILE_GENERATOR, XCODE) { - QMAKE_CFLAGS += -isysroot $$QMAKE_MAC_SDK_PATH - QMAKE_CXXFLAGS += -isysroot $$QMAKE_MAC_SDK_PATH - QMAKE_LFLAGS += -Wl,-syslibroot,$$QMAKE_MAC_SDK_PATH -} - sysrootified = for(val, QMAKE_INCDIR_OPENGL): sysrootified += $${QMAKE_MAC_SDK_PATH}$$val QMAKE_INCDIR_OPENGL = $$sysrootified @@ -61,15 +55,46 @@ for(tool, $$list(QMAKE_CC QMAKE_CXX QMAKE_FIX_RPATH QMAKE_AR QMAKE_RANLIB QMAKE_ watchos: os_var = WATCHOS deployment_target = $$eval(QMAKE_$${os_var}_DEPLOYMENT_TARGET) - simulator { - archs = $$eval(QMAKE_$${os_var}_SIMULATOR_ARCHS) - version_identifier = $$simulator.deployment_identifier - } else { - archs = $$eval(QMAKE_$${os_var}_DEVICE_ARCHS) - version_identifier = $$device.deployment_identifier + !simulator|simulator_and_device: device_archs = $$eval(QMAKE_$${os_var}_DEVICE_ARCHS) + simulator: simulator_archs = $$eval(QMAKE_$${os_var}_SIMULATOR_ARCHS) + archs = $$device_archs $$simulator_archs + + QMAKE_XARCH_CFLAGS = + QMAKE_XARCH_LFLAGS = + QMAKE_EXTRA_VARIABLES += QMAKE_XARCH_CFLAGS QMAKE_XARCH_LFLAGS + + single_arch { + device_archs = $$first(device_archs) + simulator_archs = $$first(simulator_archs) + archs = $$first(archs) } - single_arch: archs = $$first(archs) + for(arch, archs) { + contains(simulator_archs, $$arch) { + sdk = $$simulator.sdk + version_identifier = $$simulator.deployment_identifier + } else { + sdk = $$device.sdk + version_identifier = $$device.deployment_identifier + } + + version_min_flags = \ + -Xarch_$${arch} \ + -m$${version_identifier}-version-min=$$deployment_target + QMAKE_XARCH_CFLAGS_$${arch} = $$version_min_flags \ + -Xarch_$${arch} \ + -isysroot$$xcodeSDKInfo(Path, $$sdk) + QMAKE_XARCH_LFLAGS_$${arch} = $$version_min_flags \ + -Xarch_$${arch} \ + -Wl,-syslibroot,$$xcodeSDKInfo(Path, $$sdk) + + QMAKE_XARCH_CFLAGS += $(EXPORT_QMAKE_XARCH_CFLAGS_$${arch}) + QMAKE_XARCH_LFLAGS += $(EXPORT_QMAKE_XARCH_CFLAGS_$${arch}) + + QMAKE_EXTRA_VARIABLES += \ + QMAKE_XARCH_CFLAGS_$${arch} \ + QMAKE_XARCH_LFLAGS_$${arch} + } QMAKE_CFLAGS_USE_PRECOMPILE = for(arch, archs) { @@ -85,10 +110,13 @@ for(tool, $$list(QMAKE_CC QMAKE_CXX QMAKE_FIX_RPATH QMAKE_AR QMAKE_RANLIB QMAKE_ } else: osx { version_identifier = macosx deployment_target = $$QMAKE_MACOSX_DEPLOYMENT_TARGET + version_min_flag = -m$${version_identifier}-version-min=$$deployment_target + QMAKE_CFLAGS += -isysroot $$QMAKE_MAC_SDK_PATH $$version_min_flag + QMAKE_CXXFLAGS += -isysroot $$QMAKE_MAC_SDK_PATH $$version_min_flag + QMAKE_LFLAGS += -Wl,-syslibroot,$$QMAKE_MAC_SDK_PATH $$version_min_flag } - version_min_flag = -m$${version_identifier}-version-min=$$deployment_target - QMAKE_CFLAGS += $$version_min_flag - QMAKE_CXXFLAGS += $$version_min_flag - QMAKE_LFLAGS += $$version_min_flag + QMAKE_CFLAGS += $(EXPORT_QMAKE_XARCH_CFLAGS) + QMAKE_CXXFLAGS += $(EXPORT_QMAKE_XARCH_CFLAGS) + QMAKE_LFLAGS += $(EXPORT_QMAKE_XARCH_LFLAGS) } diff --git a/mkspecs/features/moc.prf b/mkspecs/features/moc.prf index 73fbc8c29b..4c81ee5c74 100644 --- a/mkspecs/features/moc.prf +++ b/mkspecs/features/moc.prf @@ -25,8 +25,9 @@ win32:count(MOC_INCLUDEPATH, 40, >) { } # QNX's compiler sets "gcc" config, but does not support the -dM option; -# iOS builds are multi-arch, so this feature cannot possibly work. -if(gcc|intel_icl|msvc):!rim_qcc:!ios { +# UIKit builds are always multi-arch due to simulator_and_device (unless +# -sdk is used) so this feature cannot possibly work. +if(gcc|intel_icl|msvc):!rim_qcc:!uikit { moc_predefs.CONFIG = no_link gcc: moc_predefs.commands = $$QMAKE_CXX $$QMAKE_CXXFLAGS -dM -E -o ${QMAKE_FILE_OUT} ${QMAKE_FILE_IN} else:intel_icl: moc_predefs.commands = $$QMAKE_CXX $$QMAKE_CXXFLAGS -QdM -P -Fi${QMAKE_FILE_OUT} ${QMAKE_FILE_IN} diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf index 08c7c9f899..735ece45f2 100644 --- a/mkspecs/features/qt_functions.prf +++ b/mkspecs/features/qt_functions.prf @@ -1,10 +1,6 @@ defineReplace(qtPlatformTargetSuffix) { - uikit:CONFIG(simulator, simulator|device): \ - suffix = _$${simulator.sdk} - else: \ - suffix = - + suffix = CONFIG(debug, debug|release) { !debug_and_release|build_pass { mac: return($${suffix}_debug) diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf index 90b4c181ee..ed02c597da 100644 --- a/mkspecs/features/qt_module.prf +++ b/mkspecs/features/qt_module.prf @@ -119,8 +119,7 @@ lib_bundle { QMAKE_INFO_PLIST = $$QMAKESPEC/Info.plist.lib } !build_all| \ - if(if(!debug_and_release|CONFIG(release, debug|release)): \ - if(!simulator_and_device|CONFIG(device, simulator|device))) { + if(if(!debug_and_release|CONFIG(release, debug|release))) { FRAMEWORK_HEADERS.version = Versions FRAMEWORK_HEADERS.files = $$SYNCQT.HEADER_FILES $$SYNCQT.HEADER_CLASSES FRAMEWORK_HEADERS.path = Headers diff --git a/mkspecs/features/uikit/default_post.prf b/mkspecs/features/uikit/default_post.prf index 199074eefe..b4de83d6b5 100644 --- a/mkspecs/features/uikit/default_post.prf +++ b/mkspecs/features/uikit/default_post.prf @@ -91,15 +91,16 @@ macx-xcode { only_active_arch.build = debug QMAKE_MAC_XCODE_SETTINGS += only_active_arch } else { - # Be more specific about which architecture we're targeting - contains(QT_ARCH, arm.*) { - ios: VALID_ARCHS = $$QMAKE_IOS_DEVICE_ARCHS - tvos: VALID_ARCHS = $$QMAKE_TVOS_DEVICE_ARCHS - watchos: VALID_ARCHS = $$QMAKE_WATCHOS_DEVICE_ARCHS - } else { - ios: VALID_ARCHS = $$QMAKE_IOS_SIMULATOR_ARCHS - tvos: VALID_ARCHS = $$QMAKE_TVOS_SIMULATOR_ARCHS - watchos: VALID_ARCHS = $$QMAKE_WATCHOS_SIMULATOR_ARCHS + VALID_ARCHS = + !simulator|simulator_and_device { + ios: VALID_ARCHS += $$QMAKE_IOS_DEVICE_ARCHS + tvos: VALID_ARCHS += $$QMAKE_TVOS_DEVICE_ARCHS + watchos: VALID_ARCHS += $$QMAKE_WATCHOS_DEVICE_ARCHS + } + simulator { + ios: VALID_ARCHS += $$QMAKE_IOS_SIMULATOR_ARCHS + tvos: VALID_ARCHS += $$QMAKE_TVOS_SIMULATOR_ARCHS + watchos: VALID_ARCHS += $$QMAKE_WATCHOS_SIMULATOR_ARCHS } single_arch: VALID_ARCHS = $$first(VALID_ARCHS) diff --git a/mkspecs/features/uikit/default_pre.prf b/mkspecs/features/uikit/default_pre.prf index e719ab0848..8b5b3ccfe9 100644 --- a/mkspecs/features/uikit/default_pre.prf +++ b/mkspecs/features/uikit/default_pre.prf @@ -1,31 +1,22 @@ load(default_pre) -# In case Qt was built for a specific SDK -!isEmpty(QT_VERSION):!qtConfig(simulator_and_device):contains(QMAKE_MAC_SDK, ^$${simulator.sdk}.*): \ - CONFIG += simulator $${simulator.sdk} +!isEmpty(QT_VERSION) { + qtConfig(simulator_and_device)|contains(QMAKE_MAC_SDK, ^$${device.sdk}.*): \ + CONFIG += device $${device.sdk} + qtConfig(simulator_and_device)|contains(QMAKE_MAC_SDK, ^$${simulator.sdk}.*): \ + CONFIG += simulator $${simulator.sdk} + + qtConfig(simulator_and_device) { + # For a simulator_and_device build all the config tests + # are based on the device's ARM SDK, but we know that the simulator + # is Intel and that we support SSE/SSE2. + QT_CPU_FEATURES.$$QT_ARCH += sse sse2 + CONFIG += sse sse2 + DEFINES += QT_COMPILER_SUPPORTS_SSE2 + } +} # Check for supported Xcode versions lessThan(QMAKE_XCODE_VERSION, "4.3"): \ error("This mkspec requires Xcode 4.3 or later") - -build_pass:simulator { - # For a simulator_and_device build all the config tests - # are based on the iPhoneOS/WatchOS ARM SDK, but we know that the simulator - # is i386 and that we support SSE/SSE2. - QT_ARCH = i386 - QT_CPU_FEATURES.i386 = sse sse2 - DEFINES += QT_COMPILER_SUPPORTS_SSE2 - CONFIG -= neon - CONFIG += sse sse2 -} -build_pass:appletvsimulator { - # For a simulator_and_device build all the config tests - # are based on the AppleTVOS ARM SDK, but we know that the simulator - # is x64 and that we support SSE/SSE2. - QT_ARCH = x64 - QT_CPU_FEATURES.x64 = sse sse2 - DEFINES += QT_COMPILER_SUPPORTS_SSE2 - CONFIG -= neon - CONFIG += sse sse2 -} diff --git a/mkspecs/features/uikit/resolve_config.prf b/mkspecs/features/uikit/resolve_config.prf index 983dca82f4..70ddd8be52 100644 --- a/mkspecs/features/uikit/resolve_config.prf +++ b/mkspecs/features/uikit/resolve_config.prf @@ -1,34 +1,11 @@ xcodebuild { # Xcode project files always support both Debug and Release configurations - # and iOS device and simulator targets, so we make sure the wrapper-makefile + # and device and simulator targets, so we make sure the wrapper-makefile # also does. CONFIG += debug_and_release simulator_and_device } load(resolve_config) -# Legacy exclusive build configurations for backwards compatibility -CONFIG($${device.CONFIG}, $${device.CONFIG}|$${simulator.CONFIG}): \ - CONFIG += device -else: CONFIG($${simulator.CONFIG}, $${device.CONFIG}|$${simulator.CONFIG}): \ - CONFIG += simulator - -CONFIG(simulator, simulator|device): \ - CONFIG -= device $${device.CONFIG} -else: \ - CONFIG -= simulator $${simulator.CONFIG} - -macx-xcode { - # There is no way to genereate Xcode projects that are limited to either - # simulator or device builds, so simulator_and_device is always - # effectivly active, even if the user disabled it explicitly. - # The Xcode generator doesn't support multiple BUILDS though (exclusive - # builds), so we have to manually set up the simulator suffix. - library_suffix_simulator.name = "$${QMAKE_XCODE_LIBRARY_SUFFIX_SETTING}[sdk=$${simulator.sdk}*]" - library_suffix_simulator.value = "_$${simulator.sdk}$($${QMAKE_XCODE_LIBRARY_SUFFIX_SETTING})" - QMAKE_MAC_XCODE_SETTINGS += library_suffix_simulator - CONFIG *= xcode_dynamic_library_suffix -} else { - addExclusiveBuilds(simulator, device) -} +!macx-xcode:xcodebuild: addExclusiveBuilds(simulator, device) -- cgit v1.2.3 From 6dbb16a856ab98830d8deb1741fc2615add340a5 Mon Sep 17 00:00:00 2001 From: Anton Kudryavtsev Date: Fri, 26 Aug 2016 13:26:29 +0300 Subject: Replace QLatin1Literal with QLatin1String QLatin1Literal is just alias of QLatin1String for Qt4 compatibility. So it's style cleanup patch. Change-Id: Ia3b3e5dc3169f13a1ef819d69be576b8a8bfb258 Reviewed-by: Marc Mutz Reviewed-by: Edward Welbourne --- src/gui/image/qiconloader.cpp | 2 +- src/gui/text/qtextimagehandler.cpp | 4 ++-- src/plugins/sqldrivers/psql/qsql_psql.cpp | 4 ++-- src/testlib/qteamcitylogger.cpp | 12 ++++++------ 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/gui/image/qiconloader.cpp b/src/gui/image/qiconloader.cpp index e61a6bb48e..eda9d6f24e 100644 --- a/src/gui/image/qiconloader.cpp +++ b/src/gui/image/qiconloader.cpp @@ -199,7 +199,7 @@ private: QIconCacheGtkReader::QIconCacheGtkReader(const QString &dirName) : m_isValid(false) { - QFileInfo info(dirName + QLatin1Literal("/icon-theme.cache")); + QFileInfo info(dirName + QLatin1String("/icon-theme.cache")); if (!info.exists() || info.lastModified() < QFileInfo(dirName).lastModified()) return; m_file.setFileName(info.absoluteFilePath()); diff --git a/src/gui/text/qtextimagehandler.cpp b/src/gui/text/qtextimagehandler.cpp index 18311ed161..f7117bfe0a 100644 --- a/src/gui/text/qtextimagehandler.cpp +++ b/src/gui/text/qtextimagehandler.cpp @@ -61,10 +61,10 @@ static QString resolveFileName(QString fileName, QUrl *url, qreal targetDevicePi // Also, QFile{Info}::exists works only on filepaths (not urls) if (url->isValid()) { - if (url->scheme() == QLatin1Literal("qrc")) { + if (url->scheme() == QLatin1String("qrc")) { fileName = fileName.right(fileName.length() - 3); } - else if (url->scheme() == QLatin1Literal("file")) { + else if (url->scheme() == QLatin1String("file")) { fileName = url->toLocalFile(); } } diff --git a/src/plugins/sqldrivers/psql/qsql_psql.cpp b/src/plugins/sqldrivers/psql/qsql_psql.cpp index fcf75af298..968b71a27d 100644 --- a/src/plugins/sqldrivers/psql/qsql_psql.cpp +++ b/src/plugins/sqldrivers/psql/qsql_psql.cpp @@ -704,10 +704,10 @@ void QPSQLDriverPrivate::detectBackslashEscape() hasBackslashEscape = true; } else { hasBackslashEscape = false; - PGresult* result = exec(QLatin1Literal("SELECT '\\\\' x")); + PGresult* result = exec(QLatin1String("SELECT '\\\\' x")); int status = PQresultStatus(result); if (status == PGRES_COMMAND_OK || status == PGRES_TUPLES_OK) - if (QString::fromLatin1(PQgetvalue(result, 0, 0)) == QLatin1Literal("\\")) + if (QString::fromLatin1(PQgetvalue(result, 0, 0)) == QLatin1String("\\")) hasBackslashEscape = true; PQclear(result); } diff --git a/src/testlib/qteamcitylogger.cpp b/src/testlib/qteamcitylogger.cpp index 4773ea937f..1d700d8201 100644 --- a/src/testlib/qteamcitylogger.cpp +++ b/src/testlib/qteamcitylogger.cpp @@ -228,22 +228,22 @@ QString QTeamCityLogger::tcEscapedString(const QString &str) const switch (ch.toLatin1()) { case '\n': - formattedString.append(QLatin1Literal("|n")); + formattedString.append(QLatin1String("|n")); break; case '\r': - formattedString.append(QLatin1Literal("|r")); + formattedString.append(QLatin1String("|r")); break; case '|': - formattedString.append(QLatin1Literal("||")); + formattedString.append(QLatin1String("||")); break; case '[': - formattedString.append(QLatin1Literal("|[")); + formattedString.append(QLatin1String("|[")); break; case ']': - formattedString.append(QLatin1Literal("|]")); + formattedString.append(QLatin1String("|]")); break; case '\'': - formattedString.append(QLatin1Literal("|'")); + formattedString.append(QLatin1String("|'")); break; default: formattedString.append(ch); -- cgit v1.2.3 From b94111116f09a6e48741d35cf7abea47af99ef26 Mon Sep 17 00:00:00 2001 From: Peng Wu Date: Mon, 29 Aug 2016 13:47:08 +0300 Subject: Style sheets: detect and apply font set on QHeaderView section Detect and apply style sheets font set when calculating QHeaderView section content size and drawing it. Change-Id: I542cd0d31bbe62f127c509f297eef0a576fec054 Task-number: QTBUG-55597 Reviewed-by: Olivier Goffart (Woboq GmbH) --- src/widgets/styles/qstylesheetstyle.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/widgets/styles/qstylesheetstyle.cpp b/src/widgets/styles/qstylesheetstyle.cpp index 568a4755e4..eae4658bc9 100644 --- a/src/widgets/styles/qstylesheetstyle.cpp +++ b/src/widgets/styles/qstylesheetstyle.cpp @@ -3753,6 +3753,13 @@ void QStyleSheetStyle::drawControl(ControlElement ce, const QStyleOption *opt, Q ParentStyle::drawControl(ce, opt, p, w); return; } + if (subRule.hasFont) { + const QFont oldFont = p->font(); + p->setFont(subRule.font.resolve(p->font())); + baseStyle()->drawControl(ce, opt, p, w); + p->setFont(oldFont); + return; + } } break; case CE_HeaderSection: @@ -4866,13 +4873,14 @@ QSize QStyleSheetStyle::sizeFromContents(ContentsType ct, const QStyleOption *op case CT_HeaderSection: { if (const QStyleOptionHeader *hdr = qstyleoption_cast(opt)) { QRenderRule subRule = renderRule(w, opt, PseudoElement_HeaderViewSection); - if (subRule.hasGeometry() || subRule.hasBox() || !subRule.hasNativeBorder()) { + if (subRule.hasGeometry() || subRule.hasBox() || !subRule.hasNativeBorder() || subRule.hasFont) { sz = subRule.adjustSize(csz); if (!subRule.hasGeometry()) { QSize nativeContentsSize; bool nullIcon = hdr->icon.isNull(); int iconSize = nullIcon ? 0 : pixelMetric(QStyle::PM_SmallIconSize, hdr, w); - QSize txt = hdr->fontMetrics.size(0, hdr->text); + const QSize txt = subRule.hasFont ? QFontMetrics(subRule.font).size(0, hdr->text) + : hdr->fontMetrics.size(0, hdr->text); nativeContentsSize.setHeight(qMax(iconSize, txt.height())); nativeContentsSize.setWidth(iconSize + txt.width()); sz = sz.expandedTo(nativeContentsSize); -- cgit v1.2.3 From cec8cdba4d1b856e17c8743ba8803349d42dc701 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Sun, 4 Sep 2016 09:55:59 +0200 Subject: QTextStream: log the defect that op<< uses Latin 1 The rest of Qt, including the QString constructor, uses UTF-8 to interpret narrow character literals. The fact that QTextStream uses Latin 1 should be considered a defect. We can't fix this in Qt 5, so log it for consideration in Qt 6. Change-Id: I9e96ecd4f6aa4ff0ae08fffd14710fa61673db57 Reviewed-by: Marc Mutz --- src/corelib/io/qtextstream.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/corelib/io/qtextstream.cpp b/src/corelib/io/qtextstream.cpp index b8db23329a..4fdb1505ff 100644 --- a/src/corelib/io/qtextstream.cpp +++ b/src/corelib/io/qtextstream.cpp @@ -2644,6 +2644,7 @@ QTextStream &QTextStream::operator<<(const char *string) { Q_D(QTextStream); CHECK_VALID_STREAM(*this); + // ### Qt6: consider changing to UTF-8 d->putString(QLatin1String(string)); return *this; } -- cgit v1.2.3 From 2997a60e1eaf0efbeb22516ae184fa93f278fec5 Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Thu, 6 Nov 2014 12:14:41 +0100 Subject: Do not force the default fontconfig configuration Since 74cade1ee42dbe15d3242b08d5880e08e6294e2e, QFontconfigDatabase has forced a full init to the default configuration breaking applications that set a custom fontconfig. Change-Id: If9ee3e185c42af10c05ae3852d088881da1d4f1a Reviewed-by: Eskil Abrahamsen Blomfeldt --- .../fontdatabases/fontconfig/qfontconfigdatabase.cpp | 8 +++++++- .../fontdatabases/fontconfig/qfontconfigdatabase_p.h | 1 + 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp b/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp index 02b7e1bd63..5847c601a8 100644 --- a/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp +++ b/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp @@ -504,7 +504,7 @@ static void populateFromPattern(FcPattern *pattern) void QFontconfigDatabase::populateFontDatabase() { - FcInitReinitialize(); + FcInit(); FcFontSet *fonts; { @@ -568,6 +568,12 @@ void QFontconfigDatabase::populateFontDatabase() // QApplication::setFont(font); } +void QFontconfigDatabase::invalidate() +{ + // Clear app fonts. + FcConfigAppFontClear(0); +} + QFontEngineMulti *QFontconfigDatabase::fontEngineMulti(QFontEngine *fontEngine, QChar::Script script) { return new QFontEngineMultiFontConfig(fontEngine, script); diff --git a/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase_p.h b/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase_p.h index 197a442d5b..244558b910 100644 --- a/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase_p.h +++ b/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase_p.h @@ -62,6 +62,7 @@ class QFontconfigDatabase : public QBasicFontDatabase { public: void populateFontDatabase() Q_DECL_OVERRIDE; + void invalidate() Q_DECL_OVERRIDE; QFontEngineMulti *fontEngineMulti(QFontEngine *fontEngine, QChar::Script script) Q_DECL_OVERRIDE; QFontEngine *fontEngine(const QFontDef &fontDef, void *handle) Q_DECL_OVERRIDE; QFontEngine *fontEngine(const QByteArray &fontData, qreal pixelSize, QFont::HintingPreference hintingPreference) Q_DECL_OVERRIDE; -- cgit v1.2.3 From 676129d7ee57347798683d444823e7723776d8ec Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Wed, 31 Aug 2016 15:38:57 +0200 Subject: Run tst_QFiledialog::widgetlessNativeDialog() last widgetlessNativeDialog() is the only test function that creates a native file dialog instance. GTK+ versions prior 3.15.5 have a nasty bug (https://bugzilla.gnome.org/show_bug.cgi?id=725164) in GtkFileChooserWidget, which makes it leak its folder change callback, causing a crash "at some point later". Running the native test last is enough to avoid spinning the event loop after the test, and that way circumvent the crash (QTBUG-55276). The crash has been fixed in GTK+ 3.15.5, but the RHEL 7.2 CI has GTK+ 3.14.13 installed. Change-Id: I867755969a4458693bd12f848d052adf77a2086e Task-number: QTBUG-55276 Reviewed-by: Friedemann Kleint --- .../auto/widgets/dialogs/qfiledialog/tst_qfiledialog.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/tests/auto/widgets/dialogs/qfiledialog/tst_qfiledialog.cpp b/tests/auto/widgets/dialogs/qfiledialog/tst_qfiledialog.cpp index 57af76b0d5..e61c61ddfd 100644 --- a/tests/auto/widgets/dialogs/qfiledialog/tst_qfiledialog.cpp +++ b/tests/auto/widgets/dialogs/qfiledialog/tst_qfiledialog.cpp @@ -132,7 +132,6 @@ private slots: void saveButtonText(); void clearLineEdit(); void enableChooseButton(); - void widgetlessNativeDialog(); void selectedFilesWithoutWidgets(); void trailingDotsAndSpaces(); #ifdef Q_OS_UNIX @@ -144,6 +143,20 @@ private slots: void rejectModalDialogs(); void QTBUG49600_nativeIconProviderCrash(); + // NOTE: Please keep widgetlessNativeDialog() as the LAST test! + // + // widgetlessNativeDialog() is the only test function that creates + // a native file dialog instance. GTK+ versions prior 3.15.5 have + // a nasty bug (https://bugzilla.gnome.org/show_bug.cgi?id=725164) + // in GtkFileChooserWidget, which makes it leak its folder change + // callback, causing a crash "at some point later". Running the + // native test last is enough to avoid spinning the event loop after + // the test, and that way circumvent the crash. + // + // The crash has been fixed in GTK+ 3.15.5, but the RHEL 7.2 CI has + // GTK+ 3.14.13 installed (QTBUG-55276). + void widgetlessNativeDialog(); + private: void cleanupSettingsFile(); }; -- cgit v1.2.3 From 603628b1ea1a4003f6295fd97025bd38520af143 Mon Sep 17 00:00:00 2001 From: Jake Petroules Date: Tue, 30 Aug 2016 10:26:57 -0700 Subject: Make DEVICE_ARCHS and SIMULATOR_ARCHS variables platform independent This reduces unnecessary OS conditions in qmake since these platforms are mutually exclusive, and also opens up their potential for use on macOS to transparently support multi-arch builds like UIKit platforms. This is also more similar to what Xcode does, as the DEPLOYMENT_TARGET variables are platform specific, while the ARCHS variable is not. DEPLOYMENT_TARGET has a use case for being OS specific in qmake (host tools vs targets), while ARCHS does not. Change-Id: Icee838a39e84259c2089faff08cc11d5f849758d Reviewed-by: Lars Knoll --- mkspecs/features/mac/sdk.prf | 11 +++++------ mkspecs/features/uikit/default_post.prf | 31 ++++++------------------------- mkspecs/macx-ios-clang/qmake.conf | 4 ++-- mkspecs/macx-tvos-clang/qmake.conf | 4 ++-- mkspecs/macx-watchos-clang/qmake.conf | 4 ++-- 5 files changed, 17 insertions(+), 37 deletions(-) diff --git a/mkspecs/features/mac/sdk.prf b/mkspecs/features/mac/sdk.prf index 1db1db7b26..0d43fbe5a1 100644 --- a/mkspecs/features/mac/sdk.prf +++ b/mkspecs/features/mac/sdk.prf @@ -50,13 +50,12 @@ for(tool, $$list(QMAKE_CC QMAKE_CXX QMAKE_FIX_RPATH QMAKE_AR QMAKE_RANLIB QMAKE_ !equals(MAKEFILE_GENERATOR, XCODE) { uikit:!host_build { - ios: os_var = IOS - tvos: os_var = TVOS - watchos: os_var = WATCHOS + ios: deployment_target = $$QMAKE_IOS_DEPLOYMENT_TARGET + tvos: deployment_target = $$QMAKE_TVOS_DEPLOYMENT_TARGET + watchos: deployment_target = $$QMAKE_WATCHOS_DEPLOYMENT_TARGET - deployment_target = $$eval(QMAKE_$${os_var}_DEPLOYMENT_TARGET) - !simulator|simulator_and_device: device_archs = $$eval(QMAKE_$${os_var}_DEVICE_ARCHS) - simulator: simulator_archs = $$eval(QMAKE_$${os_var}_SIMULATOR_ARCHS) + !simulator|simulator_and_device: device_archs = $$QMAKE_APPLE_DEVICE_ARCHS + simulator: simulator_archs = $$QMAKE_APPLE_SIMULATOR_ARCHS archs = $$device_archs $$simulator_archs QMAKE_XARCH_CFLAGS = diff --git a/mkspecs/features/uikit/default_post.prf b/mkspecs/features/uikit/default_post.prf index b4de83d6b5..f34d0a9f2c 100644 --- a/mkspecs/features/uikit/default_post.prf +++ b/mkspecs/features/uikit/default_post.prf @@ -68,21 +68,10 @@ macx-xcode { macx-xcode { arch_device.name = "ARCHS[sdk=$${device.sdk}*]" arch_simulator.name = "ARCHS[sdk=$${simulator.sdk}*]" - ios { - arch_device.value = $$QMAKE_IOS_DEVICE_ARCHS - arch_simulator.value = $$QMAKE_IOS_SIMULATOR_ARCHS - QMAKE_XCODE_ARCHS = $$QMAKE_IOS_DEVICE_ARCHS $$QMAKE_IOS_SIMULATOR_ARCHS - } - tvos { - arch_device.value = $$QMAKE_TVOS_DEVICE_ARCHS - arch_simulator.value = $$QMAKE_TVOS_SIMULATOR_ARCHS - QMAKE_XCODE_ARCHS = $$QMAKE_TVOS_DEVICE_ARCHS $$QMAKE_TVOS_SIMULATOR_ARCHS - } - watchos { - arch_device.value = $$QMAKE_WATCHOS_DEVICE_ARCHS - arch_simulator.value = $$QMAKE_WATCHOS_SIMULATOR_ARCHS - QMAKE_XCODE_ARCHS = $$QMAKE_WATCHOS_DEVICE_ARCHS $$QMAKE_WATCHOS_SIMULATOR_ARCHS - } + + arch_device.value = $$QMAKE_APPLE_DEVICE_ARCHS + arch_simulator.value = $$QMAKE_APPLE_SIMULATOR_ARCHS + QMAKE_XCODE_ARCHS = $$QMAKE_APPLE_DEVICE_ARCHS $$QMAKE_APPLE_SIMULATOR_ARCHS QMAKE_MAC_XCODE_SETTINGS += arch_device arch_simulator @@ -92,16 +81,8 @@ macx-xcode { QMAKE_MAC_XCODE_SETTINGS += only_active_arch } else { VALID_ARCHS = - !simulator|simulator_and_device { - ios: VALID_ARCHS += $$QMAKE_IOS_DEVICE_ARCHS - tvos: VALID_ARCHS += $$QMAKE_TVOS_DEVICE_ARCHS - watchos: VALID_ARCHS += $$QMAKE_WATCHOS_DEVICE_ARCHS - } - simulator { - ios: VALID_ARCHS += $$QMAKE_IOS_SIMULATOR_ARCHS - tvos: VALID_ARCHS += $$QMAKE_TVOS_SIMULATOR_ARCHS - watchos: VALID_ARCHS += $$QMAKE_WATCHOS_SIMULATOR_ARCHS - } + !simulator|simulator_and_device: VALID_ARCHS += $$QMAKE_APPLE_DEVICE_ARCHS + simulator: VALID_ARCHS += $$QMAKE_APPLE_SIMULATOR_ARCHS single_arch: VALID_ARCHS = $$first(VALID_ARCHS) diff --git a/mkspecs/macx-ios-clang/qmake.conf b/mkspecs/macx-ios-clang/qmake.conf index 94eff0d237..5df225466f 100644 --- a/mkspecs/macx-ios-clang/qmake.conf +++ b/mkspecs/macx-ios-clang/qmake.conf @@ -7,8 +7,8 @@ QMAKE_IOS_DEPLOYMENT_TARGET = 7.0 # Universal target (iPhone and iPad) QMAKE_IOS_TARGETED_DEVICE_FAMILY = 1,2 -QMAKE_IOS_DEVICE_ARCHS = armv7 arm64 -QMAKE_IOS_SIMULATOR_ARCHS = i386 x86_64 +QMAKE_APPLE_DEVICE_ARCHS = armv7 arm64 +QMAKE_APPLE_SIMULATOR_ARCHS = i386 x86_64 include(../common/ios.conf) include(../common/gcc-base-mac.conf) diff --git a/mkspecs/macx-tvos-clang/qmake.conf b/mkspecs/macx-tvos-clang/qmake.conf index f389382450..8038ae6846 100644 --- a/mkspecs/macx-tvos-clang/qmake.conf +++ b/mkspecs/macx-tvos-clang/qmake.conf @@ -8,8 +8,8 @@ INCLUDEPATH += $$PWD/tvos QMAKE_TVOS_TARGETED_DEVICE_FAMILY = 3 -QMAKE_TVOS_DEVICE_ARCHS = arm64 -QMAKE_TVOS_SIMULATOR_ARCHS = x86_64 +QMAKE_APPLE_DEVICE_ARCHS = arm64 +QMAKE_APPLE_SIMULATOR_ARCHS = x86_64 include(../common/tvos.conf) include(../common/gcc-base-mac.conf) diff --git a/mkspecs/macx-watchos-clang/qmake.conf b/mkspecs/macx-watchos-clang/qmake.conf index bb9ab703b7..3ad02b636e 100644 --- a/mkspecs/macx-watchos-clang/qmake.conf +++ b/mkspecs/macx-watchos-clang/qmake.conf @@ -8,8 +8,8 @@ INCLUDEPATH += $$PWD/watchos QMAKE_WATCHOS_TARGETED_DEVICE_FAMILY = 4 -QMAKE_WATCHOS_DEVICE_ARCHS = armv7k -QMAKE_WATCHOS_SIMULATOR_ARCHS = i386 +QMAKE_APPLE_DEVICE_ARCHS = armv7k +QMAKE_APPLE_SIMULATOR_ARCHS = i386 include(../common/watchos.conf) include(../common/gcc-base-mac.conf) -- cgit v1.2.3 From beaa792e2021aad52ecd98a0e0f0f48571069dba Mon Sep 17 00:00:00 2001 From: Jake Petroules Date: Tue, 30 Aug 2016 10:35:50 -0700 Subject: Make TARGETED_DEVICE_FAMILY variable platform independent This reduces unnecessary OS conditions in qmake since these platforms are mutually exclusive, and also opens up their potential for use on future devices (like carOS(?), which is device idiom '5'). This is also more similar to what Xcode does, as the TARGETED_DEVICE_FAMILY variable is not platform specific. Change-Id: I29d209cd8e0779f492bda829008264773e13c75c Reviewed-by: Lars Knoll --- mkspecs/features/uikit/default_post.prf | 9 ++++++--- mkspecs/macx-ios-clang/qmake.conf | 2 +- mkspecs/macx-tvos-clang/qmake.conf | 2 +- mkspecs/macx-watchos-clang/qmake.conf | 2 +- 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/mkspecs/features/uikit/default_post.prf b/mkspecs/features/uikit/default_post.prf index f34d0a9f2c..9a231ffc84 100644 --- a/mkspecs/features/uikit/default_post.prf +++ b/mkspecs/features/uikit/default_post.prf @@ -19,10 +19,13 @@ equals(TEMPLATE, app):qt { load(default_post) macx-xcode { + ios:isEmpty(QMAKE_APPLE_TARGETED_DEVICE_FAMILY):!isEmpty(QMAKE_IOS_TARGETED_DEVICE_FAMILY) { + warning("QMAKE_IOS_TARGETED_DEVICE_FAMILY is deprecated; use QMAKE_APPLE_TARGETED_DEVICE_FAMILY") + QMAKE_APPLE_TARGETED_DEVICE_FAMILY = $$QMAKE_IOS_TARGETED_DEVICE_FAMILY + } + device_family.name = TARGETED_DEVICE_FAMILY - ios: device_family.value = $$QMAKE_IOS_TARGETED_DEVICE_FAMILY - tvos: device_family.value = $$QMAKE_TVOS_TARGETED_DEVICE_FAMILY - watchos: device_family.value = $$QMAKE_WATCHOS_TARGETED_DEVICE_FAMILY + device_family.value = $$QMAKE_APPLE_TARGETED_DEVICE_FAMILY QMAKE_MAC_XCODE_SETTINGS += device_family ios { diff --git a/mkspecs/macx-ios-clang/qmake.conf b/mkspecs/macx-ios-clang/qmake.conf index 5df225466f..e21445deb7 100644 --- a/mkspecs/macx-ios-clang/qmake.conf +++ b/mkspecs/macx-ios-clang/qmake.conf @@ -5,7 +5,7 @@ QMAKE_IOS_DEPLOYMENT_TARGET = 7.0 # Universal target (iPhone and iPad) -QMAKE_IOS_TARGETED_DEVICE_FAMILY = 1,2 +QMAKE_APPLE_TARGETED_DEVICE_FAMILY = 1,2 QMAKE_APPLE_DEVICE_ARCHS = armv7 arm64 QMAKE_APPLE_SIMULATOR_ARCHS = i386 x86_64 diff --git a/mkspecs/macx-tvos-clang/qmake.conf b/mkspecs/macx-tvos-clang/qmake.conf index 8038ae6846..e945cc9d28 100644 --- a/mkspecs/macx-tvos-clang/qmake.conf +++ b/mkspecs/macx-tvos-clang/qmake.conf @@ -6,7 +6,7 @@ QMAKE_TVOS_DEPLOYMENT_TARGET = 9.1 INCLUDEPATH += $$PWD/tvos -QMAKE_TVOS_TARGETED_DEVICE_FAMILY = 3 +QMAKE_APPLE_TARGETED_DEVICE_FAMILY = 3 QMAKE_APPLE_DEVICE_ARCHS = arm64 QMAKE_APPLE_SIMULATOR_ARCHS = x86_64 diff --git a/mkspecs/macx-watchos-clang/qmake.conf b/mkspecs/macx-watchos-clang/qmake.conf index 3ad02b636e..03c05ad717 100644 --- a/mkspecs/macx-watchos-clang/qmake.conf +++ b/mkspecs/macx-watchos-clang/qmake.conf @@ -6,7 +6,7 @@ QMAKE_WATCHOS_DEPLOYMENT_TARGET = 2.2 INCLUDEPATH += $$PWD/watchos -QMAKE_WATCHOS_TARGETED_DEVICE_FAMILY = 4 +QMAKE_APPLE_TARGETED_DEVICE_FAMILY = 4 QMAKE_APPLE_DEVICE_ARCHS = armv7k QMAKE_APPLE_SIMULATOR_ARCHS = i386 -- cgit v1.2.3 From 21b7661a797ecf77fbcad4380e6dcb2ade929a18 Mon Sep 17 00:00:00 2001 From: BogDan Vatra Date: Tue, 23 Aug 2016 22:32:11 +0300 Subject: Parse namespaces only for current file, add Q_NAMESPACE support to qmake Parsing the other files will (re)generate the same metaobject info in two places Change-Id: I8984ed30751a7587de870f55dd427f067d1b2495 Reviewed-by: Olivier Goffart (Woboq GmbH) --- qmake/generators/makefiledeps.cpp | 13 ++++++++++--- src/tools/moc/moc.cpp | 3 ++- tests/auto/tools/moc/moc.pro | 3 ++- tests/auto/tools/moc/namespace.h | 7 +++++++ tests/auto/tools/moc/tst_moc.cpp | 1 + 5 files changed, 22 insertions(+), 5 deletions(-) create mode 100644 tests/auto/tools/moc/namespace.h diff --git a/qmake/generators/makefiledeps.cpp b/qmake/generators/makefiledeps.cpp index 57cb0ea854..67c8219d4b 100644 --- a/qmake/generators/makefiledeps.cpp +++ b/qmake/generators/makefiledeps.cpp @@ -911,9 +911,10 @@ bool QMakeSourceFileInfo::findMocs(SourceFile *file) debug_msg(2, "findMocs: %s", file->file.local().toLatin1().constData()); int line_count = 1; - bool ignore[2] = { false, false }; // [0] for Q_OBJECT, [1] for Q_GADGET + bool ignore[3] = { false, false, false }; // [0] for Q_OBJECT, [1] for Q_GADGET, [2] for Q_NAMESPACE /* qmake ignore Q_GADGET */ /* qmake ignore Q_OBJECT */ + /* qmake ignore Q_NAMESPACE */ for(int x = 0; x < buffer_len; x++) { #define SKIP_BSNL(pos) skipEscapedLineEnds(buffer, buffer_len, (pos), &line_count) x = SKIP_BSNL(x); @@ -946,6 +947,12 @@ bool QMakeSourceFileInfo::findMocs(SourceFile *file) file->file.real().toLatin1().constData(), line_count); x += 20; ignore[1] = true; + } else if (buffer_len >= (x + 23) && + !strncmp(buffer + x + 1, "make ignore Q_NAMESPACE", 23)) { + debug_msg(2, "Mocgen: %s:%d Found \"qmake ignore Q_NAMESPACE\"", + file->file.real().toLatin1().constData(), line_count); + x += 23; + ignore[2] = true; } } else if (buffer[x] == '*') { extralines = 0; @@ -973,8 +980,8 @@ bool QMakeSourceFileInfo::findMocs(SourceFile *file) int morelines = 0; int y = skipEscapedLineEnds(buffer, buffer_len, x + 1, &morelines); if (buffer[y] == 'Q') { - static const char interesting[][9] = { "Q_OBJECT", "Q_GADGET" }; - for (int interest = 0; interest < 2; ++interest) { + static const char interesting[][12] = { "Q_OBJECT", "Q_GADGET", "Q_NAMESPACE"}; + for (int interest = 0; interest < 3; ++interest) { if (ignore[interest]) continue; diff --git a/src/tools/moc/moc.cpp b/src/tools/moc/moc.cpp index 22207a9030..eda410783c 100644 --- a/src/tools/moc/moc.cpp +++ b/src/tools/moc/moc.cpp @@ -560,7 +560,8 @@ void Moc::parse() until(RBRACE); def.end = index; index = def.begin + 1; - while (inNamespace(&def) && hasNext()) { + const bool parseNamespace = currentFilenames.size() <= 1; + while (parseNamespace && inNamespace(&def) && hasNext()) { switch (next()) { case Q_NAMESPACE_TOKEN: def.hasQNamespace = true; diff --git a/tests/auto/tools/moc/moc.pro b/tests/auto/tools/moc/moc.pro index 688799048f..d2b750bdc5 100644 --- a/tests/auto/tools/moc/moc.pro +++ b/tests/auto/tools/moc/moc.pro @@ -28,7 +28,8 @@ HEADERS += using-namespaces.h no-keywords.h task87883.h c-comments.h backslash-n qtbug-35657-gadget.h \ non-gadget-parent-class.h grand-parent-gadget-class.h \ related-metaobjects-in-gadget.h \ - related-metaobjects-name-conflict.h + related-metaobjects-name-conflict.h \ + namespace.h if(*-g++*|*-icc*|*-clang*|*-llvm):!irix-*:!win32-*: HEADERS += os9-newlines.h win-newlines.h diff --git a/tests/auto/tools/moc/namespace.h b/tests/auto/tools/moc/namespace.h new file mode 100644 index 0000000000..2bb1d8e958 --- /dev/null +++ b/tests/auto/tools/moc/namespace.h @@ -0,0 +1,7 @@ +#pragma once + +#include + +namespace FooNamespace { + Q_NAMESPACE +} diff --git a/tests/auto/tools/moc/tst_moc.cpp b/tests/auto/tools/moc/tst_moc.cpp index 714ae19a10..56d6939102 100644 --- a/tests/auto/tools/moc/tst_moc.cpp +++ b/tests/auto/tools/moc/tst_moc.cpp @@ -69,6 +69,7 @@ #include "non-gadget-parent-class.h" #include "grand-parent-gadget-class.h" +#include "namespace.h" #ifdef Q_MOC_RUN // check that moc can parse these constructs, they are being used in Windows winsock2.h header -- cgit v1.2.3 From 5d771eb0c89e8d04ae05007b58442dc944b8684c Mon Sep 17 00:00:00 2001 From: Maurice Kalinowski Date: Thu, 1 Sep 2016 11:04:33 +0200 Subject: Add BLACKLIST to builtin_testdata For platforms which require packaging the testdata into the application resources, the BLACKLIST file needs to be added. Otherwise it will not be found during runtime. Change-Id: I2d5c3b3040b3b268bc73254459b8b902b7fae4e2 Reviewed-by: Oliver Wolff --- mkspecs/features/testcase.prf | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/mkspecs/features/testcase.prf b/mkspecs/features/testcase.prf index 08ed00715d..64a6a9266b 100644 --- a/mkspecs/features/testcase.prf +++ b/mkspecs/features/testcase.prf @@ -181,6 +181,11 @@ isEmpty(BUILDS)|build_pass { builtin_testdata { ALL_TESTDATA = $$TESTDATA $$GENERATED_TESTDATA + + # BLACKLIST needs to be added to the testdata + BLACKLISTPATH = $$_PRO_FILE_PWD_/BLACKLIST + exists($$BLACKLISTPATH): ALL_TESTDATA *= $$BLACKLISTPATH + # RESOURCES does not support wildcards (for good reasons) for(td, ALL_TESTDATA): \ testdata.files += $$files($$absolute_path($$td, $$_PRO_FILE_PWD_)) -- cgit v1.2.3 From aa624a768c216366139a694a2e6c33e2abcf42a2 Mon Sep 17 00:00:00 2001 From: Maurice Kalinowski Date: Thu, 1 Sep 2016 11:05:36 +0200 Subject: winrt: Differentiate between windows and winrt While there are similarities, we want to keep control over those tests which affect only one platform. Change-Id: Id1f6eb9954169148d70cea14969f34f21d1e6690 Reviewed-by: Oliver Wolff --- src/testlib/qtestblacklist.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/testlib/qtestblacklist.cpp b/src/testlib/qtestblacklist.cpp index 3fec0ad98a..587930ca73 100644 --- a/src/testlib/qtestblacklist.cpp +++ b/src/testlib/qtestblacklist.cpp @@ -97,7 +97,7 @@ static QSet keywords() #ifdef Q_OS_OSX << "osx" #endif -#ifdef Q_OS_WIN +#if defined(Q_OS_WIN) && !defined(Q_OS_WINRT) << "windows" #endif #ifdef Q_OS_IOS -- cgit v1.2.3 From 2fb6db0abaeaa81a895940198820716b62d9bc34 Mon Sep 17 00:00:00 2001 From: Maurice Kalinowski Date: Thu, 1 Sep 2016 11:06:23 +0200 Subject: winrt: Add tests to blacklist This synchronizes with windows. Change-Id: I25a7d9969db37d44c2389a7dceb5f7096f658295 Reviewed-by: Oliver Wolff --- tests/auto/opengl/qgl/BLACKLIST | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tests/auto/opengl/qgl/BLACKLIST b/tests/auto/opengl/qgl/BLACKLIST index a7aaa04900..a83d1272a0 100644 --- a/tests/auto/opengl/qgl/BLACKLIST +++ b/tests/auto/opengl/qgl/BLACKLIST @@ -1,17 +1,25 @@ [glWidgetRendering] windows +winrt [glFBORendering] windows +winrt [multipleFBOInterleavedRendering] windows +winrt [glPBufferRendering] windows +winrt [replaceClipping] windows +winrt [clipTest] windows +winrt opensuse-13.1 [graphicsViewClipping] windows +winrt [glFBOUseInGLWidget] windows +winrt -- cgit v1.2.3 From 25d30ddb3e952ceb5964ce8cd6e8fd8aff3a2c59 Mon Sep 17 00:00:00 2001 From: Maurice Kalinowski Date: Tue, 6 Sep 2016 10:21:22 +0200 Subject: winrt: Fix build without SSL support Task-number: QTBUG-55716 Change-Id: I0c843af7592803362ff2498b102e9264a03b389a Reviewed-by: Oliver Wolff --- src/network/socket/qnativesocketengine_winrt.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/network/socket/qnativesocketengine_winrt.cpp b/src/network/socket/qnativesocketengine_winrt.cpp index 641863b4fd..6b71912838 100644 --- a/src/network/socket/qnativesocketengine_winrt.cpp +++ b/src/network/socket/qnativesocketengine_winrt.cpp @@ -1306,10 +1306,12 @@ HRESULT QNativeSocketEnginePrivate::handleConnectOpFinished(IAsyncAction *action if (socketType != QAbstractSocket::TcpSocket) return S_OK; +#ifndef QT_NO_SSL // Delay the reader so that the SSL socket can upgrade if (sslSocket) QObject::connect(qobject_cast(sslSocket), &QSslSocket::encrypted, q, &QNativeSocketEngine::establishRead); else +#endif q->establishRead(); return S_OK; } -- cgit v1.2.3 From a5915f260ff882f3e5cf09060ffa007856a0a33f Mon Sep 17 00:00:00 2001 From: Oliver Wolff Date: Tue, 6 Sep 2016 13:35:28 +0200 Subject: winrt: Use ComPtrs in input context By doing so we no longer leak the input pane inside the destructor. Additionally the coding style is closer to the rest of the WinRT port. Change-Id: I0d56086719c98585cec8bc3c4bcb2d86c3ea2e79 Reviewed-by: Maurice Kalinowski --- src/plugins/platforms/winrt/qwinrtinputcontext.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/plugins/platforms/winrt/qwinrtinputcontext.cpp b/src/plugins/platforms/winrt/qwinrtinputcontext.cpp index 3f476556ee..065ed28cc0 100644 --- a/src/plugins/platforms/winrt/qwinrtinputcontext.cpp +++ b/src/plugins/platforms/winrt/qwinrtinputcontext.cpp @@ -59,7 +59,7 @@ QT_BEGIN_NAMESPACE Q_LOGGING_CATEGORY(lcQpaInputMethods, "qt.qpa.input.methods") -inline QRectF getInputPaneRect(IInputPane *pane, qreal scaleFactor) +inline QRectF getInputPaneRect(ComPtr pane, qreal scaleFactor) { Rect rect; pane->get_OccludedRect(&rect); @@ -85,16 +85,15 @@ QWinRTInputContext::QWinRTInputContext(QWinRTScreen *screen) { qCDebug(lcQpaInputMethods) << __FUNCTION__ << screen; - IInputPaneStatics *statics; + ComPtr statics; if (FAILED(GetActivationFactory(HString::MakeReference(RuntimeClass_Windows_UI_ViewManagement_InputPane).Get(), &statics))) { qWarning("failed to retrieve input pane statics."); return; } - IInputPane *inputPane; + ComPtr inputPane; statics->GetForCurrentView(&inputPane); - statics->Release(); if (inputPane) { EventRegistrationToken showToken, hideToken; inputPane->add_Showing(Callback( -- cgit v1.2.3 From f104e43a72380f66f8c517b90326a9209612106d Mon Sep 17 00:00:00 2001 From: Oliver Wolff Date: Thu, 1 Sep 2016 14:06:10 +0200 Subject: winrt: Make sure that cursor is visible when virtual keyboard is shown We have to check whether the cursor is covered by the virtual keyboard when it is shown. If that is the case and the keyboard is snapped to the bottom of the screen the whole content is moved up to ensure the cursors's visibility. WinRT's input context had to be moved from the XAML to the GUI thread as the signal/slot connection does not work otherwise. Signals from QInputMethod were emitted but not handled in QWinRTInputContext as it ran on another thread which did not spin an event loop. Task-number: QTBUG-50291 Change-Id: Id89e970dc194c25ad07ceab14d9fea51bd7388b2 Reviewed-by: Maurice Kalinowski --- src/plugins/platforms/winrt/qwinrtinputcontext.cpp | 22 ++++++++--- src/plugins/platforms/winrt/qwinrtinputcontext.h | 4 ++ src/plugins/platforms/winrt/qwinrtintegration.cpp | 2 +- src/plugins/platforms/winrt/qwinrtscreen.cpp | 43 ++++++++++++++++++++++ src/plugins/platforms/winrt/qwinrtscreen.h | 4 ++ 5 files changed, 69 insertions(+), 6 deletions(-) diff --git a/src/plugins/platforms/winrt/qwinrtinputcontext.cpp b/src/plugins/platforms/winrt/qwinrtinputcontext.cpp index 065ed28cc0..968c47f2c2 100644 --- a/src/plugins/platforms/winrt/qwinrtinputcontext.cpp +++ b/src/plugins/platforms/winrt/qwinrtinputcontext.cpp @@ -39,6 +39,7 @@ #include "qwinrtinputcontext.h" #include "qwinrtscreen.h" +#include #include #include @@ -95,17 +96,22 @@ QWinRTInputContext::QWinRTInputContext(QWinRTScreen *screen) ComPtr inputPane; statics->GetForCurrentView(&inputPane); if (inputPane) { - EventRegistrationToken showToken, hideToken; - inputPane->add_Showing(Callback( - this, &QWinRTInputContext::onShowing).Get(), &showToken); - inputPane->add_Hiding(Callback( - this, &QWinRTInputContext::onHiding).Get(), &hideToken); + QEventDispatcherWinRT::runOnXamlThread([this, inputPane]() { + EventRegistrationToken showToken, hideToken; + inputPane->add_Showing(Callback( + this, &QWinRTInputContext::onShowing).Get(), &showToken); + inputPane->add_Hiding(Callback( + this, &QWinRTInputContext::onHiding).Get(), &hideToken); + return S_OK; + }); m_keyboardRect = getInputPaneRect(inputPane, m_screen->scaleFactor()); m_isInputPanelVisible = !m_keyboardRect.isEmpty(); } else { qWarning("failed to retrieve InputPane."); } + connect(QGuiApplication::inputMethod(), &QInputMethod::cursorRectangleChanged, + this, &QWinRTInputContext::updateScreenCursorRect); } QRectF QWinRTInputContext::keyboardRect() const @@ -118,6 +124,11 @@ bool QWinRTInputContext::isInputPanelVisible() const return m_isInputPanelVisible; } +void QWinRTInputContext::updateScreenCursorRect() +{ + m_screen->setCursorRect(QGuiApplication::inputMethod()->cursorRectangle()); +} + HRESULT QWinRTInputContext::onShowing(IInputPane *pane, IInputPaneVisibilityEventArgs *) { qCDebug(lcQpaInputMethods) << __FUNCTION__ << pane; @@ -140,6 +151,7 @@ HRESULT QWinRTInputContext::handleVisibilityChange(IInputPane *pane) const QRectF keyboardRect = getInputPaneRect(pane, m_screen->scaleFactor()); if (m_keyboardRect != keyboardRect) { m_keyboardRect = keyboardRect; + m_screen->setKeyboardRect(m_keyboardRect); emitKeyboardRectChanged(); } return S_OK; diff --git a/src/plugins/platforms/winrt/qwinrtinputcontext.h b/src/plugins/platforms/winrt/qwinrtinputcontext.h index 5e416bb99f..9d5c4187e2 100644 --- a/src/plugins/platforms/winrt/qwinrtinputcontext.h +++ b/src/plugins/platforms/winrt/qwinrtinputcontext.h @@ -79,6 +79,9 @@ public: void hideInputPanel(); #endif +private slots: + void updateScreenCursorRect(); + private: HRESULT onShowing(ABI::Windows::UI::ViewManagement::IInputPane *, ABI::Windows::UI::ViewManagement::IInputPaneVisibilityEventArgs *); @@ -89,6 +92,7 @@ private: QWinRTScreen *m_screen; QRectF m_keyboardRect; + QRectF m_cursorRect; bool m_isInputPanelVisible; }; diff --git a/src/plugins/platforms/winrt/qwinrtintegration.cpp b/src/plugins/platforms/winrt/qwinrtintegration.cpp index 42b7f7e909..32edf2b1a2 100644 --- a/src/plugins/platforms/winrt/qwinrtintegration.cpp +++ b/src/plugins/platforms/winrt/qwinrtintegration.cpp @@ -197,9 +197,9 @@ QWinRTIntegration::QWinRTIntegration() : d_ptr(new QWinRTIntegrationPrivate) QEventDispatcherWinRT::runOnXamlThread([d]() { d->mainScreen = new QWinRTScreen; - d->inputContext.reset(new QWinRTInputContext(d->mainScreen)); return S_OK; }); + d->inputContext.reset(new QWinRTInputContext(d->mainScreen)); screenAdded(d->mainScreen); d->platformServices = new QWinRTServices; diff --git a/src/plugins/platforms/winrt/qwinrtscreen.cpp b/src/plugins/platforms/winrt/qwinrtscreen.cpp index ad32c046df..4574439b1a 100644 --- a/src/plugins/platforms/winrt/qwinrtscreen.cpp +++ b/src/plugins/platforms/winrt/qwinrtscreen.cpp @@ -753,6 +753,49 @@ void QWinRTScreen::initialize() onVisibilityChanged(nullptr, nullptr); } +void QWinRTScreen::setCursorRect(const QRectF &cursorRect) +{ + mCursorRect = cursorRect; +} + +void QWinRTScreen::setKeyboardRect(const QRectF &keyboardRect) +{ + Q_D(QWinRTScreen); + QRectF visibleRectF; + HRESULT hr; + Rect windowSize; + + hr = d->coreWindow->get_Bounds(&windowSize); + if (FAILED(hr)) { + qErrnoWarning(hr, "Failed to get window bounds"); + return; + } + d->logicalRect = QRectF(windowSize.X, windowSize.Y, windowSize.Width, windowSize.Height); +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_PHONE_APP) + Rect visibleRect; + hr = d->view2->get_VisibleBounds(&visibleRect); + if (FAILED(hr)) { + qErrnoWarning(hr, "Failed to get window visible bounds"); + return; + } + visibleRectF = QRectF(visibleRect.X, visibleRect.Y, visibleRect.Width, visibleRect.Height); +#else + visibleRectF = d->logicalRect; +#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_PHONE_APP) + // if keyboard is snapped to the bottom of the screen and would cover the cursor the content is + // moved up to make it visible + if (keyboardRect.intersects(mCursorRect) + && qFuzzyCompare(geometry().height(), keyboardRect.y() + keyboardRect.height())) { + visibleRectF.moveTop(visibleRectF.top() - keyboardRect.height() / d->scaleFactor); + } + d->visibleRect = visibleRectF; + + qCDebug(lcQpaWindows) << __FUNCTION__ << d->visibleRect; + QWindowSystemInterface::handleScreenGeometryChange(screen(), geometry(), availableGeometry()); + QPlatformScreen::resizeMaximizedWindows(); + handleExpose(); +} + QWindow *QWinRTScreen::topWindow() const { Q_D(const QWinRTScreen); diff --git a/src/plugins/platforms/winrt/qwinrtscreen.h b/src/plugins/platforms/winrt/qwinrtscreen.h index 0e753b748b..1862c0afcf 100644 --- a/src/plugins/platforms/winrt/qwinrtscreen.h +++ b/src/plugins/platforms/winrt/qwinrtscreen.h @@ -116,6 +116,9 @@ public: void initialize(); + void setCursorRect(const QRectF &cursorRect); + void setKeyboardRect(const QRectF &keyboardRect); + private: void handleExpose(); @@ -140,6 +143,7 @@ private: #endif QScopedPointer d_ptr; + QRectF mCursorRect; Q_DECLARE_PRIVATE(QWinRTScreen) }; -- cgit v1.2.3 From fe82f50a65ecafee9ea7d0e48cf3bb2106414001 Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Thu, 1 Sep 2016 16:54:43 +0200 Subject: Minor improvements to bilinear filtering Duplicates the improved bounds check for rotated sampling in RGB64, and improves two prologs by using that x1 == x2 during the prolog. Change-Id: I562c5bee12e314c36d3b304f2f72d7635d22d7d4 Reviewed-by: Olivier Goffart (Woboq GmbH) --- src/gui/painting/qdrawhelper.cpp | 52 +++++++++++++++++++++------------------- 1 file changed, 28 insertions(+), 24 deletions(-) diff --git a/src/gui/painting/qdrawhelper.cpp b/src/gui/painting/qdrawhelper.cpp index 7e06a71a22..491f2d80da 100644 --- a/src/gui/painting/qdrawhelper.cpp +++ b/src/gui/painting/qdrawhelper.cpp @@ -2176,7 +2176,8 @@ static const uint * QT_FASTCALL fetchTransformedBilinearARGB32PM(uint *buffer, c fetchTransformedBilinear_pixelBounds(image_height, image_y1, image_y2, y1, y2); const uint *s1 = (const uint *)data->texture.scanLine(y1); const uint *s2 = (const uint *)data->texture.scanLine(y2); - int disty = ((fy & 0x0000ffff) + 0x0800) >> 12; + const int disty8 = (fy & 0x0000ffff) >> 8; + const int disty4 = (disty8 + 0x08) >> 4; if (blendType != BlendTransformedBilinearTiled) { #define BILINEAR_DOWNSCALE_BOUNDS_PROLOG \ @@ -2188,12 +2189,9 @@ static const uint * QT_FASTCALL fetchTransformedBilinearARGB32PM(uint *buffer, c fetchTransformedBilinear_pixelBounds(image_width, image_x1, image_x2, x1, x2); \ if (x1 != x2) \ break; \ - uint tl = s1[x1]; \ - uint tr = s1[x2]; \ - uint bl = s2[x1]; \ - uint br = s2[x2]; \ - int distx = ((fx & 0x0000ffff) + 0x0800) >> 12; \ - *b = interpolate_4_pixels_16(tl, tr, bl, br, distx, disty); \ + uint top = s1[x1]; \ + uint bot = s2[x1]; \ + *b = INTERPOLATE_PIXEL_256(top, 256 - disty8, bot, disty8); \ fx += fdx; \ ++b; \ } \ @@ -2209,7 +2207,7 @@ static const uint * QT_FASTCALL fetchTransformedBilinearARGB32PM(uint *buffer, c const __m128i colorMask = _mm_set1_epi32(0x00ff00ff); const __m128i v_256 = _mm_set1_epi16(256); - const __m128i v_disty = _mm_set1_epi16(disty); + const __m128i v_disty = _mm_set1_epi16(disty4); const __m128i v_fdx = _mm_set1_epi32(fdx*4); const __m128i v_fx_r = _mm_set1_epi32(0x8); __m128i v_fx = _mm_setr_epi32(fx, fx + fdx, fx + fdx + fdx, fx + fdx + fdx + fdx); @@ -2241,7 +2239,7 @@ static const uint * QT_FASTCALL fetchTransformedBilinearARGB32PM(uint *buffer, c const int16x8_t colorMask = vdupq_n_s16(0x00ff); const int16x8_t invColorMask = vmvnq_s16(colorMask); const int16x8_t v_256 = vdupq_n_s16(256); - const int16x8_t v_disty = vdupq_n_s16(disty); + const int16x8_t v_disty = vdupq_n_s16(disty4); const int16x8_t v_disty_ = vshlq_n_s16(v_disty, 4); int32x4_t v_fdx = vdupq_n_s32(fdx*4); @@ -2298,8 +2296,14 @@ static const uint * QT_FASTCALL fetchTransformedBilinearARGB32PM(uint *buffer, c uint tr = s1[x2]; uint bl = s2[x1]; uint br = s2[x2]; - int distx = ((fx & 0x0000ffff) + 0x0800) >> 12; - *b = interpolate_4_pixels_16(tl, tr, bl, br, distx, disty); +#if defined(__SSE2__) || defined(__ARM_NEON__) + // The optimized interpolate_4_pixels are faster than interpolate_4_pixels_16. + int distx8 = (fx & 0x0000ffff) >> 8; + *b = interpolate_4_pixels(tl, tr, bl, br, distx8, disty8); +#else + int distx4 = ((fx & 0x0000ffff) + 0x0800) >> 12; + *b = interpolate_4_pixels_16(tl, tr, bl, br, distx4, disty4); +#endif fx += fdx; ++b; } @@ -2980,10 +2984,8 @@ static const QRgba64 *QT_FASTCALL fetchTransformedBilinear64(QRgba64 *buffer, co fetchTransformedBilinear_pixelBounds(image_width, image_x1, image_x2, x1, x2); if (x1 != x2) break; - sbuf1[i * 2 + 0] = ((const uint*)s1)[x1]; - sbuf1[i * 2 + 1] = ((const uint*)s1)[x2]; - sbuf2[i * 2 + 0] = ((const uint*)s2)[x1]; - sbuf2[i * 2 + 1] = ((const uint*)s2)[x2]; + sbuf1[i * 2 + 0] = sbuf1[i * 2 + 1] = ((const uint*)s1)[x1]; + sbuf2[i * 2 + 0] = sbuf2[i * 2 + 1] = ((const uint*)s2)[x1]; fx += fdx; } int fastLen; @@ -3102,6 +3104,16 @@ static const QRgba64 *QT_FASTCALL fetchTransformedBilinear64(QRgba64 *buffer, co fx += fdx; fy += fdy; } + int fastLen = len; + if (fdx > 0) + fastLen = qMin(fastLen, int((qint64(image_x2) * fixed_scale - fx) / fdx)); + else if (fdx < 0) + fastLen = qMin(fastLen, int((qint64(image_x1) * fixed_scale - fx) / fdx)); + if (fdy > 0) + fastLen = qMin(fastLen, int((qint64(image_y2) * fixed_scale - fy) / fdy)); + else if (fdy < 0) + fastLen = qMin(fastLen, int((qint64(image_y1) * fixed_scale - fy) / fdy)); + fastLen -= 3; const __m128i v_fdx = _mm_set1_epi32(fdx*4); const __m128i v_fdy = _mm_set1_epi32(fdy*4); @@ -3111,15 +3123,7 @@ static const QRgba64 *QT_FASTCALL fetchTransformedBilinear64(QRgba64 *buffer, co const uchar *s1 = data->texture.imageData; const uchar *s2 = s1 + bytesPerLine; const __m128i vbpl = _mm_shufflelo_epi16(_mm_cvtsi32_si128(bytesPerLine/4), _MM_SHUFFLE(0, 0, 0, 0)); - for (; i < len-3; i+=4) { - if (fdx > 0 && (short)_mm_extract_epi16(v_fx, 7) >= image_x2) - break; - if (fdx < 0 && (short)_mm_extract_epi16(v_fx, 7) < image_x1) - break; - if (fdy > 0 && (short)_mm_extract_epi16(v_fy, 7) >= image_y2) - break; - if (fdy < 0 && (short)_mm_extract_epi16(v_fy, 7) < image_y1) - break; + for (; i < fastLen; i += 4) { const __m128i vy = _mm_packs_epi32(_mm_srai_epi32(v_fy, 16), _mm_setzero_si128()); __m128i voffset = _mm_unpacklo_epi16(_mm_mullo_epi16(vy, vbpl), _mm_mulhi_epu16(vy, vbpl)); voffset = _mm_add_epi32(voffset, _mm_srli_epi32(v_fx, 16)); -- cgit v1.2.3 From 806b45e7c76f6825e32fde10824beb62eecc40ab Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Tue, 6 Sep 2016 11:03:33 +0200 Subject: Make blendPixel function general Moves the blendPixel function from the SSSE3 file and use it more generally, also adds a const_alpha version. Change-Id: Ia29d1ab3879a845d5b65e0610b7836507e33c7ed Reviewed-by: Thiago Macieira --- src/gui/painting/qdrawhelper_p.h | 16 ++++++++++++++++ src/gui/painting/qdrawhelper_ssse3.cpp | 9 --------- src/gui/painting/qdrawingprimitive_sse2_p.h | 24 ++++-------------------- 3 files changed, 20 insertions(+), 29 deletions(-) diff --git a/src/gui/painting/qdrawhelper_p.h b/src/gui/painting/qdrawhelper_p.h index 664117a730..45a3174734 100644 --- a/src/gui/painting/qdrawhelper_p.h +++ b/src/gui/painting/qdrawhelper_p.h @@ -636,6 +636,22 @@ static Q_ALWAYS_INLINE uint BYTE_MUL(uint x, uint a) { } #endif +static Q_ALWAYS_INLINE void blend_pixel(quint32 &dst, const quint32 src) +{ + if (src >= 0xff000000) + dst = src; + else if (src != 0) + dst = src + BYTE_MUL(dst, qAlpha(~src)); +} + +static Q_ALWAYS_INLINE void blend_pixel(quint32 &dst, const quint32 src, const int const_alpha) +{ + if (src != 0) { + const quint32 s = BYTE_MUL(src, const_alpha); + dst = s + BYTE_MUL(dst, qAlpha(~s)); + } +} + #if defined(__SSE2__) static Q_ALWAYS_INLINE uint interpolate_4_pixels_sse2(__m128i vt, __m128i vb, uint distx, uint disty) { diff --git a/src/gui/painting/qdrawhelper_ssse3.cpp b/src/gui/painting/qdrawhelper_ssse3.cpp index 7cd3e9ca1b..2026a4e656 100644 --- a/src/gui/painting/qdrawhelper_ssse3.cpp +++ b/src/gui/painting/qdrawhelper_ssse3.cpp @@ -45,15 +45,6 @@ QT_BEGIN_NAMESPACE -inline static void blend_pixel(quint32 &dst, const quint32 src) -{ - if (src >= 0xff000000) - dst = src; - else if (src != 0) - dst = src + BYTE_MUL(dst, qAlpha(~src)); -} - - /* The instruction palignr uses direct arguments, so we have to generate the code fo the different shift (4, 8, 12). Checking the alignment inside the loop is unfortunatelly way too slow. */ diff --git a/src/gui/painting/qdrawingprimitive_sse2_p.h b/src/gui/painting/qdrawingprimitive_sse2_p.h index 8799dff92a..7affc63b32 100644 --- a/src/gui/painting/qdrawingprimitive_sse2_p.h +++ b/src/gui/painting/qdrawingprimitive_sse2_p.h @@ -171,11 +171,7 @@ QT_BEGIN_NAMESPACE \ /* First, get dst aligned. */ \ ALIGNMENT_PROLOGUE_16BYTES(dst, x, length) { \ - uint s = src[x]; \ - if (s >= 0xff000000) \ - dst[x] = s; \ - else if (s != 0) \ - dst[x] = s + BYTE_MUL(dst[x], qAlpha(~s)); \ + blend_pixel(dst[x], src[x]); \ } \ \ for (; x < length-3; x += 4) { \ @@ -183,11 +179,7 @@ QT_BEGIN_NAMESPACE BLEND_SOURCE_OVER_ARGB32_SSE2_helper(dst, srcVector, nullVector, half, one, colorMask, alphaMask) \ } \ for (; x < length; ++x) { \ - uint s = src[x]; \ - if (s >= 0xff000000) \ - dst[x] = s; \ - else if (s != 0) \ - dst[x] = s + BYTE_MUL(dst[x], qAlpha(~s)); \ + blend_pixel(dst[x], src[x]); \ } \ } @@ -207,11 +199,7 @@ QT_BEGIN_NAMESPACE int x = 0; \ \ ALIGNMENT_PROLOGUE_16BYTES(dst, x, length) { \ - quint32 s = src[x]; \ - if (s != 0) { \ - s = BYTE_MUL(s, const_alpha); \ - dst[x] = s + BYTE_MUL(dst[x], qAlpha(~s)); \ - } \ + blend_pixel(dst[x], src[x], const_alpha); \ } \ \ for (; x < length-3; x += 4) { \ @@ -232,11 +220,7 @@ QT_BEGIN_NAMESPACE } \ } \ for (; x < length; ++x) { \ - quint32 s = src[x]; \ - if (s != 0) { \ - s = BYTE_MUL(s, const_alpha); \ - dst[x] = s + BYTE_MUL(dst[x], qAlpha(~s)); \ - } \ + blend_pixel(dst[x], src[x], const_alpha); \ } \ } -- cgit v1.2.3 From 6549bd383d64881ba6b9dad8529fd904d17da100 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Wed, 31 Aug 2016 13:00:13 +0200 Subject: Optimize Q_FOREACH for rvalues Add an rvalue overload of the QForeachContainer ctor to allow moving rvalues into the internal container copy. This does not change the semantics of Q_FOREACH. It is just an optimization. Port to NSDMI to minimize code duplication. Costs ~1.3KiB across all libraries and plugins in a QtBase Linux build (optimized GCC 6.1 AMD64). Change-Id: I180e35ecab68aa1d37773b3546787481bb5515a2 Reviewed-by: Olivier Goffart (Woboq GmbH) --- src/corelib/global/qglobal.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/corelib/global/qglobal.h b/src/corelib/global/qglobal.h index e6d65b0f99..c463a392b7 100644 --- a/src/corelib/global/qglobal.h +++ b/src/corelib/global/qglobal.h @@ -943,10 +943,11 @@ template class QForeachContainer { QForeachContainer &operator=(const QForeachContainer &) Q_DECL_EQ_DELETE; public: - inline QForeachContainer(const T& t) : c(t), i(c.begin()), e(c.end()), control(1) { } + QForeachContainer(const T &t) : c(t) {} + QForeachContainer(T &&t) : c(std::move(t)) {} const T c; - typename T::const_iterator i, e; - int control; + typename T::const_iterator i = c.begin(), e = c.end(); + int control = 1; }; // Explanation of the control word: -- cgit v1.2.3 From a70faa847071fac035f1fc392003ef70a7462235 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Tue, 6 Sep 2016 09:04:36 +0200 Subject: qmake: remove unused #include Amends 5af12dae41da231c9e8fa25478605a760ccb03bd. Change-Id: I8dd35d21de882be2628f5dd75a5ddd9deef71a19 Reviewed-by: Jesus Fernandez Reviewed-by: Oswald Buddenhagen --- qmake/generators/win32/msvc_vcproj.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/qmake/generators/win32/msvc_vcproj.cpp b/qmake/generators/win32/msvc_vcproj.cpp index 7e476eaf42..1155e45bd7 100644 --- a/qmake/generators/win32/msvc_vcproj.cpp +++ b/qmake/generators/win32/msvc_vcproj.cpp @@ -36,7 +36,6 @@ #include #include #include -#include //#define DEBUG_SOLUTION_GEN -- cgit v1.2.3 From b95b00c61a5500bc6fc003cd8a222c1b57622880 Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Wed, 24 Aug 2016 09:29:47 +0200 Subject: Be more robust when reading the library version number from pkg-config Ignore everything that after the initial period separated numbers. Change-Id: I376b154ff0ab6e3877223ec1383ed4708ecd2164 Reviewed-by: Oswald Buddenhagen Reviewed-by: Lars Knoll --- mkspecs/features/qt_configure.prf | 1 + 1 file changed, 1 insertion(+) diff --git a/mkspecs/features/qt_configure.prf b/mkspecs/features/qt_configure.prf index bb93e3cffd..2067829a10 100644 --- a/mkspecs/features/qt_configure.prf +++ b/mkspecs/features/qt_configure.prf @@ -493,6 +493,7 @@ defineTest(qtConfLibrary_pkgConfig) { eval(includes = $$includes) includes ~= s/^-I//g $${1}.includedir = "$$val_escape(includes)" + version ~= s/[^0-9.].*$// $${1}.version = $$first(version) export($${1}.libs) export($${1}.cflags) -- cgit v1.2.3 From e7760312812c8bd0f1900ad149d266e2d1904a83 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Fri, 26 Aug 2016 16:46:40 +0200 Subject: minor optimization in stale file removal code don't bother opening headers.pri files, as they won't match anyway. Change-Id: I4d923266dabf1c9684fba4086f55bc24d76d23c5 Reviewed-by: Oswald Buddenhagen Reviewed-by: Lars Knoll --- bin/syncqt.pl | 1 + 1 file changed, 1 insertion(+) diff --git a/bin/syncqt.pl b/bin/syncqt.pl index 7410762985..43a033d8e1 100755 --- a/bin/syncqt.pl +++ b/bin/syncqt.pl @@ -934,6 +934,7 @@ foreach my $lib (@modules_to_sync) { foreach my $subdir (@subdirs) { if (opendir DIR, $subdir) { foreach my $t (sort { $b cmp $a } readdir(DIR)) { + next if ($t =~ /\.pri$/); my $file = "$subdir/$t"; if(-d $file) { push @subdirs, $file unless($t eq "." || $t eq ".."); -- cgit v1.2.3 From 137e690ac76b6db59592f9a8f0b55e445d6f5ab1 Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Thu, 8 Sep 2016 11:31:46 +0200 Subject: Turn the available sql drivers into public features This is required to do the modularization of those features properly. Change-Id: I384aff20274e795aa70483980f0ef25309328800 Reviewed-by: Oswald Buddenhagen --- configure.json | 81 ++++++++++++++++++----------------- configure.pri | 4 -- src/plugins/sqldrivers/sqldrivers.pro | 18 ++++---- 3 files changed, 50 insertions(+), 53 deletions(-) diff --git a/configure.json b/configure.json index ee5a229ffd..830a19f13e 100644 --- a/configure.json +++ b/configure.json @@ -165,24 +165,24 @@ "skip": "addString", "slog2": "boolean", "sm": { "type": "boolean", "name": "sessionmanager" }, - "sql-db2": { "type": "boolean", "name": "db2" }, - "sql-ibase": { "type": "boolean", "name": "ibase" }, - "sql-mysql": { "type": "boolean", "name": "mysql" }, - "sql-oci": { "type": "boolean", "name": "oci" }, - "sql-odbc": { "type": "boolean", "name": "odbc" }, - "sql-psql": { "type": "boolean", "name": "psql" }, - "sql-sqlite": { "type": "boolean", "name": "sqlite" }, - "sql-sqlite2": { "type": "boolean", "name": "sqlite2" }, - "sql-tds": { "type": "boolean", "name": "tds" }, - "plugin-sql-db2": { "type": "void", "name": "db2" }, - "plugin-sql-ibase": { "type": "void", "name": "ibase" }, - "plugin-sql-mysql": { "type": "void", "name": "mysql" }, - "plugin-sql-oci": { "type": "void", "name": "oci" }, - "plugin-sql-odbc": { "type": "void", "name": "odbc" }, - "plugin-sql-psql": { "type": "void", "name": "psql" }, - "plugin-sql-sqlite": { "type": "void", "name": "sqlite" }, - "plugin-sql-sqlite2": { "type": "void", "name": "sqlite2" }, - "plugin-sql-tds": { "type": "void", "name": "tds" }, + "sql-db2": "boolean", + "sql-ibase": "boolean", + "sql-mysql": "boolean", + "sql-oci": "boolean", + "sql-odbc": "boolean", + "sql-psql": "boolean", + "sql-sqlite": "boolean", + "sql-sqlite2": "boolean", + "sql-tds": "boolean", + "plugin-sql-db2": { "type": "void", "name": "sql-db2" }, + "plugin-sql-ibase": { "type": "void", "name": "sql-ibase" }, + "plugin-sql-mysql": { "type": "void", "name": "sql-mysql" }, + "plugin-sql-oci": { "type": "void", "name": "sql-oci" }, + "plugin-sql-odbc": { "type": "void", "name": "sql-odbc" }, + "plugin-sql-psql": { "type": "void", "name": "sql-psql" }, + "plugin-sql-sqlite": { "type": "void", "name": "sql-sqlite" }, + "plugin-sql-sqlite2": { "type": "void", "name": "sql-sqlite2" }, + "plugin-sql-tds": { "type": "void", "name": "sql-tds" }, "qdbus": { "type": "boolean", "name": "dbus" }, "sqlite": { "type": "enum", "name": "system-sqlite", "values": { "qt": "no", "system": "yes" } }, "sse2": "boolean", @@ -2355,60 +2355,60 @@ "condition": "features.opengl-desktop || features.opengl-dynamic || features.opengles2", "output": [ "publicFeature", "feature" ] }, - "db2": { + "sql-db2": { "description": "DB2 (IBM)", "condition": "libs.db2", - "output": [ "sqldriver" ] + "output": [ "publicFeature" ] }, - "ibase": { + "sql-ibase": { "description": "InterBase", "condition": "libs.ibase", - "output": [ "sqldriver" ] + "output": [ "publicFeature" ] }, - "mysql": { + "sql-mysql": { "description": "MySql", "condition": "libs.mysql", - "output": [ "sqldriver" ] + "output": [ "publicFeature" ] }, "use_libmysqlclient_r": { "description": "MySql (threadsafe)", - "condition": "features.mysql && (libs.mysql.source == 0 || libs.mysql.source == 2)", + "condition": "features.sql-mysql && (libs.mysql.source == 0 || libs.mysql.source == 2)", "output": [ "privateConfig" ] }, - "oci": { + "sql-oci": { "description": "OCI (Oracle)", "condition": "libs.oci", - "output": [ "sqldriver" ] + "output": [ "publicFeature" ] }, - "odbc": { + "sql-odbc": { "description": "ODBC", "condition": "libs.odbc", - "output": [ "sqldriver" ] + "output": [ "publicFeature" ] }, - "psql": { + "sql-psql": { "description": "PostgreSQL", "condition": "libs.psql", - "output": [ "sqldriver" ] + "output": [ "publicFeature" ] }, - "sqlite2": { + "sql-sqlite2": { "description": "SQLite2", "condition": "libs.sqlite2", - "output": [ "sqldriver" ] + "output": [ "publicFeature" ] }, - "sqlite": { + "sql-sqlite": { "description": "SQLite", - "output": [ "sqldriver" ] + "output": [ "publicFeature" ] }, "system-sqlite": { "description": " Using system provided SQLite", "autoDetect": false, - "condition": "features.sqlite && libs.sqlite3", + "condition": "features.sql-sqlite && libs.sqlite3", "output": [ "publicQtConfig" ] }, - "tds": { + "sql-tds": { "description": "TDS (Sybase)", "condition": "libs.tds", - "output": [ "sqldriver" ] + "output": [ "publicFeature" ] }, "style-fusion": { "description": "Fusion Style", @@ -2579,7 +2579,7 @@ or are able to read the logged output from journald, syslog or slog2." }, { "type": "warning", - "condition": "config.win32 && !config.msvc && features.oci", + "condition": "config.win32 && !config.msvc && features.sql-oci", "message": "Qt does not support compiling the Oracle database driver with MinGW, due to lack of such support from Oracle. Consider disabling the Oracle driver, as the current build will most likely fail." @@ -2862,7 +2862,8 @@ Please apply the patch corresponding to your Standard Library vendor, found in { "section": "SQL drivers", "entries": [ - "db2", "ibase", "mysql", "oci", "odbc", "psql", "sqlite2", "sqlite", "system-sqlite", "tds" + "sql-db2", "sql-ibase", "sql-mysql", "sql-oci", "sql-odbc", "sql-psql", + "sql-sqlite2", "sql-sqlite", "system-sqlite", "sql-tds" ] }, "tslib", diff --git a/configure.pri b/configure.pri index 6a75398d35..7447ec4428 100644 --- a/configure.pri +++ b/configure.pri @@ -508,10 +508,6 @@ defineTest(qtConfOutput_styles) { qtConfOutputVar(append, "privatePro", "styles", $$style) } -defineTest(qtConfOutput_sqldriver) { - $${2}: qtConfOutputVar(append, "privatePro", "sql-drivers", $$eval($${1}.feature)) -} - defineTest(qtConfOutput_qreal) { qreal = $$config.input.qreal isEmpty(qreal): qreal = "double" diff --git a/src/plugins/sqldrivers/sqldrivers.pro b/src/plugins/sqldrivers/sqldrivers.pro index 37dbd2394e..afd2008826 100644 --- a/src/plugins/sqldrivers/sqldrivers.pro +++ b/src/plugins/sqldrivers/sqldrivers.pro @@ -1,11 +1,11 @@ TEMPLATE = subdirs -contains(sql-drivers, psql) : SUBDIRS += psql -contains(sql-drivers, mysql) : SUBDIRS += mysql -contains(sql-drivers, odbc) : SUBDIRS += odbc -contains(sql-drivers, tds) : SUBDIRS += tds -contains(sql-drivers, oci) : SUBDIRS += oci -contains(sql-drivers, db2) : SUBDIRS += db2 -contains(sql-drivers, sqlite) : SUBDIRS += sqlite -contains(sql-drivers, sqlite2) : SUBDIRS += sqlite2 -contains(sql-drivers, ibase) : SUBDIRS += ibase +qtConfig(sql-psql) : SUBDIRS += psql +qtConfig(sql-mysql) : SUBDIRS += mysql +qtConfig(sql-odbc) : SUBDIRS += odbc +qtConfig(sql-tds) : SUBDIRS += tds +qtConfig(sql-oci) : SUBDIRS += oci +qtConfig(sql-db2) : SUBDIRS += db2 +qtConfig(sql-sqlite) : SUBDIRS += sqlite +qtConfig(sql-sqlite2) : SUBDIRS += sqlite2 +qtConfig(sql-ibase) : SUBDIRS += ibase -- cgit v1.2.3 From 60e5a1c8effd4099f7b1414107b5cbb67c266210 Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Thu, 25 Aug 2016 15:45:44 +0200 Subject: Modularize the new configure system (infrastructure part) This change implements the required infrastructure to modularize the new configuration system. This requires a hierarchy of configuration files, both for handling multiple repositories and for individual modules inside the same repository. When configuring, they all need to get loaded first, as command line processing needs to know about all possible command line options. When the command line has been processed, the individual configuration files need to get processed one after the other and independently from each other. Configure is now automatically invoked when building the a project tree's "root" project; this works with both modular and top-level builds of Qt (the latter with an according change in the super repo). As an immediate consequence, the -skip option moves to the super repo with a different implementation, as configuration is now done after the repo list is determined. The option belongs there anyway. This commit also adds an optional testDir entry to the json file. Like this, we can still have all configure tests in qtbase/config.tests and the configuration file in, e.g., corelib can reference those. The files section can now be left out as long as a 'module' entry is present, specifying the module name. The names of the files to generate can then be deduced from that name. We still need to be able to specify names directly for the global configuration files. qtConfig() now also queries features which are module-specific. As it is sometimes necessary to query the configuration of modules which should not be actually linked (and cannot in the case of subdirs projects), the new variable QT_FOR_CONFIG which allows specifying configuration-only dependencies is introduced. Done-with: Oswald Buddenhagen Change-Id: Id1b518a3aa34044748b87fb8fac14d79653f6b18 Reviewed-by: Lars Knoll Reviewed-by: Oswald Buddenhagen --- bin/syncqt.pl | 2 + configure | 32 +-- configure.json | 7 - configure.pri | 96 +++---- mkspecs/features/configure.prf | 2 + mkspecs/features/configure_base.prf | 2 - mkspecs/features/qt_build_config.prf | 23 ++ mkspecs/features/qt_configure.prf | 498 ++++++++++++++++++++++----------- mkspecs/features/qt_functions.prf | 16 +- mkspecs/features/qt_module_headers.prf | 10 + mkspecs/features/qt_module_pris.prf | 43 ++- mkspecs/features/qt_parts.prf | 3 + qtbase.pro | 1 - tools/configure/configureapp.cpp | 22 +- tools/configure/configureapp.h | 1 - tools/configure/main.cpp | 4 - 16 files changed, 486 insertions(+), 276 deletions(-) diff --git a/bin/syncqt.pl b/bin/syncqt.pl index 43a033d8e1..b531dce374 100755 --- a/bin/syncqt.pl +++ b/bin/syncqt.pl @@ -935,6 +935,7 @@ foreach my $lib (@modules_to_sync) { if (opendir DIR, $subdir) { foreach my $t (sort { $b cmp $a } readdir(DIR)) { next if ($t =~ /\.pri$/); + next if ($t =~ /^qt[a-z0-9]+-config(_p)?\.h$/); my $file = "$subdir/$t"; if(-d $file) { push @subdirs, $file unless($t eq "." || $t eq ".."); @@ -985,6 +986,7 @@ foreach my $lib (@modules_to_sync) { #calc files and "copy" them foreach my $subdir (@subdirs) { my @headers = findFiles($subdir, "^[-a-z0-9_]*\\.h\$" , 0); + @headers = grep(!/^qt[a-z0-9]+-config(_p)?\.h$/, @headers); if (defined $inject_headers{$subdir}) { foreach my $if (@{$inject_headers{$subdir}}) { @headers = grep(!/^\Q$if\E$/, @headers); #in case we configure'd previously diff --git a/configure b/configure index 85392bac92..81bf483634 100755 --- a/configure +++ b/configure @@ -1911,31 +1911,15 @@ done set +f IFS=$SAVED_IFS -# redirect qmake's output to a dummy Makefile -$CFG_QMAKE_PATH -o Makefile.cfg -qtconf "$QTCONFFILE" $relpath/configure.pri -- "$@" || exit 101 -rm Makefile.cfg - -#------------------------------------------------------------------------------- -# give feedback on configuration -#------------------------------------------------------------------------------- - -if [ -n "$PLATFORM_NOTES" ]; then - echo - echo "Platform notes:" - echo "$PLATFORM_NOTES" -else - echo -fi - #------------------------------------------------------------------------------- -# build makefiles based on the configuration +# configure and build top-level makefile #------------------------------------------------------------------------------- if [ -n "$CFG_TOPLEVEL" ]; then cd .. fi -"$CFG_QMAKE_PATH" -qtconf "$QTCONFFILE" "$relpathMangled" || exit +"$CFG_QMAKE_PATH" -qtconf "$QTCONFFILE" "$relpathMangled" -- "$@" || exit #------------------------------------------------------------------------------- # finally save the executed command to another script @@ -1955,6 +1939,18 @@ if [ $CFG_REDO = no ]; then chmod +x config.status fi +#------------------------------------------------------------------------------- +# final notes for the user +#------------------------------------------------------------------------------- + +if [ -n "$PLATFORM_NOTES" ]; then + echo + echo "Platform notes:" + echo "$PLATFORM_NOTES" +else + echo +fi + if [ -n "$PREFIX_COMPLAINTS" ]; then echo echo "$PREFIX_COMPLAINTS" diff --git a/configure.json b/configure.json index 830a19f13e..46f94573cf 100644 --- a/configure.json +++ b/configure.json @@ -162,7 +162,6 @@ "separate-debug-info": { "type": "boolean", "name": "separate_debug_info" }, "shared": "boolean", "silent": "void", - "skip": "addString", "slog2": "boolean", "sm": { "type": "boolean", "name": "sessionmanager" }, "sql-db2": "boolean", @@ -857,9 +856,6 @@ "type": "compile", "test": "unix/reduce_relocs" }, - "skip_modules": { - "type": "skipModules" - }, "build_parts": { "type": "buildParts" }, @@ -2096,9 +2092,6 @@ "condition": "libs.host_dbus", "output": [ { "type": "varAppend", "name": "QT_HOST_CFLAGS_DBUS", "value": "libs.host_dbus.cflags", "eval": "true" } ] }, - "skip_modules": { - "output": [ { "type": "varAssign", "name": "QT_SKIP_MODULES", "value": "tests.skip_modules.value" } ] - }, "build_parts": { "output": [ { "type": "varAppend", "name": "QT_BUILD_PARTS", "value": "tests.build_parts.value" } ] }, diff --git a/configure.pri b/configure.pri index 7447ec4428..03f8323f0d 100644 --- a/configure.pri +++ b/configure.pri @@ -195,34 +195,10 @@ defineTest(qtConfTest_detectPkgConfig) { } defineTest(qtConfTest_neon) { - contains(config.tests.architecture.subarch, "neon"): return(true) + contains($${currentConfig}.tests.architecture.subarch, "neon"): return(true) return(false) } -defineTest(qtConfTest_skipModules) { - $${1}.cache = - - export($${1}.cache) - - skip = - uikit { - skip += qtdoc qtmacextras qtserialport qtwebkit qtwebkit-examples - !ios: skip += qtscript - } - - for (m, config.input.skip) { - # normalize the command line input - m ~= s/^(qt)?/qt/ - !exists($$_PRO_FILE_PWD_/../$$m) { - qtConfAddError("-skip command line argument called with non-existent module '$$m'.") - return(false) - } - skip += $$m - } - $${1}.value = $$unique(skip) - export($${1}.value) - return(true) -} - defineTest(qtConfTest_buildParts) { parts = $$config.input.make isEmpty(parts) { @@ -491,10 +467,10 @@ defineTest(qtConfOutput_architecture) { "QT_ARCH = $$arch" } - config.output.publicPro += $$publicPro - export(config.output.publicPro) - config.output.privatePro += $$privatePro - export(config.output.privatePro) + $${currentConfig}.output.publicPro += $$publicPro + export($${currentConfig}.output.publicPro) + $${currentConfig}.output.privatePro += $$privatePro + export($${currentConfig}.output.privatePro) # setup QT_ARCH variable used by qtConfEvaluate QT_ARCH = $$arch @@ -522,15 +498,15 @@ defineTest(qtConfOutput_qreal) { defineTest(qtConfOutput_pkgConfig) { !$${2}: return() - PKG_CONFIG = $$eval(config.tests.pkg-config.pkgConfig) + PKG_CONFIG = $$eval($${currentConfig}.tests.pkg-config.pkgConfig) export(PKG_CONFIG) # this method also exports PKG_CONFIG_(LIB|SYSROOT)DIR, so that tests using pkgConfig will work correctly - PKG_CONFIG_SYSROOT_DIR = $$eval(config.tests.pkg-config.pkgConfigSysrootDir) + PKG_CONFIG_SYSROOT_DIR = $$eval($${currentConfig}.tests.pkg-config.pkgConfigSysrootDir) !isEmpty(PKG_CONFIG_SYSROOT_DIR) { qtConfOutputVar(assign, "publicPro", "PKG_CONFIG_SYSROOT_DIR", $$PKG_CONFIG_SYSROOT_DIR) export(PKG_CONFIG_SYSROOT_DIR) } - PKG_CONFIG_LIBDIR = $$eval(config.tests.pkg-config.pkgConfigLibdir) + PKG_CONFIG_LIBDIR = $$eval($${currentConfig}.tests.pkg-config.pkgConfigLibdir) !isEmpty(PKG_CONFIG_LIBDIR) { qtConfOutputVar(assign, "publicPro", "PKG_CONFIG_LIBDIR", $$PKG_CONFIG_LIBDIR) export(PKG_CONFIG_LIBDIR) @@ -560,20 +536,20 @@ defineTest(qtConfOutput_debugAndRelease) { defineTest(qtConfOutput_compilerVersion) { !$${2}: return() - name = $$upper($$config.tests.compiler.compilerId) - version = $$config.tests.compiler.compilerVersion + name = $$upper($$eval($${currentConfig}.tests.compiler.compilerId)) + version = $$eval($${currentConfig}.tests.compiler.compilerVersion) major = $$section(version, '.', 0, 0) minor = $$section(version, '.', 1, 1) patch = $$section(version, '.', 2, 2) isEmpty(minor): minor = 0 isEmpty(patch): patch = 0 - config.output.publicPro += \ + $${currentConfig}.output.publicPro += \ "QT_$${name}_MAJOR_VERSION = $$major" \ "QT_$${name}_MINOR_VERSION = $$minor" \ "QT_$${name}_PATCH_VERSION = $$patch" - export(config.output.publicPro) + export($${currentConfig}.output.publicPro) } # should go away when qfeatures.txt is ported @@ -581,17 +557,17 @@ defineTest(qtConfOutput_extraFeatures) { isEmpty(config.input.extra_features): return() # write to qconfig.pri - config.output.publicPro += "$${LITERAL_HASH}ifndef QT_BOOTSTRAPPED" + $${currentConfig}.output.publicPro += "$${LITERAL_HASH}ifndef QT_BOOTSTRAPPED" for (f, config.input.extra_features) { feature = $$replace(f, "^no-", "") FEATURE = $$upper($$replace(feature, -, _)) contains(f, "^no-.*") { - config.output.publicPro += \ + $${currentConfig}.output.publicPro += \ "$${LITERAL_HASH}ifndef QT_NO_$$FEATURE" \ "$${LITERAL_HASH}define QT_NO_$$FEATURE" \ "$${LITERAL_HASH}endif" } else { - config.output.publicPro += \ + $${currentConfig}.output.publicPro += \ "$${LITERAL_HASH}if defined(QT_$$FEATURE) && defined(QT_NO_$$FEATURE)" \ "$${LITERAL_HASH}undef QT_$$FEATURE" \ "$${LITERAL_HASH}elif !defined(QT_$$FEATURE) && !defined(QT_NO_$$FEATURE)" \ @@ -599,8 +575,8 @@ defineTest(qtConfOutput_extraFeatures) { "$${LITERAL_HASH}endif" } } - config.output.publicPro += "$${LITERAL_HASH}endif" - export(config.output.publicPro) + $${currentConfig}.output.publicPro += "$${LITERAL_HASH}endif" + export($${currentConfig}.output.publicPro) # write to qmodule.pri disabled_features = @@ -649,8 +625,8 @@ defineTest(qtConfOutput_compilerFlags) { output += "EXTRA_FRAMEWORKPATH += $$val_escape(config.input.fpaths)" } - config.output.privatePro += $$output - export(config.output.privatePro) + $${currentConfig}.output.privatePro += $$output + export($${currentConfig}.output.privatePro) } defineTest(qtConfOutput_gccSysroot) { @@ -670,21 +646,21 @@ defineTest(qtConfOutput_gccSysroot) { " QMAKE_CXXFLAGS += --sysroot=\$\$[QT_SYSROOT]" \ " QMAKE_LFLAGS += --sysroot=\$\$[QT_SYSROOT]" \ "}" - config.output.publicPro += $$output - export(config.output.publicPro) + $${currentConfig}.output.publicPro += $$output + export($${currentConfig}.output.publicPro) } defineTest(qtConfOutput_qmakeArgs) { !$${2}: return() - config.output.privatePro = "!host_build {" + $${currentConfig}.output.privatePro = "!host_build {" for (a, config.input.qmakeArgs) { - config.output.privatePro += " $$a" + $${currentConfig}.output.privatePro += " $$a" EXTRA_QMAKE_ARGS += $$system_quote($$a) } - config.output.privatePro += "}" + $${currentConfig}.output.privatePro += "}" export(EXTRA_QMAKE_ARGS) - export(config.output.privatePro) + export($${currentConfig}.output.privatePro) } defineTest(qtConfOutputPostProcess_publicPro) { @@ -706,8 +682,8 @@ defineTest(qtConfOutputPostProcess_publicPro) { "QT_RELEASE_DATE = $$config.input.qt_release_date" } - config.output.publicPro += $$output - export(config.output.publicPro) + $${currentConfig}.output.publicPro += $$output + export($${currentConfig}.output.publicPro) } defineTest(qtConfOutputPostProcess_publicHeader) { @@ -729,8 +705,8 @@ defineTest(qtConfOutputPostProcess_publicHeader) { !isEmpty(config.input.qt_libinfix): \ output += "$${LITERAL_HASH}define QT_LIBINFIX \"$$eval(config.input.qt_libinfix)\"" - config.output.publicHeader += $$output - export(config.output.publicHeader) + $${currentConfig}.output.publicHeader += $$output + export($${currentConfig}.output.publicHeader) } @@ -748,7 +724,7 @@ defineTest(qtConfReport_buildTypeAndConfig) { qtConfAddReport("Building for: $$qtConfEvaluate('tests.architecture.arch')") } qtConfAddReport() - qtConfAddReport("Configuration: $$config.output.privatePro.append.CONFIG $$config.output.publicPro.append.QT_CONFIG") + qtConfAddReport("Configuration: $$eval($${currentConfig}.output.privatePro.append.CONFIG) $$eval($${currentConfig}.output.publicPro.append.QT_CONFIG)") qtConfAddReport() } @@ -775,10 +751,10 @@ defineTest(qtConfReport_buildMode) { # ensure pristine environment for configuration discard_from($$[QT_HOST_DATA/get]/mkspecs/qconfig.pri) discard_from($$[QT_HOST_DATA/get]/mkspecs/qmodule.pri) +# ... and cause them to be reloaded afterwards +QMAKE_POST_CONFIGURE += \ + "include(\$\$[QT_HOST_DATA/get]/mkspecs/qconfig.pri)" \ + "include(\$\$[QT_HOST_DATA/get]/mkspecs/qmodule.pri)" -# load and process input from configure -exists("$$OUT_PWD/config.tests/configure.cfg") { - include("$$OUT_PWD/config.tests/configure.cfg") -} - -load(qt_configure) +# load and process input from configure.sh/.exe +include($$shadowed($$PWD)/config.tests/configure.cfg) diff --git a/mkspecs/features/configure.prf b/mkspecs/features/configure.prf index bd53e31a04..f275e3ac06 100644 --- a/mkspecs/features/configure.prf +++ b/mkspecs/features/configure.prf @@ -1,5 +1,7 @@ load(configure_base) +isEmpty(QMAKE_CONFIG_TESTS_DIR): QMAKE_CONFIG_TESTS_DIR = $$_PRO_FILE_PWD_/config.tests + # Try to build the test project in $$QMAKE_CONFIG_TESTS_DIR/$$1 # ($$_PRO_FILE_PWD_/config.tests/$$1 by default). # diff --git a/mkspecs/features/configure_base.prf b/mkspecs/features/configure_base.prf index 08edba4b1c..dc630a3528 100644 --- a/mkspecs/features/configure_base.prf +++ b/mkspecs/features/configure_base.prf @@ -43,8 +43,6 @@ defineTest(qtRunLoggedCommand) { return(true) } -isEmpty(QMAKE_CONFIG_TESTS_DIR): QMAKE_CONFIG_TESTS_DIR = $$_PRO_FILE_PWD_/config.tests - # Ensure that a cache is present. If none was found on startup, this will create # one in the build directory of the project which loads this feature. cache() diff --git a/mkspecs/features/qt_build_config.prf b/mkspecs/features/qt_build_config.prf index e0e8ef9f51..95e63ecae0 100644 --- a/mkspecs/features/qt_build_config.prf +++ b/mkspecs/features/qt_build_config.prf @@ -95,3 +95,26 @@ defineTest(qtNomakeTools) { export($${d}.CONFIG) } } + +# This overloads the same function from qt_functions.prf. +# This is not in qt_module.prf, as that gets loaded too late. +defineTest(qtConfig) { + modules = $$QT $$QT_PRIVATE $$QT_FOR_PRIVATE $$QT_FOR_CONFIG + modules ~= s,-private$,_private,g + modules = $$resolve_depends(modules, "QT.", ".depends") + isEmpty(MODULE): \ + MODULE = $$section($$list($$basename(_PRO_FILE_)), ., 0, 0) + exists($$OUT_PWD/qt$${MODULE}-config.pri) { + include($$OUT_PWD/qt$${MODULE}-config.pri) + modules += $${MODULE} $${MODULE}_private + } + modules += global global_private + modules = $$reverse(modules) + for (module, modules) { + contains(QT.$${module}.enabled_features, $$1): \ + return(true) + contains(QT.$${module}.disabled_features, $$1): \ + return(false) + } + error("Could not find feature $${1}.") +} diff --git a/mkspecs/features/qt_configure.prf b/mkspecs/features/qt_configure.prf index 2067829a10..79fede1525 100644 --- a/mkspecs/features/qt_configure.prf +++ b/mkspecs/features/qt_configure.prf @@ -1,8 +1,3 @@ -CONFIG -= qt debug_and_release -load(configure_base) - -QMAKE_CONFIG_CACHE = $$dirname(_QMAKE_CACHE_)/config.cache -QMAKE_CONFIG_CACHE_USE = all QT_CONFIGURE_REPORT = QT_CONFIGURE_NOTES = @@ -36,8 +31,8 @@ defineTest(qtConfAddError) { defineTest(qtConfCommandlineSetInput) { arg = $${1} val = $${2} - !isEmpty(config.commandline.options.$${arg}.name): \ - arg = $$eval(config.commandline.options.$${arg}.name) + !isEmpty($${currentConfig}.commandline.options.$${arg}.name): \ + arg = $$eval($${currentConfig}.commandline.options.$${arg}.name) config.input.$$arg = $$val export(config.input.$$arg) @@ -74,7 +69,7 @@ defineTest(qtConfCommandline_void) { return() } - val = $$eval(config.commandline.options.$${opt}.value) + val = $$eval($${currentConfig}.commandline.options.$${opt}.value) isEmpty(val): val = yes qtConfCommandlineSetInput($$opt, $$val) @@ -86,11 +81,11 @@ defineTest(qtConfCommandline_enum) { isEmpty(val): val = yes # validate and map value - mapped = $$eval(config.commandline.options.$${opt}.values.$${val}) + mapped = $$eval($${currentConfig}.commandline.options.$${opt}.values.$${val}) isEmpty(mapped) { # just a list of allowed values - for (i, config.commandline.options.$${opt}.values._KEYS_) { - equals(config.commandline.options.$${opt}.values.$${i}, $$val) { + for (i, $${currentConfig}.commandline.options.$${opt}.values._KEYS_) { + equals($${currentConfig}.commandline.options.$${opt}.values.$${i}, $$val) { mapped = $$val break() } @@ -108,12 +103,12 @@ defineTest(qtConfValidateValue) { opt = $${1} val = $${2} - validValues = $$eval(config.commandline.options.$${opt}.values._KEYS_) + validValues = $$eval($${currentConfig}.commandline.options.$${opt}.values._KEYS_) isEmpty(validValues): \ return(true) for (i, validValues) { - equals(config.commandline.options.$${opt}.values.$${i}, $$val): \ + equals($${currentConfig}.commandline.options.$${opt}.values.$${i}, $$val): \ return(true) } @@ -169,20 +164,24 @@ defineTest(qtConfCommandline_addString) { !qtConfValidateValue($$opt, $$val): \ return() - !isEmpty(config.commandline.options.$${opt}.name): \ - opt = $$eval(config.commandline.options.$${opt}.name) + !isEmpty($${currentConfig}.commandline.options.$${opt}.name): \ + opt = $$eval($${currentConfig}.commandline.options.$${opt}.name) config.input.$$opt += $$val export(config.input.$$opt) } defineTest(qtConfParseCommandLine) { - custom = $$config.commandline.custom - customCall = - !isEmpty(custom) { - customCall = qtConfCommandline_$$custom - !defined($$customCall, test): \ - error("Custom command line callback '$$custom' is undefined.") + customCalls = + for (cc, allConfigs) { + custom = $$eval($${cc}.commandline.custom) + + !isEmpty(custom) { + customCall = qtConfCommandline_$$custom + !defined($$customCall, test): \ + error("Custom command line callback '$$custom' is undefined.") + customCalls += $$customCall + } } for (ever) { @@ -212,15 +211,24 @@ defineTest(qtConfParseCommandLine) { next() } - !isEmpty(customCall) { - $${customCall}($$c): \ - next() + didCustomCall = false + for (customCall, customCalls) { + $${customCall}($$c) { + didCustomCall = true + break() + } } + $$didCustomCall: \ + next() contains(c, "([A-Z_]+)=(.*)") { opt = $$replace(c, "^([A-Z_]+)=(.*)", "\\1") val = $$replace(c, "^([A-Z_]+)=(.*)", "\\2") - var = $$eval(config.commandline.assignments.$${opt}) + for (cc, allConfigs) { + var = $$eval($${cc}.commandline.assignments.$${opt}) + !isEmpty(var): \ + break() + } isEmpty(var) { qtConfAddError("Assigning unknown variable '$$opt' on command line.") return() @@ -254,20 +262,26 @@ defineTest(qtConfParseCommandLine) { return() } - type = $$eval(config.commandline.options.$${opt}) - isEmpty(type): \ - type = $$eval(config.commandline.options.$${opt}.type) - isEmpty(type) { - # no match in the regular options, try matching the prefixes - for (p, config.commandline.prefix._KEYS_) { - e = "^-$${p}(.*)" - contains(c, $$e) { - opt = $$eval(config.commandline.prefix.$${p}) - val = $$replace(c, $$e, "\\1") - type = "addString" - break() + for (cc, allConfigs) { + type = $$eval($${cc}.commandline.options.$${opt}) + isEmpty(type): \ + type = $$eval($${cc}.commandline.options.$${opt}.type) + isEmpty(type) { + # no match in the regular options, try matching the prefixes + for (p, $${cc}.commandline.prefix._KEYS_) { + e = "^-$${p}(.*)" + contains(c, $$e) { + opt = $$eval($${cc}.commandline.prefix.$${p}) + val = $$replace(c, $$e, "\\1") + type = "addString" + break() + } } } + !isEmpty(type) { + currentConfig = $$cc + break() + } } # handle builtin [-no]-feature-xxx isEmpty(type):contains(opt, "feature-(.*)") { @@ -368,8 +382,8 @@ defineReplace(qtConfPrepareArgs) { } defineTest(qtConfSetupLibraries) { - for (l, config.libraries._KEYS_) { - lpfx = config.libraries.$${l} + for (l, $${currentConfig}.libraries._KEYS_) { + lpfx = $${currentConfig}.libraries.$${l} # 'export' may be omitted, in which case it falls back to the library's name !defined($${lpfx}.export, var) { $${lpfx}.export = $$l @@ -396,8 +410,8 @@ defineTest(qtConfSetupLibraries) { } # reverse mapping for assignments on command line. - for (a, config.commandline.assignments._KEYS_) { - apfx = config.commandline.assignments.$${a} + for (a, $${currentConfig}.commandline.assignments._KEYS_) { + apfx = $${currentConfig}.commandline.assignments.$${a} ra = config.commandline.rev_assignments.$$eval($$apfx) $$ra = $$a export($$ra) @@ -570,10 +584,12 @@ defineTest(qtConfExportLibrary) { qtConfOutputVar(assign, $$output, QMAKE_$${NAME}_VERSION_MINOR, $$member(version, 1)) qtConfOutputVar(assign, $$output, QMAKE_$${NAME}_VERSION_PATCH, $$member(version, 2)) } + !isEmpty($${currentConfig}.module): \ + qtConfExtendVar($$output, "QT.$${currentModule}_private.libraries", $$2) } defineTest(qtConfHandleLibrary) { - lpfx = config.libraries.$$1 + lpfx = $${currentConfig}.libraries.$$1 defined($${lpfx}.result, var): return() qtConfEnsureTestTypeDeps("library") @@ -647,10 +663,10 @@ defineTest(qtConfTest_library) { defineTest(qtConfTestPrepare_compile) { for (u, $$list($$eval($${1}.use))) { - !contains(config.libraries._KEYS_, $$u): \ + !contains($${currentConfig}.libraries._KEYS_, $$u): \ error("Test $$1 tries to use undeclared library '$$u'") qtConfHandleLibrary($$u) - lpfx = config.libraries.$${u} + lpfx = $${currentConfig}.libraries.$${u} isEmpty($${lpfx}.source): \ return(false) $${1}.literal_args += $$qtConfLibraryArgs($${lpfx}.sources.$$eval($${lpfx}.source)) @@ -820,12 +836,12 @@ defineTest(qtConfIsBoolean) { } defineTest(qtConfSetupTestTypeDeps) { - for (tt, config.testTypeDependencies._KEYS_) { + for (tt, $${currentConfig}.testTypeDependencies._KEYS_) { !defined(qtConfTest_$${tt}, test): \ error("Declaring dependency for undefined test type '$$tt'.") - for (f, config.testTypeDependencies.$${tt}._KEYS_) { - feature = $$eval(config.testTypeDependencies.$${tt}.$${f}) - isEmpty(config.features.$${feature}._KEYS_): \ + for (f, $${currentConfig}.testTypeDependencies.$${tt}._KEYS_) { + feature = $$eval($${currentConfig}.testTypeDependencies.$${tt}.$${f}) + isEmpty($${currentConfig}.features.$${feature}._KEYS_): \ error("Test type '$$tt' depends on undefined feature '$$feature'.") } } @@ -834,31 +850,31 @@ defineTest(qtConfSetupTestTypeDeps) { # the call to another one. The former representation is more natural # (and concise) to write, while the latter is more efficient to process. # Hence, this function inverts the mapping. - for (tt, config.testTypeAliases._KEYS_) { + for (tt, $${currentConfig}.testTypeAliases._KEYS_) { !defined(qtConfTest_$${tt}, test): \ error("Aliasing undefined test type '$$tt'.") - for (tta, config.testTypeAliases.$${tt}._KEYS_) { - type = $$eval(config.testTypeAliases.$${tt}.$${tta}) + for (tta, $${currentConfig}.testTypeAliases.$${tt}._KEYS_) { + type = $$eval($${currentConfig}.testTypeAliases.$${tt}.$${tta}) !defined(qtConfTest_$${type}, test): \ error("Aliasing '$$tt' to undefined test type '$$type'.") - config.testTypeForwards.$${type} += $$tt - export(config.testTypeForwards.$${type}) + $${currentConfig}.testTypeForwards.$${type} += $$tt + export($${currentConfig}.testTypeForwards.$${type}) } } } defineTest(qtConfEnsureTestTypeDeps) { - depsn = config.testTypeDependencies.$${1}._KEYS_ + depsn = $${currentConfig}.testTypeDependencies.$${1}._KEYS_ !isEmpty($$depsn) { for (dep, $$depsn) { - feature = $$eval(config.testTypeDependencies.$${1}.$${dep}) + feature = $$eval($${currentConfig}.testTypeDependencies.$${1}.$${dep}) !qtConfCheckFeature($$feature): \ error("Test type '$$1' depends on non-emitted feature $${feature}.") } $$depsn = export($$depsn) } - fwdsn = config.testTypeForwards.$${1} + fwdsn = $${currentConfig}.testTypeForwards.$${1} !isEmpty($$fwdsn) { for (fwd, $$fwdsn): \ qtConfEnsureTestTypeDeps($$fwd) @@ -868,7 +884,7 @@ defineTest(qtConfEnsureTestTypeDeps) { } defineTest(qtRunSingleTest) { - tpfx = config.tests.$${1} + tpfx = $${currentConfig}.tests.$${1} defined($${tpfx}.result, var): \ return() @@ -945,10 +961,10 @@ defineReplace(qtConfEvaluateSingleExpression) { var = $$section(e, ".", 2, -1) isEmpty(var): \ var = result - !contains(config.tests._KEYS_, $$test): \ + !contains($${currentConfig}.tests._KEYS_, $$test): \ error("Unknown test object $${test} in expression '$${1}'.") qtRunSingleTest($$test) - result = $$eval(config.tests.$${test}.$${var}) + result = $$eval($${currentConfig}.tests.$${test}.$${var}) } else: contains(e, "^libs\..*") { !qt_conf_tests_allowed: \ error("Expression '$${1}' refers to a library, which is not allowed at this stage of configuring.") @@ -956,22 +972,36 @@ defineReplace(qtConfEvaluateSingleExpression) { var = $$section(e, ".", 2, -1) isEmpty(var): \ var = result - !contains(config.libraries._KEYS_, $$lib): \ + !contains($${currentConfig}.libraries._KEYS_, $$lib): \ error("Unknown library object $${lib} in expression '$${1}'.") qtConfHandleLibrary($$lib) - !defined(config.libraries.$${lib}.$${var}, var): \ - var = sources.$$eval(config.libraries.$${lib}.$${source}).$$var - result = $$eval(config.libraries.$${lib}.$${var}) + !defined($${currentConfig}.libraries.$${lib}.$${var}, var): \ + var = sources.$$eval($${currentConfig}.libraries.$${lib}.$${source}).$$var + result = $$eval($${currentConfig}.libraries.$${lib}.$${var}) } else: contains(e, "^features\..*") { feature = $$section(e, ".", 1, 1) var = $$section(e, ".", 2, -1) isEmpty(var): \ var = available - !contains(config.features._KEYS_, $$feature): \ + !contains($${currentConfig}.features._KEYS_, $$feature) { + # this is basically a copy of what qtConfig() in qt_build_config.prf + # does, but we produce a nicer error message. + for (module, QMAKE_CONFIG_DEPS) { + contains(QT.$${module}.enabled_features, $$feature): \ + result = true + else: contains(QT.$${module}.disabled_features, $$feature): \ + result = false + else: \ + next() + !equals(var, available): \ + error("Expression '$$1' is accessing field '$$var' of non-local feature $${feature}.") + return($$result) + } error("Unknown feature object $${feature} in expression '$${1}'.") + } !qtConfCheckFeature($$feature): \ error("Expression '$$1' is accessing non-emitted feature $${feature}.") - result = $$eval(config.features.$${feature}.$${var}) + result = $$eval($${currentConfig}.features.$${feature}.$${var}) } else: contains(e, "^config\..*") { var = $$replace(e, "^config\.", "") result = false @@ -1059,7 +1089,7 @@ defineReplace(qtConfEvaluateSubExpression) { } defineReplace(qtIsFeatureEnabled) { - enable = $$eval(config.features.$${1}.enable) + enable = $$eval($${currentConfig}.features.$${1}.enable) !isEmpty(enable) { $$qtConfEvaluate($$enable): \ return(true) @@ -1072,7 +1102,7 @@ defineReplace(qtIsFeatureEnabled) { } defineReplace(qtIsFeatureDisabled) { - disable = $$eval(config.features.$${1}.disable) + disable = $$eval($${currentConfig}.features.$${1}.disable) !isEmpty(disable) { $$qtConfEvaluate($$disable): \ return(true) @@ -1100,7 +1130,7 @@ defineReplace(qtConfCheckSingleCondition) { } defineTest(qtConfCheckFeature) { - fpfx = config.features.$${1} + fpfx = $${currentConfig}.features.$${1} available = $$eval($${fpfx}.available) !isEmpty(available): return(true) @@ -1138,7 +1168,7 @@ defineTest(qtConfCheckFeature) { $${fpfx}.available = $$result export($${fpfx}.available) - for (i, config.features.$${feature}.output._KEYS_): \ + for (i, $${currentConfig}.features.$${feature}.output._KEYS_): \ qtConfProcessOneOutput($$feature, $$i) return(true) @@ -1146,7 +1176,7 @@ defineTest(qtConfCheckFeature) { defineTest(qtConfProcessFeatures) { - for (feature, config.features._KEYS_): \ + for (feature, $${currentConfig}.features._KEYS_): \ qtConfCheckFeature($$feature) } @@ -1167,8 +1197,8 @@ defineTest(qtConfReportPadded) { defineReplace(qtConfCollectFeatures) { l = for (feature, $$list($${1})) { - $$eval(config.features.$${feature}.available): \ - l += $$eval(config.features.$${feature}.description) + $$eval($${currentConfig}.features.$${feature}.available): \ + l += $$eval($${currentConfig}.features.$${feature}.description) } isEmpty(l): return("") @@ -1181,10 +1211,10 @@ defineTest(qtConfReport_featureList) { defineReplace(qtConfFindFirstAvailableFeature) { for (feature, $$list($${1})) { - isEmpty(config.features.$${feature}._KEYS_): \ + isEmpty($${currentConfig}.features.$${feature}._KEYS_): \ error("Asking for a report on undefined feature $${2}.") - $$eval(config.features.$${feature}.available): \ - return($$eval(config.features.$${feature}.description)) + $$eval($${currentConfig}.features.$${feature}.available): \ + return($$eval($${currentConfig}.features.$${feature}.description)) } return("") @@ -1195,14 +1225,14 @@ defineTest(qtConfReport_firstAvailableFeature) { } defineTest(qtConfReport_feature) { - !contains(config.features._KEYS_, $$2): \ + !contains($${currentConfig}.features._KEYS_, $$2): \ error("Asking for a report on undefined feature $${2}.") # hide report for not emitted features - isEmpty(config.features.$${2}.available): \ + isEmpty($${currentConfig}.features.$${2}.available): \ return() - $$eval(config.features.$${2}.available) { + $$eval($${currentConfig}.features.$${2}.available) { result = "yes" !isEmpty(3): result = "$${3}" } else { @@ -1210,7 +1240,7 @@ defineTest(qtConfReport_feature) { !isEmpty(4): result = "$${4}" } - text = $$eval(config.features.$${2}.description) + text = $$eval($${currentConfig}.features.$${2}.description) qtConfReportPadded($${1}$$text, $$result) } @@ -1270,17 +1300,15 @@ defineTest(qtConfCreateReportRecurse) { } defineTest(qtConfProcessEarlyChecks) { - qtConfCreateReportRecurse(config.earlyReport, false) - qtConfCheckErrors() + qtConfCreateReportRecurse($${currentConfig}.earlyReport, false) } - defineTest(qtConfCreateReport) { - qtConfCreateReportRecurse(config.report, false) + qtConfCreateReportRecurse($${currentConfig}.report, false) } defineTest(qtConfCreateSummary) { - qtConfCreateReportRecurse(config.summary, "") + qtConfCreateReportRecurse($${currentConfig}.summary, "") } defineTest(qtConfPrintReport) { @@ -1322,15 +1350,6 @@ defineTest(qtConfCheckErrors) { # output generation # -defineReplace(qtConfOutputSelectProFile) { - !isEmpty($${1}.public) { - $$eval($${1}.public): \ - return(publicPro) - } - return(privatePro) -} - - # qtConfOutputVar(modifier, output, name, value) defineTest(qtConfOutputVar) { modifier = $$1 @@ -1338,35 +1357,53 @@ defineTest(qtConfOutputVar) { name = $$3 value = $$val_escape(4) - !isEmpty(config.output.$${output}.assign.$${name}): \ + defined($${currentConfig}.output.$${output}.assign.$${name}, var): \ error("Trying to overwrite assigned variable '$$name' in '$$output' using modifier '$$modifier'.") equals(modifier, assign) { - !isEmpty(config.output.$${output}.append.$${name})|!isEmpty(config.output.$${output}.remove.$${name}): \ + !isEmpty($${currentConfig}.output.$${output}.append.$${name})|!isEmpty($${currentConfig}.output.$${output}.remove.$${name}): \ error("Trying to assign variable '$$name' in '$$output', which has already appended or removed parts.") - config.output.$${output}.assign.$${name} = $$value + $${currentConfig}.output.$${output}.assign.$${name} = $$value } else: equals(modifier, append) { - contains(config.output.$${output}.remove.$${name}, $$value): \ + contains($${currentConfig}.output.$${output}.remove.$${name}, $$value): \ error("Trying to append removed '$$value' to variable '$$name' in '$$output'.") - config.output.$${output}.append.$${name} += $$value + $${currentConfig}.output.$${output}.append.$${name} += $$value } else: equals(modifier, remove) { - contains(config.output.$${output}.append.$${name}, $$value): \ + contains($${currentConfig}.output.$${output}.append.$${name}, $$value): \ error("Trying to remove appended '$$value' to variable '$$name' in '$$output'.") - config.output.$${output}.remove.$${name} += $$value + $${currentConfig}.output.$${output}.remove.$${name} += $$value } else { error("Invalid modifier '$$modifier' passed to qtConfOutputVar.") } - config.output.$${output}.$${modifier}._KEYS_ *= $${name} - export(config.output.$${output}.$${modifier}.$${name}) - export(config.output.$${output}.$${modifier}._KEYS_) + $${currentConfig}.output.$${output}.$${modifier}._KEYS_ *= $${name} + export($${currentConfig}.output.$${output}.$${modifier}.$${name}) + export($${currentConfig}.output.$${output}.$${modifier}._KEYS_) +} + +# qtConfExtendVar(output, name, value) +defineTest(qtConfExtendVar) { + output = $$1 + name = $$2 + value = $$val_escape(3) + + !defined($${currentConfig}.output.$${output}.assign.$${name}, var): \ + error("Trying to extend undefined variable '$$name' in '$$output'.") + + $${currentConfig}.output.$${output}.assign.$${name} += $$value + export($${currentConfig}.output.$${output}.assign.$${name}) } defineTest(qtConfOutputVarHelper) { + !isEmpty($${2}.public):$$eval($${2}.public) { + output = "publicPro" + } else { + output = "privatePro" + } + negative = $$eval($${2}.negative) isEmpty(negative): negative = false equals(3, $$negative): return() - output = $$qtConfOutputSelectProFile($${2}) name = $$eval($${2}.name) isEmpty(name): \ error("Output type 'var$$title($$1)' used in feature '$$eval($${2}.feature)' without a 'name' entry.") @@ -1375,6 +1412,8 @@ defineTest(qtConfOutputVarHelper) { !isEmpty($${2}.eval):$$qtConfEvaluate($$eval($${2}.eval)): \ eval(value = $$value) qtConfOutputVar($$1, $$output, $$name, $$value) + equals(output, "publicPro"):!isEmpty($${currentConfig}.module): \ + qtConfExtendVar($$output, "QT.$${currentModule}.exports", $$name) } defineTest(qtConfOutput_varAssign) { @@ -1392,6 +1431,8 @@ defineTest(qtConfOutput_varRemove) { defineTest(qtConfOutputConfigVar) { pro = $$3 var = $$4 + modular = $$5 + negative = $$eval($${1}.negative) isEmpty(negative): negative = false equals(2, $$negative): return() @@ -1402,26 +1443,31 @@ defineTest(qtConfOutputConfigVar) { $$negative: val = no-$$val } - qtConfOutputVar(append, $$pro, $$var, $$val) + isEmpty($${currentConfig}.module)|!$$modular: \ + qtConfOutputVar(append, $$pro, $$var, $$val) + else: \ + qtConfExtendVar($$pro, "QT.$${currentModule}.$$var", $$val) } defineTest(qtConfOutput_publicQtConfig) { - qtConfOutputConfigVar($$1, $$2, "publicPro", "QT_CONFIG") + qtConfOutputConfigVar($$1, $$2, "publicPro", "QT_CONFIG", true) } defineTest(qtConfOutput_publicConfig) { - qtConfOutputConfigVar($$1, $$2, "publicPro", "CONFIG") + !isEmpty($${currentConfig}.module): \ + error("Cannot use output type 'publicConfig' in module-local feature '$$eval($${1}.feature)'.") + qtConfOutputConfigVar($$1, $$2, "publicPro", "CONFIG", false) } defineTest(qtConfOutput_privateConfig) { - qtConfOutputConfigVar($$1, $$2, "privatePro", "CONFIG") + qtConfOutputConfigVar($$1, $$2, "privatePro", "CONFIG", false) } defineTest(qtConfOutputSetDefine) { - config.output.$${1}.$${2} = $${3} - config.output.$${1}._KEYS_ *= $${2} - export(config.output.$${1}.$${2}) - export(config.output.$${1}._KEYS_) + $${currentConfig}.output.$${1}.$${2} = $${3} + $${currentConfig}.output.$${1}._KEYS_ *= $${2} + export($${currentConfig}.output.$${1}.$${2}) + export($${currentConfig}.output.$${1}._KEYS_) } defineTest(qtConfOutput_define) { @@ -1444,13 +1490,35 @@ defineTest(qtConfOutput_feature) { name = $$eval($${1}.feature) $${2} { - qtConfOutputVar(append, "publicPro", "QT_CONFIG", $$name) + isEmpty($${currentConfig}.module): \ + qtConfOutputVar(append, "publicPro", "QT_CONFIG", $$name) + else: \ + qtConfExtendVar("publicPro", "QT.$${currentModule}.QT_CONFIG", $$name) } else { f = $$upper($$replace(name, -, _)) qtConfOutputSetDefine("publicHeader", "QT_NO_$$f") } } +defineTest(qtConfSetModuleName) { + currentModule = $$eval($${currentConfig}.module) + isEmpty(currentModule): \ + currentModule = global + export(currentModule) +} + +defineTest(qtConfSetupModuleOutputs) { + qtConfOutputVar(assign, "publicPro", "QT.$${currentModule}.enabled_features", ) + qtConfOutputVar(assign, "publicPro", "QT.$${currentModule}.disabled_features", ) + qtConfOutputVar(assign, "privatePro", "QT.$${currentModule}_private.enabled_features", ) + qtConfOutputVar(assign, "privatePro", "QT.$${currentModule}_private.disabled_features", ) + !isEmpty($${currentConfig}.module) { + qtConfOutputVar(assign, "publicPro", "QT.$${currentModule}.QT_CONFIG", ) + qtConfOutputVar(assign, "publicPro", "QT.$${currentModule}.exports", ) + qtConfOutputVar(assign, "privatePro", "QT.$${currentModule}_private.libraries", ) + } +} + defineTest(qtConfOutput_publicFeature) { name = "$$eval($${1}.name)" isEmpty(name): \ @@ -1458,10 +1526,14 @@ defineTest(qtConfOutput_publicFeature) { feature = $$replace(name, [-+.], _) $${2} { - qtConfOutputVar(append, "publicPro", "QT.global.enabled_features", $$name) + qtConfExtendVar("publicPro", "QT.$${currentModule}.enabled_features", $$name) + QT.$${currentModule}.enabled_features += $$name + export(QT.$${currentModule}.enabled_features) qtConfOutputSetDefine("publicHeader", "QT_FEATURE_$$feature", 1) } else { - qtConfOutputVar(append, "publicPro", "QT.global.disabled_features", $$name) + qtConfExtendVar("publicPro", "QT.$${currentModule}.disabled_features", $$name) + QT.$${currentModule}.disabled_features += $$name + export(QT.$${currentModule}.disabled_features) qtConfOutputSetDefine("publicHeader", "QT_FEATURE_$$feature", -1) } } @@ -1476,17 +1548,21 @@ defineTest(qtConfOutput_privateFeature) { feature = $$replace(name, [-+.], _) $${2} { - qtConfOutputVar(append, "privatePro", "QT.global.enabled_features", $$name) + qtConfExtendVar("privatePro", "QT.$${currentModule}_private.enabled_features", $$name) + QT.$${currentModule}_private.enabled_features += $$name + export(QT.$${currentModule}_private.enabled_features) qtConfOutputSetDefine("privateHeader", "QT_FEATURE_$$feature", 1) } else { - qtConfOutputVar(append, "privatePro", "QT.global.disabled_features", $$name) + qtConfExtendVar("privatePro", "QT.$${currentModule}_private.disabled_features", $$name) + QT.$${currentModule}_private.disabled_features += $$name + export(QT.$${currentModule}_private.disabled_features) qtConfOutputSetDefine("privateHeader", "QT_FEATURE_$$feature", -1) } } defineTest(qtConfProcessOneOutput) { feature = $${1} - fpfx = config.features.$${feature} + fpfx = $${currentConfig}.features.$${feature} opfx = $${fpfx}.output.$${2} condition = $$eval($${opfx}.condition) @@ -1512,64 +1588,167 @@ defineTest(qtConfProcessOneOutput) { } defineTest(qtConfProcessOutput) { + !contains($${currentConfig}._KEYS_, "features"): \ + return() + + basedir = $$shadowed($$eval($${currentConfig}.dir)) + module = $$eval($${currentConfig}.module) + # write it to the output files - for (type, config.files._KEYS_) { - file = $$OUT_PWD/$$eval(config.files.$${type}) + isEmpty($${currentConfig}.files._KEYS_) { + # set defaults that should work for most Qt modules + isEmpty(module): \ + error("Neither module nor files section specified in configuration file.") + + $${currentConfig}.files._KEYS_ = publicPro privatePro publicHeader privateHeader + $${currentConfig}.files.publicPro = qt$${module}-config.pri + $${currentConfig}.files.privatePro = qt$${module}-config.pri # sic! + $${currentConfig}.files.publicHeader = qt$${module}-config.h + $${currentConfig}.files.privateHeader = qt$${module}-config_p.h + } + + for (type, $${currentConfig}.files._KEYS_) { contains(type, ".*Pro") { - for (k, config.output.$${type}.assign._KEYS_): \ - config.output.$$type += "$$k = $$eval(config.output.$${type}.assign.$$k)" - for (k, config.output.$${type}.remove._KEYS_): \ - config.output.$$type += "$$k -= $$eval(config.output.$${type}.remove.$$k)" - for (k, config.output.$${type}.append._KEYS_): \ - config.output.$$type += "$$k += $$eval(config.output.$${type}.append.$$k)" + for (k, $${currentConfig}.output.$${type}.assign._KEYS_): \ + $${currentConfig}.output.$$type += "$$k = $$eval($${currentConfig}.output.$${type}.assign.$$k)" + for (k, $${currentConfig}.output.$${type}.remove._KEYS_): \ + $${currentConfig}.output.$$type += "$$k -= $$eval($${currentConfig}.output.$${type}.remove.$$k)" + for (k, $${currentConfig}.output.$${type}.append._KEYS_): \ + $${currentConfig}.output.$$type += "$$k += $$eval($${currentConfig}.output.$${type}.append.$$k)" } else { - for (define, config.output.$${type}._KEYS_) { - value = $$eval(config.output.$${type}.$${define}) - config.output.$$type += "$${LITERAL_HASH}define $$define $$value" + for (define, $${currentConfig}.output.$${type}._KEYS_) { + value = $$eval($${currentConfig}.output.$${type}.$${define}) + $${currentConfig}.output.$$type += "$${LITERAL_HASH}define $$define $$value" } } - defined(qtConfOutputPostProcess_$${type}, test): \ - qtConfOutputPostProcess_$${type}() - write_file($$file, config.output.$${type})|error() + ppScope = + !isEmpty(module): ppScope = $${module}_ + defined(qtConfOutputPostProcess_$${ppScope}$${type}, test): \ + qtConfOutputPostProcess_$${ppScope}$${type}() + + file = $$eval($${currentConfig}.files.$${type}) + fileCont.$$file += $$eval($${currentConfig}.output.$${type}) + fileCont._KEYS_ *= $$file } + + for (file, fileCont._KEYS_): \ + write_file($$basedir/$$file, fileCont.$$file)|error() } # # tie it all together # -defineTest(qtConfigure) { +cfgs = +isEmpty(_QMAKE_SUPER_CACHE_)|equals(OUT_PWD, $$dirname(_QMAKE_SUPER_CACHE_)) { + c = $$basename(_PRO_FILE_PWD_) + config.$${c}.dir = $$_PRO_FILE_PWD_ + cfgs += $$c + !isEmpty(_QMAKE_SUPER_CACHE_) { + for (s, SUBDIRS) { + config.$${s}.dir = $$_PRO_FILE_PWD_/$${s} + cfgs += $$s + } + } +} +configsToProcess = +for (c, cfgs) { + s = $$eval(config.$${c}.dir) + exists($$s/configure.json): \ + configsToProcess += $$c +} +isEmpty(configsToProcess): \ + return() + +load(configure_base) + +QMAKE_POST_CONFIGURE = +allConfigs = +for(ever) { + isEmpty(configsToProcess): \ + break() + + currentConfig = config.$$take_first(configsToProcess) + thisDir = $$eval($${currentConfig}.dir) + jsonFile = $$thisDir/configure.json + priFile = $$thisDir/configure.pri + + allConfigs += $$currentConfig + # load configuration data - configure_data = $$cat($${1}, blob) - !parseJson(configure_data, config): \ - error("Invalid or non-existent file $${1}.") + configure_data = $$cat($$jsonFile, blob) + !parseJson(configure_data, $$currentConfig): \ + error("Invalid or non-existent file $${jsonFile}.") + exists($$priFile): \ + !include($$priFile): error() + + # prepend all subconfigs to files to keep a depth first search order + subconfigs = + for(n, $${currentConfig}.subconfigs._KEYS_) { + subconfig = $$eval($${currentConfig}.subconfigs.$${n}) + name = $$basename(subconfig) + config.$${name}.dir = $$thisDir/$$subconfig + subconfigs += $$name + } + configsToProcess = $$subconfigs $$configsToProcess +} +for (currentConfig, allConfigs): \ qtConfSetupLibraries() - qtConfSetupTestTypeDeps() - qtConfParseCommandLine() +!isEmpty(_QMAKE_SUPER_CACHE_): \ + QMAKE_CONFIG_CACHE = $$dirname(_QMAKE_SUPER_CACHE_)/config.cache +else: \ + QMAKE_CONFIG_CACHE = $$dirname(_QMAKE_CACHE_)/config.cache +QMAKE_CONFIG_CACHE_USE = all - !equals(QMAKE_CONFIG_CACHE_USE, none) { - include($$QMAKE_CONFIG_CACHE, , true) - # this crudely determines when to discard the cache. this also catches the case - # of no cache being there in the first place. - !equals(cache.platform, $$[QMAKE_SPEC])|!equals(cache.xplatform, $$[QMAKE_XSPEC]): \ - QMAKE_CONFIG_CACHE_USE = none - } - equals(QMAKE_CONFIG_CACHE_USE, none) { - cont = \ - "cache.platform = $$[QMAKE_SPEC]" \ - "cache.xplatform = $$[QMAKE_XSPEC]" - write_file($$QMAKE_CONFIG_CACHE, cont) - } +qtConfParseCommandLine() + +!equals(QMAKE_CONFIG_CACHE_USE, none) { + include($$QMAKE_CONFIG_CACHE, , true) + # this crudely determines when to discard the cache. this also catches the case + # of no cache being there in the first place. + !equals(cache.platform, $$[QMAKE_SPEC])|!equals(cache.xplatform, $$[QMAKE_XSPEC]): \ + QMAKE_CONFIG_CACHE_USE = none +} +equals(QMAKE_CONFIG_CACHE_USE, none) { + cont = \ + "cache.platform = $$[QMAKE_SPEC]" \ + "cache.xplatform = $$[QMAKE_XSPEC]" + write_file($$QMAKE_CONFIG_CACHE, cont) +} +for (currentConfig, allConfigs) { + qtConfSetModuleName() + qtConfSetupModuleOutputs() # do early checks, mainly to validate the command line qtConfProcessEarlyChecks() +} +qtConfCheckErrors() - CONFIG += qt_conf_tests_allowed - logn() - logn("Running configuration tests...") +CONFIG += qt_conf_tests_allowed +logn() +logn("Running configuration tests...") + +for (currentConfig, allConfigs) { + tdir = $$eval($${currentConfig}.testDir) + isEmpty(tdir): tdir = config.tests + QMAKE_CONFIG_TESTS_DIR = $$absolute_path($$tdir, $$eval($${currentConfig}.dir)) + + qtConfSetModuleName() + + qtConfSetupTestTypeDeps() + + # correctly setup dependencies + QMAKE_CONFIG_DEPS = global global_private + !isEmpty($${currentConfig}.module) { + for (d, $${currentConfig}.depends._KEYS_) { + dep = $$replace($${currentConfig}.depends.$$d, -private$, _private) + dep *= $$replace(dep, _private$, ) + QMAKE_CONFIG_DEPS += $$dep + } + } # process all features qtConfProcessFeatures() @@ -1578,14 +1757,15 @@ defineTest(qtConfigure) { qtConfProcessOutput() qtConfCreateReport() qtConfCreateSummary() - - logn("Done running configuration tests.") - logn() } -qtConfigure($$_PRO_FILE_PWD_/configure.json) +# these come from the pri files loaded above. +for (p, QMAKE_POST_CONFIGURE): \ + eval($$p) -logn("Configure summary:") +logn("Done running configuration tests.") logn() +logn("Configure summary:") +logn() qtConfPrintReport() diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf index 735ece45f2..efbf2fab1d 100644 --- a/mkspecs/features/qt_functions.prf +++ b/mkspecs/features/qt_functions.prf @@ -300,10 +300,16 @@ defineTest(prepareRecursiveTarget) { } defineTest(qtConfig) { - contains(QT.global.enabled_features, $$1): \ - return(true) - contains(QT.global.disabled_features, $$1): \ - return(false) - + modules = $$QT $$QT_PRIVATE $$QT_FOR_CONFIG + modules ~= s,-private$,_private,g + modules = $$resolve_depends(modules, "QT.", ".depends") + modules += global global_private + modules = $$reverse(modules) + for (module, modules) { + contains(QT.$${module}.enabled_features, $$1): \ + return(true) + contains(QT.$${module}.disabled_features, $$1): \ + return(false) + } error("Could not find feature $${1}.") } diff --git a/mkspecs/features/qt_module_headers.prf b/mkspecs/features/qt_module_headers.prf index 9e0b21903f..229760068e 100644 --- a/mkspecs/features/qt_module_headers.prf +++ b/mkspecs/features/qt_module_headers.prf @@ -106,6 +106,16 @@ alien_syncqt: return() MODULE_INC_OUTDIR = $$MODULE_BASE_OUTDIR/include/$$MODULE_INCNAME +exists($$OUT_PWD/qt$${MODULE}-config.h) { + fwd_rel = $$relative_path($$OUT_PWD, $$MODULE_INC_OUTDIR) + SYNCQT.INJECTIONS += \ + $$fwd_rel/qt$${MODULE}-config.h:qt$${MODULE}-config.h \ + $$fwd_rel/qt$${MODULE}-config_p.h:$$MODULE_VERSION/$$MODULE_INCNAME/private/qt$${MODULE}-config_p.h + inst_rel = $$relative_path($$OUT_PWD, $$_PRO_FILE_PWD_) + SYNCQT.HEADER_FILES += $$inst_rel/qt$${MODULE}-config.h + SYNCQT.PRIVATE_HEADER_FILES += $$inst_rel/qt$${MODULE}-config_p.h +} + for (injection, SYNCQT.INJECTIONS) { injects = $$split(injection, :) dst_hdr = $$absolute_path($$member(injects, 0), $$MODULE_INC_OUTDIR) diff --git a/mkspecs/features/qt_module_pris.prf b/mkspecs/features/qt_module_pris.prf index b67a56c7d5..9542a362d0 100644 --- a/mkspecs/features/qt_module_pris.prf +++ b/mkspecs/features/qt_module_pris.prf @@ -35,6 +35,41 @@ else: \ MODULE_PRI = $$mod_inst_pfx/qt_lib_$${MODULE_ID}.pri MODULE_FWD_PRI = $$mod_work_pfx/qt_lib_$${MODULE_ID}.pri +exists($$OUT_PWD/qt$${MODULE}-config.pri): \ + include($$OUT_PWD/qt$${MODULE}-config.pri) + +defineReplace(qtGetFeaturesForModule) { + enabled = $$unique(QT.$${1}.enabled_features) + disabled = $$unique(QT.$${1}.disabled_features) + result = \ + "QT.$${1}.enabled_features =$$join(enabled, " ", " ")" \ + "QT.$${1}.disabled_features =$$join(disabled, " ", " ")" + return($$result) +} + +defineReplace(qtGetExportsForModule) { + result = + for (var, QT.$${1}.exports): \ + result += "$$var = $$val_escape($$var)" + return($$result) +} + +defineReplace(qtExportLibsForModule) { + result = + for (lib, QT.$${1}.libraries) { + NAME = $$upper($$lib) + vars = \ + QMAKE_LIBS_$$NAME QMAKE_LIBS_$${NAME}_DEBUG QMAKE_LIBS_$${NAME}_RELEASE \ + QMAKE_CFLAGS_$$NAME QMAKE_INCDIR_$$NAME QMAKE_$${NAME}_VERSION \ + QMAKE_$${NAME}_VERSION_MAJOR QMAKE_$${NAME}_VERSION_MINOR QMAKE_$${NAME}_VERSION_PATCH + for (var, vars) { + !isEmpty($$var): \ + result += "$$var = $$val_escape($$var)" + } + } + return($$result) +} + !build_pass { # Create a module .pri file @@ -102,6 +137,9 @@ MODULE_FWD_PRI = $$mod_work_pfx/qt_lib_$${MODULE_ID}.pri "QT.$${MODULE_ID}.module_config =$$join(module_build_type, " ", " ")" \ $$module_config \ "QT.$${MODULE_ID}.DEFINES = $$val_escape(MODULE_DEFINES)" \ + $$qtGetFeaturesForModule($$MODULE_ID) \ + $$qtGetExportsForModule($$MODULE_ID) \ + "QT_CONFIG +=$$join(QT.$${MODULE_ID}.QT_CONFIG, " ", " ")" \ "" \ "QT_MODULES += $$MODULE" winrt: MODULE_PRI_CONT += \ @@ -126,7 +164,10 @@ MODULE_FWD_PRI = $$mod_work_pfx/qt_lib_$${MODULE_ID}.pri "QT.$${MODULE}_private.includes = $$MODULE_PRIVATE_INCLUDES" \ "QT.$${MODULE}_private.frameworks =" \ "QT.$${MODULE}_private.depends = $$private_deps" \ - "QT.$${MODULE}_private.module_config =$$join(module_build_type, " ", " ")" + "QT.$${MODULE}_private.module_config =$$join(module_build_type, " ", " ")" \ + $$qtGetFeaturesForModule($${MODULE}_private) \ + "" \ + $$qtExportLibsForModule($${MODULE}_private) write_file($$MODULE_PRIVATE_PRI, MODULE_PRIVATE_PRI_CONT)|error() } MODULE_PRI_FILES = $$MODULE_PRI $$MODULE_PRIVATE_PRI diff --git a/mkspecs/features/qt_parts.prf b/mkspecs/features/qt_parts.prf index fa62f40e35..0accef6665 100644 --- a/mkspecs/features/qt_parts.prf +++ b/mkspecs/features/qt_parts.prf @@ -12,6 +12,8 @@ # Ensure that each module has a .qmake.cache when properly qmake'd. cache() +load(qt_configure) + load(qt_build_config) TEMPLATE = subdirs @@ -74,6 +76,7 @@ QT_BUILD_PARTS -= libs tools examples tests QMAKE_DISTCLEAN += \ .qmake.cache \ + config.cache \ config.log \ mkspecs/modules/*.pri \ mkspecs/modules-inst/*.pri diff --git a/qtbase.pro b/qtbase.pro index 0e44395f6f..fce2c9fa6c 100644 --- a/qtbase.pro +++ b/qtbase.pro @@ -24,7 +24,6 @@ DISTCLEAN_DEPS += qmake-clean # config.status (and configure.cache, which is the same for Windows) # are omitted for convenience of rebuilds. QMAKE_DISTCLEAN += \ - config.cache \ config.summary \ config.tests/.qmake.cache \ mkspecs/qconfig.pri \ diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp index cc46fb99cb..bf2d7aa8a7 100644 --- a/tools/configure/configureapp.cpp +++ b/tools/configure/configureapp.cpp @@ -1015,35 +1015,21 @@ void Configure::configure() QStringList args; args << buildPath + "/bin/qmake" - << "-o" << "Makefile.cfg" - << sourcePath + "/configure.pri" + << sourcePathMangled << "--" << configCmdLine; + QString pwd = QDir::currentPath(); + QDir::setCurrent(buildPathMangled); if (int exitCode = Environment::execute(args, QStringList(), QStringList())) { cout << "Qmake failed, return code " << exitCode << endl << endl; dictionary[ "DONE" ] = "error"; } + QDir::setCurrent(pwd); if ((dictionary["REDO"] != "yes") && (dictionary["DONE"] != "error")) saveCmdLine(); } -void Configure::generateMakefiles() -{ - QString pwd = QDir::currentPath(); - { - QStringList args; - args << buildPath + "/bin/qmake" << sourcePathMangled; - - QDir::setCurrent(buildPathMangled); - if (int exitCode = Environment::execute(args, QStringList(), QStringList())) { - cout << "Qmake failed, return code " << exitCode << endl << endl; - dictionary[ "DONE" ] = "error"; - } - } - QDir::setCurrent(pwd); -} - bool Configure::showLicense(QString orgLicenseFile) { if (dictionary["LICENSE_CONFIRMED"] == "yes") { diff --git a/tools/configure/configureapp.h b/tools/configure/configureapp.h index 436c9307b1..b1c6ea9181 100644 --- a/tools/configure/configureapp.h +++ b/tools/configure/configureapp.h @@ -51,7 +51,6 @@ public: void configure(); void generateHeaders(); - void generateMakefiles(); void generateQDevicePri(); void prepareConfigTests(); diff --git a/tools/configure/main.cpp b/tools/configure/main.cpp index ac521f42e4..91a99c16c2 100644 --- a/tools/configure/main.cpp +++ b/tools/configure/main.cpp @@ -80,10 +80,6 @@ int runConfigure( int argc, char** argv ) if (!app.isOk()) return 3; - app.generateMakefiles(); - if( !app.isOk() ) - return 2; - return 0; } -- cgit v1.2.3 From 103ffa117d3008cf0f73437aa09c1550ea799576 Mon Sep 17 00:00:00 2001 From: Laszlo Agocs Date: Fri, 9 Sep 2016 09:29:57 +0200 Subject: Add a spec for NXP Colibri VF50/61 Change-Id: I12450a214d61ffa00270095df0c77e57647d7a2c Reviewed-by: Andy Nichols --- mkspecs/devices/linux-colibri-vf-g++/qmake.conf | 17 +++++++++ .../devices/linux-colibri-vf-g++/qplatformdefs.h | 40 ++++++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 mkspecs/devices/linux-colibri-vf-g++/qmake.conf create mode 100644 mkspecs/devices/linux-colibri-vf-g++/qplatformdefs.h diff --git a/mkspecs/devices/linux-colibri-vf-g++/qmake.conf b/mkspecs/devices/linux-colibri-vf-g++/qmake.conf new file mode 100644 index 0000000000..bc42f67f8a --- /dev/null +++ b/mkspecs/devices/linux-colibri-vf-g++/qmake.conf @@ -0,0 +1,17 @@ +# +# qmake configuration for the NXP Colibri VFxx boards +# + +include(../common/linux_device_pre.conf) + +VFXX_CFLAGS = -march=armv7-a -mtune=cortex-a5 -mfpu=neon +QMAKE_CFLAGS += $$VFXX_CFLAGS +QMAKE_CXXFLAGS += $$VFXX_CFLAGS + +QT_QPA_DEFAULT_PLATFORM = linuxfb + +DISTRO_OPTS += hard-float + +include(../common/linux_arm_device_post.conf) + +load(qt_config) diff --git a/mkspecs/devices/linux-colibri-vf-g++/qplatformdefs.h b/mkspecs/devices/linux-colibri-vf-g++/qplatformdefs.h new file mode 100644 index 0000000000..6a35ed45d5 --- /dev/null +++ b/mkspecs/devices/linux-colibri-vf-g++/qplatformdefs.h @@ -0,0 +1,40 @@ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** 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 The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "../../linux-g++/qplatformdefs.h" -- cgit v1.2.3 From 7373929d6831358c3d0c1556bd94da9310c1cb92 Mon Sep 17 00:00:00 2001 From: Laszlo Agocs Date: Mon, 5 Sep 2016 15:47:26 +0200 Subject: Fix missing GL function protos with newer GLES headers A recent ANGLE update added GL_GLEXT_PROTOTYPES for gl2.h. That was a good first step, but we need this for gl3.h and gl31.h as well, because once one upgrades to a newer EGL/GLES capable build of Mesa, the same problem will surface. Change-Id: I138ae32e3461dc87bf789aa641359ae46c0ec170 Reviewed-by: Oliver Wolff --- src/gui/opengl/qopengl.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/gui/opengl/qopengl.h b/src/gui/opengl/qopengl.h index e2408d0047..c7a3e79666 100644 --- a/src/gui/opengl/qopengl.h +++ b/src/gui/opengl/qopengl.h @@ -95,14 +95,15 @@ typedef void* GLeglImageOES; // applications cannot target ES 3. Therefore QOpenGLFunctions and // friends do everything dynamically and never rely on these macros. +# ifndef GL_GLEXT_PROTOTYPES +# define GL_GLEXT_PROTOTYPES +# endif + # if defined(QT_OPENGL_ES_3_1) # include # elif defined(QT_OPENGL_ES_3) # include # else -# ifndef GL_GLEXT_PROTOTYPES -# define GL_GLEXT_PROTOTYPES -# endif # include #endif -- cgit v1.2.3 From e9b51781d0dd8badda301da61b08735c256313ca Mon Sep 17 00:00:00 2001 From: Maurice Kalinowski Date: Mon, 22 Aug 2016 12:04:59 +0200 Subject: winrt: Fix display of tooltips This touches multiple areas. First adding a tooltip to the window list should not automatically invoke focussing and hence handleWindowActivated should not be invoked. This is the same approach as on the windows qpa. The winrt qpa supports multiple (non-fullscreen) windows since a while. However, pointerUpdated still acted on the top level window, which caused problems resolving the real target of a mouse event. In this case the tooltip received all events, while the application window should get them. Hence identify the target window via the system coordinates. Task-number: QTBUG-50733 Change-Id: Iea1f4cd7406e6cde85ab3fc83f018b871fc30824 Reviewed-by: Oliver Wolff --- src/plugins/platforms/winrt/qwinrtscreen.cpp | 40 +++++++++++++++++++++------- src/plugins/platforms/winrt/qwinrtscreen.h | 1 + 2 files changed, 31 insertions(+), 10 deletions(-) diff --git a/src/plugins/platforms/winrt/qwinrtscreen.cpp b/src/plugins/platforms/winrt/qwinrtscreen.cpp index 4574439b1a..9236de58a1 100644 --- a/src/plugins/platforms/winrt/qwinrtscreen.cpp +++ b/src/plugins/platforms/winrt/qwinrtscreen.cpp @@ -802,6 +802,17 @@ QWindow *QWinRTScreen::topWindow() const return d->visibleWindows.isEmpty() ? 0 : d->visibleWindows.first(); } +QWindow *QWinRTScreen::windowAt(const QPoint &pos) +{ + Q_D(const QWinRTScreen); + for (auto w : qAsConst(d->visibleWindows)) { + if (w->geometry().contains(pos)) + return w; + } + qCDebug(lcQpaWindows) << __FUNCTION__ << ": No window found at:" << pos; + return nullptr; +} + void QWinRTScreen::addWindow(QWindow *window) { Q_D(QWinRTScreen); @@ -810,8 +821,12 @@ void QWinRTScreen::addWindow(QWindow *window) return; d->visibleWindows.prepend(window); - updateWindowTitle(window->title()); - QWindowSystemInterface::handleWindowActivated(window, Qt::OtherFocusReason); + const Qt::WindowType type = window->type(); + if (type != Qt::Popup && type != Qt::ToolTip && type != Qt::Tool) { + updateWindowTitle(window->title()); + QWindowSystemInterface::handleWindowActivated(window, Qt::OtherFocusReason); + } + handleExpose(); QWindowSystemInterface::flushWindowSystemEvents(); @@ -828,7 +843,9 @@ void QWinRTScreen::removeWindow(QWindow *window) const bool wasTopWindow = window == topWindow(); if (!d->visibleWindows.removeAll(window)) return; - if (wasTopWindow) + + const Qt::WindowType type = window->type(); + if (wasTopWindow && type != Qt::Popup && type != Qt::ToolTip && type != Qt::Tool) QWindowSystemInterface::handleWindowActivated(Q_NULLPTR, Qt::OtherFocusReason); handleExpose(); QWindowSystemInterface::flushWindowSystemEvents(); @@ -1044,9 +1061,12 @@ HRESULT QWinRTScreen::onPointerUpdated(ICoreWindow *, IPointerEventArgs *args) pointerPoint->get_Position(&point); QPointF pos(point.X * d->scaleFactor, point.Y * d->scaleFactor); QPointF localPos = pos; - if (topWindow()) { - const QPointF globalPosDelta = pos - pos.toPoint(); - localPos = topWindow()->mapFromGlobal(pos.toPoint()) + globalPosDelta; + + const QPoint posPoint = pos.toPoint(); + QWindow *targetWindow = windowAt(posPoint); + if (targetWindow) { + const QPointF globalPosDelta = pos - posPoint; + localPos = targetWindow->mapFromGlobal(posPoint) + globalPosDelta; } VirtualKeyModifiers modifiers; @@ -1081,7 +1101,7 @@ HRESULT QWinRTScreen::onPointerUpdated(ICoreWindow *, IPointerEventArgs *args) boolean isHorizontal; properties->get_IsHorizontalMouseWheel(&isHorizontal); QPoint angleDelta(isHorizontal ? delta : 0, isHorizontal ? 0 : delta); - QWindowSystemInterface::handleWheelEvent(topWindow(), localPos, pos, QPoint(), angleDelta, mods); + QWindowSystemInterface::handleWheelEvent(targetWindow, localPos, pos, QPoint(), angleDelta, mods); break; } @@ -1107,7 +1127,7 @@ HRESULT QWinRTScreen::onPointerUpdated(ICoreWindow *, IPointerEventArgs *args) if (isPressed) buttons |= Qt::XButton2; - QWindowSystemInterface::handleMouseEvent(topWindow(), localPos, pos, buttons, mods); + QWindowSystemInterface::handleMouseEvent(targetWindow, localPos, pos, buttons, mods); break; } @@ -1159,7 +1179,7 @@ HRESULT QWinRTScreen::onPointerUpdated(ICoreWindow *, IPointerEventArgs *args) it.value().normalPosition = QPointF(point.X/d->logicalRect.width(), point.Y/d->logicalRect.height()); it.value().pressure = pressure; - QWindowSystemInterface::handleTouchEvent(topWindow(), d->touchDevice, d->touchPoints.values(), mods); + QWindowSystemInterface::handleTouchEvent(targetWindow, d->touchDevice, d->touchPoints.values(), mods); // Fall-through for pen to generate tablet event if (pointerDeviceType != PointerDeviceType_Pen) @@ -1178,7 +1198,7 @@ HRESULT QWinRTScreen::onPointerUpdated(ICoreWindow *, IPointerEventArgs *args) float rotation; properties->get_Twist(&rotation); - QWindowSystemInterface::handleTabletEvent(topWindow(), isPressed, pos, pos, 0, + QWindowSystemInterface::handleTabletEvent(targetWindow, isPressed, pos, pos, 0, pointerType, pressure, xTilt, yTilt, 0, rotation, 0, id, mods); diff --git a/src/plugins/platforms/winrt/qwinrtscreen.h b/src/plugins/platforms/winrt/qwinrtscreen.h index 1862c0afcf..e489e208d5 100644 --- a/src/plugins/platforms/winrt/qwinrtscreen.h +++ b/src/plugins/platforms/winrt/qwinrtscreen.h @@ -104,6 +104,7 @@ public: Qt::ScreenOrientation orientation() const Q_DECL_OVERRIDE; QWindow *topWindow() const; + QWindow *windowAt(const QPoint &pos); void addWindow(QWindow *window); void removeWindow(QWindow *window); void raise(QWindow *window); -- cgit v1.2.3 From 13d20e47870deac5ecd0f06d8b4a78b82f655654 Mon Sep 17 00:00:00 2001 From: Maurice Kalinowski Date: Wed, 7 Sep 2016 13:47:26 +0200 Subject: winrt: Report system languages for QLocale::uiLanguages dc3e7e45ebe447c139868cc161b484eac478194d introduced locales from a packaging perspective, providing the information available from the package manifest. However, developers are rather interested in the available and preferred system languages to update user interfaces. Task-number: QTBUG-55672 Change-Id: I740d4f9c9ca21a8cbd437d3b232470897c569d34 Reviewed-by: Jens Bache-Wiig Reviewed-by: Oliver Wolff --- src/corelib/tools/qlocale_win.cpp | 44 +++++++-------------------------------- 1 file changed, 8 insertions(+), 36 deletions(-) diff --git a/src/corelib/tools/qlocale_win.cpp b/src/corelib/tools/qlocale_win.cpp index 42ac888e47..b5f97b5fe8 100644 --- a/src/corelib/tools/qlocale_win.cpp +++ b/src/corelib/tools/qlocale_win.cpp @@ -57,7 +57,7 @@ #include #include #include -#include +#include #endif // Q_OS_WINRT QT_BEGIN_NAMESPACE @@ -70,6 +70,7 @@ static QString winIso3116CtryName(LCID id = LOCALE_USER_DEFAULT); using namespace Microsoft::WRL; using namespace Microsoft::WRL::Wrappers; using namespace ABI::Windows::Foundation; +using namespace ABI::Windows::System::UserProfile; static QByteArray getWinLocaleName(LPWSTR id = LOCALE_NAME_USER_DEFAULT); static const char *winLangCodeToIsoName(int code); @@ -624,16 +625,17 @@ QVariant QSystemLocalePrivate::uiLanguages() return result; #else // !Q_OS_WINRT QStringList result; - ComPtr appLanguagesStatics; - if (FAILED(GetActivationFactory(HString::MakeReference(RuntimeClass_Windows_Globalization_ApplicationLanguages).Get(), &appLanguagesStatics))) { + + ComPtr preferences; + HRESULT hr = GetActivationFactory(HString::MakeReference(RuntimeClass_Windows_System_UserProfile_GlobalizationPreferences).Get(), &preferences); + if (FAILED(hr)) { qWarning("Could not obtain ApplicationLanguagesStatic"); return QStringList(); } ComPtr > languageList; - // Languages is a ranked list of "long names" (e.g. en-US) of preferred languages, which matches - // languages from the manifest with languages from the user's system. - HRESULT hr = appLanguagesStatics->get_Languages(&languageList); + // Languages is a ranked list of "long names" (e.g. en-US) of preferred languages + hr = preferences->get_Languages(&languageList); Q_ASSERT_SUCCEEDED(hr); unsigned int size; hr = languageList->get_Size(&size); @@ -648,36 +650,6 @@ QVariant QSystemLocalePrivate::uiLanguages() result << QString::fromWCharArray(rawString, length); } - // ManifestLanguages covers all languages given in the manifest and uses short names (like "en"). - hr = appLanguagesStatics->get_ManifestLanguages(&languageList); - Q_ASSERT_SUCCEEDED(hr); - hr = languageList->get_Size(&size); - Q_ASSERT_SUCCEEDED(hr); - for (unsigned int i = 0; i < size; ++i) { - HString language; - hr = languageList->GetAt(i, language.GetAddressOf()); - Q_ASSERT_SUCCEEDED(hr); - UINT32 length; - PCWSTR rawString = language.GetRawBuffer(&length); - const QString qLanguage = QString::fromWCharArray(rawString, length); - bool found = false; - // Since ApplicationLanguages:::Languages uses long names, we compare the "pre-dash" part of - // the language and filter it out, if it is already covered by a more specialized form. - for (const QString &lang : qAsConst(result)) { - int dashIndex = lang.indexOf('-'); - // There will not be any long name after the first short name was found, so we can stop. - if (dashIndex == -1) - break; - - if (lang.leftRef(dashIndex) == qLanguage) { - found = true; - break; - } - } - if (!found) - result << qLanguage; - } - return result; #endif // Q_OS_WINRT } -- cgit v1.2.3 From 8cedf59a6815bf6457879822c0429f4becf85567 Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Tue, 6 Sep 2016 12:30:33 +0200 Subject: Fix Linux build without XINPUT2 XcbConnection::TabletData only exist if XCB_USE_XINPUT2 is defined and QT_NO_TABLETEVENT is not. Change-Id: I94f4558714b105f2ce98b9b4a7462e7a8eb628e3 Reviewed-by: Shawn Rutledge --- src/plugins/platforms/xcb/qxcbconnection.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/plugins/platforms/xcb/qxcbconnection.h b/src/plugins/platforms/xcb/qxcbconnection.h index dca32af9b1..6ad8a36460 100644 --- a/src/plugins/platforms/xcb/qxcbconnection.h +++ b/src/plugins/platforms/xcb/qxcbconnection.h @@ -686,8 +686,12 @@ private: friend class QXcbEventReader; }; +#ifdef XCB_USE_XINPUT2 +#ifndef QT_NO_TABLETEVENT Q_DECLARE_TYPEINFO(QXcbConnection::TabletData::ValuatorClassInfo, Q_PRIMITIVE_TYPE); Q_DECLARE_TYPEINFO(QXcbConnection::TabletData, Q_MOVABLE_TYPE); +#endif +#endif #define DISPLAY_FROM_XCB(object) ((Display *)(object->connection()->xlib_display())) #define CREATE_VISUALINFO_FROM_DEFAULT_VISUALID(object) ((XVisualInfo *)(object->connection()->createVisualInfoForDefaultVisualId())) -- cgit v1.2.3 From fc098de70a5dda5f45ebe238a43f24f674426f3d Mon Sep 17 00:00:00 2001 From: Alexander Volkov Date: Wed, 24 Aug 2016 18:13:42 +0300 Subject: xcb: Remove unused NoFontHinting hint It is unused since 0f7bc885aa7ae8cc3c448cc751aba4eba8c1c8b8 (Turn off font hinting when active highdpi scaling). Change-Id: I901407bedf24ae301acbe6afa94bc0a4cadb0620 Reviewed-by: Eskil Abrahamsen Blomfeldt --- src/plugins/platforms/xcb/qxcbnativeinterface.cpp | 4 ---- src/plugins/platforms/xcb/qxcbnativeinterface.h | 1 - src/plugins/platforms/xcb/qxcbscreen.cpp | 1 - src/plugins/platforms/xcb/qxcbscreen.h | 2 -- 4 files changed, 8 deletions(-) diff --git a/src/plugins/platforms/xcb/qxcbnativeinterface.cpp b/src/plugins/platforms/xcb/qxcbnativeinterface.cpp index a3e8da7df8..189ec53050 100644 --- a/src/plugins/platforms/xcb/qxcbnativeinterface.cpp +++ b/src/plugins/platforms/xcb/qxcbnativeinterface.cpp @@ -85,7 +85,6 @@ static int resourceType(const QByteArray &key) QByteArrayLiteral("gettimestamp"), QByteArrayLiteral("x11screen"), QByteArrayLiteral("rootwindow"), QByteArrayLiteral("subpixeltype"), QByteArrayLiteral("antialiasingenabled"), - QByteArrayLiteral("nofonthinting"), QByteArrayLiteral("atspibus"), QByteArrayLiteral("compositingenabled") }; @@ -242,9 +241,6 @@ void *QXcbNativeInterface::nativeResourceForScreen(const QByteArray &resourceStr case GetTimestamp: result = getTimestamp(xcbScreen); break; - case NoFontHinting: - result = xcbScreen->noFontHinting() ? this : 0; //qboolptr... - break; case RootWindow: result = reinterpret_cast(xcbScreen->root()); break; diff --git a/src/plugins/platforms/xcb/qxcbnativeinterface.h b/src/plugins/platforms/xcb/qxcbnativeinterface.h index ba19cd869c..8728b6e937 100644 --- a/src/plugins/platforms/xcb/qxcbnativeinterface.h +++ b/src/plugins/platforms/xcb/qxcbnativeinterface.h @@ -73,7 +73,6 @@ public: RootWindow, ScreenSubpixelType, ScreenAntialiasingEnabled, - NoFontHinting, AtspiBus, CompositingEnabled }; diff --git a/src/plugins/platforms/xcb/qxcbscreen.cpp b/src/plugins/platforms/xcb/qxcbscreen.cpp index dc6846b20b..e4c92c5206 100644 --- a/src/plugins/platforms/xcb/qxcbscreen.cpp +++ b/src/plugins/platforms/xcb/qxcbscreen.cpp @@ -188,7 +188,6 @@ QXcbScreen::QXcbScreen(QXcbConnection *connection, QXcbVirtualDesktop *virtualDe , m_forcedDpi(-1) , m_pixelDensity(1) , m_hintStyle(QFontEngine::HintStyle(-1)) - , m_noFontHinting(false) , m_subpixelType(QFontEngine::SubpixelAntialiasingType(-1)) , m_antialiasingEnabled(-1) { diff --git a/src/plugins/platforms/xcb/qxcbscreen.h b/src/plugins/platforms/xcb/qxcbscreen.h index 8716af29b5..0d32c3d624 100644 --- a/src/plugins/platforms/xcb/qxcbscreen.h +++ b/src/plugins/platforms/xcb/qxcbscreen.h @@ -172,7 +172,6 @@ public: void readXResources(); QFontEngine::HintStyle hintStyle() const { return m_hintStyle; } - bool noFontHinting() const { return m_noFontHinting; } QFontEngine::SubpixelAntialiasingType subpixelType() const { return m_subpixelType; } int antialiasingEnabled() const { return m_antialiasingEnabled; } @@ -208,7 +207,6 @@ private: int m_forcedDpi; int m_pixelDensity; QFontEngine::HintStyle m_hintStyle; - bool m_noFontHinting; QFontEngine::SubpixelAntialiasingType m_subpixelType; int m_antialiasingEnabled; }; -- cgit v1.2.3 From 2d3c73fcfe7a93cb46190e8e82410fe93145dbe0 Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Fri, 9 Sep 2016 09:50:08 +0200 Subject: Modularize configure.json/.pri Move the different parts of configure.json/.pri into the libraries where they belong. Gui is not yet fully modularized, and contains many things related to the different QPA plugins. Done-with: Oswald Buddenhagen Change-Id: I6659bb29354ed1f36b95b8c69e7fce58f642053f Reviewed-by: Lars Knoll --- configure.json | 1761 +------------------- configure.pri | 173 -- examples/gui/gui.pro | 4 +- examples/network/network.pro | 1 + mkspecs/features/ctest_testcase_common.prf | 1 + src/3rdparty/freetype/freetype.pro | 2 + src/3rdparty/pcre_dependency.pri | 6 +- src/angle/src/common/common.pri | 1 + .../src/compiler/preprocessor/preprocessor.pro | 1 + src/angle/src/compiler/translator.pro | 1 + src/corelib/configure.json | 434 +++++ src/corelib/global/qglobal.h | 2 +- src/corelib/global/qglobal_p.h | 1 + src/gui/configure.json | 905 ++++++++++ src/gui/configure.pri | 67 + src/gui/kernel/qtguiglobal.h | 1 + src/gui/kernel/qtguiglobal_p.h | 1 + src/network/configure.json | 216 +++ src/network/configure.pri | 12 + src/network/kernel/qtnetworkglobal.h | 1 + src/network/kernel/qtnetworkglobal_p.h | 1 + src/network/ssl/qsslcertificate.cpp | 2 +- src/platformsupport/fbconvenience/qfbvthandler_p.h | 1 + .../input/evdevtouch/qevdevtouchhandler_p.h | 1 + src/plugins/bearer/bearer.pro | 1 + src/plugins/generic/generic.pro | 1 + src/plugins/imageformats/imageformats.pro | 1 + .../platforminputcontexts.pro | 1 + .../eglfs/deviceintegration/deviceintegration.pro | 1 + src/plugins/platforms/platforms.pro | 1 + .../xcb/gl_integrations/gl_integrations.pro | 1 + src/plugins/platforms/xcb/qxcbconnection.h | 1 + src/plugins/platforms/xcb/xcb.pro | 1 + src/plugins/platformthemes/platformthemes.pro | 3 +- src/plugins/printsupport/printsupport.pro | 2 +- src/plugins/sqldrivers/sqldrivers.pro | 1 + src/printsupport/configure.json | 42 + src/printsupport/kernel/qtprintsupportglobal.h | 1 + src/sql/configure.json | 201 +++ src/sql/configure.pri | 89 + src/src.pro | 4 + src/widgets/configure.json | 97 ++ src/widgets/configure.pri | 8 + src/widgets/kernel/qtwidgetsglobal.h | 1 + src/widgets/kernel/qtwidgetsglobal_p.h | 1 + src/widgets/styles/styles.pri | 2 + tests/auto/corelib/json/json.pro | 2 +- tests/auto/corelib/tools/qcollator/qcollator.pro | 2 +- tests/auto/corelib/tools/qstring/qstring.pro | 2 +- tests/auto/gui/image/qmovie/qmovie.pro | 1 + .../network/access/qnetworkreply/test/test.pro | 1 + tests/auto/network/socket/socket.pro | 2 + tests/auto/network/ssl/ssl.pro | 2 + tests/auto/other/other.pro | 2 + .../image/qimageconversion/qimageconversion.pro | 1 + .../gui/image/qimagereader/qimagereader.pro | 1 + tests/benchmarks/network/network.pro | 2 + 57 files changed, 2169 insertions(+), 1906 deletions(-) create mode 100644 src/corelib/configure.json create mode 100644 src/gui/configure.json create mode 100644 src/gui/configure.pri create mode 100644 src/network/configure.json create mode 100644 src/network/configure.pri create mode 100644 src/printsupport/configure.json create mode 100644 src/sql/configure.json create mode 100644 src/sql/configure.pri create mode 100644 src/widgets/configure.json create mode 100644 src/widgets/configure.pri diff --git a/configure.json b/configure.json index 46f94573cf..2c37957914 100644 --- a/configure.json +++ b/configure.json @@ -6,18 +6,19 @@ "privatePro": "mkspecs/qmodule.pri" }, + "subconfigs": [ + "src/corelib", + "src/network", + "src/sql", + "src/gui", + "src/widgets", + "src/printsupport" + ], + "commandline": { "assignments": { "DBUS_HOST_PATH": "host_dbus.prefix", "DBUS_PATH": "dbus.prefix", - "MYSQL_PATH": "mysql.prefix", - "OPENSSL_LIBS": "openssl.libs", - "OPENSSL_LIBS_DEBUG": "openssl.libs.debug", - "OPENSSL_LIBS_RELEASE": "openssl.libs.release", - "OPENSSL_PATH": "openssl.prefix", - "PSQL_LIBS": "psql.libs", - "SYBASE": "tds.prefix", - "SYBASE_LIBS": "tds.libs", "ZLIB_LIBS": "zlib.libs" }, "custom": "qmakeArgs", @@ -51,12 +52,10 @@ "android-ndk-host": "string", "android-ndk-platform": "string", "android-sdk": "string", - "android-style-assets": "boolean", "android-toolchain-version": "string", "accessibility": "boolean", "alsa": "boolean", - "angle": "boolean", "audio-backend": "boolean", "avx": "boolean", "avx2": "boolean", @@ -66,7 +65,6 @@ "compile-examples": { "type": "boolean", "name": "compile_examples" }, "confirm-license": "void", "continue": "void", - "cups": "boolean", "dbus": { "type": "optionalString", "values": [ "no", "yes", "linked", "runtime" ] }, "dbus-linked": { "type": "void", "name": "dbus", "value": "linked" }, "dbus-runtime": { "type": "void", "name": "dbus", "value": "runtime" }, @@ -75,78 +73,36 @@ "developer-build": "void", "device": "string", "device-option": "string", - "directfb": "boolean", - "directwrite": "boolean", - "doubleconversion": { "type": "enum", "values": [ "no", "qt", "system" ] }, - "egl": "boolean", - "eglfs": "boolean", - "evdev": "boolean", - "eventfd": "boolean", - "fontconfig": "boolean", "force-asserts": { "type": "boolean", "name": "force_asserts" }, "force-debug-info": { "type": "boolean", "name": "force_debug_info" }, "force-pkg-config": { "type": "void", "name": "pkg-config" }, "framework": "boolean", - "freetype": { "type": "enum", "values": [ "no", "qt", "system" ] }, - "gbm": "boolean", "gcc-sysroot": "boolean", "gcov": "boolean", - "gif": "boolean", - "glib": "boolean", "gnumake": { "type": "boolean", "name": "GNUmake" }, "gstreamer": { "type": "optionalString", "values": [ "no", "yes", "0.10", "1.0" ] }, - "gtk": { "type": "boolean", "name": "gtk3" }, "gui": "boolean", - "harfbuzz": { "type": "enum", "values": [ "no", "qt", "system" ] }, "headersclean": "boolean", "host-option": "string", - "ico": "boolean", - "iconv": { "type": "enum", "values": [ "no", "yes", "posix", "sun", "gnu" ] }, - "icu": "boolean", - "imf": { "type": "boolean", "name": "qqnx_imf" }, "incredibuild-xge": { "type": "boolean", "name": "incredibuild_xge" }, - "inotify": "boolean", - "journald": "boolean", - "lgmon": "boolean", - "libinput": "boolean", - "libjpeg": { "type": "enum", "values": [ "no", "qt", "system" ] }, - "libpng": { "type": "enum", "values": [ "no", "qt", "system" ] }, - "libproxy": "boolean", "libudev": "boolean", - "linuxfb": "boolean", "ltcg": "boolean", - "kms": "boolean", "make": { "type": "addString", "values": [ "examples", "libs", "tests", "tools" ] }, "make-tool": "string", "mips_dsp": "boolean", "mips_dspr2": "boolean", - "mirclient": "boolean", "mp": { "type": "boolean", "name": "msvc_mp" }, - "mtdev": "boolean", - "mysql_config": "string", "nomake": { "type": "addString", "values": [ "examples", "tests", "tools" ] }, - "opengl": { "type": "optionalString", "values": [ "no", "yes", "desktop", "es2", "dynamic" ] }, - "opengl-es-2": { "type": "void", "name": "opengl", "value": "es2" }, - "opengles3": "boolean", "opensource": { "type": "void", "name": "commercial", "value": "no" }, - "openssl": { "type": "optionalString", "values": [ "no", "yes", "linked", "runtime" ] }, - "openssl-linked": { "type": "void", "name": "openssl", "value": "linked" }, - "openssl-runtime": { "type": "void", "name": "openssl", "value": "runtime" }, "optimized-qmake": { "type": "boolean", "name": "release_tools" }, "optimized-tools": { "type": "boolean", "name": "release_tools" }, "pch": { "type": "boolean", "name": "precompile_header" }, - "pcre": { "type": "enum", "values": [ "qt", "system" ] }, "pkg-config": "boolean", "platform": "string", "plugin-manifests": "boolean", - "pps": { "type": "boolean", "name": "qqnx_pps" }, - "posix-ipc": { "type": "boolean", "name": "ipc_posix" }, "profile": "boolean", - "psql_config": "string", "pulseaudio": "boolean", "qml-debug": "boolean", - "qpa": { "type": "string", "name": "qpa_default_platform" }, - "qpa-platform-guard": "boolean", "qreal": "string", "qtlibinfix": { "type": "string", "name": "qt_libinfix" }, "qtnamespace": { "type": "string", "name": "qt_namespace" }, @@ -156,70 +112,28 @@ "rpath": "boolean", "rtti": "boolean", "sanitize": "sanitize", - "sctp": "boolean", "sdk": "string", - "securetransport": "boolean", "separate-debug-info": { "type": "boolean", "name": "separate_debug_info" }, "shared": "boolean", "silent": "void", - "slog2": "boolean", - "sm": { "type": "boolean", "name": "sessionmanager" }, - "sql-db2": "boolean", - "sql-ibase": "boolean", - "sql-mysql": "boolean", - "sql-oci": "boolean", - "sql-odbc": "boolean", - "sql-psql": "boolean", - "sql-sqlite": "boolean", - "sql-sqlite2": "boolean", - "sql-tds": "boolean", - "plugin-sql-db2": { "type": "void", "name": "sql-db2" }, - "plugin-sql-ibase": { "type": "void", "name": "sql-ibase" }, - "plugin-sql-mysql": { "type": "void", "name": "sql-mysql" }, - "plugin-sql-oci": { "type": "void", "name": "sql-oci" }, - "plugin-sql-odbc": { "type": "void", "name": "sql-odbc" }, - "plugin-sql-psql": { "type": "void", "name": "sql-psql" }, - "plugin-sql-sqlite": { "type": "void", "name": "sql-sqlite" }, - "plugin-sql-sqlite2": { "type": "void", "name": "sql-sqlite2" }, - "plugin-sql-tds": { "type": "void", "name": "sql-tds" }, "qdbus": { "type": "boolean", "name": "dbus" }, - "sqlite": { "type": "enum", "name": "system-sqlite", "values": { "qt": "no", "system": "yes" } }, "sse2": "boolean", "sse3": "boolean", "sse4.1": { "type": "boolean", "name": "sse4_1" }, "sse4.2": { "type": "boolean", "name": "sse4_2" }, - "ssl": "boolean", "ssse3": "boolean", "static": { "type": "enum", "name": "shared", "values": { "yes": "no", "no": "yes" } }, "static-runtime": { "type": "boolean", "name": "static_runtime" }, "strip": "boolean", - "style-windows": "boolean", - "style-windowsxp": "boolean", - "style-windowsvista": "boolean", - "style-fusion": "boolean", - "style-mac": "boolean", - "style-android": "boolean", "syncqt": "boolean", - "syslog": "boolean", "sysroot": "string", - "system-proxies": "boolean", "testcocoon": "boolean", - "tslib": "boolean", "use-gold-linker": { "type": "boolean", "name": "use_gold_linker" }, "warnings-are-errors": { "type": "boolean", "name": "warnings_are_errors" }, "Werror": { "type": "boolean", "name": "warnings_are_errors" }, "widgets": "boolean", "wmf-backend": "boolean", - "xcb": { "type": "enum", "values": [ "no", "yes", "qt", "system" ] }, - "xcb-xlib": "boolean", - "xinput2": "boolean", - "xkb": "boolean", - "xkb-config-root": "string", - "xkbcommon": { "type": "enum", "values": [ "no", "qt", "system" ] }, - "xkbcommon-evdev": "boolean", - "xkbcommon-x11": { "type": "enum", "name": "xkbcommon", "values": [ "no", "qt", "system" ] }, "xplatform": "string", - "xrender": "boolean", "zlib": { "type": "enum", "name": "system-zlib", "values": { "system": "yes", "qt": "no" } } }, "prefix": { @@ -234,35 +148,6 @@ }, "libraries": { - "libatomic": { - "description": "64 bit atomics in libatomic", - "test": "common/atomic64", - "sources": [ - "-latomic" - ] - }, - "libdl": { - "description": "dlopen() in libdl", - "export": "", - "test": "unix/dlopen", - "sources": [ - "-ldl" - ] - }, - "doubleconversion": { - "description": "DoubleConversion", - "test": "unix/doubleconversion", - "sources": [ - "-ldouble-conversion" - ] - }, - "pcre": { - "description": "PCRE", - "test": "unix/pcre", - "sources": [ - "-lpcre16" - ] - }, "zlib": { "description": "zlib", "test": "unix/zlib", @@ -271,106 +156,6 @@ { "libs": "-lz", "condition": "!config.msvc" } ] }, - "gnu_iconv": { - "description": "GNU libiconv", - "export": "iconv", - "test": "unix/gnu-libiconv", - "sources": [ - "-liconv" - ] - }, - "icu": { - "description": "ICU", - "export": "", - "test": "unix/icu", - "sources": [ - { - "builds": { - "debug": "-lsicuind -lsicuucd -lsicudtd", - "release": "-lsicuin -lsicuuc -lsicudt" - }, - "condition": "config.win32 && !features.shared" - }, - { "libs": "-licuin -licuuc -licudt", "condition": "config.win32 && features.shared" }, - { "libs": "-licui18n -licuuc -licudata", "condition": "!config.win32" } - ] - }, - "network": { - "export": "", - "sources": [ - { "type": "makeSpec", "spec": "NETWORK" } - ] - }, - "corewlan": { - "description": "CoreWLan", - "export": "", - "test": "mac/corewlan", - "sources": [ - "-framework CoreWLAN -framework Foundation" - ] - }, - "openssl": { - "description": "OpenSSL Libraries", - "export": "", - "sources": [ - { "type": "openssl" }, - { - "comment": "placeholder for OPENSSL_LIBS{,_{DEBUG,RELEASE}}", - "libs": "", - "builds": { - "debug": "", - "release": "" - }, - "condition": "config.win32 && !features.shared" - }, - { "libs": "-lssleay32 -llibeay32", "condition": "config.win32 && features.shared" }, - { "libs": "-lssl -lcrypto", "condition": "!config.win32" } - ] - }, - "libproxy": { - "description": "libproxy", - "test": "common/libproxy", - "sources": [ - "-lproxy" - ] - }, - "glib": { - "description": "GLib", - "test": "unix/glib", - "sources": [ - { "type": "pkgConfig", "args": "glib-2.0 gthread-2.0" } - ] - }, - "gtk3": { - "description": "GTK+", - "sources": [ - { "type": "pkgConfig", "args": "gtk+-3.0" } - ] - }, - "cups": { - "description": "CUPS", - "test": "unix/cups", - "sources": [ - "-lcups" - ] - }, - "libjpeg": { - "description": "libjpeg", - "test": "unix/libjpeg", - "sources": [ - { "libs": "-llibjpeg", "condition": "config.msvc" }, - { "libs": "-ljpeg", "condition": "!config.msvc" } - ] - }, - "libpng": { - "description": "libpng", - "test": "unix/libpng", - "sources": [ - { "type": "pkgConfig", "args": "libpng" }, - { "libs": "-llibpng", "condition": "config.msvc" }, - { "libs": "-lpng", "condition": "!config.msvc" } - ] - }, "alsa": { "description": "ALSA", "export": "", @@ -404,29 +189,6 @@ "args": "gstreamer-0.10 gstreamer-base-0.10 gstreamer-audio-0.10 gstreamer-video-0.10 gstreamer-pbutils-0.10" } ] }, - "freetype": { - "description": "FreeType", - "export": "", - "test": "unix/freetype", - "sources": [ - "-lfreetype" - ] - }, - "fontconfig": { - "description": "Fontconfig", - "test": "unix/fontconfig", - "sources": [ - { "type": "pkgConfig", "args": "fontconfig freetype2" }, - "-lfontconfig -lfreetype" - ] - }, - "harfbuzz": { - "description": "HarfBuzz", - "test": "unix/harfbuzz", - "sources": [ - "-lharfbuzz" - ] - }, "dbus": { "description": "D-Bus >= 1.2", "test": "unix/dbus", @@ -451,28 +213,6 @@ { "libs": "", "comment": "placeholder for DBUS_HOST_PATH" } ] }, - "libinput": { - "description": "libinput", - "test": "unix/libinput", - "sources": [ - { "type": "pkgConfig", "args": "libinput" } - ] - }, - "mtdev": { - "description": "mtdev", - "export": "", - "test": "unix/mtdev", - "sources": [ - { "type": "pkgConfig", "args": "mtdev" } - ] - }, - "tslib": { - "description": "tslib", - "test": "unix/tslib", - "sources": [ - "-lts" - ] - }, "libudev": { "description": "udev", "test": "unix/libudev", @@ -480,284 +220,6 @@ { "type": "pkgConfig", "args": "libudev" }, "-ludev" ] - }, - "xkbcommon": { - "description": "xkbcommon", - "export": "xkbcommon_evdev", - "test": "unix/xkbcommon", - "sources": [ - { "type": "pkgConfig", "args": "xkbcommon" } - ] - }, - "xkbcommon_x11": { - "description": "xkbcommon-x11 >= 0.4.1", - "export": "xkbcommon", - "sources": [ - { "type": "pkgConfig", "args": "xkbcommon xkbcommon-x11 >= 0.4.1" } - ] - }, - "xinput2": { - "description": "Xinput2", - "test": "x11/xinput2", - "sources": [ - { "type": "pkgConfig", "args": "xi" }, - "-lXi" - ] - }, - "xrender": { - "description": "XRender", - "test": "x11/xrender", - "sources": [ - "-lXrender" - ] - }, - "xcb": { - "description": "XCB >= 1.5 (core)", - "test": "qpa/xcb", - "sources": [ - { "type": "pkgConfig", "args": "xcb >= 1.5" }, - "-lxcb" - ] - }, - "xcb_syslibs": { - "description": "XCB (secondary)", - "test": "qpa/xcb-syslibs", - "sources": [ - { "type": "pkgConfig", - "args": "xcb xcb-shm xcb-sync xcb-xfixes xcb-randr xcb-image xcb-keysyms xcb-icccm xcb-shape" }, - "-lxcb -lxcb-shm -lxcb-sync -lxcb-xfixes -lxcb-randr -lxcb-image -lxcb-keysyms -lxcb-icccm -lxcb-shape" - ] - }, - "xcb_xlib": { - "description": "XCB Xlib", - "test": "qpa/xcb-xlib", - "sources": [ - { "type": "pkgConfig", "args": "X11-xcb x11 xcb" }, - "-lxcb -lX11 -lX11-xcb" - ] - }, - "xcb_xkb": { - "description": "XCB XKB >= 1.10", - "test": "qpa/xcb-xkb", - "sources": [ - { "type": "pkgConfig", "args": "xcb-xkb >= 1.10 xcb" }, - "-lxcb-xkb -lxcb" - ] - }, - "xcb_render": { - "description": "XCB XRender", - "test": "qpa/xcb-render", - "sources": [ - { "type": "pkgConfig", "args": "xcb-renderutil xcb-render xcb" }, - "-lxcb-render-util -lxcb-render -lxcb" - ] - }, - "xcb_glx": { - "description": "XCB GLX", - "test": "qpa/xcb-glx", - "sources": [ - { "type": "pkgConfig", "args": "xcb-glx xcb" }, - "-lxcb-glx -lxcb" - ] - }, - "x11sm": { - "description": "X11 session management", - "sources": [ - { "type": "pkgConfig", "args": "sm ice" } - ] - }, - "opengl": { - "description": "Desktop OpenGL", - "test": "unix/opengldesktop", - "sources": [ - { "type": "pkgConfig", "args": "gl" }, - { "type": "makeSpec", "spec": "OPENGL" } - ] - }, - "opengl_es2": { - "description": "OpenGL ES 2.0", - "test": "unix/opengles2", - "sources": [ - { "type": "pkgConfig", "args": "glesv2" }, - { "type": "makeSpec", "spec": "OPENGL_ES2" } - ] - }, - "egl": { - "description": "EGL", - "test": "qpa/egl", - "sources": [ - { "type": "pkgConfig", "args": "egl" }, - { "type": "makeSpec", "spec": "EGL" } - ] - }, - "bcm_host": { - "export": "", - "sources": [ - "-lbcm_host" - ] - }, - "gbm": { - "description": "GBM", - "test": "qpa/gbm", - "sources": [ - { "type": "pkgConfig", "args": "gbm" } - ] - }, - "drm": { - "description": "KMS", - "test": "qpa/kms", - "sources": [ - { "type": "pkgConfig", "args": "libdrm" }, - "-ldrm" - ] - }, - "wayland_server": { - "description": "Wayland Server", - "export": "", - "test": "qpa/wayland-server", - "sources": [ - { "type": "pkgConfig", "args": "wayland-server" } - ] - }, - "directfb": { - "description": "DirectFB", - "test": "qpa/directfb", - "sources": [ - { "type": "pkgConfig", "args": "directfb" } - ] - }, - "mirclient": { - "description": "Mir client libraries", - "export": "", - "test": "qpa/mirclient", - "sources": [ - { "type": "pkgConfig", "args": "egl mirclient ubuntu-platform-api" } - ] - }, - "directwrite": { - "description": "DirectWrite", - "export": "", - "test": "win/directwrite", - "sources": [ - "-ldwrite" - ] - }, - "journald": { - "description": "journald", - "test": "unix/journald", - "export": "", - "sources": [ - { "type": "pkgConfig", "args": "libsystemd" }, - { "type": "pkgConfig", "args": "libsystemd-journal" } - ] - }, - "slog2": { - "description": "slog2", - "test": "unix/slog2", - "export": "", - "sources": [ - "-lslog2" - ] - }, - "imf": { - "description": "IMF", - "export": "", - "test": "unix/qqnx_imf", - "sources": [ - "-linput_client" - ] - }, - "pps": { - "description": "PPS", - "test": "unix/pps", - "sources": [ - "-lpps" - ] - }, - "lgmon": { - "description": "lgmon", - "test": "unix/lgmon", - "sources": [ - "-llgmon" - ] - }, - "db2": { - "description": "DB2 (IBM)", - "test": "unix/db2", - "sources": [ - { "libs": "-ldb2cli", "condition": "config.win32" }, - { "libs": "-ldb2", "condition": "!config.win32" } - ] - }, - "ibase": { - "description": "InterBase", - "test": "unix/ibase", - "sources": [ - { "libs": "-lgds32_ms", "condition": "config.win32" }, - { "libs": "-lgds", "condition": "!config.win32" } - ] - }, - "mysql": { - "description": "MySQL", - "test": "unix/mysql", - "sources": [ - { "type": "mysqlConfig", "query": "--libs_r" }, - { "type": "mysqlConfig", "query": "--libs" }, - { "libs": "-lmysqlclient_r", "condition": "!config.win32" }, - { "libs": "-llibmysql", "condition": "config.win32" }, - { "libs": "-lmysqlclient", "condition": "!config.win32" } - ] - }, - "psql": { - "description": "PostgreSQL", - "test": "unix/psql", - "sources": [ - { "type": "psqlConfig" }, - { "type": "psqlEnv", "libs": "-llibpq -lws2_32 -ladvapi32", "condition": "config.win32" }, - { "type": "psqlEnv", "libs": "-lpq", "condition": "!config.win32" } - ] - }, - "tds": { - "description": "TDS (Sybase)", - "test": "unix/tds", - "sources": [ - { "type": "sybaseEnv", "libs": "-lNTWDBLIB", "condition": "config.win32" }, - { "type": "sybaseEnv", "libs": "-lsybdb", "condition": "!config.win32" } - ] - }, - "oci": { - "description": "OCI (Oracle)", - "test": "unix/oci", - "sources": [ - { "libs": "-loci", "condition": "config.win32" }, - { "libs": "-lclntsh", "condition": "!config.win32" } - ] - }, - "odbc": { - "description": "ODBC", - "test": "unix/odbc", - "sources": [ - { "libs": "-lodbc32", "condition": "config.win32" }, - { "libs": "-liodbc", "condition": "config.darwin" }, - { "libs": "-lodbc", "condition": "!config.win32 && !config.darwin" } - ] - }, - "sqlite2": { - "description": "SQLite (version 2)", - "test": "unix/sqlite2", - "sources": [ - "-lsqlite" - ] - }, - "sqlite3": { - "description": "SQLite (version 3)", - "export": "sqlite", - "test": "unix/sqlite", - "sources": [ - { "type": "pkgConfig", "args": "sqlite3" }, - { "libs": "-lsqlite3", "condition": "config.win32" }, - { "libs": "-lsqlite3 -lz", "condition": "!config.win32" } - ] } }, @@ -768,14 +230,11 @@ "detectPkgConfig": [ "cross_compile" ], "library": [ "pkg-config" ], "getPkgConfigVariable": [ "pkg-config" ], - "neon": [ "architecture" ], - "directX": [ "architecture", "sse2" ] + "neon": [ "architecture" ] }, "testTypeAliases": { - "compile": [ "library", "architecture" ], - "files": [ "directX" ], - "getPkgConfigVariable": [ "xkbConfigRoot" ] + "compile": [ "library", "architecture" ] }, "tests": { @@ -859,26 +318,11 @@ "build_parts": { "type": "buildParts" }, - "dlopen": { - "description": "dlopen() in libc", - "type": "compile", - "test": "unix/dlopen" - }, "separate_debug_info": { "description": "separate debug information support", "type": "compile", "test": "unix/objcopy" }, - "atomic64": { - "description": "64 bit atomics", - "type": "compile", - "test": "common/atomic64" - }, - "atomicfptr": { - "description": "working std::atomic for function pointers", - "type": "compile", - "test": "common/atomicfptr" - }, "sse2": { "description": "SSE2 instructions", "type": "compile", @@ -987,264 +431,51 @@ "type": "neon" }, - "clock-gettime": { - "description": "clock_gettime()", - "type": "compile", - "test": "unix/clock-gettime" - }, - "clock-monotonic": { - "description": "POSIX monotonic clock", - "type": "compile", - "test": "unix/clock-monotonic" - }, - "evdev": { - "description": "evdev", - "type": "compile", - "test": "unix/evdev" - }, - "eventfd": { - "description": "eventfd", - "type": "compile", - "test": "unix/eventfd" - }, - "getaddrinfo": { - "description": "getaddrinfo()", - "type": "compile", - "test": "unix/getaddrinfo", - "use": "network" - }, - "getifaddrs": { - "description": "getifaddrs()", - "type": "compile", - "test": "unix/getifaddrs", - "use": "network" - }, - "inotify": { - "description": "inotify", - "type": "compile", - "test": "unix/inotify" - }, - "ipv6ifname": { - "description": "IPv6 ifname", - "type": "compile", - "test": "unix/ipv6ifname", - "use": "network" - }, - "linuxfb": { - "description": "LinuxFB", - "type": "compile", - "test": "qpa/linuxfb" - }, "mremap": { "description": "mremap()", "type": "compile", "test": "unix/mremap" }, - "journald": { - "description": "journald", - "type": "compile", - "test": "unix/journald" - }, "posix_fallocate": { "description": "POSIX fallocate()", "type": "compile", "test": "unix/posix_fallocate" }, - "syslog": { - "description": "syslog", - "type": "compile", - "test": "unix/syslog" - }, "stack_protector": { "description": "stack protection", "type": "compilerSupportsFlag", "test": "-fstack-protector-strong" }, - "ipc_sysv": { - "description": "SysV IPC", - "type": "compile", - "test": "unix/ipc_sysv" - }, - "ipc_posix": { - "description": "POSIX IPC", - "type": "compile", - "test": "unix/ipc_posix" + "incredibuild_xge": { + "description": "IncrediBuild", + "type": "files", + "files": [ "BuildConsole.exe", "xgConsole.exe" ] }, - "ppoll": { - "description": "ppoll()", - "type": "compile", - "test": "unix/ppoll" + "wmf": { + "description": "WMF", + "type": "files", + "files": [ "mfapi.h", "mf.lib" ] + } + }, + + "features": { + "shared": { + "description": "Building shared libraries", + "condition": "!config.uikit && !config.integrity", + "output": [ + "shared", + "publicFeature", + "publicQtConfig", + "publicConfig" + ] }, - "pollts": { - "description": "pollts()", - "type": "compile", - "test": "unix/pollts" - }, - "poll": { - "description": "poll()", - "type": "compile", - "test": "unix/poll" - }, - "cloexec": { - "description": "O_CLOEXEC", - "type": "compile", - "test": "unix/cloexec" - }, - "openssl": { - "description": "OpenSSL", - "type": "compile", - "test": "unix/openssl" - }, - "sctp": { - "description": "SCTP support", - "type": "compile", - "test": "unix/sctp", - "use": "network" - }, - "posix-iconv": { - "description": "POSIX iconv", - "type": "compile", - "test": "unix/iconv" - }, - "sun-iconv": { - "description": "SUN libiconv", - "type": "compile", - "test": "unix/sun-libiconv" - }, - "egl-x11": { - "description": "EGL on X11", - "type": "compile", - "test": "qpa/egl-x11", - "use": "egl xcb_xlib" - }, - "egl-brcm": { - "description": "Broadcom EGL (Rasberry Pi)", - "type": "compile", - "test": "qpa/eglfs-brcm", - "use": "egl bcm_host" - }, - "egl-egldevice": { - "description": "EGLDevice", - "type": "compile", - "test": "qpa/eglfs-egldevice", - "use": "egl" - }, - "egl-mali": { - "description": "Mali EGL", - "type": "compile", - "test": "qpa/eglfs-mali", - "use": "egl" - }, - "egl-mali-2": { - "description": "Mali 2 EGL", - "type": "compile", - "test": "qpa/eglfs-mali-2", - "use": "egl" - }, - "egl-viv": { - "description": "i.Mx6 EGL", - "type": "compile", - "test": "qpa/eglfs-viv", - "use": "egl" - }, - "xlocalescanprint": { - "description": "xlocale.h (or equivalents)", - "type": "compile", - "test": "common/xlocalescanprint" - }, - "xlib": { - "description": "XLib", - "type": "compile", - "test": "x11/xlib" - }, - "x11prefix": { - "description": "X11 prefix", - "type": "getPkgConfigVariable", - "pkg-config-args": "x11", - "pkg-config-variable": "prefix", - "value": "/usr", - "log": "value" - }, - "xkbconfigroot": { - "description": "XKB config root", - "type": "xkbConfigRoot", - "pkg-config-args": "xkeyboard-config", - "pkg-config-variable": "xkb_base", - "log": "value" - }, - "directx": { - "description": "DirectX SDK", - "type": "directX", - "files": [ - "d3dcompiler.h", - "d3d11.lib", - "fxc.exe" - ] - }, - "opengles3": { - "description": "OpenGL ES 3.0", - "type": "compile", - "test": "unix/opengles3", - "use": "opengl_es2" - }, - "opengles31": { - "description": "OpenGL ES 3.1", - "type": "compile", - "test": "unix/opengles31", - "use": "opengl_es2" - }, - "directwrite2": { - "description": "DirectWrite 2", - "type": "compile", - "test": "win/directwrite2", - "use": "directwrite" - }, - "uxtheme": { - "description": "uxtheme.h", - "type": "files", - "files": [ "uxtheme.h" ] - }, - "direct2d": { - "description": "Direct 2D", - "type": "compile", - "test": "qpa/direct2d", - "use": "direct2d" - }, - "incredibuild_xge": { - "description": "IncrediBuild", - "type": "files", - "files": [ "BuildConsole.exe", "xgConsole.exe" ] - }, - "wmf": { - "description": "WMF", - "type": "files", - "files": [ "mfapi.h", "mf.lib" ] - }, - "qpa_default_platform": { - "description": "default QPA platform", - "type": "qpaDefaultPlatform", - "log": "value" - } - }, - - "features": { - "shared": { - "description": "Building shared libraries", - "condition": "!config.uikit && !config.integrity", - "output": [ - "shared", - "publicFeature", - "publicQtConfig", - "publicConfig" - ] - }, - "static": { - "condition": "!features.shared", - "output": [ - "publicFeature", - "publicQtConfig", - "publicConfig" - ] + "static": { + "condition": "!features.shared", + "output": [ + "publicFeature", + "publicQtConfig", + "publicConfig" + ] }, "cross_compile": { "description": "Cross compiling", @@ -1290,7 +521,6 @@ "description": "Have valid makespec", "condition": "tests.verifyspec" }, - "developer-build": { "description": "Developer build", "autoDetect": false, @@ -1514,31 +744,12 @@ { "type": "define", "name": "QT_REDUCE_RELOCATIONS" } ] }, - "dlopen": { - "description": "dlopen()", - "condition": "tests.dlopen || libs.libdl", - "output": [ { "type": "define", "negative": true, "name": "QT_NO_DYNAMIC_LIBRARY" } ] - }, - "libdl": { - "description": "dlopen() in libdl", - "condition": "!tests.dlopen && libs.libdl", - "output": [ { "type": "privateConfig", "negative": true } ] - }, - "std-atomic64": { - "description": "64 bit atomic operations", - "condition": "tests.atomic64 || libs.libatomic", - "output": [ { "type": "define", "negative": true, "name": "QT_NO_STD_ATOMIC64" } ] - }, - "libatomic": { - "description": "64 bit atomic operations in libatomic", - "condition": "!tests.atomic64 && libs.libatomic", - "output": [ "privateFeature" ] - }, "sse2": { "description": "SSE2", "condition": "(arch.i386 || arch.x86_64) && tests.sse2", "output": [ "privateConfig", + "privateFeature", { "type": "define", "name": "QT_COMPILER_SUPPORTS_SSE2", "value": 1 } ] }, @@ -1686,390 +897,40 @@ { "type": "define", "name": "QT_COMPILER_SUPPORTS_NEON", "value": 1 } ] }, - "clock-gettime": { - "description": "clock_gettime()", - "condition": "tests.clock-gettime", - "output": [ "privateFeature" ] - }, - "clock-monotonic": { - "description": "POSIX monotonic clock", - "condition": "features.clock-gettime && tests.clock-monotonic", - "output": [ "feature" ] - }, "alsa": { "description": "ALSA", "condition": "libs.alsa", "output": [ "feature" ] }, - "evdev": { - "description": "evdev", - "condition": "tests.evdev", - "output": [ "privateFeature" ] - }, - "eventfd": { - "description": "eventfd", - "condition": "tests.eventfd", - "output": [ "feature" ] - }, - "gbm": { - "description": "GBM", - "condition": "libs.gbm", - "output": [ "publicQtConfig" ] - }, - "getaddrinfo": { - "description": "getaddrinfo()", - "condition": "tests.getaddrinfo", - "output": [ "feature" ] - }, - "getifaddrs": { - "description": "getifaddrs()", - "condition": "tests.getifaddrs", - "output": [ "feature" ] - }, - "inotify": { - "description": "inotify", - "condition": "tests.inotify", - "output": [ "privateFeature", "feature" ] - }, - "ipv6ifname": { - "description": "IPv6 ifname", - "condition": "tests.ipv6ifname", - "output": [ "feature" ] - }, - "libproxy": { - "description": "libproxy", - "autoDetect": false, - "condition": "libs.libproxy", - "output": [ "privateFeature" ] - }, - "linuxfb": { - "description": "LinuxFB", - "condition": "tests.linuxfb", - "output": [ "privateFeature" ] - }, - "directfb": { - "description": "DirectFB", - "autoDetect": false, - "condition": "libs.directfb", - "output": [ "privateFeature" ] - }, - "integrityfb": { - "description": "INTEGRITY framebuffer", - "condition": "config.integrity", - "output": [ "privateFeature" ] - }, - "kms": { - "description": "KMS", - "condition": "libs.drm", - "output": [ "publicQtConfig" ] - }, - "mirclient": { - "description": "Mir client", - "condition": "libs.mirclient", - "output": [ "privateFeature" ] - }, "mremap": { "description": "mremap()", "condition": "tests.mremap", "output": [ "feature" ] }, - "mtdev": { - "description": "mtdev", - "condition": "libs.mtdev", - "output": [ "privateFeature" ] - }, - "journald": { - "description": "journald", - "autoDetect": false, - "condition": "libs.journald", - "output": [ "privateConfig" ] - }, "posix_fallocate": { "description": "POSIX fallocate()", "condition": "tests.posix_fallocate", "output": [ "privateFeature" ] }, - "syslog": { - "description": "syslog", - "autoDetect": false, - "condition": "tests.syslog", - "output": [ "privateConfig" ] - }, "stack-protector-strong": { "description": "stack protection", "condition": "config.qnx && tests.stack_protector", "output": [ "publicQtConfig" ] }, - "slog2": { - "description": "slog2", - "condition": "libs.slog2", - "emitIf": "config.qnx", - "output": [ "privateConfig" ] - }, - "qqnx_imf": { - "description": "IMF", - "emitIf": "config.qnx", - "condition": "libs.imf", - "output": [ "privateConfig" ] - }, - "qqnx_pps": { - "description": "PPS", - "emitIf": "config.qnx", - "condition": "libs.pps", - "output": [ "privateConfig" ] - }, - "lgmon": { - "description": "lgmon", - "emitIf": "config.qnx", - "condition": "libs.lgmon", - "output": [ "privateConfig" ] - }, - "poll_ppoll": { - "description": "Native ppoll()", - "emitIf": "!config.win32", - "condition": "tests.ppoll", - "output": [ "privateFeature" ] - }, - "poll_pollts": { - "description": "Native pollts()", - "emitIf": "!config.win32", - "condition": "!features.poll_ppoll && tests.pollts", - "output": [ "privateFeature" ] - }, - "poll_poll": { - "description": "Native poll()", - "emitIf": "!config.win32", - "condition": "!features.poll_ppoll && !features.poll_pollts && tests.poll", - "output": [ "privateFeature" ] - }, - "poll_select": { - "description": "Emulated poll()", - "emitIf": "!config.win32", - "condition": "!features.poll_ppoll && !features.poll_pollts && !features.poll_poll", - "output": [ - "privateFeature", - { "type": "define", "name": "QT_NO_NATIVE_POLL" } - ] - }, - "ipc_posix": { - "description": "Using POSIX IPC", - "autoDetect": "!config.win32", - "condition": "!tests.ipc_sysv && tests.ipc_posix", - "output": [ { "type": "define", "name": "QT_POSIX_IPC" } ] - }, - "systemsemaphore": { - "description": "Enable QSystemSemaphore", - "condition": "config.android || config.win32 || tests.ipc_sysv || tests.ipc_posix", - "output": [ { "type": "define", "negative": true, "name": "QT_NO_SYSTEMSEMAPHORE" } ] - }, - "sharedmemory": { - "description": "Enable QSharedMemory", - "condition": "config.android || config.win32 || tests.ipc_sysv || tests.ipc_posix", - "output": [ { "type": "define", "negative": true, "name": "QT_NO_SHAREDMEMORY" } ] - }, - "threadsafe-cloexec": { - "description": "Threadsafe pipe creation", - "condition": "tests.cloexec", - "output": [ - "publicQtConfig", - { "type": "define", "name": "QT_THREADSAFE_CLOEXEC", "value": 1 } - ] - }, - "tslib": { - "description": "tslib", - "condition": "libs.tslib", - "output": [ "privateFeature" ] - }, - "corewlan": { - "description": "CoreWLan", - "condition": "libs.corewlan", - "emitIf": "config.darwin", - "output": [ "feature", "privateFeature" ] - }, - "securetransport": { - "description": "SecureTransport", - "disable": "input.securetransport == 'no' || input.ssl == 'no'", - "condition": "config.darwin && (input.openssl == '' || input.openssl == 'no')", - "output": [ - "privateFeature", - { "type": "define", "name": "QT_SECURETRANSPORT" } - ] - }, - "openssl": { - "description": "OpenSSL", - "enable": "input.openssl == 'yes' || input.openssl == 'linked' || input.openssl == 'runtime'", - "disable": "input.openssl == 'no' || input.ssl == 'no'", - "autoDetect": "!config.winrt", - "condition": "!features.securetransport && tests.openssl", - "output": [ - "privateFeature", - { "type": "publicQtConfig", "condition": "!features.openssl-linked" }, - { "type": "define", "negative": true, "name": "QT_NO_OPENSSL" } - ] - }, - "openssl-linked": { - "description": " Qt directly linked to OpenSSL", - "enable": "input.openssl == 'linked'", - "disable": "input.openssl != 'linked'", - "condition": "features.openssl && libs.openssl", - "output": [ - "privateFeature", - { "type": "varAssign", "name": "OPENSSL_LIBS", "value": "libs.openssl.libs", "eval": "true" }, - { "type": "varAssign", "name": "OPENSSL_LIBS_DEBUG", "value": "libs.openssl.builds.debug.libs", - "eval": "true", "condition": "config.win32" }, - { "type": "varAssign", "name": "OPENSSL_LIBS_RELEASE", "value": "libs.openssl.builds.release.libs", - "eval": "true", "condition": "config.win32" }, - { "type": "define", "name": "QT_LINKED_OPENSSL" } - ] - }, - "ssl": { - "description": "SSL", - "condition": "config.winrt || features.securetransport || features.openssl", - "output": [ "publicFeature", "feature" ] - }, - "sctp": { - "description": "SCTP", - "autoDetect": false, - "condition": "tests.sctp", - "output": [ "publicFeature", "feature" ] - }, "accessibility": { "description": "Accessibility", "output": [ "publicFeature", "feature" ] }, - "accessibility-atspi-bridge": { - "description": "ATSPI Bridge", - "condition": "features.accessibility && features.xcb && features.dbus", - "output": [ "privateFeature", "feature" ] - }, - "glib": { - "description": "GLib", - "autoDetect": "!config.win32", - "condition": "libs.glib", - "output": [ "privateFeature", "feature" ] - }, - "gtk3": { - "description": "GTK+", - "autoDetect": "!config.darwin", - "condition": "features.glib && libs.gtk3", - "output": [ "privateFeature" ] - }, - "icu": { - "description": "ICU", - "autoDetect": "!config.win32", - "condition": "libs.icu", - "output": [ "privateFeature" ] - }, "pulseaudio": { "description": "PulseAudio", "condition": "libs.pulseaudio", "output": [ "feature" ] }, - "cups": { - "description": "CUPS", - "condition": "libs.cups", - "output": [ "privateFeature", "feature" ] - }, - "jpeg": { - "description": "JPEG", - "disable": "input.libjpeg == 'no'", - "output": [ - "privateFeature", - { "type": "define", "negative": true, "name": "QT_NO_IMAGEFORMAT_JPEG" } - ] - }, - "system-jpeg": { - "description": " Using system libjpeg", - "disable": "input.libjpeg == 'qt'", - "enable": "input.libjpeg == 'system'", - "condition": "features.jpeg && libs.libjpeg", - "output": [ "privateFeature" ] - }, - "gif": { - "description": "GIF", - "output": [ - "privateFeature", - { "type": "define", "negative": true, "name": "QT_NO_IMAGEFORMAT_GIF" } - ] - }, - "png": { - "description": "PNG", - "disable": "input.libpng == 'no'", - "output": [ - "privateFeature", - { "type": "define", "negative": true, "name": "QT_NO_IMAGEFORMAT_PNG" } - ] - }, - "system-png": { - "description": " Using system libpng", - "disable": "input.libpng == 'qt'", - "enable": "input.libpng == 'system'", - "condition": "features.png && libs.libpng", - "output": [ "privateFeature" ] - }, - "ico": { - "description": "ICO", - "output": [ "privateFeature", "feature" ] - }, "system-zlib": { "description": "Using system zlib", "condition": "libs.zlib", "output": [ "privateFeature" ] }, - "iconv": { - "description": "iconv", - "condition": "features.posix-libiconv || features.sun-libiconv || features.gnu-libiconv", - "output": [ "privateFeature", "feature" ] - }, - "posix-libiconv": { - "description": "POSIX iconv", - "enable": "input.iconv == 'posix'", - "disable": "input.iconv == 'sun' || input.iconv == 'gnu' || input.iconv == 'no'", - "condition": "!config.win32 && !config.qnx && !config.android && !config.darwin && tests.posix-iconv" - }, - "sun-libiconv": { - "description": "SUN iconv", - "enable": "input.iconv == 'sun'", - "disable": "input.iconv == 'posix' || input.iconv == 'gnu' || input.iconv == 'no'", - "condition": "!config.win32 && !config.qnx && !config.android && !config.darwin && !features.posix-libiconv && tests.sun-iconv", - "output": [ "privateFeature", "publicQtConfig" ] - }, - "gnu-libiconv": { - "description": "GNU iconv", - "enable": "input.iconv == 'gnu'", - "disable": "input.iconv == 'posix' || input.iconv == 'sun' || input.iconv == 'no'", - "condition": "!config.win32 && !config.qnx && !config.android && !config.darwin && !features.posix-libiconv && !features.sun-libiconv && libs.gnu_iconv", - "output": [ "privateFeature" ] - }, - "freetype": { - "description": "FreeType", - "output": [ "privateFeature", "feature" ] - }, - "system-freetype": { - "description": " Using system FreeType", - "enable": "input.freetype == 'system'", - "disable": "input.freetype == 'qt'", - "autoDetect": "!config.win32", - "condition": "features.freetype && libs.freetype", - "output": [ "privateFeature" ] - }, - "fontconfig": { - "description": "Fontconfig", - "condition": "!config.win32 && !config.darwin && features.system-freetype && libs.fontconfig", - "output": [ "privateFeature", "feature" ] - }, - "harfbuzz": { - "description": "HarfBuzz", - "output": [ "privateFeature", "feature" ] - }, - "system-harfbuzz": { - "description": " Using system HarfBuzz", - "enable": "input.harfbuzz == 'system'", - "disable": "input.harfbuzz == 'qt'", - "autoDetect": "!config.darwin && !config.win32", - "condition": "features.harfbuzz && libs.harfbuzz", - "output": [ "privateFeature" ] - }, "concurrent": { "description": "Qt Concurrent", "output": [ "publicFeature", "feature" ] @@ -2115,108 +976,11 @@ { "type": "publicQtConfig", "negative": true } ] }, - "system-proxies": { - "description": "Use system proxies", - "output": [ "privateFeature" ] - }, - "egl": { - "description": "EGL", - "condition": "features.opengl && (features.angle || libs.egl)", - "output": [ "privateFeature", "feature" ] - }, - "egl_x11": { - "description": "EGL on X11", - "condition": "features.egl && tests.egl-x11", - "output": [ "privateFeature" ] - }, - "eglfs": { - "description": "EGLFS", - "autoDetect": "!config.android && !config.win32", - "condition": "features.egl", - "output": [ "privateFeature" ] - }, - "eglfs_brcm": { - "description": "EGLFS Rasberry Pi", - "condition": "features.eglfs && tests.egl-brcm", - "output": [ "privateFeature" ] - }, - "eglfs_egldevice": { - "description": "EGLFS EGLDevice", - "condition": "features.eglfs && tests.egl-egldevice && features.kms", - "output": [ "privateFeature" ] - }, - "eglfs_gbm": { - "description": "EGLFS GBM", - "condition": "features.eglfs && features.gbm && features.kms", - "output": [ "privateFeature" ] - }, - "eglfs_mali": { - "description": "EGLFS Mali", - "condition": "features.eglfs && (tests.egl-mali || tests.egl-mali-2)", - "output": [ "privateFeature" ] - }, - "eglfs_viv": { - "description": "EGLFS i.Mx6", - "condition": "features.eglfs && tests.egl-viv", - "output": [ "privateFeature" ] - }, - "eglfs_viv_wl": { - "description": "EGLFS i.Mx6 Wayland", - "condition": "features.eglfs_viv && libs.wayland_server", - "output": [ "privateFeature" ] - }, "libudev": { "description": "udev", "condition": "libs.libudev", "output": [ "privateFeature" ] }, - "libinput": { - "description": "libinput", - "condition": "features.libudev && libs.libinput", - "output": [ "privateFeature" ] - }, - "xkbcommon-evdev": { - "description": "xkbcommon-evdev", - "condition": "libs.xkbcommon", - "output": [ "privateFeature" ] - }, - "xkbcommon-system": { - "description": "Using system-provided xkbcommon", - "emitIf": "features.xcb", - "enable": "input.xkbcommon == 'system'", - "disable": "input.xkbcommon == 'qt' || input.xkbcommon == 'no'", - "condition": "libs.xkbcommon_x11", - "output": [ "privateFeature" ] - }, - "xkb-config-root": { - "description": "XKB config root", - "emitIf": "features.xcb", - "condition": "features.xcb && !features.xkbcommon-system && tests.xkbconfigroot", - "output": [ { "type": "varAssign", "name": "QMAKE_XKB_CONFIG_ROOT", "value": "tests.xkbconfigroot.value"} ] - }, - "xinput2": { - "description": "Xinput2", - "condition": "libs.xinput2", - "output": [ "privateFeature" ] - }, - "doubleconversion": { - "description": "DoubleConversion", - "output": [ "privateFeature", "feature" ] - }, - "system-doubleconversion": { - "description": " Using system DoubleConversion", - "enable": "input.doubleconversion == 'system'", - "disable": "input.doubleconversion == 'qt'", - "condition": "features.doubleconversion && libs.doubleconversion", - "output": [ "privateFeature" ] - }, - "system-pcre": { - "description": "Using system PCRE", - "disable": "input.pcre == 'qt'", - "enable": "input.pcre == 'system'", - "condition": "libs.pcre", - "output": [ { "type": "privateConfig", "negative": true, "name": "pcre" } ] - }, "gstreamer-1_0": { "description": "GStreamer 1.0", "disable": "input.gstreamer == '0.10' || input.gstreamer == 'no'", @@ -2231,237 +995,10 @@ "condition": "!features.gstreamer-1_0 && libs.gstreamer_0_10", "output": [ { "type": "publicQtConfig", "name": "gstreamer-0.10" } ] }, - "xcb": { - "description": "XCB", - "autoDetect": "!config.darwin", - "condition": "libs.xcb", - "output": [ "privateFeature" ] - }, - "system-xcb": { - "description": "Using system provided XCB libraries", - "enable": "input.xcb == 'system' || input.xcb == 'yes'", - "disable": "input.xcb == 'qt' || input.xcb == 'no'", - "autoDetect": "!config.darwin", - "condition": "libs.xcb && libs.xcb_syslibs", - "output": [ "privateFeature" ] - }, - "xcb-render": { - "description": "XCB render", - "emitIf": "features.system-xcb", - "condition": "libs.xcb_render", - "output": [ "privateFeature" ] - }, - "xcb-glx": { - "description": "XCB GLX", - "emitIf": "features.xcb", - "condition": "libs.xcb_glx", - "output": [ "privateFeature" ] - }, - "xcb-xlib": { - "description": "XCB Xlib", - "emitIf": "features.xcb", - "condition": "libs.xcb_xlib", - "output": [ "privateFeature" ] - }, - "xcb-sm": { - "description": "xcb-sm", - "emitIf": "features.xcb", - "condition": "features.sessionmanager && libs.x11sm", - "output": [ "privateFeature" ] - }, - "xkb": { - "description": "XCB XKB", - "condition": "features.system-xcb && libs.xcb_xkb", - "output": [ "privateFeature" ] - }, - "xlib": { - "description": "XLib", - "condition": "tests.xlib", - "output": [ "privateFeature" ] - }, - "xrender": { - "description": "Xrender", - "condition": "libs.xrender", - "output": [ "privateFeature", "feature" ] - }, - "x11-prefix": { - "description": "X11 prefix", - "emitIf": "features.xcb", - "output": [ { "type": "varAssign", "name": "QMAKE_X11_PREFIX", "value": "tests.x11prefix.value" } ] - }, - "angle": { - "description": "ANGLE", - "autoDetect": "features.opengles2 || features.opengl-dynamic", - "condition": "config.win32 && tests.directx", - "output": [ - "publicFeature", - { "type": "define", "name": "QT_OPENGL_ES_2_ANGLE" } - ] - }, - "opengles2": { - "description": "OpenGL ES 2.0", - "enable": "input.opengl == 'es2'", - "disable": "input.opengl == 'desktop' || input.opengl == 'dynamic' || input.opengl == 'no'", - "condition": "config.win32 || (!config.watchos && !features.opengl-desktop && libs.opengl_es2)", - "output": [ - "publicFeature", - "publicQtConfig", - { "type": "define", "name": "QT_OPENGL_ES" }, - { "type": "define", "name": "QT_OPENGL_ES_2" } - ] - }, - "opengles3": { - "description": "OpenGL ES 3.0", - "condition": "features.opengles2 && !features.angle && tests.opengles3", - "output": [ - "publicFeature", - { "type": "define", "name": "QT_OPENGL_ES_3" } - ] - }, - "opengles31": { - "description": "OpenGL ES 3.1", - "condition": "features.opengles3 && tests.opengles31", - "output": [ - "publicFeature", - { "type": "define", "name": "QT_OPENGL_ES_3_1" } - ] - }, - "opengl-desktop": { - "description": "Desktop OpenGL", - "enable": "input.opengl == 'desktop'", - "disable": "input.opengl == 'es2' || input.opengl == 'dynamic' || input.opengl == 'no'", - "condition": "(config.win32 && !config.winrt && !features.opengles2 && (config.msvc || libs.opengl)) - || (!config.watchos && !config.win32 && libs.opengl)" - }, - "opengl-dynamic": { - "description": "Dynamic OpenGL", - "enable": "input.opengl == 'dynamic'", - "autoDetect": false, - "condition": "config.win32 && !config.winrt", - "output": [ - { "type": "publicFeature", "name": "dynamicgl" }, - { "type": "define", "name": "QT_OPENGL_DYNAMIC" } - ] - }, - "opengl": { - "description": "OpenGL", - "condition": "features.opengl-desktop || features.opengl-dynamic || features.opengles2", - "output": [ "publicFeature", "feature" ] - }, - "sql-db2": { - "description": "DB2 (IBM)", - "condition": "libs.db2", - "output": [ "publicFeature" ] - }, - "sql-ibase": { - "description": "InterBase", - "condition": "libs.ibase", - "output": [ "publicFeature" ] - }, - "sql-mysql": { - "description": "MySql", - "condition": "libs.mysql", - "output": [ "publicFeature" ] - }, - "use_libmysqlclient_r": { - "description": "MySql (threadsafe)", - "condition": "features.sql-mysql && (libs.mysql.source == 0 || libs.mysql.source == 2)", - "output": [ "privateConfig" ] - }, - "sql-oci": { - "description": "OCI (Oracle)", - "condition": "libs.oci", - "output": [ "publicFeature" ] - }, - "sql-odbc": { - "description": "ODBC", - "condition": "libs.odbc", - "output": [ "publicFeature" ] - }, - "sql-psql": { - "description": "PostgreSQL", - "condition": "libs.psql", - "output": [ "publicFeature" ] - }, - "sql-sqlite2": { - "description": "SQLite2", - "condition": "libs.sqlite2", - "output": [ "publicFeature" ] - }, - "sql-sqlite": { - "description": "SQLite", - "output": [ "publicFeature" ] - }, - "system-sqlite": { - "description": " Using system provided SQLite", - "autoDetect": false, - "condition": "features.sql-sqlite && libs.sqlite3", - "output": [ "publicQtConfig" ] - }, - "sql-tds": { - "description": "TDS (Sybase)", - "condition": "libs.tds", - "output": [ "publicFeature" ] - }, - "style-fusion": { - "description": "Fusion Style", - "output": [ "styles" ] - }, - "style-mac": { - "description": "Mac Style", - "condition": "config.osx", - "output": [ "styles" ] - }, - "style-windows": { - "description": "Windows Style", - "output": [ "styles" ] - }, - "style-windowsxp": { - "description": "Windows XP Style", - "condition": "features.style-windows && config.win32 && !config.winrt && tests.uxtheme", - "output": [ "styles" ] - }, - "style-windowsvista": { - "description": "Windows Vista Style", - "condition": "features.style-windowsxp", - "output": [ "styles" ] - }, - "style-android": { - "description": "Android Style", - "autoDetect": "config.android", - "output": [ "styles" ] - }, - "android-style-assets": { - "description": "Android Style Assets", - "condition": "features.style-android", - "output": [ "privateConfig" ] - }, "audio-backend": { "description": "Audio backend", "output": [ "publicQtConfig" ] }, - "directwrite": { - "description": "DirectWrite", - "emitIf": "config.win32", - "condition": "libs.directwrite", - "output": [ "privateFeature" ] - }, - "directwrite2": { - "description": "DirectWrite 2", - "emitIf": "config.win32", - "condition": "features.directwrite && tests.directwrite2", - "output": [ "privateFeature" ] - }, - "direct2d": { - "description": "Direct 2D", - "autoDetect": false, - "condition": "tests.direct2d", - "output": [ "privateFeature" ] - }, - "sessionmanager": { - "description": "Session Management", - "output": [ "feature" ] - }, "qml-debug": { "description": "QML debugging", "output": [ { "type": "publicQtConfig", "negative": true } ] @@ -2496,23 +1033,6 @@ "condition": "tests.wmf", "output": [ "publicQtConfig" ] }, - "qpa_default_platform": { - "description": "QPA default platform", - "condition": "features.gui", - "output": [ - { "type": "define", "name": "QT_QPA_DEFAULT_PLATFORM_NAME", "value": "tests.qpa_default_platform.name" }, - { "type": "varAssign", "public": true, "name": "QT_DEFAULT_QPA_PLUGIN", "value": "tests.qpa_default_platform.plugin", - "condition": "!features.shared" } - ] - }, - "mimetype": { - "description": "Mimetype handling", - "output": [ "publicFeature", "feature" ] - }, - "qeventtransition": { - "description": "QEventTransition class", - "output": [ "publicFeature" ] - }, "extra_features": { "comment": "### remove, once qfeatures.txt is ported to the new system", "output": [ "extraFeatures" ] @@ -2532,11 +1052,6 @@ Qt can be built in release mode with separate debug information, so "condition": "features.framework && features.debug && !features.debug_and_release", "message": "debug-only framework builds are not supported. Configure with -no-framework if you want a pure debug build." }, - { - "type": "error", - "condition": "input.xcb != '' && input.xcb != 'no' && input.xkbcommon == 'no'", - "message": "XCB plugin requires libxkbcommon. See -qt-xkbcommon-x11 and -system-xkbcommon-x11." - }, { "type": "error", "condition": "(features.rpath || features.rpath_dir) && !features.shared", @@ -2556,103 +1071,23 @@ Qt can be built in release mode with separate debug information, so "message": "Using static linking will disable the use of dynamically loaded plugins. Make sure to import all needed static plugins, or compile needed modules into the library." - }, - { - "type": "note", - "condition": "features.journald || features.syslog || (config.qnx && features.slog2)", - "message": "journald, syslog or slog2 integration is enabled. -If your users intend to develop applications against this build, -ensure that the IDEs they use either set QT_LOGGING_TO_CONSOLE to 1 -or are able to read the logged output from journald, syslog or slog2." }, { "type": "note", "condition": "features.release_tools && (!features.debug || features.debug_and_release)", "message": "-optimized-tools is not useful in -release mode." }, - { - "type": "warning", - "condition": "config.win32 && !config.msvc && features.sql-oci", - "message": "Qt does not support compiling the Oracle database driver with -MinGW, due to lack of such support from Oracle. Consider disabling the -Oracle driver, as the current build will most likely fail." - }, - { - "type": "warning", - "condition": "features.gui && config.linux && !features.xcb && !features.eglfs && !features.directfb && !features.linuxfb && !features.mirclient", - "message": "No QPA platform plugin enabled! This will -produce a Qt that cannot run GUI applications. -The dependencies needed for xcb to build are listed in -src/plugins/platforms/xcb/README" - }, { "type": "note", "condition": "input.qreal == 'double' && arch.arm", "message": "Qt is using double for qreal on this system. This is binary-incompatible against Qt 5.1. Configure with '-qreal float' to create a build that is binary-compatible with 5.1." }, - { - "type": "warning", - "condition": "features.xcb && !features.xkbcommon-system && !features.xkb-config-root", - "message": "Could not find XKB config root, use -xkb-config-root to set a path to -XKB configuration data. This is required for keyboard input support." - }, - { - "type": "note", - "condition": "features.openssl-linked && libs.openssl.source != 0 - && input.openssl.prefix == '' && input.openssl.libs == '' && input.openssl.libs.debug == ''", - "message": "When linking against OpenSSL, you can override the default -library names through OPENSSL_LIBS. -For example: - OPENSSL_LIBS='-L/opt/ssl/lib -lssl -lcrypto' ./configure -openssl-linked" - }, - { - "type": "warning", - "condition": "input.qpa-platform-guard != ''", - "message": "The [-no]-qpa-platform-guard argument is deprecated and has no effect." - }, { "type": "warning", "condition": "!features.accessibility", "message": "Accessibility disabled. This configuration of Qt is unsupported." }, - { - "type": "warning", - "condition": "config.win32 && (features.opengles2 || features.opengl-dynamic) && !features.angle", - "message": "Using OpenGL ES 2.0 on Windows without ANGLE. -The build will most likely fail. -Specify -opengl desktop to use regular OpenGL." - }, - { - "type": "note", - "condition": "features.accessibility && features.xcb && !features.accessibility-atspi-bridge", - "message": "Disabling Linux Accessibility Bridge: D-Bus is missing." - }, - { - "type": "warning", - "condition": "config.darwin && features.system-harfbuzz", - "message": "On OS X, AAT is supported only with -qt-harfbuzz." - }, - { - "type": "error", - "condition": "features.gui && !config.watchos && input.opengl != 'no' && !features.opengl-desktop && !features.opengles2 && !features.opengl-dynamic", - "message": "The OpenGL functionality tests failed! -You might need to modify the include and library search paths by editing QMAKE_INCDIR_OPENGL[_ES2], -QMAKE_LIBDIR_OPENGL[_ES2] and QMAKE_LIBS_OPENGL[_ES2] in the mkspec for your platform." - }, - { - "type": "error", - "condition": "input.doubleconversion == 'no' && !tests.xlocalescanprint", - "message": "Your C library does not provide sscanf_l or snprintf_l. -You need to use libdouble-conversion for double/string conversion." - }, - { - "type": "error", - "condition": "!tests.atomicfptr", - "message": "detected a std::atomic implementation that fails for function pointers. -Please apply the patch corresponding to your Standard Library vendor, found in - qtbase/config.tests/common/atomicfptr" - }, { "type": "error", "condition": "!features.stl", @@ -2747,128 +1182,12 @@ Please apply the patch corresponding to your Standard Library vendor, found in "entries": [ "accessibility", "alsa", - "cups", - { - "type": "feature", - "args": "directwrite", - "condition": "config.win32" - }, - "doubleconversion", - "system-doubleconversion", - "evdev", - "fontconfig", - "freetype", - "system-freetype", - "glib", "gstreamer-0_10", "gstreamer-1_0", - "gtk3", - "harfbuzz", - "system-harfbuzz", - "icu", - "iconv", - { - "section": "Image formats", - "entries": [ - "gif", "ico", "jpeg", "system-jpeg", "png", "system-png" - ] - }, - { - "section": "Logging backends", - "entries": [ - "journald", "syslog" - ] - }, - "libinput", - "mtdev", - { - "section": "Networking", - "entries": [ - { - "type": "feature", - "args": "corewlan", - "condition": "config.darwin" - }, - "getaddrinfo", "getifaddrs", "ipv6ifname", "libproxy", - { - "type": "feature", - "args": "securetransport", - "condition": "config.darwin" - }, - "openssl", - "openssl-linked", - "sctp", - "system-proxies" - ] - }, - { - "section": "OpenGL", - "entries": [ - { - "type": "feature", - "args": "angle", - "condition": "config.win32" - }, - "egl", - "opengl-desktop", - { - "type": "feature", - "args": "opengl-dynamic", - "condition": "config.win32" - }, - "opengles2", - "opengles3", - "opengles31" - ] - }, "pkg-config", - "system-pcre", "pulseaudio", "qml-debug", - { - "section": "QNX specific", - "condition": "config.qnx", - "entries": [ - "slog2", "qqnx_imf", "qqnx_pps", "lgmon" - ] - }, - { - "section": "QPA backends", - "entries": [ - "directfb", "eglfs", - { - "section": "EGLFS details", - "condition": "features.eglfs", - "entries": [ - "eglfs_viv", "eglfs_viv_wl", "eglfs_egldevice", "eglfs_gbm", "eglfs_mali", "eglfs_brcm", "egl_x11" - ] - }, - "linuxfb", "mirclient", - { - "message": "INTEGRITY framebuffer", - "condition": "config.integrity", - "args": "integrityfb" - } - ] - }, - "sessionmanager", - { - "section": "SQL drivers", - "entries": [ - "sql-db2", "sql-ibase", "sql-mysql", "sql-oci", "sql-odbc", "sql-psql", - "sql-sqlite2", "sql-sqlite", "system-sqlite", "sql-tds" - ] - }, - "tslib", "libudev", - { - "section": "X11", - "condition": "features.xcb", - "entries": [ - "system-xcb", "egl_x11", "xinput2", "xkb", "xlib", "xrender", "xcb-render", "xcb-glx", "xcb-xlib", "xkbcommon-system" - ] - }, - "xkbcommon-evdev", "system-zlib" ] } diff --git a/configure.pri b/configure.pri index 03f8323f0d..d68c7dcf7b 100644 --- a/configure.pri +++ b/configure.pri @@ -222,16 +222,6 @@ defineTest(qtConfTest_buildParts) { return(true) } -defineTest(qtConfLibrary_openssl) { - libs = $$getenv("OPENSSL_LIBS") - !isEmpty(libs) { - $${1}.libs = $$libs - export($${1}.libs) - return(true) - } - return(false) -} - defineTest(qtConfTest_checkCompiler) { contains(QMAKE_CXX, ".*clang.*") { qtRunLoggedCommand("$$QMAKE_CXX -v 2>&1", versionstr)|return(false) @@ -274,162 +264,6 @@ defineTest(qtConfTest_checkCompiler) { return(true) } -defineReplace(filterLibraryPath) { - str = $${1} - for (l, QMAKE_DEFAULT_LIBDIRS): \ - str -= "-L$$l" - - return($$str) -} - -defineTest(qtConfLibrary_psqlConfig) { - pg_config = $$config.input.psql_config - isEmpty(pg_config): \ - pg_config = $$qtConfFindInPath("pg_config") - !win32:!isEmpty(pg_config) { - qtRunLoggedCommand("$$pg_config --libdir", libdir)|return(false) - qtRunLoggedCommand("$$pg_config --includedir", includedir)|return(false) - libdir -= $$QMAKE_DEFAULT_LIBDIRS - libs = - !isEmpty(libdir): libs += "-L$$libdir" - libs += "-lpq" - $${1}.libs = "$$val_escape(libs)" - includedir -= $$QMAKE_DEFAULT_INCDIRS - $${1}.includedir = "$$val_escape(includedir)" - !isEmpty(includedir): \ - $${1}.cflags = "-I$$val_escape(includedir)" - export($${1}.libs) - export($${1}.includedir) - export($${1}.cflags) - return(true) - } - return(false) -} - -defineTest(qtConfLibrary_psqlEnv) { - # Respect PSQL_LIBS if set - PSQL_LIBS = $$getenv(PSQL_LIBS) - !isEmpty(PSQL_LIBS) { - $${1}.libs = $$PSQL_LIBS - export($${1}.libs) - } - return(true) -} - -defineTest(qtConfLibrary_mysqlConfig) { - mysql_config = $$config.input.mysql_config - isEmpty(mysql_config): \ - mysql_config = $$qtConfFindInPath("mysql_config") - !isEmpty(mysql_config) { - qtRunLoggedCommand("$$mysql_config --version", version)|return(false) - version = $$split(version, '.') - version = $$first(version) - isEmpty(version)|lessThan(version, 4): return(false)] - - # query is either --libs or --libs_r - query = $$eval($${1}.query) - qtRunLoggedCommand("$$mysql_config $$query", libs)|return(false) - qtRunLoggedCommand("$$mysql_config --include", includedir)|return(false) - eval(libs = $$libs) - libs = $$filterLibraryPath($$libs) - # -rdynamic should not be returned by mysql_config, but is on RHEL 6.6 - libs -= -rdynamic - $${1}.libs = "$$val_escape(libs)" - eval(includedir = $$includedir) - includedir ~= s/^-I//g - includedir -= $$QMAKE_DEFAULT_INCDIRS - $${1}.includedir = "$$val_escape(includedir)" - !isEmpty(includedir): \ - $${1}.cflags = "-I$$val_escape(includedir)" - export($${1}.libs) - export($${1}.includedir) - export($${1}.cflags) - return(true) - } - return(false) -} - -defineTest(qtConfLibrary_sybaseEnv) { - libs = - sybase = $$getenv(SYBASE) - !isEmpty(sybase): \ - libs += "-L$${sybase}/lib" - libs += $$getenv(SYBASE_LIBS) - !isEmpty(libs) { - $${1}.libs = "$$val_escape(libs)" - export($${1}.libs) - } - return(true) -} - -# Check for Direct X SDK (include, lib, and direct shader compiler 'fxc'). -# Up to Direct X SDK June 2010 and for MinGW, this is pointed to by the -# DXSDK_DIR variable. Starting with Windows Kit 8, it is included in -# the Windows SDK. Checking for the header is not sufficient, since it -# is also present in MinGW. -defineTest(qtConfTest_directX) { - dxdir = $$getenv("DXSDK_DIR") - !isEmpty(dxdir) { - EXTRA_INCLUDEPATH += $$dxdir/include - arch = $$qtConfEvaluate("tests.architecture.arch") - equals(arch, x86_64): \ - EXTRA_LIBDIR += $$dxdir/lib/x64 - else: \ - EXTRA_LIBDIR += $$dxdir/lib/x86 - EXTRA_PATH += $$dxdir/Utilities/bin/x86 - } - - $$qtConfEvaluate("features.sse2") { - ky = $$size($${1}.files._KEYS_) - $${1}.files._KEYS_ += $$ky - # Not present on MinGW-32 - $${1}.files.$${ky} = "intrin.h" - } - - qtConfTest_files($${1}): return(true) - return(false) -} - -defineTest(qtConfTest_xkbConfigRoot) { - qtConfTest_getPkgConfigVariable($${1}): return(true) - - for (dir, $$list("/usr/share/X11/xkb", "/usr/local/share/X11/xkb")) { - exists($$dir) { - $${1}.value = $$dir - export($${1}.value) - $${1}.cache += value - export($${1}.cache) - return(true) - } - } - return(false) -} - -defineTest(qtConfTest_qpaDefaultPlatform) { - name = - !isEmpty(config.input.qpa_default_platform): name = $$config.input.qpa_default_platform - else: !isEmpty(QT_QPA_DEFAULT_PLATFORM): name = $$QT_QPA_DEFAULT_PLATFORM - else: winrt: name = winrt - else: win32: name = windows - else: android: name = android - else: osx: name = cocoa - else: ios: name = ios - else: qnx: name = qnx - else: integrity: name = integrityfb - else: name = xcb - - $${1}.value = $$name - $${1}.plugin = q$$name - $${1}.name = "\"$$name\"" - export($${1}.value) - export($${1}.plugin) - export($${1}.name) - $${1}.cache += value plugin name - export($${1}.cache) - return(true) -} - - # custom outputs defineTest(qtConfOutput_shared) { @@ -477,13 +311,6 @@ defineTest(qtConfOutput_architecture) { export(QT_ARCH) } -defineTest(qtConfOutput_styles) { - !$${2}: return() - - style = $$replace($${1}.feature, "style-", "") - qtConfOutputVar(append, "privatePro", "styles", $$style) -} - defineTest(qtConfOutput_qreal) { qreal = $$config.input.qreal isEmpty(qreal): qreal = "double" diff --git a/examples/gui/gui.pro b/examples/gui/gui.pro index e4fec201d7..a4d960d3f5 100644 --- a/examples/gui/gui.pro +++ b/examples/gui/gui.pro @@ -1,10 +1,10 @@ requires(qtHaveModule(gui)) TEMPLATE = subdirs +QT_FOR_CONFIG += gui CONFIG += no_docs_target SUBDIRS += analogclock SUBDIRS += rasterwindow -qtConfig(opengl(es2)?) { +qtConfig(opengl): \ SUBDIRS += openglwindow -} diff --git a/examples/network/network.pro b/examples/network/network.pro index a6a6f3ef52..759f730af3 100644 --- a/examples/network/network.pro +++ b/examples/network/network.pro @@ -1,6 +1,7 @@ requires(qtHaveModule(network)) TEMPLATE = subdirs +QT_FOR_CONFIG += network-private SUBDIRS = \ download \ downloadmanager diff --git a/mkspecs/features/ctest_testcase_common.prf b/mkspecs/features/ctest_testcase_common.prf index 40e41900e8..af80fc00a1 100644 --- a/mkspecs/features/ctest_testcase_common.prf +++ b/mkspecs/features/ctest_testcase_common.prf @@ -69,6 +69,7 @@ for (dep, dependentmodules): \ mod_deps += $$cmakeModuleName($$dep) dependentmodules = $$join(mod_deps, ";") +QT_FOR_CONFIG += gui-private qtConfig(angle): CMAKE_GL_DEFINES = -DQT_WITH_ANGLE=True !qtConfig(egl): CMAKE_GL_DEFINES += -DNO_EGL=True diff --git a/src/3rdparty/freetype/freetype.pro b/src/3rdparty/freetype/freetype.pro index 41ca469576..1e12dadc5d 100644 --- a/src/3rdparty/freetype/freetype.pro +++ b/src/3rdparty/freetype/freetype.pro @@ -68,6 +68,8 @@ DEFINES += FT2_BUILD_LIBRARY DEFINES += FT_CONFIG_OPTION_SYSTEM_ZLIB include(../zlib_dependency.pri) +QT_FOR_CONFIG += gui-private +include(../../gui/qtgui-config.pri) DEFINES += FT_CONFIG_OPTION_USE_PNG include($$PWD/../png_dependency.pri) diff --git a/src/3rdparty/pcre_dependency.pri b/src/3rdparty/pcre_dependency.pri index fa7df4df0e..f1355eabe6 100644 --- a/src/3rdparty/pcre_dependency.pri +++ b/src/3rdparty/pcre_dependency.pri @@ -1,7 +1,7 @@ -pcre { +qtConfig(system-pcre) { + QMAKE_USE_PRIVATE += pcre +} else { win32: DEFINES += PCRE_STATIC INCLUDEPATH += $$PWD/pcre LIBS_PRIVATE += -L$$QT_BUILD_TREE/lib -lqtpcre$$qtPlatformTargetSuffix() -} else { - QMAKE_USE_PRIVATE += pcre } diff --git a/src/angle/src/common/common.pri b/src/angle/src/common/common.pri index c948e27dc3..e9351b2c42 100644 --- a/src/angle/src/common/common.pri +++ b/src/angle/src/common/common.pri @@ -1,4 +1,5 @@ # static builds should still link ANGLE dynamically when dynamic GL is enabled +include(../../../gui/qtgui-config.pri) static:qtConfig(dynamicgl) { CONFIG -= static CONFIG += shared diff --git a/src/angle/src/compiler/preprocessor/preprocessor.pro b/src/angle/src/compiler/preprocessor/preprocessor.pro index f9170b3bee..c13cf7ba8d 100644 --- a/src/angle/src/compiler/preprocessor/preprocessor.pro +++ b/src/angle/src/compiler/preprocessor/preprocessor.pro @@ -1,4 +1,5 @@ CONFIG += static +include(../../../../gui/qtgui-config.pri) qtConfig(dynamicgl): CONFIG += not_installed include(../../config.pri) diff --git a/src/angle/src/compiler/translator.pro b/src/angle/src/compiler/translator.pro index cee13d06bb..4c0a05e45c 100644 --- a/src/angle/src/compiler/translator.pro +++ b/src/angle/src/compiler/translator.pro @@ -1,4 +1,5 @@ CONFIG += static +include(../../../gui/qtgui-config.pri) qtConfig(dynamicgl): CONFIG += not_installed include(../config.pri) diff --git a/src/corelib/configure.json b/src/corelib/configure.json new file mode 100644 index 0000000000..4cccab9f5d --- /dev/null +++ b/src/corelib/configure.json @@ -0,0 +1,434 @@ +{ + "module": "core", + "testDir": "../../config.tests", + + "commandline": { + "options": { + "doubleconversion": { "type": "enum", "values": [ "no", "qt", "system" ] }, + "eventfd": "boolean", + "glib": "boolean", + "iconv": { "type": "enum", "values": [ "no", "yes", "posix", "sun", "gnu" ] }, + "icu": "boolean", + "inotify": "boolean", + "journald": "boolean", + "pcre": { "type": "enum", "values": [ "qt", "system" ] }, + "posix-ipc": { "type": "boolean", "name": "ipc_posix" }, + "pps": { "type": "boolean", "name": "qqnx_pps" }, + "slog2": "boolean", + "syslog": "boolean" + } + }, + + "libraries": { + "doubleconversion": { + "description": "DoubleConversion", + "test": "unix/doubleconversion", + "sources": [ + "-ldouble-conversion" + ] + }, + "glib": { + "description": "GLib", + "test": "unix/glib", + "sources": [ + { "type": "pkgConfig", "args": "glib-2.0 gthread-2.0" } + ] + }, + "gnu_iconv": { + "description": "GNU libiconv", + "export": "iconv", + "test": "unix/gnu-libiconv", + "sources": [ + "-liconv" + ] + }, + "icu": { + "description": "ICU", + "export": "", + "test": "unix/icu", + "sources": [ + { + "builds": { + "debug": "-lsicuind -lsicuucd -lsicudtd", + "release": "-lsicuin -lsicuuc -lsicudt" + }, + "condition": "config.win32 && !features.shared" + }, + { "libs": "-licuin -licuuc -licudt", "condition": "config.win32 && features.shared" }, + { "libs": "-licui18n -licuuc -licudata", "condition": "!config.win32" } + ] + }, + "journald": { + "description": "journald", + "test": "unix/journald", + "export": "", + "sources": [ + { "type": "pkgConfig", "args": "libsystemd" }, + { "type": "pkgConfig", "args": "libsystemd-journal" } + ] + }, + "libatomic": { + "description": "64 bit atomics in libatomic", + "test": "common/atomic64", + "sources": [ + "-latomic" + ] + }, + "libdl": { + "description": "dlopen() in libdl", + "export": "", + "test": "unix/dlopen", + "sources": [ + "-ldl" + ] + }, + "pcre": { + "description": "PCRE", + "test": "unix/pcre", + "sources": [ + "-lpcre16" + ] + }, + "pps": { + "description": "PPS", + "test": "unix/pps", + "sources": [ + "-lpps" + ] + }, + "slog2": { + "description": "slog2", + "test": "unix/slog2", + "export": "", + "sources": [ + "-lslog2" + ] + } + }, + + "tests": { + "atomic64": { + "description": "64 bit atomics", + "type": "compile", + "test": "common/atomic64" + }, + "atomicfptr": { + "description": "working std::atomic for function pointers", + "type": "compile", + "test": "common/atomicfptr" + }, + "clock-gettime": { + "description": "clock_gettime()", + "type": "compile", + "test": "unix/clock-gettime" + }, + "clock-monotonic": { + "description": "POSIX monotonic clock", + "type": "compile", + "test": "unix/clock-monotonic" + }, + "cloexec": { + "description": "O_CLOEXEC", + "type": "compile", + "test": "unix/cloexec" + }, + "dlopen": { + "description": "dlopen() in libc", + "type": "compile", + "test": "unix/dlopen" + }, + "eventfd": { + "description": "eventfd", + "type": "compile", + "test": "unix/eventfd" + }, + "posix-iconv": { + "description": "POSIX iconv", + "type": "compile", + "test": "unix/iconv" + }, + "sun-iconv": { + "description": "SUN libiconv", + "type": "compile", + "test": "unix/sun-libiconv" + }, + "inotify": { + "description": "inotify", + "type": "compile", + "test": "unix/inotify" + }, + "ipc_sysv": { + "description": "SysV IPC", + "type": "compile", + "test": "unix/ipc_sysv" + }, + "ipc_posix": { + "description": "POSIX IPC", + "type": "compile", + "test": "unix/ipc_posix" + }, + "journald": { + "description": "journald", + "type": "compile", + "test": "unix/journald" + }, + "ppoll": { + "description": "ppoll()", + "type": "compile", + "test": "unix/ppoll" + }, + "pollts": { + "description": "pollts()", + "type": "compile", + "test": "unix/pollts" + }, + "poll": { + "description": "poll()", + "type": "compile", + "test": "unix/poll" + }, + "syslog": { + "description": "syslog", + "type": "compile", + "test": "unix/syslog" + }, + "xlocalescanprint": { + "description": "xlocale.h (or equivalents)", + "type": "compile", + "test": "common/xlocalescanprint" + } + }, + + "features": { + "clock-gettime": { + "description": "clock_gettime()", + "condition": "tests.clock-gettime", + "output": [ "privateFeature" ] + }, + "clock-monotonic": { + "description": "POSIX monotonic clock", + "condition": "features.clock-gettime && tests.clock-monotonic", + "output": [ "feature" ] + }, + "dlopen": { + "description": "dlopen()", + "condition": "tests.dlopen || libs.libdl", + "output": [ { "type": "define", "negative": true, "name": "QT_NO_DYNAMIC_LIBRARY" } ] + }, + "libdl": { + "description": "dlopen() in libdl", + "condition": "!tests.dlopen && libs.libdl", + "output": [ { "type": "privateConfig", "negative": true } ] + }, + "doubleconversion": { + "description": "DoubleConversion", + "output": [ "privateFeature", "feature" ] + }, + "system-doubleconversion": { + "description": " Using system DoubleConversion", + "enable": "input.doubleconversion == 'system'", + "disable": "input.doubleconversion == 'qt'", + "condition": "features.doubleconversion && libs.doubleconversion", + "output": [ "privateFeature" ] + }, + "eventfd": { + "description": "eventfd", + "condition": "tests.eventfd", + "output": [ "feature" ] + }, + "glib": { + "description": "GLib", + "autoDetect": "!config.win32", + "condition": "libs.glib", + "output": [ "privateFeature", "feature" ] + }, + "iconv": { + "description": "iconv", + "condition": "features.posix-libiconv || features.sun-libiconv || features.gnu-libiconv", + "output": [ "privateFeature", "feature" ] + }, + "posix-libiconv": { + "description": "POSIX iconv", + "enable": "input.iconv == 'posix'", + "disable": "input.iconv == 'sun' || input.iconv == 'gnu' || input.iconv == 'no'", + "condition": "!config.win32 && !config.qnx && !config.android && !config.darwin && tests.posix-iconv" + }, + "sun-libiconv": { + "description": "SUN iconv", + "enable": "input.iconv == 'sun'", + "disable": "input.iconv == 'posix' || input.iconv == 'gnu' || input.iconv == 'no'", + "condition": "!config.win32 && !config.qnx && !config.android && !config.darwin && !features.posix-libiconv && tests.sun-iconv", + "output": [ "privateFeature", "publicQtConfig" ] + }, + "gnu-libiconv": { + "description": "GNU iconv", + "enable": "input.iconv == 'gnu'", + "disable": "input.iconv == 'posix' || input.iconv == 'sun' || input.iconv == 'no'", + "condition": "!config.win32 && !config.qnx && !config.android && !config.darwin && !features.posix-libiconv && !features.sun-libiconv && libs.gnu_iconv", + "output": [ "privateFeature" ] + }, + "icu": { + "description": "ICU", + "autoDetect": "!config.win32", + "condition": "libs.icu", + "output": [ "privateFeature" ] + }, + "inotify": { + "description": "inotify", + "condition": "tests.inotify", + "output": [ "privateFeature", "feature" ] + }, + "ipc_posix": { + "description": "Using POSIX IPC", + "autoDetect": "!config.win32", + "condition": "!tests.ipc_sysv && tests.ipc_posix", + "output": [ { "type": "define", "name": "QT_POSIX_IPC" } ] + }, + "journald": { + "description": "journald", + "autoDetect": false, + "condition": "libs.journald", + "output": [ "privateConfig" ] + }, + "std-atomic64": { + "description": "64 bit atomic operations", + "condition": "tests.atomic64 || libs.libatomic", + "output": [ { "type": "define", "negative": true, "name": "QT_NO_STD_ATOMIC64" } ] + }, + "libatomic": { + "description": "64 bit atomic operations in libatomic", + "condition": "!tests.atomic64 && libs.libatomic", + "output": [ "privateFeature" ] + }, + "mimetype": { + "description": "Mimetype handling", + "output": [ "publicFeature", "feature" ] + }, + "system-pcre": { + "description": "Using system PCRE", + "disable": "input.pcre == 'qt'", + "enable": "input.pcre == 'system'", + "condition": "libs.pcre", + "output": [ + "privateFeature", + { "type": "privateConfig", "negative": true, "name": "pcre" } + ] + }, + "poll_ppoll": { + "description": "Native ppoll()", + "emitIf": "!config.win32", + "condition": "tests.ppoll", + "output": [ "privateFeature" ] + }, + "poll_pollts": { + "description": "Native pollts()", + "emitIf": "!config.win32", + "condition": "!features.poll_ppoll && tests.pollts", + "output": [ "privateFeature" ] + }, + "poll_poll": { + "description": "Native poll()", + "emitIf": "!config.win32", + "condition": "!features.poll_ppoll && !features.poll_pollts && tests.poll", + "output": [ "privateFeature" ] + }, + "poll_select": { + "description": "Emulated poll()", + "emitIf": "!config.win32", + "condition": "!features.poll_ppoll && !features.poll_pollts && !features.poll_poll", + "output": [ + "privateFeature", + { "type": "define", "name": "QT_NO_NATIVE_POLL" } + ] + }, + "qqnx_pps": { + "description": "PPS", + "emitIf": "config.qnx", + "condition": "libs.pps", + "output": [ "privateConfig" ] + }, + "qeventtransition": { + "description": "QEventTransition class", + "output": [ "publicFeature" ] + }, + "sharedmemory": { + "description": "Enable QSharedMemory", + "condition": "config.android || config.win32 || tests.ipc_sysv || tests.ipc_posix", + "output": [ { "type": "define", "negative": true, "name": "QT_NO_SHAREDMEMORY" } ] + }, + "slog2": { + "description": "slog2", + "condition": "libs.slog2", + "emitIf": "config.qnx", + "output": [ "privateConfig" ] + }, + "syslog": { + "description": "syslog", + "autoDetect": false, + "condition": "tests.syslog", + "output": [ "privateConfig" ] + }, + "systemsemaphore": { + "description": "Enable QSystemSemaphore", + "condition": "config.android || config.win32 || tests.ipc_sysv || tests.ipc_posix", + "output": [ { "type": "define", "negative": true, "name": "QT_NO_SYSTEMSEMAPHORE" } ] + }, + "threadsafe-cloexec": { + "description": "Threadsafe pipe creation", + "condition": "tests.cloexec", + "output": [ + "publicQtConfig", + { "type": "define", "name": "QT_THREADSAFE_CLOEXEC", "value": 1 } + ] + } + }, + + "report": [ + { + "type": "note", + "condition": "features.journald || features.syslog || (config.qnx && features.slog2)", + "message": "journald, syslog or slog2 integration is enabled. +If your users intend to develop applications against this build, +ensure that the IDEs they use either set QT_LOGGING_TO_CONSOLE to 1 +or are able to read the logged output from journald, syslog or slog2." + }, + { + "type": "error", + "condition": "input.doubleconversion == 'no' && !tests.xlocalescanprint", + "message": "Your C library does not provide sscanf_l or snprintf_l. +You need to use libdouble-conversion for double/string conversion." + }, + { + "type": "error", + "condition": "!tests.atomicfptr", + "message": "detected a std::atomic implementation that fails for function pointers. +Please apply the patch corresponding to your Standard Library vendor, found in + qtbase/config.tests/common/atomicfptr" + } + ], + + "summary": [ + { + "section": "Qt Core", + "entries": [ + "doubleconversion", + "system-doubleconversion", + "glib", + "iconv", + "icu", + { + "section": "Logging backends", + "entries": [ + "journald", "syslog", "slog2" + ] + }, + { + "type": "feature", + "args": "qqnx_pps", + "condition": "config.qnx" + }, + "system-pcre" + ] + } + ] +} diff --git a/src/corelib/global/qglobal.h b/src/corelib/global/qglobal.h index c463a392b7..f11ec127e0 100644 --- a/src/corelib/global/qglobal.h +++ b/src/corelib/global/qglobal.h @@ -58,7 +58,7 @@ #ifndef QT_BOOTSTRAPPED #include -#include +#include #endif // The QT_SUPPORTS macro is deprecated. Don't use it in new code. diff --git a/src/corelib/global/qglobal_p.h b/src/corelib/global/qglobal_p.h index e75d87b384..c329357f46 100644 --- a/src/corelib/global/qglobal_p.h +++ b/src/corelib/global/qglobal_p.h @@ -50,6 +50,7 @@ #ifndef QT_BOOTSTRAPPED #include +#include #endif #define QT_LIBRARY_VERSION(lib) QT_LIBRARY_VERSION_##lib diff --git a/src/gui/configure.json b/src/gui/configure.json new file mode 100644 index 0000000000..c662c0a524 --- /dev/null +++ b/src/gui/configure.json @@ -0,0 +1,905 @@ +{ + "module": "gui", + "depends": [ + "core" + ], + "testDir": "../../config.tests", + + "commandline": { + "options": { + "angle": "boolean", + "directfb": "boolean", + "directwrite": "boolean", + "egl": "boolean", + "eglfs": "boolean", + "evdev": "boolean", + "fontconfig": "boolean", + "freetype": { "type": "enum", "values": [ "no", "qt", "system" ] }, + "gbm": "boolean", + "gif": "boolean", + "harfbuzz": { "type": "enum", "values": [ "no", "qt", "system" ] }, + "ico": "boolean", + "imf": { "type": "boolean", "name": "qqnx_imf" }, + "kms": "boolean", + "lgmon": "boolean", + "libinput": "boolean", + "libjpeg": { "type": "enum", "values": [ "no", "qt", "system" ] }, + "libpng": { "type": "enum", "values": [ "no", "qt", "system" ] }, + "linuxfb": "boolean", + "mirclient": "boolean", + "mtdev": "boolean", + "opengl": { "type": "optionalString", "values": [ "no", "yes", "desktop", "es2", "dynamic" ] }, + "opengl-es-2": { "type": "void", "name": "opengl", "value": "es2" }, + "opengles3": "boolean", + "qpa": { "type": "string", "name": "qpa_default_platform" }, + "qpa-platform-guard": "boolean", + "sm": { "type": "boolean", "name": "sessionmanager" }, + "tslib": "boolean", + "xcb": { "type": "enum", "values": [ "no", "yes", "qt", "system" ] }, + "xcb-xlib": "boolean", + "xinput2": "boolean", + "xkb": "boolean", + "xkb-config-root": "string", + "xkbcommon": { "type": "enum", "values": [ "no", "qt", "system" ] }, + "xkbcommon-evdev": "boolean", + "xkbcommon-x11": { "type": "enum", "name": "xkbcommon", "values": [ "no", "qt", "system" ] }, + "xrender": "boolean" + } + }, + + "libraries": { + "bcm_host": { + "export": "", + "sources": [ + "-lbcm_host" + ] + }, + "directfb": { + "description": "DirectFB", + "test": "qpa/directfb", + "sources": [ + { "type": "pkgConfig", "args": "directfb" } + ] + }, + "directwrite": { + "description": "DirectWrite", + "export": "", + "test": "win/directwrite", + "sources": [ + "-ldwrite" + ] + }, + "drm": { + "description": "KMS", + "test": "qpa/kms", + "sources": [ + { "type": "pkgConfig", "args": "libdrm" }, + "-ldrm" + ] + }, + "egl": { + "description": "EGL", + "test": "qpa/egl", + "sources": [ + { "type": "pkgConfig", "args": "egl" }, + { "type": "makeSpec", "spec": "EGL" } + ] + }, + "freetype": { + "description": "FreeType", + "export": "", + "test": "unix/freetype", + "sources": [ + "-lfreetype" + ] + }, + "fontconfig": { + "description": "Fontconfig", + "test": "unix/fontconfig", + "sources": [ + { "type": "pkgConfig", "args": "fontconfig freetype2" }, + "-lfontconfig -lfreetype" + ] + }, + "gbm": { + "description": "GBM", + "test": "qpa/gbm", + "sources": [ + { "type": "pkgConfig", "args": "gbm" } + ] + }, + "harfbuzz": { + "description": "HarfBuzz", + "test": "unix/harfbuzz", + "sources": [ + "-lharfbuzz" + ] + }, + "imf": { + "description": "IMF", + "export": "", + "test": "unix/qqnx_imf", + "sources": [ + "-linput_client" + ] + }, + "lgmon": { + "description": "lgmon", + "test": "unix/lgmon", + "sources": [ + "-llgmon" + ] + }, + "libinput": { + "description": "libinput", + "test": "unix/libinput", + "sources": [ + { "type": "pkgConfig", "args": "libinput" } + ] + }, + "libjpeg": { + "description": "libjpeg", + "test": "unix/libjpeg", + "sources": [ + { "libs": "-llibjpeg", "condition": "config.msvc" }, + { "libs": "-ljpeg", "condition": "!config.msvc" } + ] + }, + "libpng": { + "description": "libpng", + "test": "unix/libpng", + "sources": [ + { "type": "pkgConfig", "args": "libpng" }, + { "libs": "-llibpng", "condition": "config.msvc" }, + { "libs": "-lpng", "condition": "!config.msvc" } + ] + }, + "mirclient": { + "description": "Mir client libraries", + "export": "", + "test": "qpa/mirclient", + "sources": [ + { "type": "pkgConfig", "args": "egl mirclient ubuntu-platform-api" } + ] + }, + "mtdev": { + "description": "mtdev", + "export": "", + "test": "unix/mtdev", + "sources": [ + { "type": "pkgConfig", "args": "mtdev" } + ] + }, + "opengl": { + "description": "Desktop OpenGL", + "test": "unix/opengldesktop", + "sources": [ + { "type": "pkgConfig", "args": "gl" }, + { "type": "makeSpec", "spec": "OPENGL" } + ] + }, + "opengl_es2": { + "description": "OpenGL ES 2.0", + "test": "unix/opengles2", + "sources": [ + { "type": "pkgConfig", "args": "glesv2" }, + { "type": "makeSpec", "spec": "OPENGL_ES2" } + ] + }, + "tslib": { + "description": "tslib", + "test": "unix/tslib", + "sources": [ + "-lts" + ] + }, + "wayland_server": { + "description": "Wayland Server", + "export": "", + "test": "qpa/wayland-server", + "sources": [ + { "type": "pkgConfig", "args": "wayland-server" } + ] + }, + "x11sm": { + "description": "X11 session management", + "sources": [ + { "type": "pkgConfig", "args": "sm ice" } + ] + }, + "xcb": { + "description": "XCB >= 1.5 (core)", + "test": "qpa/xcb", + "sources": [ + { "type": "pkgConfig", "args": "xcb >= 1.5" }, + "-lxcb" + ] + }, + "xcb_syslibs": { + "description": "XCB (secondary)", + "test": "qpa/xcb-syslibs", + "sources": [ + { "type": "pkgConfig", + "args": "xcb xcb-shm xcb-sync xcb-xfixes xcb-randr xcb-image xcb-keysyms xcb-icccm xcb-shape" }, + "-lxcb -lxcb-shm -lxcb-sync -lxcb-xfixes -lxcb-randr -lxcb-image -lxcb-keysyms -lxcb-icccm -lxcb-shape" + ] + }, + "xcb_xlib": { + "description": "XCB Xlib", + "test": "qpa/xcb-xlib", + "sources": [ + { "type": "pkgConfig", "args": "X11-xcb x11 xcb" }, + "-lxcb -lX11 -lX11-xcb" + ] + }, + "xcb_xkb": { + "description": "XCB XKB >= 1.10", + "test": "qpa/xcb-xkb", + "sources": [ + { "type": "pkgConfig", "args": "xcb-xkb >= 1.10 xcb" }, + "-lxcb-xkb -lxcb" + ] + }, + "xcb_render": { + "description": "XCB XRender", + "test": "qpa/xcb-render", + "sources": [ + { "type": "pkgConfig", "args": "xcb-renderutil xcb-render xcb" }, + "-lxcb-render-util -lxcb-render -lxcb" + ] + }, + "xcb_glx": { + "description": "XCB GLX", + "test": "qpa/xcb-glx", + "sources": [ + { "type": "pkgConfig", "args": "xcb-glx xcb" }, + "-lxcb-glx -lxcb" + ] + }, + "xinput2": { + "description": "Xinput2", + "test": "x11/xinput2", + "sources": [ + { "type": "pkgConfig", "args": "xi" }, + "-lXi" + ] + }, + "xkbcommon": { + "description": "xkbcommon", + "export": "xkbcommon_evdev", + "test": "unix/xkbcommon", + "sources": [ + { "type": "pkgConfig", "args": "xkbcommon" } + ] + }, + "xkbcommon_x11": { + "description": "xkbcommon-x11 >= 0.4.1", + "export": "xkbcommon", + "sources": [ + { "type": "pkgConfig", "args": "xkbcommon xkbcommon-x11 >= 0.4.1" } + ] + }, + "xrender": { + "description": "XRender", + "test": "x11/xrender", + "sources": [ + "-lXrender" + ] + } + }, + + "testTypeAliases": { + "files": [ "directX" ], + "getPkgConfigVariable": [ "xkbConfigRoot" ] + }, + + "tests": { + "direct2d": { + "description": "Direct 2D", + "type": "compile", + "test": "qpa/direct2d", + "use": "direct2d" + }, + "directwrite2": { + "description": "DirectWrite 2", + "type": "compile", + "test": "win/directwrite2", + "use": "directwrite" + }, + "directx": { + "description": "DirectX SDK", + "type": "directX", + "files": [ + "d3dcompiler.h", + "d3d11.lib", + "fxc.exe" + ] + }, + "egl-x11": { + "description": "EGL on X11", + "type": "compile", + "test": "qpa/egl-x11", + "use": "egl xcb_xlib" + }, + "egl-brcm": { + "description": "Broadcom EGL (Rasberry Pi)", + "type": "compile", + "test": "qpa/eglfs-brcm", + "use": "egl bcm_host" + }, + "egl-egldevice": { + "description": "EGLDevice", + "type": "compile", + "test": "qpa/eglfs-egldevice", + "use": "egl" + }, + "egl-mali": { + "description": "Mali EGL", + "type": "compile", + "test": "qpa/eglfs-mali", + "use": "egl" + }, + "egl-mali-2": { + "description": "Mali 2 EGL", + "type": "compile", + "test": "qpa/eglfs-mali-2", + "use": "egl" + }, + "egl-viv": { + "description": "i.Mx6 EGL", + "type": "compile", + "test": "qpa/eglfs-viv", + "use": "egl" + }, + "evdev": { + "description": "evdev", + "type": "compile", + "test": "unix/evdev" + }, + "linuxfb": { + "description": "LinuxFB", + "type": "compile", + "test": "qpa/linuxfb" + }, + "opengles3": { + "description": "OpenGL ES 3.0", + "type": "compile", + "test": "unix/opengles3", + "use": "opengl_es2" + }, + "opengles31": { + "description": "OpenGL ES 3.1", + "type": "compile", + "test": "unix/opengles31", + "use": "opengl_es2" + }, + "qpa_default_platform": { + "description": "default QPA platform", + "type": "qpaDefaultPlatform", + "log": "value" + }, + "x11prefix": { + "description": "X11 prefix", + "type": "getPkgConfigVariable", + "pkg-config-args": "x11", + "pkg-config-variable": "prefix", + "value": "/usr", + "log": "value" + }, + "xkbconfigroot": { + "description": "XKB config root", + "type": "xkbConfigRoot", + "pkg-config-args": "xkeyboard-config", + "pkg-config-variable": "xkb_base", + "log": "value" + }, + "xlib": { + "description": "XLib", + "type": "compile", + "test": "x11/xlib" + } + }, + + "features": { + "accessibility-atspi-bridge": { + "description": "ATSPI Bridge", + "condition": "features.accessibility && features.xcb && features.dbus", + "output": [ "privateFeature", "feature" ] + }, + "angle": { + "description": "ANGLE", + "autoDetect": "features.opengles2 || features.opengl-dynamic", + "condition": "config.win32 && tests.directx", + "output": [ + "publicFeature", + { "type": "define", "name": "QT_OPENGL_ES_2_ANGLE" } + ] + }, + "directfb": { + "description": "DirectFB", + "autoDetect": false, + "condition": "libs.directfb", + "output": [ "privateFeature" ] + }, + "directwrite": { + "description": "DirectWrite", + "emitIf": "config.win32", + "condition": "libs.directwrite", + "output": [ "privateFeature" ] + }, + "directwrite2": { + "description": "DirectWrite 2", + "emitIf": "config.win32", + "condition": "features.directwrite && tests.directwrite2", + "output": [ "privateFeature" ] + }, + "direct2d": { + "description": "Direct 2D", + "autoDetect": false, + "condition": "tests.direct2d", + "output": [ "privateFeature" ] + }, + "evdev": { + "description": "evdev", + "condition": "tests.evdev", + "output": [ "privateFeature" ] + }, + "freetype": { + "description": "FreeType", + "output": [ "privateFeature", "feature" ] + }, + "system-freetype": { + "description": " Using system FreeType", + "enable": "input.freetype == 'system'", + "disable": "input.freetype == 'qt'", + "autoDetect": "!config.win32", + "condition": "features.freetype && libs.freetype", + "output": [ "privateFeature" ] + }, + "fontconfig": { + "description": "Fontconfig", + "condition": "!config.win32 && !config.darwin && features.system-freetype && libs.fontconfig", + "output": [ "privateFeature", "feature" ] + }, + "gbm": { + "description": "GBM", + "condition": "libs.gbm", + "output": [ "publicQtConfig" ] + }, + "harfbuzz": { + "description": "HarfBuzz", + "output": [ "privateFeature", "feature" ] + }, + "system-harfbuzz": { + "description": " Using system HarfBuzz", + "enable": "input.harfbuzz == 'system'", + "disable": "input.harfbuzz == 'qt'", + "autoDetect": "!config.darwin && !config.win32", + "condition": "features.harfbuzz && libs.harfbuzz", + "output": [ "privateFeature" ] + }, + "qqnx_imf": { + "description": "IMF", + "emitIf": "config.qnx", + "condition": "libs.imf", + "output": [ "privateConfig" ] + }, + "integrityfb": { + "description": "INTEGRITY framebuffer", + "condition": "config.integrity", + "output": [ "privateFeature" ] + }, + "kms": { + "description": "KMS", + "condition": "libs.drm", + "output": [ "publicQtConfig" ] + }, + "libinput": { + "description": "libinput", + "condition": "features.libudev && libs.libinput", + "output": [ "privateFeature" ] + }, + "lgmon": { + "description": "lgmon", + "emitIf": "config.qnx", + "condition": "libs.lgmon", + "output": [ "privateConfig" ] + }, + "linuxfb": { + "description": "LinuxFB", + "condition": "tests.linuxfb", + "output": [ "privateFeature" ] + }, + "mirclient": { + "description": "Mir client", + "condition": "libs.mirclient", + "output": [ "privateFeature" ] + }, + "mtdev": { + "description": "mtdev", + "condition": "libs.mtdev", + "output": [ "privateFeature" ] + }, + "opengles2": { + "description": "OpenGL ES 2.0", + "enable": "input.opengl == 'es2'", + "disable": "input.opengl == 'desktop' || input.opengl == 'dynamic' || input.opengl == 'no'", + "condition": "config.win32 || (!config.watchos && !features.opengl-desktop && libs.opengl_es2)", + "output": [ + "publicFeature", + "publicQtConfig", + { "type": "define", "name": "QT_OPENGL_ES" }, + { "type": "define", "name": "QT_OPENGL_ES_2" } + ] + }, + "opengles3": { + "description": "OpenGL ES 3.0", + "condition": "features.opengles2 && !features.angle && tests.opengles3", + "output": [ + "publicFeature", + { "type": "define", "name": "QT_OPENGL_ES_3" } + ] + }, + "opengles31": { + "description": "OpenGL ES 3.1", + "condition": "features.opengles3 && tests.opengles31", + "output": [ + "publicFeature", + { "type": "define", "name": "QT_OPENGL_ES_3_1" } + ] + }, + "opengl-desktop": { + "description": "Desktop OpenGL", + "enable": "input.opengl == 'desktop'", + "disable": "input.opengl == 'es2' || input.opengl == 'dynamic' || input.opengl == 'no'", + "condition": "(config.win32 && !config.winrt && !features.opengles2 && (config.msvc || libs.opengl)) + || (!config.watchos && !config.win32 && libs.opengl)" + }, + "opengl-dynamic": { + "description": "Dynamic OpenGL", + "enable": "input.opengl == 'dynamic'", + "autoDetect": false, + "condition": "config.win32 && !config.winrt", + "output": [ + { "type": "publicFeature", "name": "dynamicgl" }, + { "type": "define", "name": "QT_OPENGL_DYNAMIC" } + ] + }, + "opengl": { + "description": "OpenGL", + "condition": "features.opengl-desktop || features.opengl-dynamic || features.opengles2", + "output": [ "publicFeature", "feature" ] + }, + "egl": { + "description": "EGL", + "condition": "features.opengl && (features.angle || libs.egl)", + "output": [ "privateFeature", "feature" ] + }, + "egl_x11": { + "description": "EGL on X11", + "condition": "features.egl && tests.egl-x11", + "output": [ "privateFeature" ] + }, + "eglfs": { + "description": "EGLFS", + "autoDetect": "!config.android && !config.win32", + "condition": "features.egl", + "output": [ "privateFeature" ] + }, + "eglfs_brcm": { + "description": "EGLFS Rasberry Pi", + "condition": "features.eglfs && tests.egl-brcm", + "output": [ "privateFeature" ] + }, + "eglfs_egldevice": { + "description": "EGLFS EGLDevice", + "condition": "features.eglfs && tests.egl-egldevice && features.kms", + "output": [ "privateFeature" ] + }, + "eglfs_gbm": { + "description": "EGLFS GBM", + "condition": "features.eglfs && features.gbm && features.kms", + "output": [ "privateFeature" ] + }, + "eglfs_mali": { + "description": "EGLFS Mali", + "condition": "features.eglfs && (tests.egl-mali || tests.egl-mali-2)", + "output": [ "privateFeature" ] + }, + "eglfs_viv": { + "description": "EGLFS i.Mx6", + "condition": "features.eglfs && tests.egl-viv", + "output": [ "privateFeature" ] + }, + "eglfs_viv_wl": { + "description": "EGLFS i.Mx6 Wayland", + "condition": "features.eglfs_viv && libs.wayland_server", + "output": [ "privateFeature" ] + }, + "gif": { + "description": "GIF", + "output": [ + "privateFeature", + { "type": "define", "negative": true, "name": "QT_NO_IMAGEFORMAT_GIF" } + ] + }, + "ico": { + "description": "ICO", + "output": [ "privateFeature", "feature" ] + }, + "jpeg": { + "description": "JPEG", + "disable": "input.libjpeg == 'no'", + "output": [ + "privateFeature", + { "type": "define", "negative": true, "name": "QT_NO_IMAGEFORMAT_JPEG" } + ] + }, + "system-jpeg": { + "description": " Using system libjpeg", + "disable": "input.libjpeg == 'qt'", + "enable": "input.libjpeg == 'system'", + "condition": "features.jpeg && libs.libjpeg", + "output": [ "privateFeature" ] + }, + "png": { + "description": "PNG", + "disable": "input.libpng == 'no'", + "output": [ + "privateFeature", + { "type": "define", "negative": true, "name": "QT_NO_IMAGEFORMAT_PNG" } + ] + }, + "system-png": { + "description": " Using system libpng", + "disable": "input.libpng == 'qt'", + "enable": "input.libpng == 'system'", + "condition": "features.png && libs.libpng", + "output": [ "privateFeature" ] + }, + "qpa_default_platform": { + "description": "QPA default platform", + "condition": "features.gui", + "output": [ + { "type": "define", "name": "QT_QPA_DEFAULT_PLATFORM_NAME", "value": "tests.qpa_default_platform.name" }, + { "type": "varAssign", "public": true, "name": "QT_DEFAULT_QPA_PLUGIN", "value": "tests.qpa_default_platform.plugin", + "condition": "!features.shared" } + ] + }, + "sessionmanager": { + "description": "Session Management", + "output": [ "feature" ] + }, + "tslib": { + "description": "tslib", + "condition": "libs.tslib", + "output": [ "privateFeature" ] + }, + "xcb": { + "description": "XCB", + "autoDetect": "!config.darwin", + "condition": "libs.xcb", + "output": [ "privateFeature" ] + }, + "system-xcb": { + "description": "Using system provided XCB libraries", + "enable": "input.xcb == 'system' || input.xcb == 'yes'", + "disable": "input.xcb == 'qt' || input.xcb == 'no'", + "autoDetect": "!config.darwin", + "condition": "libs.xcb && libs.xcb_syslibs", + "output": [ "privateFeature" ] + }, + "x11-prefix": { + "description": "X11 prefix", + "emitIf": "features.xcb", + "output": [ { "type": "varAssign", "name": "QMAKE_X11_PREFIX", "value": "tests.x11prefix.value" } ] + }, + "xcb-glx": { + "description": "XCB GLX", + "emitIf": "features.xcb", + "condition": "libs.xcb_glx", + "output": [ "privateFeature" ] + }, + "xcb-render": { + "description": "XCB render", + "emitIf": "features.system-xcb", + "condition": "libs.xcb_render", + "output": [ "privateFeature" ] + }, + "xcb-xlib": { + "description": "XCB Xlib", + "emitIf": "features.xcb", + "condition": "libs.xcb_xlib", + "output": [ "privateFeature" ] + }, + "xcb-sm": { + "description": "xcb-sm", + "emitIf": "features.xcb", + "condition": "features.sessionmanager && libs.x11sm", + "output": [ "privateFeature" ] + }, + "xinput2": { + "description": "Xinput2", + "condition": "libs.xinput2", + "output": [ "privateFeature" ] + }, + "xkbcommon-evdev": { + "description": "xkbcommon-evdev", + "condition": "libs.xkbcommon", + "output": [ "privateFeature" ] + }, + "xkbcommon-system": { + "description": "Using system-provided xkbcommon", + "emitIf": "features.xcb", + "enable": "input.xkbcommon == 'system'", + "disable": "input.xkbcommon == 'qt' || input.xkbcommon == 'no'", + "condition": "libs.xkbcommon_x11", + "output": [ "privateFeature" ] + }, + "xkb": { + "description": "XCB XKB", + "condition": "features.system-xcb && libs.xcb_xkb", + "output": [ "privateFeature" ] + }, + "xkb-config-root": { + "description": "XKB config root", + "emitIf": "features.xcb", + "condition": "features.xcb && !features.xkbcommon-system && tests.xkbconfigroot", + "output": [ { "type": "varAssign", "name": "QMAKE_XKB_CONFIG_ROOT", "value": "tests.xkbconfigroot.value"} ] + }, + "xlib": { + "description": "XLib", + "condition": "tests.xlib", + "output": [ "privateFeature" ] + }, + "xrender": { + "description": "Xrender", + "condition": "libs.xrender", + "output": [ "privateFeature", "feature" ] + } + }, + + "earlyReport": [ + { + "type": "error", + "condition": "input.xcb != '' && input.xcb != 'no' && input.xkbcommon == 'no'", + "message": "XCB plugin requires libxkbcommon. See -qt-xkbcommon-x11 and -system-xkbcommon-x11." + } + ], + + "report": [ + { + "type": "warning", + "condition": "features.xcb && !features.xkbcommon-system && !features.xkb-config-root", + "message": "Could not find XKB config root, use -xkb-config-root to set a path to +XKB configuration data. This is required for keyboard input support." + }, + { + "type": "note", + "condition": "features.accessibility && features.xcb && !features.accessibility-atspi-bridge", + "message": "Disabling Linux Accessibility Bridge: D-Bus is missing." + }, + { + "type": "warning", + "condition": "input.qpa-platform-guard != ''", + "message": "The [-no]-qpa-platform-guard argument is deprecated and has no effect." + }, + { + "type": "warning", + "condition": "features.gui && config.linux && !features.xcb && !features.eglfs && !features.directfb && !features.linuxfb && !features.mirclient", + "message": "No QPA platform plugin enabled! This will +produce a Qt that cannot run GUI applications. +The dependencies needed for xcb to build are listed in +src/plugins/platforms/xcb/README" + }, + { + "type": "warning", + "condition": "config.win32 && (features.opengles2 || features.opengl-dynamic) && !features.angle", + "message": "Using OpenGL ES 2.0 on Windows without ANGLE. +The build will most likely fail. +Specify -opengl desktop to use regular OpenGL." + }, + { + "type": "warning", + "condition": "config.darwin && features.system-harfbuzz", + "message": "On OS X, AAT is supported only with -qt-harfbuzz." + }, + { + "type": "error", + "condition": "features.gui && !config.watchos && input.opengl != 'no' && !features.opengl-desktop && !features.opengles2 && !features.opengl-dynamic", + "message": "The OpenGL functionality tests failed! +You might need to modify the include and library search paths by editing QMAKE_INCDIR_OPENGL[_ES2], +QMAKE_LIBDIR_OPENGL[_ES2] and QMAKE_LIBS_OPENGL[_ES2] in the mkspec for your platform." + } + ], + + "summary": [ + { + "section": "Qt Gui", + "entries": [ + "freetype", + "system-freetype", + "harfbuzz", + "system-harfbuzz", + "fontconfig", + { + "section": "Image formats", + "entries": [ + "gif", "ico", "jpeg", "system-jpeg", "png", "system-png" + ] + }, + { + "section": "OpenGL", + "entries": [ + { + "type": "feature", + "args": "angle", + "condition": "config.win32" + }, + "egl", + "opengl-desktop", + { + "type": "feature", + "args": "opengl-dynamic", + "condition": "config.win32" + }, + "opengles2", + "opengles3", + "opengles31" + ] + }, + "sessionmanager" + ] + }, + { + "section": "Features used by QPA backends", + "entries": [ + "evdev", + "libinput", + "mtdev", + "tslib", + "xkbcommon-evdev" + ] + }, + { + "section": "QPA backends", + "entries": [ + "directfb", "eglfs", + { + "section": "EGLFS details", + "condition": "features.eglfs", + "entries": [ + "eglfs_viv", "eglfs_viv_wl", "eglfs_egldevice", "eglfs_gbm", "eglfs_mali", "eglfs_brcm", "egl_x11" + ] + }, + "linuxfb", "mirclient", + { + "message": "INTEGRITY framebuffer", + "condition": "config.integrity", + "args": "integrityfb" + }, + { + "section": "QNX", + "condition": "config.qnx", + "entries": [ + "lgmon", "qqnx_imf" + ] + }, + { + "section": "X11", + "condition": "features.xcb", + "entries": [ + "system-xcb", "egl_x11", "xinput2", "xkb", "xlib", "xrender", "xcb-render", "xcb-glx", "xcb-xlib", "xkbcommon-system" + ] + }, + { + "section": "Windows", + "condition": "config.win32", + "entries": [ + "direct2d", "directwrite", "directwrite2" + ] + } + ] + } + ] +} diff --git a/src/gui/configure.pri b/src/gui/configure.pri new file mode 100644 index 0000000000..d79c5a6bba --- /dev/null +++ b/src/gui/configure.pri @@ -0,0 +1,67 @@ +# custom tests + +# Check for Direct X SDK (include, lib, and direct shader compiler 'fxc'). +# Up to Direct X SDK June 2010 and for MinGW, this is pointed to by the +# DXSDK_DIR variable. Starting with Windows Kit 8, it is included in +# the Windows SDK. Checking for the header is not sufficient, since it +# is also present in MinGW. +defineTest(qtConfTest_directX) { + dxdir = $$getenv("DXSDK_DIR") + !isEmpty(dxdir) { + EXTRA_INCLUDEPATH += $$dxdir/include + equals(QT_ARCH, x86_64): \ + EXTRA_LIBDIR += $$dxdir/lib/x64 + else: \ + EXTRA_LIBDIR += $$dxdir/lib/x86 + EXTRA_PATH += $$dxdir/Utilities/bin/x86 + } + + $$qtConfEvaluate("features.sse2") { + ky = $$size($${1}.files._KEYS_) + $${1}.files._KEYS_ += $$ky + # Not present on MinGW-32 + $${1}.files.$${ky} = "intrin.h" + } + + qtConfTest_files($${1}): return(true) + return(false) +} + +defineTest(qtConfTest_xkbConfigRoot) { + qtConfTest_getPkgConfigVariable($${1}): return(true) + + for (dir, $$list("/usr/share/X11/xkb", "/usr/local/share/X11/xkb")) { + exists($$dir) { + $${1}.value = $$dir + export($${1}.value) + $${1}.cache += value + export($${1}.cache) + return(true) + } + } + return(false) +} + +defineTest(qtConfTest_qpaDefaultPlatform) { + name = + !isEmpty(config.input.qpa_default_platform): name = $$config.input.qpa_default_platform + else: !isEmpty(QT_QPA_DEFAULT_PLATFORM): name = $$QT_QPA_DEFAULT_PLATFORM + else: winrt: name = winrt + else: win32: name = windows + else: android: name = android + else: macos: name = cocoa + else: ios: name = ios + else: qnx: name = qnx + else: integrity: name = integrityfb + else: name = xcb + + $${1}.value = $$name + $${1}.plugin = q$$name + $${1}.name = "\"$$name\"" + export($${1}.value) + export($${1}.plugin) + export($${1}.name) + $${1}.cache += value plugin name + export($${1}.cache) + return(true) +} diff --git a/src/gui/kernel/qtguiglobal.h b/src/gui/kernel/qtguiglobal.h index f0e64fbc53..8a7409e3d9 100644 --- a/src/gui/kernel/qtguiglobal.h +++ b/src/gui/kernel/qtguiglobal.h @@ -41,6 +41,7 @@ #define QTGUIGLOBAL_H #include +#include QT_BEGIN_NAMESPACE diff --git a/src/gui/kernel/qtguiglobal_p.h b/src/gui/kernel/qtguiglobal_p.h index fd04b8ff95..d2c0b3c5d1 100644 --- a/src/gui/kernel/qtguiglobal_p.h +++ b/src/gui/kernel/qtguiglobal_p.h @@ -53,5 +53,6 @@ #include #include +#include #endif // QTGUIGLOBAL_P_H diff --git a/src/network/configure.json b/src/network/configure.json new file mode 100644 index 0000000000..a647439b19 --- /dev/null +++ b/src/network/configure.json @@ -0,0 +1,216 @@ +{ + "module": "network", + "depends": [ + "core" + ], + "testDir": "../../config.tests", + + "commandline": { + "assignments": { + "OPENSSL_LIBS": "openssl.libs", + "OPENSSL_LIBS_DEBUG": "openssl.libs.debug", + "OPENSSL_LIBS_RELEASE": "openssl.libs.release", + "OPENSSL_PATH": "openssl.prefix" + }, + "options": { + "libproxy": "boolean", + "openssl": { "type": "optionalString", "values": [ "no", "yes", "linked", "runtime" ] }, + "openssl-linked": { "type": "void", "name": "openssl", "value": "linked" }, + "openssl-runtime": { "type": "void", "name": "openssl", "value": "runtime" }, + "sctp": "boolean", + "securetransport": "boolean", + "ssl": "boolean", + "system-proxies": "boolean" + } + }, + + "libraries": { + "corewlan": { + "description": "CoreWLan", + "export": "", + "test": "mac/corewlan", + "sources": [ + "-framework CoreWLAN -framework Foundation" + ] + }, + "network": { + "export": "", + "sources": [ + { "type": "makeSpec", "spec": "NETWORK" } + ] + }, + "libproxy": { + "description": "libproxy", + "test": "common/libproxy", + "sources": [ + "-lproxy" + ] + }, + "openssl": { + "description": "OpenSSL Libraries", + "export": "", + "sources": [ + { "type": "openssl" }, + { + "comment": "placeholder for OPENSSL_LIBS{,_{DEBUG,RELEASE}}", + "libs": "", + "builds": { + "debug": "", + "release": "" + }, + "condition": "config.win32 && !features.shared" + }, + { "libs": "-lssleay32 -llibeay32", "condition": "config.win32 && features.shared" }, + { "libs": "-lssl -lcrypto", "condition": "!config.win32" } + ] + } + }, + + "tests": { + "getaddrinfo": { + "description": "getaddrinfo()", + "type": "compile", + "test": "unix/getaddrinfo", + "use": "network" + }, + "getifaddrs": { + "description": "getifaddrs()", + "type": "compile", + "test": "unix/getifaddrs", + "use": "network" + }, + "ipv6ifname": { + "description": "IPv6 ifname", + "type": "compile", + "test": "unix/ipv6ifname", + "use": "network" + }, + "openssl": { + "description": "OpenSSL", + "type": "compile", + "test": "unix/openssl" + }, + "sctp": { + "description": "SCTP support", + "type": "compile", + "test": "unix/sctp", + "use": "network" + } + }, + + "features": { + "corewlan": { + "description": "CoreWLan", + "condition": "libs.corewlan", + "emitIf": "config.darwin", + "output": [ "feature", "privateFeature" ] + }, + "getaddrinfo": { + "description": "getaddrinfo()", + "condition": "tests.getaddrinfo", + "output": [ "feature" ] + }, + "getifaddrs": { + "description": "getifaddrs()", + "condition": "tests.getifaddrs", + "output": [ "feature" ] + }, + "ipv6ifname": { + "description": "IPv6 ifname", + "condition": "tests.ipv6ifname", + "output": [ "feature" ] + }, + "libproxy": { + "description": "libproxy", + "autoDetect": false, + "condition": "libs.libproxy", + "output": [ "privateFeature" ] + }, + "openssl": { + "description": "OpenSSL", + "enable": "input.openssl == 'yes' || input.openssl == 'linked' || input.openssl == 'runtime'", + "disable": "input.openssl == 'no' || input.ssl == 'no'", + "autoDetect": "!config.winrt", + "condition": "!features.securetransport && tests.openssl", + "output": [ + "privateFeature", + { "type": "publicQtConfig", "condition": "!features.openssl-linked" }, + { "type": "define", "negative": true, "name": "QT_NO_OPENSSL" } + ] + }, + "openssl-linked": { + "description": " Qt directly linked to OpenSSL", + "enable": "input.openssl == 'linked'", + "disable": "input.openssl != 'linked'", + "condition": "features.openssl && libs.openssl", + "output": [ + "privateFeature", + { "type": "varAssign", "name": "OPENSSL_LIBS", "value": "libs.openssl.libs", "eval": "true" }, + { "type": "varAssign", "name": "OPENSSL_LIBS_DEBUG", "value": "libs.openssl.builds.debug.libs", + "eval": "true", "condition": "config.win32" }, + { "type": "varAssign", "name": "OPENSSL_LIBS_RELEASE", "value": "libs.openssl.builds.release.libs", + "eval": "true", "condition": "config.win32" }, + { "type": "define", "name": "QT_LINKED_OPENSSL" } + ] + }, + "securetransport": { + "description": "SecureTransport", + "disable": "input.securetransport == 'no' || input.ssl == 'no'", + "condition": "config.darwin && (input.openssl == '' || input.openssl == 'no')", + "output": [ + "privateFeature", + { "type": "define", "name": "QT_SECURETRANSPORT" } + ] + }, + "ssl": { + "description": "SSL", + "condition": "config.winrt || features.securetransport || features.openssl", + "output": [ "publicFeature", "feature" ] + }, + "sctp": { + "description": "SCTP", + "autoDetect": false, + "condition": "tests.sctp", + "output": [ "publicFeature", "feature" ] + }, + "system-proxies": { + "description": "Use system proxies", + "output": [ "privateFeature" ] + } + }, + + "report": [ + { + "type": "note", + "condition": "features.openssl-linked && libs.openssl.source != 0 + && input.openssl.prefix == '' && input.openssl.libs == '' && input.openssl.libs.debug == ''", + "message": "When linking against OpenSSL, you can override the default +library names through OPENSSL_LIBS. +For example: + OPENSSL_LIBS='-L/opt/ssl/lib -lssl -lcrypto' ./configure -openssl-linked" + } + ], + + "summary": [ + { + "section": "Qt Network", + "entries": [ + { + "type": "feature", + "args": "corewlan", + "condition": "config.darwin" + }, + "getaddrinfo", "getifaddrs", "ipv6ifname", "libproxy", + { + "type": "feature", + "args": "securetransport", + "condition": "config.darwin" + }, + "openssl", + "openssl-linked", + "sctp", + "system-proxies" + ] + } + ] +} diff --git a/src/network/configure.pri b/src/network/configure.pri new file mode 100644 index 0000000000..57568902e4 --- /dev/null +++ b/src/network/configure.pri @@ -0,0 +1,12 @@ +# custom tests + +defineTest(qtConfLibrary_openssl) { + libs = $$getenv("OPENSSL_LIBS") + !isEmpty(libs) { + $${1}.libs = $$libs + export($${1}.libs) + return(true) + } + return(false) +} + diff --git a/src/network/kernel/qtnetworkglobal.h b/src/network/kernel/qtnetworkglobal.h index 192601970a..586b847816 100644 --- a/src/network/kernel/qtnetworkglobal.h +++ b/src/network/kernel/qtnetworkglobal.h @@ -41,6 +41,7 @@ #define QTNETWORKGLOBAL_H #include +#include QT_BEGIN_NAMESPACE diff --git a/src/network/kernel/qtnetworkglobal_p.h b/src/network/kernel/qtnetworkglobal_p.h index 51347e440d..859e3d9ebd 100644 --- a/src/network/kernel/qtnetworkglobal_p.h +++ b/src/network/kernel/qtnetworkglobal_p.h @@ -53,5 +53,6 @@ #include #include +#include #endif // QTNETWORKGLOBAL_P_H diff --git a/src/network/ssl/qsslcertificate.cpp b/src/network/ssl/qsslcertificate.cpp index 96ba68089d..ce78399e01 100644 --- a/src/network/ssl/qsslcertificate.cpp +++ b/src/network/ssl/qsslcertificate.cpp @@ -111,7 +111,7 @@ \value EmailAddress The email address associated with the certificate */ -#include +#include #ifndef QT_NO_OPENSSL #include "qsslsocket_openssl_symbols_p.h" #endif diff --git a/src/platformsupport/fbconvenience/qfbvthandler_p.h b/src/platformsupport/fbconvenience/qfbvthandler_p.h index e05a9d3ffc..17d07317b2 100644 --- a/src/platformsupport/fbconvenience/qfbvthandler_p.h +++ b/src/platformsupport/fbconvenience/qfbvthandler_p.h @@ -51,6 +51,7 @@ // We mean it. // +#include #include QT_BEGIN_NAMESPACE diff --git a/src/platformsupport/input/evdevtouch/qevdevtouchhandler_p.h b/src/platformsupport/input/evdevtouch/qevdevtouchhandler_p.h index b29aa3a793..6554d4998c 100644 --- a/src/platformsupport/input/evdevtouch/qevdevtouchhandler_p.h +++ b/src/platformsupport/input/evdevtouch/qevdevtouchhandler_p.h @@ -51,6 +51,7 @@ // We mean it. // +#include #include #include #include diff --git a/src/plugins/bearer/bearer.pro b/src/plugins/bearer/bearer.pro index 8078a5708c..b362722b28 100644 --- a/src/plugins/bearer/bearer.pro +++ b/src/plugins/bearer/bearer.pro @@ -1,4 +1,5 @@ TEMPLATE = subdirs +QT_FOR_CONFIG += network-private !android:linux*:qtHaveModule(dbus) { SUBDIRS += generic diff --git a/src/plugins/generic/generic.pro b/src/plugins/generic/generic.pro index c0a81d4dc8..69e832906b 100644 --- a/src/plugins/generic/generic.pro +++ b/src/plugins/generic/generic.pro @@ -1,4 +1,5 @@ TEMPLATE = subdirs +QT_FOR_CONFIG += gui-private load(qfeatures) diff --git a/src/plugins/imageformats/imageformats.pro b/src/plugins/imageformats/imageformats.pro index d2588c1b18..9d1c0c8fdf 100644 --- a/src/plugins/imageformats/imageformats.pro +++ b/src/plugins/imageformats/imageformats.pro @@ -1,4 +1,5 @@ TEMPLATE = subdirs +QT_FOR_CONFIG += gui-private qtConfig(ico): SUBDIRS += ico qtConfig(jpeg): SUBDIRS += jpeg diff --git a/src/plugins/platforminputcontexts/platforminputcontexts.pro b/src/plugins/platforminputcontexts/platforminputcontexts.pro index f22b8b69db..ed6b1b8702 100644 --- a/src/plugins/platforminputcontexts/platforminputcontexts.pro +++ b/src/plugins/platforminputcontexts/platforminputcontexts.pro @@ -1,4 +1,5 @@ TEMPLATE = subdirs +QT_FOR_CONFIG += gui-private qtHaveModule(dbus) { !mac:!win32:SUBDIRS += ibus diff --git a/src/plugins/platforms/eglfs/deviceintegration/deviceintegration.pro b/src/plugins/platforms/eglfs/deviceintegration/deviceintegration.pro index b46b04d149..d86a67b4f4 100644 --- a/src/plugins/platforms/eglfs/deviceintegration/deviceintegration.pro +++ b/src/plugins/platforms/eglfs/deviceintegration/deviceintegration.pro @@ -1,4 +1,5 @@ TEMPLATE = subdirs +QT_FOR_CONFIG += gui-private qtConfig(egl_x11): SUBDIRS += eglfs_x11 qtConfig(eglfs_gbm): SUBDIRS += eglfs_kms_support eglfs_kms diff --git a/src/plugins/platforms/platforms.pro b/src/plugins/platforms/platforms.pro index fcfebf6e94..938e63d95a 100644 --- a/src/plugins/platforms/platforms.pro +++ b/src/plugins/platforms/platforms.pro @@ -1,4 +1,5 @@ TEMPLATE = subdirs +QT_FOR_CONFIG += gui-private android: SUBDIRS += android diff --git a/src/plugins/platforms/xcb/gl_integrations/gl_integrations.pro b/src/plugins/platforms/xcb/gl_integrations/gl_integrations.pro index 0cdee03f62..b8f878ffe8 100644 --- a/src/plugins/platforms/xcb/gl_integrations/gl_integrations.pro +++ b/src/plugins/platforms/xcb/gl_integrations/gl_integrations.pro @@ -1,4 +1,5 @@ TEMPLATE = subdirs +QT_FOR_CONFIG += gui-private qtConfig(egl):qtConfig(egl_x11):qtConfig(opengl) { SUBDIRS += xcb_egl diff --git a/src/plugins/platforms/xcb/qxcbconnection.h b/src/plugins/platforms/xcb/qxcbconnection.h index 6ad8a36460..f6ba828a15 100644 --- a/src/plugins/platforms/xcb/qxcbconnection.h +++ b/src/plugins/platforms/xcb/qxcbconnection.h @@ -43,6 +43,7 @@ #include #include +#include #include "qxcbexport.h" #include #include diff --git a/src/plugins/platforms/xcb/xcb.pro b/src/plugins/platforms/xcb/xcb.pro index 7840a4583f..0d27645a60 100644 --- a/src/plugins/platforms/xcb/xcb.pro +++ b/src/plugins/platforms/xcb/xcb.pro @@ -1,5 +1,6 @@ TEMPLATE = subdirs CONFIG += ordered +QT_FOR_CONFIG += gui-private !qtConfig(system-xcb): SUBDIRS += xcb-static diff --git a/src/plugins/platformthemes/platformthemes.pro b/src/plugins/platformthemes/platformthemes.pro index 166b39ce8c..0e2812bed3 100644 --- a/src/plugins/platformthemes/platformthemes.pro +++ b/src/plugins/platformthemes/platformthemes.pro @@ -1,3 +1,4 @@ TEMPLATE = subdirs +QT_FOR_CONFIG += widgets-private -qtConfig(gtk3): SUBDIRS += gtk3 +qtHaveModule(widgets):qtConfig(gtk3): SUBDIRS += gtk3 diff --git a/src/plugins/printsupport/printsupport.pro b/src/plugins/printsupport/printsupport.pro index 55feaba40c..05cf1bc0b2 100644 --- a/src/plugins/printsupport/printsupport.pro +++ b/src/plugins/printsupport/printsupport.pro @@ -1,5 +1,5 @@ -QT += printsupport TEMPLATE = subdirs +QT_FOR_CONFIG += printsupport-private osx: SUBDIRS += cocoa win32: SUBDIRS += windows diff --git a/src/plugins/sqldrivers/sqldrivers.pro b/src/plugins/sqldrivers/sqldrivers.pro index afd2008826..30fb6019ce 100644 --- a/src/plugins/sqldrivers/sqldrivers.pro +++ b/src/plugins/sqldrivers/sqldrivers.pro @@ -1,4 +1,5 @@ TEMPLATE = subdirs +QT_FOR_CONFIG += sql qtConfig(sql-psql) : SUBDIRS += psql qtConfig(sql-mysql) : SUBDIRS += mysql diff --git a/src/printsupport/configure.json b/src/printsupport/configure.json new file mode 100644 index 0000000000..986bb9d678 --- /dev/null +++ b/src/printsupport/configure.json @@ -0,0 +1,42 @@ +{ + "module": "printsupport", + "depends": [ + "core", + "gui", + "widgets" + ], + "testDir": "../../config.tests", + + "commandline": { + "options": { + "cups": "boolean" + } + }, + + "libraries": { + "cups": { + "description": "CUPS", + "test": "unix/cups", + "sources": [ + "-lcups" + ] + } + }, + + "features": { + "cups": { + "description": "CUPS", + "condition": "libs.cups", + "output": [ "privateFeature", "feature" ] + } + }, + + "summary": [ + { + "section": "Qt PrintSupport", + "entries": [ + "cups" + ] + } + ] +} diff --git a/src/printsupport/kernel/qtprintsupportglobal.h b/src/printsupport/kernel/qtprintsupportglobal.h index c060b98958..67779af5a2 100644 --- a/src/printsupport/kernel/qtprintsupportglobal.h +++ b/src/printsupport/kernel/qtprintsupportglobal.h @@ -41,6 +41,7 @@ #define QTPRINTSUPPORTGLOBAL_H #include +#include QT_BEGIN_NAMESPACE diff --git a/src/sql/configure.json b/src/sql/configure.json new file mode 100644 index 0000000000..2277fcb546 --- /dev/null +++ b/src/sql/configure.json @@ -0,0 +1,201 @@ +{ + "module": "sql", + "depends": [ + "core" + ], + "testDir": "../../config.tests", + + "commandline": { + "assignments": { + "MYSQL_PATH": "mysql.prefix", + "PSQL_LIBS": "psql.libs", + "SYBASE": "tds.prefix", + "SYBASE_LIBS": "tds.libs" + }, + "options": { + "mysql_config": "string", + "psql_config": "string", + "sqlite": { "type": "enum", "name": "system-sqlite", "values": { "qt": "no", "system": "yes" } }, + "sql-db2": "boolean", + "sql-ibase": "boolean", + "sql-mysql": "boolean", + "sql-oci": "boolean", + "sql-odbc": "boolean", + "sql-psql": "boolean", + "sql-sqlite": "boolean", + "sql-sqlite2": "boolean", + "sql-tds": "boolean", + "plugin-sql-db2": { "type": "void", "name": "sql-db2" }, + "plugin-sql-ibase": { "type": "void", "name": "sql-ibase" }, + "plugin-sql-mysql": { "type": "void", "name": "sql-mysql" }, + "plugin-sql-oci": { "type": "void", "name": "sql-oci" }, + "plugin-sql-odbc": { "type": "void", "name": "sql-odbc" }, + "plugin-sql-psql": { "type": "void", "name": "sql-psql" }, + "plugin-sql-sqlite": { "type": "void", "name": "sql-sqlite" }, + "plugin-sql-sqlite2": { "type": "void", "name": "sql-sqlite2" }, + "plugin-sql-tds": { "type": "void", "name": "sql-tds" } + } + }, + + "libraries": { + "db2": { + "description": "DB2 (IBM)", + "test": "unix/db2", + "sources": [ + { "libs": "-ldb2cli", "condition": "config.win32" }, + { "libs": "-ldb2", "condition": "!config.win32" } + ] + }, + "ibase": { + "description": "InterBase", + "test": "unix/ibase", + "sources": [ + { "libs": "-lgds32_ms", "condition": "config.win32" }, + { "libs": "-lgds", "condition": "!config.win32" } + ] + }, + "mysql": { + "description": "MySQL", + "test": "unix/mysql", + "sources": [ + { "type": "mysqlConfig", "query": "--libs_r" }, + { "type": "mysqlConfig", "query": "--libs" }, + { "libs": "-lmysqlclient_r", "condition": "!config.win32" }, + { "libs": "-llibmysql", "condition": "config.win32" }, + { "libs": "-lmysqlclient", "condition": "!config.win32" } + ] + }, + "psql": { + "description": "PostgreSQL", + "test": "unix/psql", + "sources": [ + { "type": "psqlConfig" }, + { "type": "psqlEnv", "libs": "-llibpq -lws2_32 -ladvapi32", "condition": "config.win32" }, + { "type": "psqlEnv", "libs": "-lpq", "condition": "!config.win32" } + ] + }, + "tds": { + "description": "TDS (Sybase)", + "test": "unix/tds", + "sources": [ + { "type": "sybaseEnv", "libs": "-lNTWDBLIB", "condition": "config.win32" }, + { "type": "sybaseEnv", "libs": "-lsybdb", "condition": "!config.win32" } + ] + }, + "oci": { + "description": "OCI (Oracle)", + "test": "unix/oci", + "sources": [ + { "libs": "-loci", "condition": "config.win32" }, + { "libs": "-lclntsh", "condition": "!config.win32" } + ] + }, + "odbc": { + "description": "ODBC", + "test": "unix/odbc", + "sources": [ + { "libs": "-lodbc32", "condition": "config.win32" }, + { "libs": "-liodbc", "condition": "config.darwin" }, + { "libs": "-lodbc", "condition": "!config.win32 && !config.darwin" } + ] + }, + "sqlite2": { + "description": "SQLite (version 2)", + "test": "unix/sqlite2", + "sources": [ + "-lsqlite" + ] + }, + "sqlite3": { + "description": "SQLite (version 3)", + "export": "sqlite", + "test": "unix/sqlite", + "sources": [ + { "type": "pkgConfig", "args": "sqlite3" }, + { "libs": "-lsqlite3", "condition": "config.win32" }, + { "libs": "-lsqlite3 -lz", "condition": "!config.win32" } + ] + } + }, + + "tests": { + }, + + "features": { + "sql-db2": { + "description": "DB2 (IBM)", + "condition": "libs.db2", + "output": [ "publicFeature" ] + }, + "sql-ibase": { + "description": "InterBase", + "condition": "libs.ibase", + "output": [ "publicFeature" ] + }, + "sql-mysql": { + "description": "MySql", + "condition": "libs.mysql", + "output": [ "publicFeature" ] + }, + "use_libmysqlclient_r": { + "description": "MySql (threadsafe)", + "condition": "features.sql-mysql && (libs.mysql.source == 0 || libs.mysql.source == 2)", + "output": [ "privateConfig" ] + }, + "sql-oci": { + "description": "OCI (Oracle)", + "condition": "libs.oci", + "output": [ "publicFeature" ] + }, + "sql-odbc": { + "description": "ODBC", + "condition": "libs.odbc", + "output": [ "publicFeature" ] + }, + "sql-psql": { + "description": "PostgreSQL", + "condition": "libs.psql", + "output": [ "publicFeature" ] + }, + "sql-sqlite2": { + "description": "SQLite2", + "condition": "libs.sqlite2", + "output": [ "publicFeature" ] + }, + "sql-sqlite": { + "description": "SQLite", + "output": [ "publicFeature" ] + }, + "system-sqlite": { + "description": " Using system provided SQLite", + "autoDetect": false, + "condition": "features.sql-sqlite && libs.sqlite3", + "output": [ "publicQtConfig" ] + }, + "sql-tds": { + "description": "TDS (Sybase)", + "condition": "libs.tds", + "output": [ "publicFeature" ] + } + }, + + "report": [ + { + "type": "warning", + "condition": "config.win32 && !config.msvc && features.sql-oci", + "message": "Qt does not support compiling the Oracle database driver with +MinGW, due to lack of such support from Oracle. Consider disabling the +Oracle driver, as the current build will most likely fail." + } + ], + + "summary": [ + { + "section": "Qt Sql", + "entries": [ + "sql-db2", "sql-ibase", "sql-mysql", "sql-oci", "sql-odbc", "sql-psql", + "sql-sqlite2", "sql-sqlite", "system-sqlite", "sql-tds" + ] + } + ] +} diff --git a/src/sql/configure.pri b/src/sql/configure.pri new file mode 100644 index 0000000000..948808f4f7 --- /dev/null +++ b/src/sql/configure.pri @@ -0,0 +1,89 @@ +# custom tests + +defineReplace(filterLibraryPath) { + str = $${1} + for (l, QMAKE_DEFAULT_LIBDIRS): \ + str -= "-L$$l" + + return($$str) +} + +defineTest(qtConfLibrary_psqlConfig) { + pg_config = $$config.input.psql_config + isEmpty(pg_config): \ + pg_config = $$qtConfFindInPath("pg_config") + !win32:!isEmpty(pg_config) { + qtRunLoggedCommand("$$pg_config --libdir", libdir)|return(false) + qtRunLoggedCommand("$$pg_config --includedir", includedir)|return(false) + libdir -= $$QMAKE_DEFAULT_LIBDIRS + libs = + !isEmpty(libdir): libs += "-L$$libdir" + libs += "-lpq" + $${1}.libs = "$$val_escape(libs)" + includedir -= $$QMAKE_DEFAULT_INCDIRS + $${1}.includedir = "$$val_escape(includedir)" + !isEmpty(includedir): \ + $${1}.cflags = "-I$$val_escape(includedir)" + export($${1}.libs) + export($${1}.includedir) + export($${1}.cflags) + return(true) + } + return(false) +} + +defineTest(qtConfLibrary_psqlEnv) { + # Respect PSQL_LIBS if set + PSQL_LIBS = $$getenv(PSQL_LIBS) + !isEmpty(PSQL_LIBS) { + $${1}.libs = $$PSQL_LIBS + export($${1}.libs) + } + return(true) +} + +defineTest(qtConfLibrary_mysqlConfig) { + mysql_config = $$config.input.mysql_config + isEmpty(mysql_config): \ + mysql_config = $$qtConfFindInPath("mysql_config") + !isEmpty(mysql_config) { + qtRunLoggedCommand("$$mysql_config --version", version)|return(false) + version = $$split(version, '.') + version = $$first(version) + isEmpty(version)|lessThan(version, 4): return(false)] + + # query is either --libs or --libs_r + query = $$eval($${1}.query) + qtRunLoggedCommand("$$mysql_config $$query", libs)|return(false) + qtRunLoggedCommand("$$mysql_config --include", includedir)|return(false) + eval(libs = $$libs) + libs = $$filterLibraryPath($$libs) + # -rdynamic should not be returned by mysql_config, but is on RHEL 6.6 + libs -= -rdynamic + $${1}.libs = "$$val_escape(libs)" + eval(includedir = $$includedir) + includedir ~= s/^-I//g + includedir -= $$QMAKE_DEFAULT_INCDIRS + $${1}.includedir = "$$val_escape(includedir)" + !isEmpty(includedir): \ + $${1}.cflags = "-I$$val_escape(includedir)" + export($${1}.libs) + export($${1}.includedir) + export($${1}.cflags) + return(true) + } + return(false) +} + +defineTest(qtConfLibrary_sybaseEnv) { + libs = + sybase = $$getenv(SYBASE) + !isEmpty(sybase): \ + libs += "-L$${sybase}/lib" + libs += $$getenv(SYBASE_LIBS) + !isEmpty(libs) { + $${1}.libs = "$$val_escape(libs)" + export($${1}.libs) + } + return(true) +} diff --git a/src/src.pro b/src/src.pro index 96a88a62ac..60d6a57e2a 100644 --- a/src/src.pro +++ b/src/src.pro @@ -1,5 +1,9 @@ TEMPLATE = subdirs +QT_FOR_CONFIG += gui-private +include($$OUT_PWD/corelib/qtcore-config.pri) +include($$OUT_PWD/gui/qtgui-config.pri) + src_qtzlib.file = $$PWD/corelib/qtzlib.pro src_qtzlib.target = sub-zlib diff --git a/src/widgets/configure.json b/src/widgets/configure.json new file mode 100644 index 0000000000..23ee540c32 --- /dev/null +++ b/src/widgets/configure.json @@ -0,0 +1,97 @@ +{ + "module": "widgets", + "depends": [ + "core-private", + "gui" + ], + "testDir": "../../config.tests", + + "commandline": { + "options": { + "android-style-assets": "boolean", + "gtk": { "type": "boolean", "name": "gtk3" }, + "style-windows": "boolean", + "style-windowsxp": "boolean", + "style-windowsvista": "boolean", + "style-fusion": "boolean", + "style-mac": "boolean", + "style-android": "boolean" + } + }, + + "libraries": { + "gtk3": { + "description": "GTK+", + "sources": [ + { "type": "pkgConfig", "args": "gtk+-3.0" } + ] + } + }, + + "tests": { + "uxtheme": { + "description": "uxtheme.h", + "type": "files", + "files": [ "uxtheme.h" ] + } + }, + + "features": { + "gtk3": { + "description": "GTK+", + "autoDetect": "!config.darwin", + "condition": "features.glib && libs.gtk3", + "output": [ "privateFeature" ] + }, + "style-fusion": { + "description": "Fusion Style", + "output": [ "styles" ] + }, + "style-mac": { + "description": "Mac Style", + "condition": "config.osx", + "output": [ "styles" ] + }, + "style-windows": { + "description": "Windows Style", + "output": [ "styles" ] + }, + "style-windowsxp": { + "description": "Windows XP Style", + "condition": "features.style-windows && config.win32 && !config.winrt && tests.uxtheme", + "output": [ "styles" ] + }, + "style-windowsvista": { + "description": "Windows Vista Style", + "condition": "features.style-windowsxp", + "output": [ "styles" ] + }, + "style-android": { + "description": "Android Style", + "autoDetect": "config.android", + "output": [ "styles" ] + }, + "android-style-assets": { + "description": "Android Style Assets", + "condition": "features.style-android", + "output": [ "privateConfig" ] + } + }, + + "report": [ + ], + + "summary": [ + { + "section": "Qt Widgets", + "entries": [ + "gtk3", + { + "message": "Styles", + "type": "featureList", + "args": "style-fusion style-mac style-windows style-windowsxp style-windowsvista style-android" + } + ] + } + ] +} diff --git a/src/widgets/configure.pri b/src/widgets/configure.pri new file mode 100644 index 0000000000..ddb3657700 --- /dev/null +++ b/src/widgets/configure.pri @@ -0,0 +1,8 @@ +# custom outputs + +defineTest(qtConfOutput_styles) { + !$${2}: return() + + style = $$replace($${1}.feature, "style-", "") + qtConfOutputVar(append, "privatePro", "styles", $$style) +} diff --git a/src/widgets/kernel/qtwidgetsglobal.h b/src/widgets/kernel/qtwidgetsglobal.h index f6d003e629..1c74f37618 100644 --- a/src/widgets/kernel/qtwidgetsglobal.h +++ b/src/widgets/kernel/qtwidgetsglobal.h @@ -41,6 +41,7 @@ #define QTWIDGETSGLOBAL_H #include +#include QT_BEGIN_NAMESPACE diff --git a/src/widgets/kernel/qtwidgetsglobal_p.h b/src/widgets/kernel/qtwidgetsglobal_p.h index 7dd545415c..22ba876022 100644 --- a/src/widgets/kernel/qtwidgetsglobal_p.h +++ b/src/widgets/kernel/qtwidgetsglobal_p.h @@ -53,5 +53,6 @@ #include #include +#include #endif // QTWIDGETSGLOBAL_P_H diff --git a/src/widgets/styles/styles.pri b/src/widgets/styles/styles.pri index 7b9497172c..69e13fb6ec 100644 --- a/src/widgets/styles/styles.pri +++ b/src/widgets/styles/styles.pri @@ -35,6 +35,8 @@ SOURCES += \ RESOURCES += styles/qstyle.qrc +include($$OUT_PWD/qtwidgets-config.pri) + contains( styles, mac ) { HEADERS += \ styles/qmacstyle_mac_p.h \ diff --git a/tests/auto/corelib/json/json.pro b/tests/auto/corelib/json/json.pro index dc9cd3e383..16c2ae2fb7 100644 --- a/tests/auto/corelib/json/json.pro +++ b/tests/auto/corelib/json/json.pro @@ -1,5 +1,5 @@ TARGET = tst_json -QT = core testlib +QT = core-private testlib CONFIG -= app_bundle CONFIG += testcase diff --git a/tests/auto/corelib/tools/qcollator/qcollator.pro b/tests/auto/corelib/tools/qcollator/qcollator.pro index 7725194e3d..2f3995a75f 100644 --- a/tests/auto/corelib/tools/qcollator/qcollator.pro +++ b/tests/auto/corelib/tools/qcollator/qcollator.pro @@ -1,6 +1,6 @@ CONFIG += testcase TARGET = tst_qcollator -QT = core testlib +QT = core-private testlib SOURCES = tst_qcollator.cpp DEFINES += QT_NO_CAST_TO_ASCII qtConfig(icu): DEFINES += QT_USE_ICU diff --git a/tests/auto/corelib/tools/qstring/qstring.pro b/tests/auto/corelib/tools/qstring/qstring.pro index a94ad3405a..ec8a9b5df5 100644 --- a/tests/auto/corelib/tools/qstring/qstring.pro +++ b/tests/auto/corelib/tools/qstring/qstring.pro @@ -1,6 +1,6 @@ CONFIG += testcase TARGET = tst_qstring -QT = core testlib +QT = core-private testlib SOURCES = tst_qstring.cpp DEFINES += QT_NO_CAST_TO_ASCII qtConfig(icu): DEFINES += QT_USE_ICU diff --git a/tests/auto/gui/image/qmovie/qmovie.pro b/tests/auto/gui/image/qmovie/qmovie.pro index 6a7e23be99..1de428a685 100644 --- a/tests/auto/gui/image/qmovie/qmovie.pro +++ b/tests/auto/gui/image/qmovie/qmovie.pro @@ -1,6 +1,7 @@ CONFIG += testcase TARGET = tst_qmovie QT += testlib +QT_FOR_CONFIG += gui-private qtHaveModule(widgets): QT += widgets SOURCES += tst_qmovie.cpp MOC_DIR=tmp diff --git a/tests/auto/network/access/qnetworkreply/test/test.pro b/tests/auto/network/access/qnetworkreply/test/test.pro index 47e7f5ed15..45a5734305 100644 --- a/tests/auto/network/access/qnetworkreply/test/test.pro +++ b/tests/auto/network/access/qnetworkreply/test/test.pro @@ -5,6 +5,7 @@ SOURCES += ../tst_qnetworkreply.cpp TARGET = ../tst_qnetworkreply QT = core-private network-private testlib +QT_FOR_CONFIG += gui-private RESOURCES += ../qnetworkreply.qrc TESTDATA += ../empty ../rfc3252.txt ../resource ../bigfile ../*.jpg ../certs \ diff --git a/tests/auto/network/socket/socket.pro b/tests/auto/network/socket/socket.pro index 307f7e92de..06fe356a5a 100644 --- a/tests/auto/network/socket/socket.pro +++ b/tests/auto/network/socket/socket.pro @@ -1,4 +1,6 @@ TEMPLATE=subdirs +QT_FOR_CONFIG += network + SUBDIRS=\ qhttpsocketengine \ qudpsocket \ diff --git a/tests/auto/network/ssl/ssl.pro b/tests/auto/network/ssl/ssl.pro index 65e35ea4c0..ec74748f5b 100644 --- a/tests/auto/network/ssl/ssl.pro +++ b/tests/auto/network/ssl/ssl.pro @@ -1,4 +1,6 @@ TEMPLATE=subdirs +QT_FOR_CONFIG += network + SUBDIRS=\ qsslcertificate \ qsslcipher \ diff --git a/tests/auto/other/other.pro b/tests/auto/other/other.pro index 94b5847b2e..0babac4b6f 100644 --- a/tests/auto/other/other.pro +++ b/tests/auto/other/other.pro @@ -1,4 +1,6 @@ TEMPLATE=subdirs +QT_FOR_CONFIG += gui-private + SUBDIRS=\ # atwrapper \ # QTBUG-19452 compiler \ diff --git a/tests/benchmarks/gui/image/qimageconversion/qimageconversion.pro b/tests/benchmarks/gui/image/qimageconversion/qimageconversion.pro index 828f36348d..e152ac8200 100644 --- a/tests/benchmarks/gui/image/qimageconversion/qimageconversion.pro +++ b/tests/benchmarks/gui/image/qimageconversion/qimageconversion.pro @@ -1,6 +1,7 @@ TEMPLATE = app TARGET = tst_bench_imageConversion QT += testlib +QT_FOR_CONFIG += gui-private SOURCES += tst_qimageconversion.cpp qtConfig(gif): DEFINES += QTEST_HAVE_GIF diff --git a/tests/benchmarks/gui/image/qimagereader/qimagereader.pro b/tests/benchmarks/gui/image/qimagereader/qimagereader.pro index 7de1eedbdf..33e0c50bba 100644 --- a/tests/benchmarks/gui/image/qimagereader/qimagereader.pro +++ b/tests/benchmarks/gui/image/qimagereader/qimagereader.pro @@ -1,4 +1,5 @@ QT += testlib +QT_FOR_CONFIG += gui-private TEMPLATE = app TARGET = tst_bench_qimagereader diff --git a/tests/benchmarks/network/network.pro b/tests/benchmarks/network/network.pro index 01b3b80ef4..d53041eb61 100644 --- a/tests/benchmarks/network/network.pro +++ b/tests/benchmarks/network/network.pro @@ -1,4 +1,6 @@ TEMPLATE = subdirs +QT_FOR_CONFIG += network-private + SUBDIRS = \ access \ kernel \ -- cgit v1.2.3 From b754b2815d342334f335816b901c051940954942 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Fri, 26 Aug 2016 21:10:56 +0200 Subject: rename description => label in configure.json "description" suggests something slightly longer. this may seem like a gratuitous change, but the upcoming replacement of the old feature system clarifies makes it seem much less so. Change-Id: Ibe702e01cb146b59127bf1f990b4acaef1c61d55 Reviewed-by: Lars Knoll --- configure.json | 272 +++++++++++++++++++------------------- configure.pri | 6 +- mkspecs/features/qt_configure.prf | 14 +- src/corelib/configure.json | 118 ++++++++--------- src/gui/configure.json | 212 ++++++++++++++--------------- src/network/configure.json | 38 +++--- src/printsupport/configure.json | 4 +- src/sql/configure.json | 40 +++--- src/widgets/configure.json | 20 +-- 9 files changed, 362 insertions(+), 362 deletions(-) diff --git a/configure.json b/configure.json index 2c37957914..f26187f633 100644 --- a/configure.json +++ b/configure.json @@ -149,7 +149,7 @@ "libraries": { "zlib": { - "description": "zlib", + "label": "zlib", "test": "unix/zlib", "sources": [ { "libs": "-lzdll", "condition": "config.msvc" }, @@ -157,7 +157,7 @@ ] }, "alsa": { - "description": "ALSA", + "label": "ALSA", "export": "", "test": "unix/alsa", "sources": [ @@ -165,14 +165,14 @@ ] }, "pulseaudio": { - "description": "PulseAudio >= 0.9.10", + "label": "PulseAudio >= 0.9.10", "test": "unix/pulseaudio", "sources": [ { "type": "pkgConfig", "args": "libpulse >= 0.9.10 libpulse-mainloop-glib" } ] }, "gstreamer_1_0": { - "description": "GStreamer 1.0", + "label": "GStreamer 1.0", "export": "", "test": "unix/gstreamer", "sources": [ @@ -181,7 +181,7 @@ ] }, "gstreamer_0_10": { - "description": "GStreamer 0.10", + "label": "GStreamer 0.10", "export": "", "test": "unix/gstreamer", "sources": [ @@ -190,7 +190,7 @@ ] }, "dbus": { - "description": "D-Bus >= 1.2", + "label": "D-Bus >= 1.2", "test": "unix/dbus", "sources": [ { "type": "pkgConfig", "args": "dbus-1 >= 1.2" }, @@ -206,7 +206,7 @@ ] }, "host_dbus": { - "description": "D-Bus >= 1.2 (host)", + "label": "D-Bus >= 1.2 (host)", "export": "", "sources": [ { "type": "pkgConfig", "host": true, "args": "dbus-1 >= 1.2" }, @@ -214,7 +214,7 @@ ] }, "libudev": { - "description": "udev", + "label": "udev", "test": "unix/libudev", "sources": [ { "type": "pkgConfig", "args": "libudev" }, @@ -239,18 +239,18 @@ "tests": { "verifyspec": { - "description": "valid makespec", + "label": "valid makespec", "type": "verifySpec", "test": "common/verifyspec" }, "architecture": { - "description": "target architecture", + "label": "target architecture", "type": "architecture", "test": "arch", "log": "arch" }, "host_architecture": { - "description": "host architecture", + "label": "host architecture", "type": "architecture", "test": "arch", "host": true, @@ -258,60 +258,60 @@ "log": "arch" }, "GNUmake": { - "description": "GNU make", + "label": "GNU make", "type": "gnumake" }, "pkg-config": { - "description": "pkg-config", + "label": "pkg-config", "type": "detectPkgConfig" }, "stl": { - "description": "STL compatibility", + "label": "STL compatibility", "type": "compile", "test": "unix/stl" }, "c++14": { - "description": "C++14 support", + "label": "C++14 support", "type": "compile", "test": "common/c++14" }, "c++1z": { - "description": "C++1z support", + "label": "C++1z support", "type": "compile", "test": "common/c++1z" }, "cxx98default": { - "description": "compiler defaulting to C++98", + "label": "compiler defaulting to C++98", "type": "compile", "test": "common/c++98default" }, "compiler": { - "description": "Compiler", + "label": "Compiler", "type": "checkCompiler", "log": "compilerDescription" }, "precompile_header": { - "description": "precompiled header support", + "label": "precompiled header support", "type": "compile", "test": "common/pch" }, "use_gold_linker": { - "description": "gold linker", + "label": "gold linker", "type": "compilerSupportsFlag", "flag": "-fuse-ld=gold" }, "enable_new_dtags": { - "description": "new dtags support", + "label": "new dtags support", "type": "linkerSupportsFlag", "flag": "--enable-new-dtags" }, "reduce_exports": { - "description": "symbol visibility support", + "label": "symbol visibility support", "type": "compile", "test": "unix/reduce_exports" }, "reduce_relocations": { - "description": "-Bsymbolic-functions support", + "label": "-Bsymbolic-functions support", "type": "compile", "test": "unix/reduce_relocs" }, @@ -319,140 +319,140 @@ "type": "buildParts" }, "separate_debug_info": { - "description": "separate debug information support", + "label": "separate debug information support", "type": "compile", "test": "unix/objcopy" }, "sse2": { - "description": "SSE2 instructions", + "label": "SSE2 instructions", "type": "compile", "test": "common/sse2" }, "sse3": { - "description": "SSE3 instructions", + "label": "SSE3 instructions", "type": "compile", "test": "common/sse3" }, "ssse3": { - "description": "SSSE3 instructions", + "label": "SSSE3 instructions", "type": "compile", "test": "common/ssse3" }, "sse4_1": { - "description": "SSE4.1 instructions", + "label": "SSE4.1 instructions", "type": "compile", "test": "common/sse4_1" }, "sse4_2": { - "description": "SSE4.2 instructions", + "label": "SSE4.2 instructions", "type": "compile", "test": "common/sse4_2" }, "avx": { - "description": "AVX instructions", + "label": "AVX instructions", "type": "compile", "test": "common/avx" }, "avx_apple_clang": { - "description": "bugfree AVX support in compiler", + "label": "bugfree AVX support in compiler", "type": "avx_test_apple_clang" }, "avx2": { - "description": "AVX2 instructions", + "label": "AVX2 instructions", "type": "compile", "test": "common/avx2" }, "avx512f": { - "description": "AVX512 F instructions", + "label": "AVX512 F instructions", "type": "compile", "test": "common/avx512", "args": "AVX512=F" }, "avx512er": { - "description": "AVX512 ER instructions", + "label": "AVX512 ER instructions", "type": "compile", "test": "common/avx512", "args": "AVX512=ER" }, "avx512cd": { - "description": "AVX512 CD instructions", + "label": "AVX512 CD instructions", "type": "compile", "test": "common/avx512", "args": "AVX512=CD" }, "avx512pf": { - "description": "AVX512 PF instructions", + "label": "AVX512 PF instructions", "type": "compile", "test": "common/avx512", "args": "AVX512=PF" }, "avx512dq": { - "description": "AVX512 DQ instructions", + "label": "AVX512 DQ instructions", "type": "compile", "test": "common/avx512", "args": "AVX512=DQ" }, "avx512bw": { - "description": "AVX512 BW instructions", + "label": "AVX512 BW instructions", "type": "compile", "test": "common/avx512", "args": "AVX512=BW" }, "avx512vl": { - "description": "AVX512 VL instructions", + "label": "AVX512 VL instructions", "type": "compile", "test": "common/avx512", "args": "AVX512=VL" }, "avx512ifma": { - "description": "AVX512 IFMA instructions", + "label": "AVX512 IFMA instructions", "type": "compile", "test": "common/avx512", "args": "AVX512=IFMA" }, "avx512vbmi": { - "description": "AVX512 VBMI instructions", + "label": "AVX512 VBMI instructions", "type": "compile", "test": "common/avx512", "args": "AVX512=VBMI" }, "mips_dsp": { - "description": "MIPS DSP instructions", + "label": "MIPS DSP instructions", "type": "compile", "test": "unix/mips_dsp" }, "mips_dspr2": { - "description": "MIPS DSPr2 instructions", + "label": "MIPS DSPr2 instructions", "type": "compile", "test": "common/mips_dspr2" }, "neon": { - "description": "NEON instructions", + "label": "NEON instructions", "type": "neon" }, "mremap": { - "description": "mremap()", + "label": "mremap()", "type": "compile", "test": "unix/mremap" }, "posix_fallocate": { - "description": "POSIX fallocate()", + "label": "POSIX fallocate()", "type": "compile", "test": "unix/posix_fallocate" }, "stack_protector": { - "description": "stack protection", + "label": "stack protection", "type": "compilerSupportsFlag", "test": "-fstack-protector-strong" }, "incredibuild_xge": { - "description": "IncrediBuild", + "label": "IncrediBuild", "type": "files", "files": [ "BuildConsole.exe", "xgConsole.exe" ] }, "wmf": { - "description": "WMF", + "label": "WMF", "type": "files", "files": [ "mfapi.h", "mf.lib" ] } @@ -460,7 +460,7 @@ "features": { "shared": { - "description": "Building shared libraries", + "label": "Building shared libraries", "condition": "!config.uikit && !config.integrity", "output": [ "shared", @@ -478,12 +478,12 @@ ] }, "cross_compile": { - "description": "Cross compiling", + "label": "Cross compiling", "condition": "call.crossCompile", "output": [ "publicConfig", "privateConfig" ] }, "cxx98default": { - "description": "Compiler defaults to C++98", + "label": "Compiler defaults to C++98", "condition": "tests.cxx98default", "output": [ { "type": "publicConfig", "name": "c++11" } ] }, @@ -499,16 +499,16 @@ "condition": "input.qmakeArgs != ''" }, "use_gold_linker": { - "description": "Using gold linker", + "label": "Using gold linker", "condition": "!config.msvc && tests.use_gold_linker", "output": [ "privateConfig", "useGoldLinker" ] }, "architecture": { - "description": "Architecture", + "label": "Architecture", "output": [ "architecture" ] }, "pkg-config": { - "description": "Using pkg-config", + "label": "Using pkg-config", "autoDetect": "!config.darwin && !config.win32", "condition": "tests.pkg-config", "output": [ @@ -518,11 +518,11 @@ ] }, "verifyspec": { - "description": "Have valid makespec", + "label": "Have valid makespec", "condition": "tests.verifyspec" }, "developer-build": { - "description": "Developer build", + "label": "Developer build", "autoDetect": false, "output": [ { "type": "define", "name": "QT_BUILD_INTERNAL" }, @@ -531,22 +531,22 @@ ] }, "debug": { - "description": "Build for debugging", + "label": "Build for debugging", "autoDetect": "features.developer-build || config.win32 || config.darwin" }, "debug_and_release": { - "description": "Compile libs in debug and release mode", + "label": "Compile libs in debug and release mode", "autoDetect": "input.debug == ''", "condition": "config.darwin || config.win32", "output": [ "publicFeature", "publicQtConfig", "debugAndRelease" ] }, "force_debug_info": { - "description": "Add debug info in release mode", + "label": "Add debug info in release mode", "autoDetect": false, "output": [ "privateConfig" ] }, "separate_debug_info": { - "description": "Split off debug information", + "label": "Split off debug information", "autoDetect": false, "condition": [ "features.shared", @@ -556,11 +556,11 @@ "output": [ "publicFeature", "publicQtConfig" ] }, "release_tools": { - "description": "Compile tools in release mode", + "label": "Compile tools in release mode", "output": [ "privateFeature", "publicQtConfig" ] }, "simulator_and_device": { - "description": "Build for both simulator and device", + "label": "Build for both simulator and device", "condition": "config.uikit && input.sdk == ''", "output": [ "publicFeature", "publicQtConfig" ] }, @@ -569,39 +569,39 @@ "output": [ "publicFeature", "publicQtConfig" ] }, "rpath": { - "description": "Build with RPATH", + "label": "Build with RPATH", "autoDetect": "var.QMAKE_LFLAGS_RPATH != '' && features.shared", "output": [ "publicFeature", "publicQtConfig" ] }, "rpath_dir": { - "description": "RPATH directory", + "label": "RPATH directory", "enable": "input.rpaths != ''", "autoDetect": false, "output": [ { "type": "varAppend", "name": "EXTRA_RPATHS", "value": "input.rpaths" } ] }, "rtti": { - "description": "Build with RTTI", + "label": "Build with RTTI", "comment": "mkspecs/features/win32/default_pre.prf sets no-rtti. Follow default behavior of configure.exe by overriding with rtti.", "condition": "config.win32", "output": [ "publicConfig" ] }, "force_asserts": { - "description": "Force assertions", + "label": "Force assertions", "autoDetect": false, "output": [ "publicFeature" ] }, "warnings_are_errors": { - "description": "WError", + "label": "WError", "autoDetect": "features.developer-build", "output": [ "privateConfig" ] }, "headersclean": { - "description": "Check for clean headers", + "label": "Check for clean headers", "autoDetect": "features.developer-build", "output": [ "privateConfig" ] }, "framework": { - "description": "Build Apple Frameworks", + "label": "Build Apple Frameworks", "condition": "config.darwin && features.shared", "output": [ { "type": "define", "name": "QT_MAC_FRAMEWORK_BUILD" }, @@ -611,7 +611,7 @@ ] }, "largefile": { - "description": "Large file support", + "label": "Large file support", "condition": "!config.android && !config.integrity && !config.winrt", "output": [ "privateConfig", @@ -619,59 +619,59 @@ ] }, "testcocoon": { - "description": "Testcocoon support", + "label": "Testcocoon support", "autoDetect": false, "output": [ "publicConfig" ] }, "gcov": { - "description": "gcov support", + "label": "gcov support", "autoDetect": false, "output": [ "publicConfig" ] }, "silent": { - "description": "Silent build", + "label": "Silent build", "autoDetect": false, "output": [ "privateConfig" ] }, "sanitize_address": { - "description": "Addresses", + "label": "Addresses", "autoDetect": false, "output": [ "publicConfig" ] }, "sanitize_thread": { - "description": "Threads", + "label": "Threads", "autoDetect": false, "output": [ "publicConfig" ] }, "sanitize_memory": { - "description": "Memory", + "label": "Memory", "autoDetect": false, "output": [ "publicConfig" ] }, "sanitize_undefined": { - "description": "Undefined", + "label": "Undefined", "autoDetect": false, "output": [ "publicConfig" ] }, "sanitizer": { - "description": "Sanitizers", + "label": "Sanitizers", "condition": "features.sanitize_address || features.sanitize_thread || features.sanitize_memory || features.sanitize_undefined", "output": [ "publicConfig" ] }, "GNUmake": { - "description": "GNU make", + "label": "GNU make", "autoDetect": false, "condition": "tests.GNUmake", "output": [ "privateConfig" ] }, "plugin-manifests": { - "description": "Embed manifests in plugins", + "label": "Embed manifests in plugins", "emitIf": "config.win32", "autoDetect": false, "output": [ { "type": "publicConfig", "negative": true, "name": "no_plugin_manifest" } ] }, "profile": { - "description": "GNU profiling support", + "label": "GNU profiling support", "autoDetect": false, "output": [ { "type": "varAppend", "name": "QMAKE_CFLAGS", "value": "'-pg'" }, @@ -680,36 +680,36 @@ ] }, "strip": { - "description": "Strip binaries", + "label": "Strip binaries", "condition": "!features.profile", "output": [ { "type": "privateConfig", "negative": true, "name": "nostrip" } ] }, "stl": { - "description": "STL compatibility", + "label": "STL compatibility", "condition": "tests.stl", "output": [ "publicQtConfig" ] }, "c++11": { - "description": "C++11", + "label": "C++11", "output": [ "publicFeature", "publicQtConfig" ] }, "c++14": { - "description": "C++14", + "label": "C++14", "condition": "features.c++11 && tests.c++14", "output": [ "publicFeature", "publicQtConfig" ] }, "c++1z": { - "description": "C++1z", + "label": "C++1z", "condition": "features.c++14 && tests.c++1z", "output": [ "publicFeature", "publicQtConfig" ] }, "compiler": { - "description": "Compiler version", + "label": "Compiler version", "condition": "tests.compiler", "output": [ "compilerVersion" ] }, "precompile_header": { - "description": "Using precompiled headers", + "label": "Using precompiled headers", "condition": "config.msvc || tests.precompile_header", "output": [ "privateConfig", @@ -717,17 +717,17 @@ ] }, "ltcg": { - "description": "Using LTCG", + "label": "Using LTCG", "autoDetect": false, "output": [ "privateConfig" ] }, "enable_new_dtags": { - "description": "Using new DTAGS", + "label": "Using new DTAGS", "condition": "config.linux && tests.enable_new_dtags", "output": [ "privateConfig" ] }, "reduce_exports": { - "description": "Reduce amount of exported symbols", + "label": "Reduce amount of exported symbols", "condition": "!config.win32 && tests.reduce_exports", "output": [ "privateFeature", @@ -736,7 +736,7 @@ ] }, "reduce_relocations": { - "description": "Reduce amount of relocations", + "label": "Reduce amount of relocations", "condition": "!config.win32 && tests.reduce_relocations", "output": [ "privateFeature", @@ -745,7 +745,7 @@ ] }, "sse2": { - "description": "SSE2", + "label": "SSE2", "condition": "(arch.i386 || arch.x86_64) && tests.sse2", "output": [ "privateConfig", @@ -754,7 +754,7 @@ ] }, "sse3": { - "description": "SSE3", + "label": "SSE3", "condition": "features.sse2 && tests.sse3", "output": [ "privateConfig", @@ -762,7 +762,7 @@ ] }, "ssse3": { - "description": "SSSE3", + "label": "SSSE3", "condition": "features.sse3 && tests.ssse3", "output": [ "privateConfig", @@ -770,7 +770,7 @@ ] }, "sse4_1": { - "description": "SSE4.1", + "label": "SSE4.1", "condition": "features.ssse3 && tests.sse4_1", "output": [ "privateConfig", @@ -778,7 +778,7 @@ ] }, "sse4_2": { - "description": "SSE4.2", + "label": "SSE4.2", "condition": "features.sse4_1 && tests.sse4_2", "output": [ "privateConfig", @@ -786,7 +786,7 @@ ] }, "avx": { - "description": "AVX", + "label": "AVX", "condition": "features.sse4_2 && tests.avx && tests.avx_apple_clang", "output": [ "privateConfig", @@ -794,7 +794,7 @@ ] }, "avx2": { - "description": "AVX2", + "label": "AVX2", "condition": "features.avx && tests.avx2", "output": [ "privateConfig", @@ -802,7 +802,7 @@ ] }, "avx512f": { - "description": "F", + "label": "F", "condition": "features.avx2 && tests.avx512f", "output": [ "privateConfig", @@ -810,7 +810,7 @@ ] }, "avx512er": { - "description": "ER", + "label": "ER", "condition": "features.avx512f && tests.avx512er", "output": [ "privateConfig", @@ -818,7 +818,7 @@ ] }, "avx512cd": { - "description": "CD", + "label": "CD", "condition": "features.avx512f && tests.avx512cd", "output": [ "privateConfig", @@ -826,7 +826,7 @@ ] }, "avx512pf": { - "description": "PF", + "label": "PF", "condition": "features.avx512f && tests.avx512pf", "output": [ "privateConfig", @@ -834,7 +834,7 @@ ] }, "avx512dq": { - "description": "DQ", + "label": "DQ", "condition": "features.avx512f && tests.avx512dq", "output": [ "privateConfig", @@ -842,7 +842,7 @@ ] }, "avx512bw": { - "description": "BW", + "label": "BW", "condition": "features.avx512f && tests.avx512bw", "output": [ "privateConfig", @@ -850,7 +850,7 @@ ] }, "avx512vl": { - "description": "VL", + "label": "VL", "condition": "features.avx512f && tests.avx512vl", "output": [ "privateConfig", @@ -858,7 +858,7 @@ ] }, "avx512ifma": { - "description": "IFMA", + "label": "IFMA", "condition": "features.avx512f && tests.avx512ifma", "output": [ "privateConfig", @@ -866,7 +866,7 @@ ] }, "avx512vbmi": { - "description": "VBMI", + "label": "VBMI", "condition": "features.avx512f && tests.avx512vbmi", "output": [ "privateConfig", @@ -874,7 +874,7 @@ ] }, "mips_dsp": { - "description": "DSP", + "label": "DSP", "condition": "arch.mips && tests.mips_dsp", "output": [ "privateConfig", @@ -882,7 +882,7 @@ ] }, "mips_dspr2": { - "description": "DSPr2", + "label": "DSPr2", "condition": "arch.mips && tests.mips_dspr2", "output": [ "privateConfig", @@ -890,7 +890,7 @@ ] }, "neon": { - "description": "NEON", + "label": "NEON", "condition": "(arch.arm || arch.arm64) && tests.neon", "output": [ "privateConfig", @@ -898,57 +898,57 @@ ] }, "alsa": { - "description": "ALSA", + "label": "ALSA", "condition": "libs.alsa", "output": [ "feature" ] }, "mremap": { - "description": "mremap()", + "label": "mremap()", "condition": "tests.mremap", "output": [ "feature" ] }, "posix_fallocate": { - "description": "POSIX fallocate()", + "label": "POSIX fallocate()", "condition": "tests.posix_fallocate", "output": [ "privateFeature" ] }, "stack-protector-strong": { - "description": "stack protection", + "label": "stack protection", "condition": "config.qnx && tests.stack_protector", "output": [ "publicQtConfig" ] }, "accessibility": { - "description": "Accessibility", + "label": "Accessibility", "output": [ "publicFeature", "feature" ] }, "pulseaudio": { - "description": "PulseAudio", + "label": "PulseAudio", "condition": "libs.pulseaudio", "output": [ "feature" ] }, "system-zlib": { - "description": "Using system zlib", + "label": "Using system zlib", "condition": "libs.zlib", "output": [ "privateFeature" ] }, "concurrent": { - "description": "Qt Concurrent", + "label": "Qt Concurrent", "output": [ "publicFeature", "feature" ] }, "dbus": { - "description": "Qt D-Bus", + "label": "Qt D-Bus", "autoDetect": "!config.uikit && !config.android && !config.winrt", "output": [ "privateFeature", "feature" ] }, "dbus-linked": { - "description": "Qt D-Bus directly linked to libdbus", + "label": "Qt D-Bus directly linked to libdbus", "enable": "input.dbus == 'linked'", "disable": "input.dbus == 'runtime'", "condition": "features.dbus && libs.dbus", "output": [ "privateFeature" ] }, "host-dbus": { - "description": "Qt D-Bus (Host)", + "label": "Qt D-Bus (Host)", "autoDetect": "!config.android", "condition": "libs.host_dbus", "output": [ { "type": "varAppend", "name": "QT_HOST_CFLAGS_DBUS", "value": "libs.host_dbus.cflags", "eval": "true" } ] @@ -957,18 +957,18 @@ "output": [ { "type": "varAppend", "name": "QT_BUILD_PARTS", "value": "tests.build_parts.value" } ] }, "qreal": { - "description": "Type for qreal", + "label": "Type for qreal", "output": [ "qreal" ] }, "gui": { - "description": "Qt Gui", + "label": "Qt Gui", "output": [ "privateFeature", { "type": "publicQtConfig", "negative": true } ] }, "widgets": { - "description": "Qt Widgets", + "label": "Qt Widgets", "condition": "features.gui", "output": [ "privateFeature", @@ -977,57 +977,57 @@ ] }, "libudev": { - "description": "udev", + "label": "udev", "condition": "libs.libudev", "output": [ "privateFeature" ] }, "gstreamer-1_0": { - "description": "GStreamer 1.0", + "label": "GStreamer 1.0", "disable": "input.gstreamer == '0.10' || input.gstreamer == 'no'", "enable": "input.gstreamer == '1.0'", "condition": "libs.gstreamer_1_0", "output": [ { "type": "publicQtConfig", "name": "gstreamer-1.0" } ] }, "gstreamer-0_10": { - "description": "GStreamer 0.10", + "label": "GStreamer 0.10", "disable": "input.gstreamer == 'no'", "enable": "input.gstreamer == '0.10'", "condition": "!features.gstreamer-1_0 && libs.gstreamer_0_10", "output": [ { "type": "publicQtConfig", "name": "gstreamer-0.10" } ] }, "audio-backend": { - "description": "Audio backend", + "label": "Audio backend", "output": [ "publicQtConfig" ] }, "qml-debug": { - "description": "QML debugging", + "label": "QML debugging", "output": [ { "type": "publicQtConfig", "negative": true } ] }, "compile_examples": { - "description": "Compile examples", + "label": "Compile examples", "output": [ "privateConfig" ] }, "incredibuild_xge": { - "description": "IncrediBuild", + "label": "IncrediBuild", "emitIf": "var.QMAKE_HOST.os == 'Windows'", "condition": "tests.incredibuild_xge", "output": [ "publicConfig" ] }, "msvc_mp": { - "description": "Use multiple processors when compiling with MSVC", + "label": "Use multiple processors when compiling with MSVC", "emitIf": "config.msvc", "autoDetect": "false", "output": [ "privateConfig" ] }, "static_runtime": { - "description": "Statically link the C/C++ runtime library", + "label": "Statically link the C/C++ runtime library", "emitIf": "config.win32", "autoDetect": false, "condition": "!features.shared", "output": [ "publicConfig", "publicQtConfig" ] }, "wmf-backend": { - "description": "Windows Media Foundation backend for Qt Multimedia", + "label": "Windows Media Foundation backend for Qt Multimedia", "emitIf": "config.win32", "autoDetect": false, "condition": "tests.wmf", diff --git a/configure.pri b/configure.pri index d68c7dcf7b..e20ccd8bf4 100644 --- a/configure.pri +++ b/configure.pri @@ -66,7 +66,7 @@ defineReplace(qtConfFunc_crossCompile) { defineTest(qtConfTest_architecture) { !qtConfTest_compile($${1}): \ - error("Could not determine $$eval($${1}.description). See config.log for details.") + error("Could not determine $$eval($${1}.label). See config.log for details.") test = $$eval($${1}.test) test_out_dir = $$shadowed($$QMAKE_CONFIG_TESTS_DIR/$$test) @@ -77,13 +77,13 @@ defineTest(qtConfTest_architecture) { else: android:exists($$test_out_dir/libarch.so): \ content = $$cat($$test_out_dir/libarch.so, blob) else: \ - error("$$eval($${1}.description) detection binary not found.") + error("$$eval($${1}.label) detection binary not found.") arch_magic = ".*==Qt=magic=Qt== Architecture:([^\\0]*).*" subarch_magic = ".*==Qt=magic=Qt== Sub-architecture:([^\\0]*).*" !contains(content, $$arch_magic)|!contains(content, $$subarch_magic): \ - error("$$eval($${1}.description) detection binary does not contain expected data.") + error("$$eval($${1}.label) detection binary does not contain expected data.") $${1}.arch = $$replace(content, $$arch_magic, "\\1") $${1}.subarch = $$replace(content, $$subarch_magic, "\\1") diff --git a/mkspecs/features/qt_configure.prf b/mkspecs/features/qt_configure.prf index 79fede1525..af8a0e259d 100644 --- a/mkspecs/features/qt_configure.prf +++ b/mkspecs/features/qt_configure.prf @@ -777,17 +777,17 @@ defineTest(logn) { } defineTest(qtLogTestIntro) { - description = $$eval($${1}.description) - isEmpty(description): return() + label = $$eval($${1}.label) + isEmpty(label): return() - msg = "Checking for $${description}... " + msg = "Checking for $${label}... " log($$msg) $$QMAKE_CONFIG_VERBOSE: log("$$escape_expand(\\n)") write_file($$QMAKE_CONFIG_LOG, msg, append) } defineTest(qtLogTestResult) { - isEmpty($${1}.description): return() + isEmpty($${1}.label): return() !isEmpty($${1}.log) { field = $$eval($${1}.log) @@ -1198,7 +1198,7 @@ defineReplace(qtConfCollectFeatures) { l = for (feature, $$list($${1})) { $$eval($${currentConfig}.features.$${feature}.available): \ - l += $$eval($${currentConfig}.features.$${feature}.description) + l += $$eval($${currentConfig}.features.$${feature}.label) } isEmpty(l): return("") @@ -1214,7 +1214,7 @@ defineReplace(qtConfFindFirstAvailableFeature) { isEmpty($${currentConfig}.features.$${feature}._KEYS_): \ error("Asking for a report on undefined feature $${2}.") $$eval($${currentConfig}.features.$${feature}.available): \ - return($$eval($${currentConfig}.features.$${feature}.description)) + return($$eval($${currentConfig}.features.$${feature}.label)) } return("") @@ -1240,7 +1240,7 @@ defineTest(qtConfReport_feature) { !isEmpty(4): result = "$${4}" } - text = $$eval($${currentConfig}.features.$${2}.description) + text = $$eval($${currentConfig}.features.$${2}.label) qtConfReportPadded($${1}$$text, $$result) } diff --git a/src/corelib/configure.json b/src/corelib/configure.json index 4cccab9f5d..887e1ea5bf 100644 --- a/src/corelib/configure.json +++ b/src/corelib/configure.json @@ -21,21 +21,21 @@ "libraries": { "doubleconversion": { - "description": "DoubleConversion", + "label": "DoubleConversion", "test": "unix/doubleconversion", "sources": [ "-ldouble-conversion" ] }, "glib": { - "description": "GLib", + "label": "GLib", "test": "unix/glib", "sources": [ { "type": "pkgConfig", "args": "glib-2.0 gthread-2.0" } ] }, "gnu_iconv": { - "description": "GNU libiconv", + "label": "GNU libiconv", "export": "iconv", "test": "unix/gnu-libiconv", "sources": [ @@ -43,7 +43,7 @@ ] }, "icu": { - "description": "ICU", + "label": "ICU", "export": "", "test": "unix/icu", "sources": [ @@ -59,7 +59,7 @@ ] }, "journald": { - "description": "journald", + "label": "journald", "test": "unix/journald", "export": "", "sources": [ @@ -68,14 +68,14 @@ ] }, "libatomic": { - "description": "64 bit atomics in libatomic", + "label": "64 bit atomics in libatomic", "test": "common/atomic64", "sources": [ "-latomic" ] }, "libdl": { - "description": "dlopen() in libdl", + "label": "dlopen() in libdl", "export": "", "test": "unix/dlopen", "sources": [ @@ -83,21 +83,21 @@ ] }, "pcre": { - "description": "PCRE", + "label": "PCRE", "test": "unix/pcre", "sources": [ "-lpcre16" ] }, "pps": { - "description": "PPS", + "label": "PPS", "test": "unix/pps", "sources": [ "-lpps" ] }, "slog2": { - "description": "slog2", + "label": "slog2", "test": "unix/slog2", "export": "", "sources": [ @@ -108,92 +108,92 @@ "tests": { "atomic64": { - "description": "64 bit atomics", + "label": "64 bit atomics", "type": "compile", "test": "common/atomic64" }, "atomicfptr": { - "description": "working std::atomic for function pointers", + "label": "working std::atomic for function pointers", "type": "compile", "test": "common/atomicfptr" }, "clock-gettime": { - "description": "clock_gettime()", + "label": "clock_gettime()", "type": "compile", "test": "unix/clock-gettime" }, "clock-monotonic": { - "description": "POSIX monotonic clock", + "label": "POSIX monotonic clock", "type": "compile", "test": "unix/clock-monotonic" }, "cloexec": { - "description": "O_CLOEXEC", + "label": "O_CLOEXEC", "type": "compile", "test": "unix/cloexec" }, "dlopen": { - "description": "dlopen() in libc", + "label": "dlopen() in libc", "type": "compile", "test": "unix/dlopen" }, "eventfd": { - "description": "eventfd", + "label": "eventfd", "type": "compile", "test": "unix/eventfd" }, "posix-iconv": { - "description": "POSIX iconv", + "label": "POSIX iconv", "type": "compile", "test": "unix/iconv" }, "sun-iconv": { - "description": "SUN libiconv", + "label": "SUN libiconv", "type": "compile", "test": "unix/sun-libiconv" }, "inotify": { - "description": "inotify", + "label": "inotify", "type": "compile", "test": "unix/inotify" }, "ipc_sysv": { - "description": "SysV IPC", + "label": "SysV IPC", "type": "compile", "test": "unix/ipc_sysv" }, "ipc_posix": { - "description": "POSIX IPC", + "label": "POSIX IPC", "type": "compile", "test": "unix/ipc_posix" }, "journald": { - "description": "journald", + "label": "journald", "type": "compile", "test": "unix/journald" }, "ppoll": { - "description": "ppoll()", + "label": "ppoll()", "type": "compile", "test": "unix/ppoll" }, "pollts": { - "description": "pollts()", + "label": "pollts()", "type": "compile", "test": "unix/pollts" }, "poll": { - "description": "poll()", + "label": "poll()", "type": "compile", "test": "unix/poll" }, "syslog": { - "description": "syslog", + "label": "syslog", "type": "compile", "test": "unix/syslog" }, "xlocalescanprint": { - "description": "xlocale.h (or equivalents)", + "label": "xlocale.h (or equivalents)", "type": "compile", "test": "common/xlocalescanprint" } @@ -201,111 +201,111 @@ "features": { "clock-gettime": { - "description": "clock_gettime()", + "label": "clock_gettime()", "condition": "tests.clock-gettime", "output": [ "privateFeature" ] }, "clock-monotonic": { - "description": "POSIX monotonic clock", + "label": "POSIX monotonic clock", "condition": "features.clock-gettime && tests.clock-monotonic", "output": [ "feature" ] }, "dlopen": { - "description": "dlopen()", + "label": "dlopen()", "condition": "tests.dlopen || libs.libdl", "output": [ { "type": "define", "negative": true, "name": "QT_NO_DYNAMIC_LIBRARY" } ] }, "libdl": { - "description": "dlopen() in libdl", + "label": "dlopen() in libdl", "condition": "!tests.dlopen && libs.libdl", "output": [ { "type": "privateConfig", "negative": true } ] }, "doubleconversion": { - "description": "DoubleConversion", + "label": "DoubleConversion", "output": [ "privateFeature", "feature" ] }, "system-doubleconversion": { - "description": " Using system DoubleConversion", + "label": " Using system DoubleConversion", "enable": "input.doubleconversion == 'system'", "disable": "input.doubleconversion == 'qt'", "condition": "features.doubleconversion && libs.doubleconversion", "output": [ "privateFeature" ] }, "eventfd": { - "description": "eventfd", + "label": "eventfd", "condition": "tests.eventfd", "output": [ "feature" ] }, "glib": { - "description": "GLib", + "label": "GLib", "autoDetect": "!config.win32", "condition": "libs.glib", "output": [ "privateFeature", "feature" ] }, "iconv": { - "description": "iconv", + "label": "iconv", "condition": "features.posix-libiconv || features.sun-libiconv || features.gnu-libiconv", "output": [ "privateFeature", "feature" ] }, "posix-libiconv": { - "description": "POSIX iconv", + "label": "POSIX iconv", "enable": "input.iconv == 'posix'", "disable": "input.iconv == 'sun' || input.iconv == 'gnu' || input.iconv == 'no'", "condition": "!config.win32 && !config.qnx && !config.android && !config.darwin && tests.posix-iconv" }, "sun-libiconv": { - "description": "SUN iconv", + "label": "SUN iconv", "enable": "input.iconv == 'sun'", "disable": "input.iconv == 'posix' || input.iconv == 'gnu' || input.iconv == 'no'", "condition": "!config.win32 && !config.qnx && !config.android && !config.darwin && !features.posix-libiconv && tests.sun-iconv", "output": [ "privateFeature", "publicQtConfig" ] }, "gnu-libiconv": { - "description": "GNU iconv", + "label": "GNU iconv", "enable": "input.iconv == 'gnu'", "disable": "input.iconv == 'posix' || input.iconv == 'sun' || input.iconv == 'no'", "condition": "!config.win32 && !config.qnx && !config.android && !config.darwin && !features.posix-libiconv && !features.sun-libiconv && libs.gnu_iconv", "output": [ "privateFeature" ] }, "icu": { - "description": "ICU", + "label": "ICU", "autoDetect": "!config.win32", "condition": "libs.icu", "output": [ "privateFeature" ] }, "inotify": { - "description": "inotify", + "label": "inotify", "condition": "tests.inotify", "output": [ "privateFeature", "feature" ] }, "ipc_posix": { - "description": "Using POSIX IPC", + "label": "Using POSIX IPC", "autoDetect": "!config.win32", "condition": "!tests.ipc_sysv && tests.ipc_posix", "output": [ { "type": "define", "name": "QT_POSIX_IPC" } ] }, "journald": { - "description": "journald", + "label": "journald", "autoDetect": false, "condition": "libs.journald", "output": [ "privateConfig" ] }, "std-atomic64": { - "description": "64 bit atomic operations", + "label": "64 bit atomic operations", "condition": "tests.atomic64 || libs.libatomic", "output": [ { "type": "define", "negative": true, "name": "QT_NO_STD_ATOMIC64" } ] }, "libatomic": { - "description": "64 bit atomic operations in libatomic", + "label": "64 bit atomic operations in libatomic", "condition": "!tests.atomic64 && libs.libatomic", "output": [ "privateFeature" ] }, "mimetype": { - "description": "Mimetype handling", + "label": "Mimetype handling", "output": [ "publicFeature", "feature" ] }, "system-pcre": { - "description": "Using system PCRE", + "label": "Using system PCRE", "disable": "input.pcre == 'qt'", "enable": "input.pcre == 'system'", "condition": "libs.pcre", @@ -315,25 +315,25 @@ ] }, "poll_ppoll": { - "description": "Native ppoll()", + "label": "Native ppoll()", "emitIf": "!config.win32", "condition": "tests.ppoll", "output": [ "privateFeature" ] }, "poll_pollts": { - "description": "Native pollts()", + "label": "Native pollts()", "emitIf": "!config.win32", "condition": "!features.poll_ppoll && tests.pollts", "output": [ "privateFeature" ] }, "poll_poll": { - "description": "Native poll()", + "label": "Native poll()", "emitIf": "!config.win32", "condition": "!features.poll_ppoll && !features.poll_pollts && tests.poll", "output": [ "privateFeature" ] }, "poll_select": { - "description": "Emulated poll()", + "label": "Emulated poll()", "emitIf": "!config.win32", "condition": "!features.poll_ppoll && !features.poll_pollts && !features.poll_poll", "output": [ @@ -342,39 +342,39 @@ ] }, "qqnx_pps": { - "description": "PPS", + "label": "PPS", "emitIf": "config.qnx", "condition": "libs.pps", "output": [ "privateConfig" ] }, "qeventtransition": { - "description": "QEventTransition class", + "label": "QEventTransition class", "output": [ "publicFeature" ] }, "sharedmemory": { - "description": "Enable QSharedMemory", + "label": "Enable QSharedMemory", "condition": "config.android || config.win32 || tests.ipc_sysv || tests.ipc_posix", "output": [ { "type": "define", "negative": true, "name": "QT_NO_SHAREDMEMORY" } ] }, "slog2": { - "description": "slog2", + "label": "slog2", "condition": "libs.slog2", "emitIf": "config.qnx", "output": [ "privateConfig" ] }, "syslog": { - "description": "syslog", + "label": "syslog", "autoDetect": false, "condition": "tests.syslog", "output": [ "privateConfig" ] }, "systemsemaphore": { - "description": "Enable QSystemSemaphore", + "label": "Enable QSystemSemaphore", "condition": "config.android || config.win32 || tests.ipc_sysv || tests.ipc_posix", "output": [ { "type": "define", "negative": true, "name": "QT_NO_SYSTEMSEMAPHORE" } ] }, "threadsafe-cloexec": { - "description": "Threadsafe pipe creation", + "label": "Threadsafe pipe creation", "condition": "tests.cloexec", "output": [ "publicQtConfig", diff --git a/src/gui/configure.json b/src/gui/configure.json index c662c0a524..8513bff5d0 100644 --- a/src/gui/configure.json +++ b/src/gui/configure.json @@ -55,14 +55,14 @@ ] }, "directfb": { - "description": "DirectFB", + "label": "DirectFB", "test": "qpa/directfb", "sources": [ { "type": "pkgConfig", "args": "directfb" } ] }, "directwrite": { - "description": "DirectWrite", + "label": "DirectWrite", "export": "", "test": "win/directwrite", "sources": [ @@ -70,7 +70,7 @@ ] }, "drm": { - "description": "KMS", + "label": "KMS", "test": "qpa/kms", "sources": [ { "type": "pkgConfig", "args": "libdrm" }, @@ -78,7 +78,7 @@ ] }, "egl": { - "description": "EGL", + "label": "EGL", "test": "qpa/egl", "sources": [ { "type": "pkgConfig", "args": "egl" }, @@ -86,7 +86,7 @@ ] }, "freetype": { - "description": "FreeType", + "label": "FreeType", "export": "", "test": "unix/freetype", "sources": [ @@ -94,7 +94,7 @@ ] }, "fontconfig": { - "description": "Fontconfig", + "label": "Fontconfig", "test": "unix/fontconfig", "sources": [ { "type": "pkgConfig", "args": "fontconfig freetype2" }, @@ -102,21 +102,21 @@ ] }, "gbm": { - "description": "GBM", + "label": "GBM", "test": "qpa/gbm", "sources": [ { "type": "pkgConfig", "args": "gbm" } ] }, "harfbuzz": { - "description": "HarfBuzz", + "label": "HarfBuzz", "test": "unix/harfbuzz", "sources": [ "-lharfbuzz" ] }, "imf": { - "description": "IMF", + "label": "IMF", "export": "", "test": "unix/qqnx_imf", "sources": [ @@ -124,21 +124,21 @@ ] }, "lgmon": { - "description": "lgmon", + "label": "lgmon", "test": "unix/lgmon", "sources": [ "-llgmon" ] }, "libinput": { - "description": "libinput", + "label": "libinput", "test": "unix/libinput", "sources": [ { "type": "pkgConfig", "args": "libinput" } ] }, "libjpeg": { - "description": "libjpeg", + "label": "libjpeg", "test": "unix/libjpeg", "sources": [ { "libs": "-llibjpeg", "condition": "config.msvc" }, @@ -146,7 +146,7 @@ ] }, "libpng": { - "description": "libpng", + "label": "libpng", "test": "unix/libpng", "sources": [ { "type": "pkgConfig", "args": "libpng" }, @@ -155,7 +155,7 @@ ] }, "mirclient": { - "description": "Mir client libraries", + "label": "Mir client libraries", "export": "", "test": "qpa/mirclient", "sources": [ @@ -163,7 +163,7 @@ ] }, "mtdev": { - "description": "mtdev", + "label": "mtdev", "export": "", "test": "unix/mtdev", "sources": [ @@ -171,7 +171,7 @@ ] }, "opengl": { - "description": "Desktop OpenGL", + "label": "Desktop OpenGL", "test": "unix/opengldesktop", "sources": [ { "type": "pkgConfig", "args": "gl" }, @@ -179,7 +179,7 @@ ] }, "opengl_es2": { - "description": "OpenGL ES 2.0", + "label": "OpenGL ES 2.0", "test": "unix/opengles2", "sources": [ { "type": "pkgConfig", "args": "glesv2" }, @@ -187,14 +187,14 @@ ] }, "tslib": { - "description": "tslib", + "label": "tslib", "test": "unix/tslib", "sources": [ "-lts" ] }, "wayland_server": { - "description": "Wayland Server", + "label": "Wayland Server", "export": "", "test": "qpa/wayland-server", "sources": [ @@ -202,13 +202,13 @@ ] }, "x11sm": { - "description": "X11 session management", + "label": "X11 session management", "sources": [ { "type": "pkgConfig", "args": "sm ice" } ] }, "xcb": { - "description": "XCB >= 1.5 (core)", + "label": "XCB >= 1.5 (core)", "test": "qpa/xcb", "sources": [ { "type": "pkgConfig", "args": "xcb >= 1.5" }, @@ -216,7 +216,7 @@ ] }, "xcb_syslibs": { - "description": "XCB (secondary)", + "label": "XCB (secondary)", "test": "qpa/xcb-syslibs", "sources": [ { "type": "pkgConfig", @@ -225,7 +225,7 @@ ] }, "xcb_xlib": { - "description": "XCB Xlib", + "label": "XCB Xlib", "test": "qpa/xcb-xlib", "sources": [ { "type": "pkgConfig", "args": "X11-xcb x11 xcb" }, @@ -233,7 +233,7 @@ ] }, "xcb_xkb": { - "description": "XCB XKB >= 1.10", + "label": "XCB XKB >= 1.10", "test": "qpa/xcb-xkb", "sources": [ { "type": "pkgConfig", "args": "xcb-xkb >= 1.10 xcb" }, @@ -241,7 +241,7 @@ ] }, "xcb_render": { - "description": "XCB XRender", + "label": "XCB XRender", "test": "qpa/xcb-render", "sources": [ { "type": "pkgConfig", "args": "xcb-renderutil xcb-render xcb" }, @@ -249,7 +249,7 @@ ] }, "xcb_glx": { - "description": "XCB GLX", + "label": "XCB GLX", "test": "qpa/xcb-glx", "sources": [ { "type": "pkgConfig", "args": "xcb-glx xcb" }, @@ -257,7 +257,7 @@ ] }, "xinput2": { - "description": "Xinput2", + "label": "Xinput2", "test": "x11/xinput2", "sources": [ { "type": "pkgConfig", "args": "xi" }, @@ -265,7 +265,7 @@ ] }, "xkbcommon": { - "description": "xkbcommon", + "label": "xkbcommon", "export": "xkbcommon_evdev", "test": "unix/xkbcommon", "sources": [ @@ -273,14 +273,14 @@ ] }, "xkbcommon_x11": { - "description": "xkbcommon-x11 >= 0.4.1", + "label": "xkbcommon-x11 >= 0.4.1", "export": "xkbcommon", "sources": [ { "type": "pkgConfig", "args": "xkbcommon xkbcommon-x11 >= 0.4.1" } ] }, "xrender": { - "description": "XRender", + "label": "XRender", "test": "x11/xrender", "sources": [ "-lXrender" @@ -295,19 +295,19 @@ "tests": { "direct2d": { - "description": "Direct 2D", + "label": "Direct 2D", "type": "compile", "test": "qpa/direct2d", "use": "direct2d" }, "directwrite2": { - "description": "DirectWrite 2", + "label": "DirectWrite 2", "type": "compile", "test": "win/directwrite2", "use": "directwrite" }, "directx": { - "description": "DirectX SDK", + "label": "DirectX SDK", "type": "directX", "files": [ "d3dcompiler.h", @@ -316,70 +316,70 @@ ] }, "egl-x11": { - "description": "EGL on X11", + "label": "EGL on X11", "type": "compile", "test": "qpa/egl-x11", "use": "egl xcb_xlib" }, "egl-brcm": { - "description": "Broadcom EGL (Rasberry Pi)", + "label": "Broadcom EGL (Rasberry Pi)", "type": "compile", "test": "qpa/eglfs-brcm", "use": "egl bcm_host" }, "egl-egldevice": { - "description": "EGLDevice", + "label": "EGLDevice", "type": "compile", "test": "qpa/eglfs-egldevice", "use": "egl" }, "egl-mali": { - "description": "Mali EGL", + "label": "Mali EGL", "type": "compile", "test": "qpa/eglfs-mali", "use": "egl" }, "egl-mali-2": { - "description": "Mali 2 EGL", + "label": "Mali 2 EGL", "type": "compile", "test": "qpa/eglfs-mali-2", "use": "egl" }, "egl-viv": { - "description": "i.Mx6 EGL", + "label": "i.Mx6 EGL", "type": "compile", "test": "qpa/eglfs-viv", "use": "egl" }, "evdev": { - "description": "evdev", + "label": "evdev", "type": "compile", "test": "unix/evdev" }, "linuxfb": { - "description": "LinuxFB", + "label": "LinuxFB", "type": "compile", "test": "qpa/linuxfb" }, "opengles3": { - "description": "OpenGL ES 3.0", + "label": "OpenGL ES 3.0", "type": "compile", "test": "unix/opengles3", "use": "opengl_es2" }, "opengles31": { - "description": "OpenGL ES 3.1", + "label": "OpenGL ES 3.1", "type": "compile", "test": "unix/opengles31", "use": "opengl_es2" }, "qpa_default_platform": { - "description": "default QPA platform", + "label": "default QPA platform", "type": "qpaDefaultPlatform", "log": "value" }, "x11prefix": { - "description": "X11 prefix", + "label": "X11 prefix", "type": "getPkgConfigVariable", "pkg-config-args": "x11", "pkg-config-variable": "prefix", @@ -387,14 +387,14 @@ "log": "value" }, "xkbconfigroot": { - "description": "XKB config root", + "label": "XKB config root", "type": "xkbConfigRoot", "pkg-config-args": "xkeyboard-config", "pkg-config-variable": "xkb_base", "log": "value" }, "xlib": { - "description": "XLib", + "label": "XLib", "type": "compile", "test": "x11/xlib" } @@ -402,12 +402,12 @@ "features": { "accessibility-atspi-bridge": { - "description": "ATSPI Bridge", + "label": "ATSPI Bridge", "condition": "features.accessibility && features.xcb && features.dbus", "output": [ "privateFeature", "feature" ] }, "angle": { - "description": "ANGLE", + "label": "ANGLE", "autoDetect": "features.opengles2 || features.opengl-dynamic", "condition": "config.win32 && tests.directx", "output": [ @@ -416,40 +416,40 @@ ] }, "directfb": { - "description": "DirectFB", + "label": "DirectFB", "autoDetect": false, "condition": "libs.directfb", "output": [ "privateFeature" ] }, "directwrite": { - "description": "DirectWrite", + "label": "DirectWrite", "emitIf": "config.win32", "condition": "libs.directwrite", "output": [ "privateFeature" ] }, "directwrite2": { - "description": "DirectWrite 2", + "label": "DirectWrite 2", "emitIf": "config.win32", "condition": "features.directwrite && tests.directwrite2", "output": [ "privateFeature" ] }, "direct2d": { - "description": "Direct 2D", + "label": "Direct 2D", "autoDetect": false, "condition": "tests.direct2d", "output": [ "privateFeature" ] }, "evdev": { - "description": "evdev", + "label": "evdev", "condition": "tests.evdev", "output": [ "privateFeature" ] }, "freetype": { - "description": "FreeType", + "label": "FreeType", "output": [ "privateFeature", "feature" ] }, "system-freetype": { - "description": " Using system FreeType", + "label": " Using system FreeType", "enable": "input.freetype == 'system'", "disable": "input.freetype == 'qt'", "autoDetect": "!config.win32", @@ -457,21 +457,21 @@ "output": [ "privateFeature" ] }, "fontconfig": { - "description": "Fontconfig", + "label": "Fontconfig", "condition": "!config.win32 && !config.darwin && features.system-freetype && libs.fontconfig", "output": [ "privateFeature", "feature" ] }, "gbm": { - "description": "GBM", + "label": "GBM", "condition": "libs.gbm", "output": [ "publicQtConfig" ] }, "harfbuzz": { - "description": "HarfBuzz", + "label": "HarfBuzz", "output": [ "privateFeature", "feature" ] }, "system-harfbuzz": { - "description": " Using system HarfBuzz", + "label": " Using system HarfBuzz", "enable": "input.harfbuzz == 'system'", "disable": "input.harfbuzz == 'qt'", "autoDetect": "!config.darwin && !config.win32", @@ -479,49 +479,49 @@ "output": [ "privateFeature" ] }, "qqnx_imf": { - "description": "IMF", + "label": "IMF", "emitIf": "config.qnx", "condition": "libs.imf", "output": [ "privateConfig" ] }, "integrityfb": { - "description": "INTEGRITY framebuffer", + "label": "INTEGRITY framebuffer", "condition": "config.integrity", "output": [ "privateFeature" ] }, "kms": { - "description": "KMS", + "label": "KMS", "condition": "libs.drm", "output": [ "publicQtConfig" ] }, "libinput": { - "description": "libinput", + "label": "libinput", "condition": "features.libudev && libs.libinput", "output": [ "privateFeature" ] }, "lgmon": { - "description": "lgmon", + "label": "lgmon", "emitIf": "config.qnx", "condition": "libs.lgmon", "output": [ "privateConfig" ] }, "linuxfb": { - "description": "LinuxFB", + "label": "LinuxFB", "condition": "tests.linuxfb", "output": [ "privateFeature" ] }, "mirclient": { - "description": "Mir client", + "label": "Mir client", "condition": "libs.mirclient", "output": [ "privateFeature" ] }, "mtdev": { - "description": "mtdev", + "label": "mtdev", "condition": "libs.mtdev", "output": [ "privateFeature" ] }, "opengles2": { - "description": "OpenGL ES 2.0", + "label": "OpenGL ES 2.0", "enable": "input.opengl == 'es2'", "disable": "input.opengl == 'desktop' || input.opengl == 'dynamic' || input.opengl == 'no'", "condition": "config.win32 || (!config.watchos && !features.opengl-desktop && libs.opengl_es2)", @@ -533,7 +533,7 @@ ] }, "opengles3": { - "description": "OpenGL ES 3.0", + "label": "OpenGL ES 3.0", "condition": "features.opengles2 && !features.angle && tests.opengles3", "output": [ "publicFeature", @@ -541,7 +541,7 @@ ] }, "opengles31": { - "description": "OpenGL ES 3.1", + "label": "OpenGL ES 3.1", "condition": "features.opengles3 && tests.opengles31", "output": [ "publicFeature", @@ -549,14 +549,14 @@ ] }, "opengl-desktop": { - "description": "Desktop OpenGL", + "label": "Desktop OpenGL", "enable": "input.opengl == 'desktop'", "disable": "input.opengl == 'es2' || input.opengl == 'dynamic' || input.opengl == 'no'", "condition": "(config.win32 && !config.winrt && !features.opengles2 && (config.msvc || libs.opengl)) || (!config.watchos && !config.win32 && libs.opengl)" }, "opengl-dynamic": { - "description": "Dynamic OpenGL", + "label": "Dynamic OpenGL", "enable": "input.opengl == 'dynamic'", "autoDetect": false, "condition": "config.win32 && !config.winrt", @@ -566,69 +566,69 @@ ] }, "opengl": { - "description": "OpenGL", + "label": "OpenGL", "condition": "features.opengl-desktop || features.opengl-dynamic || features.opengles2", "output": [ "publicFeature", "feature" ] }, "egl": { - "description": "EGL", + "label": "EGL", "condition": "features.opengl && (features.angle || libs.egl)", "output": [ "privateFeature", "feature" ] }, "egl_x11": { - "description": "EGL on X11", + "label": "EGL on X11", "condition": "features.egl && tests.egl-x11", "output": [ "privateFeature" ] }, "eglfs": { - "description": "EGLFS", + "label": "EGLFS", "autoDetect": "!config.android && !config.win32", "condition": "features.egl", "output": [ "privateFeature" ] }, "eglfs_brcm": { - "description": "EGLFS Rasberry Pi", + "label": "EGLFS Rasberry Pi", "condition": "features.eglfs && tests.egl-brcm", "output": [ "privateFeature" ] }, "eglfs_egldevice": { - "description": "EGLFS EGLDevice", + "label": "EGLFS EGLDevice", "condition": "features.eglfs && tests.egl-egldevice && features.kms", "output": [ "privateFeature" ] }, "eglfs_gbm": { - "description": "EGLFS GBM", + "label": "EGLFS GBM", "condition": "features.eglfs && features.gbm && features.kms", "output": [ "privateFeature" ] }, "eglfs_mali": { - "description": "EGLFS Mali", + "label": "EGLFS Mali", "condition": "features.eglfs && (tests.egl-mali || tests.egl-mali-2)", "output": [ "privateFeature" ] }, "eglfs_viv": { - "description": "EGLFS i.Mx6", + "label": "EGLFS i.Mx6", "condition": "features.eglfs && tests.egl-viv", "output": [ "privateFeature" ] }, "eglfs_viv_wl": { - "description": "EGLFS i.Mx6 Wayland", + "label": "EGLFS i.Mx6 Wayland", "condition": "features.eglfs_viv && libs.wayland_server", "output": [ "privateFeature" ] }, "gif": { - "description": "GIF", + "label": "GIF", "output": [ "privateFeature", { "type": "define", "negative": true, "name": "QT_NO_IMAGEFORMAT_GIF" } ] }, "ico": { - "description": "ICO", + "label": "ICO", "output": [ "privateFeature", "feature" ] }, "jpeg": { - "description": "JPEG", + "label": "JPEG", "disable": "input.libjpeg == 'no'", "output": [ "privateFeature", @@ -636,14 +636,14 @@ ] }, "system-jpeg": { - "description": " Using system libjpeg", + "label": " Using system libjpeg", "disable": "input.libjpeg == 'qt'", "enable": "input.libjpeg == 'system'", "condition": "features.jpeg && libs.libjpeg", "output": [ "privateFeature" ] }, "png": { - "description": "PNG", + "label": "PNG", "disable": "input.libpng == 'no'", "output": [ "privateFeature", @@ -651,14 +651,14 @@ ] }, "system-png": { - "description": " Using system libpng", + "label": " Using system libpng", "disable": "input.libpng == 'qt'", "enable": "input.libpng == 'system'", "condition": "features.png && libs.libpng", "output": [ "privateFeature" ] }, "qpa_default_platform": { - "description": "QPA default platform", + "label": "QPA default platform", "condition": "features.gui", "output": [ { "type": "define", "name": "QT_QPA_DEFAULT_PLATFORM_NAME", "value": "tests.qpa_default_platform.name" }, @@ -667,22 +667,22 @@ ] }, "sessionmanager": { - "description": "Session Management", + "label": "Session Management", "output": [ "feature" ] }, "tslib": { - "description": "tslib", + "label": "tslib", "condition": "libs.tslib", "output": [ "privateFeature" ] }, "xcb": { - "description": "XCB", + "label": "XCB", "autoDetect": "!config.darwin", "condition": "libs.xcb", "output": [ "privateFeature" ] }, "system-xcb": { - "description": "Using system provided XCB libraries", + "label": "Using system provided XCB libraries", "enable": "input.xcb == 'system' || input.xcb == 'yes'", "disable": "input.xcb == 'qt' || input.xcb == 'no'", "autoDetect": "!config.darwin", @@ -690,46 +690,46 @@ "output": [ "privateFeature" ] }, "x11-prefix": { - "description": "X11 prefix", + "label": "X11 prefix", "emitIf": "features.xcb", "output": [ { "type": "varAssign", "name": "QMAKE_X11_PREFIX", "value": "tests.x11prefix.value" } ] }, "xcb-glx": { - "description": "XCB GLX", + "label": "XCB GLX", "emitIf": "features.xcb", "condition": "libs.xcb_glx", "output": [ "privateFeature" ] }, "xcb-render": { - "description": "XCB render", + "label": "XCB render", "emitIf": "features.system-xcb", "condition": "libs.xcb_render", "output": [ "privateFeature" ] }, "xcb-xlib": { - "description": "XCB Xlib", + "label": "XCB Xlib", "emitIf": "features.xcb", "condition": "libs.xcb_xlib", "output": [ "privateFeature" ] }, "xcb-sm": { - "description": "xcb-sm", + "label": "xcb-sm", "emitIf": "features.xcb", "condition": "features.sessionmanager && libs.x11sm", "output": [ "privateFeature" ] }, "xinput2": { - "description": "Xinput2", + "label": "Xinput2", "condition": "libs.xinput2", "output": [ "privateFeature" ] }, "xkbcommon-evdev": { - "description": "xkbcommon-evdev", + "label": "xkbcommon-evdev", "condition": "libs.xkbcommon", "output": [ "privateFeature" ] }, "xkbcommon-system": { - "description": "Using system-provided xkbcommon", + "label": "Using system-provided xkbcommon", "emitIf": "features.xcb", "enable": "input.xkbcommon == 'system'", "disable": "input.xkbcommon == 'qt' || input.xkbcommon == 'no'", @@ -737,23 +737,23 @@ "output": [ "privateFeature" ] }, "xkb": { - "description": "XCB XKB", + "label": "XCB XKB", "condition": "features.system-xcb && libs.xcb_xkb", "output": [ "privateFeature" ] }, "xkb-config-root": { - "description": "XKB config root", + "label": "XKB config root", "emitIf": "features.xcb", "condition": "features.xcb && !features.xkbcommon-system && tests.xkbconfigroot", "output": [ { "type": "varAssign", "name": "QMAKE_XKB_CONFIG_ROOT", "value": "tests.xkbconfigroot.value"} ] }, "xlib": { - "description": "XLib", + "label": "XLib", "condition": "tests.xlib", "output": [ "privateFeature" ] }, "xrender": { - "description": "Xrender", + "label": "Xrender", "condition": "libs.xrender", "output": [ "privateFeature", "feature" ] } diff --git a/src/network/configure.json b/src/network/configure.json index a647439b19..3372d177c3 100644 --- a/src/network/configure.json +++ b/src/network/configure.json @@ -26,7 +26,7 @@ "libraries": { "corewlan": { - "description": "CoreWLan", + "label": "CoreWLan", "export": "", "test": "mac/corewlan", "sources": [ @@ -40,14 +40,14 @@ ] }, "libproxy": { - "description": "libproxy", + "label": "libproxy", "test": "common/libproxy", "sources": [ "-lproxy" ] }, "openssl": { - "description": "OpenSSL Libraries", + "label": "OpenSSL Libraries", "export": "", "sources": [ { "type": "openssl" }, @@ -68,30 +68,30 @@ "tests": { "getaddrinfo": { - "description": "getaddrinfo()", + "label": "getaddrinfo()", "type": "compile", "test": "unix/getaddrinfo", "use": "network" }, "getifaddrs": { - "description": "getifaddrs()", + "label": "getifaddrs()", "type": "compile", "test": "unix/getifaddrs", "use": "network" }, "ipv6ifname": { - "description": "IPv6 ifname", + "label": "IPv6 ifname", "type": "compile", "test": "unix/ipv6ifname", "use": "network" }, "openssl": { - "description": "OpenSSL", + "label": "OpenSSL", "type": "compile", "test": "unix/openssl" }, "sctp": { - "description": "SCTP support", + "label": "SCTP support", "type": "compile", "test": "unix/sctp", "use": "network" @@ -100,34 +100,34 @@ "features": { "corewlan": { - "description": "CoreWLan", + "label": "CoreWLan", "condition": "libs.corewlan", "emitIf": "config.darwin", "output": [ "feature", "privateFeature" ] }, "getaddrinfo": { - "description": "getaddrinfo()", + "label": "getaddrinfo()", "condition": "tests.getaddrinfo", "output": [ "feature" ] }, "getifaddrs": { - "description": "getifaddrs()", + "label": "getifaddrs()", "condition": "tests.getifaddrs", "output": [ "feature" ] }, "ipv6ifname": { - "description": "IPv6 ifname", + "label": "IPv6 ifname", "condition": "tests.ipv6ifname", "output": [ "feature" ] }, "libproxy": { - "description": "libproxy", + "label": "libproxy", "autoDetect": false, "condition": "libs.libproxy", "output": [ "privateFeature" ] }, "openssl": { - "description": "OpenSSL", + "label": "OpenSSL", "enable": "input.openssl == 'yes' || input.openssl == 'linked' || input.openssl == 'runtime'", "disable": "input.openssl == 'no' || input.ssl == 'no'", "autoDetect": "!config.winrt", @@ -139,7 +139,7 @@ ] }, "openssl-linked": { - "description": " Qt directly linked to OpenSSL", + "label": " Qt directly linked to OpenSSL", "enable": "input.openssl == 'linked'", "disable": "input.openssl != 'linked'", "condition": "features.openssl && libs.openssl", @@ -154,7 +154,7 @@ ] }, "securetransport": { - "description": "SecureTransport", + "label": "SecureTransport", "disable": "input.securetransport == 'no' || input.ssl == 'no'", "condition": "config.darwin && (input.openssl == '' || input.openssl == 'no')", "output": [ @@ -163,18 +163,18 @@ ] }, "ssl": { - "description": "SSL", + "label": "SSL", "condition": "config.winrt || features.securetransport || features.openssl", "output": [ "publicFeature", "feature" ] }, "sctp": { - "description": "SCTP", + "label": "SCTP", "autoDetect": false, "condition": "tests.sctp", "output": [ "publicFeature", "feature" ] }, "system-proxies": { - "description": "Use system proxies", + "label": "Use system proxies", "output": [ "privateFeature" ] } }, diff --git a/src/printsupport/configure.json b/src/printsupport/configure.json index 986bb9d678..6bf4208e9c 100644 --- a/src/printsupport/configure.json +++ b/src/printsupport/configure.json @@ -15,7 +15,7 @@ "libraries": { "cups": { - "description": "CUPS", + "label": "CUPS", "test": "unix/cups", "sources": [ "-lcups" @@ -25,7 +25,7 @@ "features": { "cups": { - "description": "CUPS", + "label": "CUPS", "condition": "libs.cups", "output": [ "privateFeature", "feature" ] } diff --git a/src/sql/configure.json b/src/sql/configure.json index 2277fcb546..d1dc198656 100644 --- a/src/sql/configure.json +++ b/src/sql/configure.json @@ -39,7 +39,7 @@ "libraries": { "db2": { - "description": "DB2 (IBM)", + "label": "DB2 (IBM)", "test": "unix/db2", "sources": [ { "libs": "-ldb2cli", "condition": "config.win32" }, @@ -47,7 +47,7 @@ ] }, "ibase": { - "description": "InterBase", + "label": "InterBase", "test": "unix/ibase", "sources": [ { "libs": "-lgds32_ms", "condition": "config.win32" }, @@ -55,7 +55,7 @@ ] }, "mysql": { - "description": "MySQL", + "label": "MySQL", "test": "unix/mysql", "sources": [ { "type": "mysqlConfig", "query": "--libs_r" }, @@ -66,7 +66,7 @@ ] }, "psql": { - "description": "PostgreSQL", + "label": "PostgreSQL", "test": "unix/psql", "sources": [ { "type": "psqlConfig" }, @@ -75,7 +75,7 @@ ] }, "tds": { - "description": "TDS (Sybase)", + "label": "TDS (Sybase)", "test": "unix/tds", "sources": [ { "type": "sybaseEnv", "libs": "-lNTWDBLIB", "condition": "config.win32" }, @@ -83,7 +83,7 @@ ] }, "oci": { - "description": "OCI (Oracle)", + "label": "OCI (Oracle)", "test": "unix/oci", "sources": [ { "libs": "-loci", "condition": "config.win32" }, @@ -91,7 +91,7 @@ ] }, "odbc": { - "description": "ODBC", + "label": "ODBC", "test": "unix/odbc", "sources": [ { "libs": "-lodbc32", "condition": "config.win32" }, @@ -100,14 +100,14 @@ ] }, "sqlite2": { - "description": "SQLite (version 2)", + "label": "SQLite (version 2)", "test": "unix/sqlite2", "sources": [ "-lsqlite" ] }, "sqlite3": { - "description": "SQLite (version 3)", + "label": "SQLite (version 3)", "export": "sqlite", "test": "unix/sqlite", "sources": [ @@ -123,57 +123,57 @@ "features": { "sql-db2": { - "description": "DB2 (IBM)", + "label": "DB2 (IBM)", "condition": "libs.db2", "output": [ "publicFeature" ] }, "sql-ibase": { - "description": "InterBase", + "label": "InterBase", "condition": "libs.ibase", "output": [ "publicFeature" ] }, "sql-mysql": { - "description": "MySql", + "label": "MySql", "condition": "libs.mysql", "output": [ "publicFeature" ] }, "use_libmysqlclient_r": { - "description": "MySql (threadsafe)", + "label": "MySql (threadsafe)", "condition": "features.sql-mysql && (libs.mysql.source == 0 || libs.mysql.source == 2)", "output": [ "privateConfig" ] }, "sql-oci": { - "description": "OCI (Oracle)", + "label": "OCI (Oracle)", "condition": "libs.oci", "output": [ "publicFeature" ] }, "sql-odbc": { - "description": "ODBC", + "label": "ODBC", "condition": "libs.odbc", "output": [ "publicFeature" ] }, "sql-psql": { - "description": "PostgreSQL", + "label": "PostgreSQL", "condition": "libs.psql", "output": [ "publicFeature" ] }, "sql-sqlite2": { - "description": "SQLite2", + "label": "SQLite2", "condition": "libs.sqlite2", "output": [ "publicFeature" ] }, "sql-sqlite": { - "description": "SQLite", + "label": "SQLite", "output": [ "publicFeature" ] }, "system-sqlite": { - "description": " Using system provided SQLite", + "label": " Using system provided SQLite", "autoDetect": false, "condition": "features.sql-sqlite && libs.sqlite3", "output": [ "publicQtConfig" ] }, "sql-tds": { - "description": "TDS (Sybase)", + "label": "TDS (Sybase)", "condition": "libs.tds", "output": [ "publicFeature" ] } diff --git a/src/widgets/configure.json b/src/widgets/configure.json index 23ee540c32..2c1f8b1e6c 100644 --- a/src/widgets/configure.json +++ b/src/widgets/configure.json @@ -21,7 +21,7 @@ "libraries": { "gtk3": { - "description": "GTK+", + "label": "GTK+", "sources": [ { "type": "pkgConfig", "args": "gtk+-3.0" } ] @@ -30,7 +30,7 @@ "tests": { "uxtheme": { - "description": "uxtheme.h", + "label": "uxtheme.h", "type": "files", "files": [ "uxtheme.h" ] } @@ -38,41 +38,41 @@ "features": { "gtk3": { - "description": "GTK+", + "label": "GTK+", "autoDetect": "!config.darwin", "condition": "features.glib && libs.gtk3", "output": [ "privateFeature" ] }, "style-fusion": { - "description": "Fusion Style", + "label": "Fusion Style", "output": [ "styles" ] }, "style-mac": { - "description": "Mac Style", + "label": "Mac Style", "condition": "config.osx", "output": [ "styles" ] }, "style-windows": { - "description": "Windows Style", + "label": "Windows Style", "output": [ "styles" ] }, "style-windowsxp": { - "description": "Windows XP Style", + "label": "Windows XP Style", "condition": "features.style-windows && config.win32 && !config.winrt && tests.uxtheme", "output": [ "styles" ] }, "style-windowsvista": { - "description": "Windows Vista Style", + "label": "Windows Vista Style", "condition": "features.style-windowsxp", "output": [ "styles" ] }, "style-android": { - "description": "Android Style", + "label": "Android Style", "autoDetect": "config.android", "output": [ "styles" ] }, "android-style-assets": { - "description": "Android Style Assets", + "label": "Android Style Assets", "condition": "features.style-android", "output": [ "privateConfig" ] } -- cgit v1.2.3 From b22471edf9ff666e87b12398460dfd6e761bc24c Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Thu, 8 Sep 2016 15:04:53 +0200 Subject: Make things compile with the printer feature disabled Always include qtprintsupportglobal.h before checking the ifdef, and add ifdef's where they where missing. Change-Id: I535dce33b26955fb0196ea05d54be41fe93e9151 Reviewed-by: Jake Petroules Reviewed-by: Oswald Buddenhagen --- src/printsupport/dialogs/qprintdialog_unix.cpp | 1 + src/printsupport/dialogs/qprintdialog_win.cpp | 2 ++ src/printsupport/kernel/qpaintengine_alpha.cpp | 2 +- src/printsupport/kernel/qplatformprintplugin.cpp | 4 ++++ src/printsupport/kernel/qplatformprintplugin.h | 4 ++++ src/printsupport/kernel/qprintengine_win.cpp | 2 ++ 6 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/printsupport/dialogs/qprintdialog_unix.cpp b/src/printsupport/dialogs/qprintdialog_unix.cpp index 9b08ffe4df..4d8299b115 100644 --- a/src/printsupport/dialogs/qprintdialog_unix.cpp +++ b/src/printsupport/dialogs/qprintdialog_unix.cpp @@ -38,6 +38,7 @@ ****************************************************************************/ #include "qplatformdefs.h" +#include #ifndef QT_NO_PRINTDIALOG diff --git a/src/printsupport/dialogs/qprintdialog_win.cpp b/src/printsupport/dialogs/qprintdialog_win.cpp index 93d09bc745..2e954a508d 100644 --- a/src/printsupport/dialogs/qprintdialog_win.cpp +++ b/src/printsupport/dialogs/qprintdialog_win.cpp @@ -37,6 +37,8 @@ ** ****************************************************************************/ +#include + #ifndef QT_NO_PRINTDIALOG #include "qprintdialog.h" diff --git a/src/printsupport/kernel/qpaintengine_alpha.cpp b/src/printsupport/kernel/qpaintengine_alpha.cpp index 939322cc07..cae5c2f522 100644 --- a/src/printsupport/kernel/qpaintengine_alpha.cpp +++ b/src/printsupport/kernel/qpaintengine_alpha.cpp @@ -37,7 +37,7 @@ ** ****************************************************************************/ -#include +#include #ifndef QT_NO_PRINTER #include diff --git a/src/printsupport/kernel/qplatformprintplugin.cpp b/src/printsupport/kernel/qplatformprintplugin.cpp index b50f43056b..9bc4b61829 100644 --- a/src/printsupport/kernel/qplatformprintplugin.cpp +++ b/src/printsupport/kernel/qplatformprintplugin.cpp @@ -43,6 +43,8 @@ #include "private/qfactoryloader_p.h" #include +#ifndef QT_NO_PRINTER + QT_BEGIN_NAMESPACE Q_GLOBAL_STATIC_WITH_ARGS(QFactoryLoader, loader, @@ -86,3 +88,5 @@ QPlatformPrinterSupport *QPlatformPrinterSupportPlugin::get() } QT_END_NAMESPACE + +#endif diff --git a/src/printsupport/kernel/qplatformprintplugin.h b/src/printsupport/kernel/qplatformprintplugin.h index 3e909519c2..30e8f7938a 100644 --- a/src/printsupport/kernel/qplatformprintplugin.h +++ b/src/printsupport/kernel/qplatformprintplugin.h @@ -53,6 +53,8 @@ #include #include +#ifndef QT_NO_PRINTER + QT_BEGIN_NAMESPACE @@ -74,4 +76,6 @@ public: QT_END_NAMESPACE +#endif + #endif // QPLATFORMPRINTPLUGIN_H diff --git a/src/printsupport/kernel/qprintengine_win.cpp b/src/printsupport/kernel/qprintengine_win.cpp index 36c873c4f6..706a7c4b02 100644 --- a/src/printsupport/kernel/qprintengine_win.cpp +++ b/src/printsupport/kernel/qprintengine_win.cpp @@ -37,6 +37,8 @@ ** ****************************************************************************/ +#include + #ifndef QT_NO_PRINTER #include "qprintengine_win_p.h" -- cgit v1.2.3 From a668c6a6b605ce516f71b9339df53699e85ad248 Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Fri, 26 Aug 2016 21:19:12 +0200 Subject: Convert the old feature system ... to the new qmake based configuration system. This removes the old qfeatures.txt (distributed over configure.json files) and qfeatures.h (distributed over qconfig-.h files). qfeatures.prf is gone without replacement, as attempts to use it would lead to followup errors anyway. Change-Id: I1598de19db937082283a905b9592d3849d2199d0 Reviewed-by: Oswald Buddenhagen --- configure | 16 - configure.json | 7 +- configure.pri | 37 -- examples/network/network.pro | 3 +- examples/widgets/tools/tools.pro | 3 +- mkspecs/common/linux-android.conf | 1 - mkspecs/common/uikit.conf | 2 +- mkspecs/common/winrt_winphone/qmake.conf | 3 +- mkspecs/features/qfeatures.prf | 4 - mkspecs/features/qt_configure.prf | 16 +- mkspecs/integrity-armv7-imx6/qmake.conf | 1 - mkspecs/integrity-armv7/qmake.conf | 1 - mkspecs/integrity-x86/qmake.conf | 1 - mkspecs/qnx-aarch64le-qcc/qmake.conf | 2 +- mkspecs/qnx-armle-v7-qcc/qmake.conf | 2 - mkspecs/qnx-x86-64-qcc/qmake.conf | 2 - mkspecs/qnx-x86-qcc/qmake.conf | 2 - qtbase.pro | 82 +--- src/corelib/configure.json | 177 ++++++++ src/corelib/corelib.pro | 3 +- src/corelib/tools/tools.pri | 2 +- src/gui/configure.json | 192 ++++++++- src/network/configure.json | 58 +++ src/plugins/generic/generic.pro | 6 +- src/plugins/plugins.pro | 11 +- src/printsupport/configure.json | 30 ++ src/src.pro | 2 +- src/widgets/configure.json | 470 +++++++++++++++++++++ src/xml/configure.json | 16 + src/xml/qtxmlglobal.h | 3 + sync.profile | 2 +- tests/auto/corelib/plugin/plugin.pro | 3 +- .../corelib/plugin/qfactoryloader/test/test.pro | 3 +- 33 files changed, 981 insertions(+), 182 deletions(-) delete mode 100644 mkspecs/features/qfeatures.prf create mode 100644 src/xml/configure.json diff --git a/configure b/configure index 81bf483634..789ba4cc74 100755 --- a/configure +++ b/configure @@ -753,21 +753,6 @@ while [ "$#" -gt 0 ]; do opensource) COMMERCIAL_USER="no" ;; - feature-*) - FEATURE=`echo $VAR | sed 's,^[^-]*-\([^-]*\),\1,' | tr 'abcdefghijklmnopqrstuvwxyz-' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` - if grep "^Feature: *${FEATURE} *\$" "$relpath"/src/corelib/global/qfeatures.txt >/dev/null 2>&1; then - F=`echo $VAR | sed 's,^[^-]*-\([^-]*\),\1,'` - if [ "$VAL" = "no" ]; then - F="no-$F" - elif [ "$VAL" != "yes" ] && [ "$VAL" != "unknown" ]; then - UNKNOWN_OPT=yes - fi - CFG_FEATURES="$CFG_FEATURES $F" - else - echo "ERROR: Unknown feature $FEATURE" - UNKNOWN_OPT=yes - fi - ;; confirm-license) if [ "$VAL" = "yes" ]; then OPT_CONFIRM_LICENSE="$VAL" @@ -1894,7 +1879,6 @@ fi cat > "$outpath/config.tests/configure.cfg" </src/corelib/global/qfeatures.txt" \ - " */" -FEATURES_PRI = -for (ft, features) { - !isEmpty(features.$${ft}.depends) { - FEATURES_H += \ - "$${LITERAL_HASH}if !defined(QT_NO_$$ft) && ($$join($$list($$split(features.$${ft}.depends)), ") || defined(QT_NO_", "defined(QT_NO_", ")"))" \ - "$${LITERAL_HASH} define QT_NO_$$ft" \ - "$${LITERAL_HASH}endif" - FEATURES_PRI += \ - "contains(QT_DISABLED_FEATURES, "$$lower($$join($$list($$replace(features.$${ft}.depends, _, -)), "|"))"): \\" \ - " QT_DISABLED_FEATURES += $$lower($$replace(ft, _, -))" - } -} -write_file($$OUT_PWD/src/corelib/global/qfeatures.h, FEATURES_H)|error() -# Create forwarding header -FWD_FEATURES_H = \ - '$${LITERAL_HASH}include "../../src/corelib/global/qfeatures.h"' -write_file($$OUT_PWD/include/QtCore/qfeatures.h, FWD_FEATURES_H)|error() - -no_features = -lines = $$cat($$OUT_PWD/src/corelib/global/qconfig.h, lines) -for (line, lines) { - # We ignore all defines that don't follow the #ifndef + indent pattern. - # This makes it possible to have unchecked defines which are no features. - t = $$replace(line, "^$${LITERAL_HASH} define QT_NO_(\\S+)\\s*$", "\\1") - !isEqual(t, $$line) { - isEmpty(features.$${t}.name): \ - error("qconfig.h disables unknown feature $$t") - no_features += $$t - } -} -for (def, QT_NO_DEFINES) { - !isEmpty(features.$${def}.name): \ - no_features += $$def -} -no_features = $$unique(no_features) - -# Don't simply add these to QT_CONFIG, as then one might expect them to be there without load(qfeatures). -# And we don't want to do that automatically, as the dynamic dependency resolution is somewhat expensive. -FEATURES_PRI = \ - "$${LITERAL_HASH} Features disabled by configure:" \ - "QT_DISABLED_FEATURES =$$lower($$join($$list($$replace(no_features, _, -)), " ", " "))" \ - "$$escape_expand(\\n)$${LITERAL_HASH} Dependencies derived from /src/corelib/global/qfeatures.txt:" \ - $$FEATURES_PRI \ - "QT_DISABLED_FEATURES = \$\$unique(QT_DISABLED_FEATURES)" -write_file($$OUT_PWD/mkspecs/qfeatures.pri, FEATURES_PRI)|error() - -# Files created by us -QMAKE_DISTCLEAN += \ - src/corelib/global/qfeatures.h \ - include/QtCore/qfeatures.h \ - mkspecs/qfeatures.pri - #mkspecs mkspecs.path = $$[QT_HOST_DATA]/mkspecs mkspecs.files = \ - $$OUT_PWD/mkspecs/qconfig.pri $$OUT_PWD/mkspecs/qmodule.pri $$OUT_PWD/mkspecs/qfeatures.pri \ + $$OUT_PWD/mkspecs/qconfig.pri $$OUT_PWD/mkspecs/qmodule.pri \ $$OUT_PWD/mkspecs/qdevice.pri $$OUT_PWD/mkspecs/qhost.pri \ $$files($$PWD/mkspecs/*) mkspecs.files -= $$PWD/mkspecs/modules $$PWD/mkspecs/modules-inst diff --git a/src/corelib/configure.json b/src/corelib/configure.json index 887e1ea5bf..b0c78f5122 100644 --- a/src/corelib/configure.json +++ b/src/corelib/configure.json @@ -244,6 +244,8 @@ }, "iconv": { "label": "iconv", + "purpose": "Provides internationalization on Unix.", + "section": "Internationalization", "condition": "features.posix-libiconv || features.sun-libiconv || features.gnu-libiconv", "output": [ "privateFeature", "feature" ] }, @@ -302,6 +304,8 @@ }, "mimetype": { "label": "Mimetype handling", + "purpose": "Provides MIME type handling.", + "section": "Utilities", "output": [ "publicFeature", "feature" ] }, "system-pcre": { @@ -380,6 +384,179 @@ "publicQtConfig", { "type": "define", "name": "QT_THREADSAFE_CLOEXEC", "value": 1 } ] + }, + "properties": { + "label": "Properties", + "purpose": "Supports scripting Qt-based applications.", + "section": "Kernel", + "output": [ "publicFeature", "feature" ] + }, + "regularexpression": { + "label": "QRegularExpression", + "purpose": "Provides an API to Perl-compatible regular expressions.", + "section": "Kernel", + "output": [ "publicFeature", "feature" ] + }, + "sharedmemory": { + "label": "QSharedMemory", + "purpose": "Provides access to a shared memory segment.", + "section": "Kernel", + "output": [ "publicFeature", "feature" ] + }, + "systemsemaphore": { + "label": "QSystemSemaphore", + "purpose": "Provides a general counting system semaphore.", + "section": "Kernel", + "output": [ "publicFeature", "feature" ] + }, + "xmlstream": { + "label": "XML Streaming APIs", + "purpose": "Provides a simple streaming API for XML.", + "section": "Kernel", + "output": [ "publicFeature", "feature" ] + }, + "xmlstreamreader": { + "label": "QXmlStreamReader", + "purpose": "Provides a well-formed XML parser with a simple streaming API.", + "section": "Kernel", + "condition": "features.xmlstream", + "output": [ "publicFeature", "feature" ] + }, + "xmlstreamwriter": { + "label": "QXmlStreamWriter", + "purpose": "Provides a XML writer with a simple streaming API.", + "section": "Kernel", + "condition": "features.xmlstream", + "output": [ "publicFeature", "feature" ] + }, + "textdate": { + "label": "Text Date", + "purpose": "Supports month and day names in dates.", + "section": "Data structures", + "output": [ "publicFeature", "feature" ] + }, + "datestring": { + "label": "QDate/QTime/QDateTime", + "purpose": "Provides convertion between dates and strings.", + "section": "Data structures", + "condition": "features.textdate", + "output": [ "publicFeature", "feature" ] + }, + "process": { + "label": "QProcess", + "purpose": "Supports external process invocation.", + "section": "File I/O", + "output": [ "publicFeature", "feature" ] + }, + "temporaryfile": { + "label": "QTemporaryFile", + "purpose": "Provides an I/O device that operates on temporary files.", + "section": "File I/O", + "output": [ "publicFeature", "feature" ] + }, + "library": { + "label": "QLibrary", + "purpose": "Provides a wrapper for dynamically loaded libraries.", + "section": "File I/O", + "output": [ "publicFeature", "feature" ] + }, + "settings": { + "label": "QSettings", + "purpose": "Provides persistent application settings.", + "section": "File I/O", + "output": [ "publicFeature", "feature" ] + }, + "filesystemwatcher": { + "label": "QFileSystemWatcher", + "purpose": "Provides an interface for monitoring files and directories for modifications.", + "section": "File I/O", + "output": [ "publicFeature", "feature" ] + }, + "filesystemiterator": { + "label": "QFileSystemIterator", + "purpose": "Provides fast file system iteration.", + "section": "File I/O", + "output": [ "publicFeature", "feature" ] + }, + "itemmodel": { + "label": "Qt Item Model", + "purpose": "Provides the item model for item views", + "section": "ItemViews", + "output": [ "publicFeature", "feature" ] + }, + "proxymodel": { + "label": "QAbstractProxyModel", + "purpose": "Supports processing of data passed between another model and a view.", + "section": "ItemViews", + "condition": "features.itemmodel", + "output": [ "publicFeature", "feature" ] + }, + "sortfilterproxymodel": { + "label": "QSortFilterProxyModel", + "purpose": "Supports sorting and filtering of data passed between another model and a view.", + "section": "ItemViews", + "condition": "features.proxymodel", + "output": [ "publicFeature", "feature" ] + }, + "identityproxymodel": { + "label": "QIdentityProxyModel", + "purpose": "Supports proxying a source model unmodified.", + "section": "ItemViews", + "condition": "features.proxymodel", + "output": [ "publicFeature", "feature" ] + }, + "stringlistmodel": { + "label": "QStringListModel", + "purpose": "Provides a model that supplies strings to views.", + "section": "ItemViews", + "condition": "features.itemmodel", + "output": [ "publicFeature", "feature" ] + }, + "translation": { + "label": "Translation", + "purpose": "Supports translations using QObject::tr().", + "section": "Internationalization", + "output": [ "publicFeature", "feature" ] + }, + "textcodec": { + "label": "QTextCodec", + "purpose": "Supports conversions between text encodings.", + "section": "Internationalization", + "output": [ "publicFeature", "feature" ] + }, + "codecs": { + "label": "Codecs", + "purpose": "Supports non-unicode text conversions.", + "section": "Internationalization", + "condition": "features.textcodec", + "output": [ "publicFeature", "feature" ] + }, + "big_codecs": { + "label": "Big Codecs", + "purpose": "Supports big codecs, e.g. CJK.", + "section": "Internationalization", + "condition": "features.textcodec", + "output": [ "publicFeature", "feature" ] + }, + "animation": { + "label": "Animation", + "purpose": "Provides a framework for animations.", + "section": "Utilities", + "condition": "features.properties", + "output": [ "publicFeature", "feature" ] + }, + "statemachine": { + "label": "State machine", + "purpose": "Provides hierarchical finite state machines.", + "section": "Utilities", + "condition": "features.properties", + "output": [ "publicFeature", "feature" ] + }, + "gestures": { + "label": "Gesture", + "purpose": "Provides a framework for gestures.", + "section": "Utilities", + "output": [ "publicFeature", "feature" ] } }, diff --git a/src/corelib/corelib.pro b/src/corelib/corelib.pro index 1db814180b..616a9641a1 100644 --- a/src/corelib/corelib.pro +++ b/src/corelib/corelib.pro @@ -31,8 +31,6 @@ ANDROID_PERMISSIONS = \ # OpenBSD 6.0 will include environ in libc. freebsd|openbsd: QMAKE_LFLAGS_NOUNDEF = -load(qfeatures) - include(animation/animation.pri) include(arch/arch.pri) include(global/global.pri) @@ -100,6 +98,7 @@ cmake_umbrella_config_version_file.output = $$DESTDIR/cmake/Qt5/Qt5ConfigVersion load(cmake_functions) +##### This requires fixing, so that the feature system works with cmake as well CMAKE_DISABLED_FEATURES = $$join(QT_DISABLED_FEATURES, "$$escape_expand(\\n) ") CMAKE_HOST_DATA_DIR = $$cmakeRelativePath($$[QT_HOST_DATA/src], $$[QT_INSTALL_PREFIX]) diff --git a/src/corelib/tools/tools.pri b/src/corelib/tools/tools.pri index 7ebd9cf710..e3d89651e4 100644 --- a/src/corelib/tools/tools.pri +++ b/src/corelib/tools/tools.pri @@ -168,7 +168,7 @@ qtConfig(icu) { SOURCES += tools/qcollator_posix.cpp } -!contains(QT_DISABLED_FEATURES, regularexpression) { +qtConfig(regularexpression) { include($$PWD/../../3rdparty/pcre_dependency.pri) HEADERS += tools/qregularexpression.h diff --git a/src/gui/configure.json b/src/gui/configure.json index 8513bff5d0..46014188e5 100644 --- a/src/gui/configure.json +++ b/src/gui/configure.json @@ -668,7 +668,9 @@ }, "sessionmanager": { "label": "Session Management", - "output": [ "feature" ] + "purpose": "Provides an interface to the windowing system's session management.", + "section": "Kernel", + "output": [ "publicFeature", "feature" ] }, "tslib": { "label": "tslib", @@ -756,6 +758,194 @@ "label": "Xrender", "condition": "libs.xrender", "output": [ "privateFeature", "feature" ] + }, + "texthtmlparser": { + "label": "HtmlParser", + "purpose": "Provides a parser for HTML.", + "section": "Kernel", + "output": [ "publicFeature", "feature" ] + }, + "textodfwriter": { + "label": "OdfWriter", + "purpose": "Provides an ODF writer.", + "section": "Kernel", + "condition": "features.xmlstreamwriter", + "output": [ "publicFeature", "feature" ] + }, + "cssparser": { + "label": "CssParser", + "purpose": "Provides a parser for Cascading Style Sheets.", + "section": "Kernel", + "output": [ "publicFeature", "feature" ] + }, + "draganddrop": { + "label": "Drag and Drop", + "purpose": "Supports the drag and drop mechansim.", + "section": "Kernel", + "condition": "features.imageformat_xpm", + "output": [ "publicFeature", "feature" ] + }, + "shortcut": { + "label": "QShortcut", + "purpose": "Provides keyboard accelerators and shortcuts.", + "section": "Kernel", + "output": [ "publicFeature", "feature" ] + }, + "action": { + "label": "QAction", + "purpose": "Provides widget actions.", + "section": "Kernel", + "output": [ "publicFeature", "feature" ] + }, + "cursor": { + "label": "QCursor", + "purpose": "Provides mouse cursors.", + "section": "Kernel", + "output": [ "publicFeature", "feature" ] + }, + "clipboard": { + "label": "QClipboard", + "purpose": "Provides cut and paste operations.", + "section": "Kernel", + "condition": "!config.integrity && !config.qnx", + "output": [ "publicFeature", "feature" ] + }, + "wheelevent": { + "label": "QWheelEvent", + "purpose": "Supports wheel events.", + "section": "Kernel", + "output": [ "publicFeature", "feature" ] + }, + "tabletevent": { + "label": "QTabletEvent", + "purpose": "Supports tablet events.", + "section": "Kernel", + "output": [ "publicFeature", "feature" ] + }, + "im": { + "label": "QInputContext", + "purpose": "Provides complex input methods.", + "section": "Kernel", + "condition": "features.library", + "output": [ "publicFeature", "feature" ] + }, + "validator": { + "label": "QValidator", + "purpose": "Supports validation of input text.", + "section": "Widgets", + "output": [ "publicFeature", "feature" ] + }, + "standarditemmodel": { + "label": "QStandardItemModel", + "purpose": "Provides a generic model for storing custom data.", + "section": "ItemViews", + "condition": "features.itemmodel", + "output": [ "publicFeature", "feature" ] + }, + "imageformatplugin": { + "label": "QImageIOPlugin", + "purpose": "Provides a base for writing a image format plugins.", + "section": "Images", + "condition": "features.library", + "output": [ "publicFeature", "feature" ] + }, + "movie": { + "label": "QMovie", + "purpose": "Supports animated images.", + "section": "Images", + "output": [ "publicFeature", "feature" ] + }, + "imageformat_bmp": { + "label": "BMP Image Format", + "purpose": "Supports Microsoft's Bitmap image file format.", + "section": "Images", + "output": [ "publicFeature", "feature" ] + }, + "imageformat_ppm": { + "label": "PPM Image Format", + "purpose": "Supports the Portable Pixmap image file format.", + "section": "Images", + "output": [ "publicFeature", "feature" ] + }, + "imageformat_xbm": { + "label": "XBM Image Format", + "purpose": "Supports the X11 Bitmap image file format.", + "section": "Images", + "output": [ "publicFeature", "feature" ] + }, + "imageformat_xpm": { + "label": "XPM Image Format", + "purpose": "Supports the X11 Pixmap image file format.", + "section": "Images", + "output": [ "publicFeature", "feature" ] + }, + "imageformat_png": { + "label": "PNG Image Format", + "purpose": "Supports the Portable Network Graphics image file format.", + "section": "Images", + "output": [ "publicFeature", "feature" ] + }, + "imageformat_jpeg": { + "label": "JPEG Image Format", + "purpose": "Supports the Joint Photographic Experts Group image file format.", + "section": "Images", + "output": [ "publicFeature", "feature" ] + }, + "image_heuristic_mask": { + "label": "QImage::createHeuristicMask()", + "purpose": "Supports creating a 1-bpp heuristic mask for images.", + "section": "Images", + "output": [ "publicFeature", "feature" ] + }, + "image_text": { + "label": "Image Text", + "purpose": "Supports image file text strings.", + "section": "Images", + "output": [ "publicFeature", "feature" ] + }, + "picture": { + "label": "QPicture", + "purpose": "Supports recording and replaying QPainter commands.", + "section": "Painting", + "output": [ "publicFeature", "feature" ] + }, + "colornames": { + "label": "Color Names", + "purpose": "Supports color names such as \"red\", used by QColor and by some HTML documents.", + "section": "Painting", + "output": [ "publicFeature", "feature" ] + }, + "pdf": { + "label": "QPdf", + "purpose": "Provides a PDF backend for QPainter.", + "section": "Painting", + "condition": "features.temporaryfile", + "output": [ "publicFeature", "feature" ] + }, + "freetype": { + "label": "Freetype Font Engine", + "purpose": "Supports the FreeType 2 font engine (and its supported font formats).", + "section": "Fonts", + "output": [ "publicFeature", "feature" ] + }, + "desktopservices": { + "label": "QDesktopServices", + "purpose": "Provides methods for accessing common desktop services.", + "section": "Utilities", + "output": [ "publicFeature", "feature" ] + }, + "systemtrayicon": { + "label": "QSystemTrayIcon", + "purpose": "Provides an icon for an application in the system tray.", + "section": "Utilities", + "output": [ "publicFeature", "feature" ] + }, + "accessibility": { + "label": "Accessibility", + "purpose": "Provides accessibility support.", + "section": "Utilities", + "condition": "features.properties", + "output": [ "publicFeature", "feature" ] } }, diff --git a/src/network/configure.json b/src/network/configure.json index 3372d177c3..97bf92167d 100644 --- a/src/network/configure.json +++ b/src/network/configure.json @@ -176,6 +176,64 @@ "system-proxies": { "label": "Use system proxies", "output": [ "privateFeature" ] + }, + "ftp": { + "label": "FTP", + "purpose": "Provides support for the File Transfer Protocol in QNetworkAccessManager.", + "section": "Networking", + "condition": "features.textdate", + "output": [ "publicFeature", "feature" ] + }, + "http": { + "label": "HTTP", + "purpose": "Provides support for the Hypertext Transfer Protocol in QNetworkAccessManager.", + "section": "Networking", + "output": [ "publicFeature", "feature" ] + }, + "udpsocket": { + "label": "QUdpSocket", + "purpose": "Provides access to UDP sockets.", + "section": "Networking", + "output": [ "publicFeature", "feature" ] + }, + "networkproxy": { + "label": "QNetworkProxy", + "purpose": "Provides network proxy support.", + "section": "Networking", + "output": [ "publicFeature", "feature" ] + }, + "socks5": { + "label": "SOCKS5", + "purpose": "Provides SOCKS5 support in QNetworkProxy.", + "section": "Networking", + "output": [ "publicFeature", "feature" ] + }, + "networkinterface": { + "label": "QNetworkInterface", + "purpose": "Supports enumerating a host's IP addresses and network interfaces.", + "section": "Networking", + "output": [ "publicFeature", "feature" ] + }, + "networkdiskcache": { + "label": "QNetworkDiskCache", + "purpose": "Provides a disk cache for network resources.", + "section": "Networking", + "condition": "features.temporaryfile", + "output": [ "publicFeature", "feature" ] + }, + "bearermanagement": { + "label": "Bearer management", + "purpose": "Provides bearer management for the network stack.", + "section": "Networking", + "condition": "features.library && features.networkinterface && features.properties", + "output": [ "publicFeature", "feature" ] + }, + "localserver": { + "label": "QLocalServer", + "purpose": "Provides a local socket based server.", + "section": "Networking", + "condition": "features.temporaryfile", + "output": [ "publicFeature", "feature" ] } }, diff --git a/src/plugins/generic/generic.pro b/src/plugins/generic/generic.pro index 69e832906b..996e57d015 100644 --- a/src/plugins/generic/generic.pro +++ b/src/plugins/generic/generic.pro @@ -1,7 +1,5 @@ TEMPLATE = subdirs -QT_FOR_CONFIG += gui-private - -load(qfeatures) +QT_FOR_CONFIG += gui-private network-private qtConfig(evdev) { SUBDIRS += evdevmouse evdevtouch evdevkeyboard evdevtablet @@ -11,7 +9,7 @@ qtConfig(tslib) { SUBDIRS += tslib } -!contains(QT_DISABLED_FEATURES, udpsocket) { +qtConfig(udpsocket) { SUBDIRS += tuiotouch } diff --git a/src/plugins/plugins.pro b/src/plugins/plugins.pro index 0f4207c636..941c25361f 100644 --- a/src/plugins/plugins.pro +++ b/src/plugins/plugins.pro @@ -1,14 +1,13 @@ TEMPLATE = subdirs +QT_FOR_CONFIG += network -load(qfeatures) SUBDIRS *= sqldrivers -qtHaveModule(network):!contains(QT_DISABLED_FEATURES, bearermanagement): SUBDIRS += bearer +qtHaveModule(network):qtConfig(bearermanagement): SUBDIRS += bearer qtHaveModule(gui) { SUBDIRS *= platforms platforminputcontexts platformthemes - !contains(QT_DISABLED_FEATURES, imageformatplugin): SUBDIRS *= imageformats - !android:!contains(QT_DISABLED_FEATURES, library): SUBDIRS *= generic + qtConfig(imageformatplugin): SUBDIRS *= imageformats + !android:qtConfig(library): SUBDIRS *= generic } -!winrt:!wince*:qtHaveModule(widgets):!contains(QT_DISABLED_FEATURES, printer) { +!winrt:!wince:qtHaveModule(printsupport): \ SUBDIRS += printsupport -} diff --git a/src/printsupport/configure.json b/src/printsupport/configure.json index 6bf4208e9c..439f2dbdd8 100644 --- a/src/printsupport/configure.json +++ b/src/printsupport/configure.json @@ -26,8 +26,38 @@ "features": { "cups": { "label": "CUPS", + "purpose": "Provides support for the Common Unix Printing System.", + "section": "Painting", "condition": "libs.cups", "output": [ "privateFeature", "feature" ] + }, + "printer": { + "label": "QPrinter", + "purpose": "Provides a printer backend of QPainter.", + "section": "Painting", + "condition": "!config.android && !config.uikit && !config.winrt && features.picture && features.temporaryfile && features.pdf", + "output": [ "publicFeature", "feature" ] + }, + "printpreviewwidget": { + "label": "QPrintPreviewWidget", + "purpose": "Provides a widget for previewing page layouts for printer output.", + "section": "Widgets", + "condition": "features.graphicsview && features.printer && features.mainwindow", + "output": [ "publicFeature", "feature" ] + }, + "printdialog": { + "label": "QPrintDialog", + "purpose": "Provides a dialog widget for specifying printer configuration.", + "section": "Dialogs", + "condition": "features.printer && features.combobox && features.buttongroup && features.spinbox && features.treeview && features.tabwidget", + "output": [ "publicFeature", "feature" ] + }, + "printpreviewdialog": { + "label": "QPrintPreviewDialog", + "purpose": "Provides a dialog for previewing and configuring page layouts for printer output.", + "section": "Dialogs", + "condition": "features.printpreviewwidget && features.printdialog && features.toolbar", + "output": [ "publicFeature", "feature" ] } }, diff --git a/src/src.pro b/src/src.pro index 60d6a57e2a..541053eba5 100644 --- a/src/src.pro +++ b/src/src.pro @@ -134,7 +134,7 @@ src_android.subdir = $$PWD/android } } SUBDIRS += src_tools_bootstrap src_tools_moc src_tools_rcc -!contains(QT_DISABLED_FEATURES, regularexpression):pcre { +qtConfig(regularexpression):pcre { SUBDIRS += src_3rdparty_pcre src_corelib.depends += src_3rdparty_pcre } diff --git a/src/widgets/configure.json b/src/widgets/configure.json index 2c1f8b1e6c..ee7e1dd8e0 100644 --- a/src/widgets/configure.json +++ b/src/widgets/configure.json @@ -71,10 +71,480 @@ "autoDetect": "config.android", "output": [ "styles" ] }, + "style-stylesheet": { + "label": "QStyleSheetStyle", + "purpose": "Provides a widget style which is configurable via CSS.", + "section": "Styles", + "condition": "features.style-windows && features.properties && features.cssparser", + "output": [ "publicFeature", "feature" ] + }, "android-style-assets": { "label": "Android Style Assets", "condition": "features.style-android", "output": [ "privateConfig" ] + }, + "effects": { + "label": "Effects", + "purpose": "Provides special widget effects (e.g. fading and scrolling).", + "section": "Kernel" + }, + "filesystemmodel": { + "label": "QFileSystemModel", + "purpose": "Provides a data model for the local filesystem.", + "section": "File I/O", + "output": [ "publicFeature", "feature" ] + }, + "itemviews": { + "label": "The Model/View Framework", + "purpose": "Provides the model/view architecture managing the relationship between data and the way it is presented to the user.", + "section": "ItemViews", + "condition": "features.itemmodel && features.rubberband && features.scrollarea", + "output": [ "publicFeature", "feature" ] + }, + "treewidget": { + "label": "QTreeWidget", + "purpose": "Provides views using tree models.", + "section": "Widgets", + "condition": "features.treeview", + "output": [ "publicFeature", "feature" ] + }, + "listwidget": { + "label": "QListWidget", + "purpose": "Provides item-based list widgets.", + "section": "Widgets", + "condition": "features.listview", + "output": [ "publicFeature", "feature" ] + }, + "tablewidget": { + "label": "QTableWidget", + "purpose": "Provides item-based table views.", + "section": "Widgets", + "condition": "features.tableview", + "output": [ "publicFeature", "feature" ] + }, + "datetimeedit": { + "label": "QDateTimeEdit", + "purpose": "Supports editing dates and times.", + "section": "Widgets", + "condition": "features.calendarwidget && features.datestring", + "output": [ "publicFeature", "feature" ] + }, + "stackedwidget": { + "label": "QStackedWidget", + "purpose": "Provides stacked widgets.", + "section": "Widgets", + "output": [ "publicFeature", "feature" ] + }, + "textbrowser": { + "label": "QTextBrowser", + "purpose": "Supports HTML document browsing.", + "section": "Widgets", + "condition": "features.textedit", + "output": [ "publicFeature", "feature" ] + }, + "splashscreen": { + "label": "QSplashScreen", + "purpose": "Supports splash screens that can be shown during application startup.", + "section": "Widgets", + "output": [ "publicFeature", "feature" ] + }, + "splitter": { + "label": "QSplitter", + "purpose": "Provides user controlled splitter widgets.", + "section": "Widgets", + "condition": "features.rubberband", + "output": [ "publicFeature", "feature" ] + }, + "lcdnumber": { + "label": "QLCDNumber", + "purpose": "Provides LCD-like digits.", + "section": "Widgets", + "output": [ "publicFeature", "feature" ] + }, + "menu": { + "label": "QMenu", + "purpose": "Provides popup-menus.", + "section": "Widgets", + "condition": "features.action", + "output": [ "publicFeature", "feature" ] + }, + "lineedit": { + "label": "QLineEdit", + "purpose": "Provides single-line edits.", + "section": "Widgets", + "output": [ "publicFeature", "feature" ] + }, + "spinbox": { + "label": "QSpinBox", + "purpose": "Provides spin boxes handling integers and discrete sets of values.", + "section": "Widgets", + "condition": "features.spinwidget && features.lineedit && features.validator", + "output": [ "publicFeature", "feature" ] + }, + "tabbar": { + "label": "QTabBar", + "purpose": "Provides tab bars, e.g., for use in tabbed dialogs.", + "section": "Widgets", + "condition": "features.toolbutton", + "output": [ "publicFeature", "feature" ] + }, + "tabwidget": { + "label": "QTabWidget", + "purpose": "Supports stacking tabbed widgets.", + "section": "Widgets", + "condition": "features.tabbar && features.stackedwidget", + "output": [ "publicFeature", "feature" ] + }, + "combobox": { + "label": "QComboBox", + "purpose": "Provides drop-down boxes presenting a list of options to the user.", + "section": "Widgets", + "condition": "features.lineedit && features.standarditemmodel && features.listview", + "output": [ "publicFeature", "feature" ] + }, + "fontcombobox": { + "label": "QFontComboBox", + "purpose": "Provides a combobox that lets the user select a font family.", + "section": "Widgets", + "condition": "features.combobox && features.stringlistmodel", + "output": [ "publicFeature", "feature" ] + }, + "toolbutton": { + "label": "QToolButton", + "purpose": "Provides quick-access buttons to commands and options.", + "section": "Widgets", + "condition": "features.action", + "output": [ "publicFeature", "feature" ] + }, + "toolbar": { + "label": "QToolBar", + "purpose": "Provides movable panels containing a set of controls.", + "section": "Widgets", + "condition": "features.mainwindow", + "output": [ "publicFeature", "feature" ] + }, + "toolbox": { + "label": "QToolBox", + "purpose": "Provides columns of tabbed widget items.", + "section": "Widgets", + "condition": "features.toolbutton && features.scrollarea", + "output": [ "publicFeature", "feature" ] + }, + "groupbox": { + "label": "QGroupBox", + "purpose": "Provides widget grouping boxes with frames.", + "section": "Widgets", + "output": [ "publicFeature", "feature" ] + }, + "buttongroup": { + "label": "QButtonGroup", + "purpose": "Supports organizing groups of button widgets.", + "section": "Widgets", + "condition": "features.groupbox", + "output": [ "publicFeature", "feature" ] + }, + "mainwindow": { + "label": "QMainWindow", + "purpose": "Provides main application windows.", + "section": "Widgets", + "condition": "features.menu && features.resizehandler && features.toolbutton", + "output": [ "publicFeature", "feature" ] + }, + "dockwidget": { + "label": "QDockwidget", + "purpose": "Supports docking widgets inside a QMainWindow or floated as a top-level window on the desktop.", + "section": "Widgets", + "condition": "features.rubberband && features.mainwindow", + "output": [ "publicFeature", "feature" ] + }, + "mdiarea": { + "label": "QMdiArea", + "purpose": "Provides an area in which MDI windows are displayed.", + "section": "Widgets", + "condition": "features.scrollarea", + "output": [ "publicFeature", "feature" ] + }, + "resizehandler": { + "label": "QWidgetResizeHandler", + "purpose": "Provides an internal resize handler for dock widgets.", + "section": "Widgets", + "output": [ "publicFeature", "feature" ] + }, + "statusbar": { + "label": "QStatusBar", + "purpose": "Supports presentation of status information.", + "section": "Widgets", + "output": [ "publicFeature", "feature" ] + }, + "menubar": { + "label": "QMenuBar", + "purpose": "Provides pull-down menu items.", + "section": "Widgets", + "condition": "features.menu && features.toolbutton", + "output": [ "publicFeature", "feature" ] + }, + "contextmenu": { + "label": "Context menus", + "purpose": "Adds pop-up menus on right mouse click to numerous widgets.", + "section": "Widgets", + "condition": "features.menu", + "output": [ "publicFeature", "feature" ] + }, + "progressbar": { + "label": "QProgressBar", + "purpose": "Supports presentation of operation progress.", + "section": "Widgets", + "output": [ "publicFeature", "feature" ] + }, + "slider": { + "label": "QSlider", + "purpose": "Provides sliders controlling a bounded value.", + "section": "Widgets", + "output": [ "publicFeature", "feature" ] + }, + "scrollbar": { + "label": "QScrollBar", + "purpose": "Provides scrollbars allowing the user access parts of a document that is larger than the widget used to display it.", + "section": "Widgets", + "condition": "features.slider", + "output": [ "publicFeature", "feature" ] + }, + "dial": { + "label": "QDial", + "purpose": "Provides a rounded range control, e.g., like a speedometer.", + "section": "Widgets", + "condition": "features.slider", + "output": [ "publicFeature", "feature" ] + }, + "scrollarea": { + "label": "QScrollArea", + "purpose": "Supports scrolling views onto widgets.", + "section": "Widgets", + "condition": "features.scrollbar", + "output": [ "publicFeature", "feature" ] + }, + "graphicsview": { + "label": "QGraphicsView", + "purpose": "Provides a canvas/sprite framework.", + "section": "Widgets", + "condition": "features.scrollarea", + "output": [ "publicFeature", "feature" ] + }, + "graphicseffect": { + "label": "QGraphicsEffect", + "purpose": "Provides various graphics effects.", + "section": "Widgets", + "condition": "features.graphicsview", + "output": [ "publicFeature", "feature" ] + }, + "spinbox": { + "label": "QSpinBox", + "purpose": "Provides spinbox control widgets.", + "section": "Widgets", + "output": [ "publicFeature", "feature" ] + }, + "textedit": { + "label": "QTextEdit", + "purpose": "Supports rich text editing.", + "section": "Widgets", + "condition": "features.scrollarea && features.properties", + "output": [ "publicFeature", "feature" ] + }, + "syntaxhighlighter": { + "label": "QSyntaxHighlighter", + "purpose": "Supports custom syntax highlighting.", + "section": "Widgets", + "condition": "features.textedit", + "output": [ "publicFeature", "feature" ] + }, + "rubberband": { + "label": "QRubberBand", + "purpose": "Supports using rubberbands to indicate selections and boundaries.", + "section": "Widgets", + "output": [ "publicFeature", "feature" ] + }, + "tooltip": { + "label": "QToolTip", + "purpose": "Supports presentation of tooltips.", + "section": "Widgets", + "output": [ "publicFeature", "feature" ] + }, + "statustip": { + "label": "Status Tip", + "purpose": "Supports status tip functionality and events.", + "section": "Widgets", + "output": [ "publicFeature", "feature" ] + }, + "whatsthis": { + "label": "QWhatsThis", + "purpose": "Supports displaying \"What's this\" help.", + "section": "Widgets", + "condition": "features.toolbutton", + "output": [ "publicFeature", "feature" ] + }, + "sizegrip": { + "label": "QSizeGrip", + "purpose": "Provides corner-grips for resizing top-level windows.", + "section": "Widgets", + "output": [ "publicFeature", "feature" ] + }, + "calendarwidget": { + "label": "QCalendarWidget", + "purpose": "Provides a monthly based calendar widget allowing the user to select a date.", + "section": "Widgets", + "condition": "features.tableview && features.menu && features.textdate && features.spinbox && features.toolbutton", + "output": [ "publicFeature", "feature" ] + }, + "keysequenceedit": { + "label": "QKeySequenceEdit", + "purpose": "Provides a widget for editing QKeySequences.", + "section": "Widgets", + "condition": "features.lineedit && features.shortcut", + "output": [ "publicFeature", "feature" ] + }, + "messagebox": { + "label": "QMessageBox", + "purpose": "Provides message boxes displaying informative messages and simple questions.", + "section": "Dialogs", + "output": [ "publicFeature", "feature" ] + }, + "colordialog": { + "label": "QColorDialog", + "purpose": "Provides a dialog widget for specifying colors.", + "section": "Dialogs", + "condition": "features.spinbox", + "output": [ "publicFeature", "feature" ] + }, + "filedialog": { + "label": "QFileDialog", + "purpose": "Provides a dialog widget for selecting files or directories.", + "section": "Dialogs", + "condition": "features.dirmodel && features.treeview && features.combobox && features.toolbutton && features.buttongroup && features.tooltip && features.splitter && features.stackedwidget && features.proxymodel", + "output": [ "publicFeature", "feature" ] + }, + "fontdialog": { + "label": "QFontDialog", + "purpose": "Provides a dialog widget for selecting fonts.", + "section": "Dialogs", + "condition": "features.stringlistmodel && features.combobox && features.validator && features.groupbox", + "output": [ "publicFeature", "feature" ] + }, + "progressdialog": { + "label": "QProgressDialog", + "purpose": "Provides feedback on the progress of a slow operation.", + "section": "Dialogs", + "condition": "features.progressbar", + "output": [ "publicFeature", "feature" ] + }, + "inputdialog": { + "label": "QInputDialog", + "purpose": "Provides a simple convenience dialog to get a single value from the user.", + "section": "Dialogs", + "condition": "features.combobox && features.spinbox && features.stackedwidget", + "output": [ "publicFeature", "feature" ] + }, + "errormessage": { + "label": "QErrorMessage", + "purpose": "Provides an error message display dialog.", + "section": "Dialogs", + "condition": "features.textedit", + "output": [ "publicFeature", "feature" ] + }, + "wizard": { + "label": "QWizard", + "purpose": "Provides a framework for multi-page click-through dialogs.", + "section": "Dialogs", + "condition": "features.properties", + "output": [ "publicFeature", "feature" ] + }, + "dirmodel": { + "label": "QDirModel", + "purpose": "Provides a data model for the local filesystem.", + "section": "ItemViews", + "condition": "features.itemviews && features.filesystemmodel", + "output": [ "publicFeature", "feature" ] + }, + "listview": { + "label": "QListView", + "purpose": "Provides a list or icon view onto a model.", + "section": "ItemViews", + "condition": "features.itemviews", + "output": [ "publicFeature", "feature" ] + }, + "tableview": { + "label": "QTableView", + "purpose": "Provides a default model/view implementation of a table view.", + "section": "ItemViews", + "condition": "features.itemviews", + "output": [ "publicFeature", "feature" ] + }, + "treeview": { + "label": "QTreeView", + "purpose": "Provides a default model/view implementation of a tree view.", + "section": "ItemViews", + "condition": "features.itemviews", + "output": [ "publicFeature", "feature" ] + }, + "datawidgetmapper": { + "label": "QDataWidgetMapper", + "purpose": "Provides mapping between a section of a data model to widgets.", + "section": "ItemViews", + "condition": "features.itemviews && features.properties", + "output": [ "publicFeature", "feature" ] + }, + "columnview": { + "label": "QColumnView", + "purpose": "Provides a model/view implementation of a column view.", + "section": "ItemViews", + "condition": "features.listview", + "output": [ "publicFeature", "feature" ] + }, + "paint_debug": { + "label": "Painting Debug Utilities", + "purpose": "Enabled debugging painting with the environment variables QT_FLUSH_UPDATE and QT_FLUSH_PAINT.", + "section": "Painting", + "output": [ "publicFeature", "feature" ] + }, + "completer": { + "label": "QCompleter", + "purpose": "Provides completions based on an item model.", + "section": "Utilities", + "condition": "features.proxymodel", + "output": [ "publicFeature", "feature" ] + }, + "fscompleter": { + "label": "QFSCompleter", + "purpose": "Provides file name completion in QFileDialog.", + "section": "Utilities", + "condition": "features.filesystemmodel && features.completer", + "output": [ "publicFeature", "feature" ] + }, + "undocommand": { + "label": "QUndoCommand", + "purpose": "Applies (redo or) undo of a single change in a document.", + "section": "Utilities", + "output": [ "publicFeature", "feature" ] + }, + "undostack": { + "label": "QUndoStack", + "purpose": "Provides the ability to (redo or) undo a list of changes in a document.", + "section": "Utilities", + "condition": "features.undocommand", + "output": [ "publicFeature", "feature" ] + }, + "undogroup": { + "label": "QUndoGroup", + "purpose": "Provides the ability to cluster QUndoCommands.", + "section": "Utilities", + "condition": "features.undostack", + "output": [ "publicFeature", "feature" ] + }, + "undoview": { + "label": "QUndoView", + "purpose": "Provides a widget which shows the contents of an undo stack.", + "section": "Utilities", + "condition": "features.undostack && features.listview", + "output": [ "publicFeature", "feature" ] } }, diff --git a/src/xml/configure.json b/src/xml/configure.json new file mode 100644 index 0000000000..345eb8544b --- /dev/null +++ b/src/xml/configure.json @@ -0,0 +1,16 @@ +{ + "module": "xml", + "depends": [ + "core" + ], + "testDir": "../../config.tests", + + "features": { + "dom": { + "label": "DOM", + "purpose": "Supports the Document Object Model.", + "section": "File I/O", + "output": [ "publicFeature", "feature" ] + } + } +} diff --git a/src/xml/qtxmlglobal.h b/src/xml/qtxmlglobal.h index de5a8ab39d..ed5de8db87 100644 --- a/src/xml/qtxmlglobal.h +++ b/src/xml/qtxmlglobal.h @@ -41,6 +41,9 @@ #define QTXMLGLOBAL_H #include +#ifndef QT_BOOTSTRAPPED +# include +#endif QT_BEGIN_NAMESPACE diff --git a/sync.profile b/sync.profile index 0860c7692a..4da3499667 100644 --- a/sync.profile +++ b/sync.profile @@ -65,7 +65,7 @@ my @zlib_headers = ( "zconf.h", "zlib.h" ); @ignore_headers = ( @internal_zlib_headers ); @ignore_for_include_check = ( "qsystemdetection.h", "qcompilerdetection.h", "qprocessordetection.h", @zlib_headers, @angle_headers); @ignore_for_qt_begin_namespace_check = ( "qt_windows.h", @zlib_headers, @angle_headers); -%inject_headers = ( "$basedir/src/corelib/global" => [ "qconfig.h", "qconfig_p.h", "qfeatures.h" ] ); +%inject_headers = ( "$basedir/src/corelib/global" => [ "qconfig.h", "qconfig_p.h" ] ); # Module dependencies. # Every module that is required to build this module should have one entry. # Each of the module version specifiers can take one of the following values: diff --git a/tests/auto/corelib/plugin/plugin.pro b/tests/auto/corelib/plugin/plugin.pro index 777e920995..774edc655a 100644 --- a/tests/auto/corelib/plugin/plugin.pro +++ b/tests/auto/corelib/plugin/plugin.pro @@ -3,8 +3,7 @@ SUBDIRS=\ qfactoryloader \ quuid -load(qfeatures) -!contains(QT_DISABLED_FEATURES, library): SUBDIRS += \ +qtConfig(library): SUBDIRS += \ qpluginloader \ qplugin \ qlibrary diff --git a/tests/auto/corelib/plugin/qfactoryloader/test/test.pro b/tests/auto/corelib/plugin/qfactoryloader/test/test.pro index f1e76c31bf..3345651730 100644 --- a/tests/auto/corelib/plugin/qfactoryloader/test/test.pro +++ b/tests/auto/corelib/plugin/qfactoryloader/test/test.pro @@ -19,7 +19,6 @@ win32 { mac: CONFIG -= app_bundle -load(qfeatures) -contains(QT_DISABLED_FEATURES, library) { +!qtConfig(library) { LIBS += -L ../bin/ -lplugin1 -lplugin2 } -- cgit v1.2.3 From e4391bb403cacf79124e7a9ecdc3d609a285789e Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Fri, 26 Aug 2016 12:00:56 +0200 Subject: make the style listing in the configure summary less weird remove the redundant 'Style' suffix, and use CamelCased words (the list uses space as a separator). Change-Id: I169a741fdc293ac42ae6b97a5726477b53127506 Reviewed-by: Lars Knoll --- src/widgets/configure.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/widgets/configure.json b/src/widgets/configure.json index ee7e1dd8e0..c1931d9d80 100644 --- a/src/widgets/configure.json +++ b/src/widgets/configure.json @@ -44,30 +44,30 @@ "output": [ "privateFeature" ] }, "style-fusion": { - "label": "Fusion Style", + "label": "Fusion", "output": [ "styles" ] }, "style-mac": { - "label": "Mac Style", + "label": "macOS", "condition": "config.osx", "output": [ "styles" ] }, "style-windows": { - "label": "Windows Style", + "label": "Windows", "output": [ "styles" ] }, "style-windowsxp": { - "label": "Windows XP Style", + "label": "WindowsXP", "condition": "features.style-windows && config.win32 && !config.winrt && tests.uxtheme", "output": [ "styles" ] }, "style-windowsvista": { - "label": "Windows Vista Style", + "label": "WindowsVista", "condition": "features.style-windowsxp", "output": [ "styles" ] }, "style-android": { - "label": "Android Style", + "label": "Android", "autoDetect": "config.android", "output": [ "styles" ] }, -- cgit v1.2.3 From e8091eb6c87a89d9406141e3605ce5bcd50a46cf Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Fri, 26 Aug 2016 15:25:35 +0200 Subject: don't complain about missing QPA plugin on android android is linux, but the QPA plugin is not enabled by configure, so skip the warning here. Change-Id: Ib136dd142b775a00686cdaa0cec5414d035c9516 Reviewed-by: Lars Knoll --- src/gui/configure.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/configure.json b/src/gui/configure.json index 46014188e5..376359ba37 100644 --- a/src/gui/configure.json +++ b/src/gui/configure.json @@ -976,7 +976,7 @@ XKB configuration data. This is required for keyboard input support." }, { "type": "warning", - "condition": "features.gui && config.linux && !features.xcb && !features.eglfs && !features.directfb && !features.linuxfb && !features.mirclient", + "condition": "features.gui && config.linux && !config.android && !features.xcb && !features.eglfs && !features.directfb && !features.linuxfb && !features.mirclient", "message": "No QPA platform plugin enabled! This will produce a Qt that cannot run GUI applications. The dependencies needed for xcb to build are listed in -- cgit v1.2.3 From 0a4d3a92184fce2cc0e92c19b5b1e834088122ea Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Thu, 1 Sep 2016 16:57:03 +0200 Subject: Minimize register conversions in NEON optimization Redoes the simple calculation of x coordinates in integer registers rather than use the potentially expensive extract/move from NEON register. Change-Id: I914b463d6c20be2281710d626407196112d1615b Reviewed-by: Erik Verbruggen --- src/gui/painting/qdrawhelper.cpp | 67 +++++++++++++++++----------------------- 1 file changed, 29 insertions(+), 38 deletions(-) diff --git a/src/gui/painting/qdrawhelper.cpp b/src/gui/painting/qdrawhelper.cpp index 491f2d80da..c697aceaf3 100644 --- a/src/gui/painting/qdrawhelper.cpp +++ b/src/gui/painting/qdrawhelper.cpp @@ -2244,13 +2244,9 @@ static const uint * QT_FASTCALL fetchTransformedBilinearARGB32PM(uint *buffer, c int32x4_t v_fdx = vdupq_n_s32(fdx*4); int32x4_t v_fx = vmovq_n_s32(fx); - fx += fdx; - v_fx = vsetq_lane_s32(fx, v_fx, 1); - fx += fdx; - v_fx = vsetq_lane_s32(fx, v_fx, 2); - fx += fdx; - v_fx = vsetq_lane_s32(fx, v_fx, 3); - fx += fdx; + v_fx = vsetq_lane_s32(fx + fdx, v_fx, 1); + v_fx = vsetq_lane_s32(fx + fdx * 2, v_fx, 2); + v_fx = vsetq_lane_s32(fx + fdx * 3, v_fx, 3); const int32x4_t v_ffff_mask = vdupq_n_s32(0x0000ffff); const int32x4_t v_fx_r = vdupq_n_s32(0x0800); @@ -2258,18 +2254,20 @@ static const uint * QT_FASTCALL fetchTransformedBilinearARGB32PM(uint *buffer, c while (b < boundedEnd) { uint32x4x2_t v_top, v_bot; - int32x4_t v_fx_shifted = vshrq_n_s32(v_fx, 16); - - int x1 = vgetq_lane_s32(v_fx_shifted, 0); + int x1 = (fx >> 16); + fx += fdx; v_top = vld2q_lane_u32(s1 + x1, v_top, 0); v_bot = vld2q_lane_u32(s2 + x1, v_bot, 0); - x1 = vgetq_lane_s32(v_fx_shifted, 1); + x1 = (fx >> 16); + fx += fdx; v_top = vld2q_lane_u32(s1 + x1, v_top, 1); v_bot = vld2q_lane_u32(s2 + x1, v_bot, 1); - x1 = vgetq_lane_s32(v_fx_shifted, 2); + x1 = (fx >> 16); + fx += fdx; v_top = vld2q_lane_u32(s1 + x1, v_top, 2); v_bot = vld2q_lane_u32(s2 + x1, v_bot, 2); - x1 = vgetq_lane_s32(v_fx_shifted, 3); + x1 = (fx >> 16); + fx += fdx; v_top = vld2q_lane_u32(s1 + x1, v_top, 3); v_bot = vld2q_lane_u32(s2 + x1, v_bot, 3); @@ -2284,7 +2282,6 @@ static const uint * QT_FASTCALL fetchTransformedBilinearARGB32PM(uint *buffer, c b+=4; v_fx = vaddq_s32(v_fx, v_fdx); } - fx = vgetq_lane_s32(v_fx, 0); #endif } @@ -2440,16 +2437,12 @@ static const uint * QT_FASTCALL fetchTransformedBilinearARGB32PM(uint *buffer, c int32x4_t v_fx = vmovq_n_s32(fx); int32x4_t v_fy = vmovq_n_s32(fy); - fx += fdx; fy += fdy; - v_fx = vsetq_lane_s32(fx, v_fx, 1); - v_fy = vsetq_lane_s32(fy, v_fy, 1); - fx += fdx; fy += fdy; - v_fx = vsetq_lane_s32(fx, v_fx, 2); - v_fy = vsetq_lane_s32(fy, v_fy, 2); - fx += fdx; fy += fdy; - v_fx = vsetq_lane_s32(fx, v_fx, 3); - v_fy = vsetq_lane_s32(fy, v_fy, 3); - fx += fdx; fy += fdy; + v_fx = vsetq_lane_s32(fx + fdx, v_fx, 1); + v_fy = vsetq_lane_s32(fy + fdy, v_fy, 1); + v_fx = vsetq_lane_s32(fx + fdx * 2, v_fx, 2); + v_fy = vsetq_lane_s32(fy + fdy * 2, v_fy, 2); + v_fx = vsetq_lane_s32(fx + fdx * 3, v_fx, 3); + v_fy = vsetq_lane_s32(fy + fdy * 3, v_fy, 3); const int32x4_t v_ffff_mask = vdupq_n_s32(0x0000ffff); const int32x4_t v_round = vdupq_n_s32(0x0800); @@ -2457,33 +2450,33 @@ static const uint * QT_FASTCALL fetchTransformedBilinearARGB32PM(uint *buffer, c while (b < boundedEnd) { uint32x4x2_t v_top, v_bot; - int32x4_t v_fx_shifted, v_fy_shifted; - v_fx_shifted = vshrq_n_s32(v_fx, 16); - v_fy_shifted = vshrq_n_s32(v_fy, 16); - - int x1 = vgetq_lane_s32(v_fx_shifted, 0); - int y1 = vgetq_lane_s32(v_fy_shifted, 0); + int x1 = (fx >> 16); + int y1 = (fy >> 16); + fx += fdx; fy += fdy; const uchar *sl = textureData + bytesPerLine * y1; const uint *s1 = reinterpret_cast(sl); const uint *s2 = reinterpret_cast(sl + bytesPerLine); v_top = vld2q_lane_u32(s1 + x1, v_top, 0); v_bot = vld2q_lane_u32(s2 + x1, v_bot, 0); - x1 = vgetq_lane_s32(v_fx_shifted, 1); - y1 = vgetq_lane_s32(v_fy_shifted, 1); + x1 = (fx >> 16); + y1 = (fy >> 16); + fx += fdx; fy += fdy; sl = textureData + bytesPerLine * y1; s1 = reinterpret_cast(sl); s2 = reinterpret_cast(sl + bytesPerLine); v_top = vld2q_lane_u32(s1 + x1, v_top, 1); v_bot = vld2q_lane_u32(s2 + x1, v_bot, 1); - x1 = vgetq_lane_s32(v_fx_shifted, 2); - y1 = vgetq_lane_s32(v_fy_shifted, 2); + x1 = (fx >> 16); + y1 = (fy >> 16); + fx += fdx; fy += fdy; sl = textureData + bytesPerLine * y1; s1 = reinterpret_cast(sl); s2 = reinterpret_cast(sl + bytesPerLine); v_top = vld2q_lane_u32(s1 + x1, v_top, 2); v_bot = vld2q_lane_u32(s2 + x1, v_bot, 2); - x1 = vgetq_lane_s32(v_fx_shifted, 3); - y1 = vgetq_lane_s32(v_fy_shifted, 3); + x1 = (fx >> 16); + y1 = (fy >> 16); + fx += fdx; fy += fdy; sl = textureData + bytesPerLine * y1; s1 = reinterpret_cast(sl); s2 = reinterpret_cast(sl + bytesPerLine); @@ -2505,8 +2498,6 @@ static const uint * QT_FASTCALL fetchTransformedBilinearARGB32PM(uint *buffer, c v_fx = vaddq_s32(v_fx, v_fdx); v_fy = vaddq_s32(v_fy, v_fdy); } - fx = vgetq_lane_s32(v_fx, 0); - fy = vgetq_lane_s32(v_fy, 0); #endif } -- cgit v1.2.3 From bee70b24c1d6180465e9040a0f8bbff051405e0c Mon Sep 17 00:00:00 2001 From: BogDan Vatra Date: Fri, 19 Aug 2016 16:58:49 +0300 Subject: Check the context of Q_ENUM[_NS] and Q_FLAG[_NS] Change-Id: Ifc8cb50efe3b07a79c8afbb382fba12649b602b2 Reviewed-by: Olivier Goffart (Woboq GmbH) --- src/tools/moc/moc.cpp | 12 ++++++++++++ tests/auto/tools/moc/tst_moc.cpp | 28 ++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/src/tools/moc/moc.cpp b/src/tools/moc/moc.cpp index eda410783c..e4b9b19758 100644 --- a/src/tools/moc/moc.cpp +++ b/src/tools/moc/moc.cpp @@ -570,10 +570,16 @@ void Moc::parse() case Q_ENUM_NS_TOKEN: parseEnumOrFlag(&def, false); break; + case Q_ENUM_TOKEN: + error("Q_ENUM can't be used in a Q_NAMESPACE, use Q_ENUM_NS instead"); + break; case Q_FLAGS_TOKEN: case Q_FLAG_NS_TOKEN: parseEnumOrFlag(&def, true); break; + case Q_FLAG_TOKEN: + error("Q_FLAG can't be used in a Q_NAMESPACE, use Q_FLAG_NS instead"); + break; case Q_DECLARE_FLAGS_TOKEN: parseFlag(&def); break; @@ -736,10 +742,16 @@ void Moc::parse() case Q_ENUM_TOKEN: parseEnumOrFlag(&def, false); break; + case Q_ENUM_NS_TOKEN: + error("Q_ENUM_NS can't be used in a Q_OBJECT/Q_GADGET, use Q_ENUM instead"); + break; case Q_FLAGS_TOKEN: case Q_FLAG_TOKEN: parseEnumOrFlag(&def, true); break; + case Q_FLAG_NS_TOKEN: + error("Q_FLAG_NS can't be used in a Q_OBJECT/Q_GADGET, use Q_FLAG instead"); + break; case Q_DECLARE_FLAGS_TOKEN: parseFlag(&def); break; diff --git a/tests/auto/tools/moc/tst_moc.cpp b/tests/auto/tools/moc/tst_moc.cpp index 56d6939102..a3648c95b6 100644 --- a/tests/auto/tools/moc/tst_moc.cpp +++ b/tests/auto/tools/moc/tst_moc.cpp @@ -2083,6 +2083,34 @@ void tst_Moc::warnings_data() << QString() << QString("standard input:1: Error: Namespace declaration lacks Q_NAMESPACE macro."); + QTest::newRow("Wrong Q_ENUM context.") + << QByteArray("namespace X {\nQ_NAMESPACE\n\nenum class MyEnum {Key1 = 1}\nQ_ENUM(MyEnum)\n}\n") + << QStringList() + << 1 + << QString() + << QString("standard input:5: Error: Q_ENUM can't be used in a Q_NAMESPACE, use Q_ENUM_NS instead"); + + QTest::newRow("Wrong Q_FLAG context.") + << QByteArray("namespace X {\nQ_NAMESPACE\n\nenum class MyEnum {Key1 = 1}\nQ_FLAG(MyEnum)\n}\n") + << QStringList() + << 1 + << QString() + << QString("standard input:5: Error: Q_FLAG can't be used in a Q_NAMESPACE, use Q_FLAG_NS instead"); + + QTest::newRow("Wrong Q_ENUM_NS context.") + << QByteArray("class X {\nQ_GADGET\n\nenum class MyEnum {Key1 = 1}\nQ_ENUM_NS(MyEnum)\n};\n") + << QStringList() + << 1 + << QString() + << QString("standard input:5: Error: Q_ENUM_NS can't be used in a Q_OBJECT/Q_GADGET, use Q_ENUM instead"); + + QTest::newRow("Wrong Q_FLAG_NS context.") + << QByteArray("class X {\nQ_GADGET\n\nenum class MyEnum {Key1 = 1}\nQ_FLAG_NS(MyEnum)\n};\n") + << QStringList() + << 1 + << QString() + << QString("standard input:5: Error: Q_FLAG_NS can't be used in a Q_OBJECT/Q_GADGET, use Q_FLAG instead"); + QTest::newRow("Invalid macro definition") << QByteArray("#define Foo(a, b, c) a b c #a #b #c a##b##c #d\n Foo(45, 42, 39);") << QStringList() -- cgit v1.2.3 From 6b2071c697d4c48f0cd289b28b443ebffc3432e6 Mon Sep 17 00:00:00 2001 From: Anton Kudryavtsev Date: Mon, 22 Aug 2016 15:32:03 +0300 Subject: Use QStringBuilder more to optimize memory allocations Change-Id: I2939ffa10496fdc59e0402a9cb54458565ccd657 Reviewed-by: Thiago Macieira --- src/corelib/global/qlibraryinfo.cpp | 8 ++++---- src/gui/text/qfontdatabase.cpp | 7 ++----- src/gui/text/qplatformfontdatabase.cpp | 6 ++---- src/platformsupport/themes/qabstractfileiconengine.cpp | 3 +-- src/plugins/platforms/xcb/qxcbmime.cpp | 4 +--- src/plugins/platforms/xcb/qxcbscreen.cpp | 3 +-- src/tools/rcc/rcc.cpp | 4 +--- 7 files changed, 12 insertions(+), 23 deletions(-) diff --git a/src/corelib/global/qlibraryinfo.cpp b/src/corelib/global/qlibraryinfo.cpp index 4303f74709..1a7d64780f 100644 --- a/src/corelib/global/qlibraryinfo.cpp +++ b/src/corelib/global/qlibraryinfo.cpp @@ -616,10 +616,10 @@ QStringList QLibraryInfo::platformPluginArguments(const QString &platformName) #if !defined(QT_BUILD_QMAKE) && !defined(QT_NO_SETTINGS) QScopedPointer settings(QLibraryInfoPrivate::findConfiguration()); if (!settings.isNull()) { - QString key = QLatin1String(platformsSection); - key += QLatin1Char('/'); - key += platformName; - key += QLatin1String("Arguments"); + const QString key = QLatin1String(platformsSection) + + QLatin1Char('/') + + platformName + + QLatin1String("Arguments"); return settings->value(key).toStringList(); } #endif // !QT_BUILD_QMAKE && !QT_NO_SETTINGS diff --git a/src/gui/text/qfontdatabase.cpp b/src/gui/text/qfontdatabase.cpp index ba3b5eb7af..a3a3f20b18 100644 --- a/src/gui/text/qfontdatabase.cpp +++ b/src/gui/text/qfontdatabase.cpp @@ -663,11 +663,8 @@ struct QtFontDesc static void initFontDef(const QtFontDesc &desc, const QFontDef &request, QFontDef *fontDef, bool multi) { fontDef->family = desc.family->name; - if (! desc.foundry->name.isEmpty() && desc.family->count > 1) { - fontDef->family += QString::fromLatin1(" ["); - fontDef->family += desc.foundry->name; - fontDef->family += QLatin1Char(']'); - } + if (! desc.foundry->name.isEmpty() && desc.family->count > 1) + fontDef->family += QLatin1String(" [") + desc.foundry->name + QLatin1Char(']'); if (desc.style->smoothScalable || QGuiApplicationPrivate::platformIntegration()->fontDatabase()->fontsAlwaysScalable() diff --git a/src/gui/text/qplatformfontdatabase.cpp b/src/gui/text/qplatformfontdatabase.cpp index 0d7cb204ff..b83affecdc 100644 --- a/src/gui/text/qplatformfontdatabase.cpp +++ b/src/gui/text/qplatformfontdatabase.cpp @@ -395,10 +395,8 @@ void QPlatformFontDatabase::releaseHandle(void *handle) QString QPlatformFontDatabase::fontDir() const { QString fontpath = QString::fromLocal8Bit(qgetenv("QT_QPA_FONTDIR")); - if (fontpath.isEmpty()) { - fontpath = QLibraryInfo::location(QLibraryInfo::LibrariesPath); - fontpath += QLatin1String("/fonts"); - } + if (fontpath.isEmpty()) + fontpath = QLibraryInfo::location(QLibraryInfo::LibrariesPath) + QLatin1String("/fonts"); return fontpath; } diff --git a/src/platformsupport/themes/qabstractfileiconengine.cpp b/src/platformsupport/themes/qabstractfileiconengine.cpp index 19a8eee47b..192ed00510 100644 --- a/src/platformsupport/themes/qabstractfileiconengine.cpp +++ b/src/platformsupport/themes/qabstractfileiconengine.cpp @@ -73,8 +73,7 @@ QPixmap QAbstractFileIconEngine::pixmap(const QSize &size, QIcon::Mode mode, if (key.isEmpty()) return filePixmap(size, mode, state); - key += QLatin1Char('_'); - key += QString::number(size.width()); + key += QLatin1Char('_') + QString::number(size.width()); QPixmap result; if (!QPixmapCache::find(key, result)) { diff --git a/src/plugins/platforms/xcb/qxcbmime.cpp b/src/plugins/platforms/xcb/qxcbmime.cpp index 4803c14c4c..749906d1e8 100644 --- a/src/plugins/platforms/xcb/qxcbmime.cpp +++ b/src/plugins/platforms/xcb/qxcbmime.cpp @@ -121,9 +121,7 @@ bool QXcbMime::mimeDataForAtom(QXcbConnection *connection, xcb_atom_t a, QMimeDa // so QXcbConnection::atomName() has to be used. if (atomName == QLatin1String("text/uri-list") && connection->atomName(a) == "text/x-moz-url") { - const QByteArray uri = data->split('\n').first(); - QString mozUri = QString::fromLatin1(uri, uri.size()); - mozUri += QLatin1Char('\n'); + const QString mozUri = QLatin1String(data->split('\n').constFirst()) + QLatin1Char('\n'); *data = QByteArray(reinterpret_cast(mozUri.utf16()), mozUri.length() * 2); } else if (atomName == QLatin1String("application/x-color")) diff --git a/src/plugins/platforms/xcb/qxcbscreen.cpp b/src/plugins/platforms/xcb/qxcbscreen.cpp index e4c92c5206..a9675935f4 100644 --- a/src/plugins/platforms/xcb/qxcbscreen.cpp +++ b/src/plugins/platforms/xcb/qxcbscreen.cpp @@ -61,8 +61,7 @@ QXcbVirtualDesktop::QXcbVirtualDesktop(QXcbConnection *connection, xcb_screen_t , m_number(number) , m_xSettings(Q_NULLPTR) { - QByteArray cmAtomName("_NET_WM_CM_S"); - cmAtomName += QByteArray::number(m_number); + const QByteArray cmAtomName = "_NET_WM_CM_S" + QByteArray::number(m_number); m_net_wm_cm_atom = connection->internAtom(cmAtomName.constData()); m_compositingActive = connection->getSelectionOwner(m_net_wm_cm_atom); diff --git a/src/tools/rcc/rcc.cpp b/src/tools/rcc/rcc.cpp index 3156df3f30..18772d2816 100644 --- a/src/tools/rcc/rcc.cpp +++ b/src/tools/rcc/rcc.cpp @@ -705,9 +705,7 @@ static void resourceDataFileMapRecursion(const RCCFileInfo *m_root, const QStrin const ChildConstIterator cend = m_root->m_children.constEnd(); for (ChildConstIterator it = m_root->m_children.constBegin(); it != cend; ++it) { const RCCFileInfo *child = it.value(); - QString childName = path; - childName += slash; - childName += child->m_name; + const QString childName = path + slash + child->m_name; if (child->m_flags & RCCFileInfo::Directory) { resourceDataFileMapRecursion(child, childName, m); } else { -- cgit v1.2.3