39
39
#include <kross/core/manager.h>
41
41
typedef KGenericFactory< ScriptingPart > KSpreadScriptingFactory;
42
K_EXPORT_COMPONENT_FACTORY( krossmodulekspread, KSpreadScriptingFactory( "krossmodulekspread" ) )
42
K_EXPORT_COMPONENT_FACTORY(krossmodulekspread, KSpreadScriptingFactory("krossmodulekspread"))
44
44
/// \internal d-pointer class.
45
45
class ScriptingPart::Private
50
50
ScriptingPart::ScriptingPart(QObject* parent, const QStringList& list)
51
: KoScriptingPart(new ScriptingModule(parent), list)
51
: KoScriptingPart(new ScriptingModule(parent), list)
54
54
setComponentData(ScriptingPart::componentData());
55
setXMLFile(KStandardDirs::locate("data","kspread/kpartplugins/scripting.rc"), true);
56
kDebug() <<"Scripting plugin. Class:" << metaObject()->className() <<", Parent:" << parent->metaObject()->className();
55
setXMLFile(KStandardDirs::locate("data", "kspread/kpartplugins/scripting.rc"), true);
56
kDebug() << "Scripting plugin. Class:" << metaObject()->className() << ", Parent:" << parent->metaObject()->className();
58
58
KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
60
60
QStringList errors;
61
61
foreach(QString ba, args->getOptionList("scriptfile")) {
63
63
QFileInfo fi(url.path());
64
64
const QString file = fi.absoluteFilePath();
66
66
errors << i18n("Scriptfile \"%1\" does not exist.", file);
69
if( ! fi.isExecutable() ) {
69
if (! fi.isExecutable()) {
70
70
errors << i18n("Scriptfile \"%1\" is not executable. Please set the executable-attribute on that file.", file);
76
76
tmpDirs.append("/tmp/");
77
77
tmpDirs.append("/var/tmp/");
78
78
bool inTemp = false;
79
foreach(QString tmpDir, tmpDirs)
80
if( file.startsWith(tmpDir) ) {
79
foreach(QString tmpDir, tmpDirs) {
80
if (file.startsWith(tmpDir)) {
85
86
errors << i18n("Scriptfile \"%1\" is in a temporary directory. Execution denied.", file);
89
if( ! Kross::Manager::self().executeScriptFile(url) )
90
if (! Kross::Manager::self().executeScriptFile(url))
90
91
errors << i18n("Failed to execute scriptfile \"%1\"", file);
92
if( errors.count() > 0 )
93
if (errors.count() > 0)
93
94
KMessageBox::errorList(module()->view(), i18n("Errors on execution of scripts."), errors);