+/*
+ Opens a file dialog to choose a python script.
+*/
+QString SalomeApp_Application::getScriptFileName()
+{
+ QStringList filtersList;
+ filtersList.append(tr("PYTHON_FILES_FILTER"));
+ filtersList.append(tr("ALL_FILES_FILTER"));
+
+ const QString anInitialPath =
+ SUIT_FileDlg::getLastVisitedPath().isEmpty() ? QDir::currentPath() : "";
+
+ return SUIT_FileDlg::getFileName(desktop(), anInitialPath, filtersList, tr("TOT_DESK_FILE_LOAD_SCRIPT"), true, true);
+}
+
+/*
+ Execute script in python console.
+*/
+void SalomeApp_Application::execScript(bool isNewDoc)
+{
+ const QString aFile = getScriptFileName();
+ if (aFile.isEmpty())
+ {
+ return;
+ }
+
+ if (isNewDoc)
+ {
+ onNewDoc();
+ }
+
+#ifndef DISABLE_PYCONSOLE
+ PyConsole_Console* pyConsole = pythonConsole();
+ PropertyMgr propm(this, "IsLoadedScript", true);
+ if (pyConsole)
+ {
+ QString command = QString("exec(compile(open('%1', 'rb').read(), '%1', 'exec'))").arg(aFile);
+ SUIT_Tools::addTraceToPythonCommand(aFile, command);
+
+ pyConsole->exec(command);
+ }
+#endif
+}
+