Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add an Edit Now option to project dialog to allow opting out of immediately opening a project after creation/import/install #95600

Merged

Conversation

MajorMcDoom
Copy link
Contributor

@MajorMcDoom MajorMcDoom commented Aug 15, 2024

This PR adds a little check button to the project dialog so the user can opt out of immediately opening a project after creation/import/install, which is useful when you want to perform multiple imports or installs or creations without interruption/restarting.

The check button is checked by default, so the current default behaviour is unchanged.

I've opted to maintain the state of this checkbox per session. i.e. if you uncheck it while doing an import, it will remain unchecked if you try to perform another import right after. I believe this makes sense for the intended workflow of potential consecutive operations. The current "edit-immediately" workflow will not be impacted by this decision because once the project opens, the project manager is closed anyway, and the option will once again be on the default true state the next time the project manager is opened.

Adding a third button to the dialog was an option that I considered, but I decided that keeping the two buttons would be the less confusing change for users who like the current flow (they don't have to remember/choose which new button to press).

Fixes #88891

screenshot4
screenshot5
screenshot6

Copy link
Member

@Calinou Calinou left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Edit Now should be a CheckBox, not a CheckButton, as it doesn't have an immediate effect on the form itself (the effect only applies when confirming the dialog).

I also suggest moving it so that it's centered, as it can be hard to spot currently.

@MajorMcDoom MajorMcDoom force-pushed the project-dialog-optional-edit branch from e2e0c6f to 3669eb0 Compare August 15, 2024 23:54
@MajorMcDoom MajorMcDoom requested a review from Calinou August 15, 2024 23:58
@MajorMcDoom
Copy link
Contributor Author

Hey @Calinou your requested changes have been made. Mind taking another look?

Copy link
Member

@Calinou Calinou left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tested locally (rebased on top of master 77d6283), it works as expected.

@Mickeon
Copy link
Contributor

Mickeon commented Nov 13, 2024

Does this look fine for 4.4?

@akien-mga
Copy link
Member

I'm concerned about making the Create New Project bigger vertically. It's already pretty big on smaller screens, notably on Android phones, and this might make it extend out of bounds again.

Adding a third button to the dialog was an option that I considered, but I decided that keeping the two buttons would be the less confusing change for users who like the current flow (they don't have to remember/choose which new button to press).

Based on the above, I feel this might be a worthwhile alternative to explore.

Pros:

  • No standalone checkbox that extends dialog height and looks out of place

Cons:

  • Muscle memory
  • No persistence

@MajorMcDoom
Copy link
Contributor Author

I'm concerned about making the Create New Project bigger vertically. It's already pretty big on smaller screens, notably on Android phones, and this might make it extend out of bounds again.

Adding a third button to the dialog was an option that I considered, but I decided that keeping the two buttons would be the less confusing change for users who like the current flow (they don't have to remember/choose which new button to press).

Based on the above, I feel this might be a worthwhile alternative to explore.

Pros:

* No standalone checkbox that extends dialog height and looks out of place

Cons:

* Muscle memory

* No persistence

If it's possible to move the checkbox to the right side of the buttons, would that be an acceptable alternative as well? That would eliminate the vertical expansion but keep the pros of the input modality.

@adamscott
Copy link
Member

In my mind, this should be added buttons. "Create and Edit", "Import and Edit", and "Install and Edit". No need for a new check button.

@MajorMcDoom
Copy link
Contributor Author

In my mind, this should be added buttons. "Create and Edit", "Import and Edit", and "Install and Edit". No need for a new check button.

@adamscott Just to make sure I'm understanding you correctly: are you proposing another approach that has not already been mentioned, or are you just expressing your support for the 3-button approach that has already been mentioned?

@adamscott
Copy link
Member

adamscott commented Dec 2, 2024

are you just expressing your support for the 3-button approach that has already been mentioned?

Sorry @MajorMcDoom, yes that's what I meant. I didn't read all the comments before commenting, sorry. 🙇

@MajorMcDoom
Copy link
Contributor Author

@adamscott @akien-mga

The two different UX schemes suggested here appear superficially trivial in difference, but would actually require quite a bit of refactoring. The project manager code has the two-button layout pretty much baked into the API, such that all the dialogs are configured and listened to via abstracted concepts of "ok" and "cancel".

UX-wise, my gut feeling is that the three button approach would cause confusion, and it's a strong enough gut feeling that I couldn't in good conscience just concede it in this case, so I just want to make sure the three-button approach is worth the extra refactoring (i.e. if we have good reason to believe the checkbox isn't good).

In comparison, it would be simple to move the checkbox to the right-side of the buttons (in the same row) in order to alleviate the crowding concern. It would also be the smaller UX change overall, preserving most of the current layout and functionality. IMO that is less work, and less risk.

I'd like to give the smaller change a try, and if someone really wants to try the three-button approach, they can make a different PR for that.

@akien-mga
Copy link
Member

I agree that the 3 buttons option, while we use it already in some dialogs in the editor, wouldn't necessarily be good UX.

A checkbox on the side could be tried I guess, though it would also be a bit unconventional. It would need to be next to the "ok" button, and remember for this that the position of the "ok" button is swapped on Windows and Unix platforms by convention. And if we want to do it right it should probably also swap position when using a RTL language (might already be handled automatically).

A third option would be to have the "ok" button be a drop-down button similar to this GitHub button:
image

With options "Install and Edit" and "Install Only", etc.
But this is also something that would require custom development and can't be achieved easily with existing controls (that I know of at least).

So we can also just go with what's implemented here, I just feel we keep adding bad design practices to these dialogs and I can't wait for the day someone rewrites them from scratch with proper UX and UI design in mind. Things are all over the place here:
image

@MajorMcDoom
Copy link
Contributor Author

So we can also just go with what's implemented here, I just feel we keep adding bad design practices to these dialogs and I can't wait for the day someone rewrites them from scratch with proper UX and UI design in mind. Things are all over the place here: image

I definitely agree that it is very busy and inconsistent. Since this is a not very highly requested feature for a pretty niche use case, I'm also ok with just closing this PR and the associated issue (also created by me). In the interest of not adding even more mess to be cleaned up later. Would that be preferable?

@akien-mga
Copy link
Member

Well I personally think the proposal is useful, I've wanted that behavior a few times myself.

@adamscott
Copy link
Member

I propose though that we merge with the edit now checkbox for now.

I can't wait for the day someone rewrites them from scratch with proper UX and UI design in mind.

I could take a look at this.

Copy link
Member

@akien-mga akien-mga left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's go with this, and see if someone is bothered enough by the additional clutter to find a proper UX solution.

@akien-mga akien-mga modified the milestones: 4.x, 4.4 Dec 12, 2024
@akien-mga akien-mga merged commit 43ef253 into godotengine:master Dec 12, 2024
18 checks passed
@akien-mga
Copy link
Member

Thanks!

@aaronfranke
Copy link
Member

I can understand the use case when importing a project, but why would you need to be able to not edit a project when creating the project?

@MajorMcDoom
Copy link
Contributor Author

I can understand the use case when importing a project, but why would you need to be able to not edit a project when creating the project?

That's an interesting point. If it's a niche enough use-case, perhaps it could be selectively hidden from the project creation dialog, which is currently the most crowded dialog. Is that what you're suggesting, @aaronfranke ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

User is forced to open a project immediately after importing it in Project Manager
6 participants