Feature Request: GUI changes #100

christopher-barry opened this Issue Dec 24, 2013 · 2 comments


None yet

2 participants


This is a request to modify the gui somewhat.

  • remove very large 'Generate GCode' button, replacing it with a normal button on the GCode tab.

  • Add a nozzle/bed running temperature graph where that huge GCode button is now.

  • Use a standard open/save/saveas file dialog rather than having it embedded, removing the Files tab completely.

  • Relocate the Display expandable and Layer Preview expandable controls into a new Display tab (e.g. remove the expandable widgets too). Possibly have an Advanced button on that tab as well, that calls the Preferences dialog open to the Display Settings tab.

  • consider an Advanced button on all relevent main interface tabs that also call the Preferences dialog open to the relevent preferences tab.

  • the Axis Control area buttons, etc. are qute misaligned on my machine (likely font related, based on the variable area allocated to the row title X,Y, and Z), consider completely replacing this section with a graphical implementation. Possibly use an othographic view in the primary screen to select point(s) in each (or any) axis, then a Go button to initiate movement to that coordinate.

  • make 'Use Extruder' use a dropdown list, not radio buttons. If (as the comment in the code suggests now that I re-read it) there can be multiple active extruders, then possibly a multi-select dropdown.

  • remove/replace all overly large or wide buttons, and generally clean up alignment.

  • add tooltips to all elements

  • this is obviously a huge stretch, but have you considered abandoning gtk altogeher? If you've ever used Blender, and seen the magnificent cross-platform UI they've created in OpenGL, leveraging parts of their code for the UI would put this project over the top. Or, alternatively, make this project function as an Addon to Blender, and leverage their entire graphical stack.

Just some suggestions to polish it up a bit. I know making everything 'work' is top priority, but presentation and usability are important too.

But you've done a huge amount of work on this, and should be commended on where the project is right now. Great job!




  • I wanted to call Generate GCode from everywhere
  • Embedded files are better for preview
  • Layer preview must be always accessible

Advanced button ok, graphical printer controls ok, temp graph nice, tooltips yes, but all a lot of work, pull requests welcome ...
(Problem with tooltips is that they are gone as soon as I move the element in glade)

And what's the advantage of a dropdown instead of radio buttons?



Obviously these are just my opinions, I'm basing them on my own years of experience using various guis built with various frameworks, on multiple operating systems. There are some usability standards that have evolved of the years of gui design, and generally for good reasons. Users have expectations of how things are organized, look, and work. In any event, I'm offering this as constructive feedback, not as thoughtless bitching, so please take it all as positive.

  • I wanted to call Generate GCode from everywhere

OK. But the button does not actually need to be 1/4 the size of the right pane. Does it work fine that way? Sure it does, but it's kind of a non-standard look, and frankly I did not actually realize it was really a button initially. At first, I thought it was a title for the entire pane and the height somehow got messed up. As an alternative (while keeping these things tidy) why not ctl-g or alt-g for accomplishing that? Hotkeys can allow anything anytime if you want.

  • Embedded files are better for preview

For me, the preview is a red pointcloud, and not very discernable. If the preview was higher resolution (and maybe setting this to surface instead is a setting somewhere?), then I can see your point. Having a good preview is a cool thing. My scan origins in the stl files I have are not at you're graphic window's origin, so the bounding box and the pointcloud come in half offscreen. Maybe during preview, you could put the bounding box center of mass located in the middle of the table in xy, and .5 bounding box z high? This would ignore the models origin just for the sake of previewing it.

Or, possibly as an alternative, process the stl files in configured working directories asynchonously on program load, generating png images that could be displayed as thumbnails to select, and not actually display the model in the viewer? That way you could just pick the file visually, without having to select it first to see it in the viewer. Plus, if you reposition it, your code can generate an updated image for the thumbnail when the user saves the file.
Dunno, just thinking out loud.

  • Layer preview must be always accessible

Again, hotkeys would do wonders for toggles like that, and not take up screen real estate unecessararily.

Advanced button ok, graphical printer controls ok, temp graph nice, tooltips yes, but all a lot of work, pull requests welcome ...

I will see what I can do.

And what's the advantage of a dropdown instead of radio buttons?

Because you are allowing 'n' extruders to be defined, updating a list, rather than adding a new control seems like the standard way to approach that. For one thing, you would not need to limit the name on the main window to an index number to save space, the user can name it something meaningful. Plus you can easily accomodate any number of extruder configurations in a list. Thinking about it, It may even make sense to have the temperature setting(s) be part of the extruder configuration as well.

Anyway, I hope this is helping and not just being annoying. I will have a look at the gui code itself and see if I can tweak it around and send you screen shots of what I'm thinking.


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