3939
4040#include < Core/Python/PythonInterpreter.h>
4141#include < Interface/Application/PythonConsoleWidget.h>
42+ #include < Interface/Application/NetworkEditor.h>
4243
4344using namespace SCIRun ::Core;
4445using namespace SCIRun ::Gui;
@@ -49,7 +50,7 @@ typedef QPointer< PythonConsoleEdit > PythonConsoleEditQWeakPointer;
4950class PythonConsoleEdit : public QTextEdit
5051{
5152public:
52- explicit PythonConsoleEdit (PythonConsoleWidget* parent);
53+ PythonConsoleEdit (NetworkEditor* rootNetworkEditor, PythonConsoleWidget* parent);
5354
5455 virtual void keyPressEvent (QKeyEvent* e);
5556 // virtual void focusOutEvent( QFocusEvent* e );
@@ -71,6 +72,8 @@ class PythonConsoleEdit : public QTextEdit
7172 void print_errorImpl (const QString& text);
7273 void print_commandImpl (const QString& text);
7374
75+ NetworkEditor* rootNetworkEditor_;
76+
7477public:
7578 // The beginning of the area of interactive input, outside which
7679 // changes can't be made to the text edit contents.
@@ -87,8 +90,8 @@ class PythonConsoleEdit : public QTextEdit
8790 // static void PrintCommand( PythonConsoleEditQWeakPointer edit, const std::string& text );
8891};
8992
90- PythonConsoleEdit::PythonConsoleEdit (PythonConsoleWidget* parent) :
91- QTextEdit(parent)
93+ PythonConsoleEdit::PythonConsoleEdit (NetworkEditor* rootNetworkEditor, PythonConsoleWidget* parent) :
94+ QTextEdit(parent), rootNetworkEditor_(rootNetworkEditor)
9295{
9396 this ->interactive_position_ = this ->document_end ();
9497 this ->setTabChangesFocus (false );
@@ -303,6 +306,7 @@ void PythonConsoleEdit::issue_command()
303306
304307 this ->interactive_position_ = this ->document_end ();
305308
309+ NetworkEditor::InEditingContext iec (rootNetworkEditor_);
306310 auto lines = command.split (QRegExp (" [\r\n ]" ),QString::SkipEmptyParts);
307311 for (const auto & line : lines)
308312 {
@@ -390,14 +394,14 @@ class PythonConsoleWidgetPrivate
390394 PythonConsoleEdit* console_edit_;
391395};
392396
393- PythonConsoleWidget::PythonConsoleWidget (QWidget* parent) :
397+ PythonConsoleWidget::PythonConsoleWidget (NetworkEditor* rootNetworkEditor, QWidget* parent) :
394398QDockWidget(parent),
395399private_(new PythonConsoleWidgetPrivate)
396400{
397- this -> private_ ->console_edit_ = new PythonConsoleEdit (this );
398- setWidget (this -> private_ ->console_edit_ );
401+ private_->console_edit_ = new PythonConsoleEdit (rootNetworkEditor, this );
402+ setWidget (private_->console_edit_ );
399403
400- this -> setMinimumSize (500 , 500 );
404+ setMinimumSize (500 , 500 );
401405
402406 setWindowTitle (" Python console" );
403407
0 commit comments