Modern UI

Big icons:


BigIcons.png

I need an icon for home tab. Anyone want to help?

Home tab? Like the Start WB?

I want to create a tab for File, Workbench, Macro, View and Structure toolbars

Very nice !
Would it be hard to combine different icon sizes and/or use drop-down button (eg. boolean in Part) :

  • To highlight some important tools and have some less important/used but related tool close to it
  • To manage the tab width to a size suited for common screens without scrolling.

Thanks
The first thing is have a functional menu. I will look at other ideas later.

Github link added.

Warning: Works for FreeCAD 0.19.20406 or higher. It’s still under development. So there must be bugs.

This is quite tricky because those are supposed to be cross-workbench tool.
What i’d like, but I dont’ know if it is feasible (and I don’t want you to implement it, just putting wishes down for inspiration):
Move File Toolbar in a fixed position, where it doesn’t occupy much space.
Integrate the Structure toolbar into TreeView panel.
The View Toolbar have view commands, but also it is used to set some preferences. I’d like preferences to go into the statusbar and view commands to be overlayed the 3d view. Maybe in the upper left corner (maybe integrated in the view cube).
No ideas for Macro Toolbar.

I stated them just to be precise, not to be imperative :slight_smile:

I removed them from all workbenhes. for now they are just accessable from command menues :slight_smile: Maybe I don’t create a tab for them.

+1
Special tools deserve a special treatment!

I love it. This combined with my modern config could be incredible.
https://github.com/dulouie/FreeCAD-modern-config

Sorry but I don’t understand what your config is doing :slight_smile:

Yes I know, I need to improve the readme. The config changes the color scheme for part and sketcher to a large extent. Also a white background is used and the pick radius of the mouse is increased.
Additionally, rarely used workbenches like ship are deactivated to improve the overview.

ModernDock.gif

Look good :slight_smile:

Hello,
I got a segfault when starting FreeCAD with modern-ui mod :

OS: Ubuntu 18.04.4 LTS (XFCE/xubuntu)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.
Build type: Release
Python version: 3.6.9
Qt version: 5.9.5
Coin version: 4.0.0a
OCC version: 7.3.0
Locale: French/France (fr_FR)



~$ freecad-daily 
FreeCAD 0.19, Libs: 0.19R
© Juergen Riegel, Werner Mayer, Yorik van Havre and others 2001-2020
FreeCAD is free and open-source software licensed under the terms of LGPL2+ license.
FreeCAD wouldn't be possible without FreeCAD community.
  #####                 ####  ###   ####  
  #                    #      # #   #   # 
  #     ##  #### ####  #     #   #  #   # 
  ####  # # #  # #  #  #     #####  #   # 
  #     #   #### ####  #    #     # #   # 
  #     #   #    #     #    #     # #   #  ##  ##  ##
  #     #   #### ####   ### #     # ####   ##  ##  ##

