BornAgain  1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
gui2::SettingsView Class Reference

Main settings view, belongs directly to MainWindow. More...

Inheritance diagram for gui2::SettingsView:
[legend]
Collaboration diagram for gui2::SettingsView:
[legend]

Public Member Functions

 SettingsView (ApplicationModels *models, QWidget *parent=nullptr)
 

Private Member Functions

void init_list_selector ()
 
void init_model_settings ()
 Initialize tabs with model content. More...
 
void init_other_settings ()
 

Private Attributes

QListWidget * m_listWidget
 selector for specific settings window on the left More...
 
ApplicationModelsm_models {nullptr}
 
QStackedWidget * m_stackedWidget {nullptr}
 stack with settings widgets More...
 
QTabWidget * m_tabWidget {nullptr}
 application model settings More...
 

Detailed Description

Main settings view, belongs directly to MainWindow.

For the moment contains QTabWidget with trees representating all application models. In the future, might be extended to have any type of settings.

Definition at line 33 of file settingsview.h.

Constructor & Destructor Documentation

◆ SettingsView()

gui2::SettingsView::SettingsView ( ApplicationModels models,
QWidget *  parent = nullptr 
)

Definition at line 29 of file settingsview.cpp.

30  : QWidget(parent)
31  , m_listWidget(new QListWidget)
32  , m_stackedWidget(new QStackedWidget)
33  , m_tabWidget(new QTabWidget)
34  , m_models(models)
35 {
39 
40  auto layout = new QHBoxLayout(this);
41  layout->addWidget(m_listWidget);
42  layout->addSpacing(ModelView::Utils::WidthOfLetterM() / 2);
43  layout->addWidget(m_stackedWidget);
44 
45  m_stackedWidget->setCurrentIndex(0);
46 }
QListWidget * m_listWidget
selector for specific settings window on the left
Definition: settingsview.h:44
ApplicationModels * m_models
Definition: settingsview.h:48
QTabWidget * m_tabWidget
application model settings
Definition: settingsview.h:46
QStackedWidget * m_stackedWidget
stack with settings widgets
Definition: settingsview.h:45
void init_model_settings()
Initialize tabs with model content.
MVVM_VIEW_EXPORT int WidthOfLetterM()
Returns width of the letter 'M' deduced from current font metrics.

References init_list_selector(), init_model_settings(), init_other_settings(), m_listWidget, m_stackedWidget, and ModelView::Utils::WidthOfLetterM().

Here is the call graph for this function:

Member Function Documentation

◆ init_list_selector()

void gui2::SettingsView::init_list_selector ( )
private

Definition at line 61 of file settingsview.cpp.

62 {
63  const int width = ModelView::Utils::WidthOfLetterM() * 10;
64  m_listWidget->setFixedWidth(width);
65  m_listWidget->setIconSize(
67 
68  auto item = new QListWidgetItem(QIcon(":/icons/card-bulleted-outline.svg"), "All models");
69  m_listWidget->addItem(item);
70 
71  item = new QListWidgetItem(QIcon(":/icons/cog-outline.svg"), "Miscellaneous");
72  m_listWidget->addItem(item);
73 
74  connect(m_listWidget, &QListWidget::currentRowChanged,
75  [this](int row) { m_stackedWidget->setCurrentIndex(row); });
76 }

References m_listWidget, m_stackedWidget, and ModelView::Utils::WidthOfLetterM().

Referenced by SettingsView().

Here is the call graph for this function:

◆ init_model_settings()

void gui2::SettingsView::init_model_settings ( )
private

Initialize tabs with model content.

Each model will be represented by a single tree (with all items shown) in a tab.

Definition at line 51 of file settingsview.cpp.

52 {
53  for (auto model : m_models->application_models()) {
54  auto view = new ModelView::AllItemsTreeView(model);
55  view->treeView()->setAlternatingRowColors(true);
56  m_tabWidget->addTab(view, QString::fromStdString(model->modelType()));
57  }
58  m_stackedWidget->addWidget(m_tabWidget);
59 }
Widget holding standard QTreeView and intended for displaying all items of SessionModel.
std::vector< ModelView::SessionModel * > application_models() const
Return vector of all models of our application.

References gui2::ApplicationModels::application_models(), m_models, m_stackedWidget, and m_tabWidget.

Referenced by SettingsView().

Here is the call graph for this function:

◆ init_other_settings()

void gui2::SettingsView::init_other_settings ( )
private

Definition at line 78 of file settingsview.cpp.

79 {
80  m_stackedWidget->addWidget(new QWidget);
81 }

References m_stackedWidget.

Referenced by SettingsView().

Member Data Documentation

◆ m_listWidget

QListWidget* gui2::SettingsView::m_listWidget
private

selector for specific settings window on the left

Definition at line 44 of file settingsview.h.

Referenced by SettingsView(), and init_list_selector().

◆ m_models

ApplicationModels* gui2::SettingsView::m_models {nullptr}
private

Definition at line 48 of file settingsview.h.

Referenced by init_model_settings().

◆ m_stackedWidget

QStackedWidget* gui2::SettingsView::m_stackedWidget {nullptr}
private

stack with settings widgets

Definition at line 45 of file settingsview.h.

Referenced by SettingsView(), init_list_selector(), init_model_settings(), and init_other_settings().

◆ m_tabWidget

QTabWidget* gui2::SettingsView::m_tabWidget {nullptr}
private

application model settings

Definition at line 46 of file settingsview.h.

Referenced by init_model_settings().


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