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

GUI Development #21

Open
sethfoxen opened this issue Oct 24, 2018 · 4 comments
Open

GUI Development #21

sethfoxen opened this issue Oct 24, 2018 · 4 comments

Comments

@sethfoxen
Copy link

I'm very beginner, I took a VB class in highschool back in 2011, but I wrote up a simple GUI for maxcso that I wanted to put out there. The only real option right now is selecting the thread count, but other than that it passes no other arguments. I'm not distributing maxcso, as the GUI I've wrote requires a compiled maxcso binary along side it in it's folder, so it's all my work.
I'd love to have someone take a look at it, and see if it works well, and offer any improvements!

The repo is at https://github.com/sethfoxen/maxcsoGUI

@unknownbrackets
Copy link
Owner

Will take a look.

If you want, you can also try writing a GUI that runs maxcso as a library. The CLI is actually just using the "main library" here:

https://github.com/unknownbrackets/maxcso/blob/master/cli/cli.cpp

So for example, a progress bar could be implemented using the maxcso::TASK_INPROGRESS status.

But that doesn't mean anything is wrong with calling the exe (although that might be somewhat Windows only.)

-[Unknown]

@sethfoxen
Copy link
Author

It's limited, and I have have pretty much ZERO experience with any practical coding, and really was just looking for something to simplify batch compression. Wanted to keep it simple. Download a maxcso release, pop it in the GUIs folder, and there you have it. I've added a few more arguments, just calling the exe makes it simpler to implement changes. Added a new compression method? Simply add a line, a checkbox, and rebuild.

@Evolution0
Copy link

Evolution0 commented Jun 23, 2019

I got one in the works myself currently using Python and Tkinter (because its simple and works on damn near everything)

It currently can:

  • Use either x86 or x64 releases
  • Detect the number of threads available on a system and allow the user to set how many to dedicate with a slider (Windows and Linux, defaults to 1)
  • Allow multiple files to be chosen with filtering so only supported formats are shown (+ Ignore duplicates)
  • Set output format
  • Choose methods

Not sure if I want to keep the progress bar or simply add percentages beside filenames then transition to a checkmark or something when they are done.

The rest of the options will likely be added as advanced options that can be shown on toggle as to keep the UI simple.

Ugly screenshot as I haven't adjusted the layout:
MaxCSOGUIv1

Files in the list not shown yet as its still ugly full paths and I need format it better.

@unknownbrackets
Copy link
Owner

That's interesting. I'd suggest defaulting the threads to at least half the available (if not all, like maxcso does by default), because maxcso tries multiple methods and can be slower with only a single thread. It's designed to scale very well with additional threads.

-[Unknown]

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

3 participants