From 9b78d1a0abb09eb49e5f1ccc061b4708d9b13bd0 Mon Sep 17 00:00:00 2001
From: dismine <dismine@gmail.com>
Date: Tue, 4 Mar 2014 20:14:11 +0200
Subject: [PATCH] Refactoring.

--HG--
branch : feature
---
 src/dialogs/tools/dialogendline.cpp | 19 ++-----------------
 src/dialogs/tools/dialognormal.cpp  | 19 ++-----------------
 src/dialogs/tools/dialogtool.h      | 16 +++++++++++++++-
 3 files changed, 19 insertions(+), 35 deletions(-)

diff --git a/src/dialogs/tools/dialogendline.cpp b/src/dialogs/tools/dialogendline.cpp
index 359083d19..04f5c8900 100644
--- a/src/dialogs/tools/dialogendline.cpp
+++ b/src/dialogs/tools/dialogendline.cpp
@@ -36,7 +36,6 @@ DialogEndLine::DialogEndLine(const VContainer *data, QWidget *parent)
     formula(QString()), angle(0), basePointId(0)
 {
     ui->setupUi(this);
-    spinBoxAngle = ui->doubleSpinBoxAngle;
     listWidget = ui->listWidget;
     labelResultCalculation = ui->labelResultCalculation;
     labelDescription = ui->labelDescription;
@@ -61,22 +60,8 @@ DialogEndLine::DialogEndLine(const VContainer *data, QWidget *parent)
 
     FillComboBoxTypeLine(ui->comboBoxLineType);
 
-    connect(ui->toolButtonArrowDown, &QPushButton::clicked, this,
-            &DialogEndLine::ArrowDown);
-    connect(ui->toolButtonArrowUp, &QPushButton::clicked, this,
-            &DialogEndLine::ArrowUp);
-    connect(ui->toolButtonArrowLeft, &QPushButton::clicked, this,
-            &DialogEndLine::ArrowLeft);
-    connect(ui->toolButtonArrowRight, &QPushButton::clicked, this,
-            &DialogEndLine::ArrowRight);
-    connect(ui->toolButtonArrowLeftUp, &QPushButton::clicked, this,
-            &DialogEndLine::ArrowLeftUp);
-    connect(ui->toolButtonArrowLeftDown, &QPushButton::clicked, this,
-            &DialogEndLine::ArrowLeftDown);
-    connect(ui->toolButtonArrowRightUp, &QPushButton::clicked, this,
-            &DialogEndLine::ArrowRightUp);
-    connect(ui->toolButtonArrowRightDown, &QPushButton::clicked, this,
-            &DialogEndLine::ArrowRightDown);
+    InitArrow(ui);
+
     connect(ui->toolButtonPutHere, &QPushButton::clicked, this, &DialogEndLine::PutHere);
     connect(ui->listWidget, &QListWidget::itemDoubleClicked, this, &DialogEndLine::PutVal);
     connect(ui->listWidget, &QListWidget::currentRowChanged, this, &DialogEndLine::ValChenged);
diff --git a/src/dialogs/tools/dialognormal.cpp b/src/dialogs/tools/dialognormal.cpp
index 401b4aa64..8c7c03488 100644
--- a/src/dialogs/tools/dialognormal.cpp
+++ b/src/dialogs/tools/dialognormal.cpp
@@ -36,7 +36,6 @@ DialogNormal::DialogNormal(const VContainer *data, QWidget *parent)
     typeLine(QString()), formula(QString()), angle(0), firstPointId(0), secondPointId(0)
 {
     ui->setupUi(this);
-    spinBoxAngle = ui->doubleSpinBoxAngle;
     listWidget = ui->listWidget;
     labelResultCalculation = ui->labelResultCalculation;
     labelDescription = ui->labelDescription;
@@ -61,22 +60,8 @@ DialogNormal::DialogNormal(const VContainer *data, QWidget *parent)
     FillComboBoxPoints(ui->comboBoxSecondPoint);
     FillComboBoxTypeLine(ui->comboBoxLineType);
 
-    connect(ui->toolButtonArrowDown, &QPushButton::clicked, this,
-            &DialogNormal::ArrowDown);
-    connect(ui->toolButtonArrowUp, &QPushButton::clicked, this,
-            &DialogNormal::ArrowUp);
-    connect(ui->toolButtonArrowLeft, &QPushButton::clicked, this,
-            &DialogNormal::ArrowLeft);
-    connect(ui->toolButtonArrowRight, &QPushButton::clicked, this,
-            &DialogNormal::ArrowRight);
-    connect(ui->toolButtonArrowLeftUp, &QPushButton::clicked, this,
-            &DialogNormal::ArrowLeftUp);
-    connect(ui->toolButtonArrowLeftDown, &QPushButton::clicked, this,
-            &DialogNormal::ArrowLeftDown);
-    connect(ui->toolButtonArrowRightUp, &QPushButton::clicked, this,
-            &DialogNormal::ArrowRightUp);
-    connect(ui->toolButtonArrowRightDown, &QPushButton::clicked, this,
-            &DialogNormal::ArrowRightDown);
+    InitArrow(ui);
+
     connect(ui->toolButtonPutHere, &QPushButton::clicked, this, &DialogNormal::PutHere);
     connect(ui->listWidget, &QListWidget::itemDoubleClicked, this, &DialogNormal::PutVal);
     connect(ui->listWidget, &QListWidget::currentRowChanged, this, &DialogNormal::ValChenged);
diff --git a/src/dialogs/tools/dialogtool.h b/src/dialogs/tools/dialogtool.h
index 48ee2b043..bc2dce26a 100644
--- a/src/dialogs/tools/dialogtool.h
+++ b/src/dialogs/tools/dialogtool.h
@@ -398,7 +398,21 @@ protected:
      * @return id or -1 if combobox is empty
      */
     quint32           getCurrentObjectId(QComboBox *box) const;
-    bool ChoosedPoint(const quint32 &id, QComboBox *box, const QString &toolTip);
+    bool              ChoosedPoint(const quint32 &id, QComboBox *box, const QString &toolTip);
+    template <typename T>
+    void              InitArrow(T *ui)
+    {
+        Q_CHECK_PTR(ui);
+        spinBoxAngle = ui->doubleSpinBoxAngle;
+        connect(ui->toolButtonArrowDown, &QPushButton::clicked, this, &DialogTool::ArrowDown);
+        connect(ui->toolButtonArrowUp, &QPushButton::clicked, this, &DialogTool::ArrowUp);
+        connect(ui->toolButtonArrowLeft, &QPushButton::clicked, this, &DialogTool::ArrowLeft);
+        connect(ui->toolButtonArrowRight, &QPushButton::clicked, this, &DialogTool::ArrowRight);
+        connect(ui->toolButtonArrowLeftUp, &QPushButton::clicked, this, &DialogTool::ArrowLeftUp);
+        connect(ui->toolButtonArrowLeftDown, &QPushButton::clicked, this, &DialogTool::ArrowLeftDown);
+        connect(ui->toolButtonArrowRightUp, &QPushButton::clicked, this, &DialogTool::ArrowRightUp);
+        connect(ui->toolButtonArrowRightDown, &QPushButton::clicked, this, &DialogTool::ArrowRightDown);
+    }
 private:
     /**
      * @brief FillList fill combobox list