def test_calibrlogger_set_log_pos(self, mock_messagebar): db_utils.sql_alter_db("INSERT INTO obs_points (obsid) VALUES ('rb1')") db_utils.sql_alter_db( "INSERT INTO w_levels (obsid, date_time, level_masl) VALUES ('rb1', '2017-02-01 00:00', 100)" ) db_utils.sql_alter_db( "INSERT INTO w_levels_logger (obsid, date_time, head_cm) VALUES ('rb1', '2017-02-01 00:00', 100)" ) calibrlogger = Calibrlogger(self.iface.mainWindow(), self.ms) calibrlogger.update_plot() calibrlogger.FromDateTime.setDateTime( date_utils.datestring_to_date('2000-01-01 00:00:00')) calibrlogger.LoggerPos.setText('2') gui_utils.set_combobox(calibrlogger.combobox_obsid, 'rb1 (uncalibrated)') calibrlogger.set_logger_pos() print(str(mock_messagebar.mock_calls)) test = utils_for_tests.create_test_string( db_utils.sql_load_fr_db('SELECT * FROM w_levels_logger')) ref = '(True, [(rb1, 2017-02-01 00:00, 100.0, None, None, 3.0, None)])' print(test) assert test == ref
def test_calibrlogger_adjust_trend(self, mock_messagebar): db_utils.sql_alter_db("INSERT INTO obs_points (obsid) VALUES ('rb1')") db_utils.sql_alter_db("INSERT INTO w_levels_logger (obsid, date_time, level_masl) VALUES ('rb1', '2017-02-01 00:00', 100)") db_utils.sql_alter_db("INSERT INTO w_levels_logger (obsid, date_time, level_masl) VALUES ('rb1', '2017-02-10 00:00', 200)") db_utils.sql_alter_db("INSERT INTO w_levels (obsid, date_time, level_masl) VALUES ('rb1', '2017-02-01 00:00', 200)") db_utils.sql_alter_db("INSERT INTO w_levels (obsid, date_time, level_masl) VALUES ('rb1', '2017-02-10 00:00', 100)") calibrlogger = Calibrlogger(self.iface.mainWindow(), self.ms) gui_utils.set_combobox(calibrlogger.combobox_obsid, 'rb1 (uncalibrated)') calibrlogger.update_plot() calibrlogger.FromDateTime.setDateTime(date_utils.datestring_to_date('2000-01-01 00:00:00')) calibrlogger.L1_date.setDateTime(date_utils.datestring_to_date('2017-02-01 00:00')) calibrlogger.L2_date.setDateTime(date_utils.datestring_to_date('2017-02-10 00:00')) calibrlogger.M1_date.setDateTime(date_utils.datestring_to_date('2017-02-01 00:00')) calibrlogger.M2_date.setDateTime(date_utils.datestring_to_date('2017-02-10 00:00')) calibrlogger.L1_level.setText('100') calibrlogger.L2_level.setText('200') calibrlogger.M1_level.setText('200') calibrlogger.M2_level.setText('100') calibrlogger.adjust_trend_func() res = db_utils.sql_load_fr_db('SELECT obsid, date_time, head_cm, temp_degc, cond_mscm, level_masl, comment FROM w_levels_logger') l = list(res[1][1]) l[5] = '%.11e'%Decimal(l[5]) res[1][1] = tuple(l) test = utils_for_tests.create_test_string(res) print(mock_messagebar.mock_calls) ref = '(True, [(rb1, 2017-02-01 00:00, None, None, None, 100.0, None), (rb1, 2017-02-10 00:00, None, None, None, -2.84217094304e-14, None)])' print("Ref") print(ref) print("Test") print(test) assert test == ref
def test_calibrlogger_calc_best_fit_add_no_matches_same_to_date( self, mock_messagebar, skip_popup): db_utils.sql_alter_db("INSERT INTO obs_points (obsid) VALUES ('rb1')") db_utils.sql_alter_db( "INSERT INTO w_levels (obsid, date_time, level_masl) VALUES ('rb1', '2017-02-01 00:00', 100)" ) db_utils.sql_alter_db( "INSERT INTO w_levels_logger (obsid, date_time, level_masl) VALUES ('rb1', '2017-02-01 01:00', 50)" ) calibrlogger = Calibrlogger(self.iface.mainWindow(), self.ms) calibrlogger.update_plot() calibrlogger.loggerpos_masl_or_offset_state = 2 calibrlogger.FromDateTime.setDateTime( date_utils.datestring_to_date('2010-02-01 01:00')) calibrlogger.ToDateTime.setDateTime( date_utils.datestring_to_date('2017-02-01 01:00')) gui_utils.set_combobox(calibrlogger.combobox_obsid, 'rb1 (uncalibrated)') calibrlogger.bestFitSearchRadius.setText('2 hours') calibrlogger.calc_best_fit() test = utils_for_tests.create_test_string( db_utils.sql_load_fr_db('SELECT * FROM w_levels_logger')) ref = '(True, [(rb1, 2017-02-01 01:00, None, None, None, 50.0, None)])' print(test) assert test == ref
def test_calibrlogger_adjust_trend(self, mock_messagebar): db_utils.sql_alter_db("INSERT INTO obs_points (obsid) VALUES ('rb1')") db_utils.sql_alter_db("INSERT INTO w_levels_logger (obsid, date_time, level_masl) VALUES ('rb1', '2017-02-01 00:00', 100)") db_utils.sql_alter_db("INSERT INTO w_levels_logger (obsid, date_time, level_masl) VALUES ('rb1', '2017-02-10 00:00', 200)") db_utils.sql_alter_db("INSERT INTO w_levels (obsid, date_time, level_masl) VALUES ('rb1', '2017-02-01 00:00', 200)") db_utils.sql_alter_db("INSERT INTO w_levels (obsid, date_time, level_masl) VALUES ('rb1', '2017-02-10 00:00', 100)") calibrlogger = Calibrlogger(self.iface.mainWindow(), self.ms) gui_utils.set_combobox(calibrlogger.combobox_obsid, 'rb1 (uncalibrated)') calibrlogger.update_plot() calibrlogger.FromDateTime.setDateTime(date_utils.datestring_to_date('2000-01-01 00:00:00')) calibrlogger.L1_date.setDateTime(date_utils.datestring_to_date('2017-02-01 00:00')) calibrlogger.L2_date.setDateTime(date_utils.datestring_to_date('2017-02-10 00:00')) calibrlogger.M1_date.setDateTime(date_utils.datestring_to_date('2017-02-01 00:00')) calibrlogger.M2_date.setDateTime(date_utils.datestring_to_date('2017-02-10 00:00')) calibrlogger.adjust_trend_func() res = db_utils.sql_load_fr_db('SELECT * FROM w_levels_logger') l = list(res[1][1]) l[5] = '%.11e'%Decimal(l[5]) res[1][1] = tuple(l) test = utils_for_tests.create_test_string(res) print(mock_messagebar.mock_calls) print(test) ref = '(True, [(rb1, 2017-02-01 00:00, None, None, None, 100.0, None), (rb1, 2017-02-10 00:00, None, None, None, -2.84217094304e-14, None)])' assert test == ref
def _test(self, mock_iface, mock_getselectedobjectnames, mock_findlayer): mock_iface.mapCanvas.return_value.currentLayer.return_value = self.vlayer mock_findlayer.return_value.isEditable.return_value = False mock_getselectedobjectnames.return_value = ('P1', 'P2', 'P3') mock_mapcanvas = mock_iface.mapCanvas.return_value mock_mapcanvas.layerCount.return_value = 0 self.midvatten.plot_section() self.myplot = self.midvatten.myplot self.myplot.secplot_templates.loaded_template[ 'geology_Axes_bar'] = { 'sand': { 'label': 'sandtest', 'edgecolor': 'black', 'zorder': 5 }, 'grus': { 'label': 'grustest', 'edgecolor': 'black', 'zorder': 5 }, 'DEFAULT': { 'edgecolor': 'black', 'zorder': 5 } } print("before: " + str(self.myplot.secplot_templates. loaded_template['geology_Axes_bar'])) self.myplot.Stratigraphy_radioButton.setChecked(True) self.myplot.Legend_checkBox.setChecked(True) gui_utils.set_combobox(self.myplot.wlvltableComboBox, 'w_levels') self.myplot.datetimetextEdit.append('2015') self.myplot.draw_plot()
def _test(self, mock_iface, mock_getselectedobjectnames): mock_iface.mapCanvas.return_value.currentLayer.return_value = self.vlayer mock_getselectedobjectnames.return_value = (u'P1', u'P2', u'P3') mock_mapcanvas = mock_iface.mapCanvas.return_value mock_mapcanvas.layerCount.return_value = 0 self.midvatten.plot_section() self.myplot = self.midvatten.myplot gui_utils.set_combobox(self.myplot.wlvltableComboBox, u'w_levels') self.myplot.datetimetextEdit.append(u'2015') self.myplot.draw_plot()
def _test(self, mock_iface, mock_getselectedobjectnames): mock_iface.mapCanvas.return_value.currentLayer.return_value = self.vlayer mock_getselectedobjectnames.return_value = ('P1', 'P2', 'P3') mock_mapcanvas = mock_iface.mapCanvas.return_value mock_mapcanvas.layerCount.return_value = 0 self.midvatten.plot_section() self.myplot = self.midvatten.myplot gui_utils.set_combobox(self.myplot.wlvltableComboBox, 'w_levels') self.myplot.datetimetextEdit.append('2015') self.myplot.draw_plot()
def __init__(self, parent, midv_settings): self.iface = parent self.ms = midv_settings qgis.PyQt.QtWidgets.QDialog.__init__(self, parent) self.setAttribute(qgis.PyQt.QtCore.Qt.WA_DeleteOnClose) self.setupUi(self) # Required by Qt4 to initialize the UI self.setWindowTitle( ru( QCoreApplication.translate('CompactWqualReportUi', "Compact water quality report")) ) # Set the title for the dialog self.manual_label.setText( "<a href=\"https://github.com/jkall/qgis-midvatten-plugin/wiki/5.-Plots-and-reports#create-compact-water-quality-report\">%s</a>" % QCoreApplication.translate('CompactWqualReportUi', '(manual)')) self.manual_label.setOpenExternalLinks(True) tables = list(db_utils.tables_columns().keys()) self.sql_table.addItems(sorted(tables)) #Use w_qual_lab as default. gui_utils.set_combobox(self.sql_table, 'w_qual_lab', add_if_not_exists=False) self.save_attrnames = [ 'num_data_cols', 'rowheader_colwidth_percent', 'empty_row_between_tables', 'page_break_between_tables', 'from_active_layer', 'from_sql_table', 'sql_table' ] self.stored_settings_key = 'compactwqualreport' self.stored_settings = utils.get_stored_settings( self.ms, self.stored_settings_key, {}) self.update_from_stored_settings(self.stored_settings) self.pushButton_ok.clicked.connect(lambda x: self.wqualreport()) #self.pushButton_cancel, PyQt4.QtCore.SIGNAL("clicked()"), lambda : self.close()) self.pushButton_update_from_string.clicked.connect( lambda x: self.ask_and_update_stored_settings()) self.sql_table.currentIndexChanged.connect( lambda: self.from_sql_table.setChecked(True)) self.empty_row_between_tables.clicked.connect( lambda: self.page_break_between_tables.setChecked(False) if self.empty_row_between_tables.isChecked() else True) self.page_break_between_tables.clicked.connect( lambda: self.empty_row_between_tables.setChecked(False) if self.page_break_between_tables.isChecked() else True) self.show()
def _test(self, filename, mock_filenames, mock_skippopup, mock_iface, mock_not_found_question): mock_not_found_question.return_value.answer = 'ok' mock_filenames.return_value = [[filename]] importer = Interlab4Import(self.iface.mainWindow(), self.midvatten.ms) importer.init_gui() importer.select_files_button.click() gui_utils.set_combobox(importer.specific_meta_filter.combobox, 'lablittera', False) importer.specific_meta_filter.items.paste_data(patterns) importer.metadata_filter.show_only_selected_checkbox.setChecked(True) importer.metadata_filter.update_selection_button.click() return importer.metadata_filter.get_selected_lablitteras()
def reload_combobox(self): self.activelayer = utils.get_active_layer() if not isinstance(self.activelayer, QgsVectorLayer): utils.MessagebarAndLog.warning(bar_msg=ru( QCoreApplication.translate('ValuesFromSelectedFeaturesGui', 'Must select a vector layer!'))) return None self.columns.clear() fields = [field.name() for field in self.activelayer.fields()] self.columns.addItems(sorted(fields)) if self.selected_column is None or self.selected_column not in fields: self.selected_column = 'obsid' gui_utils.set_combobox(self.columns, self.selected_column, add_if_not_exists=False)
def _test(self, mock_iface, mock_getselectedobjectnames, mock_findlayer): mock_iface.mapCanvas.return_value.currentLayer.return_value = self.vlayer mock_findlayer.return_value.isEditable.return_value = False mock_getselectedobjectnames.return_value = ('P1', 'P2', 'P3') mock_mapcanvas = mock_iface.mapCanvas.return_value mock_mapcanvas.layerCount.return_value = 0 self.midvatten.plot_section() self.myplot = self.midvatten.myplot self.myplot.Stratigraphy_radioButton.setChecked(True) self.myplot.Legend_checkBox.setChecked(True) gui_utils.set_combobox(self.myplot.wlvltableComboBox, 'w_levels') self.myplot.datetimetextEdit.append('2015') self.myplot.draw_plot()
def _test(self, mock_iface, mock_getselectedobjectnames, mock_findlayer): mock_iface.mapCanvas.return_value.currentLayer.return_value = self.vlayer mock_findlayer.return_value.isEditable.return_value = False mock_getselectedobjectnames.return_value = ('P1', 'P2', 'P3') mock_mapcanvas = mock_iface.mapCanvas.return_value mock_mapcanvas.layerCount.return_value = 0 self.midvatten.plot_section() self.myplot = self.midvatten.myplot gui_utils.set_combobox(self.myplot.wlvltableComboBox, 'w_levels') self.myplot.datetimetextEdit.append('2015') self.myplot.datetimetextEdit.append('2015') self.myplot.secplot_templates.loaded_template['wlevels_Axes_plot'] = {'2015': {'label': '1', 'linestyle': '-', 'linewidth': 1, 'marker': 'v', 'markersize': 6, 'zorder': 8}, '2015_2': {'label': '2', 'linestyle': '-', 'linewidth': 1, 'marker': 'v', 'markersize': 6, 'zorder': 8}, 'DEFAULT': {'label': 'DEFAULT', 'linestyle': '-', 'linewidth': 1, 'marker': 'v', 'markersize': 6, 'zorder': 8}} self.myplot.draw_plot()
def test_calibrlogger_add_to_level_masl(self, mock_messagebar): db_utils.sql_alter_db(u"INSERT INTO obs_points (obsid) VALUES ('rb1')") db_utils.sql_alter_db(u"INSERT INTO w_levels_logger (obsid, date_time, level_masl) VALUES ('rb1', '2017-02-01 00:00', 100)") calibrlogger = Calibrlogger(self.iface.mainWindow(), self.ms) calibrlogger.update_plot() calibrlogger.FromDateTime.setDateTime(date_utils.datestring_to_date(u'2000-01-01 00:00:00')) calibrlogger.Add2Levelmasl.setText(u'50') gui_utils.set_combobox(calibrlogger.combobox_obsid, u'rb1 (uncalibrated)') calibrlogger.add_to_level_masl() test = utils_for_tests.create_test_string(db_utils.sql_load_fr_db(u'SELECT * FROM w_levels_logger')) ref = u'(True, [(rb1, 2017-02-01 00:00, None, None, None, 150.0, None)])' print(test) assert test == ref
def test_calibrlogger_add_to_level_masl(self, mock_messagebar): db_utils.sql_alter_db("INSERT INTO obs_points (obsid) VALUES ('rb1')") db_utils.sql_alter_db("INSERT INTO w_levels_logger (obsid, date_time, level_masl) VALUES ('rb1', '2017-02-01 00:00', 100)") calibrlogger = Calibrlogger(self.iface.mainWindow(), self.ms) calibrlogger.update_plot() calibrlogger.FromDateTime.setDateTime(date_utils.datestring_to_date('2000-01-01 00:00:00')) calibrlogger.Add2Levelmasl.setText('50') gui_utils.set_combobox(calibrlogger.combobox_obsid, 'rb1 (uncalibrated)') calibrlogger.add_to_level_masl() test = utils_for_tests.create_test_string(db_utils.sql_load_fr_db('SELECT * FROM w_levels_logger')) ref = '(True, [(rb1, 2017-02-01 00:00, None, None, None, 150.0, None)])' print(test) assert test == ref
def test_calibrlogger_calc_best_fit_log_pos_out_of_radius(self, mock_messagebar, skip_popup): db_utils.sql_alter_db(u"INSERT INTO obs_points (obsid) VALUES ('rb1')") db_utils.sql_alter_db(u"INSERT INTO w_levels (obsid, date_time, level_masl) VALUES ('rb1', '2017-02-01 00:00', 100)") db_utils.sql_alter_db(u"INSERT INTO w_levels_logger (obsid, date_time, head_cm) VALUES ('rb1', '2017-03-01 00:00', 50)") calibrlogger = Calibrlogger(self.iface.mainWindow(), self.ms) calibrlogger.update_plot() calibrlogger.loggerpos_masl_or_offset_state = 1 calibrlogger.FromDateTime.setDateTime(date_utils.datestring_to_date(u'2000-01-01 00:00:00')) gui_utils.set_combobox(calibrlogger.combobox_obsid, u'rb1 (uncalibrated)') calibrlogger.calc_best_fit() test = utils_for_tests.create_test_string(db_utils.sql_load_fr_db(u'SELECT * FROM w_levels_logger')) ref = u'(True, [(rb1, 2017-03-01 00:00, 50.0, None, None, None, None)])' print(test) assert test == ref
def test_calibrlogger_calc_best_fit_log_pos_out_of_radius(self, mock_messagebar, skip_popup): db_utils.sql_alter_db("INSERT INTO obs_points (obsid) VALUES ('rb1')") db_utils.sql_alter_db("INSERT INTO w_levels (obsid, date_time, level_masl) VALUES ('rb1', '2017-02-01 00:00', 100)") db_utils.sql_alter_db("INSERT INTO w_levels_logger (obsid, date_time, head_cm) VALUES ('rb1', '2017-03-01 00:00', 50)") calibrlogger = Calibrlogger(self.iface.mainWindow(), self.ms) calibrlogger.update_plot() calibrlogger.loggerpos_masl_or_offset_state = 1 calibrlogger.FromDateTime.setDateTime(date_utils.datestring_to_date('2000-01-01 00:00:00')) gui_utils.set_combobox(calibrlogger.combobox_obsid, 'rb1 (uncalibrated)') calibrlogger.calc_best_fit() test = utils_for_tests.create_test_string(db_utils.sql_load_fr_db('SELECT * FROM w_levels_logger')) ref = '(True, [(rb1, 2017-03-01 00:00, 50.0, None, None, None, None)])' print(test) assert test == ref
def test_calibrlogger_adjust_trend(self, mock_messagebar): db_utils.sql_alter_db(u"INSERT INTO obs_points (obsid) VALUES ('rb1')") db_utils.sql_alter_db(u"INSERT INTO w_levels_logger (obsid, date_time, level_masl) VALUES ('rb1', '2017-02-01 00:00', 100)") db_utils.sql_alter_db(u"INSERT INTO w_levels_logger (obsid, date_time, level_masl) VALUES ('rb1', '2017-02-10 00:00', 200)") db_utils.sql_alter_db(u"INSERT INTO w_levels (obsid, date_time, level_masl) VALUES ('rb1', '2017-02-01 00:00', 200)") db_utils.sql_alter_db(u"INSERT INTO w_levels (obsid, date_time, level_masl) VALUES ('rb1', '2017-02-10 00:00', 100)") calibrlogger = Calibrlogger(self.iface.mainWindow(), self.ms) gui_utils.set_combobox(calibrlogger.combobox_obsid, u'rb1 (uncalibrated)') calibrlogger.update_plot() calibrlogger.FromDateTime.setDateTime(date_utils.datestring_to_date(u'2000-01-01 00:00:00')) calibrlogger.L1_date.setDateTime(date_utils.datestring_to_date(u'2017-02-01 00:00')) calibrlogger.L2_date.setDateTime(date_utils.datestring_to_date(u'2017-02-10 00:00')) calibrlogger.M1_date.setDateTime(date_utils.datestring_to_date(u'2017-02-01 00:00')) calibrlogger.M2_date.setDateTime(date_utils.datestring_to_date(u'2017-02-10 00:00')) calibrlogger.adjust_trend_func() test = utils_for_tests.create_test_string(db_utils.sql_load_fr_db(u'SELECT * FROM w_levels_logger')) print(mock_messagebar.mock_calls) print(test) ref = u'(True, [(rb1, 2017-02-01 00:00, None, None, None, 100.0, None), (rb1, 2017-02-10 00:00, None, None, None, -2.84217094304e-14, None)])' assert test == ref
def update_from_stored_settings(self, stored_settings): if isinstance(stored_settings, dict) and stored_settings: for attr, val in stored_settings.items(): try: selfattr = getattr(self, attr) except: pass else: if isinstance(selfattr, qgis.PyQt.QtWidgets.QPlainTextEdit): if isinstance(val, (list, tuple)): val = '\n'.join(val) selfattr.setPlainText(val) elif isinstance(selfattr, (qgis.PyQt.QtWidgets.QCheckBox, qgis.PyQt.QtWidgets.QRadioButton)): selfattr.setChecked(val) elif isinstance(selfattr, qgis.PyQt.QtWidgets.QLineEdit): selfattr.setText(val) elif isinstance(selfattr, qgis.PyQt.QtWidgets.QComboBox): gui_utils.set_combobox(selfattr, val, add_if_not_exists=False)
def distinct_unit(self, value): set_combobox(self._distinct_unit, value)
def unit_columns(self, value): set_combobox(self._unit_columns, value)
def unit_table(self, value): set_combobox(self._unit_table, value)
def target_tz(self, value): gui_utils.set_combobox(self._tz_list, value)
def parameter_table(self, value): set_combobox(self._parameter_table, value)
def parameter_columns(self, value): set_combobox(self._parameter_columns, value)
def input_type(self, value): set_combobox(self._input_type, value)
def distinct_parameter(self, value): set_combobox(self._distinct_parameter, value)
def __init__(self, parent, midv_settings): self.iface = parent self.tables_columns = db_utils.tables_columns() self.ms = midv_settings qgis.PyQt.QtWidgets.QDialog.__init__(self, parent) self.setAttribute(qgis.PyQt.QtCore.Qt.WA_DeleteOnClose) self.setupUi(self) # Required by Qt4 to initialize the UI self.setWindowTitle( ru( QCoreApplication.translate('CompactWqualReportUi', "Compact water quality report")) ) # Set the title for the dialog self.manual_label.setText( "<a href=\"https://github.com/jkall/qgis-midvatten-plugin/wiki/5.-Plots-and-reports#create-compact-water-quality-report\">%s</a>" % QCoreApplication.translate('CompactWqualReportUi', '(manual)')) self.manual_label.setOpenExternalLinks(True) self.date_time_formats = { 'YYYY-MM': '%Y-%m', 'YYYY-MM-DD': '%Y-%m-%d', 'YYYY-MM-DD hh': '%Y-%m-%d %H', 'YYYY-MM-DD hh:mm': '%Y-%m-%d %H:%M', 'YYYY-MM-DD hh:mm:ss': '%Y-%m-%d %H:%M:%S' } self.methods = { 'concat': lambda x: ', '.join([ru(y) for y in x.values]), 'avg': lambda x: round( sum([float(y) for y in x.values]) / float(len(x.values)), num_decimals(x.values)) if all([floatable(y) for y in x.values]) else ', '.join( [ru(y) for y in x.values]), 'sum': lambda x: round(sum([float(y) for y in x]), num_decimals(x)) if all([floatable(y) for y in x.values]) else ', '.join(x.values), 'min': lambda x: min(x.values), 'max': lambda x: min(x.values) } self.date_time_format.addItems(self.date_time_formats.keys()) self.method.addItems(self.methods.keys()) tables = list(db_utils.tables_columns().keys()) self.sql_table.addItems(sorted(tables)) #Use w_qual_lab as default. gui_utils.set_combobox(self.sql_table, 'w_qual_lab', add_if_not_exists=False) self.save_attrnames = [ 'num_data_cols', 'rowheader_colwidth_percent', 'empty_row_between_tables', 'page_break_between_tables', 'from_active_layer', 'from_sql_table', 'sql_table', 'sort_alphabetically', 'sort_by_obsid', 'date_time_as_columns', 'date_time_format', 'method', 'data_column' ] self.stored_settings_key = 'compactwqualreport' self.pushButton_ok.clicked.connect(lambda x: self.wqualreport()) self.from_active_layer.clicked.connect( lambda x: self.set_columns_from_activelayer()) self.from_sql_table.clicked.connect( lambda x: self.set_columns_from_sql_layer()) self.sql_table.currentIndexChanged.connect( lambda x: self.set_columns_from_sql_layer()) self.pushButton_update_from_string.clicked.connect( lambda x: self.ask_and_update_stored_settings()) self.sql_table.currentIndexChanged.connect( lambda: self.from_sql_table.setChecked(True)) self.empty_row_between_tables.clicked.connect( lambda: self.page_break_between_tables.setChecked(False) if self.empty_row_between_tables.isChecked() else True) self.page_break_between_tables.clicked.connect( lambda: self.empty_row_between_tables.setChecked(False) if self.page_break_between_tables.isChecked() else True) self.stored_settings = utils.get_stored_settings( self.ms, self.stored_settings_key, {}) self.update_from_stored_settings(self.stored_settings) self.show()