converted all QWidgets to QDialogs to prevent issue with concurrent QApplications. done() converted to finish() to prevent issue with QDialogs built-in done(). show() converted to exec_() to pause event loop