27 #include "../../../se/Style.h" 28 #include "../../../se/Symbolizer.h" 29 #include "../../../se/Rule.h" 42 setAlternatingRowColors(
true);
43 setSelectionMode(QAbstractItemView::SingleSelection);
44 setHeaderHidden(
true);
45 setIconSize(QSize(16, 16));
74 root->setText(0, tr(
"Style"));
80 for(std::size_t i = 0; i < nRules; ++i)
83 const std::vector<te::se::Symbolizer*>& symbs = rule->
getSymbolizers();
87 QString ruleTitle = tr(
"Rule");
90 std::string ruleName = *rule->
getName();
91 ruleTitle.append(
" " + QString(ruleName.c_str()));
94 ruleItem->setText(0, ruleTitle);
95 ruleItem->setData(0, Qt::UserRole, (
int)i);
98 for(std::size_t j = 0; j < symbs.size(); ++j)
102 QString symbTypeName = tr(
"Unknown Symbol");
104 std::map<QString, QString>::iterator it =
m_symbolizerNames.find(symbs[j]->getType().c_str());
106 symbTypeName = it->second;
111 symbTypeName.append(
" " + count);
113 symbItem->setText(0, symbTypeName);
114 symbItem->setData(0, Qt::UserRole, static_cast<int>(j));
119 if (rule == currentRule)
122 currentSymbolItem = symbItem;
127 if (i == 0 && j == 0)
128 currentSymbolItem = symbItem;
133 if (currentSymbolItem)
135 setCurrentItem(currentSymbolItem);
146 if(selectedItem ==
nullptr)
149 if(selectedItem->type() ==
RULE)
153 return getRule(selectedItem->parent());
162 if(selectedItem !=
nullptr && selectedItem->type() ==
SYMBOLIZER)
172 if(currentItem ==
nullptr || currentItem->type() !=
SYMBOLIZER)
176 std::size_t index = currentItem->data(0, Qt::UserRole).toUInt();
185 swapSymbolizers(rule, static_cast<int>(index), static_cast<int>(index - 1));
194 if(currentItem ==
nullptr || currentItem->type() !=
SYMBOLIZER)
201 std::size_t index = currentItem->data(0, Qt::UserRole).toUInt();
207 swapSymbolizers(rule, static_cast<int>(index), static_cast<int>(index + 1));
214 setIconSize(QSize(size, size));
236 const std::vector<te::se::Symbolizer*>& symbs = rule->
getSymbolizers();
243 assert(item && item->type() ==
RULE);
246 std::size_t index = item->data(0, Qt::UserRole).toUInt();
247 assert((index >= 0) && (index < m_style->getRules().size()));
264 const std::vector<te::se::Symbolizer*>& symbs = rule->
getSymbolizers();
267 std::size_t index = item->data(0, Qt::UserRole).toUInt();
268 assert(index >= 0 && index < symbs.size());
275 QList<QTreeWidgetItem*> selected = selectedItems();
280 return selected.at(0);
The Style defines the styling that is to be applied to a geographic dataset (vector geometries or cov...
A Symbolizer describes how a feature is to appear on a map.
Static class used to generate preview of Symbology elements.
Rule * getRule(std::size_t i) const
const std::vector< Rule * > & getRules() const
const std::vector< Symbolizer * > & getSymbolizers() const
A Rule is used to attach property/scale conditions to and group the individual symbols used for rende...
virtual Symbolizer * clone() const =0
It creates a new copy of this object.
void setSymbolizer(std::size_t i, Symbolizer *s)
const Symbolizer * getSymbolizer(std::size_t i) const
const std::string * getName() const