Ejemplo n.º 1
0
 def __init__(self, abstractDb, uiParameterJsonDict = None, parent = None):
     """Constructor."""
     super(self.__class__, self).__init__(parent)
     self.setupUi(self)
     self.geomUiDict = {self.tr('Point'):{'sufix':'p','type':'MULTIPOINT([epsg])'}, self.tr('Line'):{'sufix':'l','type':'MULTILINESTRING([epsg])'}, self.tr('Area'):{'sufix':'a','type':'MULTIPOLYGON([epsg])'}} 
     header = self.tableWidget.horizontalHeader()
     header.setStretchLastSection(True)
     regex = QtCore.QRegExp('[a-z][a-z\_]*')
     validator = QtGui.QRegExpValidator(regex, self.classNameLineEdit)
     self.classNameLineEdit.setValidator(validator)
     regex2 = QtCore.QRegExp('[a-z]*')
     validator2 = QtGui.QRegExpValidator(regex2, self.categoryLineEdit)
     self.categoryLineEdit.setValidator(validator2)
     self.abstractDb = abstractDb
     self.populateSchemaCombo()
     self.jsonBuilder = CustomJSONBuilder()
     self.populateFromUiParameterJsonDict(uiParameterJsonDict)
Ejemplo n.º 2
0
 def __init__(self, customDict, parent=None):
     """Constructor."""
     super(self.__class__, self).__init__(parent)
     self.customDict = customDict
     self.setupUi(self)
     regex = QtCore.QRegExp('[0-9][0-9\.0-9]*')
     validator = QtGui.QRegExpValidator(regex, self.measureLineEdit)
     self.measureLineEdit.setValidator(validator)
Ejemplo n.º 3
0
 def __init__(
         self,
         connection_settings: typing.Optional[ConnectionSettings] = None):
     super().__init__()
     self.setupUi(self)
     self._widgets_to_toggle_during_connection_test = [
         self.test_connection_pb,
         self.buttonBox,
         self.authcfg_acs,
         self.options_gb,
         self.connection_details,
         self.detected_version_gb,
     ]
     self.bar = QgsMessageBar()
     self.bar.setSizePolicy(QtWidgets.QSizePolicy.Minimum,
                            QtWidgets.QSizePolicy.Fixed)
     self.layout().insertWidget(0, self.bar, alignment=QtCore.Qt.AlignTop)
     self.discovery_task = None
     self._populate_wfs_version_combobox()
     if connection_settings is not None:
         self.connection_id = connection_settings.id
         self.remote_geonode_version = connection_settings.geonode_version
         self.name_le.setText(connection_settings.name)
         self.url_le.setText(connection_settings.base_url)
         self.authcfg_acs.setConfigId(connection_settings.auth_config)
         self.page_size_sb.setValue(connection_settings.page_size)
         wfs_version_index = self.wfs_version_cb.findData(
             connection_settings.wfs_version)
         self.wfs_version_cb.setCurrentIndex(wfs_version_index)
         if self.remote_geonode_version == network.UNSUPPORTED_REMOTE:
             utils.show_message(
                 self.bar,
                 tr("Invalid configuration. Correct GeoNode URL and/or test again."
                    ),
                 level=qgis.core.Qgis.Critical,
             )
     else:
         self.connection_id = uuid.uuid4()
         self.remote_geonode_version = None
     self.update_connection_details()
     self.buttonBox.button(QtWidgets.QDialogButtonBox.Ok).setEnabled(False)
     ok_signals = [
         self.name_le.textChanged,
         self.url_le.textChanged,
     ]
     for signal in ok_signals:
         signal.connect(self.update_ok_buttons)
     self.detect_wfs_version_pb.clicked.connect(self.detect_wfs_version)
     self.test_connection_pb.clicked.connect(self.test_connection)
     # disallow names that have a slash since that is not compatible with how we
     # are storing plugin state in QgsSettings
     self.name_le.setValidator(
         QtGui.QRegExpValidator(QtCore.QRegExp("[^\\/]+"), self.name_le))
     self.update_ok_buttons()
Ejemplo n.º 4
0
 def __init__(self, abstractDb, uiParameterJsonDict=None, parent=None):
     """Constructor."""
     super(self.__class__, self).__init__(parent)
     self.abstractDb = abstractDb
     self.setupUi(self)
     regex = QtCore.QRegExp('[a-z]*')
     validator = QtGui.QRegExpValidator(regex, self.nameLineEdit)
     self.nameLineEdit.setValidator(validator)
     self.domainSetter = None
     self.jsonBuilder = CustomJSONBuilder()
     self.populateFromUiParameterJsonDict(uiParameterJsonDict)
Ejemplo n.º 5
0
 def __init__(self, abstractDb, uiParameterJsonDict=None, parent=None):
     """Constructor."""
     super(self.__class__, self).__init__(parent)
     self.setupUi(self)
     header = self.tableWidget.horizontalHeader()
     header.setStretchLastSection(True)
     regex = QtCore.QRegExp('[a-z][a-z\_]*')
     validator = QtGui.QRegExpValidator(regex, self.domainNameLineEdit)
     self.domainNameLineEdit.setValidator(validator)
     self.abstractDb = abstractDb
     self.jsonBuilder = CustomJSONBuilder()
     self.tableWidget.setItemDelegate(ValidatedItemDelegate())
     self.oldBackground = None
     self.populateFromUiParameterJsonDict(uiParameterJsonDict)
