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

Enhance project list functions: group and drag. #158

Open
zwcloud opened this issue Jul 18, 2024 · 3 comments
Open

Enhance project list functions: group and drag. #158

zwcloud opened this issue Jul 18, 2024 · 3 comments

Comments

@zwcloud
Copy link

zwcloud commented Jul 18, 2024

Is there a plan/WIP/fork to add following features to UnityLanuncherPro?

  1. grouping projects
  2. drag to re-order project list
  3. select multiple projects in the list and
    • drag to re-order
    • remove them via a context menu
    • drag into a group

I can create a pull request to implement them, but I don't have much time to read the code from zero. Any hints on how to implement those functions? I know some WPF and understand MVVM.

Update:
I observed that the project list is kept in sync with UnityHub, this is really an obstacle of better Unity launcher. Can we use a stand-alone project list?

@unitycoder
Copy link
Owner

No plans, multi-select to remove sounds useful,
although it might cause several changes, since it how expects to get single project for selections in most places..

Yes, project list comes from Hub registry,
but there is also separate list saved into Settings (Settings.Default.projectPaths), which can hold any additional projects.

Grouping:
What would be the use-case or benefit from it?

also,
Tagging or Category was mentioned in few comments earlier, which could be useful (for example to show only "Work" projects)
How groups would be presented in the datagrid? (or would it be more like tree-list, with 1 level?)

Re-order:
Same here, what use case or benefit?

Adding favorite projects has been requested earlier, would this be similar idea? (to drag important projects to top?)

Sorting projects happens in "void SortHandlerRecentProjects and public class CustomProjectSort",
so custom sorting could be implemented around there.

also, where user would select this custom sorting mode? (if you want to enable sort by dragged order, vs. sort by date?)

@zwcloud
Copy link
Author

zwcloud commented Jul 22, 2024

Yes, project list comes from Hub registry,
but there is also separate list saved into Settings (Settings.Default.projectPaths), which can hold any additional projects.

Create a "group" named "From UnityHub" for these projects.

Grouping:
What would be the use-case or benefit from it?

Some user (plugin/asset developer, researchers and R&D engineers) need to manage a lot of projects. For example:

Group: Featured URP Demos

  • DemoOfFeatureA_URP12
  • DemoOfFeatureA_URP14
  • DemoOfFeatureA_URP16

Group: Reference Game Projects

  • GameA
  • GameB
  • GameC

Group: Experiments

  • ExperimentOfTechniqueA
  • ExperimentOfTechniqueB
  • ExperimentOfTechniqueC

Group: Compability Test Projects

  • PackageTestProject_2020.3
  • PackageTestProject_2021.3
  • PackageTestProject_2022.2
  • PackageTestProject_2022.3
  • PackageTestProject_6000.0

How groups would be presented in the datagrid? (or would it be more like tree-list, with 1 level?)

We can apply custom sorting and grouping to datagrid if it works as expected. DataGrid does support grouping.

Tagging or Category was mentioned in few comments earlier, which could be useful (for example to show only "Work" projects)

I agree, tagging or category is useful when trying to find a project of specific properties.

Re-order:
Same here, what use case or benefit?

When added a project to the list, if PackageTestProject_2022.3 is added before/after PackageTestProject_2020.3 and the list isn't ordered as expected ASC/DESC. When I want to order the list by Unity version in project's name, I can just drag to reorder them. With current UnityLauncherPro, I need to remove and add in order, which is tedious.

Adding favorite projects has been requested earlier, would this be similar idea? (to drag important projects to top?)

No. IMO, "pin" project on top is a better solution, like Unity forum/discussions.

also, where user would select this custom sorting mode? (if you want to enable sort by dragged order, vs. sort by date?)

Add a ComboBox to choose sorting mode: Custom, By Date, By Name, ...

@unitycoder
Copy link
Owner

good info, thanks!

and yes, Pin to top would be useful definitely.

Personally i'd prefer using non-grouped projects,
so would be nice if its possible to have both supported in the datagrid?
then have new option in settings. ("[x] enable project grouping" or so)

of course if you want to test these features in fork, then would be easier to see how it feels to use.

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

No branches or pull requests

2 participants