def check_for_changes(self): try: if self.cur_fname and os.path.exists(self.cur_fname): cur_xml = xml_utils.node_to_string(self.metadata_root.to_xml()) disk_xml = xml_utils.node_to_string( xml_utils.fname_to_node(self.cur_fname) ) if cur_xml != disk_xml: msg = "Do you want to save your changes?" alert = QDialog() self.last_updated = time.time() confirm = QMessageBox.question( self, "Save Changes", msg, QMessageBox.Yes | QMessageBox.No | QMessageBox.Cancel, ) if confirm == QMessageBox.Yes: xml_utils.save_to_file(self.metadata_root.to_xml(), self.cur_fname) elif confirm == QMessageBox.Cancel: return "Cancel" except: pass return None
def export(self): """ Export the xml file to a different format. File must first be saved. TODO: add file save confirmation step give user option of where to save exported file Returns ------- None """ if not self.cur_fname: fname = self.get_save_name() if not fname: return else: fname = self.cur_fname xml_utils.save_to_file(self.metadata_root.to_xml(), self.cur_fname) out_name = fname.strip('.xml') + '.docx' try: export_utils.md_to_docx(fname, out_name) msg = 'File exported as {}'.format(out_name) QMessageBox.information(self, "Export completed", msg) except BaseException: import traceback msg = "Problem encountered exporting document:\n{}".format( traceback.format_exc()) QMessageBox.warning(self, "Problem encountered", msg)
def save_file(self): """ Save the current xml document. Prompts for a filename if one has not been set yet. Returns ------- None """ if not self.cur_fname: fname = self.get_save_name() if not fname: return else: fname = self.cur_fname fname_msg = utils.check_fname(fname) if not fname_msg == 'good': msg = "Cannot write to :\n {}.".format(fname) QMessageBox.warning(self, "Metadata Wizard", msg) return xml_utils.save_to_file(self.metadata_root._to_xml(), fname) self.last_updated = time.time() self.set_current_file(fname) self.statusBar().showMessage("File saved", 2000)
def save_file(self, e=None): if not self.cur_fname: fname = self.get_save_name() if not fname: return else: fname = self.cur_fname fname_msg = utils.check_fname(fname) if not fname_msg == 'good': msg = "Cannot write to :\n {}.".format(fname) QMessageBox.warning(self, "Metadata Wizard", msg) return xml_utils.save_to_file(self.metadata_root._to_xml(), fname) self.set_current_file(fname) self.statusBar().showMessage("File saved", 2000)
def save_file(self): """ Save the current xml document. Prompts for a filename if one has not been set yet. Returns ------- None """ if not self.cur_fname: fname = self.get_save_name() if not fname: return else: fname = self.cur_fname fname_msg = utils.check_fname(fname) if not fname_msg == "good": msg = "Cannot write to :\n {}.".format(fname) QMessageBox.warning(self, "Metadata Wizard", msg) return tool_comment = ( "Record created using version {} of the " "USGS Metadata Wizard tool. (https://github.com/usgs/" "fort-pymdwizard)".format(__version__) ) xml_contents = self.metadata_root.to_xml() comment = xml_utils.xml_node(tag="", text=tool_comment, index=0, comment=True) xml_contents.addprevious(comment) xml_utils.save_to_file(xml_contents, fname) self.last_updated = time.time() self.set_current_file(fname) self.statusBar().showMessage("File saved", 2000) if self.sb_file: self.sb_locator.put_fgdc_file()