[Qtscript-bindings] a 'include' method
Ian Monroe
ian at monroe.nu
Fri Aug 22 21:06:45 CEST 2008
On Tue, Aug 12, 2008 at 2:14 PM, Peter Hackett
<Peter.Hackett at icmanage.com> wrote:
> This is what I do (right or less than right :-)
> //static
> QScriptValue
> IqtScriptKit::include(QScriptContext* context,QScriptEngine* engine,
> bool localScope)
> {
> QString funcName("include");
> if ( localScope ) {
> funcName = "localInclude";
[snip]
In case anyone in Googleland has a QObject with access to the
scriptEngine and script file location, all that can be simplified to:
bool
ScriptImporter::include( const QString& relativeFilename )
{
KUrl includeUrl = m_scriptUrl.upUrl();
includeUrl.addPath( relativeFilename );
QFile file( includeUrl.toLocalFile() );
if ( !file.open( QIODevice::ReadOnly | QIODevice::Text ) )
return false;
m_scriptEngine->currentContext()->setActivationObject(
m_scriptEngine->currentContext()->parentContext()->activationObject()
);
m_scriptEngine->evaluate( file.readAll(), relativeFilename );
return true;
}
The m_scriptEngine->currentContext()->setActivationObject(... line is
from Peter and was what I was missing before. Thanks a lot! Not sure I
would've figured that out otherwise...
Ian
More information about the Qtscript-bindings
mailing list