3 #include "ui_BaseApplicationForm.h" 20 #include "../widgets/canvas/GridPropertyWidget.h" 21 #include "../widgets/canvas/ScalePropertyWidget.h" 23 #include "../widgets/layer/explorer/FolderItem.h" 24 #include "../widgets/layer/explorer/LayerItem.h" 25 #include "../widgets/layer/explorer/StyleItem.h" 26 #include "../widgets/layer/explorer/LayerViewDelegate.h" 27 #include "../widgets/layer/explorer/RasterLayerDelegate.h" 30 #include "../widgets/layer/info/LayerPropertiesInfoWidget.h" 31 #include "../widgets/layer/utils/CharEncodingMenuWidget.h" 32 #include "../widgets/layer/utils/SaveSelectedObjectsDialog.h" 33 #include "../widgets/tools/Info.h" 34 #include "../widgets/tools/Measure.h" 35 #include "../widgets/tools/Pan.h" 36 #include "../widgets/tools/Selection.h" 37 #include "../widgets/tools/ZoomArea.h" 38 #include "../widgets/tools/ZoomClick.h" 39 #include "../widgets/srs/SRSManagerDialog.h" 40 #include "../widgets/Utils.h" 41 #include "../widgets/utils/ScopedCursor.h" 42 #include "../widgets/utils/InputCoordinateDialog.h" 44 #include "../../Defines.h" 45 #include "../../common/TerraLib.h" 46 #include "../../common/progress/ProgressManager.h" 47 #include "../../common/progress/TaskProgress.h" 48 #include "../../dataaccess/dataset/ObjectIdSet.h" 49 #include "../../dataaccess/utils/Utils.h" 50 #include "../../geometry/GeometryProperty.h" 51 #include "../../maptools/Utils.h" 52 #include "../../raster/RasterProperty.h" 56 #include <QInputDialog> 57 #include <QMessageBox> 59 #include <QToolButton> 60 #include <QStyledItemDelegate> 65 std::vector<te::qt::af::DataSetTableDockWidget*>::const_iterator it;
67 for(it = docs.begin(); it != docs.end(); ++it)
68 if((*it)->getLayer() == layer)
116 m_ui =
new Ui::BaseApplicationForm;
127 view->setItemDelegate(ld);
134 QMessageBox::warning(
this,
"Error", e.
what());
140 return m_ui->m_layerExplorer;
145 return m_ui->m_display;
150 std::vector<te::qt::af::DataSetTableDockWidget*>::const_iterator it;
152 for (it = docs.begin(); it != docs.end(); ++it)
153 if ((*it)->getLayer() == layer)
161 return m_ui->m_layerExplorerDockWidget;
176 QString text =
"(" + QString::number(ctE->
m_x,
'f', 5) +
" , " + QString::number(ctE->
m_y,
'f', 5) +
")";
185 std::pair<int, std::string> srid = mEvt->
m_srid;
194 if (lEvt->
m_layer ==
nullptr || lEvt->
m_layer->getSelected() ==
nullptr)
197 m_selected->setText(tr(
"Selected rows: ") + QString::number(lEvt->
m_layer->getSelected()->size()));
213 std::list<te::map::AbstractLayerPtr> ls;
227 QCursor zoomAreaCursor(QIcon::fromTheme(
"zoom-in").pixmap(
m_mapCursorSize));
241 QCursor zoomOutCursor(QIcon::fromTheme(
"zoom-out").pixmap(
m_mapCursorSize));
274 std::list<te::map::AbstractLayerPtr> ls;
292 QPixmap pxmap = QIcon::fromTheme(
"pointer-info").pixmap(
m_mapCursorSize);
293 QCursor infoCursor(pxmap, 0, 0);
298 connect(
m_layerExplorer->
getExplorer(), SIGNAL(selectedLayersChanged(
const std::list<te::map::AbstractLayerPtr>&)), info, SLOT(setLayers(
const std::list<te::map::AbstractLayerPtr>&)));
303 std::list<te::map::AbstractLayerPtr> layers;
307 std::list<te::map::AbstractLayerPtr>::iterator it = layers.begin();
309 while (it != layers.end())
313 layer->clearSelected();
330 connect(
m_layerExplorer->
getExplorer(), SIGNAL(selectedLayersChanged(
const std::list<te::map::AbstractLayerPtr>&)), selection, SLOT(setLayers(
const std::list<te::map::AbstractLayerPtr>&)));
340 srsDialog.setWindowTitle(tr(
"Choose the SRS"));
342 if (srsDialog.exec() == QDialog::Rejected)
355 std::pair<int, std::string> srid = std::make_pair(
TE_UNKNOWN_SRS,
"");
375 QCursor measureDistanceCursor(QIcon::fromTheme(
"distance-measure-cursor").pixmap(
m_mapCursorSize), 0, 0);
386 QCursor measureAreaCursor(QIcon::fromTheme(
"area-measure-cursor").pixmap(
m_mapCursorSize), 0, 0);
397 QCursor measureAngleCursor(QIcon::fromTheme(
"angle-measure-cursor").pixmap(
m_mapCursorSize), 0, 0);
405 std::string coord(
"0, 0");
408 wid->move(width() / 2, height() / 2);
437 double scale = var.toDouble();
470 QModelIndexList ls =
getLayerExplorer()->selectionModel()->selectedIndexes();
474 QString msg = tr(
"Select at least one item to be removed!");
475 QMessageBox::warning(
this, tr(
"Remove item"), msg);
481 QString questionTitle;
485 msg = tr(
"Do you really want to remove the selected item?");
486 questionTitle = tr(
"Remove Item");
490 msg = tr(
"Do you really want to remove the selected items?");
491 questionTitle = tr(
"Remove Items");
494 int reply = QMessageBox::question(
this, questionTitle, msg, QMessageBox::No, QMessageBox::Yes);
496 if(reply == QMessageBox::No)
502 if (items.size() == 1 && (*items.begin())->getType() ==
"STYLE")
513 std::unique_ptr<te::da::DataSetType> dsType = layer->getSchema();
519 if (layer->getGrouping())
520 layer->setGrouping(
nullptr);
525 if (dsType->hasGeom())
531 else if (dsType->hasRaster())
538 layer->setStyle(newStyle);
551 std::list<te::map::AbstractLayerPtr> lays2;
559 bool needRefresh = !lays2.empty();
561 for (std::list<te::map::AbstractLayerPtr>::iterator it = lays2.begin(); it != lays2.end(); ++it)
567 for (std::list<te::map::AbstractLayerPtr>::iterator it = lays.begin(); it != lays.end() && !needRefresh; ++it)
588 if (selectedLayerItems.empty())
591 bool renameAllowed = (selectedLayerItems.size() == 1 && (selectedLayerItems.front()->getType() ==
"LAYER" || selectedLayerItems.front()->getType() ==
"FOLDER"));
595 QString msg = tr(
"Select only one layer to be renamed!");
596 QMessageBox::warning(
this, tr(
"Rename Layer"), msg);
613 QMessageBox::warning(
this,
m_app->
getAppTitle(), tr(
"Enter the new name!"));
619 else if(item->
getType() ==
"FOLDER")
622 std::list<te::map::AbstractLayerPtr> ls;
633 if(selectedLayerItems.empty())
636 for(std::list<te::qt::widgets::TreeItem*>::iterator it = selectedLayerItems.begin(); it != selectedLayerItems.end(); ++it)
648 if(selectedLayerItems.empty())
651 for(std::list<te::qt::widgets::TreeItem*>::iterator it = selectedLayerItems.begin(); it != selectedLayerItems.end(); ++it)
677 QMessageBox::warning(
this,
m_app->
getAppTitle(), tr(
"There's no selected layer."));
689 doc->setWidget(info);
690 doc->setWindowTitle(info->windowTitle());
691 doc->setAttribute(Qt::WA_DeleteOnClose,
true);
702 QMessageBox::warning(
this,
m_app->
getAppTitle(), tr(
"There's no selected layer."));
706 std::list<te::map::AbstractLayerPtr>::iterator it = layers.begin();
708 while(it != layers.end())
712 if(!layer->isValid())
718 layer->clearSelected();
733 QMessageBox::warning(
this,
m_app->
getAppTitle(), tr(
"There's no selected layer."));
737 std::list<te::map::AbstractLayerPtr>::iterator it = layers.begin();
739 while (it != layers.end())
743 if (!layer->isValid() || !layer->getSchema()->hasGeom())
749 std::unique_ptr<te::da::DataSetType>
dt = layer->getSchema();
750 std::unique_ptr<te::da::DataSet>
ds = layer->getData();
756 if(selected && (selected->size() > 0))
759 layer->clearSelected();
761 layer->select(allObjects);
776 QMessageBox::warning(
this,
m_app->
getAppTitle(), tr(
"There's no selected layer."));
780 srsDialog.setWindowTitle(tr(
"Choose the SRS"));
782 if(srsDialog.exec() == QDialog::Rejected)
787 for (std::list<te::map::AbstractLayerPtr>::iterator it = layers.begin(); it != layers.end(); ++it)
791 lay->setSRID(srid.first);
801 if(selectedLayers.empty())
804 tr(
"Select a layer in the layer explorer!"));
809 std::list<te::map::AbstractLayerPtr>::iterator it = selectedLayers.begin();
811 while(it != selectedLayers.end())
813 if(!it->get()->isValid())
816 tr(
"There are invalid layers selected!"));
834 std::list<te::map::AbstractLayerPtr> ls;
851 display->
setSRID(selectedLayer->getSRID());
858 QMessageBox::warning(
this,
m_app->
getAppTitle(), tr(
"The spatial reference system of the map display and the layer are not compatible!"));
862 if(display->
getSRID() != selectedLayer->getSRID())
867 catch(
const std::exception& e)
877 if(selectedLayers.empty())
879 QString msg = tr(
"Select at least a layer to accomplish this operation!");
885 std::list<te::map::AbstractLayerPtr>::iterator it = selectedLayers.begin();
887 while(it != selectedLayers.end())
889 if(!it->get()->isValid())
892 tr(
"There are invalid layers selected!"));
904 QString msg = tr(
"Select object(s) in the selected layer(s) to accomplish this operation!");
915 if(selectedLayers.empty())
917 QString msg = tr(
"Select at least a layer to accomplish this operation!");
923 std::list<te::map::AbstractLayerPtr>::iterator it = selectedLayers.begin();
925 while(it != selectedLayers.end())
927 if(!it->get()->isValid())
930 tr(
"There are invalid layers selected!"));
946 double halfWidth = displayExtent.
getWidth() * 0.5;
947 double halfHeight = displayExtent.
getHeight() * 0.5;
951 newExtent.
m_llx = centerOfSelectedExtent.x - halfWidth;
952 newExtent.
m_lly = centerOfSelectedExtent.y - halfHeight;
954 newExtent.
m_urx = centerOfSelectedExtent.x + halfWidth;
955 newExtent.
m_ury = centerOfSelectedExtent.y + halfHeight;
966 if (selectedLayers.empty())
968 QString msg = tr(
"Select one layer to accomplish this operation!");
974 std::list<te::map::AbstractLayerPtr>::iterator it = selectedLayers.begin();
976 if (!it->get()->isValid())
979 tr(
"This is a invalid layer selected!"));
988 dlg.setWindowTitle(dlg.windowTitle() +
" (" + tr(
"Layer") +
":" + selectedLayer->getTitle().c_str() +
")");
992 if (dlg.exec() != QDialog::Accepted)
1004 catch(
const std::exception& e)
1015 if (!selectedLayers.empty())
1017 std::list<te::map::AbstractLayerPtr>::iterator it = selectedLayers.begin();
1026 checked ? showFullScreen() : showMaximized();
1041 for (std::size_t i = 0; i <
m_tables.size(); ++i)
1065 QMessageBox::warning(
this,
m_app->
getAppTitle(), tr(
"There's no selected layer."));
1070 for(std::list<te::map::AbstractLayerPtr>::iterator it = layers.begin(); it != layers.end(); ++it)
1072 if(!(*it)->isValid())
1074 QMessageBox::warning(
this,
m_app->
getAppTitle(), tr(
"There are invalid layers selected!"));
1083 if(lay->getSchema()->hasRaster())
1093 addDockWidget(Qt::BottomDockWidgetArea, doc);
1116 std::vector<te::qt::af::DataSetTableDockWidget*>::iterator it;
1135 doc->setWindowTitle(
"Histogram");
1136 doc->setWindowIcon(QIcon::fromTheme(
"chart-bar"));
1141 addDockWidget(Qt::RightDockWidgetArea, doc, Qt::Horizontal);
1144 catch (
const std::exception& e)
1159 QMainWindow::addDockWidget(Qt::RightDockWidgetArea, wid);
1166 QMainWindow::addDockWidget(Qt::RightDockWidgetArea, wid);
1177 assert(layer.get());
1185 QMainWindow::setCentralWidget(
m_ui->m_display);
1240 QSettings user_settings(QSettings::IniFormat,
1241 QSettings::UserScope,
1242 QApplication::instance()->organizationName(),
1243 QApplication::instance()->applicationName());
1245 QFileInfo info(user_settings.fileName());
1266 m_statusbar->addPermanentWidget(mapUnknownSRIDToolButton);
1270 mapSRIDToolButton->setDefaultAction(
m_mapSRID);
1271 m_statusbar->addPermanentWidget(mapSRIDToolButton);
1295 m_statusbar->addPermanentWidget(stopDrawToolButton);
1318 m_scaleCmbBox->addItem(
"100 000", QVariant((
double)100000));
1319 m_scaleCmbBox->addItem(
"125 000", QVariant((
double)125000));
1320 m_scaleCmbBox->addItem(
"150 000", QVariant((
double)150000));
1321 m_scaleCmbBox->addItem(
"175 000", QVariant((
double)175000));
1322 m_scaleCmbBox->addItem(
"200 000", QVariant((
double)200000));
1323 m_scaleCmbBox->addItem(
"250 000", QVariant((
double)250000));
1324 m_scaleCmbBox->addItem(
"500 000", QVariant((
double)500000));
1325 m_scaleCmbBox->addItem(
"750 000", QVariant((
double)750000));
1326 m_scaleCmbBox->addItem(
"1 000 000", QVariant((
double)1000000));
1327 m_scaleCmbBox->addItem(
"1 250 000", QVariant((
double)1250000));
1328 m_scaleCmbBox->addItem(
"1 500 000", QVariant((
double)1500000));
1329 m_scaleCmbBox->addItem(
"1 750 000", QVariant((
double)1750000));
1330 m_scaleCmbBox->addItem(
"2 000 000", QVariant((
double)2000000));
1341 m_statusbar->addPermanentWidget(internalSettingsToolButton);
1352 initAction(
m_layerRemove,
"layer-remove",
"Project.Remove Layer", tr(
"&Remove Item(s)"), tr(
"Remove items(s) from the project"),
true,
false,
true,
this);
1353 initAction(
m_layerRename,
"layer-rename",
"Project.Rename Layer", tr(
"Rename Layer..."), tr(
"Rename layer"),
true,
false,
true,
this);
1364 initAction(
m_layerSaveSelectedObjects,
"layer-save-selected-obj",
"Layer.Save Selected Objects", tr(
"Save Selected Objects..."), tr(
"Save a new layer based on the selected objects from this layer"),
true,
false,
true,
this);
1395 QActionGroup* mapToolsGroup =
new QActionGroup(this->menuBar());
1396 mapToolsGroup->setObjectName(
"Map.ToolsGroup");
1399 mapToolsGroup->addAction(
m_mapPan);
1413 m_menubar->setGeometry(QRect(0, 0, 640, 21));
1423 std::vector<QToolBar*>::iterator it;
1425 for (it = bars.begin(); it != bars.end(); ++it)
1427 QToolBar* bar = *it;
1428 addToolBar(Qt::TopToolBarArea, bar);
1492 const QString& text,
const QString& tooltip,
1493 bool iconVisibleInMenu,
bool isCheckable,
1494 bool enabled,
QObject* parent)
1496 act =
new QAction(parent);
1498 if (!icon.isEmpty())
1499 act->setIcon(QIcon::fromTheme(icon));
1501 act->setObjectName(name);
1503 act->setIconVisibleInMenu(iconVisibleInMenu);
1504 act->setCheckable(isCheckable);
1505 act->setEnabled(enabled);
1507 #ifndef QT_NO_TOOLTIP 1508 act->setToolTip(tooltip);
1518 QString sridText(
"EPSG:" + QString::number(srid));
1524 palette.setColor(QPalette::Text, Qt::red);
1527 newFont.setBold(
true);
virtual void initFramework(const QString &cfgFile)
This event signals that a new layer was created.
ApplicationController * m_app
void onLayerSelectionChanged(const te::map::AbstractLayerPtr &layer)
TEDATAACCESSEXPORT te::rst::RasterProperty * GetFirstRasterProperty(const DataSetType *dt)
QAction * m_layerClearSelectedLayer
virtual void setConfigFile(const std::string &configFileName)
Tells wich configuration file to be used by the controller during its initialization.
QAction * m_mapShowGeographicGrid
virtual void initSlotsConnections()
void onCheckSelectedLayerTriggered()
void onZoomInToggled(bool checked)
double m_x
The x coordinate value.
QAction * m_viewFullScreen
The Style defines the styling that is to be applied to a geographic dataset (vector geometries or cov...
This is the base class for layers.
void onStopDrawTriggered()
te::map::AbstractLayerPtr m_layer
Layer whose selected objects were changed.
te::qt::af::DataSetTableDockWidget * GetLayerDock(const te::map::AbstractLayer *layer, const std::vector< te::qt::af::DataSetTableDockWidget * > &docs)
void onPanToggled(bool checked)
#define TE_UNKNOWN_SRS
A numeric value to represent a unknown SRS identification in TerraLib.
void fit(const std::list< te::map::AbstractLayerPtr > &layers)
virtual void initializePlugins()
Load the plugin list and initialize the plugins enabled by the user.
const QString & getAppTitle() const
Returns the application title.
QDockWidget * getLayerExplorerDock()
void onScaleComboBoxActivated()
void onLayerSelectedObjectsChanged(const te::map::AbstractLayerPtr &layer)
static void prepareQtEnvironment(const QString &configFileName, const QString &splashFileName)
QAction * m_mapZoomExtent
virtual std::list< AbstractLayerPtr > getLayerList() const
void onLayerPanToSelectedOnMapDisplayTriggered()
QAction * m_mapPreviousExtent
A base class for application events.
virtual ~BaseApplication()
void onInternalSettingsDestroyed()
te::qt::widgets::MapDisplay * getDisplay()
virtual const char * what() const
It outputs the exception message.
QAction * m_layerRemoveItem
void registerMenuBar(QMenuBar *bar)
Register the bar.
const QString & getAppIconName() const
Returns the application icon.
void onChartDisplayCreated(te::qt::widgets::ChartDisplayWidget *chartDisplay, te::map::AbstractLayer *layer)
void onClearSelectedLayerTriggered()
A connector for the te::qt::widgets::StyleDockWidget class to the Application Framework.
A connector for the te::qt::widgets::LayerExplorer class to the Application Framework.
This event signals that the srid of the map display changed.
TESEEXPORT Style * CreateCoverageStyle(const std::vector< te::rst::BandProperty * > &properties)
Try creates an appropriate coverage style based on given band properties.
QAction * m_mapStopDrawing
void onLayerRemoveTriggered()
virtual void makeDialog()
A connector for the te::qt::widgets::StyleDockWidget class to the Application Framework.
Contains a list of the map display events.
double m_urx
Upper right corner x-coordinate.
void onMapRemoveSelectionTriggered()
A singleton for holding he application splash screen.
void onLayerPropertiesTriggered()
double getWidth() const
It returns the envelope width.
void onLayerSRSTriggered()
te::qt::widgets::StyleDockWidget * getExplorer() const
double m_y
The y coordinate value.
virtual void initStatusBar()
void onStyleExplorerVisibilityChanged(bool visible)
void onZoomExtentTriggered()
An utility struct for representing 2D coordinates.
static te::dt::Date ds(2010, 01, 01)
virtual void onApplicationTriggered(te::qt::af::evt::Event *e)
TEQTAFEXPORT void UpdateUserSettings()
Reads and return a te::qt::af::Project from the file.
QAction * m_layerProperties
void onInfoToggled(bool checked)
This event indicates that the selected objects of the layer were changed.
void onLayerSaveSelectedObjectsTriggered()
void onShowGraphicScaleTriggered(bool checked)
virtual void createDefaultSettings()=0
virtual void finalizePlugins()
virtual void init(const QString &cfgFile)
A Dialog to be used to inform about internal settings.
te::qt::widgets::LayerItemView * getExplorer() const
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)
static void prepareQtEnvironment(const QString &cfgFile, const QString &splashImg)
te::qt::af::DataSetTableDockWidget * getLayerDock(const te::map::AbstractLayer *layer, const std::vector< te::qt::af::DataSetTableDockWidget * > &docs)
virtual void initialize()
Initializes the application framework.
virtual void setExtent(te::gm::Envelope &e, bool doRefresh=true)
It sets the world visible area and refreshes the contents in the map display.
TESEEXPORT Style * CreateFeatureTypeStyle(const te::gm::GeomType &geomType)
Try creates an appropriate feature type style based on given geometry type.
virtual void initActions()
QAction * m_mapMeasureAngle
TEMAPEXPORT te::gm::Envelope GetSelectedExtent(const std::list< te::map::AbstractLayerPtr > layers, int srid, bool onlyVisibles)
It calculates the extent of selected objects of the given layers in the given SRID.
QAction * m_layerCharEncoding
void onMapSetUnknwonSRIDTriggered()
Coord2D getCenter() const
It returns the rectangle's center coordinate.
void onMapCoordinateFinderTriggered()
virtual void setLayerList(const std::list< te::map::AbstractLayerPtr > &layers)
It sets the layer list to be showed in the Map Display.
void onPreviousExtentTriggered()
double m_llx
Lower left corner x-coordinate.
QColor getSelectionColor() const
Returns the application selection color.
A connector of the te::qt::widgets::MapDisplay class to the Application Framework.
QAction * m_viewDataTable
void onEditGraphicScaleTriggered()
static ApplicationController & getInstance()
It returns a reference to the singleton instance.
void onMeasureAngleToggled(bool checked)
An Envelope defines a 2D rectangular region.
A connector for the te::qt::widgets::LayerExplorer class to the Application Framework.
This class represents a set of unique ids created in the same context. i.e. from the same data set...
QAction * m_internalSettings
void onMeasureDistanceToggled(bool checked)
virtual int getSRID() const
It return the Spatial Reference System used by the Map Display.
void onSelectionToggled(bool checked)
This class controls how a set of layers are displayed.
Contains a list of the layer events.
GeomType getGeometryType() const
It returns the geometry subtype allowed for the property.
static te::dt::TimeDuration dt(20, 30, 50, 11)
void onLayerRemoveItemTriggered()
void onLayerFitOnMapDisplayTriggered()
virtual const te::gm::Envelope & getExtent() const
It returns the world extent showned by the MapDisplay.
void onMeasureAreaToggled(bool checked)
te::qt::widgets::LayerItemView * getLayerExplorer()
void onMapShowGeographicGridToggled(bool check)
void onLayerFitSelectedOnMapDisplayTriggered()
void onFullScreenToggled(bool checked)
void draw(const std::list< te::map::AbstractLayerPtr > &layers)
It draws the given layer list.
void cancelTasks(unsigned int type)
Cancels the task with the given task type and inform all viewers that a task was canceled.
void onScaleDisplayChanged()
void onLayerExplorerVisibilityChanged(bool visible)
void onMapSRIDTriggered()
TEDATAACCESSEXPORT ObjectIdSet * GenerateOIDSet(DataSet *dataset, const DataSetType *type)
Utility functions for the data access module.
Ui::BaseApplicationForm * m_ui
This class is designed to declare objects to be thrown as exceptions by TerraLib. ...
te::qt::widgets::CharEncodingMenuWidget * m_encodingMenu
QAction * m_layerRemoveObjectSelection
virtual void onLayerShowTableTriggered()
QAction * m_mapEditGraphicScale
QAction * m_mapUnknownSRID
BaseApplication(QWidget *parent=0)
double m_lly
Lower left corner y-coordinate.
void triggered(te::qt::af::evt::Event *e)
Signals a mouse moved over the current display.
void addListener(QObject *obj, const ListenerType &type=BOTH)
Insert an application item that will listen to framework events.
QAction * m_layerCheckSelectedLayer
void onLayerRemoveSelectionTriggered()
QAction * m_mapNextExtent
std::vector< te::qt::af::DataSetTableDockWidget * > m_tables
QAction * m_layerSaveSelectedObjects
void trigger(te::qt::af::evt::Event *)
QLineEdit * m_coordinateLineEdit
double m_ury
Upper right corner y-coordinate.
te::qt::widgets::MapDisplay * getMapDisplay()
void onDisplayDataTableChanged(bool visible)
QAction * m_layerFitOnMapDisplay
void onLayerRenameTriggered()
void onLayerInvertSelectionTriggered()
virtual void initToolbars()
void removeListener(QObject *obj)
Remove the obj from the list of event listeners.
void setMapSRIDLineEdit(const int srid)
QAction * m_mapMeasureArea
void onEditGridTriggered()
QAction * m_viewStyleExplorer
QAction * m_layerPanToSelectedOnMapDisplay
void onZoomOutToggled(bool checked)
void onNextExtentTriggered()
QAction * m_mapPanToCoordinateTool
QAction * m_layerShowTable
std::vector< te::rst::BandProperty * > & getBandProperties()
Returns a reference to the list of bands definitions.
std::list< te::map::AbstractLayerPtr > GetSelectedLayersOnly(te::qt::widgets::LayerItemView *view)
QAction * m_mapRemoveSelection
virtual void onInternalSettingsTriggered()
QAction * m_viewLayerExplorer
TEDATAACCESSEXPORT te::gm::GeometryProperty * GetFirstGeomProperty(const DataSetType *dt)
QComboBox * m_scaleCmbBox
boost::intrusive_ptr< AbstractLayer > AbstractLayerPtr
void transform(int oldsrid, int newsrid)
It will transform the coordinates of the Envelope from the old SRS to the new one.
Contains the list of the application events.
A QMainWindow to be used as the basis for TerraLib applications.
QLineEdit * m_mapSRIDLineEdit
double getHeight() const
It returns the envelope height.
The base API for controllers of TerraLib applications.
bool isValid() const
It tells if the rectangle is valid or not.
QAction * m_mapMeasureDistance
void registerToolBar(const QString &id, QToolBar *bar)
Register the toolbar in the list of the known toolbars.
void difference(const ObjectIdSet *rhs)
It performs the difference operation between this ObjectIdSet and the given ObjectIdSet.
TEQTAFEXPORT std::vector< QToolBar * > ReadToolBarsFromSettings(te::qt::af::ApplicationController *appController, QWidget *barsParent=0)
Returns a vector of tool bars registered in the QSettings.
virtual void finalize()
Finalize the application framework.
std::pair< int, std::string > m_srid
void onLayerTableClose(te::qt::af::DataSetTableDockWidget *wid)
StyleExplorer * m_styleExplorer
QAction * m_layerInvertObjectSelection
InternalSettingsDialog * m_internalSettingsDlg
QAction * m_mapShowGraphicScale
LayerExplorer * m_layerExplorer
QAction * m_layerFitSelectedOnMapDisplay
void onLayerCharEncodingHovered()