Ejemplo n.º 6
0
 def createEditor(self, widget, option, index):
     if not index.isValid():
         return 0
     if index.column() == 0:  #only on the cells in the first column
         editor = QtGui.QLineEdit(widget)
         validator = QtGui.QRegExpValidator(QtCore.QRegExp("[0-9]*"),
                                            editor)
         editor.setValidator(validator)
         return editor
     elif index.column() == 1:
         editor = QtGui.QLineEdit(widget)
         editor.setPlaceholderText(self.tr('Enter a value.'))
         return editor
     return super(ValidatedItemDelegate,
                  self).createEditor(widget, option, index)
    def __init__(self, iface, parent=None):

        super(ResampleImageToBlockDialog, self).__init__(parent)

        # Set up the user interface from Designer.
        self.setupUi(self)

        self.iface = iface
        self.DISP_TEMP_LAYERS = read_setting(PLUGIN_NAME + '/DISP_TEMP_LAYERS', bool)
        self.DEBUG = config.get_debug_mode()

        # Catch and redirect python errors directed at the log messages python error tab.
        QgsApplication.messageLog().messageReceived.connect(errorCatcher)

        if not os.path.exists(TEMPDIR):
            os.mkdir(TEMPDIR)

        # Setup for validation messagebar on gui-----------------------------
        self.messageBar = QgsMessageBar(self)  # leave this message bar for bailouts
        self.validationLayout = QtWidgets.QFormLayout(self)  # new layout to gui

        if isinstance(self.layout(), (QtWidgets.QFormLayout, QtWidgets.QGridLayout)):
            # create a validation layout so multiple messages can be added and cleaned up.
            self.layout().insertRow(0, self.validationLayout)
            self.layout().insertRow(0, self.messageBar)
        else:
            self.layout().insertWidget(0, self.messageBar)  # for use with Vertical/horizontal layout box

        # GUI Runtime Customisation -----------------------------------------------
        self.mcboPolygonLayer.setFilters(QgsMapLayerProxyModel.PolygonLayer)
        self.mcboPolygonLayer.setExcludedProviders(['wms'])
        self.mcboPolygonLayer.setLayer(None)
        
        self.mcboRasterLayer.setFilters(QgsMapLayerProxyModel.RasterLayer)
        self.mcboRasterLayer.setExcludedProviders(['wms'])
        
        self.updateRaster()
        
        #https://stackoverflow.com/questions/13422995/set-qlineedit-to-accept-only-numbers
        #https://stackoverflow.com/questions/12643009/regular-expression-for-floating-point-numbers
        regex_validator  = QtGui.QRegExpValidator(QtCore.QRegExp("[-+]?([0-9]*[.])?[0-9]+([eE][-+]?\d+)?"))
        self.lneNoDataVal.setValidator(regex_validator)
        
        self.setWindowIcon(QtGui.QIcon(':/plugins/pat/icons/icon_resampleToBlock.svg'))
    def __init__(self, parent, scope):
        super(GeographicInfoWidget, self).__init__(parent)
        self.setupUi(self)
        self.superParent = self.parent()
        self.scope = scope

        headers = [
            u'Limite Oeste', u"Limite Este", u"Limite Norte", u"Limite Sul",
            u"Contém\nRecurso"
        ]

        column_types = [
            qwidgets.QDoubleSpinBox, qwidgets.QDoubleSpinBox,
            qwidgets.QDoubleSpinBox, qwidgets.QDoubleSpinBox,
            qwidgets.QCheckBox
        ]
        tla.setupTableView(self, self.boundingbox, headers, column_types,
                           GeoLocalizationDialog)
        self.boundingbox.horizontalHeader().setCascadingSectionResizes(True)
        self.boundingbox.horizontalHeader().setStretchLastSection(False)
        self.boundingbox.horizontalHeader().resizeSection(4, 60)
        self.boundingbox.horizontalHeader().setSectionResizeMode(
            4, qwidgets.QHeaderView.Fixed)
        self.boundingbox.horizontalHeader().setSectionResizeMode(
            3, qwidgets.QHeaderView.Stretch)
        self.boundingbox.horizontalHeader().setSectionResizeMode(
            2, qwidgets.QHeaderView.Stretch)
        self.boundingbox.horizontalHeader().setSectionResizeMode(
            1, qwidgets.QHeaderView.Stretch)
        self.boundingbox.horizontalHeader().setSectionResizeMode(
            0, qwidgets.QHeaderView.Stretch)

        headers = [u"Identificador", u"Contém\nRecurso"]
        column_types = [QgsFilterLineEdit, qwidgets.QCheckBox]
        sources = [self.line_identifier, self.check_haveResource]
        tla.setupTableView(self,
                           self.geographicidentifier,
                           headers,
                           column_types,
                           sources,
                           mandatorysources=[0])
        self.geographicidentifier.horizontalHeader(
        ).setCascadingSectionResizes(True)
        self.geographicidentifier.horizontalHeader().setStretchLastSection(
            False)
        self.geographicidentifier.horizontalHeader().resizeSection(1, 60)
        self.geographicidentifier.horizontalHeader().setSectionResizeMode(
            0, qwidgets.QHeaderView.Stretch)

        # Setup the reference system stuff
        self.combo_items = {}
        for element in self.superParent.reference_systems_list[
                "horizontal_refs"]:
            self.combo_items[str(
                element['code']).strip()] = Reference_System_Item(
                    code=element['code'],
                    name=element['name'],
                    codeSpace=element['codespace'])

        self.listValidation = lval.GeographicInfo(
            list(self.combo_items.values()))
        tla.setupListView(
            self.referencesystem,
            CustomComboBox,
            self,
            comboList=list(self.combo_items.values()),
            validationfunction=self.listValidation.referenceSystems)

        self.boundingbox.doubleClicked.connect(self.handleDoubleClick)

        self.combo_items_vert = {}
        for element in self.superParent.reference_systems_list[
                "vertical_refs"]:
            self.combo_items_vert[str(
                element['code']).strip()] = Reference_System_Item(
                    code=element['code'],
                    name=element['name'],
                    codeSpace='EPSG')
        self.referencesystemidentifier.setModel(
            customCombo.CustomComboBoxModel(self, [None] + sorted(
                list(self.combo_items_vert.values()), key=lambda x: x.name)))

        for btn in self.findChildren(qwidgets.QPushButton,
                                     qcore.QRegExp('btn_*')):
            if '_add_' in btn.objectName():
                btn.setIcon(
                    qgui.QIcon(':/resourcesFolder/icons/plus_icon.svg'))
                btn.setText('')
            elif '_del_' in btn.objectName():
                btn.setIcon(
                    qgui.QIcon(':/resourcesFolder/icons/delete_icon.svg'))
                btn.setText('')
        for info in self.findChildren(qwidgets.QPushButton,
                                      qcore.QRegExp('info_*')):
            info.setIcon(qgui.QIcon(':/resourcesFolder/icons/help_icon.svg'))
            info.setText('')
            info.pressed.connect(self.printHelp)

        self.extent_btn.setIcon(
            qgui.QIcon(':/resourcesFolder/icons/globe.svg'))
        self.extent_btn.setText('')
        self.minimumValue.valueChanged.connect(
            self.check_consistency_altimetric_extention)
        self.maximumValue.valueChanged.connect(
            self.check_consistency_altimetric_extention)
        self.referencesystemidentifier.currentIndexChanged.connect(
            self.check_consistency_altimetric_extention)
        self.minimumValue.setSpecialValueText(" ")
        self.maximumValue.setSpecialValueText(" ")
        self.clear_min_max()

        tla.setupMandatoryField(
            self, self.referencesystem, self.label_referencesystem,
            u"Obrigatório conter pelo menos uma "
            u"entrada")
        tla.setupMandatoryField(
            self, self.boundingbox, self.label_boundingbox,
            u"A Especificação de uma caixa envolvente é obrigatoria.")
        # Button to open extent dialog
        self.extent_btn.clicked.connect(self.launch_extent_dialog)

        self.eater = tla.EatWheel()
        for x in self.findChildren(qwidgets.QComboBox):
            x.installEventFilter(self.eater)
            x.setFocusPolicy(Qt.StrongFocus)
        for x in self.findChildren(QDateTimeEdit):
            x.installEventFilter(self.eater)
            x.setFocusPolicy(Qt.StrongFocus)
        self.check_consistency_altimetric_extention()

        self.dialog = None
        self.check_haveResource.setChecked(True)
        self.btn_clear_all.pressed.connect(self.clear_min_max)
    def __init__(self, parent, scope):
        super(KeywordsWidget, self).__init__(parent)
        self.setupUi(self)

        self.superParent = self.parent()

        self.combo_items_inspire = customCombo.dic_to_CustomComboBox_dic(
            self.superParent.codelist["INSPIRE"])
        self.combo_items_serviceClassification = customCombo.dic_to_CustomComboBox_dic(
            self.superParent.codelist["ServiceClassification"])
        self.combo_items_topiccategory = customCombo.dic_to_CustomComboBox_dic(
            self.superParent.codelist["MD_TopicCategoryCode"])
        self.combo_items_datetype = customCombo.dic_to_CustomComboBox_dic(
            self.superParent.codelist["CI_DateTypeCode"])
        self.combo_items_md_keywordtypecode = customCombo.dic_to_CustomComboBox_dic(
            self.superParent.codelist["MD_KeywordTypeCode"])
        self.combo_items_md_keywordtypecode_snimar = customCombo.dic_to_CustomComboBox_dic(
            self.superParent.codelist["MD_KeywordTypeCodeSNIMar"])
        self.validatorList = lval.Keywords(list(self.combo_items_inspire.values()), list(self.combo_items_topiccategory.values()))
        self.validatorTables = tval.Keywords(list(self.combo_items_md_keywordtypecode.values()),
                                             list(self.combo_items_datetype.values()))

        sn_model = TableModel(self, [u"Tipo", u"Palavra-Chave", u"Versão Thesaurus"],
                              [customCombo.CustomComboBox, QLineEdit, QLineEdit],
                              self.snimarkeywords,
                              validationfunction=self.validatorTables.snimarkeywords)
        self.snimarkeywords.setModel(sn_model)
        self.snimarkeywords.resizeColumnsToContents()

        self.snimarkeywords.verticalHeader().setVisible(False)
        self.snimarkeywords.resizeRowsToContents()
        self.snimarkeywords.setSelectionBehavior(QAbstractItemView.SelectRows)
        self.snimarkeywords.setSelectionMode(QAbstractItemView.ContiguousSelection)
        self.snimarkeywords.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
        self.btn_open_snimarkeywords.clicked.connect(self.snimar_dialog)
        self.btn_del_snimarkeywords.clicked.connect(lambda: tla.removeSelectedFromList(self.snimarkeywords))

        self.wormskeywords.setColumnHidden(1, True)
        worms_model = TableModel(self, ['Palavra-chave', 'date'], [QLineEdit, QLineEdit], self.wormskeywords)
        self.wormskeywords.setModel(worms_model)
        self.wormskeywords.setColumnHidden(1, True)
        self.wormskeywords.resizeColumnsToContents()
        self.wormskeywords.verticalHeader().setVisible(False)
        self.wormskeywords.resizeRowsToContents()
        self.wormskeywords.setSelectionBehavior(QAbstractItemView.SelectRows)
        self.wormskeywords.setSelectionMode(QAbstractItemView.ContiguousSelection)
        self.wormskeywords.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
        self.btn_open_wormskeywords.clicked.connect(self.worms_dialog)
        self.btn_del_wormskeyword.clicked.connect(lambda: tla.removeSelectedFromList(self.wormskeywords))

        #crossref_model = TableModel(self, ['Autor', 'Titulo'], [QLineEdit, QLineEdit], self.crossrefkeywords)
        self.crossrefkeywords.setColumnHidden(1, True)
        self.crossrefkeywords.setColumnHidden(2, True)
        crossref_model = TableModel(self, ['Palavra-chave', 'doi', 'date'], [QLineEdit, QLineEdit, QLineEdit], self.crossrefkeywords)
        self.crossrefkeywords.setModel(crossref_model)
        self.crossrefkeywords.setColumnHidden(1, True)
        self.crossrefkeywords.setColumnHidden(2, True)
        self.crossrefkeywords.resizeColumnsToContents()
        self.crossrefkeywords.verticalHeader().setVisible(False)
        self.crossrefkeywords.resizeRowsToContents()
        self.crossrefkeywords.setSelectionBehavior(QAbstractItemView.SelectRows)
        self.crossrefkeywords.setSelectionMode(QAbstractItemView.ContiguousSelection)
        self.crossrefkeywords.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
        self.btn_open_crossrefkeywords.clicked.connect(self.crossref_dialog)
        self.btn_del_crossrefkeyword.clicked.connect(lambda: tla.removeSelectedFromList(self.crossrefkeywords))

        tla.setupTableView(self, self.freekeywords,
                           [u"Palavra-Chave", u"Tipo", u"Thesaurus", u"Data", u"Tipo de Data"],
                           [QgsFilterLineEdit, customCombo.CustomComboBox, QgsFilterLineEdit, QDateEdit,
                            customCombo.CustomComboBox],
                           FreeKeyWordsDialog,
                           comboList=[self.combo_items_md_keywordtypecode, self.combo_items_datetype],
                           validationfunction=self.validatorTables.freekeywords)
        self.freekeywords.doubleClicked.connect(self.handleDoubleClick)
        self.freekeywords.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)

        for btn in self.findChildren(QPushButton, qcore.QRegExp('btn_*')):
            if '_add_' in btn.objectName():
                btn.setIcon(QIcon(':/resourcesFolder/icons/plus_icon.svg'))
                btn.setText('')
            elif '_del_' in btn.objectName():
                btn.setIcon(QIcon(':/resourcesFolder/icons/delete_icon.svg'))
                btn.setText('')
        for info in self.findChildren(QPushButton, qcore.QRegExp('info_*')):
            info.setIcon(QIcon(':/resourcesFolder/icons/help_icon.svg'))
            info.setText('')
            info.pressed.connect(self.printHelp)
        self.btn_update_snimar.clicked.connect(self.launchupdatesnimar)
        self.snimarkeywords.model().rowsInserted.connect(self.snimar_keywords_special_validation)
        self.snimarkeywords.model().rowsRemoved.connect(self.snimar_keywords_special_validation)
        self.eater = tla.EatWheel()
        for x in self.findChildren(QComboBox):
            x.installEventFilter(self.eater)
            x.setFocusPolicy(Qt.StrongFocus)
        for x in self.findChildren(QDateTimeEdit):
            x.installEventFilter(self.eater)
            x.setFocusPolicy(Qt.StrongFocus)
        self.dialog = SNIMARKeywordsDialog(self, self.snimarkeywords.model(),
                                           self.combo_items_md_keywordtypecode_snimar)
        self.dialog.setWindowIcon(QIcon(":/resourcesFolder/icons/main_icon.png"))


        self.wormsDialog = WormsKeywordsDialog(self)
        self.wormsDialog.setWindowIcon(QIcon(":/resourcesFolder/icons/main_icon.png"))

        self.crossrefDialog = CrossrefKeywordsDialog(self)
        self.crossrefDialog.setWindowIcon(QIcon(":/resourcesFolder/icons/main_icon.png"))


        self.validatorTables.set_thesaurus(self.dialog.thesaurus_model)

        self.snimar_keywords_special_validation()
        self.scope = scope
        if self.scope == SCOPES.SERVICES:
            self.widget_topic.setHidden(True)
            self.topiccategory.setHidden(True)
            self.combo_topiccategory.setHidden(True)
            self.btn_add_topiccategory.setHidden(True)
            self.btn_del_topiccategory.setHidden(True)
            self.widget_inspire.setHidden(True)
            self.inspire.setHidden(True)
            self.btn_add_inspire.setHidden(True)
            self.btn_del_inspire.setHidden(True)
            self.combo_inspire.setHidden(True)
            tla.setupListView(self.serviceClassification, customCombo.CustomComboBox, self,
                              comboList=list(self.combo_items_serviceClassification.values()))
            tla.setupMandatoryField(self, self.serviceClassification, self.label_serviceClassification,
                                    u"Obrigatório conter pelo menos uma entrada")

        else:
            self.widget_serviceClassification.setHidden(True)
            self.serviceClassification.setHidden(True)
            self.btn_add_serviceClassification.setHidden(True)
            self.btn_del_serviceClassification.setHidden(True)
            self.combo_serviceClassification.setHidden(True)
            tla.setupListView(self.topiccategory, customCombo.CustomComboBox, self,
                              comboList=list(self.combo_items_topiccategory.values()),
                              validationfunction=self.validatorList.topiccategory)
            tla.setupMandatoryField(self, self.topiccategory, self.label_topiccategory,
                                    u"Obrigatório conter pelo menos uma "
                                    u"entrada")
            tla.setupListView(self.inspire, customCombo.CustomComboBox, self,
                              comboList=list(self.combo_items_inspire.values()),
                              validationfunction=self.validatorList.inspire)

            tla.setupMandatoryField(self, self.inspire, self.label_inspire,
                                    u"Obrigatório conter pelo menos uma entrada")
    def __init__(self, parent, scope):
        super(TemporalInfoWidget, self).__init__(parent)

        self.setupUi(self)
        self.creationdate = NullQDateEditWrapper(self.creationdate)
        self.revisiondate = NullQDateEditWrapper(self.revisiondate)
        self.superParent = self.parent()
        self.scope = scope
        self.combo_items_ci_datetypecode = customCombo.dic_to_CustomComboBox_dic(
            self.superParent.codelist["CI_DateTypeCode"])
        tla.setupListView(self.publicationdate,
                          QDateEdit,
                          self,
                          date_format=cons.DATE_FORMAT)

        # timeextension stuff (headers and types and such
        self.creationdate.clear()
        self.revisiondate.clear()
        self.date_publicationdate.clear()

        self.begindate = NullQDateTimeEditWrapper(self.begindate)
        self.enddate = NullQDateTimeEditWrapper(self.enddate)
        self.begindate.clear()
        self.enddate.clear()

        self.date_publicationdate.setDate(QDate.currentDate())
        self.publicationdate.model().rowsInserted.connect(self.reftemocheck)
        self.publicationdate.model().rowsRemoved.connect(self.reftemocheck)
        self.creationdate.get_original().editingFinished.connect(
            self.reftemocheck)
        self.revisiondate.get_original().editingFinished.connect(
            self.reftemocheck)
        self.creationdate.get_original().dateTimeChanged.connect(
            self.reftemocheck)
        self.revisiondate.get_original().dateTimeChanged.connect(
            self.reftemocheck)

        self.begindate.get_original().editingFinished.connect(
            self.time_ext_check)
        self.enddate.get_original().editingFinished.connect(
            self.time_ext_check)
        self.begindate.get_original().dateTimeChanged.connect(
            self.time_ext_check)
        self.enddate.get_original().dateTimeChanged.connect(
            self.time_ext_check)
        self.reftemocheck()
        self.time_ext_check()

        for btn in self.findChildren(qwidgets.QPushButton,
                                     qcore.QRegExp('btn_*')):
            if '_add_' in btn.objectName():
                btn.setIcon(
                    qgui.QIcon(':/resourcesFolder/icons/plus_icon.svg'))
                btn.setText('')
            elif '_del_' in btn.objectName():
                btn.setIcon(
                    qgui.QIcon(':/resourcesFolder/icons/delete_icon.svg'))
                btn.setText('')
            elif '_clear_' in btn.objectName():
                btn.setIcon(
                    qgui.QIcon(':/resourcesFolder/icons/delete_field.svg'))
        for info in self.findChildren(qwidgets.QPushButton,
                                      qcore.QRegExp('info_*')):
            info.setIcon(qgui.QIcon(':/resourcesFolder/icons/help_icon.svg'))
            info.setText('')
            info.pressed.connect(self.printHelp)
        self.eater = tla.EatWheel()
        for x in self.findChildren(qwidgets.QComboBox):
            x.installEventFilter(self.eater)
            x.setFocusPolicy(Qt.StrongFocus)
        for x in self.findChildren(QDateTimeEdit):
            x.installEventFilter(self.eater)
            x.setFocusPolicy(Qt.StrongFocus)
        for x in self.findChildren(QDateEdit):
            x.installEventFilter(self.eater)
            x.setFocusPolicy(Qt.StrongFocus)

        self.btn_clear_creationdate.pressed.connect(
            lambda: self.creationdate.clear())
        self.btn_clear_revisiondate.pressed.connect(
            lambda: self.revisiondate.clear())
        self.btn_clear_begindate.pressed.connect(
            lambda: self.begindate.clear())
        self.btn_clear_enddate.pressed.connect(lambda: self.enddate.clear())
    def __init__(self, parent, scope):
        super(RestrictionsWidget, self).__init__(parent)
        self.setupUi(self)
        self.superParent = self.parent()
        self.scope = scope

        self.combo_items_md_restrictionscode = customCombo.dic_to_CustomComboBox_dic(
            self.superParent.codelist["MD_RestrictionCode"])
        self.combo_items_md_classificationcode = customCombo.dic_to_CustomComboBox_dic(
            self.superParent.codelist["MD_ClassificationCode"])
        self.listValidation = lval.Restrictions(
            list(self.combo_items_md_classificationcode.values()),
            list(self.combo_items_md_restrictionscode.values()))

        tla.setupListView(self.useLimitation, QgsFilterLineEdit, self)
        tla.setupListView(
            self.accessConstraints,
            customCombo.CustomComboBox,
            self,
            comboList=list(self.combo_items_md_restrictionscode.values()),
            validationfunction=self.listValidation.accessConstraints)
        tla.setupListView(
            self.useConstraints,
            customCombo.CustomComboBox,
            self,
            comboList=list(self.combo_items_md_restrictionscode.values()),
            validationfunction=self.listValidation.useConstraints)
        tla.setupListView(self.otherConstraints, QgsFilterLineEdit, self)

        tla.setupListView(
            self.securityrestrictions,
            customCombo.CustomComboBox,
            self,
            comboList=list(self.combo_items_md_classificationcode.values()),
            validationfunction=self.listValidation.securityrestrictions)

        for btn in self.findChildren(qwidgets.QPushButton,
                                     qcore.QRegExp('btn_*')):
            if '_add_' in btn.objectName():
                btn.setIcon(
                    qgui.QIcon(':/resourcesFolder/icons/plus_icon.svg'))
                btn.setText('')
            elif '_del_' in btn.objectName():
                btn.setIcon(
                    qgui.QIcon(':/resourcesFolder/icons/delete_icon.svg'))
                btn.setText('')
        for info in self.findChildren(qwidgets.QPushButton,
                                      qcore.QRegExp('info_*')):
            info.setIcon(qgui.QIcon(':/resourcesFolder/icons/help_icon.svg'))
            info.setText('')
            info.pressed.connect(self.printHelp)

        tla.setupMandatoryField(self, self.useLimitation,
                                self.label_useLimitation,
                                u"Obrigatório conter pelomenos uma entrada")
        tla.setupMandatoryField(self, self.accessConstraints,
                                self.label_accessConstraints,
                                u"Obrigatório conter pelomenos uma entrada")
        tla.setupMandatoryField(self, self.useConstraints,
                                self.label_useConstraints,
                                u"Obrigatório conter pelo menos uma entrada")

        self.accessConstraints.model().rowsInserted.connect(self.check_others)
        self.accessConstraints.model().rowsRemoved.connect(self.check_others)
        self.useConstraints.model().rowsInserted.connect(self.check_others)
        self.useConstraints.model().rowsRemoved.connect(self.check_others)

        self.eater = tla.EatWheel()
        for x in self.findChildren(qwidgets.QComboBox):
            x.installEventFilter(self.eater)
            x.setFocusPolicy(Qt.StrongFocus)
        for x in self.findChildren(QDateTimeEdit):
            x.installEventFilter(self.eater)
            x.setFocusPolicy(Qt.StrongFocus)
    def __init__(self, parent):
        super(MetadataWidget, self).__init__(parent)
        self.setupUi(self)
        self.datestamp = NullQDateEditWrapper(self.datestamp)
        self.superParent = self.parent()

        tla.setupMandatoryField(self, self.fileidentifier,
                                self.label_fileidentifier,
                                u"Elemento obrigatório em falta")
        tla.setupMandatoryField(self, self.datestamp, self.label_datestamp,
                                u"Elemento obrigatório em falta")
        tla.setupMandatoryField(self, self.language, self.label_language,
                                u"Elemento obrigatório em falta")
        tla.setupMandatoryField(self, self.stdname, self.label_stdname,
                                u"Elemento obrigatório em falta")
        tla.setupMandatoryField(self, self.stdversion, self.label_stdversion,
                                u"Elemento obrigatório em falta")

        self.pal = qgui.QPalette()
        self.pal.setColor(self.pal.Background, qgui.QColor(cons.ERROR_COLOR))
        self.contacts_list = []

        for btn in self.findChildren(qwidgets.QPushButton,
                                     qcore.QRegExp('btn_*')):
            if '_add_' in btn.objectName():
                btn.setIcon(
                    qgui.QIcon(':/resourcesFolder/icons/plus_icon.svg'))
                btn.setText('')
            elif '_del_' in btn.objectName():
                btn.setIcon(
                    qgui.QIcon(':/resourcesFolder/icons/delete_icon.svg'))
                btn.setText('')
            elif '_clear_' in btn.objectName():
                btn.setIcon(
                    qgui.QIcon(':/resourcesFolder/icons/delete_field.svg'))

            split_name = btn.objectName().split('_')
            if len(split_name) == 4 and split_name[2] == 'uuid':
                btn.clicked.connect(self.generate_uuid)

        for info in self.findChildren(qwidgets.QPushButton,
                                      qcore.QRegExp('info_*')):
            info.setIcon(qgui.QIcon(':/resourcesFolder/icons/help_icon.svg'))
            info.setText('')
            info.pressed.connect(self.printHelp)

        self.btn_adi_contact.setIcon(
            qgui.QIcon(':/resourcesFolder/icons/plus_icon.svg'))
        self.combo_items_languagecode = customCombo.dic_to_CustomComboBox_dic(
            self.superParent.codelist["LanguageCode"])
        self.combo_items_md_charactersetCode = customCombo.dic_to_CustomComboBox_dic(
            self.superParent.codelist["MD_CharacterSetCode"])

        self.language.setModel(
            customCombo.CustomComboBoxModel(
                self,
                sorted(list(self.combo_items_languagecode.values()),
                       key=lambda x: x.term_pt)))
        self.language.setCurrentIndex(
            self.language.findText(cons.PREDEF_LANG_METADATA))
        self.language.setDisabled(True)
        self.datestamp.clear()
        self.characterset.setModel(
            customCombo.CustomComboBoxModel(
                self,
                sorted(list(self.combo_items_md_charactersetCode.values()),
                       key=lambda x: x.term_pt)))
        self.characterset.setCurrentIndex(
            self.characterset.findText(cons.PREDEF_CHARSET))

        self.stdname.setText(cons.SNIMAR_PROFILE_NAME)
        self.stdname.setDisabled(True)
        self.stdversion.setDisabled(True)
        self.stdversion.setText(cons.SNIMAR_PROFILE_VERSION)
        self.btn_adi_contact.clicked.connect(self.addContact)
        self.check_mandatory_contacts()

        self.eater = tla.EatWheel()
        for x in self.findChildren(qwidgets.QComboBox):
            x.installEventFilter(self.eater)
            x.setFocusPolicy(Qt.StrongFocus)
        for x in self.findChildren(QDateEdit):
            x.installEventFilter(self.eater)
            x.setFocusPolicy(Qt.StrongFocus)

        self.btn_clear_datestamp.pressed.connect(
            lambda: self.datestamp.clear())

        self.datestamp.get_original().editingFinished.connect(
            self.reftemocheck)
        self.datestamp.get_original().dateTimeChanged.connect(
            self.reftemocheck)
        self.reftemocheck()
