15 #include <QMetaObject>
16 #include <QMetaProperty>
24 headers[
"Cache-Control" ] =
"no-cache=\"Ext\", "
36 QString sName = _sName;
39 sName = pObject->objectName();
43 sName = pObject->metaObject()->className();
45 sName = sName.section(
":", -1 );
47 if ((sName.length() > 0) && (sName.at(0) ==
'Q'))
48 sName = sName.mid( 1 );
69 QString sName( _sName );
71 if ((sName.length() > 0) && sName.at(0) ==
'Q')
72 sName = sName.mid( 1 );
74 if ( !vValue.isNull() )
75 m_hash.addData( vValue.toString().toUtf8() );
90 m_hash.addData( sName.toUtf8() );
105 if (pObject !=
nullptr)
107 const QMetaObject *pMetaObject = pObject->metaObject();
109 int nCount = pMetaObject->propertyCount();
111 for (
int nIdx=0; nIdx < nCount; ++nIdx )
113 QMetaProperty metaProperty = pMetaObject->property( nIdx );
115 if (metaProperty.isDesignable())
117 const char *pszPropName = metaProperty.name();
118 QString sPropName( pszPropName );
120 if ( sPropName.compare(
"objectName" ) == 0)
127 "transient").toLower() !=
"true" )
130 m_hash.addData( sPropName.toUtf8() );
133 QVariant value( pObject->property( pszPropName ) );
135 if (bHash && !value.canConvert< QObject* >())
137 m_hash.addData( value.toString().toUtf8() );
140 AddProperty( sPropName, value, pMetaObject, &metaProperty );
151 const QString& sPropName,
152 const QString& sKey )
154 const QMetaObject *pMeta = pObject->metaObject();
159 nIdx = pMeta->indexOfClassInfo( sPropName.toUtf8());
163 QString sMetadata = pMeta->classInfo( nIdx ).value();
164 QStringList sOptions = sMetadata.split(
';' );
166 QString sFullKey = sKey +
"=";
168 for (nIdx = 0; nIdx < sOptions.size(); ++nIdx)
170 if (sOptions.at( nIdx ).startsWith( sFullKey ))
171 return sOptions.at( nIdx ).mid( sFullKey.length() );