Modern UI

Hi everyone I ported Tabbar Preferences. You can close or open tabs. Other functions not working for now. Restart to see changes.


Preferences.png



If you still interest I need a settings icon.

Added options to file menu.



FileMenu.png

Is it possible to show only icons (maybe user setting) or at least shortened texts? Shorten text to N symbols for example. This way it will be possible for all Sketcher tools to be visible in one screen and no need to scroll left/right.
Another thing: I added https://github.com/HakanSeven12/Modern-UI to Addon manager paths to install from there. When it is installed the following is displayed in Report View:

Traceback (most recent call last):
  File "E:\New Download\FreeCAD\_FreeCAD_x64\Mod\AddonManager\addonmanager_workers.py", line 662, in run
    utils.symlink(os.path.join(clonedir, f), os.path.join(macro_dir, f))
  File "E:\New Download\FreeCAD\_FreeCAD_x64\Mod\AddonManager\addonmanager_utilities.py", line 73, in symlink
    os_symlink(source, link_name)
OSError: symbolic link privilege not held

and Addon Manager looks like stalled. Pressing the Cancel button exits properly. After restart Addon works Ok as far as I can see.

OS: Windows 8.1 (6.3)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.20477 (Git)
Build type: Release
Branch: master
Hash: 7d8ab175a68e476427e6e337fe3099b52da49dc8
Python version: 3.6.8
Qt version: 5.12.1
Coin version: 4.0.0a
OCC version: 7.3.0
Locale: Bulgarian/Bulgaria (bg_BG)

Yes I will add an option to show only icons

Which one is better?



groupbox.png
ModernUI.png

+1 for the first image

+1 for the first too



Okay. First one.

On Win, 20477 can’t start.

Just wondering if you could have a config file to decide which wb is not loaded at start. Or fc could do it by itself already. Some WBs you never use.

send error code.

I already added a setting for that. Click modern settings at the bottom.


FileMenu.png

un.jpg

I mean start freecad from console.



C:\FreeCAD_0.19.20477\bin>freecad

Nothing happend.

Try freecadcmd.exe at the same folder

Hello, will it be available as a workbench or will it be merged with the main branch of freecad?

If developers want this we can merge it.





For me it causes a segfault:

FreeCAD 0.19, Libs: 0.19R20492 (Git)
© 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.

#### ###

# # # #

## #### #### # # # #

# # # # # # # ##### #

# #### #### # # # #

# # # # # # # # ## ##

# #### #### ### # # #### ## ##

