Modern UI

What is the Modern UI?
Honestly I don’t like FreeCAD default UI. So I started to look for alternatives. Firstly I created a macro for collapsible docks. You can find it here: https://forum.freecadweb.org/viewtopic.php?f=22&t=44659

After that I think “why I don’t do something for toolbar?” and I started to search for a solution and find this repository: https://github.com/RoadrunnerWMC/PyQtRibbon

Finally I created this UI and merge them at one place :slight_smile:

FreeCAD Wiki
https://wiki.freecadweb.org/ModernUI_Workbench

How to install?
Open ‘Tools → Addon Manager’.
Select ‘Modern UI’ and click ‘Install/update selected’.
Restart FreeCAD.

How to uninstall?
Go to ModernUI tab.
Open ‘Tools → Addon Manager’.
Select ‘Modern UI’ and click ‘Uninstall selected’.
Restart FreeCAD.
When you restarted you don’t see any toolbar.
Create a macro.
Paste this code in to macro.

from PySide2 import QtCore, QtGui, QtWidgets
mw = FreeCADGui.getMainWindow()
mw.menuBar().show()

WBList = FreeCADGui.listWorkbenches()
for WB in WBList:
    FreeCADGui.activateWorkbench(WB)
    for tb in mw.findChildren(QtWidgets.QToolBar):
        tb.show()

Execute it.
Restart FreeCAD.


Features:
Modern Docks
Modern Menu
File Menu
Recent File Manager (WIP)



https://youtu.be/7ruU8Fnd07M




Nice!

Thanks

Fantastic!

Thanks

Interesting, will every workbench be loaded at startup or when you click the corresponding tab? I think it would slow FreeCAD down if every workbench is loaded at once.
I really like the collapsible docks idea :slight_smile: will these features be available separately?

Workbenches are loading when you clicked tab :slight_smile: collapsible docks available as macro for now

https://forum.freecadweb.org/viewtopic.php?f=22&t=44659

Nice, thank you!

You are welcome

First Test


FirstRun.png

Beautiful.

Thanks

Feature

When menu minimized if you click one tab it shows tools. If you click another area menu minimize itself.



Test3.gif

:open_mouth: :mrgreen:

That’s brilliant!

:sunglasses:

Thanks

Is there still a lag period opening workbenches that haven’t been invoked yet ?
If so, is there a ‘lazy loading’ strategy that could be used to auto-load (in the background) certain workbenches that a user is used to using?

I answered this question before :slight_smile: Its working like default UI. Workbench will be active when you select it.


Yikes, sorry i missed that. Thanks for reiterating it.

You are welcome