def __init__(self, parent, db_action_type): DbConfigPanel.__init__(self, parent, db_action_type) self.setupUi(self) for item_odbc_driver in get_odbc_drivers(): self.mssql_odbc_driver.addItem(item_odbc_driver) # define validators self.validators = Validators() nonEmptyValidator = NonEmptyStringValidator() self.mssql_host_line_edit.setValidator(nonEmptyValidator) self.mssql_database_line_edit.setValidator(nonEmptyValidator) self.mssql_user_line_edit.setValidator(nonEmptyValidator) self.mssql_host_line_edit.textChanged.connect( self.validators.validate_line_edits) self.mssql_host_line_edit.textChanged.emit(self.mssql_host_line_edit.text()) self.mssql_database_line_edit.textChanged.connect( self.validators.validate_line_edits) self.mssql_database_line_edit.textChanged.emit( self.mssql_database_line_edit.text()) self.mssql_user_line_edit.textChanged.connect( self.validators.validate_line_edits) self.mssql_user_line_edit.textChanged.emit(self.mssql_user_line_edit.text()) self.mssql_host_line_edit.textChanged.connect(self.notify_fields_modified) self.mssql_instance_line_edit.textChanged.connect(self.notify_fields_modified) self.mssql_port_line_edit.textChanged.connect(self.notify_fields_modified) self.mssql_database_line_edit.textChanged.connect(self.notify_fields_modified) self.mssql_schema_line_edit.textChanged.connect(self.notify_fields_modified) self.mssql_user_line_edit.textChanged.connect(self.notify_fields_modified) self.mssql_password_line_edit.textChanged.connect(self.notify_fields_modified)
def __init__(self, parent=None): QDialog.__init__(self, parent) self.setupUi(self) QgsGui.instance().enableAutoGeometryRestore(self) self.toml_file_key = None self.buttonBox.accepted.disconnect() self.buttonBox.accepted.connect(self.accepted) self.buttonBox.rejected.disconnect() self.buttonBox.rejected.connect(self.rejected) self.toml_file_browse_button.clicked.connect( make_file_selector( self.toml_file_line_edit, title=self.tr('Open Extra Model Information File (*.toml)'), file_filter=self.tr('Extra Model Info File (*.toml *.TOML)'))) self.validators = Validators() self.fileValidator = FileValidator( pattern=['*.' + ext for ext in self.ValidExtensions], allow_empty=True) self.toml_file_line_edit.setValidator(self.fileValidator) self.restore_configuration() self.toml_file_line_edit.textChanged.connect( self.validators.validate_line_edits) self.toml_file_line_edit.textChanged.emit( self.toml_file_line_edit.text())
def __init__(self, parent, db_action_type): DbConfigPanel.__init__(self, parent, db_action_type) self.setupUi(self) from QgisModelBaker.libili2db.ili2dbconfig import BaseConfiguration self.pg_use_super_login.setText( self.tr("Execute data management tasks with superuser login from settings ({})").format(BaseConfiguration().super_pg_user)) self.pg_use_super_login.setToolTip(self.tr("Data management tasks are <ul><li>Create the schema</li><li>Read meta information</li><li>Import data from XTF</li><li>Export data to XTF</li></ul>")) if self._db_action_type == DbActionType.GENERATE: self.pg_schema_line_edit.setPlaceholderText(self.tr("[Leave empty to create a default schema]")) elif self._db_action_type == DbActionType.IMPORT_DATA: self.pg_schema_line_edit.setPlaceholderText(self.tr("[Leave empty to import data into a default schema]")) elif self._db_action_type == DbActionType.EXPORT: self.pg_schema_line_edit.setPlaceholderText(self.tr("[Leave empty to load all schemas in the database]")) # define validators self.validators = Validators() nonEmptyValidator = NonEmptyStringValidator() self.pg_host_line_edit.setValidator(nonEmptyValidator) self.pg_database_line_edit.setValidator(nonEmptyValidator) self.pg_host_line_edit.textChanged.connect( self.validators.validate_line_edits) self.pg_host_line_edit.textChanged.emit(self.pg_host_line_edit.text()) self.pg_database_line_edit.textChanged.connect( self.validators.validate_line_edits) self.pg_database_line_edit.textChanged.emit( self.pg_database_line_edit.text()) self.pg_host_line_edit.textChanged.connect(self.notify_fields_modified) self.pg_port_line_edit.textChanged.connect(self.notify_fields_modified) self.pg_database_line_edit.textChanged.connect(self.notify_fields_modified) self.pg_schema_line_edit.textChanged.connect(self.notify_fields_modified)
def __init__(self, parent, db_action_type): DbConfigPanel.__init__(self, parent, db_action_type) lbl_db_file = QLabel(self.tr("Database File")) self.gpkg_file_line_edit = QLineEdit() self.gpkg_file_browse_button = QToolButton() self.gpkg_file_browse_button.setText('…') self.gpkg_file_browse_button.setToolTip( self.tr("Browse GeoPackage files")) layout = QGridLayout(self) layout.addWidget(lbl_db_file, 0, 0) layout.addWidget(self.gpkg_file_line_edit, 0, 1) layout.addWidget(self.gpkg_file_browse_button, 0, 2) # validators self.validators = Validators() self.gpkgSaveFileValidator = FileValidator(pattern='*.gpkg', allow_non_existing=True) self.gpkgOpenFileValidator = FileValidator(pattern='*.gpkg') self.gpkg_file_line_edit.textChanged.connect( self.validators.validate_line_edits) self.gpkg_file_line_edit.textChanged.connect( self.notify_fields_modified)
def __init__(self, configuration, parent=None): QDialog.__init__(self, parent) self.setupUi(self) self.configuration = configuration self.db_simple_factory = DbSimpleFactory() self.pg_user_line_edit.setText(configuration.super_pg_user) self.pg_password_line_edit.setText(configuration.super_pg_password) self.custom_model_directories_line_edit.setText( configuration.custom_model_directories) self.custom_model_directories_box.setChecked( configuration.custom_model_directories_enabled) self.java_path_line_edit.setText(configuration.java_path) self.java_path_search_button.clicked.connect( qt_utils.make_file_selector(self.java_path_line_edit, self.tr('Select Java application'), self.tr('java (*)'))) self.java_path_line_edit.setValidator( FileValidator(is_executable=True, allow_empty=True)) self.validators = Validators() self.java_path_line_edit.textChanged.connect( self.validators.validate_line_edits) self.ili2db_logfile_path.setText(configuration.logfile_path) self.ili2db_logfile_search_button.clicked.connect( qt_utils.make_save_file_selector(self.ili2db_logfile_path, self.tr('Select log file'), self.tr('Text files (*.txt)'))) self.ili2db_enable_debugging.setChecked( self.configuration.debugging_enabled) self.buttonBox.accepted.connect(self.accepted) self.buttonBox.helpRequested.connect(self.help_requested) self.custom_models_dir_button.clicked.connect( self.show_custom_model_dir) for db_id in self.db_simple_factory.get_db_list(False): db_id |= DbIliMode.ili self.ili2db_tool_combobox.addItem(db_id.name, db_id) self.ili2db_action_combobox.addItem(self.tr('Schema Import'), 'schemaimport') self.ili2db_action_combobox.addItem(self.tr('Data Import'), 'import') self.ili2db_action_combobox.addItem(self.tr('Data Export'), 'export') self.ili2db_tool_combobox.currentIndexChanged.connect( self.ili2db_command_reload) self.ili2db_action_combobox.currentIndexChanged.connect( self.ili2db_command_reload) self.ili2db_command_reload() settings = QSettings() drop_mode = DropMode[settings.value('QgisModelBaker/drop_mode', DropMode.ASK.name, str)] self.chk_dontask_to_handle_dropped_files.setEnabled( drop_mode != DropMode.ASK) self.chk_dontask_to_handle_dropped_files.setChecked( drop_mode != DropMode.ASK)
def __init__(self, parent=None): QDialog.__init__(self, parent) self.setupUi(self) QgsGui.instance().enableAutoGeometryRestore(self) self.toml_file_key = None self.buttonBox.accepted.disconnect() self.buttonBox.accepted.connect(self.accepted) self.buttonBox.rejected.disconnect() self.buttonBox.rejected.connect(self.rejected) self.toml_file_browse_button.clicked.connect( make_file_selector( self.toml_file_line_edit, title=self.tr('Open Extra Model Information File (*.toml)'), file_filter=self.tr('Extra Model Info File (*.toml *.TOML)'))) self.pre_script_file_browse_button.clicked.connect( make_file_selector( self.pre_script_file_line_edit, title=self.tr('SQL script to run before (*.sql)'), file_filter=self.tr('SQL script to run before (*.sql *.SQL)'))) self.post_script_file_browse_button.clicked.connect( make_file_selector( self.post_script_file_line_edit, title=self.tr('SQL script to run after (*.sql)'), file_filter=self.tr('SQL script to run after (*.sql *.SQL)'))) self.validators = Validators() self.file_validator = FileValidator( pattern=['*.' + ext for ext in self.ValidExtensions], allow_empty=True) self.toml_file_line_edit.setValidator(self.file_validator) self.sql_file_validator = FileValidator( pattern=['*.' + ext for ext in self.SQLValidExtensions], allow_empty=True) self.pre_script_file_line_edit.setValidator(self.sql_file_validator) self.post_script_file_line_edit.setValidator(self.sql_file_validator) self.restore_configuration() self.toml_file_line_edit.textChanged.connect( self.validators.validate_line_edits) self.toml_file_line_edit.textChanged.emit( self.toml_file_line_edit.text()) self.pre_script_file_line_edit.textChanged.connect( self.validators.validate_line_edits) self.pre_script_file_line_edit.textChanged.emit( self.pre_script_file_line_edit.text()) self.post_script_file_line_edit.textChanged.connect( self.validators.validate_line_edits) self.post_script_file_line_edit.textChanged.emit( self.post_script_file_line_edit.text()) self.bar = QgsMessageBar() self.bar.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Fixed) self.layout().addWidget(self.bar, 0, 0, Qt.AlignTop)
def __init__(self, parent, db_action_type): DbConfigPanel.__init__(self, parent, db_action_type) self.setupUi(self) # validators self.validators = Validators() self.gpkgSaveFileValidator = FileValidator(pattern='*.gpkg', allow_non_existing=True) self.gpkgOpenFileValidator = FileValidator(pattern='*.gpkg') self.gpkg_file_line_edit.textChanged.connect( self.validators.validate_line_edits) self.gpkg_file_line_edit.textChanged.connect( self.notify_fields_modified)
def __init__(self, parent, db_action_type): DbConfigPanel.__init__(self, parent, db_action_type) self.setupUi(self) # validators self.validators = Validators() self.gpkgSaveFileValidator = FileValidator( pattern=['*.' + ext for ext in self.ValidExtensions], allow_non_existing=True) self.gpkgOpenFileValidator = FileValidator( pattern=['*.' + ext for ext in self.ValidExtensions], allow_non_existing=( self._db_action_type == DbActionType.IMPORT_DATA)) self.gpkg_file_line_edit.textChanged.connect( self.validators.validate_line_edits) self.gpkg_file_line_edit.textChanged.connect( self.notify_fields_modified)
def __init__(self, parent, title): QWizardPage.__init__(self, parent) self.workflow_wizard = parent self.setupUi(self) self.setTitle(title) self.filter_data_panel = FilterDataPanel(self.workflow_wizard) self.filter_layout.addWidget(self.filter_data_panel) self.is_complete = False self.xtf_file_browse_button.clicked.connect( make_save_file_selector( self.xtf_file_line_edit, title=self.tr("Save in XTF Transfer File"), file_filter=self. tr("XTF Transfer File (*.xtf *XTF);;Interlis 1 Transfer File (*.itf *ITF);;XML (*.xml *XML);;GML (*.gml *GML)" ), extension=".xtf", extensions=["." + ext for ext in self.ValidExtensions], )) self.validators = Validators() fileValidator = FileValidator( pattern=["*." + ext for ext in self.ValidExtensions], allow_non_existing=True, ) self.xtf_file_line_edit.setValidator(fileValidator) self.xtf_file_line_edit.textChanged.connect( self.validators.validate_line_edits) self.xtf_file_line_edit.textChanged.connect( self._set_current_export_target) self.xtf_file_line_edit.textChanged.emit( self.xtf_file_line_edit.text())
def __init__(self, base_config, parent=None): QDialog.__init__(self, parent) self.setupUi(self) self.db_simple_factory = DbSimpleFactory() QgsGui.instance().enableAutoGeometryRestore(self) self.buttonBox.accepted.disconnect() self.buttonBox.clear() self.buttonBox.addButton(QDialogButtonBox.Cancel) self.buttonBox.addButton(QDialogButtonBox.Help) self.buttonBox.helpRequested.connect(self.help_requested) self.export_text = self.tr("Export") self.set_button_to_export_action = QAction(self.export_text, None) self.set_button_to_export_action.triggered.connect( self.set_button_to_export) self.export_without_validation_text = self.tr( "Export without validation") self.set_button_to_export_without_validation_action = QAction( self.export_without_validation_text, None) self.set_button_to_export_without_validation_action.triggered.connect( self.set_button_to_export_without_validation) self.edit_command_action = QAction(self.tr("Edit ili2db command"), None) self.edit_command_action.triggered.connect(self.edit_command) self.export_tool_button.addAction( self.set_button_to_export_without_validation_action) self.export_tool_button.addAction(self.edit_command_action) self.export_tool_button.setText(self.export_text) self.export_tool_button.clicked.connect(self.accepted) self.xtf_file_browse_button.clicked.connect( make_save_file_selector( self.xtf_file_line_edit, title=self.tr("Save in XTF Transfer File"), file_filter=self. tr("XTF Transfer File (*.xtf *XTF);;Interlis 1 Transfer File (*.itf *ITF);;XML (*.xml *XML);;GML (*.gml *GML)" ), extension=".xtf", extensions=["." + ext for ext in self.ValidExtensions], )) self.xtf_file_browse_button.clicked.connect( self.xtf_browser_opened_to_true) self.xtf_browser_was_opened = False self.type_combo_box.clear() self._lst_panel = dict() for db_id in self.db_simple_factory.get_db_list(False): self.type_combo_box.addItem(displayDbIliMode[db_id], db_id) db_factory = self.db_simple_factory.create_factory(db_id) item_panel = db_factory.get_config_panel(self, DbActionType.EXPORT) self._lst_panel[db_id] = item_panel self.db_layout.addWidget(item_panel) self.validators = Validators() fileValidator = FileValidator( pattern=["*." + ext for ext in self.ValidExtensions], allow_non_existing=True, ) self.xtf_file_line_edit.setValidator(fileValidator) self.xtf_file_line_edit.textChanged.connect( self.validators.validate_line_edits) self.xtf_file_line_edit.textChanged.connect( self.xtf_browser_opened_to_false) self.xtf_file_line_edit.textChanged.emit( self.xtf_file_line_edit.text()) # Reset to export as default text self.xtf_file_line_edit.textChanged.connect(self.set_button_to_export) # refresh the models on changing values but avoid massive db connects by timer self.refreshTimer = QTimer() self.refreshTimer.setSingleShot(True) self.refreshTimer.timeout.connect(self.refresh_models) for key, value in self._lst_panel.items(): value.notify_fields_modified.connect( self.request_for_refresh_models) self.validate_data = True # validates exported data by default, We use --disableValidation when is False self.base_configuration = base_config self.restore_configuration() self.export_models_model = ExportModels() self.export_models_view.setModel(self.export_models_model) self.export_models_view.clicked.connect(self.export_models_model.check) self.export_models_view.space_pressed.connect( self.export_models_model.check) self.request_for_refresh_models() self.type_combo_box.currentIndexChanged.connect(self.type_changed) self.bar = QgsMessageBar() self.bar.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Fixed) self.txtStdout.setLayout(QGridLayout()) self.txtStdout.layout().setContentsMargins(0, 0, 0, 0) self.txtStdout.layout().addWidget(self.bar, 0, 0, Qt.AlignTop)
def __init__(self, iface, base_config, parent=None): QDialog.__init__(self, parent) self.setupUi(self) self.iface = iface self.db_simple_factory = DbSimpleFactory() QgsGui.instance().enableAutoGeometryRestore(self) self.buttonBox.accepted.disconnect() self.buttonBox.accepted.connect(self.accepted) self.buttonBox.clear() self.buttonBox.addButton(QDialogButtonBox.Cancel) create_button = self.buttonBox.addButton(self.tr('Create'), QDialogButtonBox.AcceptRole) create_button.setDefault(True) self.ili_file_browse_button.clicked.connect( make_file_selector( self.ili_file_line_edit, title=self.tr('Open Interlis Model'), file_filter=self.tr('Interlis Model File (*.ili *.ILI)'))) self.buttonBox.addButton(QDialogButtonBox.Help) self.buttonBox.helpRequested.connect(self.help_requested) self.crs = QgsCoordinateReferenceSystem() self.ili2db_options = Ili2dbOptionsDialog() self.ili2db_options_button.clicked.connect(self.ili2db_options.open) self.ili2db_options.finished.connect(self.fill_toml_file_info_label) self.multiple_models_dialog = MultipleModelsDialog(self) self.multiple_models_button.clicked.connect( self.multiple_models_dialog.open) self.multiple_models_dialog.accepted.connect( self.fill_models_line_edit) self.type_combo_box.clear() self._lst_panel = dict() for db_id in self.db_simple_factory.get_db_list(True): self.type_combo_box.addItem(displayDbIliMode[db_id], db_id) for db_id in self.db_simple_factory.get_db_list(False): db_factory = self.db_simple_factory.create_factory(db_id) item_panel = db_factory.get_config_panel(self, DbActionType.GENERATE) self._lst_panel[db_id] = item_panel self.db_layout.addWidget(item_panel) self.type_combo_box.currentIndexChanged.connect(self.type_changed) self.txtStdout.anchorClicked.connect(self.link_activated) self.crsSelector.crsChanged.connect(self.crs_changed) self.base_configuration = base_config self.bar = QgsMessageBar() self.bar.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Fixed) self.txtStdout.setLayout(QGridLayout()) self.txtStdout.layout().setContentsMargins(0, 0, 0, 0) self.txtStdout.layout().addWidget(self.bar, 0, 0, Qt.AlignTop) self.validators = Validators() nonEmptyValidator = NonEmptyStringValidator() fileValidator = FileValidator( pattern=['*.' + ext for ext in self.ValidExtensions], allow_empty=True) self.restore_configuration() self.ili_models_line_edit.setValidator(nonEmptyValidator) self.ili_file_line_edit.setValidator(fileValidator) self.ili_models_line_edit.textChanged.connect( self.validators.validate_line_edits) self.ili_models_line_edit.textChanged.emit( self.ili_models_line_edit.text()) self.ili_models_line_edit.textChanged.connect(self.on_model_changed) self.ili_models_line_edit.textChanged.connect( self.complete_models_completer) self.ili_models_line_edit.punched.connect( self.complete_models_completer) self.ilicache = IliCache(self.base_configuration) self.refresh_ili_cache() self.ili_models_line_edit.setPlaceholderText( self.tr('[Search model from repository]')) self.ili_file_line_edit.textChanged.connect( self.validators.validate_line_edits) self.ili_file_line_edit.textChanged.connect(self.ili_file_changed) self.ili_file_line_edit.textChanged.emit( self.ili_file_line_edit.text())
def __init__(self, iface, base_config, parent=None): QDialog.__init__(self, parent) self.iface = iface self.setupUi(self) QgsGui.instance().enableAutoGeometryRestore(self) self.db_simple_factory = DbSimpleFactory() self.buttonBox.accepted.disconnect() self.buttonBox.clear() self.buttonBox.addButton(QDialogButtonBox.Cancel) self.buttonBox.addButton(QDialogButtonBox.Help) self.buttonBox.helpRequested.connect(self.help_requested) self.import_text = self.tr("Import Data") self.set_button_to_import_action = QAction(self.import_text, None) self.set_button_to_import_action.triggered.connect( self.set_button_to_import) self.import_without_validation_text = self.tr( "Import without validation") self.set_button_to_import_without_validation_action = QAction( self.import_without_validation_text, None) self.set_button_to_import_without_validation_action.triggered.connect( self.set_button_to_import_without_validation) self.edit_command_action = QAction(self.tr("Edit ili2db command"), None) self.edit_command_action.triggered.connect(self.edit_command) self.import_tool_button.addAction( self.set_button_to_import_without_validation_action) self.import_tool_button.addAction(self.edit_command_action) self.import_tool_button.setText(self.import_text) self.import_tool_button.clicked.connect(self.accepted) self.xtf_file_browse_button.clicked.connect( make_file_selector( self.xtf_file_line_edit, title=self.tr("Open Transfer or Catalog File"), file_filter=self. tr("Transfer File (*.xtf *.itf *.XTF *.ITF);;Catalogue File (*.xml *.XML *.xls *.XLS *.xlsx *.XLSX)" ), )) self.type_combo_box.clear() self._lst_panel = dict() for db_id in self.db_simple_factory.get_db_list(False): self.type_combo_box.addItem(displayDbIliMode[db_id], db_id) db_factory = self.db_simple_factory.create_factory(db_id) item_panel = db_factory.get_config_panel(self, DbActionType.IMPORT_DATA) self._lst_panel[db_id] = item_panel self.db_layout.addWidget(item_panel) self.type_combo_box.currentIndexChanged.connect(self.type_changed) self.ili2db_options = Ili2dbOptionsDialog(self, False) self.ili2db_options_button.clicked.connect(self.ili2db_options.open) self.ili2db_options.finished.connect(self.fill_toml_file_info_label) self.multiple_models_dialog = MultipleModelsDialog(self) self.multiple_models_button.clicked.connect( self.multiple_models_dialog.open) self.multiple_models_dialog.accepted.connect( self.fill_models_line_edit) self.validate_data = True # validates imported data by default, We use --disableValidation when is False self.base_configuration = base_config self.restore_configuration() self.validators = Validators() fileValidator = FileValidator( pattern=["*." + ext for ext in self.ValidExtensions]) self.xtf_file_line_edit.setValidator(fileValidator) self.ili_models_line_edit.setPlaceholderText( self.tr("[Search model in repository]")) self.ili_models_line_edit.textChanged.connect( self.complete_models_completer) self.ili_models_line_edit.punched.connect( self.complete_models_completer) self.xtf_file_line_edit.textChanged.connect( self.validators.validate_line_edits) self.xtf_file_line_edit.textChanged.emit( self.xtf_file_line_edit.text()) # Reset to import as default text self.xtf_file_line_edit.textChanged.connect(self.set_button_to_import) settings = QSettings() ilifile = settings.value("QgisModelBaker/ili2db/ilifile") self.ilicache = IliCache(base_config, ilifile or None) self.update_models_completer() self.ilicache.refresh() self.bar = QgsMessageBar() self.bar.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Fixed) self.txtStdout.setLayout(QGridLayout()) self.txtStdout.layout().setContentsMargins(0, 0, 0, 0) self.txtStdout.layout().addWidget(self.bar, 0, 0, Qt.AlignTop)
def __init__(self, base_config, parent=None): QDialog.__init__(self, parent) self.setupUi(self) QgsGui.instance().enableAutoGeometryRestore(self) self.db_simple_factory = DbSimpleFactory() self.buttonBox.accepted.disconnect() self.buttonBox.accepted.connect(self.accepted) self.buttonBox.clear() self.buttonBox.addButton(QDialogButtonBox.Cancel) self.buttonBox.addButton(self.tr('Import Data'), QDialogButtonBox.AcceptRole) self.buttonBox.addButton(QDialogButtonBox.Help) self.buttonBox.helpRequested.connect(self.help_requested) self.xtf_file_browse_button.clicked.connect( make_file_selector( self.xtf_file_line_edit, title=self.tr('Open Transfer or Catalog File'), file_filter=self. tr('Transfer File (*.xtf *.itf);;Catalogue File (*.xml *.xls *.xlsx)' ))) self.type_combo_box.clear() self._lst_panel = dict() for db_id in self.db_simple_factory.get_db_list(False): self.type_combo_box.addItem(displayDbIliMode[db_id], db_id) db_factory = self.db_simple_factory.create_factory(db_id) item_panel = db_factory.get_config_panel(self, DbActionType.IMPORT_DATA) self._lst_panel[db_id] = item_panel self.db_layout.addWidget(item_panel) self.type_combo_box.currentIndexChanged.connect(self.type_changed) self.ili2db_options = Ili2dbOptionsDialog() self.ili2db_options_button.clicked.connect(self.ili2db_options.open) self.ili2db_options.finished.connect(self.fill_toml_file_info_label) self.multiple_models_dialog = MultipleModelsDialog(self) self.multiple_models_button.clicked.connect( self.multiple_models_dialog.open) self.multiple_models_dialog.accepted.connect( self.fill_models_line_edit) self.base_configuration = base_config self.restore_configuration() self.validators = Validators() fileValidator = FileValidator( pattern=['*.xtf', '*.itf', '*.pdf', '*.xml', '*.xls', '*.xlsx']) self.xtf_file_line_edit.setValidator(fileValidator) self.ili_models_line_edit.setPlaceholderText( self.tr('[Search model in repository]')) self.ili_models_line_edit.textChanged.connect( self.complete_models_completer) self.ili_models_line_edit.punched.connect( self.complete_models_completer) self.xtf_file_line_edit.textChanged.connect( self.validators.validate_line_edits) self.xtf_file_line_edit.textChanged.emit( self.xtf_file_line_edit.text()) settings = QSettings() ilifile = settings.value('QgisModelBaker/ili2db/ilifile') self.ilicache = IliCache(base_config, ilifile or None) self.update_models_completer() self.ilicache.refresh()
def __init__(self, base_config, parent=None): QDialog.__init__(self, parent) self.setupUi(self) self.db_simple_factory = DbSimpleFactory() QgsGui.instance().enableAutoGeometryRestore(self) self.buttonBox.accepted.disconnect() self.buttonBox.clicked.connect(self.button_box_clicked) self.buttonBox.clear() self.buttonBox.addButton(QDialogButtonBox.Cancel) self.export_button_name = self.tr('Export') self.export_without_validate_button_name = self.tr( 'Export without validation') self.buttonBox.addButton(self.export_button_name, QDialogButtonBox.AcceptRole) self.buttonBox.addButton(QDialogButtonBox.Help) self.buttonBox.helpRequested.connect(self.help_requested) self.xtf_file_browse_button.clicked.connect( make_save_file_selector( self.xtf_file_line_edit, title=self.tr('Save in XTF Transfer File'), file_filter=self. tr('XTF Transfer File (*.xtf *XTF);;Interlis 1 Transfer File (*.itf *ITF);;XML (*.xml *XML);;GML (*.gml *GML)' ), extensions=['.' + ext for ext in self.ValidExtensions])) self.xtf_file_browse_button.clicked.connect( self.xtf_browser_opened_to_true) self.xtf_browser_was_opened = False self.type_combo_box.clear() self._lst_panel = dict() for db_id in self.db_simple_factory.get_db_list(False): self.type_combo_box.addItem(displayDbIliMode[db_id], db_id) db_factory = self.db_simple_factory.create_factory(db_id) item_panel = db_factory.get_config_panel(self, DbActionType.EXPORT) self._lst_panel[db_id] = item_panel self.db_layout.addWidget(item_panel) self.validators = Validators() fileValidator = FileValidator( pattern=['*.' + ext for ext in self.ValidExtensions], allow_non_existing=True) self.xtf_file_line_edit.setValidator(fileValidator) self.xtf_file_line_edit.textChanged.connect( self.validators.validate_line_edits) self.xtf_file_line_edit.textChanged.connect( self.xtf_browser_opened_to_false) self.xtf_file_line_edit.textChanged.emit( self.xtf_file_line_edit.text()) # Remove export without validate button when xtf change self.xtf_file_line_edit.textChanged.connect( self.remove_export_without_validate_button) #refresh the models on changing values but avoid massive db connects by timer self.refreshTimer = QTimer() self.refreshTimer.setSingleShot(True) self.refreshTimer.timeout.connect(self.refresh_models) for key, value in self._lst_panel.items(): value.notify_fields_modified.connect( self.request_for_refresh_models) self.validate_data = True # validates exported data by default, We use --disableValidation when is False self.base_configuration = base_config self.restore_configuration() self.export_models_model = ExportModels() self.refresh_models() self.type_combo_box.currentIndexChanged.connect(self.type_changed)
def __init__(self, parent, db_action_type): DbConfigPanel.__init__(self, parent, db_action_type) lbl_host = QLabel(self.tr("Host")) lbl_port = QLabel(self.tr("Port")) lbl_database = QLabel(self.tr("Database")) lbl_schema = QLabel(self.tr("Schema")) lbl_user = QLabel(self.tr("User")) lbl_password = QLabel(self.tr("Password")) self.pg_host_line_edit = QLineEdit() self.pg_host_line_edit.setPlaceholderText(self.tr("Database Hostname")) self.pg_host_line_edit.setText('localhost') self.pg_port_line_edit = QLineEdit() self.pg_port_line_edit.setPlaceholderText( self.tr("[Leave empty to use standard port 5432]")) self.pg_database_line_edit = QLineEdit() self.pg_database_line_edit.setPlaceholderText(self.tr("Database Name")) self.pg_schema_line_edit = QLineEdit() self.pg_schema_line_edit.setPlaceholderText( self.tr("[Leave empty to load all schemas in the database]")) self.pg_user_line_edit = QLineEdit() self.pg_user_line_edit.setPlaceholderText(self.tr("Database Username")) self.pg_password_line_edit = QLineEdit() self.pg_password_line_edit.setEchoMode(QLineEdit.Password) self.pg_password_line_edit.setPlaceholderText( self.tr("[Leave empty to use system password]")) from QgisModelBaker.libili2db.ili2dbconfig import BaseConfiguration if self._db_action_type != DbActionType.EXPORT: self.pg_use_super_login = QCheckBox() self.pg_use_super_login.setText( self.tr( "Generate schema with superuser login from settings ({})"). format(BaseConfiguration().super_pg_user)) layout = QGridLayout(self) layout.addWidget(lbl_host, 0, 0) layout.addWidget(lbl_port, 1, 0) layout.addWidget(lbl_database, 2, 0) layout.addWidget(lbl_schema, 3, 0) layout.addWidget(lbl_user, 4, 0) layout.addWidget(lbl_password, 5, 0) layout.addWidget(self.pg_host_line_edit, 0, 1) layout.addWidget(self.pg_port_line_edit, 1, 1) layout.addWidget(self.pg_database_line_edit, 2, 1) layout.addWidget(self.pg_schema_line_edit, 3, 1) layout.addWidget(self.pg_user_line_edit, 4, 1) layout.addWidget(self.pg_password_line_edit, 5, 1) if self._db_action_type != DbActionType.EXPORT: layout.addWidget(self.pg_use_super_login, 6, 1) # define validators self.validators = Validators() nonEmptyValidator = NonEmptyStringValidator() self.pg_host_line_edit.setValidator(nonEmptyValidator) self.pg_database_line_edit.setValidator(nonEmptyValidator) self.pg_user_line_edit.setValidator(nonEmptyValidator) self.pg_host_line_edit.textChanged.connect( self.validators.validate_line_edits) self.pg_host_line_edit.textChanged.emit(self.pg_host_line_edit.text()) self.pg_database_line_edit.textChanged.connect( self.validators.validate_line_edits) self.pg_database_line_edit.textChanged.emit( self.pg_database_line_edit.text()) self.pg_user_line_edit.textChanged.connect( self.validators.validate_line_edits) self.pg_user_line_edit.textChanged.emit(self.pg_user_line_edit.text()) self.pg_host_line_edit.textChanged.connect(self.notify_fields_modified) self.pg_port_line_edit.textChanged.connect(self.notify_fields_modified) self.pg_database_line_edit.textChanged.connect( self.notify_fields_modified) self.pg_schema_line_edit.textChanged.connect( self.notify_fields_modified) self.pg_user_line_edit.textChanged.connect(self.notify_fields_modified) self.pg_password_line_edit.textChanged.connect( self.notify_fields_modified)
def __init__(self, parent=None, remove_create_tid_group=True): """ remove_create_tid_group is to remove the "Create Import Tid" setting because on Schema Import it does nothing (legacy issues). After removing the single dialog for data import, this setting can be removed completely from the GUI. """ QDialog.__init__(self, parent) self.setupUi(self) QgsGui.instance().enableAutoGeometryRestore(self) self.toml_file_key = None self.buttonBox.accepted.disconnect() self.buttonBox.accepted.connect(self.accepted) self.buttonBox.rejected.disconnect() self.buttonBox.rejected.connect(self.rejected) self.toml_file_browse_button.clicked.connect( make_file_selector( self.toml_file_line_edit, title=self.tr("Open Extra Model Information File (*.toml)"), file_filter=self.tr("Extra Model Info File (*.toml *.TOML)"), ) ) self.pre_script_file_browse_button.clicked.connect( make_file_selector( self.pre_script_file_line_edit, title=self.tr("SQL script to run before (*.sql)"), file_filter=self.tr("SQL script to run before (*.sql *.SQL)"), ) ) self.post_script_file_browse_button.clicked.connect( make_file_selector( self.post_script_file_line_edit, title=self.tr("SQL script to run after (*.sql)"), file_filter=self.tr("SQL script to run after (*.sql *.SQL)"), ) ) self.validators = Validators() self.file_validator = FileValidator( pattern=["*." + ext for ext in self.ValidExtensions], allow_empty=True ) self.toml_file_line_edit.setValidator(self.file_validator) self.sql_file_validator = FileValidator( pattern=["*." + ext for ext in self.SQLValidExtensions], allow_empty=True ) self.pre_script_file_line_edit.setValidator(self.sql_file_validator) self.post_script_file_line_edit.setValidator(self.sql_file_validator) self.restore_configuration() self.toml_file_line_edit.textChanged.connect( self.validators.validate_line_edits ) self.toml_file_line_edit.textChanged.emit(self.toml_file_line_edit.text()) self.pre_script_file_line_edit.textChanged.connect( self.validators.validate_line_edits ) self.pre_script_file_line_edit.textChanged.emit( self.pre_script_file_line_edit.text() ) self.post_script_file_line_edit.textChanged.connect( self.validators.validate_line_edits ) self.post_script_file_line_edit.textChanged.emit( self.post_script_file_line_edit.text() ) self.create_import_tid_groupbox.setHidden(remove_create_tid_group) self.bar = QgsMessageBar() self.bar.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Fixed) self.layout().addWidget(self.bar, 0, 0, Qt.AlignTop)