ModernUI is enabled
Program received signal SIGSEGV, Segmentation fault.
#0 /lib/x86_64-linux-gnu/libc.so.6(+0x3ef20) [0x7fda9f722f20]
#1 /usr/lib/x86_64-linux-gnu/libshiboken2.cpython-36m-x86_64-linux-gnu.so.5.11(+0xa668) [0x7fda9d8b1668]
#2 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x135375) [0x7fdaa18a6375]
#3 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyObject_GC_Malloc+0xe3) [0x7fdaa18a7073]
#4 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyObject_GC_NewVar+0x2a) [0x7fdaa18a70ea]
#5 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(PyTuple_New+0x68) [0x7fdaa196e188]
#6 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x158868) [0x7fdaa18c9868]
#7 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x1594af) [0x7fdaa18ca4af]
#8 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x158891) [0x7fdaa18c9891]
#9 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x159499) [0x7fdaa18ca499]
#10 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x158891) [0x7fdaa18c9891]
#11 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x159499) [0x7fdaa18ca499]
#12 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x15a588) [0x7fdaa18cb588]
#13 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyCFunction_FastCallDict+0x1bb) [0x7fdaa198477b]
#14 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17c44c) [0x7fdaa18ed44c]
#15 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x4ec3) [0x7fdaa18f3563]
#16 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17bc6f) [0x7fdaa18ecc6f]
#17 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17c35c) [0x7fdaa18ed35c]
#18 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x3c95) [0x7fdaa18f2335]
#19 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17aa63) [0x7fdaa18eba63]
#20 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17c51e) [0x7fdaa18ed51e]
#21 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x4ec3) [0x7fdaa18f3563]
#22 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17aa63) [0x7fdaa18eba63]
#23 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17c51e) [0x7fdaa18ed51e]
#24 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x4ec3) [0x7fdaa18f3563]
#25 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17aa63) [0x7fdaa18eba63]
#26 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17c51e) [0x7fdaa18ed51e]
#27 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x4ec3) [0x7fdaa18f3563]
#28 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17aa63) [0x7fdaa18eba63]
#29 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17c51e) [0x7fdaa18ed51e]
#30 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x4ec3) [0x7fdaa18f3563]
#31 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17aa63) [0x7fdaa18eba63]
#32 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyFunction_FastCallDict+0x2d5) [0x7fdaa18ed085]
#33 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyObject_FastCallDict+0x131) [0x7fdaa19d8211]
#34 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyObject_CallMethodIdObjArgs+0xe6) [0x7fdaa19d8576]
#35 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(PyImport_ImportModuleLevelObject+0x45c) [0x7fdaa17e1b2c]
#36 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x77ca) [0x7fdaa18f5e6a]
#37 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17bc6f) [0x7fdaa18ecc6f]
#38 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(PyEval_EvalCodeEx+0x3e) [0x7fdaa18ed72e]
#39 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(PyEval_EvalCode+0x1b) [0x7fdaa18ee4ab]
#40 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x1887bd) [0x7fdaa18f97bd]
#41 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(PyCFunction_Call+0xc1) [0x7fdaa19849a1]
#42 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x76e0) [0x7fdaa18f5d80]
#43 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17bc6f) [0x7fdaa18ecc6f]
#44 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17c35c) [0x7fdaa18ed35c]
#45 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x4ec3) [0x7fdaa18f3563]
#46 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17aa63) [0x7fdaa18eba63]
#47 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17c51e) [0x7fdaa18ed51e]
#48 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x4ec3) [0x7fdaa18f3563]
#49 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17aa63) [0x7fdaa18eba63]
#50 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17c51e) [0x7fdaa18ed51e]
#51 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x4ec3) [0x7fdaa18f3563]
#52 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17aa63) [0x7fdaa18eba63]
#53 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17c51e) [0x7fdaa18ed51e]
#54 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x4ec3) [0x7fdaa18f3563]
#55 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17aa63) [0x7fdaa18eba63]
#56 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyFunction_FastCallDict+0x2d5) [0x7fdaa18ed085]
#57 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyObject_FastCallDict+0x131) [0x7fdaa19d8211]
#58 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyObject_CallMethodIdObjArgs+0xe6) [0x7fdaa19d8576]
#59 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(PyImport_ImportModuleLevelObject+0x45c) [0x7fdaa17e1b2c]
#60 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x186a58) [0x7fdaa18f7a58]
#61 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(PyCFunction_Call+0x96) [0x7fdaa1984976]
#62 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x76e0) [0x7fdaa18f5d80]
#63 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17bc6f) [0x7fdaa18ecc6f]
#64 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17c35c) [0x7fdaa18ed35c]
#65 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x4ec3) [0x7fdaa18f3563]
#66 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17aa63) [0x7fdaa18eba63]
#67 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17c51e) [0x7fdaa18ed51e]
#68 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x4ec3) [0x7fdaa18f3563]
#69 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17aa63) [0x7fdaa18eba63]
#70 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyFunction_FastCallDict+0x2d5) [0x7fdaa18ed085]
#71 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyObject_FastCallDict+0x131) [0x7fdaa19d8211]
#72 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyObject_CallMethodIdObjArgs+0xe6) [0x7fdaa19d8576]
#73 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(PyImport_ImportModuleLevelObject+0x45c) [0x7fdaa17e1b2c]
#74 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x77ca) [0x7fdaa18f5e6a]
#75 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17aa63) [0x7fdaa18eba63]
#76 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyFunction_FastCallDict+0x2d5) [0x7fdaa18ed085]
#77 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyObject_FastCallDict+0x131) [0x7fdaa19d8211]
#78 /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(PyErr_PrintEx+0xdd) [0x7fdaa18c07fd]
#79 /usr/lib/x86_64-linux-gnu/libpyside2.cpython-36m-x86_64-linux-gnu.so.5.11(+0x19770) [0x7fda9d68f770]
#80 0x7fdaa032f619 in QMetaObject::activate(QObject*, int, int, void**) from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x929
#81 0x7fdaa49b533c in Gui::MainWindow::workbenchActivated(QString const&) from /home/freecad/build_gcc/lib/libFreeCADGui.so+0x56
#82 0x7fdaa49aab40 in Gui::MainWindow::activateWorkbench(QString const&) from /home/freecad/build_gcc/lib/libFreeCADGui.so+0x156
#83 0x7fdaa431c97c in Gui::Application::activateWorkbench(char const*) from /home/freecad/build_gcc/lib/libFreeCADGui.so+0x864
#84 0x7fdaa43219d1 in Gui::Application::runApplication() from /home/freecad/build_gcc/lib/libFreeCADGui.so+0x1f0f
#85 ./bin/FreeCAD(main+0xb36) [0x5619d24d69dd]
#86 /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xe7) [0x7fda9f705b97]
#87 ./bin/FreeCAD(_start+0x2a) [0x5619d24d5caa]



If developers want this we can merge it.

The code is under GPLv3 so no way to merge it into the master branch.

I don’t know why but some releases couse this problem mostly on ppa or lp versions. The other versions working well.

The code is under GPLv3 so no way to merge it into the master branch.

The PyQtRibbon is under gplv3.

Is there no way?
license.png

FreeCAD must change to gpl3 if we include gpl3 software. It’s a dilemma for years (libredwg, solvespace, …) I guess the problem with the gpl3 license is that there exist extensions of FreeCAD which are commercially used and not open-sourced. If FreeCAD moves to gpl3 any fork of freecad using freecad with the new license as base needs to be openly available.