BornAgain  1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
viewmodelutils.h
Go to the documentation of this file.
1 // ************************************************************************************************
2 //
3 // qt-mvvm: Model-view-view-model framework for large GUI applications
4 //
5 //! @file mvvm/viewmodel/mvvm/viewmodel/viewmodelutils.h
6 //! @brief Defines class CLASS?
7 //!
8 //! @homepage http://www.bornagainproject.org
9 //! @license GNU General Public License v3 or higher (see COPYING)
10 //! @copyright Forschungszentrum Jülich GmbH 2020
11 //! @authors Gennady Pospelov et al, Scientific Computing Group at MLZ (see CITATION, AUTHORS)
12 //
13 // ************************************************************************************************
14 
15 #ifndef BORNAGAIN_MVVM_VIEWMODEL_MVVM_VIEWMODEL_VIEWMODELUTILS_H
16 #define BORNAGAIN_MVVM_VIEWMODEL_MVVM_VIEWMODEL_VIEWMODELUTILS_H
17 
18 #include "mvvm/viewmodel_export.h"
19 #include <QModelIndex>
20 #include <QModelIndexList>
21 #include <QVector>
22 #include <functional>
23 #include <vector>
24 
25 class QStandardItemModel;
26 class QStandardItem;
27 class QVariant;
28 
29 namespace ModelView {
30 
31 class ViewItem;
32 class SessionItem;
33 
34 namespace Utils {
35 
36 //! Iterates through QAbstractItem model
37 MVVM_VIEWMODEL_EXPORT void iterate_model(const QAbstractItemModel* model, const QModelIndex& parent,
38  const std::function<void(const QModelIndex& child)>& fun);
39 
40 //! Returns vector of Qt roles corresponding to given ItemDataRole.
41 MVVM_VIEWMODEL_EXPORT QVector<int> ItemRoleToQtRole(int role);
42 
43 //! Returns text color for given item.
44 MVVM_VIEWMODEL_EXPORT QVariant TextColorRole(const SessionItem& item);
45 
46 //! Returns check state role of given item.
47 MVVM_VIEWMODEL_EXPORT QVariant CheckStateRole(const SessionItem& item);
48 
49 //! Returns decoration role for given item.
50 MVVM_VIEWMODEL_EXPORT QVariant DecorationRole(const SessionItem& item);
51 
52 //! Returns tooltip role for given item.
53 MVVM_VIEWMODEL_EXPORT QVariant ToolTipRole(const SessionItem& item);
54 
55 //! Returns vector of underlying SessionItem's for given index list.
56 MVVM_VIEWMODEL_EXPORT std::vector<SessionItem*> ItemsFromIndex(const QModelIndexList& index_list);
57 
58 //! Returns vector of underlying SessionItem's for given index list. Removes repetitions
59 MVVM_VIEWMODEL_EXPORT std::vector<SessionItem*>
60 UniqueItemsFromIndex(const QModelIndexList& index_list);
61 
62 //! Returns vector of parent items from given index list.
63 //! Finds all SessionItems corresponding to given index list and collect their parents.
64 //! Function is usefull in the context of table-like views when we want to find compound items
65 //! (i.e. Layers) from table cells containing LayerItem's properties (i.e. thickness).
66 MVVM_VIEWMODEL_EXPORT std::vector<SessionItem*>
67 ParentItemsFromIndex(const QModelIndexList& index_list);
68 
69 } // namespace Utils
70 
71 } // namespace ModelView
72 
73 #endif // BORNAGAIN_MVVM_VIEWMODEL_MVVM_VIEWMODEL_VIEWMODELUTILS_H
MVVM_VIEWMODEL_EXPORT QVariant TextColorRole(const SessionItem &item)
Returns text color for given item.
MVVM_VIEWMODEL_EXPORT QVariant DecorationRole(const SessionItem &item)
Returns decoration role for given item.
MVVM_VIEWMODEL_EXPORT QVariant ToolTipRole(const SessionItem &item)
Returns tooltip role for given item.
MVVM_VIEWMODEL_EXPORT QVector< int > ItemRoleToQtRole(int role)
Returns vector of Qt roles corresponding to given ItemDataRole.
MVVM_VIEWMODEL_EXPORT std::vector< SessionItem * > ItemsFromIndex(const QModelIndexList &index_list)
Returns vector of underlying SessionItem's for given index list.
MVVM_VIEWMODEL_EXPORT void iterate_model(const QAbstractItemModel *model, const QModelIndex &parent, const std::function< void(const QModelIndex &child)> &fun)
Iterates through QAbstractItem model.
MVVM_VIEWMODEL_EXPORT QVariant CheckStateRole(const SessionItem &item)
Returns check state role of given item.
MVVM_VIEWMODEL_EXPORT std::vector< SessionItem * > UniqueItemsFromIndex(const QModelIndexList &index_list)
Returns vector of underlying SessionItem's for given index list. Removes repetitions.
MVVM_VIEWMODEL_EXPORT std::vector< SessionItem * > ParentItemsFromIndex(const QModelIndexList &index_list)
Returns vector of parent items from given index list.
materialitems.h Collection of materials to populate MaterialModel.