Mantid
|
#include <LoadDialog.h>
Public Member Functions | |
LoadDialog (QWidget *parent=nullptr) | |
Default constructor. More... | |
Public Member Functions inherited from MantidQt::API::AlgorithmDialog | |
AlgorithmDialog (QWidget *parent=nullptr) | |
DefaultConstructor. More... | |
void | initializeLayout () |
Create the layout of the widget. Can only be called once. More... | |
bool | isInitialized () const |
Is this dialog initialized. More... | |
bool | isShowKeepOpen () const |
Set if the keep open option is shown. More... | |
void | setShowKeepOpen (const bool showOption) |
Set if the keep open option is shown. More... | |
~AlgorithmDialog () override | |
Destructor. More... | |
void | setAlgorithm (const Mantid::API::IAlgorithm_sptr &) |
The following methods were made public for testing in GenericDialogDemo.cpp. More... | |
void | setPresetValues (const QHash< QString, QString > &presetValues) |
Set a list of suggested values. More... | |
void | isForScript (bool forScript) |
Set whether this is intended for use from a script or not. More... | |
void | executeOnAccept (bool on) |
If true then execute the algorithm on acceptance. More... | |
void | setOptionalMessage (const QString &message) |
Set an optional message to be displayed at the top of the dialog. More... | |
void | addEnabledAndDisableLists (const QStringList &enabled, const QStringList &disabled) |
Set comma-separated-list of enabled parameter names. More... | |
void | addAlgorithmObserver (Mantid::API::AlgorithmObserver *observer) |
Add an AlgorithmObserver to the algorithm. More... | |
Private Slots | |
void | accept () override |
Override accept() slot. More... | |
void | createDynamicWidgets () |
Create the widgets and layouts that are dynamic, i.e they depend on the specific load algorithm. More... | |
void | enableNameSuggestion (const bool on=false) |
Connect/Disconnect the signal that updates the workspace name with a suggested value. More... | |
void | helpClicked () override |
Override the help button clicked method. More... | |
void | suggestWSName () |
Suggest a workspace name from the file. More... | |
Private Member Functions | |
void | createDynamicLayout () |
Create. More... | |
int | createWidgetsForProperty (const Mantid::Kernel::Property *prop, QVBoxLayout *propertyLayout, QWidget *parent) |
Create the widgets for a given property. More... | |
void | disableLoadRequests () |
Ignore requests to load until they are re-enabled. More... | |
void | enableLoadRequests () |
Accept requests to load until they are disabled. More... | |
void | initLayout () override |
Initialize the layout. More... | |
void | removeOldInputWidgets (QVBoxLayout *layout) |
Clears all of the widgets from the old layout. More... | |
void | saveInput () override |
Save the input history. More... | |
void | tieStaticWidgets (const bool readHistory) |
Tie static widgets to their properties. More... | |
Private Attributes | |
QString | m_currentFiles |
The current file. More... | |
Ui::LoadDialog | m_form |
Form. More... | |
int | m_initialHeight |
The initial height. More... | |
bool | m_populating |
Flag to indicating if we are populating the dialog. More... | |
friend | PreventLoadRequests |
Additional Inherited Members | |
Signals inherited from MantidQt::API::AlgorithmDialog | |
void | algCompletedSignal () |
Emitted when alg completes and dialog is staying open. More... | |
void | closeEventCalled () |
Protected Slots inherited from MantidQt::API::AlgorithmDialog | |
void | accept () override |
A default slot that can be used for an OK button. More... | |
void | reject () override |
A default slot that can be used for a rejected button. More... | |
virtual void | helpClicked () |
Help button clicked;. More... | |
virtual void | keepOpenChanged (int state) |
Keep open checkbox clicked;. More... | |
virtual void | algorithmCompleted () |
Keep the running algorithm has completed. More... | |
virtual void | executeAlgorithmAsync () |
Executes the algorithm in a separate thread. More... | |
virtual void | removeAlgorithmFromManager () |
Removes the algorithm from the manager. More... | |
void | enableExitButton () |
Enable to exit button. More... | |
Protected Member Functions inherited from MantidQt::API::AlgorithmDialog | |
virtual void | parseInput () |
Parse out the values entered into the dialog boxes. More... | |
const QString & | getOptionalMessage () const |
Get the message string. More... | |
void | addOptionalMessage (QVBoxLayout *mainLay) |
Add the optional message to the given layout. More... | |
bool | isForScript () const |
Get the usage boolean value. More... | |
bool | isMessageAvailable () const |
Is there a message string available. More... | |
bool | isWidgetEnabled (const QString &propName) const |
Check is a given property should have its control enabled or not. More... | |
Mantid::API::IAlgorithm_sptr | getAlgorithm () const |
Get the algorithm pointer. More... | |
Mantid::Kernel::Property * | getAlgorithmProperty (const QString &propName) const |
Get a pointer to the named property. More... | |
bool | requiresUserInput (const QString &propName) const |
Return a true if the given property requires user input. More... | |
QString | getInputValue (const QString &propName) const |
Get an input value from the form, dealing with blank inputs etc. More... | |
QLabel * | getValidatorMarker (const QString &propname) |
Get a property validator label. More... | |
void | storePropertyValue (const QString &name, const QString &value) |
Adds a property (name,value) pair to the stored map. More... | |
void | removePropertyValue (const QString &name) |
Removes a property (name, value) pair from the stored map. More... | |
bool | setPropertyValues (const QStringList &skipList=QStringList()) |
Set properties on this algorithm by pulling values from the tied widgets. More... | |
bool | setPropertyValue (const QString &pName, bool validateOthers) |
Sets the value of a single property, using the value previously stored using storePropertyValue() More... | |
void | showValidators () |
Show the validators for all the properties. More... | |
QWidget * | tie (QWidget *widget, const QString &property, QLayout *parent_layout=nullptr, bool readHistory=true) |
Tie a widget to a property. More... | |
void | untie (const QString &property) |
Untie a widget to a property. More... | |
QString | openFileDialog (const QString &propName) |
Open a file dialog to select a file. More... | |
QStringList | openMultipleFileDialog (const QString &propName) |
Open a file dialog to select many file. More... | |
void | fillAndSetComboBox (const QString &propName, QComboBox *optionsBox) const |
Fill a combo box for the named algorithm's allowed values. More... | |
void | fillLineEdit (const QString &propName, QLineEdit *field) |
Fill in the necessary input for a text field. More... | |
QLayout * | createDefaultButtonLayout (const QString &helpText=QString("?"), const QString &loadText=QString("Run"), const QString &cancelText=QString("Close"), const QString &keepOpenText=QString("Keep Open")) |
Create a row layout of buttons with specified text. More... | |
QPushButton * | createHelpButton (const QString &helpText=QString("?")) const |
Create a help button for this algorithm. More... | |
void | flagInputWS (QWidget *inputWidget) |
Flag an input workspace combobox with its property name. More... | |
QString | getValue (QWidget *widget) |
Retrieve a text value for a property from a widget. More... | |
void | parse () |
Parse out the input from the dialog. More... | |
bool | requestedToKeepEnabled (const QString &propName) const |
Test if the given name's widget has been explicity asked to be enabled. More... | |
QString | getPreviousValue (const QString &propName) const |
Get the property value from either the previous input store or from Python argument. More... | |
void | setPreviousValue (QWidget *widget, const QString &property) |
Set a value based on any old input that we have. More... | |
void | finishHandle (const Mantid::API::IAlgorithm *alg) override |
Handle completion of algorithm started while staying open. More... | |
void | errorHandle (const Mantid::API::IAlgorithm *alg, const std::string &what) override |
Handle completion of algorithm started while staying open. More... | |
void | closeEvent (QCloseEvent *evt) override |
Only allow close when close is enabled. More... | |
Protected Attributes inherited from MantidQt::API::AlgorithmDialog | |
Mantid::API::IAlgorithm_sptr | m_algorithm |
The algorithm associated with this dialog. More... | |
QString | m_algName |
The name of the algorithm. More... | |
QStringList | m_algProperties |
The properties associated with this dialog. More... | |
QHash< QString, QString > | m_propertyValueMap |
A map of property <name, value> pairs that have been taken from the dialog. More... | |
QHash< QString, QWidget * > | m_tied_properties |
A list pointers to the widget for each property. More... | |
bool | m_forScript |
A boolean indicating whether this is for a script or not. More... | |
QStringList | m_python_arguments |
A list of property names that have been passed from Python. More... | |
QStringList | m_enabled |
A list of property names that should have their widgets enabled. More... | |
QStringList | m_disabled |
A list of property names that the user has requested to be disabled (overrides those in enabled) More... | |
QString | m_strMessage |
The message string to be displayed at the top of the widget; if it exists. More... | |
bool | m_keepOpen |
Whether to keep the dialog box open after alg execution. More... | |
bool | m_msgAvailable |
Is the message string empty or not. More... | |
bool | m_isInitialized |
Whether the layout has been initialized. More... | |
bool | m_autoParseOnInit |
Flag if the input should be parsed automatically on initialization. More... | |
QHash< QString, QLabel * > | m_validators |
A list of labels to use as validation markers. More... | |
QHash< QString, QString > | m_errors |
A map where key = property name; value = the error for this property (i.e. More... | |
QStringList | m_noValidation |
A list of property names whose widgets handle their own validation. More... | |
QVector< QWidget * > | m_inputws_opts |
Store a list of the names of input workspace boxes. More... | |
QVector< QLineEdit * > | m_outputws_fields |
Store a list of output workspace text edits. More... | |
QHash< QPushButton *, int > | m_wsbtn_tracker |
A map to keep track of replace workspace button presses. More... | |
QCheckBox * | m_keepOpenCheckBox |
QPushButton * | m_okButton |
QPushButton * | m_exitButton |
std::vector< Mantid::API::AlgorithmObserver * > | m_observers |
A list of AlgorithmObservers to add to the algorithm prior to execution. More... | |
QTimer | m_btnTimer |
Enable the close button when the timer fires. More... | |
bool | m_statusTracked |
A flag to track whether the status of the algorithm is being tracked. More... | |
Definition at line 48 of file LoadDialog.h.
MantidQt::CustomDialogs::LoadDialog::LoadDialog | ( | QWidget * | parent = nullptr | ) |
Default constructor.
Definition at line 64 of file LoadDialog.cpp.
|
overrideprivateslot |
Override accept() slot.
Called when the run button is clicked.
Definition at line 132 of file LoadDialog.cpp.
References createDynamicWidgets(), MantidQt::API::AlgorithmDialog::getAlgorithm(), m_currentFiles, m_form, and m_populating.
|
private |
Create.
Create the dynamic widgets for the concrete loader.
Definition at line 243 of file LoadDialog.cpp.
References createWidgetsForProperty(), MantidQt::API::AlgorithmDialog::getAlgorithm(), m_currentFiles, m_form, m_initialHeight, removeOldInputWidgets(), MantidQt::API::AlgorithmDialog::requiresUserInput(), MantidQt::API::AlgorithmDialog::setAlgorithm(), MantidQt::API::AlgorithmDialog::setPropertyValues(), MantidQt::API::AlgorithmDialog::storePropertyValue(), and tieStaticWidgets().
Referenced by createDynamicWidgets().
|
privateslot |
Create the widgets and layouts that are dynamic, i.e they depend on the specific load algorithm.
Activated when the file has been changed.
Definition at line 77 of file LoadDialog.cpp.
References createDynamicLayout(), m_form, and m_populating.
Referenced by accept(), and initLayout().
|
private |
Create the widgets for a given property.
Return a layout containing suitable widgets for the given property.
prop | A pointer to the algorithm property |
propertyLayout | A layout where the widgets are to be placed |
parent | The parent widget |
Definition at line 314 of file LoadDialog.cpp.
References Mantid::Kernel::Property::allowedValues(), Mantid::Kernel::Property::documentation(), index, Mantid::Kernel::Property::name(), MantidQt::API::AlgorithmDialog::tie(), and Mantid::Kernel::Property::value().
Referenced by createDynamicLayout().
|
private |
Ignore requests to load until they are re-enabled.
Definition at line 127 of file LoadDialog.cpp.
References MantidQt::API::AlgorithmDialog::m_okButton.
Referenced by MantidQt::CustomDialogs::PreventLoadRequests::PreventLoadRequests().
|
private |
Accept requests to load until they are disabled.
Definition at line 125 of file LoadDialog.cpp.
References MantidQt::API::AlgorithmDialog::m_okButton.
Referenced by MantidQt::CustomDialogs::PreventLoadRequests::~PreventLoadRequests().
|
privateslot |
Connect/Disconnect the signal that updates the workspace name with a suggested value.
on | :: If true then a workspace name will be suggested |
Definition at line 117 of file LoadDialog.cpp.
References m_form, and suggestWSName().
Referenced by initLayout().
|
overrideprivateslot |
Override the help button clicked method.
Definition at line 86 of file LoadDialog.cpp.
References MantidQt::API::AlgorithmDialog::getAlgorithm(), and MantidQt::API::HelpWindow::showAlgorithm().
|
overrideprivatevirtual |
Initialize the layout.
Implements MantidQt::API::AlgorithmDialog.
Definition at line 159 of file LoadDialog.cpp.
References MantidQt::API::AlgorithmDialog::createDefaultButtonLayout(), createDynamicWidgets(), enableNameSuggestion(), MantidQt::API::AlgorithmDialog::getAlgorithm(), MantidQt::API::AlgorithmDialog::getOptionalMessage(), height, MantidQt::API::AlgorithmDialog::isMessageAvailable(), m_form, m_initialHeight, and tieStaticWidgets().
|
private |
Clears all of the widgets from the old layout.
Clear the old widgets for a new Loader type.
layout | :: The layout containing the child layouts/widgets |
Definition at line 221 of file LoadDialog.cpp.
References count.
Referenced by createDynamicLayout().
|
overrideprivatevirtual |
Save the input history.
Save the input after OK is clicked.
Reimplemented from MantidQt::API::AlgorithmDialog.
Definition at line 194 of file LoadDialog.cpp.
References Mantid::Kernel::SingletonHolder< T >::Instance(), m_currentFiles, and m_form.
|
privateslot |
Suggest a workspace name from the file.
Use property 'OutputWorkspace' as suggestion if present, otherwise derive a workspace name from the file (base) name.
Definition at line 97 of file LoadDialog.cpp.
References m_form.
Referenced by enableNameSuggestion().
|
private |
Tie static widgets to their properties.
readHistory | :: If true then the history will be re read. |
Definition at line 205 of file LoadDialog.cpp.
References m_form, and MantidQt::API::AlgorithmDialog::tie().
Referenced by createDynamicLayout(), and initLayout().
|
private |
The current file.
Definition at line 92 of file LoadDialog.h.
Referenced by accept(), createDynamicLayout(), and saveInput().
|
private |
Form.
Definition at line 90 of file LoadDialog.h.
Referenced by accept(), createDynamicLayout(), createDynamicWidgets(), enableNameSuggestion(), initLayout(), saveInput(), suggestWSName(), and tieStaticWidgets().
|
private |
The initial height.
Definition at line 94 of file LoadDialog.h.
Referenced by createDynamicLayout(), and initLayout().
|
private |
Flag to indicating if we are populating the dialog.
Definition at line 96 of file LoadDialog.h.
Referenced by accept(), and createDynamicWidgets().
|
private |
Definition at line 50 of file LoadDialog.h.