Loading...
Searching...
No Matches
BaseApplication.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/af/BaseApplication.h
22
23 \brief A QMainWindow to be used as the basis for TerraLib applications.
24*/
25
26#ifndef __TERRALIB_QT_AF_INTERNAL_BASEAPPLICATION_H
27#define __TERRALIB_QT_AF_INTERNAL_BASEAPPLICATION_H
28
29#include "Config.h"
30
31// TerraLib
32#ifndef Q_MOC_RUN
33#include "../../maptools/AbstractLayer.h"
34#endif
35#include <QComboBox>
36#include <QLabel>
37#include <QLineEdit>
38#include <QMainWindow>
39#include <QTextEdit>
40#include <QToolButton>
41#include <QStatusBar>
42
43
44//#include "ui/ui_BaseApplicationForm.h"
45
46namespace Ui {
47 class BaseApplicationForm;
48}
49
50namespace te
51{
52 namespace qt
53 {
54 namespace widgets
55 {
56 class ChartDisplayWidget;
57 class CharEncodingMenuWidget;
58 class CoordInfoWidget;
59 class DataSourceExplorer;
60 class LayerItemView;
61 class MapDisplay;
62 class StyleDockWidget;
63 class RasterContrastMenuWidget;
64 class AuxiliaryMapDisplayDockWidget;
65 }
66
67 namespace af
68 {
69 namespace evt
70 {
71 // Forward declaration
72 struct Event;
73 }
74
75 class ApplicationController;
76 class ApplicationDockerConnector;
77 class ApplicationDockerController;
78 class DataSetTableDockWidget;
79 class InternalSettingsDialog;
80 class MapDisplay;
81 class LayerExplorer;
82 class StyleExplorer;
83 class InfoExplorer;
84
85 class TEQTAFEXPORT BaseApplication : public QMainWindow
86 {
87 Q_OBJECT
88
89 public:
90
91 BaseApplication(QWidget* parent = 0);
92
94
95 virtual void init(const QString& cfgFile);
96
98
100
101 te::qt::af::DataSetTableDockWidget* getLayerDock(const te::map::AbstractLayer* layer, const std::vector<te::qt::af::DataSetTableDockWidget*>& docs);
102
103 QDockWidget* getLayerExplorerDock();
104
105 static void prepareQtEnvironment(const QString& cfgFile, const QString& splashImg);
106
107 public slots:
108
110
112
114
115 void onZoomInToggled(bool checked);
116
117 void onZoomOutToggled(bool checked);
118
120
122
124
125 void onPanToggled(bool checked);
126
128
129 void onInfoToggled(bool checked);
130
132
133 void onSelectionToggled(bool checked);
134
136
138
140
141 virtual void onMeasureDistanceToggled(bool checked);
142
143 virtual void onMeasureAreaToggled(bool checked);
144
145 virtual void onMeasureAngleToggled(bool checked);
146
148
150
152
154
156
158
160
162
164
166
168
170
172
174
176
178
180
182
184
186
188
190
192
194
195 void onFullScreenToggled(bool checked);
196
197 virtual void onViewNightModeChanged(bool activated);
198
199 void onDisplayDataTableChanged(bool visible);
200
202
204
205 void onShowGraphicScaleTriggered(bool checked);
206
208
210
211 void onAddLayers(const std::list<te::map::AbstractLayerPtr>& layers);
212
214
215 protected slots:
216
218
220
221 signals:
222
224
225 protected:
226
227 virtual void makeDialog();
228
229 virtual void initFramework(const QString& cfgFile);
230
231 virtual void initStatusBar();
232
233 virtual void initActions();
234
235 virtual void initMenus();
236
237 virtual void initToolbars();
238
239 virtual void initSlotsConnections();
240
241 virtual void createDefaultSettings() = 0;
242
243 virtual void initAction(QAction*& act, const QString& icon, const QString& name,
244 const QString& text, const QString& tooltip,
245 bool iconVisibleInMenu, bool isCheckable, bool enabled, QObject* parent);
246
247 void setMapSRIDLineEdit(const int srid);
248
249 QMenuBar* m_menubar;
250
252
253 //default actions
254 QAction* m_mapDraw;
255 QAction* m_mapZoomIn;
256 QAction* m_mapZoomOut;
258 QAction* m_mapZoom1x1;
259 QAction* m_mapPan;
263 QAction* m_mapInfo;
281 QAction* m_layerSRS;
293
297
298 //main widgets
306 std::vector<DataSetTableDockWidget*> m_tables;
308
316
317 //status bar widgets
319 QStatusBar* m_statusbar;
320 QLabel* m_selected;
321 QAction* m_mapSRID;
326 QComboBox* m_scaleCmbBox;
327
328 private:
329 Ui::BaseApplicationForm* m_ui;
330 };
331 }
332 }
333}
334
335#endif // __TERRALIB_QT_AF_INTERNAL_BASEAPPLICATION_H
This is the base class for layers.
Definition: AbstractLayer.h:78
The base API for TerraLib applications.
A connector for the te::qt::af::ApplicationDockerController class to the Application Framework.
The base API for docker controllers of TerraLib applications.
te::qt::widgets::CoordInfoWidget * m_coordInfoWidget
virtual void createDefaultSettings()=0
void triggered(te::qt::af::evt::Event *e)
void onLayerTableClose(te::qt::af::DataSetTableDockWidget *wid)
te::qt::widgets::RasterContrastMenuWidget * m_rasterContrastMenu
std::vector< DataSetTableDockWidget * > m_tables
virtual void onApplicationTriggered(te::qt::af::evt::Event *e)
ApplicationController * m_app
virtual void onLayerShowTableTriggered()
void onZoomInToggled(bool checked)
void onEncodingChanged(te::map::AbstractLayerPtr layer)
QDockWidget * getLayerExplorerDock()
virtual void initStatusBar()
te::qt::widgets::LayerItemView * getLayerExplorer()
virtual void onInternalSettingsTriggered()
BaseApplication(QWidget *parent=0)
te::qt::widgets::StyleDockWidget * m_styleDockWidget
static void prepareQtEnvironment(const QString &cfgFile, const QString &splashImg)
te::qt::widgets::LayerItemView * m_layerItemView
te::qt::af::ApplicationDockerController * m_appDockerController
void onChartDisplayCreated(te::qt::widgets::ChartDisplayWidget *chartDisplay, te::map::AbstractLayer *layer)
InternalSettingsDialog * m_internalSettingsDlg
te::qt::widgets::MapDisplay * getMapDisplay()
virtual void onMeasureDistanceToggled(bool checked)
Ui::BaseApplicationForm * m_ui
te::qt::widgets::AuxiliaryMapDisplayDockWidget * m_auxMapDisplayDock
virtual void onMeasureAngleToggled(bool checked)
void onLayerSelectedObjectsChanged(const te::map::AbstractLayerPtr &layer)
void onShowGraphicScaleTriggered(bool checked)
void onLayerPanToSelectedOnMapDisplayTriggered()
virtual void init(const QString &cfgFile)
void onLayerFitSelectedOnMapDisplayTriggered()
void onZoomOutToggled(bool checked)
te::qt::widgets::CharEncodingMenuWidget * m_encodingMenu
void onDisplayDataTableChanged(bool visible)
void onInfoToggled(bool checked)
void onLayerSelectionChanged(const te::map::AbstractLayerPtr &layer)
void onMapShowGeographicGridToggled(bool check)
void onPanToggled(bool checked)
void setMapSRIDLineEdit(const int srid)
te::qt::widgets::DataSourceExplorer * m_dataSourceExplorer
te::qt::af::DataSetTableDockWidget * getLayerDock(const te::map::AbstractLayer *layer, const std::vector< te::qt::af::DataSetTableDockWidget * > &docs)
virtual void onViewNightModeChanged(bool activated)
QDockWidget * m_layerExplorerDockWidget
virtual void initFramework(const QString &cfgFile)
void onSelectionToggled(bool checked)
void onAddLayers(const std::list< te::map::AbstractLayerPtr > &layers)
ApplicationDockerConnector * m_dockerConnector
virtual void onMeasureAreaToggled(bool checked)
virtual void initSlotsConnections()
virtual void initAction(QAction *&act, const QString &icon, const QString &name, const QString &text, const QString &tooltip, bool iconVisibleInMenu, bool isCheckable, bool enabled, QObject *parent)
void onFullScreenToggled(bool checked)
A dock widget for DataSetTableView objects.
A connector for the te::qt::widgets::LayerExplorer class to the Application Framework.
Definition: LayerExplorer.h:76
A connector of the te::qt::widgets::MapDisplay class to the Application Framework.
Definition: MapDisplay.h:84
A connector for the te::qt::widgets::StyleDockWidget class to the Application Framework.
Definition: StyleExplorer.h:64
This class defines a dock widget with map display ZoomIn and eye bird to help the display viewer.
This class is widget that provides a menu for char encoding selection.
A wdiget used to display a chart.
A widget designed to explore the data sources of an application.
A specialization of QTreeView for manipulate layers.
Definition: LayerItemView.h:79
A widget to control the display of a set of layers.
Definition: MapDisplay.h:72
This class is widget that provides a menu for raster contrast.
A dock widget used control the geographic data style using SE elements and a property browser to show...
boost::intrusive_ptr< AbstractLayer > AbstractLayerPtr
TerraLib.
#define slots
A base class for application events.
Definition: Event.h:60
#define TEQTAFEXPORT
You can use this macro in order to export/import classes and functions from this module.
Definition: Config.h:71
Proxy configuration file for TerraView (see terraview_config.h).