From 6b1c6be39e03deb62b375f203bf094c32054825a Mon Sep 17 00:00:00 2001
From: Gennady Pospelov <g.pospelov@fz-juelich.de>
Date: Tue, 18 Jul 2017 14:53:48 +0200
Subject: [PATCH] Layer, MultiLayer tooltips and doxygen comments.

---
 Core/Multilayer/Layer.cpp                          |  3 +++
 Core/Multilayer/LayerRoughness.cpp                 |  5 +++++
 Core/Multilayer/LayerRoughness.h                   |  2 +-
 GUI/coregui/Models/LayerItem.cpp                   |  8 ++++----
 GUI/coregui/Models/LayerRoughnessItems.cpp         | 14 +++++++++++---
 GUI/coregui/Models/MultiLayerItem.cpp              |  5 +++--
 .../Views/SampleDesigner/MultiLayerView.cpp        |  1 -
 GUI/coregui/mainwindow/tooltips.xml                |  8 +-------
 8 files changed, 28 insertions(+), 18 deletions(-)

diff --git a/Core/Multilayer/Layer.cpp b/Core/Multilayer/Layer.cpp
index fde30240b3b..29535313b85 100644
--- a/Core/Multilayer/Layer.cpp
+++ b/Core/Multilayer/Layer.cpp
@@ -22,6 +22,9 @@
 
 #include <set>
 
+//! Constructor of a layer with thickness and material
+//! @param material: material the layer is made of
+//! @param thickness: thickness of a layer in nanometers
 Layer::Layer(HomogeneousMaterial material, double thickness)
     : m_material(std::move(material))
     , m_thickness(thickness)
diff --git a/Core/Multilayer/LayerRoughness.cpp b/Core/Multilayer/LayerRoughness.cpp
index b0066ff082b..60f061b69d6 100644
--- a/Core/Multilayer/LayerRoughness.cpp
+++ b/Core/Multilayer/LayerRoughness.cpp
@@ -26,6 +26,11 @@ LayerRoughness::LayerRoughness()
     initialize();
 }
 
+//! Constructor of layer roughness.
+//! @param sigma: rms of the roughness in nanometers
+//! @param hurstParameter: hurst parameter which describes how jagged the interface,
+//! dimensionless [0.0, 1.0], where 0.0 gives more spikes, 1.0 more smoothness
+//! @param lateralCorrLength: lateral correlation length of the roughness in nanometers
 LayerRoughness::LayerRoughness(double sigma, double hurstParameter, double lateralCorrLength)
     : m_sigma(sigma)
     , m_hurstParameter(hurstParameter)
diff --git a/Core/Multilayer/LayerRoughness.h b/Core/Multilayer/LayerRoughness.h
index f9289958505..aefa52ed14a 100644
--- a/Core/Multilayer/LayerRoughness.h
+++ b/Core/Multilayer/LayerRoughness.h
@@ -19,7 +19,7 @@
 #include "ISample.h"
 #include "Vectors3D.h"
 
-//! A Roughness of interface between two layers.
+//! A roughness of interface between two layers.
 //!
 //! Based on the article
 //! D.K.G. de Boer, Physical review B, Volume 51, Number 8, 15 February 1995