Ejemplo n.º 13
0
    def __init__(self, parent, edition_mode=True):
        super(ContactsDialog, self).__init__(parent)
        if platform.system() != "Linux":
            font = QFont()
            font.setFamily(u"Segoe UI Symbol")
            self.setFont(font)
        # VIEW SETUP#############################################################
        self.setupUi(self)
        self.superParent = self.parent()

        for btn in self.findChildren(qwidgets.QPushButton, qcore.QRegExp('btn_*')):
            if '_add_' in btn.objectName():
                btn.setIcon(qgui.QIcon(':/resourcesFolder/icons/plus_icon.svg'))
                btn.setText('')
            elif '_del_' in btn.objectName():
                btn.setIcon(qgui.QIcon(':/resourcesFolder/icons/delete_icon.svg'))
                btn.setText('')
            elif '_clear_' in btn.objectName():
                btn.setIcon(qgui.QIcon(':/resourcesFolder/icons/delete_field.svg'))

        lists = ['phone', 'fax', 'email']
        for item in lists:
            btn = self.findChild(qwidgets.QPushButton, 'btn_add_' + item)
            btn.clicked.connect(self.add_list_row)
            btn = self.findChild(qwidgets.QPushButton, 'btn_del_' + item)
            btn.clicked.connect(self.del_list_row)

        for info in self.findChildren(qwidgets.QPushButton, qcore.QRegExp('info_*')):
            info.setIcon(qgui.QIcon(':/resourcesFolder/icons/help_icon.svg'))
            info.setText('')
            info.pressed.connect(self.printHelp)

        # Contact list connections and variables
        self.contact_array = None
        self.open_contact_array()
        self.current_contact = None
        self.contact_list.clearSelection()
        self.contactPanel.setDisabled(True)

        # SETUP THE DIALOG MODE
        if edition_mode:  # EDITION MODE

            self.orgs = {}
            org = self.superParent.orgs
            for x in org:
                name = org[x] + " (" + x + ")"
                self.orgs[x] = cus.CodeListItem(name, name, name)

            self.combo_org.setModel(
                cus.CustomComboBoxModel(self,
                                        [cus.CodeListItem(OUTRA, OUTRA, OUTRA)] + sorted(list(self.orgs.values()),
                                                                                         key=lambda x: x.term_pt)))
            self.combo_org.currentIndexChanged.connect(self.check_org)
            self.btn_contact_add.setVisible(True)
            self.btn_contact_del.setVisible(True)
            self.cancelChanges()
            self.btn_add_contact_metadata.setVisible(False)

            # CONNECTING FIELDS THAT CAN BE CHANGED
            self.name.textChanged.connect(self.changesMade)
            self.organization.textChanged.connect(self.changesMade)
            self.city.textChanged.connect(self.changesMade)
            self.postalcode.textChanged.connect(self.changesMade)
            self.country.textChanged.connect(self.changesMade)
            self.delivery_point.textChanged.connect(self.changesMade)
            self.phone.model().rowsInserted.connect(self.changesMade)
            self.fax.model().rowsInserted.connect(self.changesMade)
            self.email.model().rowsInserted.connect(self.changesMade)
            self.online.textChanged.connect(self.changesMade)
            self.phone.model().rowsRemoved.connect(self.changesMade)
            self.fax.model().rowsRemoved.connect(self.changesMade)
            self.email.model().rowsRemoved.connect(self.changesMade)
            self.online.textChanged.connect(self.changesMade)

            # SETUP MANDATORY FIELDS VISUAL VALIDATION
            self.organization.editingFinished.connect(self.setup_mandatory_label)
            self.name.editingFinished.connect(self.setup_mandatory_label)
            self.setup_mandatory_label()

            # ACTIONS SETUP
            self.btn_contact_save.clicked.connect(self.save_contact)  # save contact
            self.btn_cancelClose.clicked.connect(self.cancelChanges)  # cancel changes and revert contact
            self.btn_contact_add.clicked.connect(
                self.new_contact)  # add new contact if changes in current contact exists ask...
            self.btn_contact_del.clicked.connect(self.delete_contact)  # delete contact with confirmation

            self.contact_list.itemClicked.connect(
                self.selection_changed)  # change current selection if changes exists ask...
        else:  # EXPORT MODE
            self.contactPanel.hide()
            self.btn_add_contact_metadata.setVisible(True)
            self.btn_contact_add.setVisible(False)
            self.btn_contact_del.setVisible(False)
            self.adjustSize()

        # ACTIONS SETUP
        self.contact_list.itemClicked.connect(self.selection_changed_export_Mode)  # change current selection
        # ACTIONS FUNCTIONS
        self.eater = tla.EatWheel()
        for x in self.findChildren(qwidgets.QComboBox):
            x.installEventFilter(self.eater)
            x.setFocusPolicy(Qt.StrongFocus)
        for x in self.findChildren(QDateTimeEdit):
            x.installEventFilter(self.eater)
            x.setFocusPolicy(Qt.StrongFocus)
