def test_tables_columns(self, mock_iface): res = midvatten_defs.tables_columns() assert res assert isinstance(res, dict) for k, v in res.iteritems(): assert isinstance(k, unicode) assert isinstance(v, (tuple, list)) for x in v: assert isinstance(x, (tuple, list)) assert x
def __init__(self, parent, midv_settings): self.iface = parent self.ms = midv_settings PyQt4.QtGui.QDialog.__init__(self, parent) self.setAttribute(PyQt4.QtCore.Qt.WA_DeleteOnClose) self.setupUi(self) # Required by Qt4 to initialize the UI self.setWindowTitle("Export to FieldLogger") # Set the title for the dialog tables_columns = defs.tables_columns() self.export_objects = None self.stored_settingskey = u'fieldlogger_export' self.export_objects = self.create_export_objects_using_stored_settings(self.get_stored_settings(self.ms, self.stored_settingskey), tables_columns, self.connect) if self.export_objects is None or not self.export_objects: self.export_objects = [ExportObject(self.connect)] self.splitter = PyQt4.QtGui.QSplitter(PyQt4.QtCore.Qt.Vertical) self.main_vertical_layout.addWidget(self.splitter) #This is about adding a messagebar to the fieldlogger window. But for some reason qgis crashes or closes #when the timer ends for the regular messagebar #self.lbl = MessageBar(self.splitter) #qgis.utils.iface.optional_bar = self.lbl self.widgets_layouts = self.init_splitters_layouts(self.splitter) if self.export_objects: for export_object in self.export_objects: self.add_export_object_to_gui(self.widgets_layouts, export_object) #ParameterUnitBrowser browser = ParameterUnitBrowser(tables_columns, self.connect) self.gridLayout_buttons.addWidget(browser.widget, 0, 0) #Buttons self.save_settings_button = PyQt4.QtGui.QPushButton(u'Save settings') self.save_settings_button.setToolTip(u'Saves the current parameter setup to midvatten settings.') self.gridLayout_buttons.addWidget(self.save_settings_button, 1, 0) self.connect(self.save_settings_button, PyQt4.QtCore.SIGNAL("clicked()"), lambda : self.save_stored_settings(self.ms, self.update_stored_settings(self.export_objects), self.stored_settingskey)) self.add_one_parameter_button = PyQt4.QtGui.QPushButton(u'New parameter') self.add_one_parameter_button.setToolTip(u'Creates an additional empty parameter setting.') self.gridLayout_buttons.addWidget(self.add_one_parameter_button, 2, 0) #Lambda and map is used to run several functions for every button click self.connect(self.add_one_parameter_button, PyQt4.QtCore.SIGNAL("clicked()"), lambda: map(lambda x: x(), [lambda: self.export_objects.append(ExportObject(self.connect)), lambda: self.add_export_object_to_gui(self.widgets_layouts, self.export_objects[-1])])) self.export_button = PyQt4.QtGui.QPushButton(u'Export') self.export_button.setToolTip(u'Exports to a Fieldlogger wells file.') self.gridLayout_buttons.addWidget(self.export_button, 3, 0) # Lambda and map is used to run several functions for every button click self.connect(self.export_button, PyQt4.QtCore.SIGNAL("clicked()"), lambda: map(lambda x: x(), [lambda: self.save_stored_settings(self.ms, self.update_stored_settings(self.export_objects), self.stored_settingskey), lambda: self.write_printlist_to_file(self.create_export_printlist(self.export_objects))])) self.gridLayout_buttons.setRowStretch(4, 1) self.show()
def __init__(self, parent, midv_settings): self.iface = parent self.ms = midv_settings PyQt4.QtGui.QDialog.__init__(self, parent) self.setAttribute(PyQt4.QtCore.Qt.WA_DeleteOnClose) self.setupUi(self) # Required by Qt4 to initialize the UI self.setWindowTitle("Export to FieldLogger file") # Set the title for the dialog self.widget.setMinimumWidth(180) tables_columns = defs.tables_columns() self.parameter_groups = None self.stored_settingskey = 'fieldlogger_export_pgroups' self.stored_settingskey_parameterbrowser = 'fieldlogger_export_pbrowser' for settingskey in [self.stored_settingskey, self.stored_settingskey_parameterbrowser]: if settingskey not in self.ms.settingsdict: utils.MessagebarAndLog.warning(bar_msg=settingskey + " did not exist in settingsdict") self.parameter_groups = self.create_parameter_groups_using_stored_settings(self.get_stored_settings(self.ms, self.stored_settingskey), self.connect) if self.parameter_groups is None or not self.parameter_groups: self.parameter_groups = [ParameterGroup(self.connect)] self.main_vertical_layout.addWidget(PyQt4.QtGui.QLabel(u'Fieldlogger input fields and locations:')) self.main_vertical_layout.addWidget(get_line()) self.splitter = PyQt4.QtGui.QSplitter(PyQt4.QtCore.Qt.Vertical) self.main_vertical_layout.addWidget(self.splitter) #This is about adding a messagebar to the fieldlogger window. But for some reason qgis crashes or closes #when the timer ends for the regular messagebar #self.lbl = MessageBar(self.splitter) #qgis.utils.iface.optional_bar = self.lbl self.widgets_layouts = self.init_splitters_layouts(self.splitter) if self.parameter_groups: for export_object in self.parameter_groups: self.add_parameter_group_to_gui(self.widgets_layouts, export_object) #Buttons #ParameterUnitBrowser self.parameter_browser = ParameterBrowser(tables_columns, self.connect, self.widget) self.parameter_browser_button = PyQt4.QtGui.QPushButton(u'Create Input Fields') self.gridLayout_buttons.addWidget(self.parameter_browser_button, 0, 0) self.connect(self.parameter_browser_button, PyQt4.QtCore.SIGNAL("clicked()"), lambda : self.parameter_browser.show()) self.update_parameter_browser_using_stored_settings(self.get_stored_settings(self.ms, self.stored_settingskey_parameterbrowser), self.parameter_browser) self.add_parameter_group = PyQt4.QtGui.QPushButton(u'More Fields and Locations') self.add_parameter_group.setToolTip(u'Creates an additional empty input field group.') self.gridLayout_buttons.addWidget(self.add_parameter_group, 1, 0) #Lambda and map is used to run several functions for every button click self.connect(self.add_parameter_group, PyQt4.QtCore.SIGNAL("clicked()"), lambda: map(lambda x: x(), [lambda: self.parameter_groups.append(ParameterGroup(self.connect)), lambda: self.add_parameter_group_to_gui(self.widgets_layouts, self.parameter_groups[-1])])) self.gridLayout_buttons.addWidget(get_line(), 2, 0) #Buttons self.save_settings_button = PyQt4.QtGui.QPushButton(u'Save settings') self.save_settings_button.setToolTip(u'Saves the current input fields settings to midvatten settings.') self.gridLayout_buttons.addWidget(self.save_settings_button, 3, 0) self.connect(self.save_settings_button, PyQt4.QtCore.SIGNAL("clicked()"), lambda: map(lambda x: x(), [lambda: self.save_stored_settings(self.ms, self.update_stored_settings(self.parameter_groups), self.stored_settingskey), lambda: self.save_stored_settings(self.ms, self.update_stored_settings([self.parameter_browser]), self.stored_settingskey_parameterbrowser)])) self.clear_settings_button = PyQt4.QtGui.QPushButton(u'Clear settings') self.clear_settings_button.setToolTip(u'Clear input fields and settings.\nReopen Fieldlogger export gui to it reset,\nor press "Save settings" to undo.') self.gridLayout_buttons.addWidget(self.clear_settings_button, 4, 0) self.connect(self.clear_settings_button, PyQt4.QtCore.SIGNAL("clicked()"), lambda: map(lambda x: x(), [lambda: self.save_stored_settings(self.ms, [], self.stored_settingskey), lambda: self.save_stored_settings(self.ms, [], self.stored_settingskey_parameterbrowser), lambda: utils.pop_up_info(u'Settings cleared. Restart Export Fieldlogger dialog')])) self.gridLayout_buttons.addWidget(get_line(), 5, 0) self.export_button = PyQt4.QtGui.QPushButton(u'Export') self.export_button.setToolTip(u'Exports the current combination of locations, sublocations and input fields to a Fieldlogger wells file.') self.gridLayout_buttons.addWidget(self.export_button, 7, 0) # Lambda and map is used to run several functions for every button click self.connect(self.export_button, PyQt4.QtCore.SIGNAL("clicked()"), self.export) self.gridLayout_buttons.setRowStretch(8, 1) self.show()