History

Wait for scripts to finish before restarting them.

Andrzej Kapolka committed 12 years ago

Commit b9fecb81 parent 55c92822 files · +63 −67Browse files

Showing the changes to interface/src/Application.cpp (1 of 2 files). Show all

Unified · Split

interface/src/Application.cpp+61−65
@@ -3374,71 +3374,6 @@ void Application::saveScripts() { · 3373 unmodified lines
33743374 _settings->endArray();
33753375 }
33763376
3377−void Application::stopAllScripts() {
3378− // stops all current running scripts
3379− for (int i = 0; i < _scriptEnginesHash.size(); ++i) {
3380− _scriptEnginesHash.values().at(i)->stop();
3381− qDebug() << "stopping script..." << getRunningScripts().at(i);
3382− }
3383− _scriptEnginesHash.clear();
3384− _runningScriptsWidget->setRunningScripts(getRunningScripts());
3385− bumpSettings();
3386−}
3387−
3388−void Application::stopScript(const QString &scriptName) {
3389− if (_scriptEnginesHash.contains(scriptName)) {
3390− _scriptEnginesHash.value(scriptName)->stop();
3391− qDebug() << "stopping script..." << scriptName;
3392− _scriptEnginesHash.remove(scriptName);
3393− _runningScriptsWidget->setRunningScripts(getRunningScripts());
3394− bumpSettings();
3395− }
3396−}
3397−
3398−void Application::reloadAllScripts() {
3399− // remember all the current scripts so we can reload them
3400− QStringList reloadList = getRunningScripts();
3401− // reloads all current running scripts
3402− stopAllScripts();
3403−
3404− foreach (QString scriptName, reloadList){
3405− qDebug() << "reloading script..." << scriptName;
3406− loadScript(scriptName);
3407− }
3408−}
3409−
3410−void Application::manageRunningScriptsWidgetVisibility(bool shown) {
3411− if (_runningScriptsWidgetWasVisible && shown) {
3412− _runningScriptsWidget->show();
3413− } else if (_runningScriptsWidgetWasVisible && !shown) {
3414− _runningScriptsWidget->hide();
3415− }
3416−}
3417−
3418−void Application::toggleRunningScriptsWidget() {
3419− if (_runningScriptsWidgetWasVisible) {
3420− _runningScriptsWidget->hide();
3421− _runningScriptsWidgetWasVisible = false;
3422− } else {
3423− _runningScriptsWidget->setBoundary(QRect(_window->geometry().topLeft(),
3424− _window->size()));
3425− _runningScriptsWidget->show();
3426− _runningScriptsWidgetWasVisible = true;
3427− }
3428−}
3429−
3430−void Application::uploadHead() {
3431− uploadModel(HEAD_MODEL);
3432−}
3433−
3434−void Application::uploadSkeleton() {
3435− uploadModel(SKELETON_MODEL);
3436−}
3437−
3438−void Application::uploadAttachment() {
3439− uploadModel(ATTACHMENT_MODEL);
3440−}
3441−
34423377 ScriptEngine* Application::loadScript(const QString& scriptName, bool loadScriptFromEditor) {
34433378 if(loadScriptFromEditor && _scriptEnginesHash.contains(scriptName) && !_scriptEnginesHash[scriptName]->isFinished()){
34443379 return _scriptEnginesHash[scriptName];
@@ -3518,6 +3453,67 @@ ScriptEngine* Application::loadScript(const QString& scriptName, bool loadScript · 73 unmodified lines
35183453 return scriptEngine;
35193454 }
35203455
3456+void Application::stopAllScripts(bool restart) {
3457+ // stops all current running scripts
3458+ for (QHash<QString, ScriptEngine*>::const_iterator it = _scriptEnginesHash.constBegin();
3459+ it != _scriptEnginesHash.constEnd(); it++) {
3460+ if (restart) {
3461+ connect(it.value(), SIGNAL(finished(const QString&)), SLOT(loadScript(const QString&)));
3462+ }
3463+ it.value()->stop();
3464+ qDebug() << "stopping script..." << it.key();
3465+ }
3466+ _scriptEnginesHash.clear();
3467+ _runningScriptsWidget->setRunningScripts(getRunningScripts());
3468+ bumpSettings();
3469+}
3470+
3471+void Application::stopScript(const QString &scriptName) {
3472+ if (_scriptEnginesHash.contains(scriptName)) {
3473+ _scriptEnginesHash.value(scriptName)->stop();
3474+ qDebug() << "stopping script..." << scriptName;
3475+ _scriptEnginesHash.remove(scriptName);
3476+ _runningScriptsWidget->setRunningScripts(getRunningScripts());
3477+ bumpSettings();
3478+ }
3479+}
3480+
3481+void Application::reloadAllScripts() {
3482+ stopAllScripts(true);
3483+}
3484+
3485+void Application::manageRunningScriptsWidgetVisibility(bool shown) {
3486+ if (_runningScriptsWidgetWasVisible && shown) {
3487+ _runningScriptsWidget->show();
3488+ } else if (_runningScriptsWidgetWasVisible && !shown) {
3489+ _runningScriptsWidget->hide();
3490+ }
3491+}
3492+
3493+void Application::toggleRunningScriptsWidget() {
3494+ if (_runningScriptsWidgetWasVisible) {
3495+ _runningScriptsWidget->hide();
3496+ _runningScriptsWidgetWasVisible = false;
3497+ } else {
3498+ _runningScriptsWidget->setBoundary(QRect(_window->geometry().topLeft(),
3499+ _window->size()));
3500+ _runningScriptsWidget->show();
3501+ _runningScriptsWidgetWasVisible = true;
3502+ }
3503+}
3504+
3505+void Application::uploadHead() {
3506+ uploadModel(HEAD_MODEL);
3507+}
3508+
3509+void Application::uploadSkeleton() {
3510+ uploadModel(SKELETON_MODEL);
3511+}
3512+
3513+void Application::uploadAttachment() {
3514+ uploadModel(ATTACHMENT_MODEL);
3515+}
3516+
35213517 QString Application::getPreviousScriptLocation() {
35223518 QString suggestedName;
35233519 if (_previousScriptLocation.isEmpty()) {

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t