Ejemplo n.º 14
0
    def __init__(self, parent, combos, coord=None):

        if not coord:
            coord = ["", None, None, ""]
        super(LegalRestrictionsDialog, self).__init__(parent)
        if platform.system() != "Linux":
            font = QFont()
            font.setFamily(u"Segoe UI Symbol")
            self.setFont(font)
        self.setupUi(self)
        self.setModal(True)
        self.restrict_dic = combos[0]
        self.combo_accessrestrictions.setModel(
            CustomComboBoxModel(
                self, [None] +
                sorted(list(combos[0].values()), key=lambda x: x.term_pt)))
        self.combo_userestrictions.setModel(
            CustomComboBoxModel(
                self, [None] +
                sorted(list(combos[0].values()), key=lambda x: x.term_pt)))
        self.btn_cancel.clicked.connect(lambda: self.done(QDialog.Rejected))
        self.btn_add.clicked.connect(lambda: self.done(QDialog.Accepted))
        self.line_uselimitations.textChanged.connect(self.checkInput)
        self.combo_accessrestrictions.currentIndexChanged.connect(
            self.checkInput)
        self.combo_userestrictions.currentIndexChanged.connect(self.checkInput)
        self.line_otherrestrictions.textEdited.connect(self.checkInput)

        self.line_uselimitations.setText(coord[0])
        if coord[1] is not None:
            buf = combos[0].get(coord[1].term, None)
            if buf is not None:
                self.combo_accessrestrictions.setCurrentIndex(
                    self.combo_accessrestrictions.findText(buf.term_pt))

        if coord[2] is not None:
            buf = combos[0].get(coord[2].term, None)
            if buf is not None:
                self.combo_userestrictions.setCurrentIndex(
                    self.combo_userestrictions.findText(buf.term_pt))

        self.line_otherrestrictions.setText(coord[3])
        self.checkInput()

        tla.setupMandatoryField(None, self.line_uselimitations,
                                self.label_line_uselimitations,
                                u"Elemento Obrigatório.")
        tla.setupMandatoryField(None, self.combo_accessrestrictions,
                                self.label_combo_accessrestrictions,
                                u"Elemento Obrigatório.")
        tla.setupMandatoryField(None, self.combo_userestrictions,
                                self.label_combo_userestrictions,
                                u"Elemento Obrigatório.")
        self.superParent = None
        temp = self.parent()
        while self.superParent is None:
            if issubclass(type(temp), restrictionsPanel.Ui_restrictions):
                self.superParent = temp
            else:
                temp = temp.parent()
        for info in self.findChildren(qgui.QPushButton,
                                      qcore.QRegExp('info_*')):
            info.setIcon(qgui.QIcon(':/resourcesFolder/icons/help_icon.svg'))
            info.setText('')
            info.pressed.connect(self.printHelp)
    def __init__(self, parent, boundingbox):
        super(ExtentDialog, self).__init__(parent)
        self.setupUi(self)
        self.superParent = None
        temp = self.parent()
        if platform.system() != "Linux":
            font = QFont()
            font.setFamily(u"Segoe UI Symbol")
            self.setFont(font)
        while self.superParent is None:
            if issubclass(type(temp),
                          geographicinformationPanel.Ui_geographicinfo):
                self.superParent = temp
            else:
                temp = temp.parent()
        for info in self.findChildren(qwidgets.QPushButton,
                                      qcore.QRegExp('info_*')):
            info.setIcon(qgui.QIcon(':/resourcesFolder/icons/help_icon.svg'))
            info.setText('')
            info.pressed.connect(self.printHelp)

        self.layers = []
        self.maxExt = None
        self.boundingbox = boundingbox
        self.outBB = False

        # Create MapCanvas
        self.canvas = gui.QgsMapCanvas(self)

        # Append to Dialog Layout
        self.toolBar = qwidgets.QToolBar()
        self.layout = qwidgets.QVBoxLayout(self.frame)
        self.layout.addWidget(self.toolBar)
        self.layout.addWidget(self.canvas)

        # Trigger on scaleChanged
        self.canvas.scaleChanged.connect(self.scaleChanged)
        # Trigger on renderStarting
        self.canvas.renderStarting.connect(self.renderStarting)

        # Create Map Tools
        actionFullExt = qwidgets.QAction(
            qgui.QIcon(':/resourcesFolder/icons/globe.svg'), "Mapa total",
            self)
        actionPan = qwidgets.QAction(
            qgui.QIcon(':/resourcesFolder/icons/pan.svg'), "Mover", self)
        actionZoomIn = qwidgets.QAction(
            qgui.QIcon(':/resourcesFolder/icons/zoom_in.svg'), "Aproximar",
            self)
        actionZoomOut = qwidgets.QAction(
            qgui.QIcon(':/resourcesFolder/icons/zoom_out.svg'), "Afastar",
            self)
        actionSelect = qwidgets.QAction(
            qgui.QIcon(':/resourcesFolder/icons/selection.svg'), 'Desenhar',
            self)
        actionFromLayer = qwidgets.QAction(
            qgui.QIcon(':/resourcesFolder/icons/layers.svg'),
            'Obter de camada', self)

        actionFullExt.setCheckable(False)
        actionPan.setCheckable(True)
        actionZoomIn.setCheckable(True)
        actionZoomOut.setCheckable(True)
        actionSelect.setCheckable(True)

        actionFullExt.triggered.connect(self.fullext)
        actionPan.triggered.connect(self.pan)
        actionZoomIn.triggered.connect(self.zoomIn)
        actionZoomOut.triggered.connect(self.zoomOut)
        actionSelect.triggered.connect(self.select)
        actionFromLayer.triggered.connect(self.chooseLayer)

        # Add to created ToolBar
        self.toolBar.addAction(actionFullExt)
        self.toolBar.addSeparator()
        self.toolBar.addAction(actionPan)
        self.toolBar.addAction(actionZoomIn)
        self.toolBar.addAction(actionZoomOut)
        self.toolBar.addAction(actionSelect)
        self.toolBar.addAction(actionFromLayer)

        self.toolFullExtent = gui.QgsMapToolPan(self.canvas)
        self.toolFullExtent.setAction(actionFullExt)
        self.toolPan = gui.QgsMapToolPan(self.canvas)
        self.toolPan.setAction(actionPan)
        self.toolZoomIn = gui.QgsMapToolZoom(self.canvas, False)  # false = in
        self.toolZoomIn.setAction(actionZoomIn)
        self.toolZoomOut = gui.QgsMapToolZoom(self.canvas, True)  # true = out
        self.toolZoomOut.setAction(actionZoomOut)
        self.toolSelect = SelectionTool(self.canvas, self)
        self.resourcebox.setChecked(True)
        self.pan()

        lugin_path = utils.pluginDirectory('EditorMetadadosMarswInforbiomares')

        # Load Vector
        layerpath = os.path.join(plugin_path, "resourcesFolder/World.shp")
        llayer = core.QgsVectorLayer(layerpath, "WorldLayer", "ogr")

        # Set Layer Symbology
        props = {
            'color_border': '0,0,0,125',
            'style': 'no',
            'style_border': 'solid'
        }
        #s = core.QgsFillSymbolV2.createSimple(props)
        s = core.QgsFillSymbol.createSimple(props)
        #llayer.setRendererV2(core.QgsSingleSymbolRendererV2(s))
        llayer.setRenderer(core.QgsSingleSymbolRenderer(s))

        # Set CRS - necessary to load Raster - it assumes this default CRS
        s = qcore.QSettings()
        oldValidation = str(
            s.value("/Projections/defaultBehaviour", "useGlobal"))
        s.setValue("/Projections/defaultBehaviour", "useGlobal")

        # Load Raster
        fileName = os.path.join(plugin_path, "resourcesFolder/GMRT.tif")
        fileInfo = qcore.QFileInfo(fileName)
        baseName = fileInfo.baseName()
        layer = core.QgsRasterLayer(fileName, baseName)
        layer.setCrs(
            core.QgsCoordinateReferenceSystem(
                4326, core.QgsCoordinateReferenceSystem.EpsgCrsId))
        s.setValue("/Projections/defaultBehaviour", oldValidation)

        # Set Raster ColorRamp
        # layer.setDrawingStyle("SingleBandPseudoColor") # deprecated remove in 2.1.0 please
        vmin = -5683.08
        vmax = 2763.86
        vrange = vmax - vmin
        vadd = vrange // 2
        vint = vmin + vadd
        colDic = {
            'brown': '#90330a',
            'lightblue': '#d5f5f9',
            'blue': '#2099d4'
        }
        valueList = [vmin, vint, vmax]

        lst = [core.QgsColorRampShader.ColorRampItem(valueList[0], qgui.QColor(colDic['blue'])), \
               core.QgsColorRampShader.ColorRampItem(valueList[1],
                                                     qgui.QColor(colDic['lightblue'])), \
               core.QgsColorRampShader.ColorRampItem(valueList[2], qgui.QColor(colDic['brown']))]
        myRasterShader = core.QgsRasterShader()
        myColorRamp = core.QgsColorRampShader()
        myColorRamp.setColorRampItemList(lst)
        myColorRamp.setColorRampType(core.QgsColorRampShader.Interpolated)
        myRasterShader.setRasterShaderFunction(myColorRamp)
        myPseudoRenderer = core.QgsSingleBandPseudoColorRenderer(
            layer.dataProvider(), layer.type(), myRasterShader)
        layer.setRenderer(myPseudoRenderer)

        ## Add vector to map
        #core.QgsMapLayerRegistry.instance().addMapLayer(llayer, False)
        core.QgsProject.instance().addMapLayer(llayer, False)
        ## Add raster to map
        #core.QgsMapLayerRegistry.instance().addMapLayer(layer, False)
        core.QgsProject.instance().addMapLayer(layer, False)

        ## Save Max Extent
        self.maxExt = core.QgsRectangle(-180., -90., 180., 90.)

        # ----------------------------------
        ## Set initial general extent to ZEE or, if one is selected, from the selected boundingbox
        if self.boundingbox.selectionModel().hasSelection() == False:
            ## Change button's title
            self.add_extent.setText(u"Adicionar")
            initialrect = core.QgsRectangle(-46.63064, 22.52146, 9.64473,
                                            47.31826)
        else:
            ## Get selected bounding box coords and resource flag
            index = self.boundingbox.selectionModel().selectedRows()[0].row()
            row = self.boundingbox.model().matrix[index]

            minx = float(row[0].replace(',', '.'))
            miny = float(row[3].replace(',', '.'))
            maxx = float(row[1].replace(',', '.'))
            maxy = float(row[2].replace(',', '.'))

            if minx == 0. and miny == 0. and maxx == 0. and maxy == 0.:
                initialrect = core.QgsRectangle(-46.63064, 22.52146, 9.64473,
                                                47.31826)
            else:
                ## Set fields with these values
                self.xMin.setValue(minx)
                self.xMax.setValue(maxx)
                self.yMin.setValue(miny)
                self.yMax.setValue(maxy)
                self.resourcebox.setChecked(bool(row[4]))

                ## Set the extent and add a bit of zoom out of the selected extent
                initialrect = core.QgsRectangle(minx - minx * 0.1,
                                                miny - miny * 0.1,
                                                maxx + maxx * 0.1,
                                                maxy + maxy * 0.1)

                ## Draw initial extent on the map
                self.toolSelect.drawRect(minx, miny, maxx, maxy)

                ## Change button's title
                self.add_extent.setText(u"Alterar")

        self.canvas.setExtent(initialrect)
        # ----------------------------------

        ## Append layers to MapCanvas
        self.layers.append(llayer)
        self.layers.append(layer)
        #self.layers.append(gui.QgsMapCanvasLayer(llayer))
        #self.layers.append(gui.QgsMapCanvasLayer(layer))
        #self.canvas.setLayerSet(self.layers)
        self.canvas.setLayers([llayer, layer])

        ## Set triggers to buttons
        self.add_extent.clicked.connect(self.add_new_extent)
        self.btn_close.clicked.connect(lambda: self.done(QDialog.Rejected))
        self.finished.connect(self.cleanup)

        ## Disabled coord fields
        self.xMin.setEnabled(False)
        self.xMax.setEnabled(False)
        self.yMin.setEnabled(False)
        self.yMax.setEnabled(False)
    def __init__(self, parent, orgslist, in_distribution=False):
        super(InlineContactWidget, self).__init__(parent)
        self.parent = parent
        self.superParent = parent.superParent
        self.setupUi(self)
        if platform.system() != "Linux":
            font = QFont()
            font.setFamily(u"Segoe UI Symbol")
            self.setFont(font)

        self.orgs = {}
        org = orgslist
        for x in org:
            name = org[x] + " (" + x + ")"
            self.orgs[x] = customCombo.CodeListItem(name, name, name)

        self.combo_org.setModel(
            customCombo.CustomComboBoxModel(
                self, [customCombo.CodeListItem(OUTRA, OUTRA, OUTRA)] +
                sorted(list(self.orgs.values()), key=lambda x: x.term_pt)))
        self.combo_org.currentIndexChanged.connect(self.check_org)

        # initialized where because if was on the spot the c++ garbage collector will destroy it and cause a error
        self.dialog = None
        tla.setupListView(self.phone, QgsFilterLineEdit, self, NoParent=True)
        tla.setupListView(self.email, QgsFilterLineEdit, self, NoParent=True)
        tla.setupListView(self.fax, QgsFilterLineEdit, self, NoParent=True)

        tla.setupMandatoryField(None, self.organization,
                                self.label_organization,
                                tla.formatTooltip(u"Elemento Obrigatório."))
        tla.setupMandatoryField(
            None, self.email, self.label_email,
            tla.formatTooltip(
                u"Deve ser indicado pelo menos um endereço eletrónico (\'<em>email</em>\')."
            ))

        for btn in self.findChildren(qwidgets.QPushButton,
                                     qcore.QRegExp('btn_*')):
            if '_add_' in btn.objectName():
                btn.setIcon(
                    qgui.QIcon(':/resourcesFolder/icons/plus_icon.svg'))
                btn.setText('')
            elif '_del_' in btn.objectName():
                btn.setIcon(
                    qgui.QIcon(':/resourcesFolder/icons/delete_icon.svg'))
                btn.setText('')
        for info in self.findChildren(qwidgets.QPushButton,
                                      qcore.QRegExp('info_*')):
            info.setIcon(qgui.QIcon(':/resourcesFolder/icons/help_icon.svg'))
            info.setText('')
            info.pressed.connect(self.printHelp)
        f = open(
            os.path.join(pluginDirectory('EditorMetadadosMarswInforbiomares'),
                         'resourcesFolder/stylesheet.qtcss'))
        self.sytlesheet = f.read()
        for btn in self.findChildren(qwidgets.QPushButton):
            btn.setStyleSheet(self.sytlesheet)
            btn.setFocusPolicy(Qt.NoFocus)
        self.name.editingFinished.connect(self.updateTitle)
        self.organization.textChanged.connect(self.updateTitle)
        self.city.editingFinished.connect(self.updateTitle)
        self.country.editingFinished.connect(self.updateTitle)
        self.email.model().dataChanged.connect(self.updateTitle)
        self.btn_del_contact.clicked.connect(self.deleteContact)
        self.btn_contact_list.clicked.connect(self.importFromListContacts)
        self.btn_addto_list_contacts.clicked.connect(self.addtoListOfContacts)
        self.mGroupBox.collapsedStateChanged.connect(self.hideButtons)
        self.btn_del_contact.setToolTip(tla.formatTooltip(u"Agagar contacto."))
        self.updateTitle()

        self.btn_addto_list_contacts.setIcon(
            qgui.QIcon(':/resourcesFolder/icons/save_icon.svg'))
        self.btn_addto_list_contacts.setToolTip(
            tla.formatTooltip(u"Guardar contacto na Lista de Contactos."))
        self.btn_contact_list.setIcon(
            qgui.QIcon(':/resourcesFolder/icons/contactsList_icon.svg'))
        self.btn_contact_list.setToolTip(u'Importar da Lista de Contactos')
        self.btn_contact_list.setText('')
        self.btn_addto_list_contacts.setText('')
        self.eater = tla.EatWheel()
        for x in self.findChildren(qwidgets.QComboBox):
            x.installEventFilter(self.eater)
            x.setFocusPolicy(Qt.StrongFocus)
        for x in self.findChildren(QDateTimeEdit):
            x.installEventFilter(self.eater)
            x.setFocusPolicy(Qt.StrongFocus)
        for x in self.findChildren(QDateEdit):
            x.installEventFilter(self.eater)
            x.setFocusPolicy(Qt.StrongFocus)

        if in_distribution:
            temp = {}
            temp["distributor"] = {}
            temp["distributor"]["en"] = "distributor"
            temp["distributor"]["pt"] = "Distribuidor"
            temp["distributor"]["description"] = "Distribuidor"

            self.roles = customCombo.dic_to_CustomComboBox_dic(temp)
            self.combo_role.setModel(
                customCombo.CustomComboBoxModel(
                    self,
                    sorted(list(self.roles.values()),
                           key=lambda x: x.term_pt)))
            self.combo_role.setDisabled(True)
        else:
            self.roles = customCombo.dic_to_CustomComboBox_dic(
                self.superParent.codelist["CI_RoleCode"])
            self.combo_role.setModel(
                customCombo.CustomComboBoxModel(
                    self,
                    sorted(list(self.roles.values()),
                           key=lambda x: x.term_pt)))
            tla.setupMandatoryField(
                None, self.combo_role, self.label_role,
                u"Tem que ser especificada uma função para o contacto.")
            self.combo_role.currentIndexChanged.connect(
                self.check_mandatory_completude)
