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()