From 37d0dbffb92ebf9060170f106073780dd5116c03 Mon Sep 17 00:00:00 2001
From: Conor Finn <conor.finn@stfc.ac.uk>
Date: Mon, 16 Dec 2019 16:43:53 +0000
Subject: [PATCH] RE #27187 Add settings menu to main window

---
 .../engineering_diffraction.py                   | 16 ++++++++++++++++
 .../gui/engineering_diffraction/main_window.ui   |  7 +++++++
 2 files changed, 23 insertions(+)

diff --git a/scripts/Engineering/gui/engineering_diffraction/engineering_diffraction.py b/scripts/Engineering/gui/engineering_diffraction/engineering_diffraction.py
index 3a8dbe99906..5572427a2ab 100644
--- a/scripts/Engineering/gui/engineering_diffraction/engineering_diffraction.py
+++ b/scripts/Engineering/gui/engineering_diffraction/engineering_diffraction.py
@@ -14,6 +14,10 @@ from .tabs.calibration.presenter import CalibrationPresenter
 from .tabs.focus.model import FocusModel
 from .tabs.focus.view import FocusView
 from .tabs.focus.presenter import FocusPresenter
+from .settings.settings_model import SettingsModel
+from .settings.settings_view import SettingsView
+from .settings.settings_presenter import SettingsPresenter
+from mantidqt.icons import get_icon
 
 from mantidqt.interfacemanager import InterfaceManager
 from mantidqt.utils.qt import load_ui
@@ -35,8 +39,11 @@ class EngineeringDiffractionGui(QtWidgets.QMainWindow, Ui_main_window):
         self.setFocusPolicy(QtCore.Qt.StrongFocus)
         self.calibration_presenter = None
         self.focus_presenter = None
+        self.settings_presenter = None
         self.set_on_help_clicked(self.open_help_window)
 
+        self.set_on_settings_clicked(self.open_settings)
+        self.btn_settings.setIcon(get_icon("mdi.settings", "black", 1.2))
         # Setup Tabs
         self.setup_calibration()
         self.setup_focus()
@@ -67,6 +74,9 @@ class EngineeringDiffractionGui(QtWidgets.QMainWindow, Ui_main_window):
     def set_on_help_clicked(self, slot):
         self.pushButton_help.clicked.connect(slot)
 
+    def set_on_settings_clicked(self, slot):
+        self.btn_settings.clicked.connect(slot)
+
     def set_on_rb_num_changed(self, slot):
         self.lineEdit_RBNumber.textChanged.connect(slot)
 
@@ -76,5 +86,11 @@ class EngineeringDiffractionGui(QtWidgets.QMainWindow, Ui_main_window):
     def open_help_window(self):
         InterfaceManager().showCustomInterfaceHelp(self.doc)
 
+    def open_settings(self):
+        settings_view = SettingsView(self)
+        settings_model = SettingsModel()
+        self.settings_presenter = SettingsPresenter(settings_model, settings_view)
+        settings_view.show()
+
     def get_rb_no(self):
         return self.lineEdit_RBNumber.text()
diff --git a/scripts/Engineering/gui/engineering_diffraction/main_window.ui b/scripts/Engineering/gui/engineering_diffraction/main_window.ui
index 3f4cac479e9..6e356534893 100644
--- a/scripts/Engineering/gui/engineering_diffraction/main_window.ui
+++ b/scripts/Engineering/gui/engineering_diffraction/main_window.ui
@@ -91,6 +91,13 @@
         </property>
        </widget>
       </item>
+      <item>
+       <widget class="QToolButton" name="btn_settings">
+        <property name="text">
+         <string/>
+        </property>
+       </widget>
+      </item>
       <item>
        <widget class="QStatusBar" name="statusbar">
         <property name="sizeGripEnabled">
-- 
GitLab