UndertaleModTool icon indicating copy to clipboard operation
UndertaleModTool copied to clipboard

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

Open Grossley opened this issue 4 years ago • 12 comments

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

Grossley avatar May 25 '21 15:05 Grossley

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

hyasynthesized avatar Jul 14 '21 00:07 hyasynthesized

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.

Grossley avatar Jul 14 '21 00:07 Grossley

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).

bsimser avatar Aug 02 '21 19:08 bsimser

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! :)

Grossley avatar Aug 02 '21 20:08 Grossley

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 avatar Aug 02 '21 20:08 bsimser

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.

bsimser avatar Aug 02 '21 22:08 bsimser

@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! :)

Grossley avatar Aug 02 '21 22:08 Grossley

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

bsimser avatar Aug 02 '21 23:08 bsimser

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 .

Kneesnap avatar Aug 03 '21 05:08 Kneesnap

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

Grossley avatar Oct 03 '21 16:10 Grossley

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.

a2937 avatar May 05 '24 23:05 a2937

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

Miepee avatar May 07 '24 23:05 Miepee