UnderminersTeam / UndertaleModTool

The most complete tool for modding, decompiling and unpacking Undertale (and other Game Maker: Studio games!)
GNU General Public License v3.0
1.04k stars 203 forks source link

Transition the UI framework to a non-WPF and multi-platform framework #460

Open Grossley opened 2 years ago

Grossley commented 2 years ago

Transition the UI framework to a non-WPF and multi-platform framework

Hurricane996 commented 2 years ago

As it stands, the wpf dependency is the only thing stopping utmt from being completely cross platform.

Grossley commented 2 years ago

As it stands, the wpf dependency is the only thing stopping utmt from being completely cross platform.

That sounds about right. Pull requests to swap WPF for some cross-platform framework are open by the way @Hurricane996 , if you'd like to take a crack at it.

bsimser commented 2 years ago

I'm not sure what the licensing is for Qt but I know there are a lot of tools using this. I think there's some kind of free/MIT/open source/community license but not sure. There are C# bindings and the C# code is pretty reasonable. Any objections to using Qt for this (if the licensing allows it).

Grossley commented 2 years ago

I'm not sure what the licensing is for Qt but I know there are a lot of tools using this. I think there's some kind of free/MIT/open source/community license but not sure. There are C# bindings and the C# code is pretty reasonable. Any objections to using Qt for this (if the licensing allows it).

If the licensing allows it then I see no issue with exploring this avenue. If you would like to make a pull request, it would help @bsimser . Thanks for the advice! :)

bsimser commented 2 years ago

If the licensing allows it then I see no issue with exploring this avenue. If you would like to make a pull request, it would help @bsimser . Thanks for the advice! :)

I'll investigate the Qt licensing angle as I think this is one of the more stable and flexible frameworks out there. The only thing is, structurally, a Qt app is vastly different than a WPF one. I don't think a merge into the UnderModTool project makes sense. Maybe make a UnderModToolQt project (it'll still use UnderModToolLib for all of the functionality) instead? Then you can just deal with the executable name during packaging/deployment.

bsimser commented 2 years ago

Just a note I've looked at the Qt license and they have a license for open source projects like this so we're good there (just have to include the license information in the app, typical stuff here). I've downloaded and looking at putting together the structure for a Qt version. If you want to assign this issue to me that's fine, otherwise I'll send a PR once I get things in place and working with the basics.

Grossley commented 2 years ago

@bsimser I really appreciate the help, I've assigned you this issue, do keep me updated on it! Also

Maybe make a UnderModToolQt project (it'll still use UnderModToolLib for all of the functionality) instead?

This sounds like a good idea, you should do that. Thank you for your help! :)

bsimser commented 2 years ago

Thanks for the assignment. Will be working in my fork and post major updates (and eventually the PR) here.

Kneesnap commented 2 years ago

Regarding license, this is only necessary for changes to Qt code. Using Qt as a library does not require abiding by it's license, unless you were to make changes to it. At most, you may need to accept a EULA.

On Mon, Aug 2, 2021, 1:08 PM Grossley @.***> wrote:

I'm not sure what the licensing is for Qt but I know there are a lot of tools using this. I think there's some kind of free/MIT/open source/community license but not sure. There are C# bindings and the C# code is pretty reasonable. Any objections to using Qt for this (if the licensing allows it).

If the licensing allows it then I see no issue with exploring this avenue. If you would like to make a pull request, it would help @bsimser https://github.com/bsimser . Thanks for the advice! :)

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/krzys-h/UndertaleModTool/issues/460#issuecomment-891299057, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABSCIYOSBZPS5S6REQTP6NLT233NJANCNFSM45PUF2EA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email .

Grossley commented 2 years ago

Hello, I was wondering if there was any update regarding this @bsimser

a2937 commented 1 week ago

I've only heard of QT in reference to Python. If I could have a link to the project and a Nuget package, I'd love to add a Linux GUI one day. I've also heard some things about AvaloniaUI which could be neat.

Miepee commented 1 week ago

QT is developed as c++ code, but they do provide official bindings to QT. I looked around ages ago, there are no good C# bindings.

The plan was indeed to go ahead with Avalonia due to needing the least amount of rewrite/migration. First part is getting rid of system.drawing (see #875