Loading...
Searching...
No Matches
Info.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/widgets/tools/Info.h
22
23 \brief This class implements a concrete tool to get informations about a specified feature using pointing operation.
24*/
25
26#ifndef __TERRALIB_QT_WIDGETS_INTERNAL_INFO_H
27#define __TERRALIB_QT_WIDGETS_INTERNAL_INFO_H
28
29// TerraLib
30#ifndef Q_MOC_RUN
31#include "../../../maptools/AbstractLayer.h"
32#endif
34#include "../Config.h"
35#include "RubberBand.h"
36
37// Qt
38#include <QString>
39
40// STL
41#include <list>
42
43class QPoint;
44class QStringList;
45class QTreeWidget;
46class QTreeWidgetItem;
47class QAction;
48
49namespace te
50{
51 namespace da
52 {
53 class DataSet;
54 }
55
56 namespace gm
57 {
58 class Geometry;
59 }
60
61 namespace rst
62 {
63 class Raster;
64 }
65
66 namespace qt
67 {
68 namespace widgets
69 {
70// Forward declarations
71 class MapDisplay;
72
73 /*!
74 \class Info
75
76 \brief This class implements a concrete tool to get informations about a specified feature using pointing operation.
77
78 \ingroup widgets
79 */
81 {
82 Q_OBJECT
83
84 public:
85
86 /** @name Initializer Methods
87 * Methods related to instantiation and destruction.
88 */
89 //@{
90
91 /*!
92 \brief It constructs a info tool associated with the given map display.
93
94 \param display The map display associated with the tool.
95 \param cursor The tool cursor.
96 \param layers The layer list that will be queried.
97 \param parent The tool's parent.
98
99 \note The tool will NOT take the ownership of the given pointers.
100 */
101 Info(QTreeWidget* infoTree, MapDisplay* display, const QCursor& cursor, const std::list<te::map::AbstractLayerPtr>& layers, QObject* parent = 0);
102
103 /*! \brief Destructor. */
105
106 //@}
107
108 /** @name AbstractTool Methods
109 * Methods related with tool behavior.
110 */
111 //@{
112
113 bool mouseReleaseEvent(QMouseEvent* e);
114
115 void setMode(const QString& mode);
116
117 //@}
118
119 public slots:
120
121 void setLayers(const std::list<te::map::AbstractLayerPtr>& layers);
122
123 void onCustomContextMenuRequested(const QPoint& pos);
124
126
127 void onRedraw();
128
129 void onCurrentIndexChanged(const QString& text);
130
131 signals:
132
134
135 protected:
136
137 void getChildInformation(QTreeWidgetItem* item, QStringList& information);
138
139 void buildTree(const te::gm::Envelope& envelope, const std::list<te::map::AbstractLayerPtr>& layers);
140
141 private:
142
143 QTreeWidget* m_infoTreeWidget; //!< Widget used to show the informations.
144 std::list<te::map::AbstractLayerPtr> m_layers; //!<The layer list that will be queried.
145 QString m_mode;
146 QAction* m_copyAction;
148 };
149
150 } // end namespace widgets
151 } // end namespace qt
152} // end namespace te
153
154#endif // __TERRALIB_QT_WIDGETS_INTERNAL_INFO_H
This is a utility class tool that provides a rectangle that can indicate a boundary.
An Envelope defines a 2D rectangular region.
Definition: Envelope.h:52
This class defines an interface for objects that can receive application events and respond to them,...
Definition: AbstractTool.h:64
This class implements a concrete tool to get informations about a specified feature using pointing op...
Definition: Info.h:81
void setMode(const QString &mode)
void buildTree(const te::gm::Envelope &envelope, const std::list< te::map::AbstractLayerPtr > &layers)
QTreeWidget * m_infoTreeWidget
Widget used to show the informations.
Definition: Info.h:143
te::gm::Envelope m_currentBox
Definition: Info.h:147
void getChildInformation(QTreeWidgetItem *item, QStringList &information)
QAction * m_copyAction
Definition: Info.h:146
void setLayers(const std::list< te::map::AbstractLayerPtr > &layers)
void onCurrentIndexChanged(const QString &text)
QString m_mode
Definition: Info.h:145
std::list< te::map::AbstractLayerPtr > m_layers
The layer list that will be queried.
Definition: Info.h:144
bool mouseReleaseEvent(QMouseEvent *e)
This event handler can be reimplemented in a concrete tool class to receive mouse release events for ...
void onCustomContextMenuRequested(const QPoint &pos)
Info(QTreeWidget *infoTree, MapDisplay *display, const QCursor &cursor, const std::list< te::map::AbstractLayerPtr > &layers, QObject *parent=0)
It constructs a info tool associated with the given map display.
A widget to control the display of a set of layers.
Definition: MapDisplay.h:72
An Envelope defines a 2D rectangular region.
TerraLib.
#define slots
#define TEQTWIDGETSEXPORT
You can use this macro in order to export/import classes and functions from this module.
Definition: Config.h:63