Mantid
Loading...
Searching...
No Matches
Public Member Functions | Private Slots | Private Member Functions | Private Attributes | List of all members
MantidQt::CustomDialogs::LoadDialog Class Referencefinal

#include <LoadDialog.h>

Inheritance diagram for MantidQt::CustomDialogs::LoadDialog:
MantidQt::API::AlgorithmDialog Mantid::API::AlgorithmObserver

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::PropertygetAlgorithmProperty (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...
 

Detailed Description

Definition at line 48 of file LoadDialog.h.

Constructor & Destructor Documentation

◆ LoadDialog()

MantidQt::CustomDialogs::LoadDialog::LoadDialog ( QWidget *  parent = nullptr)

Default constructor.

Definition at line 64 of file LoadDialog.cpp.

Member Function Documentation

◆ accept

void MantidQt::CustomDialogs::LoadDialog::accept ( )
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.

◆ createDynamicLayout()

void MantidQt::CustomDialogs::LoadDialog::createDynamicLayout ( )
private

◆ createDynamicWidgets

void MantidQt::CustomDialogs::LoadDialog::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().

◆ createWidgetsForProperty()

int MantidQt::CustomDialogs::LoadDialog::createWidgetsForProperty ( const Mantid::Kernel::Property prop,
QVBoxLayout *  propertyLayout,
QWidget *  parent 
)
private

Create the widgets for a given property.

Return a layout containing suitable widgets for the given property.

Parameters
propA pointer to the algorithm property
propertyLayoutA layout where the widgets are to be placed
parentThe 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().

◆ disableLoadRequests()

void MantidQt::CustomDialogs::LoadDialog::disableLoadRequests ( )
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().

◆ enableLoadRequests()

void MantidQt::CustomDialogs::LoadDialog::enableLoadRequests ( )
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().

◆ enableNameSuggestion

void MantidQt::CustomDialogs::LoadDialog::enableNameSuggestion ( const bool  on = false)
privateslot

Connect/Disconnect the signal that updates the workspace name with a suggested value.

Parameters
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().

◆ helpClicked

void MantidQt::CustomDialogs::LoadDialog::helpClicked ( )
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().

◆ initLayout()

void MantidQt::CustomDialogs::LoadDialog::initLayout ( )
overrideprivatevirtual

◆ removeOldInputWidgets()

void MantidQt::CustomDialogs::LoadDialog::removeOldInputWidgets ( QVBoxLayout *  layout)
private

Clears all of the widgets from the old layout.

Clear the old widgets for a new Loader type.

Parameters
layout:: The layout containing the child layouts/widgets

Definition at line 221 of file LoadDialog.cpp.

References count.

Referenced by createDynamicLayout().

◆ saveInput()

void MantidQt::CustomDialogs::LoadDialog::saveInput ( )
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.

◆ suggestWSName

void MantidQt::CustomDialogs::LoadDialog::suggestWSName ( )
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().

◆ tieStaticWidgets()

void MantidQt::CustomDialogs::LoadDialog::tieStaticWidgets ( const bool  readHistory)
private

Tie static widgets to their properties.

Parameters
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().

Member Data Documentation

◆ m_currentFiles

QString MantidQt::CustomDialogs::LoadDialog::m_currentFiles
private

The current file.

Definition at line 92 of file LoadDialog.h.

Referenced by accept(), createDynamicLayout(), and saveInput().

◆ m_form

Ui::LoadDialog MantidQt::CustomDialogs::LoadDialog::m_form
private

◆ m_initialHeight

int MantidQt::CustomDialogs::LoadDialog::m_initialHeight
private

The initial height.

Definition at line 94 of file LoadDialog.h.

Referenced by createDynamicLayout(), and initLayout().

◆ m_populating

bool MantidQt::CustomDialogs::LoadDialog::m_populating
private

Flag to indicating if we are populating the dialog.

Definition at line 96 of file LoadDialog.h.

Referenced by accept(), and createDynamicWidgets().

◆ PreventLoadRequests

friend MantidQt::CustomDialogs::LoadDialog::PreventLoadRequests
private

Definition at line 50 of file LoadDialog.h.


The documentation for this class was generated from the following files: