37 #include "../../../../geometry/Envelope.h" 
   39 #include "LayoutConfig.h"  
   46 #include <QToolButton> 
   49 #include <QVBoxLayout> 
   54 #include <QPushButton> 
   57   QDockWidget(
"", 0, 0),
 
   59   m_optionMapDefault(
"map_default"),
 
   60   m_optionMapGrid(
"map_grid"),
 
   61   m_optionLegendDefault(
"legend_default"),
 
   62   m_optionRectangle(
"geometry_rectangle"),
 
   63   m_optionViewPan(
"view_pan"),
 
   64   m_optionViewZoomIn(
"view_zoom_in"),
 
   65   m_optionViewZoomOut(
"view_zoom_out"),
 
   66   m_optionScale(
"scale_object"),
 
   67   m_optionMapPan(
"map_pan"),
 
   68   m_optionMapZoomIn(
"map_zoom_in"),
 
   69   m_optionMapZoomOut(
"map_zoom_out"),
 
   70   m_optionGroup(
"items_group"),
 
   71   m_optionUngroup(
"items_ungroup"),
 
   72   m_optionLineIntersectionMouse(
"items_intersection_mouse"),
 
   79   setWindowTitle(
"Layout - Toolbar");
 
   80   setAllowedAreas(Qt::TopDockWidgetArea | Qt::BottomDockWidgetArea);
 
   81   setMinimumSize(200, 10);
 
  109   QPointF posF = pos();
 
  110   qreal valuex = posF.x();
 
  111   qreal valuey = posF.y();
 
  114   coordinate.
x = valuex;
 
  115   coordinate.
y = valuey;
 
  122   m_toolbar = 
new QToolBar;
 
  124   createArrowCursorButton();
 
  125   m_toolbar->addSeparator();
 
  127   createLineIntersectionToolButton();
 
  128   m_toolbar->addSeparator();
 
  130   createViewAreaToolButton();
 
  131   m_toolbar->addSeparator();
 
  133   createMapToolsToolButton();
 
  134   m_toolbar->addSeparator();
 
  136   createMapToolButton();
 
  137   m_toolbar->addSeparator();
 
  139   createGeometryToolButton();
 
  140   m_toolbar->addSeparator();
 
  143   m_toolbar->addSeparator();
 
  148   QMenu* menu = 
new QMenu();
 
  149   connect(menu, SIGNAL(triggered(QAction*)), 
this, SLOT(onMapTriggered(QAction*)));
 
  151   QAction* actionDefaultMenu = createAction(
"Default Map Object", m_optionMapDefault, 
"layout-default-map");
 
  152   menu->addAction(actionDefaultMenu);
 
  154   QAction* actionMapGrid = createAction(
"Map Grid", m_optionMapGrid, 
"layout-map-grid");
 
  155   menu->addAction(actionMapGrid);
 
  157   QAction* actionLegend = createAction(
"Default Legend", m_optionLegendDefault, 
"layout-default-legend");
 
  158   menu->addAction(actionLegend);
 
  160   QAction* actionScale = createAction(
"Scale Object", m_optionScale, 
"layout-scale");
 
  161   menu->addAction(actionScale);
 
  163   QToolButton *btnMap = createToolButton(
"Map", 
"Map Objects", 
"layout-default-map");
 
  164   btnMap->setMenu(menu);
 
  165   btnMap->setPopupMode(QToolButton::InstantPopup);
 
  167   m_toolbar->addWidget(btnMap);
 
  172   QMenu* menu = 
new QMenu();
 
  173   connect(menu, SIGNAL(triggered(QAction*)), 
this, SLOT(onMapToolsTriggered(QAction*)));
 
  175   QAction* actionPan = createAction(
"Pan Tool", m_optionMapPan, 
"layout-map-pan");
 
  176   menu->addAction(actionPan);
 
  178   QAction* actionZoomIn = createAction(
"Zoom In", m_optionMapZoomIn, 
"layout-map-zoom-in");
 
  179   menu->addAction(actionZoomIn);
 
  181   QAction* actionZoomOut = createAction(
"Zoom Out", m_optionMapZoomOut, 
"layout-map-zoom-out");
 
  182   menu->addAction(actionZoomOut);
 
  184   QToolButton *btnMapTools = createToolButton(
"Map Tools", 
"Map Tools", 
"layout-map-pan");
 
  185   btnMapTools->setMenu(menu);
 
  186   btnMapTools->setPopupMode(QToolButton::InstantPopup);
 
  188   m_toolbar->addWidget(btnMapTools);
 
  193   QMenu* menu = 
new QMenu();
 
  194   connect(menu, SIGNAL(triggered(QAction*)), 
this, SLOT(onGeometryTriggered(QAction*)));
 
  196   QAction* actionRectagle = createAction(
"Rectangle Object", m_optionRectangle, 
"layout-square");
 
  197   menu->addAction(actionRectagle);
 
  199   QToolButton *btnGeometry = createToolButton(
"Geometry Tools", 
"Geometries Objects", 
"layout-square");
 
  200   btnGeometry->setMenu(menu);
 
  201   btnGeometry->setPopupMode(QToolButton::InstantPopup);
 
  203   m_toolbar->addWidget(btnGeometry);
 
  208   QMenu* menu = 
