def set_org_disclaimer(self): """Auto-connect slot activated when org disclaimer checkbox is toggled. """ settings = QtCore.QSettings() if self.custom_org_disclaimer_checkbox.isChecked(): # Show previous organisation disclaimer org_disclaimer = settings.value('inasafe/reportDisclaimer', disclaimer(), type=str) else: # Set the organisation disclaimer to the default one org_disclaimer = disclaimer() self.txtDisclaimer.setPlainText(org_disclaimer)
def set_org_disclaimer(self): """Auto-connect slot activated when org disclaimer checkbox is toggled. """ settings = QtCore.QSettings() if self.custom_org_disclaimer_checkbox.isChecked(): # Show previous organisation disclaimer org_disclaimer = settings.value( 'inasafe/reportDisclaimer', disclaimer(), type=str) else: # Set the organisation disclaimer to the default one org_disclaimer = disclaimer() self.txtDisclaimer.setPlainText(org_disclaimer)
def __init__(self, parent=None): """Constructor for the dialog. :param parent: Parent widget of this dialog :type parent: QWidget """ QtGui.QDialog.__init__(self, parent) self.setupUi(self) self.setWindowTitle(self.tr('About InaSAFE %s' % get_version())) self.parent = parent # Set Limitations Text limitations_text = '' for index, limitation in enumerate(limitations()): limitations_text += '%s. %s \n' % (index + 1, limitation) self.limitations_text.setFontPointSize(11) self.limitations_text.setText(limitations_text) # Set Disclaimer Text self.disclaimer_text.setFontPointSize(11) self.disclaimer_text.setText(disclaimer()) # Set Attributions text image_credits_text = '' for index, limitation in enumerate(self.attributions()): image_credits_text += '%s. %s \n' % (index + 1, limitation) self.image_credits_text.setFontPointSize(11) self.image_credits_text.setText(image_credits_text)
def __init__(self, parent=None): """Constructor for the dialog. :param parent: Parent widget of this dialog :type parent: QWidget """ QtGui.QDialog.__init__(self, parent) self.setupUi(self) self.setWindowTitle(self.tr('About InaSAFE %s' % get_version())) self.parent = parent # Set Limitations Text limitations_text = '' for index, limitation in enumerate(limitations()): limitations_text += '%s. %s \n' % (index + 1, limitation) self.limitations_text.setFontPointSize(11) self.limitations_text.setText(limitations_text) # Set Disclaimer Text self.disclaimer_text.setFontPointSize(11) self.disclaimer_text.setText(disclaimer()) # Set Attributions text image_credits_text = '' for index, limitation in enumerate(self.attributions()): image_credits_text += '%s. %s \n' % (index + 1, limitation) self.image_credits_text.setFontPointSize(11) self.image_credits_text.setText(image_credits_text)
def __init__(self, iface): """Constructor for the Map class. :param iface: Reference to the QGIS iface object. :type iface: QgsAppInterface """ LOGGER.debug('InaSAFE Map class initialised') self.iface = iface self.layer = iface.activeLayer() self.keyword_io = KeywordIO() self.printer = None self.composition = None self.extent = iface.mapCanvas().extent() self.safe_logo = ':/plugins/inasafe/inasafe-logo-url.svg' self.north_arrow = default_north_arrow_path() self.org_logo = default_organisation_logo_path() self.template = ':/plugins/inasafe/inasafe-portrait-a4.qpt' self.disclaimer = disclaimer() self.page_width = 0 # width in mm self.page_height = 0 # height in mm self.page_dpi = 300.0 self.show_frames = False # intended for debugging use only # List of all component id that should be exist on the template self.component_ids = [] # Prompt user if template does not contain some elements self.template_warning_verbose = False
def test_disclaimer(self): """Verify the disclaimer works. This text will proably change a lot so just test to ensure it is not empty. """ actual = disclaimer() self.assertTrue(len(actual) > 0)
def test_disclaimer(self): """Verify the disclaimer works. This text will probably change a lot so just test to ensure it is not empty. """ actual = disclaimer() self.assertTrue(len(actual) > 0)
def __init__(self, iface): """Constructor for the Map class. :param iface: Reference to the QGIS iface object. :type iface: QgsAppInterface """ LOGGER.debug('InaSAFE Map class initialised') self.iface = iface self.layer = iface.activeLayer() self.keyword_io = KeywordIO() self.printer = None self.composition = None self.extent = iface.mapCanvas().extent() self.safe_logo = ':/plugins/inasafe/inasafe-logo-url.svg' self.north_arrow = ':/plugins/inasafe/simple_north_arrow.png' self.org_logo = ':/plugins/inasafe/supporters.png' self.template = ':/plugins/inasafe/inasafe-portrait-a4.qpt' self.disclaimer = disclaimer() self.page_width = 0 # width in mm self.page_height = 0 # height in mm self.page_dpi = 300.0 self.show_frames = False # intended for debugging use only
def __init__(self, iface): """Constructor for the Map class. :param iface: Reference to the QGIS iface object. :type iface: QgsAppInterface """ LOGGER.debug('InaSAFE Map class initialised') self.iface = iface self.layer = iface.activeLayer() self.keyword_io = KeywordIO() self.printer = None self.composition = None self.extent = iface.mapCanvas().extent() self.safe_logo = ':/plugins/inasafe/inasafe-logo-url.svg' self.north_arrow = ':/plugins/inasafe/simple_north_arrow.png' self.org_logo = ':/plugins/inasafe/supporters.png' self.template = ':/plugins/inasafe/inasafe-portrait-a4.qpt' self.disclaimer = disclaimer() self.page_width = 0 # width in mm self.page_height = 0 # height in mm self.page_dpi = 300.0 self.show_frames = False # intended for debugging use only
def __init__(self, parent=None, iface=None): """Constructor for dialog. :param parent: Optional widget to use as parent :type parent: QWidget :param iface: An instance of QGisInterface :type iface: QGisInterface """ QDialog.__init__(self, parent) self.parent = parent self.setupUi(self) self.setWindowTitle(self.tr('InaSAFE Impact Layer Merge Tool')) self.iface = iface self.keyword_io = KeywordIO() # Template Path for composer self.template_path = ':/plugins/inasafe/merged_report.qpt' # Safe Logo Path self.safe_logo_path = ':/plugins/inasafe/inasafe-logo-url.png' # Organisation Logo Path self.organisation_logo_path = ':/plugins/inasafe/supporters.png' # Disclaimer text self.disclaimer = disclaimer() # The output directory self.out_dir = None # Stored information from first impact layer self.first_impact = { 'layer': None, 'map_title': None, 'hazard_title': None, 'exposure_title': None, 'postprocessing_report': None, } # Stored information from second impact layer self.second_impact = { 'layer': None, 'map_title': None, 'hazard_title': None, 'exposure_title': None, 'postprocessing_report': None, } # Stored information from aggregation layer self.aggregation = { 'layer': None, 'aggregation_attribute': None } # The summary report, contains report for each aggregation area self.summary_report = {} # The html reports and its file path self.html_reports = {} # A boolean flag whether to merge entire area or aggregated self.entire_area_mode = False # Get the global settings and override some variable if exist self.read_settings() # Get all current project layers for combo box self.get_project_layers() # Set up context help help_button = self.button_box.button(QtGui.QDialogButtonBox.Help) help_button.clicked.connect(self.show_help) # Show usage info self.show_info() self.restore_state()
def restore_state(self): """Reinstate the options based on the user's stored session info. """ settings = QtCore.QSettings() # flag = settings.value( # 'inasafe/useThreadingFlag', False) # hack set use thread to false see #557 flag = False self.cbxUseThread.setChecked(flag) flag = bool(settings.value( 'inasafe/visibleLayersOnlyFlag', True, type=bool)) self.cbxVisibleLayersOnly.setChecked(flag) flag = bool(settings.value( 'inasafe/set_layer_from_title_flag', True, type=bool)) self.cbxSetLayerNameFromTitle.setChecked(flag) flag = bool(settings.value( 'inasafe/setZoomToImpactFlag', True, type=bool)) self.cbxZoomToImpact.setChecked(flag) # whether exposure layer should be hidden after model completes flag = bool(settings.value( 'inasafe/setHideExposureFlag', False, type=bool)) self.cbxHideExposure.setChecked(flag) flag = bool(settings.value( 'inasafe/clip_to_viewport', True, type=bool)) self.cbxClipToViewport.setChecked(flag) flag = bool(settings.value( 'inasafe/clip_hard', False, type=bool)) self.cbxClipHard.setChecked(flag) flag = bool(settings.value( 'inasafe/useSentry', False, type=bool)) self.cbxUseSentry.setChecked(flag) flag = bool(settings.value( 'inasafe/show_intermediate_layers', False, type=bool)) self.cbxShowPostprocessingLayers.setChecked(flag) ratio = float(settings.value( 'inasafe/defaultFemaleRatio', DEFAULTS['FEMALE_RATIO'], type=float)) self.dsbFemaleRatioDefault.setValue(ratio) path = settings.value( 'inasafe/keywordCachePath', self.keyword_io.default_keyword_db_path(), type=str) self.leKeywordCachePath.setText(path) flag = bool(settings.value( 'inasafe/template_warning_verbose', True, type=bool)) self.template_warning_checkbox.setChecked(flag) # Restore Organisation Logo Path org_logo_path = settings.value( 'inasafe/organisation_logo_path', default_organisation_logo_path(), type=str) custom_org_logo_flag = ( org_logo_path != default_organisation_logo_path()) self.custom_org_logo_checkbox.setChecked(custom_org_logo_flag) self.leOrganisationLogoPath.setText(org_logo_path) # Restore Show Organisation Logo in Dock Flag flag = bool(settings.value( 'inasafe/showOrganisationLogoInDockFlag', True, type=bool)) self.organisation_on_dock_checkbox.setChecked(flag) # Restore North Arrow Image Path north_arrow_path = settings.value( 'inasafe/north_arrow_path', default_north_arrow_path(), type=str) custom_north_arrow_flag = ( north_arrow_path != default_north_arrow_path()) self.custom_north_arrow_checkbox.setChecked(custom_north_arrow_flag) self.leNorthArrowPath.setText(north_arrow_path) # Restore Report Template Directory Path report_template_dir = settings.value( 'inasafe/reportTemplatePath', '', type=str) custom_templates_dir_flag = (report_template_dir != '') self.custom_templates_dir_checkbox.setChecked( custom_templates_dir_flag) self.leReportTemplatePath.setText(report_template_dir) # Restore Disclaimer org_disclaimer = settings.value( 'inasafe/reportDisclaimer', disclaimer(), type=str) custom_org_disclaimer_flag = (org_disclaimer != disclaimer()) self.custom_org_disclaimer_checkbox.setChecked( custom_org_disclaimer_flag) self.txtDisclaimer.setPlainText(org_disclaimer) flag = bool( settings.value('inasafe/developer_mode', False, type=bool)) self.cbxDevMode.setChecked(flag) flag = bool( settings.value('inasafe/use_native_zonal_stats', False, type=bool)) self.cbxNativeZonalStats.setChecked(flag)
def __init__(self, parent=None, iface=None): """Constructor for dialog. :param parent: Optional widget to use as parent :type parent: QWidget :param iface: An instance of QGisInterface :type iface: QGisInterface """ QDialog.__init__(self, parent) self.parent = parent self.setupUi(self) self.setWindowTitle(self.tr('InaSAFE Impact Layer Merge Tool')) self.iface = iface self.keyword_io = KeywordIO() # Template Path for composer self.template_path = ':/plugins/inasafe/merged_report.qpt' # Safe Logo Path self.safe_logo_path = ':/plugins/inasafe/inasafe-logo-url.png' # Organisation Logo Path self.organisation_logo_path = ':/plugins/inasafe/supporters.png' # Disclaimer text self.disclaimer = disclaimer() # The output directory self.out_dir = None # Stored information from first impact layer self.first_impact = { 'layer': None, 'map_title': None, 'hazard_title': None, 'exposure_title': None, 'postprocessing_report': None, } # Stored information from second impact layer self.second_impact = { 'layer': None, 'map_title': None, 'hazard_title': None, 'exposure_title': None, 'postprocessing_report': None, } # Stored information from aggregation layer self.aggregation = {'layer': None, 'aggregation_attribute': None} # The summary report, contains report for each aggregation area self.summary_report = {} # The html reports and its file path self.html_reports = {} # A boolean flag whether to merge entire area or aggregated self.entire_area_mode = False # Get the global settings and override some variable if exist self.read_settings() # Get all current project layers for combo box self.get_project_layers() # Set up context help help_button = self.button_box.button(QtGui.QDialogButtonBox.Help) help_button.clicked.connect(self.show_help) # Show usage info self.show_info() self.restore_state()
def restore_state(self): """Reinstate the options based on the user's stored session info. """ settings = QtCore.QSettings() # flag = settings.value( # 'inasafe/useThreadingFlag', False) # hack set use thread to false see #557 flag = False self.cbxUseThread.setChecked(flag) flag = bool( settings.value('inasafe/visibleLayersOnlyFlag', True, type=bool)) self.cbxVisibleLayersOnly.setChecked(flag) flag = bool( settings.value('inasafe/set_layer_from_title_flag', True, type=bool)) self.cbxSetLayerNameFromTitle.setChecked(flag) flag = bool( settings.value('inasafe/setZoomToImpactFlag', True, type=bool)) self.cbxZoomToImpact.setChecked(flag) # whether exposure layer should be hidden after model completes flag = bool( settings.value('inasafe/setHideExposureFlag', False, type=bool)) self.cbxHideExposure.setChecked(flag) flag = bool(settings.value('inasafe/clip_to_viewport', True, type=bool)) self.cbxClipToViewport.setChecked(flag) flag = bool(settings.value('inasafe/clip_hard', False, type=bool)) self.cbxClipHard.setChecked(flag) flag = bool(settings.value('inasafe/useSentry', False, type=bool)) self.cbxUseSentry.setChecked(flag) flag = bool( settings.value('inasafe/show_intermediate_layers', False, type=bool)) self.cbxShowPostprocessingLayers.setChecked(flag) ratio = self.defaults['FEMALE_RATIO'] self.dsbFemaleRatioDefault.setValue(ratio) path = settings.value('inasafe/keywordCachePath', self.keyword_io.default_keyword_db_path(), type=str) self.leKeywordCachePath.setText(path) flag = bool( settings.value('inasafe/template_warning_verbose', True, type=bool)) self.template_warning_checkbox.setChecked(flag) # Restore Organisation Logo Path org_logo_path = settings.value('inasafe/organisation_logo_path', default_organisation_logo_path(), type=str) custom_org_logo_flag = (org_logo_path != default_organisation_logo_path()) self.custom_org_logo_checkbox.setChecked(custom_org_logo_flag) self.leOrganisationLogoPath.setText(org_logo_path) # Restore Show Organisation Logo in Dock Flag flag = bool( settings.value('inasafe/showOrganisationLogoInDockFlag', True, type=bool)) self.organisation_on_dock_checkbox.setChecked(flag) # Restore North Arrow Image Path north_arrow_path = settings.value('inasafe/north_arrow_path', default_north_arrow_path(), type=str) custom_north_arrow_flag = (north_arrow_path != default_north_arrow_path()) self.custom_north_arrow_checkbox.setChecked(custom_north_arrow_flag) self.leNorthArrowPath.setText(north_arrow_path) # Restore Report Template Directory Path report_template_dir = settings.value('inasafe/reportTemplatePath', '', type=str) custom_templates_dir_flag = (report_template_dir != '') self.custom_templates_dir_checkbox.setChecked( custom_templates_dir_flag) self.leReportTemplatePath.setText(report_template_dir) # Restore Disclaimer org_disclaimer = settings.value('inasafe/reportDisclaimer', disclaimer(), type=str) custom_org_disclaimer_flag = (org_disclaimer != disclaimer()) self.custom_org_disclaimer_checkbox.setChecked( custom_org_disclaimer_flag) self.txtDisclaimer.setPlainText(org_disclaimer) flag = bool(settings.value('inasafe/developer_mode', False, type=bool)) self.cbxDevMode.setChecked(flag) flag = bool( settings.value('inasafe/use_native_zonal_stats', False, type=bool)) self.cbxNativeZonalStats.setChecked(flag) # Restore ISO19115 metadata tab value = self.defaults['ISO19115_ORGANIZATION'] self.iso19115_organization_le.setText(value) value = self.defaults['ISO19115_URL'] self.iso19115_url_le.setText(value) value = self.defaults['ISO19115_EMAIL'] self.iso19115_email_le.setText(value) value = self.defaults['ISO19115_TITLE'] self.iso19115_title_le.setText(value) value = self.defaults['ISO19115_LICENSE'] self.iso19115_license_le.setText(value)