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

Changes to the GUI #3770

Merged
merged 24 commits into from Mar 26, 2017

Conversation

Projects
None yet
9 participants
@alranel
Member

alranel commented Mar 17, 2017

I've been working on this change for quite a long time. I expect some people will dislike it because it breaks some habits, but that happened every single time we moved to a more mature layout. I think this proposal improves Slic3r UX. This change originates from a few facts/needs:

  • Slic3r's learning curve is steep.
  • We have had Simple Mode but nobody used it, and we have been basically instructing everyone to switch to Expert Mode in order to perform a proper configuration.
  • We need a cleaner interface, with a stronger hierarchy of what's important and what's less (but still needs to be accessed).

Summary of this change:

  • Simple Mode was removed.
  • Preset editors are not tabs any more; they are now dialogs. (Please note: same number of clicks in order to access and dismiss them compared to now!)
  • Quick option overrides are available directly in the plater. Those overridable options can be configured for each Print preset; for example a profile for vases don't need support material, and a profile for mechanical parts doesn't need bottom infill pattern.
  • The object list on the right was removed. It was not very useful. The information it contained (scale and copies) is now entirely available in the object info box in the bottom right corner.
  • Print and Filament presets can be linked to one or more Printers, and they will be hidden from the dropdowns accordingly.
  • Many useful Printer options (like retraction or pressure advance) can be freely overridden in a Filament preset (#3643). The same framework can be applied to Print settings as well.

schermata 2017-03-17 alle 01 07 23

schermata 2017-03-17 alle 01 08 49

schermata 2017-03-17 alle 01 10 17

@alranel alranel added this to the 1.3.0 milestone Mar 17, 2017

@alranel alranel requested a review from lordofhyphens Mar 17, 2017

@xoan

This comment has been minimized.

Member

xoan commented Mar 17, 2017

+1

Very nice change. Fully agree.

At first time, override plater settings are a bit hard to find: Print Settings → Notes and preferences

Print/Filament <-> Printer compatiblity could be located in te same section: now it is in Print Settings → Notes and preferences, but in Filament Settings it is in Overrides. I vote for Notes and preferences, or even a Preferences only section.

And related to this, the list of Printers for compatibility and settings for override Print Settings in Plater could be integrated in the GUI, without the needed to click a button to open a dialog, is it possible?

@RafaelEstevamReis

This comment has been minimized.

RafaelEstevamReis commented Mar 17, 2017

@kefir-

This comment has been minimized.

kefir- commented Mar 17, 2017

Thanks for the work, Alex, this looks interesting. But I think I disagree with one detail, the removal of the object list. If you have objects that are similar looking, or many objects on the same plate, how will you easily select the right one? I like to select from the object list. And when printing 5x of an object made of several pieces, how will I easily see that I have the right number for all components? I see that the number of copies is shown for the selected object, but would I have to click on each object to verify this number? Feel free to make it collapsible (or a drop-down list? or floating dialog?), I don't need it there all the time, but I'll be very sad to see it go completely.

By the way, I've been using modifiers lately with some success (nice feature that!), and it'd be interesting to be able to see if I add the same object several times but use different modifiers for each. I don't expect "prime real-estate" to be used for this though, it'd just be interesting to show the modifier used as well, perhaps in the "Info" box.

@lordofhyphens

This comment has been minimized.

Member

lordofhyphens commented Mar 17, 2017

I can agree for the Object box, it is useful enough that I think it should remain as either an expandable frame or perhaps a separate window.

@RafaelEstevamReis

This comment has been minimized.

RafaelEstevamReis commented Mar 17, 2017

@mrehorst

This comment has been minimized.

mrehorst commented Mar 17, 2017

I pulled and tried to build the new branch today and got this:
Error log

@lordofhyphens

The default width of the opened dialogs need to be about 15-20% larger. Specifically, these dialogs must not have a horizontal scrollbar by default. They are unsightly and invoke more clicks to address.

@lordofhyphens

This comment has been minimized.

Member

lordofhyphens commented Mar 18, 2017

Hey @mrehorst, please in the future put text dumps in a .txt file and upload them using the interface.

image

@lordofhyphens

This comment has been minimized.

Member

lordofhyphens commented Mar 18, 2017

I agree that keeping the object detail as a tab along with the override list is useful for many workflows.

I can't find the UI for activating/deactivating overrides in Linux.

@xoan

This comment has been minimized.

Member

xoan commented Mar 18, 2017

I can't find the UI for activating/deactivating overrides in Linux.

@lordofhyphens you can find it in Print Settings → Notes and preferences

@cerdeira

This comment has been minimized.

cerdeira commented Mar 19, 2017

I believe is a move in the right direction.
Could you take the oportunity and introduce the "Slice now" feature like prusa?

@lordofhyphens

This comment has been minimized.

Member

lordofhyphens commented Mar 19, 2017

@cerderia it's called "switch to preview tab".

I know the button in the prusa3d fork because I did the first draft for here. I think I like the way @alexrj arranged it better now that I have used it.

@lordofhyphens

This comment has been minimized.

Member

lordofhyphens commented Mar 19, 2017

@xoan herp derp.

I approve of flagging print profiles as compatible with different printer profiles.

@cerdeira

This comment has been minimized.

cerdeira commented Mar 20, 2017

@lordofhyphens , thank You.
All I can say is that this is amazing. I use slic3r for a long period of time and did not know it. Man...

@lordofhyphens

This comment has been minimized.

Member

lordofhyphens commented Mar 20, 2017

@cerdeira It's relatively new (as of a month or two ago).

Merge remote-tracking branch 'origin/master' into gui3
Conflicts:
	lib/Slic3r/GUI.pm
	lib/Slic3r/GUI/Plater.pm
	lib/Slic3r/GUI/PresetEditor.pm
	slic3r.pl
	xs/src/libslic3r/Config.cpp
	xs/src/libslic3r/Config.hpp
@gege2b

This comment has been minimized.

Contributor

gege2b commented Mar 21, 2017

A bit confusing at first, but it's great move (love the emphasis on "same number of clic as before" ahaha ;)

As far as I tested for now (on linux mint), I have the "plater" tab alone (no "controller") - certainly because I don't have my printer physically connected on the computer
maybe hidding plater tab if it's alone would be a good thing (to save some UI space).

Still need to test it deeply

great work !

@cerdeira

This comment has been minimized.

cerdeira commented Mar 23, 2017

Gui3 is getting better and better.

After playing some time with it I would sugest this improvements,

  • when flying with mouse pointer over menu items (file, plater ... help) submenus could open imediatly
    whithout need to click on them,

  • when opening the overrides list on the right pane it would be nice to scroll them with mouse wheel,

  • When closing settings windows I miss a OK botton

  • will it be the moment to get rid of olddddd 2D and Layers window?

@alranel

This comment has been minimized.

Member

alranel commented Mar 23, 2017

@gege2b, the controller issue was fixed in a19cc10.
@cerdeira, interaction with menus is defined by operating systems; we can't (and shouldn't) change their behavior. On OSX the long overrides popup menu is scrollable with the scroll wheel, maybe it's not on other operating systems. The 2D plater maybe will be removed, but I think the Layers tab is still useful and has potential for further visualization modes.