Ejemplo n.º 17
0
    def __init__(self, parent, scope):

        super(IdentificationWidget, self).__init__(parent)
        self.setupUi(self)
        self.superParent = self.parent()
        self.contacts_list = []
        self.scope = scope
        # CODELISTS LOAD
        self.combo_items_md_maintenancefrequencycode = customCombo.dic_to_CustomComboBox_dic(
            self.superParent.codelist["MD_MaintenanceFrequencyCode"])
        self.combo_items_languagecode = customCombo.dic_to_CustomComboBox_dic(
            self.superParent.codelist["LanguageCode"])
        self.combo_items_md_spatialrepresentationtypecode = customCombo.dic_to_CustomComboBox_dic(
            self.superParent.codelist["MD_SpatialRepresentationTypeCode"])
        self.combo_items_md_charactersetCode = customCombo.dic_to_CustomComboBox_dic(
            self.superParent.codelist["MD_CharacterSetCode"])
        self.combo_items_md_scopecode = customCombo.dic_to_CustomComboBox_dic(
            self.superParent.codelist["MD_ScopeCode"])
        self.combo_items_md_progressCode = customCombo.dic_to_CustomComboBox_dic(
            self.superParent.codelist["MD_ProgressCode"])
        self.combo_item_service_type = customCombo.dic_to_CustomComboBox_dic(
            self.superParent.codelist["ServiceType"])
        self.combo_items_couplingType = customCombo.dic_to_CustomComboBox_dic(
            self.superParent.codelist["CouplingType"])
        self.combo_items_distance_units = customCombo.dic_to_CustomComboBox_dic(
            self.superParent.codelist["DistanceUnits"])

        # Lists
        self.validator = lval.Identification(
            list(self.combo_items_md_maintenancefrequencycode.values()),
            list(self.combo_items_languagecode.values()),
            list(self.combo_items_md_spatialrepresentationtypecode.values()),
            list(self.combo_items_md_progressCode.values()))
        self.tablevalidator = tval.Identification()
        tla.setupListView(self.credits, QgsFilterLineEdit, self)
        # ---------

        tla.setupListView(
            self.resourcemaintenance,
            customCombo.CustomComboBox,
            self,
            comboList=list(
                self.combo_items_md_maintenancefrequencycode.values()),
            validationfunction=self.validator.resourcemaintenance)
        # ---------

        tla.setupListView(self.language,
                          customCombo.CustomComboBox,
                          self,
                          comboList=list(
                              self.combo_items_languagecode.values()),
                          validationfunction=self.validator.language)

        # ----------------------------
        tla.setupListView(self.resourcestatus,
                          customCombo.CustomComboBox,
                          self,
                          comboList=list(
                              self.combo_items_md_progressCode.values()),
                          validationfunction=self.validator.resourcestatus)

        self.combo_language.setCurrentIndex(
            self.combo_language.findText(cons.PREDEF_LANG_RESOURCES))
        # ---------

        # tables
        tla.setupTableView(self,
                           self.identifiers,
                           [u'Identificador', u'Espaço de Nomes'],
                           [QgsFilterLineEdit, QgsFilterLineEdit],
                           [self.line_identifier, self.line_namespace],
                           validationfunction=self.tablevalidator.identifiers,
                           mandatorysources=[0])
        self.identifiers.horizontalHeader().setSectionResizeMode(
            QHeaderView.Stretch)

        tla.setupMandatoryField(self, self.hierarchylevel,
                                self.label_hierarchylevel,
                                u"Elemento obrigatório em falta")
        tla.setupMandatoryField(self, self.title, self.label_title,
                                u"Elemento obrigatório em falta")
        tla.setupMandatoryField(self, self.abstract_, self.label_abstract,
                                u"Elemento obrigatório em falta")
        tla.setupMandatoryField(self, self.titleEN, self.label_titleEN,
                                u"Elemento obrigatório em falta")
        tla.setupMandatoryField(self, self.abstractEN, self.label_abstractEN,
                                u"Elemento obrigatório em falta")
        tla.setupMandatoryField(self, self.resourcemaintenance,
                                self.label_resourcemaintenance,
                                u"Obrigatório conter pelo menos uma entrada")
        tla.setupMandatoryField(self, self.identifiers, self.label_identifiers,
                                u"Obrigatório conter pelo menos uma entrada")
        tla.setupMandatoryField(self, self.characterset,
                                self.label_characterset,
                                u"Elemento obrigatório em falta")

        # ComboBoxes Initialization(Not the ones associated with List/Table Views!!!!)

        self.characterset.setModel(
            customCombo.CustomComboBoxModel(
                self, [None] +
                sorted(list(self.combo_items_md_charactersetCode.values()),
                       key=lambda x: x.term_pt)))
        self.characterset.setCurrentIndex(
            self.characterset.findText(cons.PREDEF_CHARSET))
        self.hierarchylevel.setModel(
            customCombo.CustomComboBoxModel(
                self,
                [None] + sorted(list(self.combo_items_md_scopecode.values()),
                                key=lambda x: x.term_pt)))
        # ----------------------------------------------------------------------#
        self.btn_adi_contact.clicked.connect(self.addContact)
        self.check_mandatory_contacts()
        # Buttons Icons initialization

        for btn in self.findChildren(QPushButton, qcore.QRegExp('btn_*')):
            if '_add_' in btn.objectName():
                btn.setIcon(QIcon(':/resourcesFolder/icons/plus_icon.svg'))
                btn.setText('')
            elif '_del_' in btn.objectName():
                btn.setIcon(QIcon(':/resourcesFolder/icons/delete_icon.svg'))
                btn.setText('')

        for info in self.findChildren(QPushButton, qcore.QRegExp('info_*')):
            info.setIcon(QIcon(':/resourcesFolder/icons/help_icon.svg'))
            info.setText('')
            info.pressed.connect(self.printHelp)
        self.btn_adi_contact.setIcon(
            QIcon(':/resourcesFolder/icons/plus_icon.svg'))
        self.btn_gen_uuid_identifiers.clicked.connect(
            lambda: self.identifiers.model().addNewRow(
                [str(uuid.uuid4()), None]))

        self.eater = tla.EatWheel()
        for x in self.findChildren(QComboBox):
            x.installEventFilter(self.eater)
            x.setFocusPolicy(Qt.StrongFocus)
        for x in self.findChildren(QDateTimeEdit):
            x.installEventFilter(self.eater)
            x.setFocusPolicy(Qt.StrongFocus)

        self.hierarchylevel.setCurrentIndex(
            self.hierarchylevel.findText(
                self.combo_items_md_scopecode[SCOPES.get_string_representation(
                    self.scope)].term_pt))
        self.hierarchylevel.setDisabled(True)

        if scope == SCOPES.CDG or scope == SCOPES.SERIES:

            tla.setupTableView(self,
                               self.distance, ["Valor", "Unidade"],
                               [QDoubleSpinBox, customCombo.CustomComboBox],
                               [self.spin_distance, self.combo_distance],
                               comboList=[self.combo_items_distance_units],
                               mandatorysources=[0, 1])
            self.distance.verticalHeader().setMinimumSectionSize(20)
            self.distance.verticalHeader().setDefaultSectionSize(100)
            self.distance.horizontalHeader().setSectionResizeMode(
                QHeaderView.Stretch)
            self.combo_distance.setModel(
                customCombo.CustomComboBoxModel(
                    self,
                    sorted(list(self.combo_items_distance_units.values()),
                           key=lambda x: x.term_pt)))
            self.combo_distance.setCurrentIndex(
                self.combo_distance.findText('Metros'))

            tla.setupListView(
                self.equivalentscale,
                QSpinBox,
                self,
                fraction_flag=True,
                validationfunction=self.validator.equivalentscale)
            tla.setupListView(
                self.geographicrepresentation,
                customCombo.CustomComboBox,
                self,
                comboList=list(
                    self.combo_items_md_spatialrepresentationtypecode.values(
                    )),
                validationfunction=self.validator.geographicrepresentation)

            self.equivalentscale.model().rowsInserted.connect(
                self.check_mandatory_resolution)
            self.equivalentscale.model().rowsRemoved.connect(
                self.check_mandatory_resolution)
            self.distance.model().rowsInserted.connect(
                self.check_mandatory_resolution)
            self.distance.model().rowsRemoved.connect(
                self.check_mandatory_resolution)
            self.widget_service.setHidden(True)
            self.serviceType.setHidden(True)
            self.widget_coupling.setHidden(True)
            self.couplingType.setHidden(True)
            self.widget_operatesOn.setHidden(True)
            self.operatesOn.setHidden(True)
            self.btn_add_operatesOn.setHidden(True)
            self.btn_del_operatesOn.setHidden(True)
            self.line_operatesOn.setHidden(True)
            self.check_mandatory_resolution()
            tla.setupMandatoryField(
                self, self.geographicrepresentation,
                self.label_geographicrepresentation,
                u"Obrigatório conter pelo menos uma entrada")
            tla.setupMandatoryField(
                self, self.language, self.label_language,
                u"Obrigatório conter pelo menos uma entrada")

            self.spatiaResolutionUnknown.stateChanged.connect(
                self.check_mandatory_resolution)
        elif scope == SCOPES.SERVICES:
            tla.setupListView(self.operatesOn, QgsFilterLineEdit, self)
            self.serviceType.setModel(
                customCombo.CustomComboBoxModel(
                    self, [None] +
                    sorted(list(self.combo_item_service_type.values()),
                           key=lambda x: x.term_pt)))
            self.couplingType.setModel(
                customCombo.CustomComboBoxModel(
                    self, [None] +
                    sorted(list(self.combo_items_couplingType.values()),
                           key=lambda x: x.term_pt)))
            # spatialRespresentationType AND language
            self.box_language_geoReprType.setHidden(True)
            # spatialRepresentation
            self.box_spatial_resolution.setHidden(True)
            # charset
            self.widget_charset.setHidden(True)
            self.characterset.setHidden(True)
            tla.setupMandatoryField(self, self.couplingType,
                                    self.label_couplingType,
                                    u"Campo Obrigatório.")
            tla.setupMandatoryField(self, self.serviceType,
                                    self.label_serviceType,
                                    u"Campo Obrigatório.")
