23 #include <QStandardItemModel>
30 const std::function<
void(
const QModelIndex& child)>& fun)
35 for (
int row = 0; row < model->rowCount(parent); ++row) {
36 for (
int col = 0; col < model->columnCount(parent); ++col) {
37 auto index = model->index(row, col, parent);
41 for (
int col = 0; col < model->columnCount(parent); ++col) {
42 auto index = model->index(row, col, parent);
55 result = {Qt::DisplayRole, Qt::EditRole};
57 #if QT_VERSION >= QT_VERSION_CHECK(5, 13, 0)
70 return item.
isEnabled() ? QVariant() : QColor(Qt::gray);
75 auto value = item.
data<QVariant>();
77 return value.value<
bool>() ? Qt::Checked : Qt::Unchecked;
83 auto value = item.
data<QVariant>();
99 if (index_list.empty())
102 std::vector<SessionItem*> result;
104 if (
auto model =
dynamic_cast<const ViewModelBase*
>(index_list.front().model()))
105 std::transform(index_list.begin(), index_list.end(), std::back_inserter(result),
106 [model](
auto index) { return model->itemFromIndex(index)->item(); });
118 std::set<SessionItem*> unique_parents;
121 unique_parents.insert(item->parent());
123 std::vector<SessionItem*> result;
124 std::copy(unique_parents.begin(), unique_parents.end(), std::back_inserter(result));
Property to carry text, color and identifier.
The main object representing an editable/displayable/serializable entity.
bool hasData(int role=ItemDataRole::DATA) const
Returns true if item has data on board with given role.
bool isEnabled() const
Returns true if this item has enabled flag set.
std::string toolTip() const
Returns item tooltip, if exists.
T data(int role=ItemDataRole::DATA) const
Returns data of given type T for given role.
Base class for all view models to show content of SessionModel in Qt views.
const int TOOLTIP
tooltip for item's data
const int DATA
main data role
const int APPEARANCE
appearance flag
const int DISPLAY
display name
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_MODEL_EXPORT std::vector< SessionItem * > UniqueItems(const std::vector< SessionItem * > &items)
Returns vector with duplicates and 'nullptr' filtered out.
MVVM_VIEWMODEL_EXPORT QVariant CheckStateRole(const SessionItem &item)
Returns check state role of given item.
MVVM_MODEL_EXPORT bool IsColorVariant(const Variant &variant)
Returns true in the case of QColor based variant.
MVVM_MODEL_EXPORT bool IsBoolVariant(const Variant &variant)
Returns true in the case of double value based variant.
MVVM_MODEL_EXPORT bool IsExtPropertyVariant(const Variant &variant)
Returns true in the case of ExternalProperty based variant.
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.
QVariant ToolTipRole(const SessionItem &item, int ncol=0)
Returns tooltip for given item.
QVariant ForegroundRole(const SessionItem &item)
Returns text color for given item.