File indexing completed on 2024-05-12 11:32:22

0001 /*
0002     SPDX-License-Identifier: GPL-2.0-or-later
0003     SPDX-FileCopyrightText: 2009 Alexander Rieder <alexanderrieder@gmail.com>
0004 */
0005 
0006 #include "runscriptassistant.h"
0007 
0008 #include <QAction>
0009 #include <QIcon>
0010 
0011 #include <QDialog>
0012 #include <KActionCollection>
0013 #include <QFileDialog>
0014 #include <KLocalizedString>
0015 #include <QUrl>
0016 #include "cantor_macros.h"
0017 #include "backend.h"
0018 #include "extension.h"
0019 
0020 RunScriptAssistant::RunScriptAssistant(QObject* parent, QList<QVariant> args) : Assistant(parent)
0021 {
0022     Q_UNUSED(args)
0023 }
0024 
0025 void RunScriptAssistant::initActions()
0026 {
0027     setXMLFile(QLatin1String("cantor_runscript_assistant.rc"));
0028     QAction* runscript=new QAction(i18n("Run Script"), actionCollection());
0029     runscript->setIcon(QIcon::fromTheme(icon()));
0030     actionCollection()->addAction(QLatin1String("runscript_assistant"), runscript);
0031     connect(runscript, &QAction::triggered, this, &RunScriptAssistant::requested);
0032 }
0033 
0034 QStringList RunScriptAssistant::run(QWidget* parent)
0035 {
0036     Cantor::ScriptExtension* ext=
0037         dynamic_cast<Cantor::ScriptExtension*>(backend()->extension(QLatin1String("ScriptExtension")));
0038 
0039     QString file = QFileDialog::getOpenFileName(parent, QString(), QLatin1String("qfiledialog://cantor_script"), ext->scriptFileFilter());
0040 
0041     if(file.isNull())
0042     {
0043         return QStringList();
0044     }else
0045     {
0046         return QStringList()<<ext->runExternalScript(file);
0047     }
0048 }
0049 
0050 K_PLUGIN_FACTORY_WITH_JSON(runscriptassistant, "runscriptassistant.json", registerPlugin<RunScriptAssistant>();)
0051 #include "runscriptassistant.moc"