Ejemplo n.º 18
0
 def setMask(self):
     """
     REGEx closely related to the valid chars method 'setValidCharacters'
     """
     if self.scaleCombo.currentText() == '1000k':
         regex = QtCore.QRegExp('[NSns]{1}[A-Za-z]{1}\-[0-9]{1,2}')
         validator = QtGui.QRegExpValidator(regex, self.inomLineEdit)
         self.inomLineEdit.setValidator(validator)
     elif self.scaleCombo.currentText() == '500k':
         regex = QtCore.QRegExp(
             '[NSns]{1}[A-Za-z]{1}\-[0-9]{1,2}\-[V-Zv-z]{1}')
         validator = QtGui.QRegExpValidator(regex, self.inomLineEdit)
         self.inomLineEdit.setValidator(validator)
     elif self.scaleCombo.currentText() == '250k':
         regex = QtCore.QRegExp(
             '[NSns]{1}[A-Za-z]{1}\-[0-9]{1,2}\-[V-Zv-z]{1}\-[A-Da-d]{1}')
         validator = QtGui.QRegExpValidator(regex, self.inomLineEdit)
         self.inomLineEdit.setValidator(validator)
     elif self.scaleCombo.currentText() == '100k':
         regex = QtCore.QRegExp(
             '[NSns]{1}[A-Za-z]{1}\-[0-9]{1,2}\-[V-Zv-z]{1}\-[A-Da-d]{1}\-[IViv]{1,3}'
         )
         validator = QtGui.QRegExpValidator(regex, self.inomLineEdit)
         self.inomLineEdit.setValidator(validator)
     elif self.scaleCombo.currentText() == '50k':
         self.inomLineEdit.setInputMask('NN-NN-N-N-Nnn-0')
         regex = QtCore.QRegExp(
             '[NSns]{1}[A-Za-z]{1}\-[0-9]{1,2}\-[V-Zv-z]{1}\-[A-Da-d]{1}\-[IViv]{1,3}\-[1-4]{1}'
         )
         validator = QtGui.QRegExpValidator(regex, self.inomLineEdit)
         self.inomLineEdit.setValidator(validator)
     elif self.scaleCombo.currentText() == '25k':
         regex = QtCore.QRegExp(
             '[NSns]{1}[A-Za-z]{1}\-[0-9]{1,2}\-[V-Zv-z]{1}\-[A-Da-d]{1}\-[IViv]{1,3}\-[1-4]{1}\-[NSns]{1}[OEoe]{1}'
         )
         validator = QtGui.QRegExpValidator(regex, self.inomLineEdit)
         self.inomLineEdit.setValidator(validator)
     elif self.scaleCombo.currentText() == '10k':
         regex = QtCore.QRegExp(
             '[NSns]{1}[A-Za-z]{1}\-[0-9]{1,2}\-[V-Zv-z]{1}\-[A-Da-d]{1}\-[IViv]{1,3}\-[1-4]{1}\-[NSns]{1}[OEoe]{1}\-[A-Fa-f]{1}'
         )
         validator = QtGui.QRegExpValidator(regex, self.inomLineEdit)
         self.inomLineEdit.setValidator(validator)
     elif self.scaleCombo.currentText() == '5k':
         regex = QtCore.QRegExp(
             '[NSns]{1}[A-Za-z]{1}\-[0-9]{1,2}\-[V-Zv-z]{1}\-[A-Da-d]{1}\-[IViv]{1,3}\-[1-4]{1}\-[NSns]{1}[OEoe]{1}\-[A-Fa-f]{1}\-[IViv]{1,3}'
         )
         validator = QtGui.QRegExpValidator(regex, self.inomLineEdit)
         self.inomLineEdit.setValidator(validator)
     elif self.scaleCombo.currentText() == '2k':
         regex = QtCore.QRegExp(
             '[NSns]{1}[A-Za-z]{1}\-[0-9]{1,2}\-[V-Zv-z]{1}\-[A-Da-d]{1}\-[IViv]{1,3}\-[1-4]{1}\-[NSns]{1}[OEoe]{1}\-[A-Fa-f]{1}\-[IViv]{1,3}\-[1-6]{1}'
         )
         validator = QtGui.QRegExpValidator(regex, self.inomLineEdit)
         self.inomLineEdit.setValidator(validator)
     elif self.scaleCombo.currentText() == '1k':
         regex = QtCore.QRegExp(
             '[NSns]{1}[A-Za-z]{1}\-[0-9]{1,2}\-[V-Zv-z]{1}\-[A-Da-d]{1}\-[IViv]{1,3}\-[1-4]{1}\-[NSns]{1}[OEoe]{1}\-[A-Fa-f]{1}\-[IViv]{1,3}\-[1-6]{1}\-[A-Da-d]{1}'
         )
         validator = QtGui.QRegExpValidator(regex, self.inomLineEdit)
         self.inomLineEdit.setValidator(validator)
