Mark each QT_MOC_LITERAL usage with a comment
The comment shows to which string a QT_MOC_LITERAL is pointing. Change-Id: Ia389d750b1b1c21e2242bad6beceea4f9298ff8e Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
This commit is contained in:
parent
b526e44a37
commit
78a1c46a86
@ -266,10 +266,12 @@ void Generator::generateCode()
|
||||
{
|
||||
int idx = 0;
|
||||
for (int i = 0; i < strings.size(); ++i) {
|
||||
if (i)
|
||||
fprintf(out, ",\n");
|
||||
const QByteArray &str = strings.at(i);
|
||||
fprintf(out, "QT_MOC_LITERAL(%d, %d, %d)", i, idx, str.length());
|
||||
if (i != strings.size() - 1)
|
||||
fputc(',', out);
|
||||
const QByteArray comment = str.length() > 32 ? str.left(29) + "..." : str;
|
||||
fprintf(out, " // \"%s\"\n", comment.constData());
|
||||
idx += str.length() + 1;
|
||||
for (int j = 0; j < str.length(); ++j) {
|
||||
if (str.at(j) == '\\') {
|
||||
|
@ -174,6 +174,9 @@ class TestClassinfoWithEscapes: public QObject
|
||||
Q_OBJECT
|
||||
Q_CLASSINFO("escaped", "\"bar\"")
|
||||
Q_CLASSINFO("\"escaped\"", "foo")
|
||||
Q_CLASSINFO("cpp c*/omment", "f/*oo")
|
||||
Q_CLASSINFO("endswith\\", "Or?\?/")
|
||||
Q_CLASSINFO("newline\n inside\n", "Or \r")
|
||||
public slots:
|
||||
void slotWithAReallyLongName(int)
|
||||
{ }
|
||||
@ -800,6 +803,14 @@ void tst_Moc::classinfoWithEscapes()
|
||||
const QMetaObject *mobj = &TestClassinfoWithEscapes::staticMetaObject;
|
||||
QCOMPARE(mobj->methodCount() - mobj->methodOffset(), 1);
|
||||
|
||||
QCOMPARE(mobj->classInfoCount(), 5);
|
||||
QCOMPARE(mobj->classInfo(2).name(), "cpp c*/omment");
|
||||
QCOMPARE(mobj->classInfo(2).value(), "f/*oo");
|
||||
QCOMPARE(mobj->classInfo(3).name(), "endswith\\");
|
||||
QCOMPARE(mobj->classInfo(3).value(), "Or?\?/");
|
||||
QCOMPARE(mobj->classInfo(4).name(), "newline\n inside\n");
|
||||
QCOMPARE(mobj->classInfo(4).value(), "Or \r");
|
||||
|
||||
QMetaMethod mm = mobj->method(mobj->methodOffset());
|
||||
QCOMPARE(mm.methodSignature(), QByteArray("slotWithAReallyLongName(int)"));
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user