Loading Assembly4 WorkBench
Gespal3D version 0.8.1
ModernUI is enabled
Program received signal SIGSEGV, Segmentation fault.
#0  /lib/x86_64-linux-gnu/libc.so.6(+0x3ef20) [0x7f56275c3f20]
#1  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x131ea0) [0x7f5629743ea0]
#2  /usr/lib/x86_64-linux-gnu/libshiboken2.cpython-36m-x86_64-linux-gnu.so.5.11(+0xa677) [0x7f562554e677]
#3  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x135375) [0x7f5629747375]
#4  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyObject_GC_Malloc+0xe3) [0x7f5629748073]
#5  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyObject_GC_New+0xd) [0x7f562974813d]
#6  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(PyFunction_NewWithQualName+0x2d) [0x7f562984e33d]
#7  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x4723) [0x7f5629793dc3]
#8  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17bc6f) [0x7f562978dc6f]
#9  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(PyEval_EvalCodeEx+0x3e) [0x7f562978e72e]
#10  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x18768b) [0x7f562979968b]
#11  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyCFunction_FastCallDict+0x20a) [0x7f56298257ca]
#12  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17c44c) [0x7f562978e44c]
#13  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x4ec3) [0x7f5629794563]
#14  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17bc6f) [0x7f562978dc6f]
#15  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(PyEval_EvalCodeEx+0x3e) [0x7f562978e72e]
#16  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(PyEval_EvalCode+0x1b) [0x7f562978f4ab]
#17  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x1887bd) [0x7f562979a7bd]
#18  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(PyCFunction_Call+0xc1) [0x7f56298259a1]
#19  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x76e0) [0x7f5629796d80]
#20  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17bc6f) [0x7f562978dc6f]
#21  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17c35c) [0x7f562978e35c]
#22  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x4ec3) [0x7f5629794563]
#23  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17aa63) [0x7f562978ca63]
#24  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17c51e) [0x7f562978e51e]
#25  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x4ec3) [0x7f5629794563]
#26  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17aa63) [0x7f562978ca63]
#27  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17c51e) [0x7f562978e51e]
#28  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x4ec3) [0x7f5629794563]
#29  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17aa63) [0x7f562978ca63]
#30  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17c51e) [0x7f562978e51e]
#31  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x4ec3) [0x7f5629794563]
#32  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17aa63) [0x7f562978ca63]
#33  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyFunction_FastCallDict+0x2d5) [0x7f562978e085]
#34  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyObject_FastCallDict+0x131) [0x7f5629879211]
#35  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyObject_CallMethodIdObjArgs+0xe6) [0x7f5629879576]
#36  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(PyImport_ImportModuleLevelObject+0x45c) [0x7f5629682b2c]
#37  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x77ca) [0x7f5629796e6a]
#38  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17bc6f) [0x7f562978dc6f]
#39  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(PyEval_EvalCodeEx+0x3e) [0x7f562978e72e]
#40  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(PyEval_EvalCode+0x1b) [0x7f562978f4ab]
#41  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x1887bd) [0x7f562979a7bd]
#42  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(PyCFunction_Call+0xc1) [0x7f56298259a1]
#43  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x76e0) [0x7f5629796d80]
#44  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17bc6f) [0x7f562978dc6f]
#45  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17c35c) [0x7f562978e35c]
#46  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x4ec3) [0x7f5629794563]
#47  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17aa63) [0x7f562978ca63]
#48  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17c51e) [0x7f562978e51e]
#49  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x4ec3) [0x7f5629794563]
#50  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17aa63) [0x7f562978ca63]
#51  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17c51e) [0x7f562978e51e]
#52  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x4ec3) [0x7f5629794563]
#53  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17aa63) [0x7f562978ca63]
#54  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17c51e) [0x7f562978e51e]
#55  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x4ec3) [0x7f5629794563]
#56  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17aa63) [0x7f562978ca63]
#57  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyFunction_FastCallDict+0x2d5) [0x7f562978e085]
#58  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyObject_FastCallDict+0x131) [0x7f5629879211]
#59  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyObject_CallMethodIdObjArgs+0xe6) [0x7f5629879576]
#60  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(PyImport_ImportModuleLevelObject+0x45c) [0x7f5629682b2c]
#61  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x77ca) [0x7f5629796e6a]
#62  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17bc6f) [0x7f562978dc6f]
#63  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(PyEval_EvalCodeEx+0x3e) [0x7f562978e72e]
#64  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(PyEval_EvalCode+0x1b) [0x7f562978f4ab]
#65  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x1887bd) [0x7f562979a7bd]
#66  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(PyCFunction_Call+0xc1) [0x7f56298259a1]
#67  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x76e0) [0x7f5629796d80]
#68  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17bc6f) [0x7f562978dc6f]
#69  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17c35c) [0x7f562978e35c]
#70  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x4ec3) [0x7f5629794563]
#71  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17aa63) [0x7f562978ca63]
#72  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17c51e) [0x7f562978e51e]
#73  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x4ec3) [0x7f5629794563]
#74  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17aa63) [0x7f562978ca63]
#75  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17c51e) [0x7f562978e51e]
#76  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x4ec3) [0x7f5629794563]
#77  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17aa63) [0x7f562978ca63]
#78  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17c51e) [0x7f562978e51e]
#79  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x4ec3) [0x7f5629794563]
#80  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17aa63) [0x7f562978ca63]
#81  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyFunction_FastCallDict+0x2d5) [0x7f562978e085]
#82  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyObject_FastCallDict+0x131) [0x7f5629879211]
#83  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyObject_CallMethodIdObjArgs+0xe6) [0x7f5629879576]
#84  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(PyImport_ImportModuleLevelObject+0x45c) [0x7f5629682b2c]
#85  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x77ca) [0x7f5629796e6a]
#86  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17bc6f) [0x7f562978dc6f]
#87  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(PyEval_EvalCodeEx+0x3e) [0x7f562978e72e]
#88  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x23bfab) [0x7f562984dfab]
#89  /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(PyObject_Call+0x48) [0x7f56298799a8]
#90  0x7f5625324e52 in PySide::SignalManager::callPythonMetaMethod(QMetaMethod const&, void**, _object*, bool) from /usr/lib/x86_64-linux-gnu/libpyside2.cpython-36m-x86_64-linux-gnu.so.5.11+0x82
#91  /usr/lib/x86_64-linux-gnu/libpyside2.cpython-36m-x86_64-linux-gnu.so.5.11(+0x1981d) [0x7f562532c81d]
#92  0x7f56281d0619 in QMetaObject::activate(QObject*, int, int, void**) from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x929
#93  0x7f562af05185 in Gui::MainWindow::workbenchActivated(QString const&) from /usr/lib/freecad-daily-python3/lib/libFreeCADGui.so+0x35
#94  0x7f562af05dcc in Gui::MainWindow::activateWorkbench(QString const&) from /usr/lib/freecad-daily-python3/lib/libFreeCADGui.so+0xdc
#95  0x7f562aade8b8 in Gui::Application::activateWorkbench(char const*) from /usr/lib/freecad-daily-python3/lib/libFreeCADGui.so+0xbf8
#96  0x7f562aae1390 in Gui::Application::runApplication() from /usr/lib/freecad-daily-python3/lib/libFreeCADGui.so+0x10b0
#97  freecad-daily(main+0x702) [0x55e9b40346f2]
#98  /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xe7) [0x7f56275a6b97]
#99  freecad-daily(_start+0x2a) [0x55e9b40353ea]

You are using 0.19.20406. Right?

Well, it’s the latest release of freecad-daily ppa. I don’t know how to know the revision version :frowning:

I will try the latest AppImage…

This version released today. Maybe you can try app image version from GitHub :slight_smile:

Hi, I have installed the modern ui module, but when I enter freecad and display the toolbars, the part I mark in green still takes up space either when displaying the tools or when collapsing them. Any suggestions?
FreeCAD Modern UI.png