From 45d73d286d255075d7888201a3243aa743f2f534 Mon Sep 17 00:00:00 2001
From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz>
Date: Sun, 21 Oct 2018 21:48:51 +0200
Subject: [PATCH] do not update text field on change

---
 agui2/src/Graphics/Dialogs/InputDialog.cpp | 17 +++++++++--------
 agui2/src/Graphics/Dialogs/InputDialog.hpp |  2 +-
 2 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/agui2/src/Graphics/Dialogs/InputDialog.cpp b/agui2/src/Graphics/Dialogs/InputDialog.cpp
index 8dc526fb8f..7aaa880b17 100644
--- a/agui2/src/Graphics/Dialogs/InputDialog.cpp
+++ b/agui2/src/Graphics/Dialogs/InputDialog.cpp
@@ -28,7 +28,7 @@ std::shared_ptr<abstraction::OperationAbstraction> InputDialog::getAutomaton() {
     return this->automaton;
 }
 
-void InputDialog::setAutomaton(std::shared_ptr<abstraction::OperationAbstraction> automaton) {
+void InputDialog::setAutomaton(std::shared_ptr<abstraction::OperationAbstraction> automaton, bool updateText) {
     this->automaton = std::move(automaton);
     QSignalBlocker blockerXML(ui->plainTextEdit_xml);
     QSignalBlocker blockerText(ui->plainTextEdit_text);
@@ -41,12 +41,13 @@ void InputDialog::setAutomaton(std::shared_ptr<abstraction::OperationAbstraction
             ui->plainTextEdit_xml->clear();
         }
 
-        if (auto text = Converter::toString(this->automaton)) {
-            ui->plainTextEdit_text->setPlainText(*text);
-        }
-        else {
-            ui->plainTextEdit_text->clear();
-        }
+        if ( updateText )
+            if (auto text = Converter::toString(this->automaton)) {
+                ui->plainTextEdit_text->setPlainText(*text);
+            }
+            else {
+                ui->plainTextEdit_text->clear();
+            }
 
         if (auto image = Converter::toPNG(this->automaton)) {
             ui->label_image->setPixmap(QPixmap::fromImage(*image));
@@ -89,7 +90,7 @@ void InputDialog::on_plainTextEdit_xml_textChanged() {
 
 void InputDialog::on_plainTextEdit_text_textChanged() {
     if (auto automaton = Converter::tryParse(ui->plainTextEdit_text->toPlainText())) {
-        this->setAutomaton(std::move(automaton));
+        this->setAutomaton(std::move(automaton), false);
     }
 }
 
diff --git a/agui2/src/Graphics/Dialogs/InputDialog.hpp b/agui2/src/Graphics/Dialogs/InputDialog.hpp
index 0436ca9eda..8f5596f67b 100644
--- a/agui2/src/Graphics/Dialogs/InputDialog.hpp
+++ b/agui2/src/Graphics/Dialogs/InputDialog.hpp
@@ -24,7 +24,7 @@ private slots:
     void on_openFileButton_clicked();
 
 private:
-    void setAutomaton(std::shared_ptr<abstraction::OperationAbstraction> automaton);
+    void setAutomaton(std::shared_ptr<abstraction::OperationAbstraction> automaton, bool updateText = true );
 
     void setTabShown(QWidget* tab, bool value);
 
-- 
GitLab