From d4bdca4dbd67d261d45d4595f8735caa4c8e7842 Mon Sep 17 00:00:00 2001
From: Mikhail Svechnikov <svechnikovmv@gmail.com>
Date: Thu, 1 Aug 2024 18:19:19 +0200
Subject: [PATCH] restore HeinzFormLayout::setRowVisible

---
 GUI/View/Sample/HeinzFormLayout.cpp | 7 +++++++
 GUI/View/Sample/HeinzFormLayout.h   | 4 +++-
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/GUI/View/Sample/HeinzFormLayout.cpp b/GUI/View/Sample/HeinzFormLayout.cpp
index 8a4785c982e..39cc4196006 100644
--- a/GUI/View/Sample/HeinzFormLayout.cpp
+++ b/GUI/View/Sample/HeinzFormLayout.cpp
@@ -93,6 +93,13 @@ void HeinzFormLayout::addVector(VectorProperty& d, bool vertically /*= true*/)
     addBoldRow(d.label(), w);
 }
 
+void HeinzFormLayout::setRowVisible(int row, bool visible)
+{
+    // Qt >=6.4 has embedded method 'QFormLayout::setRowVisible(int row, bool visible)'
+    // After updating Qt on CI computers, 'HeinzFormLayout::setRowVisible' can be deleted.
+    QFormLayout::itemAt(row, QFormLayout::FieldRole)->widget()->setVisible(visible);
+}
+
 void HeinzFormLayout::addStructureEditingRow(QPushButton* button)
 {
     auto* w = new QWidget(QFormLayout::parentWidget());
diff --git a/GUI/View/Sample/HeinzFormLayout.h b/GUI/View/Sample/HeinzFormLayout.h
index b5e971d902e..4c9a5d63528 100644
--- a/GUI/View/Sample/HeinzFormLayout.h
+++ b/GUI/View/Sample/HeinzFormLayout.h
@@ -108,7 +108,9 @@ public:
     //! (vertically=false).
     void addVector(VectorProperty& d, bool vertically = true);
 
-    //! Adds a button for structure editing.
+    //! Shows or hides the widgets in a row.
+    void setRowVisible(int row, bool visible); //! Adds a button for structure editing.
+
     //!
     //! Creates a widget, places the given button as a child left-aligned into this widget and adds
     //! the newly created widget as a row in the layout.
-- 
GitLab