38 lines
1.6 KiB
Python
38 lines
1.6 KiB
Python
# Avoid garbage collection by storing the action in a global variable
|
|
wax = None
|
|
sea = None
|
|
tbr = None
|
|
|
|
def addToolSearchBox():
|
|
import FreeCADGui
|
|
from PySide import QtGui
|
|
import SearchBoxLight
|
|
global wax, sea, tbr
|
|
mw = FreeCADGui.getMainWindow()
|
|
if mw:
|
|
if sea is None:
|
|
sea = SearchBoxLight.SearchBoxLight(getItemGroups = lambda: __import__('GetItemGroups').getItemGroups(),
|
|
getToolTip = lambda groupId, setParent: __import__('GetItemGroups').getToolTip(groupId, setParent),
|
|
getItemDelegate = lambda: __import__('IndentedItemDelegate').IndentedItemDelegate())
|
|
sea.resultSelected.connect(lambda index, groupId: __import__('GetItemGroups').onResultSelected(index, groupId))
|
|
|
|
if wax is None:
|
|
wax = QtGui.QWidgetAction(None)
|
|
wax.setWhatsThis('Use this search bar to find tools, document objects, preferences and more')
|
|
|
|
sea.setWhatsThis('Use this search bar to find tools, document objects, preferences and more')
|
|
wax.setDefaultWidget(sea)
|
|
##mbr.addWidget(sea)
|
|
#mbr.addAction(wax)
|
|
if tbr is None:
|
|
tbr = QtGui.QToolBar("SearchBar") #QtGui.QDockWidget()
|
|
# Include FreeCAD in the name so that one can find windows labeled with FreeCAD easily in window managers which allow search through the list of open windows.
|
|
tbr.setObjectName("SearchBar")
|
|
tbr.addAction(wax)
|
|
mw.addToolBar(tbr)
|
|
tbr.show()
|
|
|
|
addToolSearchBox()
|
|
import FreeCADGui
|
|
FreeCADGui.getMainWindow().workbenchActivated.connect(addToolSearchBox)
|