Ejemplo n.º 19
0
    def __init__(self, parent, scope):
        super(DistributionWidget, self).__init__(parent)
        self.setupUi(self)
        self.superParent = self.parent()
        self.combo_items_ci_onlinefunctioncode = customCombo.dic_to_CustomComboBox_dic(
            self.superParent.codelist["CI_OnLineFunctionCode"])
        self.tableValidation = tval.Distribution(
            list(self.combo_items_ci_onlinefunctioncode.values()))

        tla.setupTableView(
            self,
            self.distributionformat, [u'Nome do Formato', u'Versão'],
            [QgsFilterLineEdit, QgsFilterLineEdit],
            [self.line_name, self.line_version],
            mandatorysources=[0, 1],
            validationfunction=self.tableValidation.distribuituionformat)
        self.distributionformat.horizontalHeader().setSectionResizeMode(
            qwidgets.QHeaderView.Stretch)

        self.combo_function.setModel(
            customCombo.CustomComboBoxModel(
                self,
                sorted(list(self.combo_items_ci_onlinefunctioncode.values()),
                       key=lambda x: x.term_pt)))
        for btn in self.findChildren(qwidgets.QPushButton,
                                     qcore.QRegExp('btn_*')):
            if '_add_' in btn.objectName():
                btn.setIcon(
                    qgui.QIcon(':/resourcesFolder/icons/plus_icon.svg'))
                btn.setText('')
            elif '_del_' in btn.objectName():
                btn.setIcon(
                    qgui.QIcon(':/resourcesFolder/icons/delete_icon.svg'))
                btn.setText('')
        for info in self.findChildren(qwidgets.QPushButton,
                                      qcore.QRegExp('info_*')):
            info.setIcon(qgui.QIcon(':/resourcesFolder/icons/help_icon.svg'))
            info.setText('')
            info.pressed.connect(self.printHelp)

        self.btn_adi_contact.setIcon(
            qgui.QIcon(':/resourcesFolder/icons/plus_icon.svg'))

        tla.setupMandatoryField(
            self, self.distributionformat, self.label_distributionformat,
            u"Obrigatório conter pelo "
            u"menos uma entrada.")
        self.contacts_list = []
        self.btn_adi_contact.clicked.connect(self.addContact)
        self.eater = tla.EatWheel()
        for x in self.findChildren(qwidgets.QComboBox):
            x.installEventFilter(self.eater)
            x.setFocusPolicy(Qt.StrongFocus)
        for x in self.findChildren(QDateTimeEdit):
            x.installEventFilter(self.eater)
            x.setFocusPolicy(Qt.StrongFocus)

        self.scope = scope
        if self.scope == SCOPES.SERVICES:
            tla.setupTableView(self,
                               self.resourcelocator, [u'URL'],
                               [QgsFilterLineEdit], [self.line_linkage],
                               mandatorysources=[0])
            tla.setupMandatoryField(
                self, self.resourcelocator, self.label_resourcelocator,
                u"Obrigatório conter pelo menos uma entrada.")
            self.combo_function.setHidden(True)
            self.resourcelocator.verticalHeader().hide()
        else:
            tla.setupTableView(
                self,
                self.resourcelocator, [u'URL', u'Função'],
                [QgsFilterLineEdit, customCombo.CustomComboBox],
                [self.line_linkage, self.combo_function],
                comboList=[self.combo_items_ci_onlinefunctioncode],
                mandatorysources=[0, 1],
                validationfunction=self.tableValidation.resourcelocator)
        self.resourcelocator.horizontalHeader().setSectionResizeMode(
            qwidgets.QHeaderView.Stretch)
