void MetaInfoReader::propertyDefinition(const QString &name, const QVariant &value) { switch (parserState()) { case ParsingType: readTypeProperty(name, value); break; case ParsingItemLibrary: readItemLibraryEntryProperty(name, value); break; case ParsingProperty: readPropertyProperty(name, value); break; case ParsingQmlSource: readQmlSourceProperty(name, value); break; case ParsingMetaInfo: addError(tr("No property definition allowed"), currentSourceLocation()); break; case ParsingDocument: case Finished: case Undefined: setParserState(Error); addError(tr("Illegal state while parsing"), currentSourceLocation()); case Error: default: return; } }
void MetaInfoReader::elementStart(const QString &name) { switch (parserState()) { case ParsingDocument: setParserState(readDocument(name)); break; case ParsingMetaInfo: setParserState(readMetaInfoRootElement(name)); break; case ParsingType: setParserState(readTypeElement(name)); break; case ParsingItemLibrary: setParserState(readItemLibraryEntryElement(name)); break; case ParsingProperty: setParserState(readPropertyElement(name)); break; case ParsingQmlSource: setParserState(readQmlSourceElement(name)); break; case Finished: case Undefined: setParserState(Error); addError(tr("Illegal state while parsing"), currentSourceLocation()); case Error: default: return; } }
void MetaInfoReader::elementEnd() { switch (parserState()) { case ParsingMetaInfo: setParserState(Finished); break; case ParsingType: setParserState(ParsingMetaInfo); break; case ParsingItemLibrary: insertItemLibraryEntry(); setParserState((ParsingType)); break; case ParsingProperty: insertProperty(); setParserState(ParsingItemLibrary); break; case ParsingQmlSource: setParserState(ParsingItemLibrary); break; case ParsingDocument: case Finished: case Undefined: setParserState(Error); addError(tr("Illegal state while parsing"), currentSourceLocation()); case Error: default: return; } }
void MetaInfoReader::readQmlSourceProperty(const QString &name, const QVariant &value) { if (name == QLatin1String("source")) { m_currentEntry.setQml(value.toString()); } else { addError(tr("Unknown property for QmlSource %1").arg(name), currentSourceLocation()); setParserState(Error); } }
void MetaInfoReader::readQmlSourceProperty(const QString &name, const QVariant &value) { if (name == QStringLiteral("source")) { m_currentEntry.setQmlPath(absoluteFilePathForDocument(value.toString())); } else { addError(tr("Unknown property for QmlSource %1").arg(name), currentSourceLocation()); setParserState(Error); } }
void MetaInfoReader::readTypeProperty(const QString &name, const QVariant &value) { if (name == QLatin1String("name")) { m_currentClassName = value.toString(); } else if (name == QLatin1String("icon")) { m_currentIcon = value.toString(); } else { addError(tr("Unknown property for Type %1").arg(name), currentSourceLocation()); setParserState(Error); } }
void SimpleReader::propertyDefinition(const QString &name, const QVariant &value) { Q_ASSERT(m_currentNode); qCDebug(simpleReaderLog) << "propertyDefinition()" << m_currentNode.data()->name() << name << value; if (m_currentNode.data()->propertyNames().contains(name)) addError(tr("Property is defined twice."), currentSourceLocation()); m_currentNode.data()->setProperty(name, value); }
void MetaInfoReader::readPropertyProperty(const QString &name, const QVariant &value) { if (name == QLatin1String("name")) { m_currentPropertyName = value.toString(); } else if (name == QLatin1String("type")) { m_currentPropertyType = value.toString(); } else if (name == QLatin1String("value")) { m_currentPropertyValue = value; } else { addError(tr("Unknown property for Property %1").arg(name), currentSourceLocation()); setParserState(Error); } }
void MetaInfoReader::readTypeProperty(const QString &name, const QVariant &value) { if (name == QLatin1String("name")) { m_currentClassName = value.toString().toUtf8(); if (!m_qualication.isEmpty()) //prepend qualification m_currentClassName = m_qualication + "." + m_currentClassName; } else if (name == QStringLiteral("icon")) { m_currentIcon = absoluteFilePathForDocument(value.toString()); } else { addError(tr("Unknown property for Type %1").arg(name), currentSourceLocation()); setParserState(Error); } }
void MetaInfoReader::readImportsProperty(const QString &name, const QVariant &value) { const auto values = value.toStringList(); if (name == "blacklistImports" && !values.isEmpty()) { m_metaInfo.itemLibraryInfo()->addBlacklistImports(values); } else if (name == "showTagsForImports" && !values.isEmpty()) { m_metaInfo.itemLibraryInfo()->addShowTagsForImports(values); } else { addError(tr("Unknown property for Imports %1").arg(name), currentSourceLocation()); setParserState(Error); } }
MetaInfoReader::ParserSate MetaInfoReader::readItemLibraryEntryElement(const QString &name) { if (name == QmlSourceElementName) { return ParsingQmlSource; } else if (name == PropertyElementName) { m_currentPropertyName = QString(); m_currentPropertyType = QString(); m_currentPropertyValue = QVariant(); return ParsingProperty; } else { addError(tr("Invalid type %1").arg(name), currentSourceLocation()); return Error; } }
void MetaInfoReader::readItemLibraryEntryProperty(const QString &name, const QVariant &value) { if (name == QStringLiteral("name")) { m_currentEntry.setName(value.toString()); } else if (name == QStringLiteral("category")) { m_currentEntry.setCategory(value.toString()); } else if (name == QStringLiteral("libraryIcon")) { m_currentEntry.setLibraryEntryIconPath(absoluteFilePathForDocument(value.toString())); } else if (name == QStringLiteral("version")) { setVersion(value.toString()); } else if (name == QStringLiteral("requiredImport")) { m_currentEntry.setRequiredImport(value.toString()); } else { addError(tr("Unknown property for ItemLibraryEntry %1").arg(name), currentSourceLocation()); setParserState(Error); } }
void MetaInfoReader::addErrorInvalidType(const QString &typeName) { addError(tr("Invalid type %1").arg(typeName), currentSourceLocation()); }
void MetaInfoReader::insertItemLibraryEntry() { if (debug) { qDebug() << "insertItemLibraryEntry()"; qDebug() << m_currentEntry; } try { m_metaInfo.itemLibraryInfo()->addEntry(m_currentEntry); } catch (InvalidMetaInfoException &) { addError(tr("Invalid or duplicate item library entry %1").arg(m_currentEntry.name()), currentSourceLocation()); } }
MetaInfoReader::ParserSate MetaInfoReader::readQmlSourceElement(const QString &name) { addError(tr("Invalid type %1").arg(name), currentSourceLocation()); return Error; }
void MetaInfoReader::syncItemLibraryEntries() { try { m_metaInfo.itemLibraryInfo()->addEntries(m_bufferedEntries, m_overwriteDuplicates); } catch (const InvalidMetaInfoException &) { addError(tr("Invalid or duplicate item library entry %1").arg(m_currentEntry.name()), currentSourceLocation()); } m_bufferedEntries.clear(); }