diff --git a/src/Mod/Draft/InitGui.py b/src/Mod/Draft/InitGui.py index f05b5af564..ee5431fd0b 100644 --- a/src/Mod/Draft/InitGui.py +++ b/src/Mod/Draft/InitGui.py @@ -165,12 +165,8 @@ class DraftWorkbench(FreeCADGui.Workbench): FreeCADGui.draftToolBar.Deactivated() if hasattr(FreeCADGui, "Snapper"): FreeCADGui.Snapper.hide() - from PySide import QtCore from draftutils import init_draft_statusbar - # Delay required in case the Draft WB is preloaded, - # else show_draft_statusbar will not yet be done: - t = QtCore.QTimer() - t.singleShot(700, init_draft_statusbar.hide_draft_statusbar) + init_draft_statusbar.hide_draft_statusbar() import WorkingPlane WorkingPlane._view_observer_stop() from draftutils import grid_observer diff --git a/src/Mod/Draft/draftutils/init_draft_statusbar.py b/src/Mod/Draft/draftutils/init_draft_statusbar.py index 8546edeb15..43ef0b63fd 100644 --- a/src/Mod/Draft/draftutils/init_draft_statusbar.py +++ b/src/Mod/Draft/draftutils/init_draft_statusbar.py @@ -287,6 +287,38 @@ def init_draft_statusbar_snap(): snap_action.addAction(Gui.Command.get(cmd).getAction()[0]) +def hide_draft_statusbar_scale(): + """ + hides draft statusbar scale widget + """ + mw = Gui.getMainWindow() + sb = mw.statusBar() + + scale_widget = sb.findChild(QtWidgets.QToolBar, "draft_scale_widget") + if scale_widget is None: + # when switching workbenches, the toolbar sometimes "jumps" + # out of the status bar to any other dock area... + scale_widget = mw.findChild(QtWidgets.QToolBar, "draft_scale_widget") + if scale_widget: + scale_widget.hide() + + +def hide_draft_statusbar_snap(): + """ + hides draft statusbar snap widget + """ + mw = Gui.getMainWindow() + sb = mw.statusBar() + + snap_widget = sb.findChild(QtWidgets.QToolBar,"draft_snap_widget") + if snap_widget is None: + # when switching workbenches, the toolbar sometimes "jumps" + # out of the status bar to any other dock area... + snap_widget = mw.findChild(QtWidgets.QToolBar,"draft_snap_widget") + if snap_widget: + snap_widget.hide() + + def show_draft_statusbar(): """ shows draft statusbar if present or initializes it @@ -327,25 +359,10 @@ def hide_draft_statusbar(): """ hides draft statusbar if present """ - mw = Gui.getMainWindow() - sb = mw.statusBar() - - # hide scale widget - scale_widget = sb.findChild(QtWidgets.QToolBar, "draft_scale_widget") - if scale_widget is None: - # when switching workbenches, the toolbar sometimes "jumps" - # out of the status bar to any other dock area... - scale_widget = mw.findChild(QtWidgets.QToolBar, "draft_scale_widget") - if scale_widget: - scale_widget.hide() - - # hide snap widget - snap_widget = sb.findChild(QtWidgets.QToolBar,"draft_snap_widget") - if snap_widget is None: - # when switching workbenches, the toolbar sometimes "jumps" - # out of the status bar to any other dock area... - snap_widget = mw.findChild(QtWidgets.QToolBar,"draft_snap_widget") - if snap_widget: - snap_widget.hide() + # Delay required in case the Draft WB is autoloaded, + # else show_draft_statusbar will not yet be done. + t = QtCore.QTimer() + t.singleShot(500, hide_draft_statusbar_scale) + t.singleShot(500, hide_draft_statusbar_snap) ## @}