Skip to content

Commit

Permalink
add close_on_finish to run_thread_with_progress
Browse files Browse the repository at this point in the history
  • Loading branch information
danielhrisca committed Apr 12, 2024
1 parent 195a082 commit 38d6f7a
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 10 deletions.
4 changes: 1 addition & 3 deletions src/asammdf/blocks/v2_v3_blocks.py
Original file line number Diff line number Diff line change
Expand Up @@ -2591,9 +2591,7 @@ def __init__(self, **kwargs) -> None:
version = kwargs["version"]
self.file_identification = "MDF ".encode("latin-1")
self.version_str = version.encode("latin-1") + b"\0" * 4
self.program_identification = "{}{}".format(tool.__tool_short__, tool.__version__.replace(".", "")).encode(
"latin-1"
)
self.program_identification = f"{tool.__tool_short__}{tool.__version__}".encode("latin-1")
self.byte_order = v23c.BYTE_ORDER_INTEL if sys.byteorder == "little" else v23c.BYTE_ORDER_MOTOROLA
self.float_format = 0
self.mdf_version = int(version.replace(".", ""))
Expand Down
4 changes: 1 addition & 3 deletions src/asammdf/blocks/v4_blocks.py
Original file line number Diff line number Diff line change
Expand Up @@ -5301,9 +5301,7 @@ def __init__(self, **kwargs) -> None:
version = kwargs.get("version", "4.00")
self.file_identification = b"MDF "
self.version_str = f"{version} ".encode()
self.program_identification = "{}{}".format(tool.__tool_short__, tool.__version__.replace(".", "")).encode(
"utf-8"
)
self.program_identification = f"{tool.__tool_short__}{tool.__version__}".encode()
self.reserved0 = b"\0" * 4
self.mdf_version = int(version.replace(".", ""))
self.reserved1 = b"\0" * 30
Expand Down
14 changes: 11 additions & 3 deletions src/asammdf/gui/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -270,15 +270,18 @@ def __init__(self, *args, **kwargs):
self.error = None
self.result = None
self.thread_finished = True
self.close_on_finish = True
# Connect signal to "processEvents": Give the chance to "destroy" function to make his job
self.qfinished.connect(lambda: QtCore.QCoreApplication.processEvents())

def run_thread_with_progress(self, target, args, kwargs, wait_here=False):
def run_thread_with_progress(self, target, args, kwargs, wait_here=False, close_on_finish=True):
self.show()
self.result = None
self.error = None
self.thread_finished = False

self.close_on_finish = close_on_finish

self.worker = Worker(target, *args, **kwargs)
self.worker.signals.result.connect(self.receive_result)
self.worker.signals.finished.connect(self.thread_complete)
Expand All @@ -296,7 +299,11 @@ def run_thread_with_progress(self, target, args, kwargs, wait_here=False):
self.threadpool.start(self.worker)

if wait_here:
return self.exec()
while not self.thread_finished:
sleep(0.1)
QtWidgets.QApplication.processEvents()

return self.result

def _canceled(self):
self.close()
Expand All @@ -309,7 +316,8 @@ def receive_error(self, error):

def thread_complete(self):
self.thread_finished = True
super().close()
if self.close_on_finish:
super().close()
self.qfinished.emit()

def cancel(self):
Expand Down
2 changes: 1 addition & 1 deletion src/asammdf/version.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
""" asammdf version module """

__version__ = "7.5.0.dev6"
__version__ = "7.5.0.dev7"

0 comments on commit 38d6f7a

Please sign in to comment.