Merge remote-tracking branch 'origin/stable' into dev

Conflicts:
	src/corelib/global/qglobal.h

Change-Id: I03d8b6e07135056baaa1d97c3c63fbe8b25583d9
This commit is contained in:
Frederik Gladhorn 2014-02-17 11:39:16 +01:00
commit dbafabb019
35 changed files with 113 additions and 80 deletions

View File

@ -467,3 +467,11 @@
\externalpage http://qt-project.org/doc/qtcreator/creator-debuggers.html \externalpage http://qt-project.org/doc/qtcreator/creator-debuggers.html
\title Qt Creator: Adding Debuggers \title Qt Creator: Adding Debuggers
*/ */
/*!
\externalpage http://qt-project.org/doc/qtcreator/creator-android-app-tutorial.html
\title Qt Creator: Creating an Android Application
*/
/*!
\externalpage http://qt-project.org/doc/qtcreator/creator-diff-editor.html
\title Qt Creator: Comparing Files
*/

View File

@ -1,7 +1,7 @@
QT_QPA_DEFAULT_PLATFORM = eglfs QT_QPA_DEFAULT_PLATFORM = eglfs
MAKEFILE_GENERATOR = UNIX MAKEFILE_GENERATOR = UNIX
CONFIG += incremental gdb_dwarf_index CONFIG += incremental
QMAKE_INCREMENTAL_STYLE = sublib QMAKE_INCREMENTAL_STYLE = sublib
include(../../common/linux.conf) include(../../common/linux.conf)

View File

@ -7,7 +7,7 @@
# http://github.com/KDAB/OpenEmbedded-Archos # http://github.com/KDAB/OpenEmbedded-Archos
MAKEFILE_GENERATOR = UNIX MAKEFILE_GENERATOR = UNIX
CONFIG += incremental gdb_dwarf_index CONFIG += incremental
QMAKE_INCREMENTAL_STYLE = sublib QMAKE_INCREMENTAL_STYLE = sublib
include(../../common/linux.conf) include(../../common/linux.conf)

View File

@ -3,7 +3,7 @@
# #
MAKEFILE_GENERATOR = UNIX MAKEFILE_GENERATOR = UNIX
CONFIG += incremental gdb_dwarf_index CONFIG += incremental
QMAKE_INCREMENTAL_STYLE = sublib QMAKE_INCREMENTAL_STYLE = sublib
include(../../common/linux.conf) include(../../common/linux.conf)

View File

@ -5,7 +5,7 @@
# #
MAKEFILE_GENERATOR = UNIX MAKEFILE_GENERATOR = UNIX
CONFIG += incremental gdb_dwarf_index CONFIG += incremental
QMAKE_INCREMENTAL_STYLE = sublib QMAKE_INCREMENTAL_STYLE = sublib
include(../../common/linux.conf) include(../../common/linux.conf)

View File

@ -3,7 +3,7 @@
# http://beagleboard.org/ # http://beagleboard.org/
MAKEFILE_GENERATOR = UNIX MAKEFILE_GENERATOR = UNIX
CONFIG += incremental gdb_dwarf_index CONFIG += incremental
QMAKE_INCREMENTAL_STYLE = sublib QMAKE_INCREMENTAL_STYLE = sublib
include(../../common/linux.conf) include(../../common/linux.conf)

View File

@ -3,7 +3,7 @@
# http://wiki.qt-project.org/Devices/N9 # http://wiki.qt-project.org/Devices/N9
MAKEFILE_GENERATOR = UNIX MAKEFILE_GENERATOR = UNIX
CONFIG += incremental gdb_dwarf_index CONFIG += incremental
QMAKE_INCREMENTAL_STYLE = sublib QMAKE_INCREMENTAL_STYLE = sublib
QMAKE_PLATFORM = maemo QMAKE_PLATFORM = maemo

View File

@ -3,7 +3,7 @@
# #
MAKEFILE_GENERATOR = UNIX MAKEFILE_GENERATOR = UNIX
CONFIG += incremental gdb_dwarf_index CONFIG += incremental
QMAKE_INCREMENTAL_STYLE = sublib QMAKE_INCREMENTAL_STYLE = sublib
include(../../common/linux.conf) include(../../common/linux.conf)

View File

@ -5,7 +5,7 @@
# #
MAKEFILE_GENERATOR = UNIX MAKEFILE_GENERATOR = UNIX
CONFIG += incremental gdb_dwarf_index CONFIG += incremental
QMAKE_INCREMENTAL_STYLE = sublib QMAKE_INCREMENTAL_STYLE = sublib
include(../../common/linux.conf) include(../../common/linux.conf)

View File

@ -5,7 +5,7 @@
# #
MAKEFILE_GENERATOR = UNIX MAKEFILE_GENERATOR = UNIX
CONFIG += incremental gdb_dwarf_index CONFIG += incremental
QMAKE_INCREMENTAL_STYLE = sublib QMAKE_INCREMENTAL_STYLE = sublib
include(../../common/linux.conf) include(../../common/linux.conf)

View File

@ -3,7 +3,7 @@
# http://qt-project.org/wiki/Snowball # http://qt-project.org/wiki/Snowball
MAKEFILE_GENERATOR = UNIX MAKEFILE_GENERATOR = UNIX
CONFIG += incremental gdb_dwarf_index CONFIG += incremental
QMAKE_INCREMENTAL_STYLE = sublib QMAKE_INCREMENTAL_STYLE = sublib
include(../../common/linux.conf) include(../../common/linux.conf)

View File

