From 612e6ab53c0614e637cf97efd092d6a01789c7df Mon Sep 17 00:00:00 2001
From: Gennady Pospelov <g.pospelov@fz-juelich.de>
Date: Fri, 5 Jun 2020 15:02:15 +0200
Subject: [PATCH] Improve alignment of items after GraphicsScene drag-and-drop

---
 .../Views/SampleDesigner/SampleViewAligner.cpp       | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/GUI/coregui/Views/SampleDesigner/SampleViewAligner.cpp b/GUI/coregui/Views/SampleDesigner/SampleViewAligner.cpp
index 363298e7eed..573919f2a9c 100644
--- a/GUI/coregui/Views/SampleDesigner/SampleViewAligner.cpp
+++ b/GUI/coregui/Views/SampleDesigner/SampleViewAligner.cpp
@@ -16,8 +16,18 @@
 #include "DesignerScene.h"
 #include "IView.h"
 #include "SampleModel.h"
+#include "StyleUtils.h"
 #include <QModelIndex>
 
+namespace {
+int step_width() {
+    return StyleUtils::SizeOfLetterM().width()*12.5;
+}
+int step_height() {
+    return StyleUtils::SizeOfLetterM().height()*11;
+}
+}
+
 SampleViewAligner::SampleViewAligner(DesignerScene* scene) : m_scene(scene)
 {
     Q_ASSERT(m_scene);
@@ -166,7 +176,7 @@ void SampleViewAligner::alignSample(const QModelIndex& parentIndex, QPointF refe
         QModelIndex itemIndex = sampleModel->index(i_row, 0, parentIndex);
         if (!getViewForIndex(itemIndex))
             continue;
-        QPointF child_reference = reference + QPointF(-150, 150 * child_counter++);
+        QPointF child_reference = reference + QPointF(-step_width(), step_height() * child_counter++);
         alignSample(itemIndex, child_reference, force_alignment);
     }
 }
-- 
GitLab