Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Marco Bubke
flatpak-qt-creator
Commits
3efefbda
Commit
3efefbda
authored
Oct 12, 2010
by
Marco Bubke
Browse files
QmlDesigner.MetaInfo: Cleanup the MetaInfoParser
parent
8fdcaa5c
Changes
10
Hide whitespace changes
Inline
Side-by-side
src/plugins/qmldesigner/designercore/designercore.pri
View file @
3efefbda
...
...
@@ -197,6 +197,4 @@ contains(CONFIG, plugin) {
HEADERS += $$PWD/include/basetexteditmodifier.h
}
DISTFILES += $$PWD/metafile/widget.metafile
RESOURCES += $$PWD/designercore.qrc
OTHER_FILES += $$PWD/metainfo/gui.metainfo
src/plugins/qmldesigner/designercore/designercore.qrc
deleted
100644 → 0
View file @
8fdcaa5c
<!DOCTYPE RCC>
<RCC
version=
"1.0"
>
<qresource>
<file>
metainfo/gui.metainfo
</file>
</qresource>
</RCC>
src/plugins/qmldesigner/designercore/include/metainfoparser.h
View file @
3efefbda
...
...
@@ -57,14 +57,8 @@ protected:
void
tokenHandler
(
QXmlStreamReader
&
reader
);
void
metaInfoHandler
(
QXmlStreamReader
&
reader
);
void
handleMetaInfoElement
(
QXmlStreamReader
&
reader
);
void
handleEnumElement
(
QXmlStreamReader
&
reader
);
void
handleEnumElementElement
(
QXmlStreamReader
&
reader
,
EnumeratorMetaInfo
&
enumeratorMetaInfo
);
void
handleFlagElement
(
QXmlStreamReader
&
reader
);
void
handleFlagElementElement
(
QXmlStreamReader
&
reader
,
EnumeratorMetaInfo
&
enumeratorMetaInfo
);
void
handleNodeElement
(
QXmlStreamReader
&
reader
);
void
handleNodeItemLibraryEntryElement
(
QXmlStreamReader
&
reader
,
const
QString
&
className
);
void
handleAbstractPropertyElement
(
QXmlStreamReader
&
reader
,
NodeMetaInfo
&
nodeMetaInfo
);
void
handleAbstractPropertyDefaultValueElement
(
QXmlStreamReader
&
reader
,
NodeMetaInfo
&
nodeMetaInfo
);
void
handleItemLibraryEntryPropertyElement
(
QXmlStreamReader
&
reader
,
ItemLibraryEntry
&
itemLibraryEntry
);
private:
...
...
src/plugins/qmldesigner/designercore/instances/nodeinstance.cpp
View file @
3efefbda
...
...
@@ -133,6 +133,8 @@ Internal::ObjectNodeInstance::Pointer NodeInstance::createInstance(const NodeMet
{
Internal
::
ObjectNodeInstance
::
Pointer
instance
;
qDebug
()
<<
__FUNCTION__
<<
metaInfo
.
typeName
()
<<
metaInfo
.
directSuperClass
().
typeName
();
if
(
!
metaInfo
.
isValid
())
instance
=
Internal
::
DummyNodeInstance
::
create
();
else
if
(
metaInfo
.
isSubclassOf
(
"Qt/QWidget"
,
4
,
7
))
...
...
src/plugins/qmldesigner/designercore/instances/objectnodeinstance.cpp
View file @
3efefbda
...
...
@@ -879,8 +879,9 @@ QStringList propertyNameForWritableProperties(QObject *object, const QString &ba
const
QMetaObject
*
metaObject
=
object
->
metaObject
();
for
(
int
index
=
0
;
index
<
metaObject
->
propertyCount
();
++
index
)
{
QMetaProperty
metaProperty
=
metaObject
->
property
(
index
);
if
(
metaProperty
.
isReadable
()
&&
!
metaProperty
.
isWritable
())
{
QObject
*
childObject
=
QDeclarativeMetaType
::
toQObject
(
metaProperty
.
read
(
object
));
QDeclarativeProperty
declarativeProperty
(
object
,
QLatin1String
(
metaProperty
.
name
()));
if
(
declarativeProperty
.
isValid
()
&&
declarativeProperty
.
isWritable
()
&&
declarativeProperty
.
propertyTypeCategory
()
==
QDeclarativeProperty
::
Object
)
{
QObject
*
childObject
=
QDeclarativeMetaType
::
toQObject
(
declarativeProperty
.
read
());
if
(
childObject
)
propertyNameList
.
append
(
propertyNameForWritableProperties
(
childObject
,
baseName
+
QString
::
fromUtf8
(
metaProperty
.
name
())
+
'.'
));
}
else
if
(
QDeclarativeValueTypeFactory
::
valueType
(
metaProperty
.
userType
()))
{
...
...
src/plugins/qmldesigner/designercore/metainfo/gui.metainfo
deleted
100644 → 0
View file @
8fdcaa5c
<!-- Metadata that is general to Qt and cannot be put into a separate plugin -->
<metainfo>
<enumerator name="Orientation" scope="Qt">
<element name="Horizontal" value="1" />
<element name="Vertical" value="2" />
</enumerator>
<enumerator name="ContextMenuPolicy" scope="Qt">
<element name="DefaultContextMenu" value="1" />
<element name="PreventContextMenu" value="4" />
<element name="ActionsContextMenu" value="2" />
<element name="NoContextMenu" value="0" />
<element name="CustomContextMenu" value="3" />
</enumerator>
<enumerator name="LayoutDirection" scope="Qt">
<element name="RightToLeft" value="1" />
<element name="LeftToRight" value="0" />
</enumerator>
<enumerator name="ArrowType" scope="Qt">
<element name="RightArrow" value="4" />
<element name="NoArrow" value="0" />
<element name="UpArrow" value="1" />
<element name="DownArrow" value="2" />
<element name="LeftArrow" value="3" />
</enumerator>
<enumerator name="PenStyle" scope="Qt">
<element name="DashLine" value="2" />
<element name="NoPen" value="0" />
<element name="DashDotLine" value="4" />
<element name="DashDotDotLine" value="5" />
<element name="SolidLine" value="1" />
<element name="DotLine" value="3" />
<element name="CustomDashLine" value="6" />
</enumerator>
<enumerator name="CaseSensitivity" scope="Qt">
<element name="CaseSensitive" value="1" />
<element name="CaseInsensitive" value="0" />
</enumerator>
<enumerator name="WritingSystem" scope="QFontDatabase">
<element name="Thaana" value="8" />
<element name="Telugu" value="15" />
<element name="Cyrillic" value="3" />
<element name="Oriya" value="13" />
<element name="Gujarati" value="12" />
<element name="Other" value="30" />
<element name="Any" value="0" />
<element name="Korean" value="28" />
<element name="Khmer" value="24" />
<element name="Latin" value="1" />
<element name="Georgian" value="23" />
<element name="Vietnamese" value="29" />
<element name="TraditionalChinese" value="26" />
<element name="Armenian" value="4" />
<element name="Devanagari" value="9" />
<element name="Thai" value="19" />
<element name="Tibetan" value="21" />
<element name="Bengali" value="10" />
<element name="Symbol" value="30" />
<element name="WritingSystemsCount" value="33" />
<element name="Greek" value="2" />
<element name="Lao" value="20" />
<element name="Gurmukhi" value="11" />
<element name="Malayalam" value="17" />
<element name="Ogham" value="31" />
<element name="Myanmar" value="22" />
<element name="Tamil" value="14" />
<element name="Japanese" value="27" />
<element name="SimplifiedChinese" value="25" />
<element name="Kannada" value="16" />
<element name="Syriac" value="7" />
<element name="Runic" value="32" />
<element name="Hebrew" value="5" />
<element name="Arabic" value="6" />
<element name="Sinhala" value="18" />
</enumerator>
<enumerator name="ToolButtonStyle" scope="Qt">
<element name="ToolButtonIconOnly" value="0" />
<element name="ToolButtonTextBesideIcon" value="2" />
<element name="ToolButtonTextOnly" value="1" />
<element name="ToolButtonTextUnderIcon" value="3" />
</enumerator>
<enumerator name="ItemSelectionMode" scope="Qt">
<element name="ContainsItemBoundingRect" value="2" />
<element name="IntersectsItemBoundingRect" value="3" />
<element name="ContainsItemShape" value="0" />
<element name="IntersectsItemShape" value="1" />
</enumerator>
<enumerator name="TextElideMode" scope="Qt">
<element name="ElideMiddle" value="2" />
<element name="ElideRight" value="1" />
<element name="ElideNone" value="3" />
<element name="ElideLeft" value="0" />
</enumerator>
<enumerator name="TimeSpec" scope="Qt">
<element name="OffsetFromUTC" value="2" />
<element name="UTC" value="1" />
<element name="LocalTime" value="0" />
</enumerator>
<enumerator name="FocusPolicy" scope="Qt">
<element name="StrongFocus" value="11" />
<element name="WheelFocus" value="15" />
<element name="ClickFocus" value="2" />
<element name="TabFocus" value="1" />
<element name="NoFocus" value="0" />
</enumerator>
<enumerator name="ScrollBarPolicy" scope="Qt">
<element name="ScrollBarAsNeeded" value="0" />
<element name="ScrollBarAlwaysOff" value="1" />
<element name="ScrollBarAlwaysOn" value="2" />
</enumerator>
<enumerator name="TextFormat" scope="Qt">
<element name="PlainText" value="0" />
<element name="AutoText" value="2" />
<element name="LogText" value="3" />
<element name="RichText" value="1" />
</enumerator>
<enumerator name="DayOfWeek" scope="Qt">
<element name="Monday" value="1" />
<element name="Tuesday" value="2" />
<element name="Friday" value="5" />
<element name="Wednesday" value="3" />
<element name="Thursday" value="4" />
<element name="Sunday" value="7" />
<element name="Saturday" value="6" />
</enumerator>
<enumerator name="WindowModality" scope="Qt">
<element name="WindowModal" value="1" />
<element name="NonModal" value="0" />
<element name="ApplicationModal" value="2" />
</enumerator>
<enumerator name="Type" scope="QEasingCurve">
<element name="Linear" value="0" />
<element name="InQuad" value="1" />
<element name="OutQuad" value="2" />
<element name="InOutQuad" value="3" />
<element name="OutInQuad" value="4" />
<element name="InCubic" value="5" />
<element name="OutCubic" value="6" />
<element name="InOutCubic" value="7" />
<element name="OutInCubic" value="8" />
<element name="InQuart" value="9" />
<element name="OutQuart" value="10" />
<element name="InOutQuart" value="11" />
<element name="OutInQuart" value="12" />
<element name="InQuint" value="13" />
<element name="OutQuint" value="14" />
<element name="InOutQuint" value="15" />
<element name="OutInQuint" value="16" />
<element name="InSine" value="17" />
<element name="OutSine" value="18" />
<element name="InOutSine" value="19" />
<element name="OutInSine" value="20" />
<element name="InExpo" value="21" />
<element name="OutExpo" value="22" />
<element name="InOutExpo" value="23" />
<element name="OutInExpo" value="24" />
<element name="InCirc" value="25" />
<element name="OutCirc" value="26" />
<element name="InOutCirc" value="27" />
<element name="OutInCirc" value="28" />
<element name="InElastic" value="29" />
<element name="OutElastic" value="30" />
<element name="InOutElastic" value="31" />
<element name="OutInElastic" value="32" />
<element name="InBack" value="33" />
<element name="OutBack" value="34" />
<element name="InOutBack" value="35" />
<element name="OutInBack" value="36" />
<element name="InBounce" value="37" />
<element name="OutBounce" value="38" />
<element name="InOutBounce" value="39" />
<element name="OutInBounce" value="40" />
<element name="InCurve" value="41" />
<element name="OutCurve" value="42" />
<element name="SineCurve" value="43" />
<element name="CosineCurve" value="44" />
<element name="Custom" value="45" />
<element name="NCurveTypes" value="46" />
</enumerator>
<flag name="Alignment" scope="Qt">
<element name="AlignLeft" value="1" />
<element name="AlignTrailing" value="2" />
<element name="AlignAbsolute" value="16" />
<element name="AlignHCenter" value="4" />
<element name="AlignCenter" value="132" />
<element name="AlignJustify" value="8" />
<element name="AlignHorizontal_Mask" value="31" />
<element name="AlignTop" value="32" />
<element name="AlignRight" value="2" />
<element name="AlignLeading" value="1" />
<element name="AlignVCenter" value="128" />
<element name="AlignBottom" value="64" />
<element name="AlignVertical_Mask" value="224" />
</flag>
<flag name="DockWidgetAreas" scope="Qt">
<element name="AllDockWidgetAreas" value="15" />
<element name="LeftDockWidgetArea" value="1" />
<element name="DockWidgetArea_Mask" value="15" />
<element name="NoDockWidgetArea" value="0" />
<element name="TopDockWidgetArea" value="4" />
<element name="RightDockWidgetArea" value="2" />
<element name="BottomDockWidgetArea" value="8" />
</flag>
<flag name="ToolBarAreas" scope="Qt">
<element name="RightToolBarArea" value="2" />
<element name="TopToolBarArea" value="4" />
<element name="ToolBarArea_Mask" value="15" />
<element name="NoToolBarArea" value="0" />
<element name="LeftToolBarArea" value="1" />
<element name="AllToolBarAreas" value="15" />
<element name="BottomToolBarArea" value="8" />
</flag>
<flag name="RenderHints" scope="QPainter">
<element name="Antialiasing" value="1" />
<element name="TextAntialiasing" value="2" />
<element name="SmoothPixmapTransform" value="4" />
<element name="HighQualityAntialiasing" value="8" />
<element name="NonCosmeticDefaultPen" value="16" />
</flag>
<flag name="TextInteractionFlags" scope="Qt">
<element name="TextEditable" value="16" />
<element name="TextSelectableByKeyboard" value="2" />
<element name="NoTextInteraction" value="0" />
<element name="TextSelectableByMouse" value="1" />
<element name="TextBrowserInteraction" value="13" />
<element name="LinksAccessibleByKeyboard" value="8" />
<element name="LinksAccessibleByMouse" value="4" />
<element name="TextEditorInteraction" value="19" />
</flag>
</metainfo>
src/plugins/qmldesigner/designercore/metainfo/metainfo.cpp
View file @
3efefbda
...
...
@@ -117,8 +117,8 @@ void MetaInfoPrivate::initialize()
loadPlugins
(
&
engine
);
parseQmlTypes
();
parseNonQmlTypes
();
parseXmlFiles
();
parseValueTypes
();
parseXmlFiles
();
m_isInitialized
=
true
;
}
...
...
@@ -135,8 +135,10 @@ void MetaInfoPrivate::loadPlugins(QDeclarativeEngine *engine)
// load maybe useful plugins
pluginList
+=
"import Qt.labs.folderlistmodel 1.0"
;
pluginList
+=
"import Qt.labs.gestures 1.0"
;
pluginList
+=
"import Qt.multimedia 4.7"
;
pluginList
+=
"import Qt.labs.particles 1.0"
;
pluginList
+=
"import Qt.labs.components 1.0"
;
pluginList
+=
"import com.meego.themebridge 1.0"
;
pluginList
+=
"import com.meego 1.0"
;
QString
componentString
=
QString
(
"%1
\n
Item {}
\n
"
).
arg
(
pluginList
.
join
(
"
\n
"
));
...
...
@@ -384,6 +386,7 @@ void MetaInfoPrivate::parseQmlTypes()
m_QtTypesToQmlTypes
.
insert
(
qtTypeName
,
qmlTypeName
);
}
foreach
(
QDeclarativeType
*
qmlType
,
qmlTypes
())
{
qDebug
()
<<
__FUNCTION__
<<
qmlType
->
qmlTypeName
()
<<
qmlType
->
typeName
();
const
QMetaObject
*
qMetaObject
=
qmlType
->
metaObject
();
// parseQmlTypes is called iteratively e.g. when plugins are loaded
...
...
@@ -439,8 +442,6 @@ void MetaInfoPrivate::parseNonQmlTypes()
void
MetaInfoPrivate
::
parseXmlFiles
()
{
Internal
::
MetaInfoParser
(
*
m_q
).
parseFile
(
":/metainfo/gui.metainfo"
);
Internal
::
WidgetPluginManager
pluginManager
;
foreach
(
const
QString
&
pluginDir
,
m_q
->
s_pluginDirs
)
pluginManager
.
addPath
(
pluginDir
);
...
...
@@ -654,6 +655,7 @@ void MetaInfo::removeNodeInfo(NodeMetaInfo &info)
EnumeratorMetaInfo
MetaInfo
::
addEnumerator
(
const
QString
&
enumeratorScope
,
const
QString
&
enumeratorName
)
{
qDebug
()
<<
__FUNCTION__
<<
enumeratorScope
<<
enumeratorName
;
Q_ASSERT
(
!
enumeratorName
.
isEmpty
());
EnumeratorMetaInfo
enumeratorMetaInfo
;
...
...
src/plugins/qmldesigner/designercore/metainfo/metainfoparser.cpp
View file @
3efefbda
...
...
@@ -90,70 +90,11 @@ void MetaInfoParser::metaInfoHandler(QXmlStreamReader &reader)
{
if
(
reader
.
isStartElement
())
{
if
(
reader
.
name
()
==
"enumerator"
)
handleEnumElement
(
reader
);
if
(
reader
.
name
()
==
"flag"
)
handleFlagElement
(
reader
);
if
(
reader
.
name
()
==
"node"
)
handleNodeElement
(
reader
);
}
}
void
MetaInfoParser
::
handleEnumElement
(
QXmlStreamReader
&
reader
)
{
QString
enumeratorName
=
reader
.
attributes
().
value
(
"name"
).
toString
();
QString
enumeratorScope
=
reader
.
attributes
().
value
(
"scope"
).
toString
();
EnumeratorMetaInfo
enumeratorMetaInfo
;
if
(
m_metaInfo
.
hasEnumerator
(
enumeratorName
))
{
enumeratorMetaInfo
=
m_metaInfo
.
enumerator
(
enumeratorName
);
}
else
{
enumeratorMetaInfo
=
m_metaInfo
.
addEnumerator
(
enumeratorScope
,
enumeratorName
);
}
while
(
!
reader
.
atEnd
()
&&
!
(
reader
.
isEndElement
()
&&
reader
.
name
()
==
"enumerator"
))
{
reader
.
readNext
();
handleEnumElementElement
(
reader
,
enumeratorMetaInfo
);
}
}
void
MetaInfoParser
::
handleFlagElement
(
QXmlStreamReader
&
reader
)
{
QString
enumeratorName
=
reader
.
attributes
().
value
(
"name"
).
toString
();
QString
enumeratorScope
=
reader
.
attributes
().
value
(
"scope"
).
toString
();
EnumeratorMetaInfo
enumeratorMetaInfo
=
m_metaInfo
.
addFlag
(
enumeratorScope
,
enumeratorName
);
while
(
!
reader
.
atEnd
()
&&
!
(
reader
.
isEndElement
()
&&
reader
.
name
()
==
"flag"
))
{
reader
.
readNext
();
handleFlagElementElement
(
reader
,
enumeratorMetaInfo
);
}
}
void
MetaInfoParser
::
handleEnumElementElement
(
QXmlStreamReader
&
reader
,
EnumeratorMetaInfo
&
enumeratorMetaInfo
)
{
if
(
reader
.
isStartElement
()
&&
reader
.
name
()
==
"element"
)
{
bool
isIntType
;
enumeratorMetaInfo
.
addElement
(
reader
.
attributes
().
value
(
"name"
).
toString
(),
reader
.
attributes
().
value
(
"value"
).
toString
().
toInt
(
&
isIntType
));
Q_ASSERT
(
isIntType
);
}
}
void
MetaInfoParser
::
handleFlagElementElement
(
QXmlStreamReader
&
reader
,
EnumeratorMetaInfo
&
enumeratorMetaInfo
)
{
if
(
reader
.
isStartElement
()
&&
reader
.
name
()
==
"element"
)
{
bool
isIntType
;
enumeratorMetaInfo
.
addElement
(
reader
.
attributes
().
value
(
"name"
).
toString
(),
reader
.
attributes
().
value
(
"value"
).
toString
().
toInt
(
&
isIntType
));
Q_ASSERT
(
isIntType
);
}
}
void
MetaInfoParser
::
handleNodeElement
(
QXmlStreamReader
&
reader
)
{
const
QXmlStreamAttributes
attributes
=
reader
.
attributes
();
...
...
@@ -164,46 +105,21 @@ void MetaInfoParser::handleNodeElement(QXmlStreamReader &reader)
return
;
}
NodeMetaInfo
nodeMetaInfo
;
if
(
m_metaInfo
.
hasNodeMetaInfo
(
className
))
{
nodeMetaInfo
=
m_metaInfo
.
nodeMetaInfo
(
className
);
}
else
{
nodeMetaInfo
=
MetaInfo
(
m_metaInfo
);
nodeMetaInfo
.
setType
(
className
,
1
,
0
);
m_metaInfo
.
addNodeInfo
(
nodeMetaInfo
);
qWarning
()
<<
"Metainfo: "
<<
className
<<
" does not exist"
;
/*while (!reader.atEnd() && !(reader.isEndElement() && reader.name() == "node"))
reader.readNext();*/
}
if
(
attributes
.
hasAttribute
(
"isContainer"
))
{
const
QString
isContainer
=
attributes
.
value
(
"isContainer"
).
toString
();
nodeMetaInfo
.
setIsContainer
(
stringToBool
(
isContainer
));
}
if
(
attributes
.
hasAttribute
(
"icon"
))
{
const
QString
iconPath
=
reader
.
attributes
().
value
(
"icon"
).
toString
();
nodeMetaInfo
.
setIcon
(
QIcon
(
iconPath
));
}
while
(
!
reader
.
atEnd
()
&&
!
(
reader
.
isEndElement
()
&&
reader
.
name
()
==
"node"
))
{
reader
.
readNext
();
handleAbstractPropertyElement
(
reader
,
nodeMetaInfo
);
handleAbstractPropertyDefaultValueElement
(
reader
,
nodeMetaInfo
);
handleNodeItemLibraryEntryElement
(
reader
,
className
);
}
}
void
MetaInfoParser
::
handleNodeItemLibraryEntryElement
(
QXmlStreamReader
&
reader
,
const
QString
&
className
)
void
MetaInfoParser
::
handleNodeItemLibraryEntryElement
(
QXmlStreamReader
&
reader
,
const
QString
&
className
)
{
if
(
reader
.
isStartElement
()
&&
reader
.
name
()
==
"itemlibraryentry"
)
{
const
QString
name
=
reader
.
attributes
().
value
(
"name"
).
toString
();
const
NodeMetaInfo
typeInfo
=
m_metaInfo
.
nodeMetaInfo
(
className
);
ItemLibraryEntry
entry
;
entry
.
setType
(
typeInfo
.
typeName
(),
typeInfo
.
majorVersion
(),
typeInfo
.
minorVersion
()
);
entry
.
setType
(
className
,
4
,
7
);
entry
.
setName
(
name
);
QString
iconPath
=
reader
.
attributes
().
value
(
"icon"
).
toString
();
...
...
@@ -237,93 +153,6 @@ void MetaInfoParser::handleItemLibraryEntryPropertyElement(QXmlStreamReader &rea
}
}
void
MetaInfoParser
::
handleAbstractPropertyDefaultValueElement
(
QXmlStreamReader
&
reader
,
NodeMetaInfo
&
nodeMetaInfoArg
)
{
if
(
reader
.
isStartElement
()
&&
reader
.
name
()
==
"propertyDefaultValue"
)
{
const
QXmlStreamAttributes
attributes
(
reader
.
attributes
());
Q_ASSERT
(
attributes
.
hasAttribute
(
"name"
));
Q_ASSERT
(
attributes
.
hasAttribute
(
"type"
));
Q_ASSERT
(
attributes
.
hasAttribute
(
"defaultValue"
));
const
QString
propertyName
=
attributes
.
value
(
"name"
).
toString
();
const
QString
propertyType
=
attributes
.
value
(
"type"
).
toString
();
const
QString
defaultValueString
=
attributes
.
value
(
"defaultValue"
).
toString
();
QVariant
defaultValue
=
Internal
::
PropertyParser
::
read
(
propertyType
,
defaultValueString
,
m_metaInfo
);
QList
<
NodeMetaInfo
>
nodeMetaInfoList
(
nodeMetaInfoArg
.
superClasses
());
nodeMetaInfoList
.
prepend
(
nodeMetaInfoArg
);
foreach
(
const
NodeMetaInfo
&
nodeMetaInfo
,
nodeMetaInfoList
)
{
if
(
nodeMetaInfo
.
hasLocalProperty
(
propertyName
))
{
nodeMetaInfo
.
property
(
propertyName
).
setDefaultValue
(
nodeMetaInfoArg
,
defaultValue
);
break
;
}
}
reader
.
readNext
();
}
}
void
MetaInfoParser
::
handleAbstractPropertyElement
(
QXmlStreamReader
&
reader
,
NodeMetaInfo
&
nodeMetaInfo
)
{
if
(
reader
.
isStartElement
()
&&
reader
.
name
()
==
"property"
)
{
const
QXmlStreamAttributes
attributes
(
reader
.
attributes
());
const
QString
propertyName
=
attributes
.
value
(
"name"
).
toString
();
if
(
propertyName
.
isEmpty
())
{
reader
.
raiseError
(
"Invalid element 'property' - attribute 'name' is missing or empty"
);
return
;
}
PropertyMetaInfo
propertyMetaInfo
;
if
(
nodeMetaInfo
.
hasLocalProperty
(
propertyName
))
{
propertyMetaInfo
=
nodeMetaInfo
.
property
(
propertyName
);
}
else
{
propertyMetaInfo
.
setName
(
propertyName
);
}
propertyMetaInfo
.
setValid
(
true
);
//propertyMetaInfo.setReadable(stringToBool(attributes.value("isReadable").toString()));
//propertyMetaInfo.setWritable(stringToBool(attributes.value("isWritable").toString()));
//propertyMetaInfo.setResettable(stringToBool(attributes.value("isResetable").toString()));
if
(
attributes
.
hasAttribute
(
"isEnumType"
))
propertyMetaInfo
.
setEnumType
(
stringToBool
(
attributes
.
value
(
"isEnumType"
).
toString
()));
if
(
attributes
.
hasAttribute
(
"isFlagType"
))
propertyMetaInfo
.
setFlagType
(
stringToBool
(
attributes
.
value
(
"isFlagType"
).
toString
()));
if
(
attributes
.
hasAttribute
(
"showInPropertyEditor"
))
propertyMetaInfo
.
setIsVisibleToPropertyEditor
(
stringToBool
(
attributes
.
value
(
"showInPropertyEditor"
).
toString
()));
if
(
propertyMetaInfo
.
isEnumType
())
{
propertyMetaInfo
.
setType
(
QString
(
"%1::%2"
).
arg
(
attributes
.
value
(
"enumeratorScope"
).
toString
(),
attributes
.
value
(
"enumeratorName"
).
toString
()));
propertyMetaInfo
.
setEnumerator
(
m_metaInfo
.
enumerator
(
propertyMetaInfo
.
type
()));
}
else
{
const
QString
type
=
attributes
.
value
(
"type"
).
toString
();
if
(
type
.
isEmpty
())
{
reader
.
raiseError
(
"Invalid element 'property' - attribute 'type' is missing or empty"
);
return
;
}
propertyMetaInfo
.
setType
(
attributes
.
value
(
"type"
).
toString
());
}
if
(
attributes
.
hasAttribute
(
"defaultValue"
))
{
QVariant
defaultValue
=
Internal
::
PropertyParser
::
read
(
propertyMetaInfo
.
type
(),
attributes
.
value
(
"defaultValue"
).
toString
(),
m_metaInfo
);
propertyMetaInfo
.
setDefaultValue
(
nodeMetaInfo
,
defaultValue
);
}
nodeMetaInfo
.
addProperty
(
propertyMetaInfo
);
reader
.
readNext
();
}
}
void
MetaInfoParser
::
errorHandling
(
QXmlStreamReader
&
reader
,
QFile
&
file
)
{
if
(
!
reader
.
hasError
())
...
...
src/plugins/qmldesigner/qtquickplugin/qtquickplugin.cpp
View file @
3efefbda
...
...
@@ -38,8 +38,8 @@ namespace QmlDesigner {
QtQuickPlugin
::
QtQuickPlugin
()
{
qmlRegisterType
<
QDeclarativePen
>
(
"Qt"
,
4
,
7
,
"Pen"
);
qmlRegisterType
<
QDeclarativeScaleGrid
>
(
"Qt"
,
4
,
7
,
"ScaleGrid"
);
qmlRegisterType
<
QDeclarativePen
>
(
"Qt
Quick
"
,
1
,
0
,
"Pen"
);
qmlRegisterType
<
QDeclarativeScaleGrid
>
(
"Qt
Quick
"
,
1
,
0
,
"ScaleGrid"
);
}
QString
QtQuickPlugin
::
pluginName
()
...
...
src/plugins/qmldesigner/qtquickplugin/quick.metainfo
View file @
3efefbda
<metainfo>
<node name="Qt/Item" isContainer="true" icon=":/qtquickplugin/images/item-icon16.png">
<propertyDefaultValue name="width" type="int" defaultValue="600"/>
<propertyDefaultValue name="height" type="int" defaultValue="400"/>
<node name="Qt/Item" icon=":/qtquickplugin/images/item-icon16.png">
<itemlibraryentry name="Item" category="Qt - Basic" icon=":/qtquickplugin/images/item-icon.png">
<property name="width" type="int" value="200"/>
<property name="height" type="int" value="200"/>
...
...
@@ -9,14 +7,10 @@
</node>
<node name="Qt/Rectangle" category="Qt - Basic" isContainer="true" icon=":/qtquickplugin/images/rect-icon16.png">
<itemlibraryentry name="Rectangle" category="Qt - Basic" icon=":/qtquickplugin/images/rect-icon.png">
<property name="width" type="int" value="100"/>
<property name="height" type="int" value="100"/>
<property name="color" type="QColor" value="#ffffff"/>
</itemlibraryentry>
</node>
<node name="Qt/Text" icon=":/qtquickplugin/images/text-icon16.png">
<propertyDefaultValue name="width" type="int" defaultValue="80"/>
<propertyDefaultValue name="height" type="int" defaultValue="20"/>
<itemlibraryentry name="Text" category="Qt - Basic" icon=":/qtquickplugin/images/text-icon.png">
<property name="width" type="int" value="80"/>
<property name="height" type="int" value="20"/>
...
...
@@ -24,9 +18,7 @@
<property name="font.pixelSize" type="int" value="12"/>
</itemlibraryentry>
</node>
<node name="Qt/TextEdit" isContainer="false" icon=":/qtquickplugin/images/text-edit-icon16.png">
<propertyDefaultValue name="width" type="int" defaultValue="80"/>
<propertyDefaultValue name="height" type="int" defaultValue="20"/>
<node name="Qt/TextEdit" icon=":/qtquickplugin/images/text-edit-icon16.png">
<itemlibraryentry name="Text Edit" category="Qt - Basic" icon=":/qtquickplugin/images/text-edit-icon.png">
<property name="width" type="int" value="80"/>
<property name="height" type="int" value="20"/>
...
...
@@ -34,9 +26,7 @@
<property name="font.pixelSize" type="int" value="12"/>