new QMenu();
 
  209   connect(menu, SIGNAL(triggered(QAction*)), 
this, SLOT(onViewAreaTriggered(QAction*)));
 
  211   QAction* actionPan = createAction(
"Pan Tool", m_optionViewPan, 
"layout-paper-pan");
 
  212   menu->addAction(actionPan);
 
  214   QAction* actionZoomIn = createAction(
"Zoom In", m_optionViewZoomIn, 
"layout-paper-zoom-in");
 
  215   menu->addAction(actionZoomIn);
 
  217   QAction* actionZoomOut = createAction(
"Zoom Out", m_optionRectangle, 
"layout-paper-zoom-out");
 
  218   menu->addAction(actionZoomOut);
 
  220   QToolButton *btnViewArea = createToolButton(
"Paper Tools", 
"Paper Tools", 
"layout-paper-pan");
 
  221   btnViewArea->setMenu(menu);
 
  222   btnViewArea->setPopupMode(QToolButton::InstantPopup);
 
  224   m_toolbar->addWidget(btnViewArea);
 
  229   QToolButton *btnArrowCursor = createToolButton(
"Arrow Cursor", 
"Arrow Cursor", 
"layout-default-cursor");
 
  230   btnArrowCursor->setCheckable(
false);
 
  231   connect(btnArrowCursor, SIGNAL(clicked(
bool)), 
this, SLOT(onArrowCursorClicked(
bool)));
 
  233   m_toolbar->addWidget(btnArrowCursor);
 
  238   QMenu* menu = 
new QMenu();
 
  239   connect(menu, SIGNAL(triggered(QAction*)), 
this, SLOT(onItemToolsTriggered(QAction*)));
 
  241   QAction* actionGroup = createAction(
"Group", m_optionGroup, 
"layout-group");
 
  242   menu->addAction(actionGroup);
 
  244   QAction* actionUngroup = createAction(
"Ungroup", m_optionUngroup, 
"layout-ungroup");
 
  245   menu->addAction(actionUngroup);
 
  247   QToolButton *btnTools = createToolButton(
"Item Tools", 
"Item Tools", 
"layout-group");
 
  248   btnTools->setMenu(menu);
 
  249   btnTools->setPopupMode(QToolButton::InstantPopup);
 
  251   m_toolbar->addWidget(btnTools);
 
  256   QToolButton *btnLineMouse = createToolButton(
"Draw Line Intersection Mouse", 
"Draw Line Intersection Mouse", 
"layout-draw-line-mouse-intersection");
 
  257   connect(btnLineMouse, SIGNAL(toggled(
bool)), 
this, SLOT(onLineIntersectionMouse(
bool)));
 
  259   m_toolbar->addWidget(btnLineMouse);
 
  264   if(action->objectName().compare(m_optionMapDefault.c_str()) == 0)
 
  268   if(action->objectName().compare(m_optionMapGrid.c_str()) == 0)
 
  272   if(action->objectName().compare(m_optionLegendDefault.c_str()) == 0)
 
  276   if(action->objectName().compare(m_optionScale.c_str()) == 0)
 
  284   if(action->objectName().compare(m_optionMapPan.c_str()) == 0)
 
  288   if(action->objectName().compare(m_optionMapZoomIn.c_str()) == 0)
 
  292   if(action->objectName().compare(m_optionMapZoomOut.c_str()) == 0)
 
  300   if(action->objectName().compare(m_optionRectangle.c_str()) == 0)
 
  308   if(action->objectName().compare(m_optionViewPan.c_str()) == 0)
 
  312   if(action->objectName().compare(m_optionViewZoomIn.c_str()) == 0)
 
  316   if(action->objectName().compare(m_optionViewZoomOut.c_str()) == 0)
 
  329   if(action->objectName().compare(m_optionGroup.c_str()) == 0)
 
  333   if(action->objectName().compare(m_optionUngroup.c_str()) == 0)
 
  359   emit changeContext(result);
 
  367   if(mode != layoutMode)
 
  376   emit changeContext(result);
 
  381   QToolButton *btn = 
new QToolButton;
 
  382   btn->setText(text.c_str());
 
  383   btn->setGeometry(0,0,10,10);
 
  384   btn->setCheckable(
true);
 
  385   btn->setToolTip(tooltip.c_str());
 
  387   std::string icon_path = LAYOUT_IMAGES_PNG
"/" + icon;
 
  388   btn->setIcon(QIcon::fromTheme(icon_path.c_str()));
 
  395   QPushButton *btn = 
new QPushButton;
 
  396   btn->setText(text.c_str());
 
  397   btn->setGeometry(0,0,10,10);
 
  398   btn->setCheckable(
true);
 
  399   btn->setToolTip(tooltip.c_str());
 
  401   std::string icon_path = LAYOUT_IMAGES_PNG
"/" + icon;
 
  402   btn->setIcon(QIcon::fromTheme(icon_path.c_str()));
 
  409   QAction *actionMenu = 
new QAction(text.c_str(), 
this);
 
  410   actionMenu->setObjectName(objName.c_str());
 
  412   std::string icon_path = LAYOUT_IMAGES_PNG
"/" + icon;
 
  413   actionMenu->setIcon(QIcon::fromTheme(icon_path.c_str()));
 
  414   actionMenu->setToolTip(tooltip.c_str());
 
void setLineIntersectionMouseMode(LayoutMode mode)
 
virtual te::gm::Envelope getBox()=0
 
void setMode(LayoutMode mode)
 
An utility struct for representing 2D coordinates. 
 
LayoutMode
Enum LayoutMode. This is the enumeration of the components types. 
 
An Envelope defines a 2D rectangular region. 
 
static Context * getInstance()
This function is called to create an instance of the class. 
 
LayoutMode getLineIntersectionMouseMode()