30 #include "../../core/pattern/singleton/Context.h"
31 #include "../../core/AbstractScene.h"
32 #include "../core/Scene.h"
33 #include "../../core/pattern/mvc/OutsideModelObservable.h"
34 #include "../../core/pattern/mvc/ItemObserver.h"
35 #include "../../core/pattern/mvc/OutsideObserver.h"
36 #include "../../core/pattern/mvc/OutsideController.h"
37 #include "../../../geometry/Envelope.h"
38 #include "../../core/enum/Enums.h"
45 #include <QToolButton>
48 #include <QVBoxLayout>
53 #include <QPushButton>
60 m_actionMapDefault(
"map_default"),
61 m_actionLegendDefault(
"legend_default"),
62 m_actionScale(
"scale_object"),
63 m_actionMapZoomIn(
"map_zoom_in"),
64 m_actionMapZoomOut(
"map_zoom_out"),
65 m_actionMapPan(
"map_pan"),
66 m_actionMapSystematicScale(
"map_systematic_scale"),
67 m_actionMapCreateTextGrid(
"map_text_grid"),
68 m_actionMapCreateMapText(
"map_text_map"),
69 m_actionMapCreateLegendChildAsObject(
"legend_child"),
70 m_actionGridMap(
"map_grid_map"),
71 m_actionGridPlanar(
"map_grid_planar"),
72 m_actionGridGeodesic(
"map_grid_geodesic"),
73 m_actionNorth(
"map_north"),
74 m_actionMapLocation(
"map_location"),
75 m_actionRectangle(
"geometry_rectangle"),
76 m_actionPoint(
"geometry_point"),
77 m_actionEllipse(
"geometry_ellipse"),
78 m_actionArrow(
"geometry_arrow"),
79 m_actionLine(
"geometry_line"),
80 m_actionPolygon(
"geometry_polygon"),
81 m_actionViewPan(
"view_pan"),
82 m_actionViewZoomIn(
"view_zoom_in"),
83 m_actionViewZoomOut(
"view_zoom_out"),
84 m_actionGroup(
"items_group"),
85 m_actionUngroup(
"items_ungroup"),
86 m_actionLineIntersectionMouse(
"items_intersection_mouse"),
87 m_actionSceneZoom(
"scene_zoom"),
88 m_actionRemoveObject(
"remove_item"),
89 m_actionTextDefault(
"text_default"),
90 m_actionImage(
"text_image"),
91 m_actionStringGrid(
"text_stringGrid"),
92 m_actionTitle(
"text_title"),
93 m_actionBalloon(
"text_balloon"),
94 m_actionBarCode(
"text_barCode"),
95 m_actionAlignLeft(
"align_left"),
96 m_actionAlignRight(
"align_right"),
97 m_actionAlignTop(
"align_top"),
98 m_actionAlignBottom(
"align_bottom"),
99 m_actionAlignCenterHorizontal(
"align_center_horizontal"),
100 m_actionAlignCenterVertical(
"align_center_vertical"),
101 m_actionUndo(
"undo"),
102 m_actionRedo(
"redo"),
103 m_actionDrawMap(
"draw_map"),
104 m_actionObjectToImage(
"object_to_image"),
105 m_actionExit(
"exit"),
106 m_actionExportToPDF(
"export_to_pdf"),
108 m_mapToolsToolButton(0),
109 m_geometryToolButton(0),
110 m_viewAreaToolButton(0),
111 m_arrowCursorButton(0),
113 m_lineIntersectionToolButton(0),
114 m_bringToFrontToolButton(0),
115 m_sendToBackToolButton(0),
116 m_recomposeToolButton(0),
118 m_alignLeftToolButton(0),
119 m_alignRightToolButton(0),
120 m_alignTopToolButton(0),
121 m_alignBottomToolButton(0),
122 m_alignCenterHorizontalToolButton(0),
123 m_alignCenterVerticalToolButton(0),
124 m_removeObjectToolButton(0),
126 m_drawMapToolButton(0),
127 m_objectToImageButton(0),
129 m_exportToPDFButton(0),
130 m_actionComboZoom(0),
131 m_actionMapToolButton(0),
132 m_actionMapToolsToolButton(0),
133 m_actionGeometryToolButton(0),
134 m_actionViewAreaToolButton(0),
135 m_actionArrowCursorButton(0),
136 m_actionItemTools(0),
137 m_actionLineIntersectionToolButton(0),
138 m_actionBringToFrontToolButton(0),
139 m_actionSendToBackToolButton(0),
140 m_actionRecomposeToolButton(0),
141 m_actionTextToolButton(0),
142 m_actionAlignLeftToolButton(0),
143 m_actionAlignRightToolButton(0),
144 m_actionAlignTopToolButton(0),
145 m_actionAlignBottomToolButton(0),
146 m_actionAlignCenterHorizontalToolButton(0),
147 m_actionAlignCenterVerticalToolButton(0),
148 m_actionRemoveObjectToolButton(0),
149 m_actionUndoToolButton(0),
150 m_actionDrawMapToolButton(0),
151 m_actionObjectToImageButton(0),
152 m_actionExitButton(0),
153 m_actionExportToPDFButton(0)
156 setWindowTitle(
"Layout - Toolbar");
157 setMinimumSize(200, 10);
167 setVisible(context.
isShow());
168 if(context.
isShow() ==
true)
182 QPointF posF = pos();
183 qreal valuex = posF.x();
184 qreal valuey = posF.y();
187 coordinate.
x = valuex;
188 coordinate.
y = valuey;
195 createArrowCursorButton();
196 createDrawMapToolButton();
197 this->addSeparator();
199 createRecomposeToolButton();
200 this->addSeparator();
202 createUndoToolButton();
203 this->addSeparator();
205 createViewAreaToolButton();
206 createMapToolsToolButton();
207 this->addSeparator();
209 createMapToolButton();
210 createGeometryToolButton();
211 createTextToolButton();
212 this->addSeparator();
215 this->addSeparator();
217 createRemoveObjectToolButton();
218 this->addSeparator();
220 createBringToFrontToolButton();
221 createSendToBackToolButton();
222 this->addSeparator();
224 createAlignLeftToolButton();
225 createAlignTopToolButton();
226 createAlignBottomToolButton();
227 createAlignRightToolButton();
228 this->addSeparator();
230 createAlignCenterHorizontalToolButton();
231 createAlignCenterVerticalToolButton();
232 this->addSeparator();
234 createObjectToImageButton();
235 this->addSeparator();
237 createExportToPDFButton();
238 this->addSeparator();
240 createSceneZoomCombobox();
241 this->addSeparator();
244 this->addSeparator();
249 QToolButton *btnMap = createToolButton(
"Map",
"Map Objects",
"");
251 QMenu* menu =
new QMenu(btnMap);
253 QAction* actionDefaultMenu = createAction(
"Default Map Object", m_actionMapDefault,
"layout-default-map",
"", menu);
254 menu->addAction(actionDefaultMenu);
256 QAction* actionGridMap = createAction(
"Grid Map", m_actionGridMap,
"layout-grid",
"", menu);
257 menu->addAction(actionGridMap);
259 QAction* actionGridPlanar = createAction(
"Grid Planar", m_actionGridPlanar,
"layout-grid",
"", menu);
260 menu->addAction(actionGridPlanar);
262 QAction* actionGridGeodesic = createAction(
"Grid Geodesic", m_actionGridGeodesic,
"layout-grid",
"", menu);
263 menu->addAction(actionGridGeodesic);
265 QAction* actionLegend = createAction(
"Default Legend", m_actionLegendDefault,
"layout-default-legend",
"", menu);
266 menu->addAction(actionLegend);
268 QAction* actionScale = createAction(
"Scale Object", m_actionScale,
"layout-scale",
"", menu);
269 menu->addAction(actionScale);
271 QAction* actionNorth = createAction(
"North Object", m_actionNorth,
"layout-north",
"", menu);
272 menu->addAction(actionNorth);
274 QAction* actionMapLocation = createAction(
"Map Location Object", m_actionMapLocation,
"layout-map-location",
"", menu);
275 menu->addAction(actionMapLocation);
277 btnMap->setMenu(menu);
278 btnMap->setPopupMode(QToolButton::MenuButtonPopup);
279 btnMap->setDefaultAction(actionDefaultMenu);
281 connect(btnMap, SIGNAL(triggered(QAction*)),
this, SLOT(onMapTriggered(QAction*)));
282 m_actionMapToolButton = this->addWidget(btnMap);
284 m_mapToolButton = btnMap;
291 QToolButton *btnMapTools = createToolButton(
"Map Tools",
"Map Tools",
"");
293 QMenu* menu =
new QMenu(btnMapTools);
295 QAction* actionPan = createAction(
"Pan Tool", m_actionMapPan,
"layout-map-pan",
"", menu);
296 menu->addAction(actionPan);
298 QAction* actionZoomIn = createAction(
"Zoom In", m_actionMapZoomIn,
"layout-map-zoom-in",
"", menu);
299 menu->addAction(actionZoomIn);
301 QAction* actionZoomOut = createAction(
"Zoom Out", m_actionMapZoomOut,
"layout-map-zoom-out",
"", menu);
302 menu->addAction(actionZoomOut);
304 QAction* actionSystematic = createAction(
"Systematic Scale", m_actionMapSystematicScale,
"layout-systematic-map",
"", menu);
305 menu->addAction(actionSystematic);
307 QAction* actionTextGrid = createAction(
"Text Grid as Object", m_actionMapCreateTextGrid,
"layout-createtext-as-obj",
"", menu);
308 menu->addAction(actionTextGrid);
310 QAction* actionTextMap = createAction(
"Text Map as Object", m_actionMapCreateMapText,
"layout-createmap-text-as-objs",
"", menu);
311 menu->addAction(actionTextMap);
313 QAction* actionLegend = createAction(
"Legend as Object", m_actionMapCreateLegendChildAsObject,
"layout-legend-child",
"", menu);
314 menu->addAction(actionLegend);
316 btnMapTools->setMenu(menu);
317 btnMapTools->setPopupMode(QToolButton::MenuButtonPopup);
318 btnMapTools->setDefaultAction(actionPan);
320 connect(btnMapTools, SIGNAL(triggered(QAction*)),
this, SLOT(onMapToolsTriggered(QAction*)));
321 m_actionMapToolsToolButton = this->addWidget(btnMapTools);
323 m_mapToolsToolButton = btnMapTools;
330 QToolButton *btnGeometry = createToolButton(
"Geometry Tools",
"Geometries Objects",
"");
332 QMenu* menu =
new QMenu(btnGeometry);
334 QAction* actionRectagle = createAction(
"Rectangle Object", m_actionRectangle,
"layout-square",
"", menu);
335 menu->addAction(actionRectagle);
337 QAction* actionArrow = createAction(
"Arrow Object", m_actionArrow,
"layout-arrow",
"", menu);
338 menu->addAction(actionArrow);
340 QAction* actionEllipse = createAction(
"Ellipse Object", m_actionEllipse,
"layout-ellipse",
"", menu);
341 menu->addAction(actionEllipse);
343 QAction* actionPoint = createAction(
"Point Object", m_actionPoint,
"layout-point",
"", menu);
344 menu->addAction(actionPoint);
346 QAction* actionLine = createAction(
"Line Object", m_actionLine,
"layout-drawline",
"", menu);
347 menu->addAction(actionLine);
349 QAction* actionPolygon = createAction(
"Polygon Object", m_actionPolygon,
"layout-polygon",
"", menu);
350 menu->addAction(actionPolygon);
352 btnGeometry->setMenu(menu);
353 btnGeometry->setPopupMode(QToolButton::MenuButtonPopup);
354 btnGeometry->setDefaultAction(actionRectagle);
356 connect(btnGeometry, SIGNAL(triggered(QAction*)),
this, SLOT(onGeometryTriggered(QAction*)));
357 m_actionGeometryToolButton = this->addWidget(btnGeometry);
359 m_geometryToolButton = btnGeometry;
366 QToolButton *btnViewArea = createToolButton(
"Paper Tools",
"Paper Tools",
"");
368 QMenu* menu =
new QMenu(btnViewArea);
370 QAction* actionPan = createAction(
"Pan Tool", m_actionViewPan,
"layout-paper-pan",
"", menu);
371 menu->addAction(actionPan);
373 QAction* actionZoomIn = createAction(
"Zoom In", m_actionViewZoomIn,
"layout-paper-zoom-in",
"", menu);
374 menu->addAction(actionZoomIn);
376 QAction* actionZoomOut = createAction(
"Zoom Out", m_actionViewZoomOut,
"layout-paper-zoom-out",
"", menu);
377 menu->addAction(actionZoomOut);
379 btnViewArea->setMenu(menu);
380 btnViewArea->setPopupMode(QToolButton::MenuButtonPopup);
381 btnViewArea->setDefaultAction(actionPan);
383 connect(btnViewArea, SIGNAL(triggered(QAction*)),
this, SLOT(onViewAreaTriggered(QAction*)));
384 m_actionViewAreaToolButton = this->addWidget(btnViewArea);
386 m_viewAreaToolButton = btnViewArea;
393 QToolButton *btnArrowCursor = createToolButton(
"Arrow Cursor",
"Arrow Cursor",
"layout-default-cursor");
394 btnArrowCursor->setCheckable(
false);
395 connect(btnArrowCursor, SIGNAL(clicked(
bool)),
this, SLOT(onArrowCursorClicked(
bool)));
397 m_actionArrowCursorButton = this->addWidget(btnArrowCursor);
399 m_arrowCursorButton = btnArrowCursor;
401 return btnArrowCursor;
406 QToolButton *btnTools = createToolButton(
"Item Tools",
"Item Tools",
"");
408 QMenu* menu =
new QMenu(btnTools);
410 QAction* actionGroup = createAction(
"Group", m_actionGroup,
"layout-group",
"", menu);
411 menu->addAction(actionGroup);
413 QAction* actionUngroup = createAction(
"Ungroup", m_actionUngroup,
"layout-ungroup",
"", menu);
414 menu->addAction(actionUngroup);
416 btnTools->setMenu(menu);
417 btnTools->setPopupMode(QToolButton::MenuButtonPopup);
418 btnTools->setDefaultAction(actionGroup);
420 connect(btnTools, SIGNAL(triggered(QAction*)),
this, SLOT(onItemToolsTriggered(QAction*)));
421 m_actionItemTools = this->addWidget(btnTools);
423 m_itemTools = btnTools;
430 QToolButton *btnLineMouse = createToolButton(
"Draw Line Intersection Mouse",
"Draw Line Intersection Mouse",
"layout-draw-line-mouse-intersection");
431 connect(btnLineMouse, SIGNAL(toggled(
bool)),
this, SLOT(onLineIntersectionMouse(
bool)));
433 m_actionLineIntersectionToolButton = this->addWidget(btnLineMouse);
435 m_lineIntersectionToolButton = btnLineMouse;
442 m_comboZoom =
new QComboBox(
this);
443 m_comboZoom->setObjectName(m_actionSceneZoom.c_str());
445 m_comboZoom->addItem(
"42%", 0.42);
446 m_comboZoom->addItem(
"50%", 0.5);
447 m_comboZoom->addItem(
"70%", 0.7);
448 m_comboZoom->addItem(
"100%", 1.);
449 m_comboZoom->addItem(
"150%", 1.5);
450 m_comboZoom->addItem(
"200%", 2.);
451 m_comboZoom->addItem(
"300%", 3.);
453 connect(m_comboZoom, SIGNAL(currentIndexChanged(
int)),
this, SLOT(onSceneZoomCurrentIndexChanged(
int)));
454 m_comboZoom->setCurrentIndex(1);
457 m_actionComboZoom = this->addWidget(m_comboZoom);
464 QToolButton *btn = createToolButton(
"Bring to front",
"Bring to front",
"layout-in-front");
465 btn->setCheckable(
false);
466 connect(btn, SIGNAL(clicked(
bool)),
this, SLOT(onBringToFrontClicked(
bool)));
468 m_actionBringToFrontToolButton = this->addWidget(btn);
470 m_bringToFrontToolButton = btn;
477 QToolButton *btn = createToolButton(
"Send to back",
"Send to back",
"layout-to-back");
478 btn->setCheckable(
false);
479 connect(btn, SIGNAL(clicked(
bool)),
this, SLOT(onSendToBackClicked(
bool)));
481 m_actionSendToBackToolButton = this->addWidget(btn);
483 m_sendToBackToolButton = btn;
491 QToolButton *btn = createToolButton(
"Recompose",
"Recompose",
"layout-recompose");
492 btn->setCheckable(
false);
493 connect(btn, SIGNAL(clicked(
bool)),
this, SLOT(onRecomposeClicked(
bool)));
495 m_actionRecomposeToolButton = this->addWidget(btn);
497 m_recomposeToolButton = btn;
504 QToolButton *btn = createToolButton(
"Text Tools",
"Text Tools",
"");
506 QMenu* menu =
new QMenu(btn);
508 QAction* actionTxtDefault = createAction(
"Default Text Object", m_actionTextDefault,
"layout-default-text",
"", menu);
509 menu->addAction(actionTxtDefault);
511 QAction* actionTitle = createAction(
"Title Object", m_actionTitle,
"layout-title",
"", menu);
512 menu->addAction(actionTitle);
514 QAction* actionStringGrid = createAction(
"Text Grid Object", m_actionStringGrid,
"layout-grid",
"", menu);
515 menu->addAction(actionStringGrid);
517 QAction* actionImage = createAction(
"Image Object", m_actionImage,
"layout-image",
"", menu);
518 menu->addAction(actionImage);
520 QAction* actionBalloon = createAction(
"Balloon Object", m_actionBalloon,
"layout-ballon",
"", menu);
521 menu->addAction(actionBalloon);
523 QAction* actionBarCode = createAction(
"BarCode Object", m_actionBarCode,
"layout-barcode",
"", menu);
524 menu->addAction(actionBarCode);
527 btn->setPopupMode(QToolButton::MenuButtonPopup);
528 btn->setDefaultAction(actionTxtDefault);
530 connect(btn, SIGNAL(triggered(QAction*)),
this, SLOT(onTextToolsTriggered(QAction*)));
531 m_actionTextToolButton = this->addWidget(btn);
533 m_textToolButton = btn;
540 QToolButton *btn = createToolButton(
"Align Left",
"Align Left",
"layout-alignleft");
541 btn->setCheckable(
false);
542 connect(btn, SIGNAL(clicked(
bool)),
this, SLOT(onAlignLeftClicked(
bool)));
544 m_actionAlignLeftToolButton = this->addWidget(btn);
546 m_alignLeftToolButton = btn;
553 QToolButton *btn = createToolButton(
"Align Right",
"Align Right",
"layout-alignright");
554 btn->setCheckable(
false);
555 connect(btn, SIGNAL(clicked(
bool)),
this, SLOT(onAlignRightClicked(
bool)));
557 m_actionAlignRightToolButton = this->addWidget(btn);
559 m_alignRightToolButton = btn;
566 QToolButton *btn = createToolButton(
"Align Top",
"Align Top",
"layout-aligntop");
567 btn->setCheckable(
false);
568 connect(btn, SIGNAL(clicked(
bool)),
this, SLOT(onAlignTopClicked(
bool)));
570 m_actionAlignTopToolButton = this->addWidget(btn);
572 m_alignTopToolButton = btn;
579 QToolButton *btn = createToolButton(
"Align Bottom",
"Align Bottom",
"layout-alignbottom");
580 btn->setCheckable(
false);
581 connect(btn, SIGNAL(clicked(
bool)),
this, SLOT(onAlignBottomClicked(
bool)));
583 m_actionAlignBottomToolButton = this->addWidget(btn);
585 m_alignBottomToolButton = btn;
592 QToolButton *btn = createToolButton(
"Align Center Horizontal",
"Align Center Horizontal",
"layout-alignhrzcenter");
593 btn->setCheckable(
false);
594 connect(btn, SIGNAL(clicked(
bool)),
this, SLOT(onAlignCenterHorizontalClicked(
bool)));
596 m_actionAlignCenterHorizontalToolButton = this->addWidget(btn);
598 m_alignCenterHorizontalToolButton = btn;
605 QToolButton *btn = createToolButton(
"Align Center Vertical",
"Align Center Vertical",
"layout-alignvrtcenter");
606 btn->setCheckable(
false);
607 connect(btn, SIGNAL(clicked(
bool)),
this, SLOT(onAlignCenterVerticalClicked(
bool)));
609 m_actionAlignCenterVerticalToolButton = this->addWidget(btn);
611 m_alignCenterVerticalToolButton = btn;
618 QToolButton *btn = createToolButton(
"Remove Object",
"Remove Object",
"layout-empty-trash");
619 btn->setCheckable(
false);
620 connect(btn, SIGNAL(clicked(
bool)),
this, SLOT(onRemoveObjectClicked(
bool)));
622 m_actionRemoveObjectToolButton = this->addWidget(btn);
624 m_removeObjectToolButton = btn;
631 QToolButton *btn = createToolButton(
"Undo/Redo",
"Undo/Redo",
"");
633 QMenu* menu =
new QMenu(btn);
642 QAction* actionUndo = undoStack->createUndoAction(menu, tr(
"&Undo"));
643 actionUndo->setShortcuts(QKeySequence::Undo);
644 actionUndo->setObjectName(m_actionUndo.c_str());
645 actionUndo->setIcon(QIcon::fromTheme(
"layout-undo"));
646 actionUndo->setToolTip(
"Undo Action");
647 menu->addAction(actionUndo);
649 QAction* actionRedo = undoStack->createRedoAction(menu, tr(
"&Redo"));
650 actionRedo->setShortcuts(QKeySequence::Redo);
651 actionRedo->setObjectName(m_actionRedo.c_str());
652 actionRedo->setIcon(QIcon::fromTheme(
"layout-redo"));
653 actionRedo->setToolTip(
"Redo Action");
654 menu->addAction(actionRedo);
657 btn->setPopupMode(QToolButton::MenuButtonPopup);
658 btn->setDefaultAction(actionUndo);
660 m_actionUndoToolButton = this->addWidget(btn);
662 m_undoToolButton = btn;
669 QToolButton *btn = createToolButton(
"Redraw Selection Map",
"Redraw Selection Map",
"layout-draw-map");
670 btn->setCheckable(
false);
671 connect(btn, SIGNAL(clicked(
bool)),
this, SLOT(onDrawMapClicked(
bool)));
673 m_actionDrawMapToolButton = this->addWidget(btn);
675 m_drawMapToolButton = btn;
682 QToolButton *btn = createToolButton(
"Object To Image",
"Export all selected objects to image",
"layout-object-to-image");
683 btn->setCheckable(
false);
684 connect(btn, SIGNAL(clicked(
bool)),
this, SLOT(onObjectToImageClicked(
bool)));
686 m_actionObjectToImageButton = this->addWidget(btn);
688 m_objectToImageButton = btn;
695 QToolButton *btn = createToolButton(
"Exit",
"Exit",
"layout-close");
696 btn->setCheckable(
false);
697 connect(btn, SIGNAL(clicked(
bool)),
this, SLOT(onExitClicked(
bool)));
699 m_actionExitButton = this->addWidget(btn);
708 QToolButton *btn = createToolButton(
"Export To PDF",
"Export to PDF",
"layout-pdf");
709 btn->setCheckable(
false);
710 connect(btn, SIGNAL(clicked(
bool)),
this, SLOT(onExportToPDFClicked(
bool)));
712 m_actionExportToPDFButton = this->addWidget(btn);
714 m_exportToPDFButton = btn;
721 QToolButton* button =
dynamic_cast<QToolButton*
>(sender());
724 button->setDefaultAction(action);
729 if(action->objectName().compare(m_actionMapDefault.c_str()) == 0)
733 else if(action->objectName().compare(m_actionGridMap.c_str()) == 0)
737 else if(action->objectName().compare(m_actionGridPlanar.c_str()) == 0)
741 else if(action->objectName().compare(m_actionGridGeodesic.c_str()) == 0)
745 else if(action->objectName().compare(m_actionLegendDefault.c_str()) == 0)
749 else if(action->objectName().compare(m_actionScale.c_str()) == 0)
753 else if(action->objectName().compare(m_actionNorth.c_str()) == 0)
757 else if(action->objectName().compare(m_actionMapLocation.c_str()) == 0)
765 QToolButton* button =
dynamic_cast<QToolButton*
>(sender());
768 button->setDefaultAction(action);
773 if(action->objectName().compare(m_actionMapPan.c_str()) == 0)
777 else if(action->objectName().compare(m_actionMapZoomIn.c_str()) == 0)
781 else if(action->objectName().compare(m_actionMapZoomOut.c_str()) == 0)
785 else if(action->objectName().compare(m_actionMapSystematicScale.c_str()) == 0)
789 else if(action->objectName().compare(m_actionMapCreateTextGrid.c_str()) == 0)
793 else if(action->objectName().compare(m_actionMapCreateMapText.c_str()) == 0)
797 else if(action->objectName().compare(m_actionMapCreateLegendChildAsObject.c_str()) == 0)
805 QToolButton* button =
dynamic_cast<QToolButton*
>(sender());
808 button->setDefaultAction(action);
813 if(action->objectName().compare(m_actionRectangle.c_str()) == 0)
817 else if(action->objectName().compare(m_actionArrow.c_str()) == 0)
821 else if(action->objectName().compare(m_actionEllipse.c_str()) == 0)
825 else if(action->objectName().compare(m_actionPoint.c_str()) == 0)
829 else if (action->objectName().compare(m_actionLine.c_str()) == 0)
834 else if (action->objectName().compare(m_actionPolygon.c_str()) == 0)
843 QToolButton* button =
dynamic_cast<QToolButton*
>(sender());
846 button->setDefaultAction(action);
851 if(action->objectName().compare(m_actionViewPan.c_str()) == 0)
855 else if(action->objectName().compare(m_actionViewZoomIn.c_str()) == 0)
859 else if(action->objectName().compare(m_actionViewZoomOut.c_str()) == 0)
873 QToolButton* button =
dynamic_cast<QToolButton*
>(sender());
876 button->setDefaultAction(action);
881 if(action->objectName().compare(m_actionGroup.c_str()) == 0)
885 else if(action->objectName().compare(m_actionUngroup.c_str()) == 0)
912 emit changeContext(result);
917 QVariant variant = m_comboZoom->itemData(index);
919 if(variant.toDouble() != zoomFactor)
943 m_comboZoom->setCurrentIndex(1);
949 QToolButton* button =
dynamic_cast<QToolButton*
>(sender());
952 button->setDefaultAction(action);
956 if(action->objectName().compare(m_actionTextDefault.c_str()) == 0)
960 else if(action->objectName().compare(m_actionStringGrid.c_str()) == 0)
964 else if(action->objectName().compare(m_actionTitle.c_str()) == 0)
968 else if(action->objectName().compare(m_actionImage.c_str()) == 0)
972 else if(action->objectName().compare(m_actionBalloon.c_str()) == 0)
976 else if(action->objectName().compare(m_actionBarCode.c_str()) == 0)
1053 if(mode != layoutMode)
1062 emit changeContext(result);
1067 QToolButton *btn =
new QToolButton(
this);
1068 btn->setText(text.c_str());
1069 btn->setGeometry(0,0,10,10);
1070 btn->setCheckable(
true);
1071 btn->setToolTip(tooltip.c_str());
1074 btn->setIcon(QIcon::fromTheme(icon.c_str()));
1081 QPushButton *btn =
new QPushButton(
this);
1082 btn->setText(text.c_str());
1083 btn->setGeometry(0,0,10,10);
1084 btn->setCheckable(
true);
1085 btn->setToolTip(tooltip.c_str());
1087 btn->setIcon(QIcon::fromTheme(icon.c_str()));
1094 QWidget* parentToUse = parent;
1095 if(parentToUse == 0)
1100 QAction *actionMenu =
new QAction(text.c_str(), parentToUse);
1101 actionMenu->setObjectName(objName.c_str());
1103 actionMenu->setIcon(QIcon::fromTheme(icon.c_str()));
1104 actionMenu->setToolTip(tooltip.c_str());
1116 int index = m_comboZoom->findData(factor);
1118 if ( index != -1 ) {
1119 m_comboZoom->setCurrentIndex(index);
1125 return m_mapToolButton;
1130 return m_mapToolsToolButton;
1135 return m_geometryToolButton;
1140 return m_viewAreaToolButton;
1145 return m_arrowCursorButton;
1155 return m_lineIntersectionToolButton;
1160 return m_bringToFrontToolButton;
1165 return m_sendToBackToolButton;
1170 return m_recomposeToolButton;
1175 return m_textToolButton;
1180 return m_alignLeftToolButton;
1185 return m_alignRightToolButton;
1190 return m_alignTopToolButton;
1195 return m_alignBottomToolButton;
1200 return m_alignCenterHorizontalToolButton;
1205 return m_alignCenterVerticalToolButton;
1210 return m_removeObjectToolButton;
1215 return m_undoToolButton;
1220 return m_drawMapToolButton;
1225 return m_objectToImageButton;
1230 return m_exitButton;
1235 return m_actionMapDefault;
1240 return m_actionLegendDefault;
1245 return m_actionScale;
1250 return m_actionMapZoomIn;
1255 return m_actionMapZoomOut;
1260 return m_actionMapPan;
1265 return m_actionMapSystematicScale;
1270 return m_actionMapCreateTextGrid;
1275 return m_actionMapCreateMapText;
1280 return m_actionMapCreateLegendChildAsObject;
1285 return m_actionGridMap;
1290 return m_actionGridPlanar;
1295 return m_actionGridGeodesic;
1300 return m_actionNorth;
1305 return m_actionMapLocation;
1310 return m_actionRectangle;
1315 return m_actionPoint;
1320 return m_actionEllipse;
1325 return m_actionArrow;
1330 return m_actionLine;
1335 return m_actionPolygon;
1340 return m_actionViewPan;
1345 return m_actionViewZoomIn;
1350 return m_actionViewZoomOut;
1355 return m_actionGroup;
1360 return m_actionUngroup;
1365 return m_actionLineIntersectionMouse;
1370 return m_actionSceneZoom;
1375 return m_actionRemoveObject;
1380 return m_actionTextDefault;
1385 return m_actionImage;
1390 return m_actionStringGrid;
1395 return m_actionTitle;
1400 return m_actionBalloon;
1405 return m_actionBarCode;
1410 return m_actionAlignLeft;
1415 return m_actionAlignRight;
1420 return m_actionAlignTop;
1425 return m_actionAlignBottom;
1430 return m_actionAlignCenterHorizontal;
1435 return m_actionAlignCenterVertical;
1440 return m_actionUndo;
1445 return m_actionRedo;
1450 return m_actionDrawMap;
1455 return m_actionObjectToImage;
1460 return m_actionExit;
1465 return m_actionExportToPDF;
1470 return m_actionMapToolButton;
1475 return m_actionMapToolsToolButton;
1480 return m_actionGeometryToolButton;
1485 return m_actionViewAreaToolButton;
1490 return m_actionArrowCursorButton;
1495 return m_actionItemTools;
1500 return m_actionLineIntersectionToolButton;
1505 return m_actionBringToFrontToolButton;
1510 return m_actionSendToBackToolButton;
1515 return m_actionRecomposeToolButton;
1520 return m_actionTextToolButton;
1525 return m_actionAlignLeftToolButton;
1530 return m_actionAlignRightToolButton;
1535 return m_actionAlignTopToolButton;
1540 return m_actionAlignBottomToolButton;
1545 return m_actionAlignCenterHorizontalToolButton;
1550 return m_actionAlignCenterVerticalToolButton;
1555 return m_actionRemoveObjectToolButton;
1560 return m_actionUndoToolButton;
1565 return m_actionDrawMapToolButton;
1570 return m_actionObjectToImageButton;
1575 return m_actionExitButton;
1580 return m_actionComboZoom;
virtual EnumType * getModeObjectToImage() const
Returns value that represents object to image (MVC Component to image. Ex.: .png) mode type belonging...
Abstract class to represent an observable. "Model" part of MVC component.
Class responsible for maintaining the drawing context of a MVC component. It is always used by the "M...
virtual EnumType * getModeCreateTextGrid() const
Returns value that represents create text grid mode type belonging to enumeration.
virtual EnumType * getModeDrawSelectionMap() const
Returns value that represents draw selection map (MapDisplay proxy) mode type belonging to enumeratio...
virtual EnumType * getModeSendToBack() const
Returns value that represents send to back mode type belonging to enumeration.
virtual EnumType * getModeRecompose() const
Returns value that represents recompose mode type belonging to enumeration.
virtual EnumType * getModeBringToFront() const
Returns value that represents bring to front mode type belonging to enumeration.
virtual EnumType * getModeExportToPDF() const
Returns value that represents export to PDF mode type belonging to enumeration.
virtual EnumModeType * getEnumModeType()
Returns mode type enumeration.
virtual EnumType * getModeMapZoomIn() const
Returns value that represents map zoom in mode type belonging to enumeration.
void setZoomFactor(double zoomFactor)
Change current zoom factor. Ex.: 0.5 (50%)
virtual EnumType * getModeCreateRectangle() const
Returns value that represents create rectangle mode type belonging to enumeration.
virtual EnumType * getModeCreateText() const
Returns value that represents create text mode type belonging to enumeration.
virtual EnumType * getModeMapCreateTextGrid() const
Returns value that represents create text grid (vectorize) mode type belonging to enumeration...
Abstract class to represent an observer. "View" part of MVC widget. All classes representing the grap...
virtual EnumType * getModeLegendChildAsObject() const
Returns value that represents legend child as object (vectorize) mode type belonging to enumeration...
virtual EnumType * getModeUngroup() const
Returns value that represents ungroup mode type belonging to enumeration.
An utility struct for representing 2D coordinates.
virtual EnumType * getModeCoordWait() const
Returns value that represents wait coordinate mode type belonging to enumeration. ...
virtual EnumType * getModeSceneZoom() const
Returns value that represents scene zoom mode type belonging to enumeration.
virtual EnumType * getModeZoomOut() const
Returns value that represents zoom out mode type belonging to enumeration.
virtual EnumType * getModeExit() const
Returns value that represents exit mode type belonging to enumeration.
virtual EnumType * getModeCreateLegend() const
Returns value that represents create legend mode type belonging to enumeration.
virtual EnumType * getModeAlignCenterVertical() const
Returns value that represents align center vertical mode type belonging to enumeration.
virtual EnumType * getModeActiveLinesIntersectionMouse() const
Returns value that represents active lines intersection mouse mode type belonging to enumeration...
virtual EnumType * getModeCreateTitle() const
Returns value that represents create title mode type belonging to enumeration.
static Context & getInstance()
It returns a reference to the singleton instance.
Class to represent a mode type enumeration. Ex.: select, pan, create text, etc. The type of mode is u...
virtual QUndoStack * getUndoStack()
Method that return stack of Undo/Redo.
virtual EnumType * getModeCreateMapLocation() const
Returns value that represents create map location mode type belonging to enumeration.
virtual EnumType * getModeAlignRight() const
Returns value that represents align right mode type belonging to enumeration.
virtual EnumType * getModeCreatePolygon() const
Returns value that represents create polygon mode type belonging to enumeration.
virtual EnumType * getModeOffLinesIntersectionMouse() const
Returns value that represents off lines intersection mouse mode type belonging to enumeration...
virtual EnumType * getModeCreateGridMap() const
Returns value that represents wait coordinate mode type belonging to enumeration. ...
virtual EnumType * getModeMapPan() const
Returns value that represents map pan mode type belonging to enumeration.
EnumType * getMode()
Returns value of the enumeration of mode type.
Class representing the scene. This scene is child of QGraphicsScene, part of Graphics View Framework...
virtual EnumType * getModeAlignLeft() const
Returns value that represents align left mode type belonging to enumeration.
virtual EnumType * getModePan() const
Returns value that represents pan mode type belonging to enumeration.
virtual EnumType * getModeCreateLine() const
Returns value that represents create line mode type belonging to enumeration.
virtual EnumType * getModeAlignBottom() const
Returns value that represents align bottom mode type belonging to enumeration.
virtual EnumType * getModeAlignCenterHorizontal() const
Returns value that represents align center horizontal mode type belonging to enumeration.
virtual EnumType * getModeGroup() const
Returns value that represents group mode type belonging to enumeration.
virtual EnumType * getModeMapZoomOut() const
Returns value that represents map zoom out mode type belonging to enumeration.
virtual EnumType * getModeCreateEllipse() const
Returns value that represents create ellipse mode type belonging to enumeration.
virtual EnumType * getModeZoomIn() const
Returns value that represents zoom in mode type belonging to enumeration.
void setWait(EnumType *wait)
Class that represents the value of an enumeration. An enumeration is made of "1..n" objects EnumType...
virtual EnumType * getModeMapCreateTextMap() const
Returns value that represents create text map (vectorize) mode type belonging to enumeration.
virtual EnumType * getModeCreatePoint() const
Returns value that represents create point mode type belonging to enumeration.
virtual EnumType * getModeCreateNorth() const
Returns value that represents create north mode type belonging to enumeration.
EnumType * getLineIntersectionMouseMode()
void setDefaultZoomFactor(double zoomFactor)
Change default zoom factor. Ex.: 0.5 (50%)
void setMode(EnumType *mode)
Change value of the enumeration of mode type. Ex.: select, pan, create text, etc. The type of mode is...
virtual EnumType * getModeCreateBarCode() const
Returns value that represents wait coordinate mode type belonging to enumeration. ...
AbstractScene * getScene()
Returns abstract scene for QGraphicsScene class, part of Graphics View Framework. ...
virtual EnumType * getModeCreateBalloon() const
Returns value that represents create balloon mode type belonging to enumeration.
virtual EnumType * getModeCreateGridPlanar() const
Returns value that represents create grid planar mode type belonging to enumeration.
virtual EnumType * getModeArrowCursor() const
Returns value that represents arrow mode type belonging to enumeration.
virtual EnumType * getModeCreateScale() const
Returns value that represents create scale mode type belonging to enumeration.
virtual EnumType * getModeSystematicScale() const
Returns value that represents systematic scale mode type belonging to enumeration.
virtual EnumType * getModeCreateArrow() const
Returns value that represents create arrow mode type belonging to enumeration.
Abstract class to represent a controller. "Controller" part of MVC widget. All classes representing t...
double getZoomFactor()
Returns current zoom factor. Ex.: 0.5 (50%)
void setOldZoomFactor(double zoomFactor)
Change previous zoom factor. Ex.: 0.5 (50%)
virtual EnumType * getModeRemoveObject() const
Returns value that represents remove object (MVC component) mode type belonging to enumeration...
virtual EnumType * getModeCreateMap() const
Returns value that represents create map mode type belonging to enumeration.
virtual EnumType * getModeCreateImage() const
Returns value that represents create image mode type belonging to enumeration.
virtual EnumType * getModeCreateGridGeodesic() const
Returns value that represents create grid geodesic mode type belonging to enumeration.
void setLineIntersectionMouseMode(EnumType *mode)
virtual EnumType * getModeAlignTop() const
Returns value that represents align top mode type belonging to enumeration.