ToolBar.h
Go to the documentation of this file.
1 /* Copyright (C) 2008 National Institute For Space Research (INPE) - Brazil.
2 
3  This file is part of the TerraLib - a Framework for building GIS enabled applications.
4 
5  TerraLib is free software: you can redistribute it and/or modify
6  it under the terms of the GNU Lesser General Public License as published by
7  the Free Software Foundation, either version 3 of the License,
8  or (at your option) any later version.
9 
10  TerraLib is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  GNU Lesser General Public License for more details.
14 
15  You should have received a copy of the GNU Lesser General Public License
16  along with TerraLib. See COPYING. If not, write to
17  TerraLib Team at <terralib-team@terralib.org>.
18  */
19 
20 /*!
21  \file terralib/qt/plugins/edit/ToolBar.h
22 
23  \brief The main toolbar of TerraLib Edit Qt plugin.
24 */
25 
26 #ifndef __TERRALIB_QT_PLUGINS_EDIT_INTERNAL_TOOLBAR_H
27 #define __TERRALIB_QT_PLUGINS_EDIT_INTERNAL_TOOLBAR_H
28 
29 // TerraLib
30 #ifndef Q_MOC_RUN
31 #include "../../../maptools/AbstractLayer.h"
32 #endif
33 #include "Config.h"
34 
35 // Qt
36 #include <QAction>
37 #include <QComboBox>
38 #include <QIcon>
39 #include <QList>
40 #include <QToolBar>
41 #include <QUndoView>
42 
43 // STL
44 #include <string>
45 
46 namespace te
47 {
48  namespace edit
49  {
50  class GeometriesUpdateTool;
51  }
52 
53  namespace qt
54  {
55  namespace af
56  {
57  class MapDisplay;
58 
59  namespace evt
60  {
61  struct Event;
62  }
63  }
64 
65  namespace widgets
66  {
67  class HelpToolButton;
68  }
69 
70  namespace plugins
71  {
72  namespace edit
73  {
74  /*!
75  \class ToolBar
76 
77  \brief The main toolbar of TerraLib Edit Qt plugin.
78  */
79  class ToolBar : public QObject
80  {
81  Q_OBJECT
82 
83  public:
84 
85  ToolBar(QObject* parent = 0);
86 
88 
89  QToolBar* get() const;
90 
91  void updateLayer(te::map::AbstractLayer* layer, const bool& stashed);
92 
93  public slots:
94 
95  void onEditActivated(bool checked);
96 
97  protected slots:
98 
100 
101  void onVertexToolActivated(bool checked);
102 
103  void onCreatePolygonToolActivated(bool checked);
104 
105  void onCreateLineToolActivated(bool checked);
106 
107  void onMoveGeometryToolActivated(bool checked);
108 
110 
111  void onAggregateAreaToolActivated(bool checked);
112 
113  void onSubtractAreaToolActivated(bool checked);
114 
115  void onDeleteGeometryToolActivated(bool checked);
116 
117  void onMergeGeometriesToolActivated(bool checked);
118 
119  void onCreateUndoViewActivated(bool checked);
120 
122 
123  void onSplitPolygonToolActivated(bool checked);
124 
125  void onFeatureAttributesActivated(bool checked);
126 
128 
129  void onCreatePointToolActivated(bool checked);
130 
131  void onDeletePartToolActivated(bool checked);
132 
134 
135  void onDigitStepComboBoxChanged(int index);
136 
137  void onActionChanged(QAction* action);
138 
139  void onRotateGeometryToolActivated(bool checked);
140 
141  Q_SIGNALS:
142 
143  /*! This signal is emitted when the layer selection changed. */
145 
147 
149 
151 
152  void updateDelegate(const bool& add);
153 
154  protected:
155 
156  void enableCurrentTool(const bool& enable);
157 
159 
160  QToolBar* m_toolBar;
161  QAction* m_editAction;
162  QAction* m_saveAction;
180  QList<QAction*> m_tools;
182  QUndoView* m_undoView;
183  QAction* m_currentAction;
185 
187 
189 
191 
193 
195 
196  void enableActionsByGeomType(QList<QAction*> acts, const bool& enable);
197 
198  bool isToolChanged(QAction* action);
199 
200  void resetTool(QAction* action);
201 
202  public:
203 
205 
206  bool isEnabled();
207 
208  protected:
209 
210  te::map::AbstractLayerPtr getLayer(const std::string& id);
211  void initialize();
213  void createAction(QAction*& action, const QString& tooltip, const QString& icon, bool checkable, bool enabled, const QString& objName, const char* member);
215  };
216 
217  } // end namespace edit
218  } // end namespace plugins
219  } // end namespace qt
220 } // end namespace te
221 
222 #endif //__TERRALIB_QT_PLUGINS_EDIT_INTERNAL_TOOLBAR_H
te::qt::plugins::edit::ToolBar::m_snapOptionsAction
QAction * m_snapOptionsAction
Definition: ToolBar.h:169
te::qt::plugins::edit::ToolBar::m_moveGeometryToolAction
QAction * m_moveGeometryToolAction
Definition: ToolBar.h:167
te::qt::plugins::edit::ToolBar::onSplitPolygonToolActivated
void onSplitPolygonToolActivated(bool checked)
te::qt::plugins::edit::ToolBar::m_rotateGeometryToolAction
QAction * m_rotateGeometryToolAction
Definition: ToolBar.h:168
te::qt::plugins::edit::ToolBar::initializeActions
void initializeActions()
te::qt::plugins::edit::ToolBar::m_redoToolAction
QAction * m_redoToolAction
Definition: ToolBar.h:179
te
TerraLib.
Definition: AddressGeocodingOp.h:52
te::qt::plugins::edit::ToolBar::onVertexToolActivated
void onVertexToolActivated(bool checked)
te::qt::plugins::edit::ToolBar::initialize
void initialize()
te::qt::plugins::edit::ToolBar::onSaveActivated
void onSaveActivated()
te::qt::plugins::edit::ToolBar::onCreatePointToolActivated
void onCreatePointToolActivated(bool checked)
te::qt::plugins::edit::ToolBar::onResetVisualizationToolActivated
void onResetVisualizationToolActivated(bool checked)
te::qt::plugins::edit::ToolBar::getSelectedLayer
te::map::AbstractLayerPtr getSelectedLayer()
te::qt::af::MapDisplay
A connector of the te::qt::widgets::MapDisplay class to the Application Framework.
Definition: MapDisplay.h:84
te::qt::plugins::edit::ToolBar::m_tools
QList< QAction * > m_tools
Definition: ToolBar.h:180
te::qt::plugins::edit::ToolBar::m_mergeGeometriesToolAction
QAction * m_mergeGeometriesToolAction
Definition: ToolBar.h:175
te::map::AbstractLayerPtr
boost::intrusive_ptr< AbstractLayer > AbstractLayerPtr
Definition: AbstractLayer.h:626
te::qt::plugins::edit::ToolBar::setCurrentTool
void setCurrentTool(te::edit::GeometriesUpdateTool *tool, te::qt::af::MapDisplay *display)
te::qt::plugins::edit::ToolBar::m_createLayerAction
QAction * m_createLayerAction
Definition: ToolBar.h:177
te::qt::plugins::edit::ToolBar::m_vertexToolAction
QAction * m_vertexToolAction
Definition: ToolBar.h:164
te::qt::plugins::edit::ToolBar::m_subtractAreaToolAction
QAction * m_subtractAreaToolAction
Definition: ToolBar.h:172
te::qt::plugins::edit::ToolBar::dataSrcIsPrepared
bool dataSrcIsPrepared(const te::map::AbstractLayerPtr &layer)
te::qt::plugins::edit::ToolBar::m_toolBar
QToolBar * m_toolBar
Definition: ToolBar.h:160
te::qt::plugins::edit::ToolBar::onMoveGeometryToolActivated
void onMoveGeometryToolActivated(bool checked)
te::qt::plugins::edit::ToolBar::m_createLineToolAction
QAction * m_createLineToolAction
Definition: ToolBar.h:166
te::qt::plugins::edit::ToolBar::triggered
void triggered(te::qt::af::evt::Event *e)
te::qt::plugins::edit::ToolBar::m_undoToolAction
QAction * m_undoToolAction
Definition: ToolBar.h:178
te::qt::plugins::edit::ToolBar::m_createPointToolAction
QAction * m_createPointToolAction
Definition: ToolBar.h:176
te::qt::plugins::edit::ToolBar::m_editAction
QAction * m_editAction
Definition: ToolBar.h:161
te::qt::plugins::edit::ToolBar::onRotateGeometryToolActivated
void onRotateGeometryToolActivated(bool checked)
te::qt::plugins::edit::ToolBar::onCreateLineToolActivated
void onCreateLineToolActivated(bool checked)
te::qt::plugins::edit::ToolBar::m_helpToolButton
te::qt::widgets::HelpToolButton * m_helpToolButton
Definition: ToolBar.h:184
te::qt::plugins::edit::ToolBar::m_currentAction
QAction * m_currentAction
Definition: ToolBar.h:183
te::qt::plugins::edit::ToolBar::onActionChanged
void onActionChanged(QAction *action)
te::qt::plugins::edit::ToolBar::m_usingStash
bool m_usingStash
Definition: ToolBar.h:188
te::qt::widgets::HelpToolButton
Tool button that uses te::qt::widgets::HelpManager on its mouse pressed implementation.
Definition: HelpToolButton.h:51
te::qt::plugins::edit::ToolBar::isEnabled
bool isEnabled()
te::qt::plugins::edit::ToolBar::onCreateUndoViewActivated
void onCreateUndoViewActivated(bool checked)
te::qt::plugins::edit::ToolBar::m_saveAction
QAction * m_saveAction
Definition: ToolBar.h:162
te::qt::plugins::edit::ToolBar
The main toolbar of TerraLib Edit Qt plugin.
Definition: ToolBar.h:80
te::qt::plugins::edit::ToolBar::m_digitStepComboBox
QComboBox * m_digitStepComboBox
Definition: ToolBar.h:181
te::qt::plugins::edit::ToolBar::m_toolChecked
bool m_toolChecked
Definition: ToolBar.h:194
te::qt::plugins::edit::ToolBar::get
QToolBar * get() const
te::qt::af::evt::Event
A base class for application events.
Definition: Event.h:60
te::qt::plugins::edit::ToolBar::m_clearEditionAction
QAction * m_clearEditionAction
Definition: ToolBar.h:163
te::qt::plugins::edit::ToolBar::m_currentTool
te::edit::GeometriesUpdateTool * m_currentTool
Definition: ToolBar.h:186
te::qt::plugins::edit::ToolBar::onDeletePartToolActivated
void onDeletePartToolActivated(bool checked)
te::qt::plugins::edit::ToolBar::onEditActivated
void onEditActivated(bool checked)
te::qt::plugins::edit::ToolBar::onSubtractAreaToolActivated
void onSubtractAreaToolActivated(bool checked)
te::map::AbstractLayer
This is the base class for layers.
Definition: AbstractLayer.h:78
slots
#define slots
Definition: VirtualMachine.h:48
te::qt::plugins::edit::ToolBar::m_createPolygonToolAction
QAction * m_createPolygonToolAction
Definition: ToolBar.h:165
te::qt::plugins::edit::ToolBar::resetTool
void resetTool(QAction *action)
te::qt::plugins::edit::ToolBar::onDigitStepComboBoxChanged
void onDigitStepComboBoxChanged(int index)
te::qt::plugins::edit::ToolBar::onToolDeleted
void onToolDeleted()
te::qt::plugins::edit::ToolBar::updateDelegate
void updateDelegate(const bool &add)
te::qt::plugins::edit::ToolBar::~ToolBar
~ToolBar()
te::qt::plugins::edit::ToolBar::enableActionsByGeomType
void enableActionsByGeomType(QList< QAction * > acts, const bool &enable)
te::qt::plugins::edit::ToolBar::m_splitPolygonToolAction
QAction * m_splitPolygonToolAction
Definition: ToolBar.h:174
te::qt::plugins::edit::ToolBar::onDeleteGeometryToolActivated
void onDeleteGeometryToolActivated(bool checked)
te::qt::plugins::edit::ToolBar::onFeatureAttributesActivated
void onFeatureAttributesActivated(bool checked)
te::qt::plugins::edit::ToolBar::m_featureAttributesAction
QAction * m_featureAttributesAction
Definition: ToolBar.h:173
te::qt::plugins::edit::ToolBar::m_isEnabled
bool m_isEnabled
Definition: ToolBar.h:192
te::qt::plugins::edit::ToolBar::onAggregateAreaToolActivated
void onAggregateAreaToolActivated(bool checked)
te::qt::plugins::edit::ToolBar::getLayer
te::map::AbstractLayerPtr getLayer(const std::string &id)
te::qt::plugins::edit::ToolBar::updateLayer
void updateLayer(te::map::AbstractLayer *layer, const bool &stashed)
te::qt::plugins::edit::ToolBar::createAction
void createAction(QAction *&action, const QString &tooltip, const QString &icon, bool checkable, bool enabled, const QString &objName, const char *member)
te::qt::plugins::edit::ToolBar::onCreateLayerActivated
void onCreateLayerActivated()
te::qt::plugins::edit::ToolBar::m_layerIsStashed
bool m_layerIsStashed
Definition: ToolBar.h:190
te::qt::plugins::edit::ToolBar::layerSelectedObjectsChanged
void layerSelectedObjectsChanged(const te::map::AbstractLayerPtr &layer)
te::qt::plugins::edit::ToolBar::enableCurrentTool
void enableCurrentTool(const bool &enable)
Config.h
Proxy configuration file for TerraView (see terraview_config.h).
te::qt::plugins::edit::ToolBar::ToolBar
ToolBar(QObject *parent=0)
te::qt::plugins::edit::ToolBar::onCreatePolygonToolActivated
void onCreatePolygonToolActivated(bool checked)
te::qt::plugins::edit::ToolBar::onMergeGeometriesToolActivated
void onMergeGeometriesToolActivated(bool checked)
te::edit::GeometriesUpdateTool
Definition: GeometriesUpdateTool.h:60
te::qt::plugins::edit::ToolBar::stashed
void stashed(te::map::AbstractLayer *layer)
te::qt::plugins::edit::ToolBar::geometriesEdited
void geometriesEdited()
te::qt::plugins::edit::ToolBar::isToolChanged
bool isToolChanged(QAction *action)
te::qt::plugins::edit::ToolBar::m_undoView
QUndoView * m_undoView
Definition: ToolBar.h:182
te::qt::plugins::edit::ToolBar::m_aggregateAreaToolAction
QAction * m_aggregateAreaToolAction
Definition: ToolBar.h:171
te::qt::plugins::edit::ToolBar::m_deleteGeometryToolAction
QAction * m_deleteGeometryToolAction
Definition: ToolBar.h:170
te::qt::plugins::edit::ToolBar::onSnapOptionsActivated
void onSnapOptionsActivated()