X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=mainwindow.py;h=be39a4ec59f31a5ffb23efb51412d07682a1493b;hb=c46081ed1105799f5e0d7c789a2cfbeb4a8186d8;hp=a28e15c5990e53e1893d7f7a25ae37db5250c03f;hpb=a6fe45e1c6c5bc2659f670768bcdcf5f6f483966;p=sigrok-meter.git diff --git a/mainwindow.py b/mainwindow.py index a28e15c..be39a4e 100644 --- a/mainwindow.py +++ b/mainwindow.py @@ -273,15 +273,19 @@ class MainWindow(QtGui.QMainWindow): layout.addWidget(label) def _setup_logPage(self): + self.logPage = QtGui.QWidget(self) + layout = QtGui.QVBoxLayout(self.logPage) + self.logView = QtGui.QListView(self) self.logView.setModel(self.logModel) self.logView.setEditTriggers(QtGui.QAbstractItemView.NoEditTriggers) self.logView.setSelectionMode(QtGui.QAbstractItemView.NoSelection) - - self.logPage = QtGui.QWidget(self) - layout = QtGui.QVBoxLayout(self.logPage) layout.addWidget(self.logView) + btn = QtGui.QPushButton('Save to file...', self) + btn.clicked.connect(self.on_save_log_clicked) + layout.addWidget(btn) + def _setup_preferencesPage(self): self.preferencesPage = QtGui.QWidget(self) layout = QtGui.QGridLayout(self.preferencesPage) @@ -498,6 +502,26 @@ class MainWindow(QtGui.QMainWindow): self.actionStartStop.setText('Stop Acquisition') self.actionStartStop.setIcon(icons.stop) + @QtCore.Slot() + def on_save_log_clicked(self): + filename = QtGui.QFileDialog.getSaveFileName(self, + 'Save Log File', settings.logging.filename.value()) + + if not filename: + # User pressed 'cancel'. + return + + try: + with open(filename, 'w') as f: + for line in self.logModel.stringList(): + f.write(line) + f.write('\n') + except Exception as e: + QtGui.QMessageBox.critical(self, 'Error saving log file', + 'Unable to save the log messages:\n{}'.format(e)) + + settings.logging.filename.setValue(filename) + @QtCore.Slot() def show_about(self): text = textwrap.dedent('''\