@ -1,23 +0,0 @@
!separate_debug_info:have_target:debug:!static:!isEmpty(QMAKE_OBJCOPY) {
contains(TEMPLATE, "lib") {
QMAKE_GDB_INDEX = { test -z \"$(DESTDIR)\" || cd \"$(DESTDIR)\"; } &&
QMAKE_GDB_DIR = .
} else {
QMAKE_GDB_INDEX = { test -n \"$(DESTDIR)\" && DESTDIR=\"$(DESTDIR)\" || DESTDIR=.; } &&
QMAKE_GDB_DIR = \$\$DESTDIR
}
QMAKE_GDB_INDEX += \
test \$\$(gdb --version | sed -e \'s,[^0-9][^0-9]*\\([0-9]\\)\\.\\([0-9]\\).*,\\1\\2,;q\') -gt 72 && \
gdb --nx --batch --quiet -ex \'set confirm off\' -ex \"save gdb-index $$QMAKE_GDB_DIR\" -ex quit \'$(TARGET)\' && \
test -f $(TARGET).gdb-index && \
$$QMAKE_OBJCOPY --add-section \'.gdb_index=$(TARGET).gdb-index\' --set-section-flags \'.gdb_index=readonly\' \'$(TARGET)\' \'$(TARGET)\' && \
$$QMAKE_DEL_FILE $(TARGET).gdb-index || true
!isEmpty(QMAKE_POST_LINK):QMAKE_POST_LINK = $$escape_expand(\\n\\t)$$QMAKE_POST_LINK
QMAKE_POST_LINK = $$QMAKE_GDB_INDEX $$QMAKE_POST_LINK
silent:QMAKE_POST_LINK = @echo indexing $@ for gdb && $$QMAKE_POST_LINK
}

View File

@ -4,7 +4,6 @@
MAKEFILE_GENERATOR = UNIX MAKEFILE_GENERATOR = UNIX
QMAKE_PLATFORM = freebsd bsd QMAKE_PLATFORM = freebsd bsd
CONFIG += gdb_dwarf_index
QMAKE_CFLAGS_THREAD = -pthread -D_THREAD_SAFE QMAKE_CFLAGS_THREAD = -pthread -D_THREAD_SAFE

View File

@ -4,7 +4,6 @@
MAKEFILE_GENERATOR = UNIX MAKEFILE_GENERATOR = UNIX
QMAKE_PLATFORM = freebsd bsd QMAKE_PLATFORM = freebsd bsd
CONFIG += gdb_dwarf_index
QMAKE_CFLAGS_THREAD = -pthread -D_THREAD_SAFE QMAKE_CFLAGS_THREAD = -pthread -D_THREAD_SAFE

View File

@ -4,7 +4,7 @@
MAKEFILE_GENERATOR = UNIX MAKEFILE_GENERATOR = UNIX
QMAKE_PLATFORM = hurd QMAKE_PLATFORM = hurd
CONFIG += incremental gdb_dwarf_index CONFIG += incremental
QMAKE_INCREMENTAL_STYLE = sublib QMAKE_INCREMENTAL_STYLE = sublib
QMAKE_CFLAGS_THREAD += -D_REENTRANT QMAKE_CFLAGS_THREAD += -D_REENTRANT

View File

@ -3,7 +3,7 @@
# #
MAKEFILE_GENERATOR = UNIX MAKEFILE_GENERATOR = UNIX
CONFIG += incremental gdb_dwarf_index CONFIG += incremental
QMAKE_INCREMENTAL_STYLE = sublib QMAKE_INCREMENTAL_STYLE = sublib
include(../common/linux.conf) include(../common/linux.conf)

View File

@ -3,7 +3,7 @@
# #
MAKEFILE_GENERATOR = UNIX MAKEFILE_GENERATOR = UNIX
CONFIG += incremental gdb_dwarf_index CONFIG += incremental
QMAKE_INCREMENTAL_STYLE = sublib QMAKE_INCREMENTAL_STYLE = sublib
QMAKE_CFLAGS = -m32 QMAKE_CFLAGS = -m32

View File

@ -6,7 +6,7 @@
# #
MAKEFILE_GENERATOR = UNIX MAKEFILE_GENERATOR = UNIX
CONFIG += incremental gdb_dwarf_index CONFIG += incremental
QMAKE_INCREMENTAL_STYLE = sublib QMAKE_INCREMENTAL_STYLE = sublib
QMAKE_CFLAGS = -m64 QMAKE_CFLAGS = -m64

View File

@ -4,7 +4,7 @@
MAKEFILE_GENERATOR = UNIX MAKEFILE_GENERATOR = UNIX
QMAKE_PLATFORM = maemo QMAKE_PLATFORM = maemo
CONFIG += incremental gdb_dwarf_index CONFIG += incremental
CONFIG += nostrip CONFIG += nostrip
QMAKE_INCREMENTAL_STYLE = sublib QMAKE_INCREMENTAL_STYLE = sublib

View File

@ -3,7 +3,7 @@
# #
MAKEFILE_GENERATOR = UNIX MAKEFILE_GENERATOR = UNIX
CONFIG += incremental gdb_dwarf_index CONFIG += incremental
QMAKE_INCREMENTAL_STYLE = sublib QMAKE_INCREMENTAL_STYLE = sublib
include(../common/linux.conf) include(../common/linux.conf)

View File

@ -3,7 +3,6 @@
# #
MAKEFILE_GENERATOR = UNIX MAKEFILE_GENERATOR = UNIX
CONFIG += gdb_dwarf_index
QMAKE_COMPILER = gcc intel_icc # icc pretends to be gcc QMAKE_COMPILER = gcc intel_icc # icc pretends to be gcc

View File

@ -3,7 +3,7 @@
# #
MAKEFILE_GENERATOR = UNIX MAKEFILE_GENERATOR = UNIX
CONFIG += incremental gdb_dwarf_index CONFIG += incremental
QMAKE_INCREMENTAL_STYLE = sublib QMAKE_INCREMENTAL_STYLE = sublib
include(../common/linux.conf) include(../common/linux.conf)

View File

@ -3,7 +3,7 @@
# #
MAKEFILE_GENERATOR = UNIX MAKEFILE_GENERATOR = UNIX
CONFIG += incremental gdb_dwarf_index CONFIG += incremental
QMAKE_INCREMENTAL_STYLE = sublib QMAKE_INCREMENTAL_STYLE = sublib
include(../common/linux.conf) include(../common/linux.conf)

View File

@ -4,7 +4,6 @@
MAKEFILE_GENERATOR = UNIX MAKEFILE_GENERATOR = UNIX
QMAKE_PLATFORM = netbsd bsd QMAKE_PLATFORM = netbsd bsd
CONFIG += gdb_dwarf_index
QMAKE_COMPILER = gcc QMAKE_COMPILER = gcc

View File

@ -4,7 +4,6 @@
MAKEFILE_GENERATOR = UNIX MAKEFILE_GENERATOR = UNIX
QMAKE_PLATFORM = openbsd bsd QMAKE_PLATFORM = openbsd bsd
CONFIG += gdb_dwarf_index
QMAKE_COMPILER = gcc QMAKE_COMPILER = gcc

View File

@ -510,6 +510,11 @@ bool VCCLCompilerTool::parseOption(const char* option)
BrowseInformation = brAllInfo; BrowseInformation = brAllInfo;
BrowseInformationFile = option+3; BrowseInformationFile = option+3;
break; break;
case 'S':
if (config->CompilerVersion < NET2013)
found = false;
// Ignore this flag. Visual Studio 2013 takes care of this setting.
break;
case 'r': case 'r':
BrowseInformation = brNoLocalSymbols; BrowseInformation = brNoLocalSymbols;
BrowseInformationFile = option+3; BrowseInformationFile = option+3;

View File

@ -1060,6 +1060,7 @@ QT_END_NAMESPACE
#include <QtCore/qatomic.h> #include <QtCore/qatomic.h>
#include <QtCore/qglobalstatic.h> #include <QtCore/qglobalstatic.h>
#include <QtCore/qnumeric.h>
#endif /* __cplusplus */ #endif /* __cplusplus */

View File

@ -677,7 +677,7 @@ QByteArray QMetaObjectPrivate::decodeMethodSignature(
const char *lparens = strchr(signature, '('); const char *lparens = strchr(signature, '(');
if (!lparens) if (!lparens)
return QByteArray(); return QByteArray();
const char *rparens = strchr(lparens + 1, ')'); const char *rparens = strrchr(lparens + 1, ')');
if (!rparens || *(rparens+1)) if (!rparens || *(rparens+1))
return QByteArray(); return QByteArray();
int nameLength = lparens - signature; int nameLength = lparens - signature;

View File

@ -155,8 +155,14 @@ static QByteArray normalizeTypeInternal(const char *t, const char *e, bool fixSc
//template recursion //template recursion
const char* tt = t; const char* tt = t;
int templdepth = 1; int templdepth = 1;
int scopeDepth = 0;
while (t != e) { while (t != e) {
c = *t++; c = *t++;
if (c == '{' || c == '(' || c == '[')
++scopeDepth;
if (c == '}' || c == ')' || c == ']')
--scopeDepth;
if (scopeDepth == 0) {
if (c == '<') if (c == '<')
++templdepth; ++templdepth;
if (c == '>') if (c == '>')
@ -173,6 +179,7 @@ static QByteArray normalizeTypeInternal(const char *t, const char *e, bool fixSc
} }
} }
} }
}
// cv qualifers can appear after the type as well // cv qualifers can appear after the type as well
if (!is_ident_char(c) && t != e && (e - t >= 5 && strncmp("const", t, 5) == 0) if (!is_ident_char(c) && t != e && (e - t >= 5 && strncmp("const", t, 5) == 0)

View File

@ -621,9 +621,6 @@
unless you need to change the QSet through the iterator. Const unless you need to change the QSet through the iterator. Const
iterators are slightly faster, and can improve code readability. iterators are slightly faster, and can improve code readability.
QSet\<T\>::iterator allows you to iterate over a QSet\<T\> and
modify it as you go (using QSet::erase()). However,
The default QSet::iterator constructor creates an uninitialized The default QSet::iterator constructor creates an uninitialized
iterator. You must initialize it using a function like iterator. You must initialize it using a function like
QSet::begin(), QSet::end(), or QSet::insert() before you can QSet::begin(), QSet::end(), or QSet::insert() before you can

View File

@ -79,6 +79,10 @@ QCocoaMenuBar::~QCocoaMenuBar()
if (m_window && m_window->menubar() == this) { if (m_window && m_window->menubar() == this) {
m_window->setMenubar(0); m_window->setMenubar(0);
// Delete the children first so they do not cause
// the native menu items to be hidden after
// the menu bar was updated
qDeleteAll(children());
updateMenuBarImmediately(); updateMenuBarImmediately();
} }
} }

View File

@ -224,14 +224,11 @@ Type Moc::parseType()
; ;
} }
if (test(LANGLE)) { if (test(LANGLE)) {
QByteArray templ = lexemUntil(RANGLE); if (type.name.isEmpty()) {
for (int i = 0; i < templ.size(); ++i) { // '<' cannot start a type
type.name += templ.at(i); return type;
if ((templ.at(i) == '<' && i+1 < templ.size() && templ.at(i+1) == ':')
|| (templ.at(i) == '>' && i+1 < templ.size() && templ.at(i+1) == '>')) {
type.name += ' ';
}
} }
type.name += lexemUntil(RANGLE);
} }
if (test(SCOPE)) { if (test(SCOPE)) {
type.name += lexem(); type.name += lexem();
@ -1402,10 +1399,14 @@ QByteArray Moc::lexemUntil(Token target)
QByteArray s; QByteArray s;
while (from <= index) { while (from <= index) {
QByteArray n = symbols.at(from++-1).lexem(); QByteArray n = symbols.at(from++-1).lexem();
if (s.size() && n.size() if (s.size() && n.size()) {
&& is_ident_char(s.at(s.size()-1)) char prev = s.at(s.size()-1);
&& is_ident_char(n.at(0))) char next = n.at(0);
if ((is_ident_char(prev) && is_ident_char(next))
|| (prev == '<' && next == ':')
|| (prev == '>' && next == '>'))
s += ' '; s += ' ';
}
s += n; s += n;
} }
return s; return s;
@ -1440,9 +1441,20 @@ bool Moc::until(Token target) {
case RBRACK: --brackCount; break; case RBRACK: --brackCount; break;
case LPAREN: ++parenCount; break; case LPAREN: ++parenCount; break;
case RPAREN: --parenCount; break; case RPAREN: --parenCount; break;
case LANGLE: ++angleCount; break; case LANGLE:
case RANGLE: --angleCount; break; if (parenCount == 0 && braceCount == 0 && parenCount == 0)
case GTGT: angleCount -= 2; t = RANGLE; break; ++angleCount;
break;
case RANGLE:
if (parenCount == 0 && braceCount == 0)
--angleCount;
break;
case GTGT:
if (parenCount == 0 && braceCount == 0) {
angleCount -= 2;
t = RANGLE;
}
break;
default: break; default: break;
} }
if (t == target if (t == target

View File

@ -2499,7 +2499,9 @@ void QGtkStyle::drawComplexControl(ComplexControl control, const QStyleOptionCom
if ((option->subControls & SC_SliderGroove) && groove.isValid()) { if ((option->subControls & SC_SliderGroove) && groove.isValid()) {
GtkRange *range = (GtkRange*)scaleWidget; GtkRange *range = (GtkRange*)scaleWidget;
GtkAdjustment *adjustment = d->gtk_range_get_adjustment(range); GtkAdjustment *adjustment = 0;
if (d->gtk_adjustment_configure)
adjustment = d->gtk_range_get_adjustment(range);
if (adjustment) { if (adjustment) {
d->gtk_adjustment_configure(adjustment, d->gtk_adjustment_configure(adjustment,
slider->sliderPosition, slider->sliderPosition,

View File

@ -1717,8 +1717,9 @@ void QMacStylePrivate::drawColorlessButton(const HIRect &macRect, HIThemeButtonD
} }
} }
int width = int(macRect.size.width) + extraWidth; int devicePixelRatio = p->device()->devicePixelRatio();
int height = int(macRect.size.height) + extraHeight; int width = devicePixelRatio * (int(macRect.size.width) + extraWidth);
int height = devicePixelRatio * (int(macRect.size.height) + extraHeight);
if (width <= 0 || height <= 0) if (width <= 0 || height <= 0)
return; // nothing to draw return; // nothing to draw
@ -1730,6 +1731,7 @@ void QMacStylePrivate::drawColorlessButton(const HIRect &macRect, HIThemeButtonD
QPixmap pm; QPixmap pm;
if (!QPixmapCache::find(key, pm)) { if (!QPixmapCache::find(key, pm)) {
QPixmap activePixmap(width, height); QPixmap activePixmap(width, height);
activePixmap.setDevicePixelRatio(devicePixelRatio);
activePixmap.fill(Qt::transparent); activePixmap.fill(Qt::transparent);
{ {
if (combo){ if (combo){
@ -1780,6 +1782,7 @@ void QMacStylePrivate::drawColorlessButton(const HIRect &macRect, HIThemeButtonD
QImage colorlessImage; QImage colorlessImage;
{ {
QPixmap colorlessPixmap(width, height); QPixmap colorlessPixmap(width, height);
colorlessPixmap.setDevicePixelRatio(devicePixelRatio);
colorlessPixmap.fill(Qt::transparent); colorlessPixmap.fill(Qt::transparent);
QMacCGContext cg(&colorlessPixmap); QMacCGContext cg(&colorlessPixmap);
@ -1813,7 +1816,7 @@ void QMacStylePrivate::drawColorlessButton(const HIRect &macRect, HIThemeButtonD
} }
QPixmapCache::insert(key, pm); QPixmapCache::insert(key, pm);
} }
p->drawPixmap(int(macRect.origin.x) - xoff, int(macRect.origin.y) + finalyoff, width, height, pm); p->drawPixmap(int(macRect.origin.x) - xoff, int(macRect.origin.y) + finalyoff, width / devicePixelRatio, height / devicePixelRatio , pm);
} }
QMacStyle::QMacStyle() QMacStyle::QMacStyle()
@ -6715,6 +6718,8 @@ CGContextRef qt_mac_cg_context(const QPaintDevice *pdev)
} }
CGContextTranslateCTM(ret, 0, pm->height()); CGContextTranslateCTM(ret, 0, pm->height());
int devicePixelRatio = pdev->devicePixelRatio();
CGContextScaleCTM(ret, devicePixelRatio, devicePixelRatio);
CGContextScaleCTM(ret, 1, -1); CGContextScaleCTM(ret, 1, -1);
return ret; return ret;
} else if (pdev->devType() == QInternal::Widget) { } else if (pdev->devType() == QInternal::Widget) {

View File

@ -131,6 +131,7 @@ public:
emit send(value); emit send(value);
} }
bool operator< ( const Sender & ) const { /* QTBUG-36834 */ return true;}
signals: signals:
void send(const String::Type&); void send(const String::Type&);
void send(const Int::Type&); void send(const Int::Type&);
@ -1546,13 +1547,30 @@ class QTBUG12260_defaultTemplate_Object : public QObject
public slots: public slots:
#if !(defined(Q_CC_GNU) && __GNUC__ == 4 && __GNUC_MINOR__ <= 3) || defined(Q_MOC_RUN) #if !(defined(Q_CC_GNU) && __GNUC__ == 4 && __GNUC_MINOR__ <= 3) || defined(Q_MOC_RUN)
void doSomething(QHash<QString, QVariant> values = QHash<QString, QVariant>() ) { Q_UNUSED(values); } void doSomething(QHash<QString, QVariant> values = QHash<QString, QVariant>() ) { Q_UNUSED(values); }
void doSomethingElse(QSharedPointer<QVarLengthArray<QString, (16 >> 2)> > val
= QSharedPointer<QVarLengthArray<QString, (16 >> 2)> >() )
{ Q_UNUSED(val); }
#else #else
// we want to test the previous function, but gcc < 4.4 seemed to have a bug similar to the one moc has. // we want to test the previous function, but gcc < 4.4 seemed to have a bug similar to the one moc has.
typedef QHash<QString, QVariant> WorkaroundGCCBug; typedef QHash<QString, QVariant> WorkaroundGCCBug;
void doSomething(QHash<QString, QVariant> values = WorkaroundGCCBug() ) { Q_UNUSED(values); } void doSomething(QHash<QString, QVariant> values = WorkaroundGCCBug() ) { Q_UNUSED(values); }
void doSomethingElse(QSharedPointer<QVarLengthArray<QString, (16 >> 2)> > val
= (QSharedPointer<QVarLengthArray<QString, (16 >> 2)> >()) )
{ Q_UNUSED(val); }
#endif #endif
void doAnotherThing(bool a = (1 < 3), bool b = (1 > 4)) { Q_UNUSED(a); Q_UNUSED(b); } void doAnotherThing(bool a = (1 < 3), bool b = (1 > 4)) { Q_UNUSED(a); Q_UNUSED(b); }
#if defined(Q_MOC_RUN) || (defined(Q_COMPILER_AUTO_TYPE) && !(defined(Q_CC_CLANG) && (__clang_major__ * 100) + __clang_minor__) < 304)
// There is no Q_COMPILER_>> but if compiler support auto, it should also support >>
void performSomething(QVector<QList<QString>> e = QVector<QList<QString>>(8 < 1),
QHash<int, QVector<QString>> h = QHash<int, QVector<QString>>())
{ Q_UNUSED(e); Q_UNUSED(h); }
#else
void performSomething(QVector<QList<QString> > e = QVector<QList<QString> >(),
QHash<int, QVector<QString> > h = (QHash<int, QVector<QString> >()))
{ Q_UNUSED(e); Q_UNUSED(h); }
#endif
}; };
@ -1560,6 +1578,8 @@ void tst_Moc::QTBUG12260_defaultTemplate()
{ {
QVERIFY(QTBUG12260_defaultTemplate_Object::staticMetaObject.indexOfSlot("doSomething(QHash<QString,QVariant>)") != -1); QVERIFY(QTBUG12260_defaultTemplate_Object::staticMetaObject.indexOfSlot("doSomething(QHash<QString,QVariant>)") != -1);
QVERIFY(QTBUG12260_defaultTemplate_Object::staticMetaObject.indexOfSlot("doAnotherThing(bool,bool)") != -1); QVERIFY(QTBUG12260_defaultTemplate_Object::staticMetaObject.indexOfSlot("doAnotherThing(bool,bool)") != -1);
QVERIFY(QTBUG12260_defaultTemplate_Object::staticMetaObject.indexOfSlot("doSomethingElse(QSharedPointer<QVarLengthArray<QString,(16>>2)> >)") != -1);
QVERIFY(QTBUG12260_defaultTemplate_Object::staticMetaObject.indexOfSlot("performSomething(QVector<QList<QString> >,QHash<int,QVector<QString> >)") != -1);
} }
void tst_Moc::notifyError() void tst_Moc::notifyError()