Skip to content
Snippets Groups Projects
Commit d2cfbc2b authored by Harry Saunders's avatar Harry Saunders
Browse files

Add script execution timestamp to editor status

AsyncTaskResult objects store timestamp as string during
construction. This stamp is displayed in the editor status
window whenever a script is run.

Refs #24479
parent fbda4d95
No related merge requests found
......@@ -110,6 +110,7 @@ class AsyncTaskResult(object):
def __init__(self, elapsed_time):
self.elapsed_time = elapsed_time
self.timestamp = time.ctime()
class AsyncTaskSuccess(AsyncTaskResult):
......
......@@ -27,7 +27,7 @@ from mantidqt.io import open_a_file_dialog
# Status messages
IDLE_STATUS_MSG = "Status: Idle."
LAST_JOB_MSG_TEMPLATE = "Last job completed {} in {:.3f}s"
LAST_JOB_MSG_TEMPLATE = "Last job completed {} at {} in {:.3f}s"
RUNNING_STATUS_MSG = "Status: Running"
# Editor
......@@ -237,7 +237,7 @@ class PythonFileInterpreterPresenter(QObject):
def _on_exec_success(self, task_result):
self.view.editor.updateCompletionAPI(self.model.generate_calltips())
self._finish(success=True, elapsed_time=task_result.elapsed_time)
self._finish(success=True, task_result=task_result)
def _on_exec_error(self, task_error):
exc_type, exc_value, exc_stack = task_error.exc_type, task_error.exc_value, \
......@@ -251,19 +251,19 @@ class PythonFileInterpreterPresenter(QObject):
lineno = -1
sys.stderr.write(self._error_formatter.format(exc_type, exc_value, exc_stack) + os.linesep)
self.view.editor.updateProgressMarker(lineno, True)
self._finish(success=False, elapsed_time=task_error.elapsed_time)
self._finish(success=False, task_result=task_error)
def _finish(self, success, elapsed_time):
def _finish(self, success, task_result):
status = 'successfully' if success else 'with errors'
self.view.set_status_message(self._create_status_msg(status,
elapsed_time))
status_message = self._create_status_msg(status, task_result.timestamp,
task_result.elapsed_time)
self.view.set_status_message(status_message)
self.view.set_editor_readonly(False)
self.is_executing = False
def _create_status_msg(self, status, elapsed_time):
def _create_status_msg(self, status, timestamp, elapsed_time):
return IDLE_STATUS_MSG + ' ' + \
LAST_JOB_MSG_TEMPLATE.format(status,
elapsed_time)
LAST_JOB_MSG_TEMPLATE.format(status, timestamp, elapsed_time)
def _on_progress_update(self, lineno):
"""Update progress on the view taking into account if a selection of code is
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment