def test_get_icon(self): """Test get icon.""" list_definitions = [hazard_all, exposure_all] for definitions in list_definitions: for definition in definitions: path = get_image_path(definition) message = 'The icon for %s is not set.' % definition['key'] self.assertNotEqual(path, not_set_image_path, message)
def populate_function_table_1(self): """Populate the tblFunctions1 table with available functions.""" hazards = deepcopy(hazard_all) exposures = exposure_all self.lblAvailableFunctions1.clear() self.tblFunctions1.clear() self.tblFunctions1.setColumnCount(len(hazards)) self.tblFunctions1.setRowCount(len(exposures)) for i in range(len(hazards)): hazard = hazards[i] item = QTableWidgetItem() item.setIcon(QIcon(get_image_path(hazard))) item.setText(hazard['name'].capitalize()) item.setTextAlignment(Qt.AlignLeft) self.tblFunctions1.setHorizontalHeaderItem(i, item) for i in range(len(exposures)): exposure = exposures[i] item = QTableWidgetItem() item.setIcon(QIcon(get_image_path(exposure))) item.setText(exposure['name'].capitalize()) self.tblFunctions1.setVerticalHeaderItem(i, item) developer_mode = setting('developer_mode', False, bool) for hazard in hazards: for exposure in exposures: item = QTableWidgetItem() if (exposure in hazard['disabled_exposures'] and not developer_mode): background_colour = unavailable_option_color # Set it disable and un-selectable item.setFlags( item.flags() & ~ Qt.ItemIsEnabled & ~ Qt.ItemIsSelectable ) else: background_colour = available_option_color item.setBackground(QBrush(background_colour)) item.setFont(big_font) item.setTextAlignment(Qt.AlignCenter | Qt.AlignHCenter) item.setData(RoleHazard, hazard) item.setData(RoleExposure, exposure) self.tblFunctions1.setItem( exposures.index(exposure), hazards.index(hazard), item) self.parent.pbnNext.setEnabled(False)
def populate_function_table_1(self): """Populate the tblFunctions1 table with available functions.""" hazards = deepcopy(hazard_all) exposures = exposure_all self.lblAvailableFunctions1.clear() self.tblFunctions1.clear() self.tblFunctions1.setColumnCount(len(hazards)) self.tblFunctions1.setRowCount(len(exposures)) for i in range(len(hazards)): hazard = hazards[i] item = QTableWidgetItem() item.setIcon(QIcon(get_image_path(hazard))) item.setText(hazard['name'].capitalize()) item.setTextAlignment(Qt.AlignLeft) self.tblFunctions1.setHorizontalHeaderItem(i, item) for i in range(len(exposures)): exposure = exposures[i] item = QTableWidgetItem() item.setIcon(QIcon(get_image_path(exposure))) item.setText(exposure['name'].capitalize()) self.tblFunctions1.setVerticalHeaderItem(i, item) developer_mode = setting('developer_mode', False, bool) for hazard in hazards: for exposure in exposures: item = QTableWidgetItem() if (exposure in hazard['disabled_exposures'] and not developer_mode): background_colour = unavailable_option_color # Set it disable and un-selectable item.setFlags( item.flags() & ~ Qt.ItemIsEnabled & ~ Qt.ItemIsSelectable ) else: background_colour = available_option_color item.setBackground(QBrush(background_colour)) item.setFont(big_font) item.setTextAlignment(Qt.AlignCenter | Qt.AlignHCenter) item.setData(RoleHazard, hazard) item.setData(RoleExposure, exposure) self.tblFunctions1.setItem( exposures.index(exposure), hazards.index(hazard), item) self.parent.pbnNext.setEnabled(False)
def set_widgets(self): """Set widgets on the Hazard Layer From Browser tab.""" self.tvBrowserHazard_selection_changed() # Set icon hazard = self.parent.step_fc_functions1.selected_value( layer_purpose_hazard['key']) icon_path = get_image_path(hazard) self.lblIconIFCWHazardFromBrowser.setPixmap(QPixmap(icon_path))
def set_widgets(self): """Set widgets on the Exposure Layer From Browser tab.""" self.tvBrowserExposure_selection_changed() # Set icon exposure = self.parent.step_fc_functions1.selected_value( layer_purpose_exposure['key']) icon_path = get_image_path(exposure) self.lblIconIFCWExposureFromBrowser.setPixmap(QPixmap(icon_path))
def set_widgets(self): """Set widgets on the Hazard Layer From Browser tab.""" self.tvBrowserHazard_selection_changed() # Set icon hazard = self.parent.step_fc_functions1.selected_value( layer_purpose_hazard['key']) icon_path = get_image_path(hazard) self.lblIconIFCWHazardFromBrowser.setPixmap(QPixmap(icon_path))
def set_widgets(self): """Set widgets on the Exposure Layer Origin Type tab.""" # First, list available layers in order to check if there are # any available layers. Note This will be repeated in # set_widgets_step_fc_explayer_from_canvas because we need # to list them again after coming back from the Keyword Wizard. self.parent.step_fc_explayer_from_canvas.\ list_compatible_canvas_layers() lst_wdg = self.parent.step_fc_explayer_from_canvas.lstCanvasExpLayers if lst_wdg.count(): self.rbExpLayerFromCanvas.setText(tr( 'I would like to use an exposure layer already loaded in QGIS' '\n' '(launches the %s for exposure if needed)' ) % self.parent.keyword_creation_wizard_name) self.rbExpLayerFromCanvas.setEnabled(True) self.rbExpLayerFromCanvas.click() else: self.rbExpLayerFromCanvas.setText(tr( 'I would like to use an exposure layer already loaded in QGIS' '\n' '(no suitable layers found)')) self.rbExpLayerFromCanvas.setEnabled(False) self.rbExpLayerFromBrowser.click() # Set the memo labels on this and next (exposure) steps (_, exposure, _, exposure_constraints) = self.\ parent.selected_impact_function_constraints() layer_geometry = exposure_constraints['name'] text = (select_exposure_origin_question % ( layer_geometry, exposure['name'])) self.lblSelectExpLayerOriginType.setText(text) text = (select_explayer_from_canvas_question % ( layer_geometry, exposure['name'])) self.parent.step_fc_explayer_from_canvas.lblSelectExposureLayer.\ setText(text) text = (select_explayer_from_browser_question % ( layer_geometry, exposure['name'])) self.parent.step_fc_explayer_from_browser.lblSelectBrowserExpLayer.\ setText(text) # Set icon icon_path = get_image_path(exposure) self.lblIconIFCWExposureOrigin.setPixmap(QPixmap(icon_path))
def set_widgets(self): """Set widgets on the Exposure Layer Origin Type tab.""" # First, list available layers in order to check if there are # any available layers. Note This will be repeated in # set_widgets_step_fc_explayer_from_canvas because we need # to list them again after coming back from the Keyword Wizard. self.parent.step_fc_explayer_from_canvas.\ list_compatible_canvas_layers() lst_wdg = self.parent.step_fc_explayer_from_canvas.lstCanvasExpLayers if lst_wdg.count(): self.rbExpLayerFromCanvas.setText( tr('I would like to use an exposure layer already loaded in QGIS' '\n' '(launches the %s for exposure if needed)') % self.parent.keyword_creation_wizard_name) self.rbExpLayerFromCanvas.setEnabled(True) self.rbExpLayerFromCanvas.click() else: self.rbExpLayerFromCanvas.setText( tr('I would like to use an exposure layer already loaded in QGIS' '\n' '(no suitable layers found)')) self.rbExpLayerFromCanvas.setEnabled(False) self.rbExpLayerFromBrowser.click() # Set the memo labels on this and next (exposure) steps (_, exposure, _, exposure_constraints) = self.\ parent.selected_impact_function_constraints() layer_geometry = exposure_constraints['name'] text = (select_exposure_origin_question % (layer_geometry, exposure['name'])) self.lblSelectExpLayerOriginType.setText(text) text = (select_explayer_from_canvas_question % (layer_geometry, exposure['name'])) self.parent.step_fc_explayer_from_canvas.lblSelectExposureLayer.\ setText(text) text = (select_explayer_from_browser_question % (layer_geometry, exposure['name'])) self.parent.step_fc_explayer_from_browser.lblSelectBrowserExpLayer.\ setText(text) # Set icon icon_path = get_image_path(exposure) self.lblIconIFCWExposureOrigin.setPixmap(QPixmap(icon_path))
def set_widgets(self): """Set widgets on the Hazard Layer Origin Type tab.""" # First, list available layers in order to check if there are # any available layers. Note This will be repeated in # set_widgets_step_fc_hazlayer_from_canvas because we need # to list them again after coming back from the Keyword Wizard. self.parent.step_fc_hazlayer_from_canvas.\ list_compatible_canvas_layers() lst_wdg = self.parent.step_fc_hazlayer_from_canvas.lstCanvasHazLayers if lst_wdg.count(): wizard_name = self.parent.keyword_creation_wizard_name self.rbHazLayerFromCanvas.setText( tr('I would like to use a hazard layer already loaded in QGIS\n' '(launches the {wizard_name} for hazard if needed)').format( wizard_name=wizard_name)) self.rbHazLayerFromCanvas.setEnabled(True) self.rbHazLayerFromCanvas.click() else: self.rbHazLayerFromCanvas.setText( tr('I would like to use a hazard layer already loaded in QGIS\n' '(no suitable layers found)')) self.rbHazLayerFromCanvas.setEnabled(False) self.rbHazLayerFromBrowser.click() # Set the memo labels on this and next (hazard) steps (hazard, _, hazard_constraints, _) = self.\ parent.selected_impact_function_constraints() layer_geometry = hazard_constraints['name'] text = (select_hazard_origin_question % (layer_geometry, hazard['name'])) self.lblSelectHazLayerOriginType.setText(text) text = (select_hazlayer_from_canvas_question % (layer_geometry, hazard['name'])) self.parent.step_fc_hazlayer_from_canvas.\ lblSelectHazardLayer.setText(text) text = (select_hazlayer_from_browser_question % (layer_geometry, hazard['name'])) self.parent.step_fc_hazlayer_from_browser.\ lblSelectBrowserHazLayer.setText(text) # Set icon icon_path = get_image_path(hazard) self.lblIconIFCWHazardOrigin.setPixmap(QPixmap(icon_path))
def set_widgets(self): """Set widgets on the Hazard Layer Origin Type tab.""" # First, list available layers in order to check if there are # any available layers. Note This will be repeated in # set_widgets_step_fc_hazlayer_from_canvas because we need # to list them again after coming back from the Keyword Wizard. self.parent.step_fc_hazlayer_from_canvas.\ list_compatible_canvas_layers() lst_wdg = self.parent.step_fc_hazlayer_from_canvas.lstCanvasHazLayers if lst_wdg.count(): wizard_name = self.parent.keyword_creation_wizard_name self.rbHazLayerFromCanvas.setText(tr( 'I would like to use a hazard layer already loaded in QGIS\n' '(launches the {wizard_name} for hazard if needed)' ).format(wizard_name=wizard_name)) self.rbHazLayerFromCanvas.setEnabled(True) self.rbHazLayerFromCanvas.click() else: self.rbHazLayerFromCanvas.setText(tr( 'I would like to use a hazard layer already loaded in QGIS\n' '(no suitable layers found)')) self.rbHazLayerFromCanvas.setEnabled(False) self.rbHazLayerFromBrowser.click() # Set the memo labels on this and next (hazard) steps (hazard, _, hazard_constraints, _) = self.\ parent.selected_impact_function_constraints() layer_geometry = hazard_constraints['name'] text = (select_hazard_origin_question % ( layer_geometry, hazard['name'])) self.lblSelectHazLayerOriginType.setText(text) text = (select_hazlayer_from_canvas_question % ( layer_geometry, hazard['name'])) self.parent.step_fc_hazlayer_from_canvas.\ lblSelectHazardLayer.setText(text) text = (select_hazlayer_from_browser_question % ( layer_geometry, hazard['name'])) self.parent.step_fc_hazlayer_from_browser.\ lblSelectBrowserHazLayer.setText(text) # Set icon icon_path = get_image_path(hazard) self.lblIconIFCWHazardOrigin.setPixmap(QPixmap(icon_path))
def on_lstSubcategories_itemSelectionChanged(self): """Update subcategory description label. .. note:: This is an automatic Qt slot executed when the subcategory selection changes. """ self.clear_further_steps() # Set widgets subcategory = self.selected_subcategory() # Exit if no selection if not subcategory: return # Set description label self.lblDescribeSubcategory.setText(subcategory['description']) icon_path = get_image_path(subcategory) self.lblIconSubcategory.setPixmap(QPixmap(icon_path)) # Enable the next button self.parent.pbnNext.setEnabled(True)
def on_lstSubcategories_itemSelectionChanged(self): """Update subcategory description label. .. note:: This is an automatic Qt slot executed when the subcategory selection changes. """ self.clear_further_steps() # Set widgets subcategory = self.selected_subcategory() # Exit if no selection if not subcategory: return # Set description label self.lblDescribeSubcategory.setText(subcategory['description']) icon_path = get_image_path(subcategory) self.lblIconSubcategory.setPixmap(QPixmap(icon_path)) # Enable the next button self.parent.pbnNext.setEnabled(True)
def set_widgets(self): """Set widgets on the Hazard Layer From TOC tab.""" # The list is already populated in the previous step, but now we # need to do it again in case we're back from the Keyword Wizard. # First, preserve self.parent.layer before clearing the list last_layer = self.parent.layer and self.parent.layer.id() or None self.lblDescribeCanvasHazLayer.clear() self.list_compatible_canvas_layers() self.auto_select_one_item(self.lstCanvasHazLayers) # Try to select the last_layer, if found: if last_layer: layers = [] for index in range(self.lstCanvasHazLayers.count()): item = self.lstCanvasHazLayers.item(index) layers += [item.data(Qt.UserRole)] if last_layer in layers: self.lstCanvasHazLayers.setCurrentRow(layers.index(last_layer)) # Set icon hazard = self.parent.step_fc_functions1.selected_value( layer_purpose_hazard['key']) icon_path = get_image_path(hazard) self.lblIconIFCWHazardFromCanvas.setPixmap(QPixmap(icon_path))
def set_widgets(self): """Set widgets on the Exposure Layer From Canvas tab.""" # The list is already populated in the previous step, but now we # need to do it again in case we're back from the Keyword Wizard. # First, preserve self.parent.layer before clearing the list last_layer = self.parent.layer and self.parent.layer.id() or None self.lblDescribeCanvasExpLayer.clear() self.list_compatible_canvas_layers() self.auto_select_one_item(self.lstCanvasExpLayers) # Try to select the last_layer, if found: if last_layer: layers = [] for indx in range(self.lstCanvasExpLayers.count()): item = self.lstCanvasExpLayers.item(indx) layers += [item.data(Qt.UserRole)] if last_layer in layers: self.lstCanvasExpLayers.setCurrentRow(layers.index(last_layer)) # Set icon exposure = self.parent.step_fc_functions1.selected_value( layer_purpose_exposure['key']) icon_path = get_image_path(exposure) self.lblIconIFCWExposureFromCanvas.setPixmap(QPixmap(icon_path))