@xoan

This comment has been minimized.

Member

xoan commented Mar 23, 2017

On OSX the long overrides popup menu is scrollable with the scroll wheel

As in GNU/Linux using Xfce.

The 2D plater maybe will be removed, but I think the Layers tab is still useful and has potential for further visualization modes.

I like the 2D Layer visualization, but the same visualization can be probably achieved in the Preview using some filters, like Show only the current layer, Disable extrusion width and Show model outline.

PS. I don't know how hard it would be to implement :D

xoan and others added some commits Mar 23, 2017

Add accelerators (keyboard shortcuts) to View menu
* Follow the OpenSCAD convention:
  * Reorder the items
  * Rename Rear -> Back and Iso -> Diagonal (Iso stands for a projection,
    not for a view -- upcoming versions could have isometric/prespective
    views...)
  * Assign accels from 4 to 0
Merge pull request #3795 from xoan/gui3-add-view-accels
Add accelerators (keyboard shortcuts) to View menu
@gege2b

This comment has been minimized.

Contributor

gege2b commented Mar 23, 2017

Another bug spotted, when loading a STL with a pretty long filename, and selecting it in the 3d or 2d plater, the info box is resized to display the entire filename, witch can be very odd ^^

image

@gege2b

This comment has been minimized.

Contributor

