def on_saveTableButton_clicked(self): if self.is_data_in_hidden_columns(): self.showError('Cannot save because data in optional column(s).' 'Select the optional column or clear the column.') return filename = QFileDialog.getSaveFileName( self, 'Save table', osp.expanduser('~') if self.last_save_location is None else self.last_save_location, 'Table files (*.txt *.csv)', initialFilter='*.txt;;*.csv')[0] if not filename: return if not filename.endswith(('.txt', '.csv')): filename = filename + '.csv' self.last_save_location = osp.dirname(filename) try: headers = self._extract_headers_from_table() data = self._extract_data_from_table() export_table_to_csv(data, filename, headers) except Exception as ex: self.showError(f'Cannot write table contents to {filename}:\n{ex}')
def on_buttonBox_clicked(self, button): role = self.buttonBox.buttonRole(button) if role == QDialogButtonBox.RejectRole: return do_apply = role == QDialogButtonBox.ApplyRole if self.dirty: initialdir = self.client.eval('session.experiment.scriptpath', '') fn = QFileDialog.getSaveFileName(self, 'Save sample file', initialdir, 'Sample files (*.py)')[0] if not fn: return False if not fn.endswith('.py'): fn += '.py' self.filename = fn try: script = self._generate(self.filename) except Exception as err: self.showError('Could not write file: %s' % err) else: if do_apply: self.client.run(script, self.filename) self.showInfo( 'Sample info has been transferred to the daemon.') self.closeWindow()
def savePlot(widget, default_file_type, old_file_path=None): """Saves a plot in the specified file format. :param widget: graphics widget. :param default_file_type: default save file type. :param old_file_path: file path from a previous save operation. :return: returns file path, returns empty string or old file path when user cancels save. """ gr_file_types = {**gr.PRINT_TYPE, **gr.GRAPHIC_TYPE} save_types = ";;".join(sorted(set(gr_file_types.values()))) default_file = 'untitled' if old_file_path: default_file = path.splitext(old_file_path)[0] file_path, _ = QFileDialog.getSaveFileName(None, 'Save as...', default_file, filter=save_types, initialFilter=default_file_type) if not file_path: return "" if not old_file_path else old_file_path file_ext = path.splitext(file_path)[1] if file_ext.lower()[1:] in gr_file_types: widget.save(file_path) else: raise TypeError("Unsupported file format {}".format(file_ext)) return file_path
def saveAs(self): # open a file to save into, create empty output string filepath = QFileDialog.getSaveFileName(self, 'Save as...', path.expanduser('.'), 'Python script (*.py)')[0] if str(filepath): self._save(filepath)
def selectOutputFile(self, ctl, text='Choose an output filename'): previous = ctl.text() if previous: startdir = path.dirname(previous) else: startdir = '.' fn = QFileDialog.getSaveFileName(self, text, startdir, 'All files (*)')[0] if fn: ctl.setText(fn)
def on_actionSave_triggered(self): fn = QFileDialog.getSaveFileName(self, 'Save', '', 'All files (*.*)')[0] if not fn: return try: fn = fn.encode(sys.getfilesystemencoding()) with open(fn, 'w') as f: f.write(self.outView.getOutputString()) except Exception as err: QMessageBox.warning(self, 'Error', 'Writing file failed: %s' % err)
def on_saveBtn_clicked(self): initialdir = self.client.eval('session.experiment.proposalpath', '') fn = QFileDialog.getSaveFileName(self, 'Save protocol', initialdir, 'Text files (*.txt)')[0] if not fn: return try: text = self.outText.toPlainText() with open(fn, 'wb') as fp: fp.write(to_utf8(text)) except Exception as err: self.showError('Could not save: %s' % err)
def actionSaveAsSlot(self): # asks the user where to save the current setup to. if self.getCurrentSetupItem() is None: return filepath = QFileDialog.getSaveFileName(self, 'Save as...', getNicosDir(), 'Python script (*.py)')[0] if filepath: if not str(filepath).endswith('.py'): filepath += '.py' self.save(self.getCurrentSetupItem(), filepath)
def on_saveBtn_clicked(self): initial_dir = self.client.eval('session.experiment.scriptpath', '') filename = QFileDialog.getSaveFileName(self, 'Save sample file', initial_dir, 'Sample files (*.py)')[0] if not filename: return False if not filename.endswith('.py'): filename += '.py' try: self._save_script(filename, self._generate_script()) except Exception as err: self.showError(f'Could not write file: {err}')
def on_actionWriteXml_triggered(self): pad = self.widget.GetPad() if pad is None: return self.showError('No 2-d image is shown.') filename = str(QFileDialog.getSaveFileName( self, 'Select file name', '', 'XML files (*.xml)')[0]) if not filename: return if not filename.endswith('.xml'): filename += '.xml' if TmpImage: tmpimg = TmpImage() tmpimg.ConvertPAD(pad) tmpimg.WriteXML(filename)
def saveFileAs(self, editor): if self.filenames[editor]: initialdir = path.dirname(self.filenames[editor]) else: initialdir = self.client.eval('session.experiment.scriptpath', '') if self.client.eval('session.spMode', False): defaultext = '.txt' flt = 'Script files (*.txt *.py)' else: defaultext = '.py' flt = 'Script files (*.py *.txt)' fn = QFileDialog.getSaveFileName(self, 'Save script', initialdir, flt)[0] if not fn: return False if not fn.endswith(('.py', '.txt')): fn += defaultext self.addToRecentf(fn) self.watchers[editor].removePath(self.filenames[editor]) self.filenames[editor] = fn self.tabber.setTabText(self.editors.index(editor), path.basename(fn)) return self.saveFile(editor)