Skip to content
Snippets Groups Projects
ParameterTuningWidget.h 2.45 KiB
Newer Older
  • Learn to ignore specific revisions
  • //  ************************************************************************************************
    
    Pospelov, Gennady's avatar
    Pospelov, Gennady committed
    //
    
    //  BornAgain: simulate and fit reflection and scattering
    
    Pospelov, Gennady's avatar
    Pospelov, Gennady committed
    //
    
    t.knopff's avatar
    t.knopff committed
    //! @file      GUI/Views/JobWidgets/ParameterTuningWidget.h
    
    //! @brief     Defines class ParameterTuningWidget
    
    Pospelov, Gennady's avatar
    Pospelov, Gennady committed
    //!
    
    //! @homepage  http://www.bornagainproject.org
    
    Pospelov, Gennady's avatar
    Pospelov, Gennady committed
    //! @license   GNU General Public License v3 or higher (see COPYING)
    
    //! @copyright Forschungszentrum Jülich GmbH 2018
    //! @authors   Scientific Computing Group at MLZ (see CITATION, AUTHORS)
    
    Pospelov, Gennady's avatar
    Pospelov, Gennady committed
    //
    
    //  ************************************************************************************************
    
    Pospelov, Gennady's avatar
    Pospelov, Gennady committed
    
    
    t.knopff's avatar
    t.knopff committed
    #ifndef BORNAGAIN_GUI_VIEWS_JOBWIDGETS_PARAMETERTUNINGWIDGET_H
    #define BORNAGAIN_GUI_VIEWS_JOBWIDGETS_PARAMETERTUNINGWIDGET_H
    
    t.knopff's avatar
    t.knopff committed
    #include "GUI/Views/CommonWidgets/SessionItemWidget.h"
    
    class JobRealTimeToolBar;
    
    class JobModel;
    
    Pospelov, Gennady's avatar
    Pospelov, Gennady committed
    class JobItem;
    
    class SessionItem;
    class QItemSelectionModel;
    
    class ParameterTuningDelegate;
    
    class ParameterTuningModel;
    class SliderSettingsWidget;
    
    class QTreeView;
    
    //! Main widget for real time parameter tuning.
    //! Contains a tree for parameter tuning and the model to provide drag-and-drop in FitActivityPanel.
    
    
    class ParameterTuningWidget : public SessionItemWidget {
    
        explicit ParameterTuningWidget(QWidget* parent = 0);
    
        QItemSelectionModel* selectionModel();
    
    
        QVector<ParameterItem*> getSelectedParameters();
    
        void itemContextMenuRequest(const QPoint& point);
    
        void onCurrentLinkChanged(SessionItem* item);
    
        void onSliderValueChanged(double value);
    
        void restoreModelsOfCurrentJobItem();
    
        void makeSelected(ParameterItem* item);
    
        void contextMenuEvent(QContextMenuEvent*);
    
        void onPropertyChanged(const QString& property_name);
    
        void updateParameterModel();
    
        void onCustomContextMenuRequested(const QPoint& point);
    
        void updateDragAndDropSettings();
        void setTuningDelegateEnabled(bool enabled);
    
        void updateJobStatus();
    
        JobRealTimeToolBar* m_toolBar;
        JobModel* m_jobModel;
        ParameterTuningModel* m_parameterTuningModel;
        SliderSettingsWidget* m_sliderSettingsWidget;
        QTreeView* m_treeView;
        ParameterTuningDelegate* m_delegate;
        WarningSign* m_warningSign;
    
    t.knopff's avatar
    t.knopff committed
    #endif // BORNAGAIN_GUI_VIEWS_JOBWIDGETS_PARAMETERTUNINGWIDGET_H