Skip to content
GitLab
Menu
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
3bdabea8
Commit
3bdabea8
authored
Apr 08, 2010
by
Kai Koehne
Browse files
Cache dynamic properties.
(Patch done by marco)
parent
66efbc9a
Changes
3
Hide whitespace changes
Inline
Side-by-side
src/plugins/qmldesigner/core/instances/nodeinstancemetaobject.cpp
View file @
3bdabea8
...
...
@@ -8,18 +8,20 @@
namespace
QmlDesigner
{
namespace
Internal
{
NodeInstanceMetaObject
::
NodeInstanceMetaObject
(
const
ObjectNodeInstance
::
Pointer
&
nodeInstance
)
:
QDeclarativeOpenMetaObject
(
nodeInstance
->
object
()),
NodeInstanceMetaObject
::
NodeInstanceMetaObject
(
const
ObjectNodeInstance
::
Pointer
&
nodeInstance
,
QDeclarativeEngine
*
engine
)
:
QDeclarativeOpenMetaObject
(
nodeInstance
->
object
()
,
new
QDeclarativeOpenMetaObjectType
(
nodeInstance
->
object
()
->
metaObject
(),
engine
)
),
m_nodeInstance
(
nodeInstance
),
m_context
(
nodeInstance
->
modelNode
().
isRootNode
()
?
nodeInstance
->
context
()
:
0
)
{
setCached
(
true
);
}
NodeInstanceMetaObject
::
NodeInstanceMetaObject
(
const
ObjectNodeInstancePointer
&
nodeInstance
,
QObject
*
object
,
const
QString
&
prefix
)
:
QDeclarativeOpenMetaObject
(
object
),
NodeInstanceMetaObject
::
NodeInstanceMetaObject
(
const
ObjectNodeInstancePointer
&
nodeInstance
,
QObject
*
object
,
const
QString
&
prefix
,
QDeclarativeEngine
*
engine
)
:
QDeclarativeOpenMetaObject
(
object
,
new
QDeclarativeOpenMetaObjectType
(
object
->
metaObject
(),
engine
)
),
m_nodeInstance
(
nodeInstance
),
m_prefix
(
prefix
)
{
setCached
(
true
);
}
void
NodeInstanceMetaObject
::
createNewProperty
(
const
QString
&
name
)
...
...
src/plugins/qmldesigner/core/instances/nodeinstancemetaobject.h
View file @
3bdabea8
...
...
@@ -14,8 +14,8 @@ typedef QWeakPointer<ObjectNodeInstance> ObjectNodeInstanceWeakPointer;
class
NodeInstanceMetaObject
:
public
QDeclarativeOpenMetaObject
{
public:
NodeInstanceMetaObject
(
const
ObjectNodeInstancePointer
&
nodeInstance
);
NodeInstanceMetaObject
(
const
ObjectNodeInstancePointer
&
nodeInstance
,
QObject
*
object
,
const
QString
&
prefix
);
NodeInstanceMetaObject
(
const
ObjectNodeInstancePointer
&
nodeInstance
,
QDeclarativeEngine
*
engine
);
NodeInstanceMetaObject
(
const
ObjectNodeInstancePointer
&
nodeInstance
,
QObject
*
object
,
const
QString
&
prefix
,
QDeclarativeEngine
*
engine
);
void
createNewProperty
(
const
QString
&
name
);
protected:
...
...
src/plugins/qmldesigner/core/instances/objectnodeinstance.cpp
View file @
3bdabea8
...
...
@@ -176,12 +176,12 @@ void ObjectNodeInstance::initializePropertyWatcher(const ObjectNodeInstance::Poi
{
if
(
!
objectNodeInstance
->
modelNode
().
metaInfo
().
isComponent
())
{
// TODO: this is a nasty workaround which needs to be removed
const
QMetaObject
*
metaObject
=
objectNodeInstance
->
object
()
->
metaObject
();
m_metaObject
=
new
NodeInstanceMetaObject
(
objectNodeInstance
);
m_metaObject
=
new
NodeInstanceMetaObject
(
objectNodeInstance
,
nodeInstanceView
()
->
engine
()
);
for
(
int
propertyIndex
=
QObject
::
staticMetaObject
.
propertyCount
();
propertyIndex
<
metaObject
->
propertyCount
();
propertyIndex
++
)
{
if
(
QDeclarativeMetaType
::
isQObject
(
metaObject
->
property
(
propertyIndex
).
userType
()))
{
QObject
*
propertyObject
=
QDeclarativeMetaType
::
toQObject
(
metaObject
->
property
(
propertyIndex
).
read
(
objectNodeInstance
->
object
()));
if
(
propertyObject
&&
hasPropertiesWitoutNotifications
(
propertyObject
->
metaObject
()))
{
new
NodeInstanceMetaObject
(
objectNodeInstance
,
propertyObject
,
metaObject
->
property
(
propertyIndex
).
name
());
new
NodeInstanceMetaObject
(
objectNodeInstance
,
propertyObject
,
metaObject
->
property
(
propertyIndex
).
name
()
,
nodeInstanceView
()
->
engine
()
);
}
}
}
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment