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.