27 #include "../../../../maptools/Grouping.h"
32 #include <QtGui/QMenu>
33 #include <QtGui/QWidget>
54 if(role == Qt::DecorationRole)
55 return QVariant(QIcon::fromTheme(
"grouping"));
57 if(role == Qt::DisplayRole)
59 QString text = tr(
"Classification 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.
A class that represents a grouping item of a grouping in a LayerTreeModel.
bool canFetchMore() const
GroupingItem(te::map::Grouping *grouping, QObject *parent=0)
Qt::ItemFlags flags() const
te::map::AbstractLayerPtr getLayer() const
const std::string getItemType() const
It returns the item type: "GROUPING_ITEM".
A class that represents a grouping of a layer in a LayerTreeModel.
QVariant data(int column, int role) const
bool setData(int column, const QVariant &value, int role=Qt::EditRole)
The class that represents an item in a LayerTreeModel.
boost::intrusive_ptr< AbstractLayer > AbstractLayerPtr
QMenu * getMenu(QWidget *parent=0) const
void setCheckable(bool checkable)