diff --git a/GUI/coregui/Models/LayerItem.cpp b/GUI/coregui/Models/LayerItem.cpp
index e4d5d9b59f0..f962b86a6ae 100644
--- a/GUI/coregui/Models/LayerItem.cpp
+++ b/GUI/coregui/Models/LayerItem.cpp
@@ -19,7 +19,7 @@
 #include "MaterialUtils.h"
 
 namespace {
-const QString layer_nslices_toolitp =
+const QString layer_nslices_tooltip =
     "Number of horizontal slices.\n"
     "Used for Average Layer Material calculations \n"
     "when corresponding Simulation option set.";
@@ -36,13 +36,13 @@ LayerItem::LayerItem()
 {
     setToolTip(QStringLiteral("A layer with thickness and material"));
     addProperty(P_THICKNESS, 0.0)->setLimits(RealLimits::lowerLimited(0.0))
-        .setToolTip(QStringLiteral("Thickness of Layer in nm"));
+        .setToolTip(QStringLiteral("Thickness of a layer in nanometers"));
 
     addProperty(P_MATERIAL, MaterialUtils::getDefaultMaterialProperty().getVariant())
-            ->setToolTip(QStringLiteral("Layer material"));
+            ->setToolTip(QStringLiteral("Material the layer is made of"));
 
     addProperty(P_NSLICES, 1)->setLimits(RealLimits::lowerLimited(0.0))
-            .setToolTip(layer_nslices_toolitp);
+            .setToolTip(layer_nslices_tooltip);
 
     addGroupProperty(P_ROUGHNESS, Constants::LayerRoughnessGroup)
         ->setToolTip(QStringLiteral("Roughness of top interface"));
diff --git a/GUI/coregui/Models/LayerRoughnessItems.cpp b/GUI/coregui/Models/LayerRoughnessItems.cpp
index 0ee739275ec..af71f7fb1eb 100644
--- a/GUI/coregui/Models/LayerRoughnessItems.cpp
+++ b/GUI/coregui/Models/LayerRoughnessItems.cpp
@@ -17,6 +17,11 @@
 #include "LayerRoughnessItems.h"
 #include "BornAgainNamespace.h"
 
+namespace {
+    const QString hurst_tooltip = "Hurst parameter which decribes how jagged the interface,\n "
+            "dimensionless [0.0, 1.0], where 0.0 gives more spikes, \n1.0 more smoothness.";
+}
+
 LayerZeroRoughnessItem::LayerZeroRoughnessItem()
     : SessionItem(Constants::LayerZeroRoughnessType)
 {
@@ -30,8 +35,11 @@ const QString LayerBasicRoughnessItem::P_LATERAL_CORR_LENGTH
 LayerBasicRoughnessItem::LayerBasicRoughnessItem()
     : SessionItem(Constants::LayerBasicRoughnessType)
 {
-    addProperty(P_SIGMA, 1.0);
-    addProperty(P_HURST, 0.3)->setLimits(RealLimits::limited(0.0, 1.0));
+    setToolTip(QStringLiteral("A roughness of interface between two layers."));
+    addProperty(P_SIGMA, 1.0)->setToolTip(QStringLiteral("rms of the roughness in nanometers"));
+    addProperty(P_HURST, 0.3)->setLimits(RealLimits::limited(0.0, 1.0))
+        .setToolTip(hurst_tooltip);
     getItem(P_HURST)->setDecimals(3);
-    addProperty(P_LATERAL_CORR_LENGTH, 5.0);
+    addProperty(P_LATERAL_CORR_LENGTH, 5.0)->setToolTip(
+        QStringLiteral("Lateral correlation length of the roughness in nanometers"));
 }
diff --git a/GUI/coregui/Models/MultiLayerItem.cpp b/GUI/coregui/Models/MultiLayerItem.cpp
index 7a76c70d52c..d04078eb4fe 100644
--- a/GUI/coregui/Models/MultiLayerItem.cpp
+++ b/GUI/coregui/Models/MultiLayerItem.cpp
@@ -26,11 +26,12 @@ const QString MultiLayerItem::T_LAYERS = "Layer tag";
 MultiLayerItem::MultiLayerItem()
     : SessionGraphicsItem(Constants::MultiLayerType)
 {
-    setToolTip(QStringLiteral("Multi layer"));
+    setToolTip(QStringLiteral("A multilayer to hold stack of layers"));
     setItemName(Constants::MultiLayerType);
 
     addProperty(P_CROSS_CORR_LENGTH, 0.0)->setDecimals(5).setToolTip(
-                QStringLiteral("Cross correlation length of roughnesses between interfaces in nm"));
+        QStringLiteral("Cross correlation length of roughnesses \n"
+                       "between interfaces in nanometers"));
 
     registerTag(T_LAYERS, 0, -1, QStringList() << Constants::LayerType);
     setDefaultTag(T_LAYERS);
diff --git a/GUI/coregui/Views/SampleDesigner/MultiLayerView.cpp b/GUI/coregui/Views/SampleDesigner/MultiLayerView.cpp
index 2fc78c8716e..fc74cfa9424 100644
--- a/GUI/coregui/Views/SampleDesigner/MultiLayerView.cpp
+++ b/GUI/coregui/Views/SampleDesigner/MultiLayerView.cpp
@@ -32,7 +32,6 @@ MultiLayerView::MultiLayerView(QGraphicsItem* parent)
     setColor(QColor(Qt::blue));
 
     setRectangle(DesignerHelper::getDefaultBoundingRect(Constants::MultiLayerType));
-    setToolTip(Constants::MultiLayerType);
     setAcceptHoverEvents(false);
     setAcceptDrops(true);
     connect(this, SIGNAL(childrenChanged()), this, SLOT(updateHeight()));
diff --git a/GUI/coregui/mainwindow/tooltips.xml b/GUI/coregui/mainwindow/tooltips.xml
index ae3d80ec559..8cabc807bc2 100644
--- a/GUI/coregui/mainwindow/tooltips.xml
+++ b/GUI/coregui/mainwindow/tooltips.xml
@@ -4,10 +4,7 @@
 
         <category name="MultiLayer">
             <property name="Title">
-                <tooltip>A Multi-Layer with cross correlation length</tooltip>
-            </property>
-            <property name="Description">
-                <tooltip></tooltip>
+                <tooltip>A multilayer to hold stack of layers</tooltip>
             </property>
         </category>
 
@@ -15,9 +12,6 @@
             <property name="Title">
                 <tooltip>A layer with thickness and material</tooltip>
             </property>
-            <property name="Description">
-                <tooltip></tooltip>
-            </property>
         </category>
 
         <category name="ParticleLayout">
-- 
GitLab