diff --git a/src/Gui/Control.cpp b/src/Gui/Control.cpp index f5ca988cc..351d9b75c 100644 --- a/src/Gui/Control.cpp +++ b/src/Gui/Control.cpp @@ -24,6 +24,7 @@ #include "PreCompiled.h" #ifndef _PreComp_ +# include # include # include #endif @@ -93,8 +94,18 @@ void ControlSingleton::showModelView() void ControlSingleton::showDialog(Gui::TaskView::TaskDialog *dlg) { - // only one dialog at a time - assert(!ActiveDialog || ActiveDialog==dlg); + // only one dialog at a time, print a warning instead of raising an assert + if (ActiveDialog && ActiveDialog != dlg) { + if (dlg) { + qWarning() << "ControlSingleton::showDialog: Can't show " + << dlg->metaObject()->className() + << " since there is already an active task dialog"; + } + else { + qWarning() << "ControlSingleton::showDialog: Task dialog is null"; + } + return; + } Gui::DockWnd::CombiView* pcCombiView = qobject_cast (Gui::DockWindowManager::instance()->getDockWindow("Combo View")); // should return the pointer to combo view diff --git a/src/Mod/Drawing/Gui/Command.cpp b/src/Mod/Drawing/Gui/Command.cpp index 6788db540..15c484d90 100644 --- a/src/Mod/Drawing/Gui/Command.cpp +++ b/src/Mod/Drawing/Gui/Command.cpp @@ -298,7 +298,7 @@ void CmdDrawingNewView::activated(int iMsg) // Drawing_OrthoView //=========================================================================== -DEF_STD_CMD(CmdDrawingOrthoViews); +DEF_STD_CMD_A(CmdDrawingOrthoViews); CmdDrawingOrthoViews::CmdDrawingOrthoViews() : Command("Drawing_OrthoViews") @@ -331,6 +331,13 @@ void CmdDrawingOrthoViews::activated(int iMsg) Gui::Control().showDialog(new TaskDlgOrthoViews()); } +bool CmdDrawingOrthoViews::isActive(void) +{ + if (Gui::Control().activeDialog()) + return false; + return true; +} + //=========================================================================== // Drawing_OpenBrowserView