From 927b68cf2d05659d911fc1f052a41b0dc7b43ce6 Mon Sep 17 00:00:00 2001 From: Jarek Kobus <jaroslaw.kobus@qt.io> Date: Thu, 15 Jun 2017 15:00:22 +0200 Subject: [PATCH] Ignore deprecated elements instead of raising an error Change-Id: I2fb1b9f08e9123e62c1a80780ce6f47dc7d3d25d Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> --- src/designer/data/generate_header.xsl | 8 +++---- src/designer/data/generate_impl.xsl | 14 +++++++++---- src/designer/data/ui4.xsd | 6 ++++++ src/designer/src/lib/uilib/ui4.cpp | 30 +++++++++++++++++++++++++++ 4 files changed, 50 insertions(+), 8 deletions(-) diff --git a/src/designer/data/generate_header.xsl b/src/designer/data/generate_header.xsl index 6b27e9e33..ec1ea7aa9 100644 --- a/src/designer/data/generate_header.xsl +++ b/src/designer/data/generate_header.xsl @@ -68,7 +68,7 @@ <xsl:text> inline Kind kind() const { return m_kind; }&endl;&endl;</xsl:text> </xsl:if> - <xsl:for-each select="$node/xs:element"> + <xsl:for-each select="$node/xs:element[not(@use) or (@use!='deprecated')]"> <xsl:variable name="array" select="@maxOccurs='unbounded'"/> <xsl:variable name="camel-case-name"> <xsl:call-template name="camel-case"> @@ -168,7 +168,7 @@ <xsl:variable name="isChoice" select="$node[name()='xs:choice']"/> - <xsl:for-each select="$node/xs:element"> + <xsl:for-each select="$node/xs:element[not(@use) or (@use!='deprecated')]"> <xsl:variable name="camel-case-name"> <xsl:call-template name="camel-case"> <xsl:with-param name="text" select="@name"/> @@ -210,8 +210,8 @@ <xsl:if test="not($isChoice) and not(@macOccurs='unbounded')"> <xsl:text>&endl; enum Child {&endl;</xsl:text> - <xsl:for-each select="$node/xs:element"> - <xsl:variable name="camel-case-name"> + <xsl:for-each select="$node/xs:element[not(@use) or (@use!='deprecated')]"> + <xsl:variable name="camel-case-name"> <xsl:call-template name="camel-case"> <xsl:with-param name="text" select="@name"/> </xsl:call-template> diff --git a/src/designer/data/generate_impl.xsl b/src/designer/data/generate_impl.xsl index 60922a851..6a538b697 100644 --- a/src/designer/data/generate_impl.xsl +++ b/src/designer/data/generate_impl.xsl @@ -54,7 +54,7 @@ <xsl:template name="dtor-delete-members"> <xsl:param name="node"/> - <xsl:for-each select="$node/xs:element"> + <xsl:for-each select="$node/xs:element[not(@use) or (@use!='deprecated')]"> <xsl:variable name="camel-case-name"> <xsl:call-template name="camel-case"> <xsl:with-param name="text" select="@name"/> @@ -259,6 +259,12 @@ <xsl:text>, Qt::CaseInsensitive)) {&endl;</xsl:text> <xsl:choose> + <xsl:when test="@use='deprecated'"> + <xsl:text> qWarning("Omitting deprecated element <</xsl:text> + <xsl:value-of select="$lower-name"/> + <xsl:text>>.");&endl;</xsl:text> + <xsl:text> reader.skipCurrentElement();&endl;</xsl:text> + </xsl:when> <xsl:when test="not($array) and $xs-type-cat = 'value'"> <xsl:variable name="qstring-func"> <xsl:call-template name="xs-type-from-qstring-func"> @@ -482,7 +488,7 @@ <xsl:template name="write-impl-save-sequence-child-element"> <xsl:param name="node"/> <xsl:variable name="name" select="concat('Dom', $node/@name)"/> - <xsl:for-each select="$node/xs:element"> + <xsl:for-each select="$node/xs:element[not(@use) or (@use!='deprecated')]"> <xsl:variable name="camel-case-name"> <xsl:call-template name="camel-case"> <xsl:with-param name="text" select="@name"/> @@ -630,7 +636,7 @@ <xsl:param name="name"/> <xsl:variable name="isChoice" select="name($node)='xs:choice'"/> - <xsl:for-each select="$node/xs:element"> + <xsl:for-each select="$node/xs:element[not(@use) or (@use!='deprecated')]"> <xsl:variable name="array" select="@maxOccurs = 'unbounded'"/> <xsl:variable name="camel-case-name"> <xsl:call-template name="camel-case"> @@ -738,7 +744,7 @@ <xsl:variable name="isChoice" select="name()='xs:choice'"/> <xsl:variable name="make-child-enum" select="boolean(xs:sequence) and not(@maxOccurs='unbounded')"/> - <xsl:for-each select="xs:element"> + <xsl:for-each select="xs:element[not(@use) or (@use!='deprecated')]"> <xsl:if test="not($isChoice) and not(@maxOccurs='unbounded')"> <xsl:variable name="camel-case-name"> <xsl:call-template name="camel-case"> diff --git a/src/designer/data/ui4.xsd b/src/designer/data/ui4.xsd index fe366cea4..d785a3e99 100644 --- a/src/designer/data/ui4.xsd +++ b/src/designer/data/ui4.xsd @@ -15,6 +15,7 @@ <xs:element name="pixmapfunction" type="xs:string" minOccurs="0" /> <xs:element name="customwidgets" type="CustomWidgets" minOccurs="0" /> <xs:element name="tabstops" type="TabStops" minOccurs="0" /> + <xs:element name="images" use="deprecated" /> <xs:element name="includes" type="Includes" minOccurs="0" /> <xs:element name="resources" type="Resources" minOccurs="0" /> <xs:element name="connections" type="Connections" minOccurs="0" /> @@ -117,7 +118,10 @@ <xs:element name="sizehint" type="Size" minOccurs="0" /> <xs:element name="addpagemethod" type="xs:string" minOccurs="0" /> <xs:element name="container" type="xs:integer" minOccurs="0" /> + <xs:element name="sizepolicy" use="deprecated" /> <xs:element name="pixmap" type="xs:string" minOccurs="0" /> + <xs:element name="script" use="deprecated" /> + <xs:element name="properties" use="deprecated" /> <xs:element name="slots" type="Slots" minOccurs="0" /> <xs:element name="propertyspecifications" type="PropertySpecifications" minOccurs="0" /> </xs:all> @@ -198,6 +202,8 @@ <xs:sequence> <xs:element name="class" type="xs:string" minOccurs="0" maxOccurs="unbounded" /> <!-- unbounded kept for compatibility reasons --> <xs:element name="property" type="Property" minOccurs="0" maxOccurs="unbounded" /> + <xs:element name="script" use="deprecated" /> + <xs:element name="widgetdata" use="deprecated" /> <xs:element name="attribute" type="Property" minOccurs="0" maxOccurs="unbounded" /> <!-- item view begin --> <xs:element name="row" type="Row" minOccurs="0" maxOccurs="unbounded" /> diff --git a/src/designer/src/lib/uilib/ui4.cpp b/src/designer/src/lib/uilib/ui4.cpp index 3ec4153fb..d0ce3e5d6 100644 --- a/src/designer/src/lib/uilib/ui4.cpp +++ b/src/designer/src/lib/uilib/ui4.cpp @@ -148,6 +148,11 @@ void DomUI::read(QXmlStreamReader &reader) setElementTabStops(v); continue; } + if (!tag.compare(QLatin1String("images"), Qt::CaseInsensitive)) { + qWarning("Omitting deprecated element <images>."); + reader.skipCurrentElement(); + continue; + } if (!tag.compare(QLatin1String("includes"), Qt::CaseInsensitive)) { DomIncludes *v = new DomIncludes(); v->read(reader); @@ -1248,10 +1253,25 @@ void DomCustomWidget::read(QXmlStreamReader &reader) setElementContainer(reader.readElementText().toInt()); continue; } + if (!tag.compare(QLatin1String("sizepolicy"), Qt::CaseInsensitive)) { + qWarning("Omitting deprecated element <sizepolicy>."); + reader.skipCurrentElement(); + continue; + } if (!tag.compare(QLatin1String("pixmap"), Qt::CaseInsensitive)) { setElementPixmap(reader.readElementText()); continue; } + if (!tag.compare(QLatin1String("script"), Qt::CaseInsensitive)) { + qWarning("Omitting deprecated element <script>."); + reader.skipCurrentElement(); + continue; + } + if (!tag.compare(QLatin1String("properties"), Qt::CaseInsensitive)) { + qWarning("Omitting deprecated element <properties>."); + reader.skipCurrentElement(); + continue; + } if (!tag.compare(QLatin1String("slots"), Qt::CaseInsensitive)) { DomSlots *v = new DomSlots(); v->read(reader); @@ -2123,6 +2143,16 @@ void DomWidget::read(QXmlStreamReader &reader) m_property.append(v); continue; } + if (!tag.compare(QLatin1String("script"), Qt::CaseInsensitive)) { + qWarning("Omitting deprecated element <script>."); + reader.skipCurrentElement(); + continue; + } + if (!tag.compare(QLatin1String("widgetdata"), Qt::CaseInsensitive)) { + qWarning("Omitting deprecated element <widgetdata>."); + reader.skipCurrentElement(); + continue; + } if (!tag.compare(QLatin1String("attribute"), Qt::CaseInsensitive)) { DomProperty *v = new DomProperty(); v->read(reader); -- GitLab