27 #include "../../../common/STLUtils.h"
28 #include "../../../se/Symbolizer.h"
36 #include "ui_SymbolEditorWidgetForm.h"
39 #include <QtGui/QStackedWidget>
46 m_ui(new Ui::SymbolEditorWidgetForm),
56 QGridLayout* previewLayout =
new QGridLayout(
m_ui->m_previewGroupBox);
61 m_symbolTable->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding);
64 QGridLayout* symbolTableLayout =
new QGridLayout(
m_ui->m_symbolTableFrame);
65 symbolTableLayout->setContentsMargins(0, 0, 0, 0);
72 QGridLayout* stackedLayout =
new QGridLayout(
m_ui->m_propertiesGroupBox);
93 createNewSymbolizer();
96 m_ui->m_addToolButton->setIcon(QIcon::fromTheme(
"list-add"));
97 m_ui->m_removeToolButton->setIcon(QIcon::fromTheme(
"list-remove"));
98 m_ui->m_upToolButton->setIcon(QIcon::fromTheme(
"go-up"));
99 m_ui->m_downToolButton->setIcon(QIcon::fromTheme(
"go-down"));
104 m_preview->updatePreview(m_symbol);
105 m_symbolTable->updatePreview(m_symbol);
110 QWidget* symbolizerWidget = 0;
117 symbolizerWidget = pts;
125 symbolizerWidget = ls;
133 symbolizerWidget = ps;
138 m_symbolizersStackedWidget->addWidget(symbolizerWidget);
140 connect(symbolizerWidget, SIGNAL(symbolizerChanged()), SLOT(onSymbolizerChanged()));
142 m_symbolizersStackedWidget->setCurrentIndex(m_symbolizersStackedWidget->count() - 1);
148 m_symbolTable->selectSymbolizer(m_symbol->getSymbolizersCount() - 1);
154 m_symbol->swapSymbolizers(indexFirst, indexSecond);
157 QWidget* firstWidget = m_symbolizersStackedWidget->widget(indexFirst);
158 QWidget* secondWidget = m_symbolizersStackedWidget->widget(indexSecond);
159 m_symbolizersStackedWidget->insertWidget(indexFirst, secondWidget);
160 m_symbolizersStackedWidget->insertWidget(indexSecond, firstWidget);
165 createNewSymbolizer();
170 if(m_symbol->getSymbolizersCount() == 1)
173 QWidget* w = m_symbolizersStackedWidget->currentWidget();
175 int index = m_symbolizersStackedWidget->indexOf(w);
176 assert(index >= 0 && index < static_cast<int>(m_symbol->getSymbolizersCount()));
179 m_symbol->removeSymbolizer(index);
182 m_symbolizersStackedWidget->removeWidget(w);
188 m_symbolTable->selectSymbolizer(index - 1);
193 int index = m_symbolizersStackedWidget->currentIndex();
194 assert(index >= 0 && index < static_cast<int>(m_symbol->getSymbolizersCount()));
200 swapSymbolizers(index, index - 1);
205 m_symbolTable->selectSymbolizer(index - 1);
210 int index = m_symbolizersStackedWidget->currentIndex();
211 assert(index >= 0 && index < static_cast<int>(m_symbol->getSymbolizersCount()));
213 if(index == m_symbol->getSymbolizersCount() - 1)
217 swapSymbolizers(index, index + 1);
222 m_symbolTable->selectSymbolizer(index + 1);
238 int index = m_symbolizersStackedWidget->currentIndex();
239 assert(index >= 0 && index < static_cast<int>(m_symbol->getSymbolizersCount()));
241 QWidget* w = m_symbolizersStackedWidget->currentWidget();
245 m_symbol->setSymbolizer(index, static_cast<PointSymbolizerWidget*>(w)->getSymbolizer());
249 m_symbol->setSymbolizer(index, static_cast<LineSymbolizerWidget*>(w)->getSymbolizer());
253 m_symbol->setSymbolizer(index, static_cast<PolygonSymbolizerWidget*>(w)->getSymbolizer());
te::se::Symbolizer * getSymbolizer() const
Gets the configured point symbolizer element.
~SymbolEditorWidget()
Destructor.
void initialize()
Internal method to initialize the widget.
Enumeration that indicates the symbol type.
void onAddToolButtonClicked()
A widget used to build a polygon symbolizer element.
A widget used to preview symbol elements.
A widget used to preview a symbol as separated layers.
This class represents a symbol. TODO: More description!
void swapSymbolizers(const int &indexFirst, const int &indexSecond)
Swap two internal symbolizers.
void updateUi()
Updates the widget form based on internal symbolizers elements.
A widget used to preview a symbol as separated layers.
A widget used to build a line symbolizer element.
A widget used to build a point symbolizer element.
QStackedWidget * m_symbolizersStackedWidget
Set of symbolizers widgets.
SymbolEditorWidget(const SymbolType &type, QWidget *parent=0)
Constructs a symbol editor, which is a child of parent, with widget flags set to f.
SymbolPreviewWidget * m_preview
Preview Widget used to visualize the symbol.
A widget used to build a polygon symbolizer element.
void onUpToolButtonClicked()
A widget used to build a point symbolizer element.
This class represents a symbol.
void onDownToolButtonClicked()
te::se::Symbolizer * getSymbolizer() const
Gets the configured line symbolizer element.
void createNewSymbolizer()
Creates a new symbolizer element.
SymbolTableWidget * m_symbolTable
Table Widget used to visualize the symbol as separated visual layers.
A widget used to preview symbol elements.
void onSymbolizerChanged()
void onRemoveToolButtonClicked()
te::se::Symbolizer * getSymbolizer() const
Gets the configured polygon symbolizer element.
A widget used to build a line symbolizer element.
A widget used to edit symbols.
std::auto_ptr< Ui::SymbolEditorWidgetForm > m_ui
Widget form.