diff --git a/src/Mod/Draft/DraftGui.py b/src/Mod/Draft/DraftGui.py index 10ed0d560..1da9a5ea4 100644 --- a/src/Mod/Draft/DraftGui.py +++ b/src/Mod/Draft/DraftGui.py @@ -179,14 +179,22 @@ class DraftToolBar: self.DECIMALS = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Units").GetInt("Decimals",2) self.FORMAT = "%." + str(self.DECIMALS) + "f mm" self.uiloader = FreeCADGui.UiLoader() - - # set default to taskbar mode - if self.taskmode == None: - self.taskmode = 1 if self.taskmode: # add only a dummy widget, since widgets are created on demand self.baseWidget = QtGui.QWidget() + self.tray = QtGui.QToolBar(None) + self.tray.setObjectName("Draft tray") + self.tray.setWindowTitle("Draft tray") + self.toptray = self.tray + self.bottomtray = self.tray + self.setupTray() + self.setupStyle() + mw = FreeCADGui.getMainWindow() + mw.addToolBar(self.tray) + self.tray.setParent(mw) + self.tray.show() + else: # create the draft Toolbar self.draftWidget = QtGui.QDockWidget() @@ -479,6 +487,8 @@ class DraftToolBar: style += "#tangentButton:Checked, #symmetricButton:checked {" style += "background-color: rgb(20,100,250) }" self.baseWidget.setStyleSheet(style) + #if hasattr(self,"tray"): + # self.tray.setStyleSheet(style) #--------------------------------------------------------------------------- @@ -1533,25 +1543,26 @@ class DraftToolBar: self.title = "Modify objects" def shouldShow(self): return (FreeCAD.ActiveDocument != None) and (FreeCADGui.Selection.getSelection() != []) - - class DraftTrayWatcher: - def __init__(self,traywidget): - self.form = traywidget - self.widgets = [self.form] - def shouldShow(self): - return True - self.traywidget = QtGui.QWidget() - self.tray = QtGui.QVBoxLayout(self.traywidget) - self.tray.setObjectName("traylayout") - self.toptray = QtGui.QHBoxLayout() - self.bottomtray = QtGui.QHBoxLayout() - self.tray.addLayout(self.toptray) - self.tray.addLayout(self.bottomtray) - self.setupTray() - self.setupStyle() - w = DraftTrayWatcher(self.traywidget) - FreeCADGui.Control.addTaskWatcher([w,DraftCreateWatcher(),DraftModifyWatcher()]) + # OBSOLETE + #class DraftTrayWatcher: + # def __init__(self,traywidget): + # self.form = traywidget + # self.widgets = [self.form] + # def shouldShow(self): + # return True + #self.traywidget = QtGui.QWidget() + #self.tray = QtGui.QVBoxLayout(self.traywidget) + #self.tray.setObjectName("traylayout") + #self.toptray = QtGui.QHBoxLayout() + #self.bottomtray = QtGui.QHBoxLayout() + #self.tray.addLayout(self.toptray) + #self.tray.addLayout(self.bottomtray) + #self.setupTray() + #self.setupStyle() + #w = DraftTrayWatcher(self.traywidget) + #FreeCADGui.Control.addTaskWatcher([w,DraftCreateWatcher(),DraftModifyWatcher()]) + FreeCADGui.Control.addTaskWatcher([DraftCreateWatcher(),DraftModifyWatcher()]) def changeEvent(self, event): if event.type() == QtCore.QEvent.LanguageChange: @@ -1561,6 +1572,8 @@ class DraftToolBar: def Activated(self): if self.taskmode: self.setWatchers() + if hasattr(self,"tray"): + self.tray.show() else: self.draftWidget.setVisible(True) self.draftWidget.toggleViewAction().setVisible(True) @@ -1571,7 +1584,9 @@ class DraftToolBar: FreeCAD.activeDraftCommand.finish() if self.taskmode: FreeCADGui.Control.clearTaskWatcher() - self.tray = None + #self.tray = None + if hasattr(self,"tray"): + self.tray.hide() else: self.draftWidget.setVisible(False) self.draftWidget.toggleViewAction().setVisible(False)