def set_widgets(self): """Set widgets on the Extent tab""" self.extent_dialog = ExtentSelectorDialog( self.parent.iface, self.parent.iface.mainWindow(), extent=self.parent.dock.extent.user_extent, crs=self.parent.dock.extent.crs) self.extent_dialog.tool.rectangle_created.disconnect( self.extent_dialog.stop_capture) self.extent_dialog.clear_extent.connect( self.parent.dock.extent.clear_user_analysis_extent) self.extent_dialog.extent_defined.connect( self.parent.dock.define_user_analysis_extent) self.extent_dialog.capture_button.clicked.connect( self.start_capture_coordinates) self.extent_dialog.tool.rectangle_created.connect( self.stop_capture_coordinates) self.extent_dialog.label.setText( self.tr('Please specify extent of your analysis:')) if self.swExtent: self.swExtent.hide() self.swExtent = self.extent_dialog.main_stacked_widget self.layoutAnalysisExtent.addWidget(self.swExtent)
def show_extent_selector(self): """Show the extent selector widget for defining analysis extents.""" # import here only so that it is AFTER i18n set up from safe.gui.tools.extent_selector_dialog import ExtentSelectorDialog widget = ExtentSelectorDialog( self.iface, self.iface.mainWindow(), extent=self.dock_widget.extent.user_extent, crs=self.dock_widget.extent.user_extent_crs) widget.clear_extent.connect( self.dock_widget.extent.clear_user_analysis_extent) widget.extent_defined.connect( self.dock_widget.define_user_analysis_extent) # Needs to be non modal to support hide -> interact with map -> show widget.show() # non modal
def setUp(self): """Runs before each test.""" self.extent = QgsRectangle(10.0, 10.0, 20.0, 20.0) self.crs = QgsCoordinateReferenceSystem('EPSG:4326') CANVAS.setExtent(self.extent) self.dialog = ExtentSelectorDialog(IFACE, PARENT, self.extent, self.crs) self.signal_received = False self.dialog.extent_defined.connect(self.extent_defined) self.widget = QtGui.QWidget() self.widget.setGeometry(0, 0, 500, 500) layout = QtGui.QVBoxLayout(self.widget) layout.addWidget(CANVAS) self.widget.show() QTest.qWaitForWindowShown(self.widget) self.dialog.show() QTest.qWaitForWindowShown(self.dialog)