def projectOpened(self): """ Called when a new project is opened in QGIS. """ projectpath = QgsProject.instance().fileName() self.project = Project.from_folder(os.path.dirname(projectpath)) self.projectlabel.setText("Project: {}".format(self.project.name)) # Show panels for panel in self.project.getPanels(): self.mainwindow.addDockWidget(Qt.BottomDockWidgetArea, panel) self.panels.append(panel) layers = self.project.legendlayersmapping().values() self.legendpage.updateitems(layers) try: gps_loglayer = QgsMapLayerRegistry.instance().mapLayersByName( 'gps_log')[0] if roam.config.settings.get('gpslogging', True): self.tracking.enable_logging_on(gps_loglayer) except IndexError: roam.utils.info("No gps_log found for GPS logging") self.tracking.clear_logging() self.canvas_page.project_loaded(self.project) self.showmap()
def projectOpened(self): """ Called when a new project is opened in QGIS. """ projectpath = QgsProject.instance().fileName() self.project = Project.from_folder(os.path.dirname(projectpath)) self.projectlabel.setText("Project: {}".format(self.project.name)) # Show panels for panel in self.project.getPanels(): self.mainwindow.addDockWidget(Qt.BottomDockWidgetArea, panel) self.panels.append(panel) layers = self.project.legendlayersmapping().values() self.legendpage.updateitems(layers) try: gps_loglayer = QgsMapLayerRegistry.instance().mapLayersByName('gps_log')[0] if roam.config.settings.get('gpslogging', True): self.tracking.enable_logging_on(gps_loglayer) except IndexError: roam.utils.info("No gps_log found for GPS logging") self.tracking.clear_logging() self.canvas_page.project_loaded(self.project) self.showmap()
def projectOpened(self): """ Called when a new project is opened in QGIS. """ projectpath = QgsProject.instance().fileName() self.project = Project.from_folder(os.path.dirname(projectpath)) self.projectlabel.setText("Project: {}".format(self.project.name)) try: firstform = self.project.forms[0] self.loadform(self.project.forms[0]) self.dataentryselection.setVisible(True) except IndexError: self.dataentryselection.setVisible(False) # Enable the raster layers button only if the project contains a raster layer. layers = QgsMapLayerRegistry.instance().mapLayers().values() hasrasters = any(layer.type() == QgsMapLayer.RasterLayer for layer in layers) self.actionRaster.setEnabled(hasrasters) self.defaultextent = self.canvas.extent() roam.utils.info("Extent: {}".format(self.defaultextent.toString())) # Show panels for panel in self.project.getPanels(): self.mainwindow.addDockWidget(Qt.BottomDockWidgetArea, panel) self.panels.append(panel) self.infoTool.selectionlayers = self.project.selectlayersmapping() layers = self.project.legendlayersmapping().values() self.legendpage.updateitems(layers) self.actionPan.trigger()
def projectOpened(self): """ Called when a new project is opened in QGIS. """ projectpath = QgsProject.instance().fileName() self.project = Project.from_folder(os.path.dirname(projectpath)) # Show panels for panel in self.project.getPanels(): self.mainwindow.addDockWidget(Qt.BottomDockWidgetArea, panel) self.panels.append(panel) self.clear_plugins() self.add_plugins(self.project.enabled_plugins) layers = self.project.legendlayersmapping().values() self.legendpage.updateitems(layers) gps_loglayer = self.project.gpslog_layer() if gps_loglayer: self.tracking.enable_logging_on(gps_loglayer) else: roam.utils.info("No gps_log found for GPS logging") self.tracking.clear_logging() for layer in roam.api.utils.layers(): if not layer.type() == QgsMapLayer.VectorLayer: continue layer.committedFeaturesRemoved.connect(partial(self.handle_removed_features, layer)) self.canvas_page.project_loaded(self.project) self.showmap() self.set_projectbuttons(True) self.dataentrywidget.project = self.project RoamEvents.projectloaded.emit(self.project)
def projectOpened(self): """ Called when a new project is opened in QGIS. """ projectpath = QgsProject.instance().fileName() self.project = Project.from_folder(os.path.dirname(projectpath)) self.projectlabel.setText("Project: {}".format(self.project.name)) self.createFormButtons(forms=self.project.forms) # Enable the raster layers button only if the project contains a raster layer. layers = QgsMapLayerRegistry.instance().mapLayers().values() hasrasters = any(layer.type() == QgsMapLayer.RasterLayer for layer in layers) self.actionRaster.setEnabled(hasrasters) self.defaultextent = self.canvas.extent() roam.utils.info("Extent: {}".format(self.defaultextent.toString())) # Show panels for panel in self.project.getPanels(): self.mainwindow.addDockWidget(Qt.BottomDockWidgetArea, panel) self.panels.append(panel) # TODO Abstract this out if not self.project.selectlayers: selectionlayers = QgsMapLayerRegistry.instance().mapLayers().values() else: selectionlayers = [] for layername in self.project.selectlayers: try: layer = QgsMapLayerRegistry.instance().mapLayersByName(layername)[0] except IndexError: roam.utils.warning("Can't find QGIS layer for select layer {}".format(layername)) continue selectionlayers.append(layer) self.infoTool.selectionlayers = selectionlayers
def _readProject(self, doc): """ readProject is called by QgsProject once the map layer has been populated with all the layers """ crs = self.canvas_page.init_qgisproject(doc) projectpath = QgsProject.instance().fileName() self.project = Project.from_folder(os.path.dirname(projectpath)) proj=str(self.project.folder) dbpath = proj + "/_data/annotation.sqlite" self.findAnnotationLayer(proj,dbpath) self.projectOpened() GPS.crs = crs
def projectOpened(self): """ Called when a new project is opened in QGIS. """ projectpath = QgsProject.instance().fileName() self.project = Project.from_folder(os.path.dirname(projectpath)) self.projectlabel.setText("Project: {}".format(self.project.name)) # Show panels for panel in self.project.getPanels(): self.mainwindow.addDockWidget(Qt.BottomDockWidgetArea, panel) self.panels.append(panel) self.clear_plugins() self.add_plugins(self.project.enabled_plugins) layers = self.project.legendlayersmapping().values() self.legendpage.updateitems(layers) gps_loglayer = self.project.gpslog_layer() if gps_loglayer: self.tracking.enable_logging_on(gps_loglayer) else: roam.utils.info("No gps_log found for GPS logging") self.tracking.clear_logging() for layer in roam.api.utils.layers(): if not layer.type() == QgsMapLayer.VectorLayer: continue layer.committedFeaturesRemoved.connect(partial(self.handle_removed_features, layer)) self.canvas_page.project_loaded(self.project) self.showmap() self.set_projectbuttons(True) self.dataentrywidget.project = self.project projectscales, _ = QgsProject.instance().readBoolEntry("Scales", "/useProjectScales") if projectscales: projectscales, _ = QgsProject.instance().readListEntry("Scales", "/ScalesList") self.scalewidget.updateScales(projectscales) else: scales = ["1:50000", "1:25000", "1:10000", "1:5000", "1:2500", "1:1000", "1:500", "1:250", "1:200", "1:100"] scales = roam.config.settings.get('scales', scales) self.scalewidget.updateScales(scales) RoamEvents.projectloaded.emit(self.project)
def project_opened(self, doc): """ Called when a new project is opened in QGIS. :param: doc The project document that was opened in QGIS. """ GPS.crs = self.canvas_page.crs projectpath = QgsProject.instance().fileName() self.project = Project.from_folder(os.path.dirname(projectpath)) # Show panels try: ## TODO Port this logic or drop in Roam 3 for panel in self.project.getPanels(): self.mainwindow.addDockWidget(Qt.BottomDockWidgetArea, panel) self.panels.append(panel) except NotImplementedError: pass self.clear_plugins() self.add_plugins(self.project.enabled_plugins) layers = self.project.legendlayersmapping().values() self.legendpage.setRoot(QgsProject.instance().layerTreeRoot()) gps_loglayer = self.project.gpslog_layer() if gps_loglayer: self.tracking.enable_logging_on(gps_loglayer) else: roam.utils.info("No gps_log found for GPS logging") self.tracking.clear_logging() for layer in roam.api.utils.layers(): if not layer.type() == QgsMapLayer.VectorLayer: continue layer.committedFeaturesRemoved.connect( partial(self.handle_removed_features, layer)) self.canvas_page.project_loaded(self.project) self.showmap() self.show_project_menu_buttons(True) self.dataentrywidget.project = self.project RoamEvents.projectloaded.emit(self.project)
def projectOpened(self): """ Called when a new project is opened in QGIS. """ projectpath = QgsProject.instance().fileName() self.project = Project.from_folder(os.path.dirname(projectpath)) # Show panels for panel in self.project.getPanels(): self.mainwindow.addDockWidget(Qt.BottomDockWidgetArea, panel) self.panels.append(panel) self.clear_plugins() self.add_plugins(self.project.enabled_plugins) layers = self.project.legendlayersmapping().values() self.legendpage.updateitems(layers) gps_loglayer = self.project.gpslog_layer() if gps_loglayer: self.tracking.enable_logging_on(gps_loglayer) else: roam.utils.info("No gps_log found for GPS logging") self.tracking.clear_logging() for layer in roam.api.utils.layers(): if not layer.type() == QgsMapLayer.VectorLayer: continue layer.committedFeaturesRemoved.connect( partial(self.handle_removed_features, layer)) self.canvas_page.project_loaded(self.project) self.showmap() self.set_projectbuttons(True) self.dataentrywidget.project = self.project RoamEvents.projectloaded.emit(self.project)