Skip to content

Enhance project list functions: group and drag. #158

Open
@zwcloud

Description

@zwcloud

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?

Activity

unitycoder

unitycoder commented on Jul 19, 2024

@unitycoder
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

zwcloud commented on Jul 22, 2024

@zwcloud
Author

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

unitycoder commented on Jul 22, 2024

@unitycoder
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

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @unitycoder@zwcloud

        Issue actions

          Enhance project list functions: group and drag. · Issue #158 · unitycoder/UnityLauncherPro