27 #include "../../../../maptools/Grouping.h"
54 if(role == Qt::DecorationRole)
55 return QVariant(QIcon::fromTheme(
"grouping"));
57 if(role == Qt::DisplayRole)
59 QString text = tr(
"Grouped by") +
" " + m_grouping->getPropertyName().c_str();
60 return QVariant(text);
63 if(role == Qt::CheckStateRole && m_isCheckable)
64 return QVariant(m_isChecked ? Qt::Checked : Qt::Unchecked);
76 return !m_grouping->getGroupingItems().empty() && children().isEmpty();
81 return (m_isCheckable ? (Qt::ItemIsEnabled | Qt::ItemIsUserCheckable) : Qt::ItemIsEnabled);
86 if(!children().isEmpty())
89 const std::vector<te::map::GroupingItem*> items = m_grouping->getGroupingItems();
90 for(std::size_t i = 0; i < items.size(); ++i)
96 return !m_grouping->getGroupingItems().empty();
101 if(role == Qt::CheckStateRole && m_isCheckable)
104 Qt::CheckState checkState =
static_cast<Qt::CheckState
>(value.toInt(&ok));
109 m_isChecked = (checkState == Qt::Checked ?
true :
false);
111 m_grouping->setVisibility(m_isChecked);
126 return "GROUPING_ITEM";
131 m_isCheckable = checkable;
136 return m_isCheckable;
This class contains the parameters needed for grouping the values of a Property.
boost::intrusive_ptr< AbstractLayer > AbstractLayerPtr
A class that represents a grouping item of a grouping in a LayerTreeModel.