gege2b commented Mar 23, 2017

Another one (related to a34c80b ) :
Shortcuts don't use the numbers on numpad, only those on top of the keyboard.
Problem is with azerty keyboard, the shortcut needs to be CTRL + SHIFT + # to work correctly

@gege2b

This comment has been minimized.

Contributor

gege2b commented Mar 23, 2017

Well, as I'm looking at shortcuts, I have a question : is there a reason for the "delete object" shortcut is CTRL + DEL ? Why not simply DEL ?

@lordofhyphens

This comment has been minimized.

Member

lordofhyphens commented Mar 24, 2017

@gege2b that's actually a long holdover, if memory serves. It's always been that way ;)

@lordofhyphens

This comment has been minimized.

Member

lordofhyphens commented Mar 24, 2017

One of the use cases I ran into that the old object menu helped out a lot with is finding all of the random tiny solids that get spread out over the plate when the Split function is used. It is much easier to remove items of interest from a combobox than it is to brows to a menu.

The object list, as far as I know, can share space with the overrides list (probably tabbed out on the bottom). You generally won't be messing with overrides and the object list at the same time for these kinds of purposes, so I don't see a UX problem with that.

Having the UI be more composable would be lovely, but that's way out there in effort (especially if XSGUI is closer on the horizon).

@Lenbok

This comment has been minimized.

Contributor

Lenbok commented Mar 25, 2017

I just thought I would give the gui3 branch a quick try. Overall it's quite nice!

One of the things I regularly finding myself doing is changing the brim setting (usually based on whether I'm using ABS vs PLA filament). In the old GUI, it wasn't possible to do that as a per-print override in the plater. Now with gui3 it is possible to add as a per-print override (yay!). However, I note that the print settings overrides doesn't allow defining brim width as one of the default overrideable settings that automatically appears. Is this just a gui3 bug? Ideally I'd like to have the selected filament apply a brim width override compared to what is specified in the print settings, and then only override that on a per-print basis if needed.

@lordofhyphens

This comment has been minimized.

Member

lordofhyphens commented Mar 25, 2017

@lordofhyphens

This comment has been minimized.

Member

lordofhyphens commented Mar 25, 2017

@kefir-

This comment has been minimized.

kefir- commented Mar 25, 2017

I agree with @lordofhyphens that a combobox would be better than a menu for the object list. For any action I'd like to do related to the object list, I now have to open the menu and hover the mouse over the correct menu item. For repetitive tasks, or even just once in a while, having to resort to the mouse and pointing at exactly the right spot is something I'd prefer to avoid. In my opinion, a floating window or a collapsible combobox would be better.

@xoan

This comment has been minimized.

Member

xoan commented Mar 25, 2017

+1 for the combobox.

Indeed, this combobox can be located aside Name:, in the Info frame, with a blank option at the top for when there is no selected ojects (or when there is no objects in the plate).

captura de pantalla_2017-03-25_10-44-56

@alranel

This comment has been minimized.

Member

alranel commented Mar 26, 2017

Done! It's now implemented as a wxChoice (dropdown menu) as per your suggestion. Looks nice.
I think this is ready for merge as the general feedback was positive. I'll do it in the next few hours if nobody has objections.

@lordofhyphens

This comment has been minimized.

Member

lordofhyphens commented Mar 26, 2017

I would prefer it, if the currently selected object is deleted, that another object on the plater is automatically selected (or at least, focus from the combobox isn't lost).

The current implementation adds several clicks and mouse movements to the workflow I mentioned (finding and deleting objects), at least on Linux. Each time a deletion is made (via ctrl-del), the combobox loses focus and the selection goes blank. Under the previous UI the focus on the control remained while you delete

One other minor thing: the accelerator for add/remove object do not function with the numpad +/- keys, just the ones near Backspace. Currently this means that to use the + the full key combination is CTRL+SHIFT++.

@alranel alranel merged commit 9e71fe2 into master Mar 26, 2017

3 checks passed

continuous-integration/appveyor/branch AppVeyor build succeeded
Details
continuous-integration/appveyor/pr AppVeyor build succeeded
Details
continuous-integration/travis-ci/pr The Travis CI build passed
Details

@alranel alranel deleted the gui3 branch Mar 26, 2017

alranel added a commit that referenced this pull request Mar 26, 2017

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