You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently, most dialogs aside from the Variable Explorer are modal, blocking users from interacting with the rest of the UI so long as they are open. As this should naturally be avoided unless either A. It is actually necessary to prevent users from changing conflicting options or otherwise do anything else before taking action on the dialog, or B. The dialog contains a warning or other message that must be brought to the user's attention immediately, and must be read/handled and dismissed before continuing
Depending on the type of dialog, this is often as simple as just including spam_dialog.setModal(False) and then using spam_dialogshow() instead of spam_dialog.exec_(), where spam_dialog is the dialog in question.
Philosophically, particularly as an IDE aimed at programmers and scientists, if there is no reason not to non-modal should be preferred generally to be more user-friendly and not treat our users like small children who aren't allowed to touch grownup things. However, if the dialog is trivially small/simple and is generally completed immediately, needs user attention to proceed, and there is not much of a plausible use case for a user keeping it open, checking something else, or changing something while its open, then I didn't initially include it here.
Dialogs to consider include:
The About and Dependencies dialogs, obviously (previously agreed to be made non-modal)
The Profiler and Pylint Output windows should absolutely not be modal, since it hugely cripples their utility (it is impossible to look through the code to find the line where the error occurs)
The Issue Reporter should probably also be, particularly the one launched by "Report Issue", to allow the user to gather more information about the error to make the report and not clearly lock up Spyder until they've done so.
Run configuration I don't see any particular reason to make this modal, and the user might want to leave it open, check something in their open files or change something before running
Connect to kernel Again, doesn't appear to be a compelling reason to enforce it being modal and the user might want to check some details somewhere else in the Spyder UI or Help before filling it out completely, or otherwise keep it open temporarily to consult it.
New Project Not sure it needs to be modal, but perhaps it does. Also has less of a clear use-case for the user keeping it open or checking/doing something else in Spyder.
PYTHONPATH manager? Its quite stateful, and requires a restart to fully set, so not sure whether it makes sense here
Looking forward to hear your thoughts.
The text was updated successfully, but these errors were encountered:
I agree with this change, but for master. Just two comments:
New Project Not sure it needs to be modal, but perhaps it does
I think this one needs to be modal because it changes the current context (i.e. open files in the Editor and it restarts all consoles).
PYTHONPATH manager?
I think this one could be non-modal too, but after pressing Ok, we should show another (modal) dialog warning users if they want to restart all their consoles after the change.
Problem Description
Thanks to @jnsebgosselin for input on this, as originally discussed in #7785 , #7727 and #6535 .
Currently, most dialogs aside from the Variable Explorer are modal, blocking users from interacting with the rest of the UI so long as they are open. As this should naturally be avoided unless either A. It is actually necessary to prevent users from changing conflicting options or otherwise do anything else before taking action on the dialog, or B. The dialog contains a warning or other message that must be brought to the user's attention immediately, and must be read/handled and dismissed before continuing
Depending on the type of dialog, this is often as simple as just including
spam_dialog.setModal(False)
and then usingspam_dialogshow()
instead ofspam_dialog.exec_()
, wherespam_dialog
is the dialog in question.Philosophically, particularly as an IDE aimed at programmers and scientists, if there is no reason not to non-modal should be preferred generally to be more user-friendly and not treat our users like small children who aren't allowed to touch grownup things. However, if the dialog is trivially small/simple and is generally completed immediately, needs user attention to proceed, and there is not much of a plausible use case for a user keeping it open, checking something else, or changing something while its open, then I didn't initially include it here.
Dialogs to consider include:
Looking forward to hear your thoughts.
The text was updated successfully, but these errors were encountered: