TerraView.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 TerraView - A Free and Open Source GIS Application.
4 
5  TerraView is free software: you can redistribute it and/or modify
6  it under the terms of the GNU 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  TerraView 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 General Public License for more details.
14 
15  You should have received a copy of the GNU General Public License
16  along with TerraLib Code Editor. See COPYING. If not, write to
17  TerraLib Team at <terralib-team@dpi.inpe.br>.
18  */
19 
20 /*!
21  \file terraview/TerraView.h
22 
23  \brief The main class of TerraView.
24 */
25 
26 #ifndef __TERRAVIEW_INTERNAL_TERRAVIEW_H
27 #define __TERRAVIEW_INTERNAL_TERRAVIEW_H
28 
29 // TerraLib
30 #include "TerraViewController.h"
32 
33 // STL
34 #include <string>
35 
36 // Forward declarations
37 class QWidget;
38 class QMenu;
39 
40 struct ProjectMetadata;
41 
42 namespace te
43 {
44  namespace qt
45  {
46  namespace af
47  {
48  class InterfaceController;
49  }
50  namespace widgets
51  {
52  class ChartDisplayWidget;
53  class CompositionModeMenuWidget;
54  class HelpManagerImpl;
55  class QueryDialog;
56  class ProgressViewerBar;
57  class ProgressViewerWidget;
58  }
59  }
60 }
61 
62 /*!
63  \brief The main class of TerraView.
64 
65  \sa te::qt::af::BaseApplication
66 */
68 {
69  Q_OBJECT
70 
71  public:
72 
73  TerraView(QWidget* parent = 0);
74 
75  ~TerraView();
76 
77  void init(const QString& cfgFile);
78 
79  void startProject(const QString& projectFileName);
80 
81  protected:
82 
83  virtual void makeDialog();
84 
85  virtual void initActions();
86 
87  virtual void initMenus();
88 
89  virtual void initToolbars();
90 
91  virtual void initSlotsConnections();
92 
93  virtual void createDefaultSettings();
94 
95  void addMenusActions();
96 
97  void addPopUpMenu();
98 
99  protected slots:
100 
101  void showAboutDialog();
102 
103 
105 
106 
108 
109  void onNewProjectTriggered();
110 
111  void onOpenProjectTriggered();
112 
113  void onSaveProjectTriggered(bool save_as = false);
114 
116 
117  void onSaveAsImageTriggered();
118 
119 
120  void onHelpTriggered();
121 
122 
123  void onLinkTriggered();
124 
126 
128 
129  void onLayerChartTriggered();
130 
132 
134 
136 
138 
140 
142 
144 
146 
148 
150 
152 
154 
155  void onRecentProjectsTriggered(QAction* proj);
156 
157 
159 
161 
163 
165 
167 
169 
171 
173 
174 
175  void showProgressDockWidget();
176 
178 
180 
181  protected:
182 
183  void projectChanged();
184 
185  bool checkAndSaveProject();
186 
187  void openProject(const QString& prjFileName);
188 
189  void resetComponents();
190 
191  void closeEvent(QCloseEvent * event);
192 
193  void addActions(const QString& name, const QString& category, const QList<QAction*>& acts);
194 
199  QAction* m_fileExit;
200  QAction* m_filePrint;
204 
205  QAction* m_helpAbout;
206  QAction* m_helpContents;
207  QAction* m_helpUpdate;
208 
211  QAction* m_layerChart;
218 
220 
228 
237 
238  QMenu* m_fileMenu;
239  QMenu* m_helpMenu;
240  QMenu* m_layerMenu;
241  QMenu* m_mapMenu;
246  QMenu* m_toolsMenu;
248  QMenu* m_viewMenu;
250 
251 
252  QDockWidget* m_progressDockWidget; //!< Dock widget used to show progress information
253 
255 
257 
259 
261 
263 
265 
267 
269 };
270 
271 #endif // __TERRAVIEW_INTERNAL_TERRAVIEW_H
QAction * m_projectAddLayerTabularDataSet
Definition: TerraView.h:223
QAction * m_layerChartsScatter
Definition: TerraView.h:210
QAction * m_projectAddLayerQueryDataSet
Definition: TerraView.h:222
void onLayerScatterTriggered()
#define slots
QAction * m_layerCompositionMode
Definition: TerraView.h:215
void onAddTabularLayerTriggered()
void onOpenProjectTriggered()
virtual void initSlotsConnections()
QAction * m_fileRestartSystem
Definition: TerraView.h:203
QAction * m_toolsCustomize
Definition: TerraView.h:229
virtual void initMenus()
void onToolsDataExchangerTriggered()
void onLinkTriggered()
The Style defines the styling that is to be applied to a geographic dataset (vector geometries or cov...
Definition: Style.h:65
QDockWidget * m_progressDockWidget
Dock widget used to show progress information.
Definition: TerraView.h:252
A class that defines the interface of a qt widget to group a set of ProgressWidgetItem.
The main class of TerraView.
Definition: TerraView.h:67
void onSaveProjectAsTriggered()
void onApplicationTriggered(te::qt::af::evt::Event *e)
void onToolsDataExchangerDirectPopUpTriggered()
QAction * m_toolsQueryDataSource
Definition: TerraView.h:235
QAction * m_layerSpatialQuery
Definition: TerraView.h:216
void onProjectPropertiesTriggered()
virtual void makeDialog()
void onToolsDataExchangerDirectTriggered()
te::qt::widgets::CompositionModeMenuWidget * m_compModeMenu
Definition: TerraView.h:260
A base class for application events.
Definition: Event.h:59
void projectChanged()
void addActions(const QString &name, const QString &category, const QList< QAction *> &acts)
QMenu * m_projectMenu
Definition: TerraView.h:243
QAction * m_projectAddLayerGraph
Definition: TerraView.h:224
QAction * m_filePrintPreview
Definition: TerraView.h:201
QAction * m_helpUpdate
Definition: TerraView.h:207
QAction * m_fileExit
Definition: TerraView.h:199
QAction * m_layerChartsHistogram
Definition: TerraView.h:209
QAction * m_fileSaveProject
Definition: TerraView.h:196
QAction * m_toolsDataExchangerDirect
Definition: TerraView.h:231
void onSpatialQueryLayerTriggered()
The API for controller of TerraView application.
QMenu * m_toolsMenu
Definition: TerraView.h:246
QMenu * m_projectAddLayerMenu
Definition: TerraView.h:244
void onAddFolderLayerTriggered()
virtual void initActions()
QMenu * m_viewMenu
Definition: TerraView.h:248
QMenu * m_toolsExchangerMenu
Definition: TerraView.h:247
void onToolsRasterMultiResolutionTriggered()
QAction * m_layerChart
Definition: TerraView.h:211
QAction * m_toolsDataSourceExplorer
Definition: TerraView.h:233
QAction * m_projectAddFolderLayer
Definition: TerraView.h:225
void resetComponents()
QMenu * m_mapMenu
Definition: TerraView.h:241
void onDataSourceExplorerTriggered()
QAction * m_projectProperties
Definition: TerraView.h:227
void showProgressDockWidget()
void onPluginsManagerTriggered()
te::qt::widgets::ProgressViewerBar * m_pvb
Definition: TerraView.h:266
void startProject(const QString &projectFileName)
virtual void initToolbars()
bool checkAndSaveProject()
QAction * m_fileNewProject
Definition: TerraView.h:195
TerraLib.
QAction * m_projectAddLayerDataset
Definition: TerraView.h:221
A class that defines the interface of a qt bar progress viewer.
QMenu * m_pluginsMenu
Definition: TerraView.h:242
QAction * m_fileSaveProjectAs
Definition: TerraView.h:197
void onLayerDuplicateLayerTriggered()
void onAddQueryLayerTriggered()
QAction * m_toolsDataSourceManagement
Definition: TerraView.h:234
void openProject(const QString &prjFileName)
void addMenusActions()
QAction * m_toolsDataExchangerDirectPopUp
Definition: TerraView.h:232
void onToolsQueryDataSourceTriggered()
te::qt::widgets::ProgressViewerWidget * m_pvw
Definition: TerraView.h:268
void init(const QString &cfgFile)
QMenu * m_helpMenu
Definition: TerraView.h:239
QMenu * m_recentProjectsMenu
Definition: TerraView.h:245
virtual void createDefaultSettings()
te::qt::af::InterfaceController * m_iController
Definition: TerraView.h:256
void onRecentProjectsTriggered(QAction *proj)
void onSaveAsImageTriggered()
void showAboutDialog()
QAction * m_projectUpdateLayerDataSource
Definition: TerraView.h:226
QMenu * m_fileMenu
Definition: TerraView.h:238
void onAttrQueryLayerTriggered()
This file defines a class for a Query Dialog Dialog.
Definition: QueryDialog.h:65
ProjectMetadata * m_project
Definition: TerraView.h:262
QMenu * m_viewToolBarsMenu
Definition: TerraView.h:249
A dataset is the unit of information manipulated by the data access module of TerraLib.
Definition: DataSet.h:112
QAction * m_pluginsManager
Definition: TerraView.h:219
void onNewProjectTriggered()
TerraView(QWidget *parent=0)
void onAddDataSetLayerTriggered()
QAction * m_layerObjectGrouping
Definition: TerraView.h:214
void onQueryLayerCreateLayer(te::map::AbstractLayerPtr layer)
void onHighlightLayerObjects(const te::map::AbstractLayerPtr &layer, te::da::DataSet *dataset, te::se::Style *style)
QAction * m_fileSaveAsImage
Definition: TerraView.h:202
void onLayerGroupingTriggered()
QAction * m_fileOpenProject
Definition: TerraView.h:198
The API for controller of TerraView application.
QAction * m_toolsRasterMultiResolution
Definition: TerraView.h:236
QAction * m_helpContents
Definition: TerraView.h:206
QAction * m_helpAbout
Definition: TerraView.h:205
void onHelpTriggered()
void onLayerChartTriggered()
A connector to controll all non modal interfaces.
void onLayerHistogramTriggered()
te::qt::widgets::QueryDialog * m_queryDlg
Definition: TerraView.h:258
QAction * m_filePrint
Definition: TerraView.h:200
void addPopUpMenu()
This class is widget that provides a menu for composition mode selection.
void onUpdateLayerDataSourceTriggered()
boost::intrusive_ptr< AbstractLayer > AbstractLayerPtr
void onLayerCompositionModeTriggered()
QAction * m_toolsDataExchanger
Definition: TerraView.h:230
A QMainWindow to be used as the basis for TerraLib applications.
QAction * m_layerLinkTable
Definition: TerraView.h:213
QAction * m_layerAttrQuery
Definition: TerraView.h:217
An interface for help managers implementations.
QMenu * m_layerMenu
Definition: TerraView.h:240
te::qt::widgets::HelpManagerImpl * m_helpManager
Definition: TerraView.h:254
TerraViewController * m_tvController
Definition: TerraView.h:264
void closeEvent(QCloseEvent *event)
QAction * m_layerDuplicateLayer
Definition: TerraView.h:212
void onToolsCustomizeTriggered()
void onSaveProjectTriggered(bool save_as=false)
void onCreateNewLayer(te::map::AbstractLayerPtr layer)
void onRestartSystemTriggered()