Ejemplo n.º 20
0
    def __init__(self, parent, scope):
        super(QualityWidget, self).__init__(parent)
        self.setupUi(self)
        self.conformancedate = NullQDateEditWrapper(self.conformancedate)
        self.superParent = self.parent()
        self.scope = scope
        self.combo_items_ci_datetypecode = customCombo.dic_to_CustomComboBox_dic(
            self.superParent.codelist["CI_DateTypeCode"])
        self.conformancedatetype.setModel(
            customCombo.CustomComboBoxModel(
                self, [None] +
                sorted(list(self.combo_items_ci_datetypecode.values()),
                       key=lambda x: x.term_pt)))
        if scope == CONS.Scopes.CDG or scope == CONS.Scopes.SERIES:

            tla.setupTableView(
                self,
                self.processsteps, [u"Descrição", u"Data", u"Justificação"],
                [QgsFilterLineEdit, QDateTimeEdit, QgsFilterLineEdit], [
                    self.line_description, self.date_processdate,
                    self.line_rationale
                ],
                mandatorysources=[0],
                validationfunction=tval.Quality().processsteps,
                date_format=cons.DATE_TIME_FORMAT)
            self.processsteps.horizontalHeader().setCascadingSectionResizes(
                False)
            self.processsteps.horizontalHeader().setStretchLastSection(False)
            self.processsteps.horizontalHeader().resizeSection(1, 260)
            self.processsteps.horizontalHeader().setDefaultSectionSize(260)
            self.processsteps.horizontalHeader().setMinimumSectionSize(260)
            self.processsteps.horizontalHeader().setSectionResizeMode(
                1, qwidgets.QHeaderView.Fixed)
            self.processsteps.horizontalHeader().setSectionResizeMode(
                2, qwidgets.QHeaderView.Stretch)
            self.processsteps.horizontalHeader().setSectionResizeMode(
                0, qwidgets.QHeaderView.Stretch)
            self.date_processdate.setDate(QDate.currentDate())

            tla.setupListView(self.source, QgsFilterLineEdit, self)
            tla.setupMandatoryField(self, self.statement, self.label_statement,
                                    u"Elemento obrigatório.")
        else:
            self.panel_hist.hide()

        for btn in self.findChildren(qwidgets.QPushButton,
                                     qcore.QRegExp('btn_*')):
            if '_add_' in btn.objectName():
                btn.setIcon(
                    qgui.QIcon(':/resourcesFolder/icons/plus_icon.svg'))
                btn.setText('')
            elif '_del_' in btn.objectName():
                btn.setIcon(
                    qgui.QIcon(':/resourcesFolder/icons/delete_icon.svg'))
                btn.setText('')
            elif '_clear_' in btn.objectName():
                btn.setIcon(
                    qgui.QIcon(':/resourcesFolder/icons/delete_field.svg'))
        for info in self.findChildren(qwidgets.QPushButton,
                                      qcore.QRegExp('info_*')):
            info.setIcon(qgui.QIcon(':/resourcesFolder/icons/help_icon.svg'))
            info.setText('')
            info.pressed.connect(self.printHelp)

        tla.setupMandatoryField(self, self.conformancetitle,
                                self.label_conformancetitle,
                                u"Elemento obrigatório.")
        tla.setupMandatoryField(self, self.conformancedate,
                                self.label_conformancedate,
                                u"Elemento obrigatório.")
        tla.setupMandatoryField(self, self.conformancedatetype,
                                self.label_conformancedatetype,
                                u"Elemento obrigatório.")
        tla.setupMandatoryField(self, self.conformanceexplanation,
                                self.label_conformanceexplanation,
                                u"Elemento obrigatório.")

        self.eater = tla.EatWheel()
        for x in self.findChildren(qwidgets.QComboBox):
            x.installEventFilter(self.eater)
            x.setFocusPolicy(Qt.StrongFocus)
        for x in self.findChildren(QDateEdit):
            x.installEventFilter(self.eater)
            x.setFocusPolicy(Qt.StrongFocus)
        self.btn_clear_conformancedate.pressed.connect(
            lambda: self.conformancedate.clear())

        self.btn_INSPIRE.pressed.connect(self.set_default_dataquality_report)
        self.statement.textChanged.connect(self.checkHistText)
        self.hist_data.stateChanged.connect(self.setHist)