From ce874305be23f120852a5fdd0a49c5872d3bc419 Mon Sep 17 00:00:00 2001 From: David Rowe Date: Sun, 29 Jun 2014 21:50:16 -0700 Subject: [PATCH] Add checkbox that automatically reloads externally changed files --- interface/src/ui/ScriptEditorWidget.cpp | 13 +++++++------ interface/src/ui/ScriptEditorWindow.cpp | 4 ++++ interface/src/ui/ScriptEditorWindow.h | 1 + interface/ui/scriptEditorWindow.ui | 12 +++++++++++- 4 files changed, 23 insertions(+), 7 deletions(-) diff --git a/interface/src/ui/ScriptEditorWidget.cpp b/interface/src/ui/ScriptEditorWidget.cpp index 3829cb6a2e..513bbd899a 100644 --- a/interface/src/ui/ScriptEditorWidget.cpp +++ b/interface/src/ui/ScriptEditorWidget.cpp @@ -219,12 +219,13 @@ void ScriptEditorWidget::onWindowActivated() { _isReloading = true; if (QFileInfo(_currentScript).lastModified() > _currentScriptModified) { - if (QMessageBox::warning(this, _currentScript, - tr("This file has been modified outside of the Interface editor.") + "\n\n" - +(isModified() - ? tr("Do you want to reload it and lose the changes you've made in the Interface editor?") - : tr("Do you want to reload it?")), - QMessageBox::Yes | QMessageBox::No) == QMessageBox::Yes) { + if (static_cast(this->parent()->parent()->parent())->autoReloadScripts() + || QMessageBox::warning(this, _currentScript, + tr("This file has been modified outside of the Interface editor.") + "\n\n" + + (isModified() + ? tr("Do you want to reload it and lose the changes you've made in the Interface editor?") + : tr("Do you want to reload it?")), + QMessageBox::Yes | QMessageBox::No) == QMessageBox::Yes) { loadFile(_currentScript); if (_scriptEditorWidgetUI->onTheFlyCheckBox->isChecked() && isRunning()) { _isRestarting = true; diff --git a/interface/src/ui/ScriptEditorWindow.cpp b/interface/src/ui/ScriptEditorWindow.cpp index 7c8f5c79cb..895d725699 100644 --- a/interface/src/ui/ScriptEditorWindow.cpp +++ b/interface/src/ui/ScriptEditorWindow.cpp @@ -220,6 +220,10 @@ void ScriptEditorWindow::terminateCurrentTab() { } } +bool ScriptEditorWindow::autoReloadScripts() { + return _ScriptEditorWindowUI->autoReloadCheckBox->isChecked(); +} + bool ScriptEditorWindow::event(QEvent* event) { if (event->type() == QEvent::WindowActivate) { emit windowActivated(); diff --git a/interface/src/ui/ScriptEditorWindow.h b/interface/src/ui/ScriptEditorWindow.h index 271a3d685b..1915014b69 100644 --- a/interface/src/ui/ScriptEditorWindow.h +++ b/interface/src/ui/ScriptEditorWindow.h @@ -26,6 +26,7 @@ public: ~ScriptEditorWindow(); void terminateCurrentTab(); + bool autoReloadScripts(); signals: void windowActivated(); diff --git a/interface/ui/scriptEditorWindow.ui b/interface/ui/scriptEditorWindow.ui index 9103fc1f57..0379f51e97 100644 --- a/interface/ui/scriptEditorWindow.ui +++ b/interface/ui/scriptEditorWindow.ui @@ -33,7 +33,7 @@ 0 - + 3 @@ -185,6 +185,16 @@ + + + + font: 13px "Helvetica","Arial","sans-serif"; + + + Automatically reload externally changed files + + +