Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#include "columncommand.h"
Toshihiro Shimizu 890ddd
#include "toonzqt/menubarcommand.h"
Toshihiro Shimizu 890ddd
#include "tmsgcore.h"
Toshihiro Shimizu 890ddd
#include "tfilepath.h"
Toshihiro Shimizu 890ddd
#include "tapp.h"
Toshihiro Shimizu 890ddd
#include "toonz/tscenehandle.h"
Toshihiro Shimizu 890ddd
#include "toonz/tproject.h"
Toshihiro Shimizu 890ddd
#include "toonz/toonzscene.h"
Toshihiro Shimizu 890ddd
#include "toonz/toonzfolders.h"
Toshihiro Shimizu 890ddd
#include "filebrowserpopup.h"
Toshihiro Shimizu 890ddd
#include "floatingpanelcommand.h"
Toshihiro Shimizu 890ddd
#include "scriptconsolepanel.h"
Toshihiro Shimizu 890ddd
#include "tsystem.h"
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#include <qfiledialog></qfiledialog>
Toshihiro Shimizu 890ddd
Shinya Kitaoka d1f6c4
class RunScriptCommand final : public MenuItemHandler {
Toshihiro Shimizu 890ddd
public:
Shinya Kitaoka 120a6e
  RunScriptCommand() : MenuItemHandler("MI_RunScript") {}
Shinya Kitaoka 473e70
  void execute() override;
Toshihiro Shimizu 890ddd
} runScriptCommand;
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
void RunScriptCommand::execute() {
Shinya Kitaoka 120a6e
  static GenericLoadFilePopup *popup = 0;
Shinya Kitaoka 120a6e
  if (popup == 0) {
Shinya Kitaoka 120a6e
    popup        = new GenericLoadFilePopup(QObject::tr("Run script"));
Shinya Kitaoka 120a6e
    TFilePath fp = ToonzFolder::getLibraryFolder() + "scripts";
Shinya Kitaoka 120a6e
    TFileStatus fpStatus(fp);
Shinya Kitaoka 120a6e
    if (!fpStatus.doesExist() || !fpStatus.isDirectory())
Shinya Kitaoka 120a6e
      fp = ToonzFolder::getLibraryFolder();
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
    QStringList types;
Shinya Kitaoka 120a6e
    types << "qs"
Shinya Kitaoka 120a6e
          << "js"
Shinya Kitaoka 120a6e
          << "txt"
Shinya Kitaoka 120a6e
          << "toonzscript";
Shinya Kitaoka 120a6e
    popup->setFilterTypes(types);
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
    popup->setFolder(fp);
Shinya Kitaoka 120a6e
  }
Shinya Kitaoka 120a6e
  TFilePath fp = popup->getPath();
Shinya Kitaoka 120a6e
  if (fp == TFilePath()) return;
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  TPanel *panel = OpenFloatingPanel::getOrOpenFloatingPanel("ScriptConsole");
Shinya Kitaoka 120a6e
  if (!panel) return;
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  ScriptConsolePanel *scriptConsolePanel =
Shinya Kitaoka 120a6e
      dynamic_cast<scriptconsolepanel *="">(panel);</scriptconsolepanel>
Shinya Kitaoka 120a6e
  if (!scriptConsolePanel) return;
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  QString s = QString::fromStdWString(fp.getWideString());
Shinya Kitaoka 120a6e
  s         = s.replace("\\", "\\\\").replace("\"", "\\\"");
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  QString cmd = QString("run(\"%1\")").arg(s);
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  scriptConsolePanel->executeCommand(cmd);
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  /*
Shinya Kitaoka 120a6e
TFilePath projectFolder =
Shinya Kitaoka 120a6e
TApp::instance()->getCurrentScene()->getScene()->getProject()->getProjectFolder();
Shinya Kitaoka 120a6e
QString fileNameStr = QFileDialog::getSaveFileName(0,"","c:\\"); // ,
Shinya Kitaoka 120a6e
//   QObject::tr("Save Motion Path"),
Shinya Kitaoka 120a6e
QString::fromStdWString(projectFolder.getWideString()),
Shinya Kitaoka 120a6e
//   QObject::tr("Motion Path files (*.mpath)"));
Shinya Kitaoka 120a6e
if(fileNameStr == "") return;
Shinya Kitaoka 120a6e
TFilePath fp(fileNameStr.toStdWString());
Shinya Kitaoka 120a6e
if(fp.getType()=="") fp = fp.withType("mpath");
Shinya Kitaoka 120a6e
*/
Toshihiro Shimizu 890ddd
}