Mantid
Loading...
Searching...
No Matches
FunctionMultiDomainPresenter.h
Go to the documentation of this file.
1// Mantid Repository : https://github.com/mantidproject/mantid
2//
3// Copyright © 2018 ISIS Rutherford Appleton Laboratory UKRI,
4// NScD Oak Ridge National Laboratory, European Spallation Source,
5// Institut Laue - Langevin & CSNS, Institute of High Energy Physics, CAS
6// SPDX - License - Identifier: GPL - 3.0 +
7#pragma once
8
9#include "DllOption.h"
10
13
14#include <QObject>
15#include <memory>
16#include <optional>
17#include <vector>
18
19namespace MantidQt {
20namespace MantidWidgets {
21
22class FunctionModel;
23class IFunctionView;
24class EditLocalParameterDialog;
25
26using namespace Mantid::API;
27
29 Q_OBJECT
30public:
32 void clear();
33 void setFunction(IFunction_sptr fun);
34 void setFunctionString(std::string const &funStr);
35 std::string getFunctionString() const;
36 IFunction_sptr getFunction() const;
37 IFunction_sptr getFunctionByIndex(std::string const &index);
38 IFunction_sptr getFitFunction() const;
39 std::string getFitFunctionString() const;
40 bool hasFunction() const;
41 void setParameter(std::string const &parameterName, double value);
42 void setParameterError(std::string const &parameterName, double value);
43 double getParameter(std::string const &parameterName);
44 bool isParameterFixed(std::string const &parameterName) const;
45 std::string getParameterTie(std::string const &parameterName) const;
46 void updateParameters(const IFunction &fun);
47 void updateMultiDatasetParameters(const IFunction &fun);
48 void updateMultiDatasetAttributes(const IFunction &fun);
49 void clearErrors();
50 std::optional<std::string> currentFunctionIndex() const;
51 void setNumberOfDatasets(int);
52 void setDatasets(const std::vector<std::string> &datasetNames);
53 void setDatasets(const QList<FunctionModelDataset> &datasets);
54 void addDatasets(const std::vector<std::string> &datasetNames);
55 std::vector<std::string> getDatasetNames() const;
56 std::vector<std::string> getDatasetDomainNames() const;
57 int getNumberOfDatasets() const;
58 int getCurrentDataset() const;
59 void setCurrentDataset(int);
60 void removeDatasets(QList<int> indices);
61 double getLocalParameterValue(std::string const &parameterName, int i) const;
62 bool isLocalParameterFixed(std::string const &parameterName, int i) const;
63 std::string getLocalParameterTie(std::string const &parameterName, int i) const;
64 std::string getLocalParameterConstraint(std::string const &parameterName, int i) const;
65 void setLocalParameterValue(std::string const &parameterName, int i, double value);
66 void setLocalParameterValue(std::string const &parameterName, int i, double value, double error);
67 void setLocalParameterFixed(std::string const &parameterName, int i, bool fixed);
68 void setLocalParameterTie(std::string const &parameterName, int i, std::string const &tie);
69 void setLocalParameterConstraint(std::string const &parameterName, int i, std::string const &constraint);
70 std::vector<std::string> getGlobalParameters() const;
71 void setGlobalParameters(std::vector<std::string> const &globals);
72 std::vector<std::string> getLocalParameters() const;
73 void setBackgroundA0(double value);
74
75 void setColumnSizes(int s0, int s1, int s2);
76 void setStretchLastColumn(bool stretch);
77 void setErrorsEnabled(bool enabled);
78 void hideGlobals();
79 void showGlobals();
80signals:
82 void parameterChanged(std::string const &funcIndex, std::string const &parameterName);
83 void attributeChanged(std::string const &attributeName);
84private slots:
85 void viewChangedParameter(std::string const &parameterName);
86 void viewChangedAttribute(std::string const &attrName);
87 void viewPastedFunction(std::string const &funStr);
88 void viewAddedFunction(std::string const &funStr);
89 void viewRemovedFunction(std::string const &functionIndex);
90 void viewChangedTie(std::string const &parameterName, std::string const &tie);
91 void viewAddedConstraint(std::string const &functionIndex, std::string const &constraint);
92 void viewRemovedConstraint(std::string const &parameterName);
93 void viewRequestedCopyToClipboard();
94 void viewChangedGlobals(const std::vector<std::string> &globalParameters);
95 void editLocalParameter(std::string const &parameterName);
96 void editLocalParameterFinish(int result);
97 void viewRequestedFunctionHelp();
98
99private:
100 void updateViewFromModel();
101 void updateViewAttributesFromModel();
102
103private:
105 std::unique_ptr<FunctionModel> m_model;
107
108public:
109 IFunctionView *view() const { return m_view; }
110};
111
112} // namespace MantidWidgets
113} // namespace MantidQt
#define EXPORT_OPT_MANTIDQT_COMMON
Definition DllOption.h:15
double value
The value of the point.
Definition FitMW.cpp:51
double error
std::map< DeltaEMode::Type, std::string > index
A dialog for displaying and editing values of local parameters.
void parameterChanged(std::string const &funcIndex, std::string const &parameterName)
void attributeChanged(std::string const &attributeName)
The interface to a function view.
This is an interface to a fitting function - a semi-abstarct class.
Definition IFunction.h:166
The AlgorithmProgressDialogPresenter keeps track of the running algorithms and displays a progress ba...
std::shared_ptr< IFunction > IFunction_sptr
shared pointer to the function base class
Definition IFunction.h:743