diff --git a/src/Gui/Control.cpp b/src/Gui/Control.cpp index 351d9b75c2..9488fffa3c 100644 --- a/src/Gui/Control.cpp +++ b/src/Gui/Control.cpp @@ -24,6 +24,7 @@ #include "PreCompiled.h" #ifndef _PreComp_ +# include # include # include # include @@ -162,6 +163,37 @@ Gui::TaskView::TaskDialog* ControlSingleton::activeDialog() const return ActiveDialog; } +Gui::TaskView::TaskView* ControlSingleton::getTaskPanel() +{ + // should return the pointer to combo view + Gui::DockWnd::CombiView* pcCombiView = qobject_cast + (Gui::DockWindowManager::instance()->getDockWindow("Combo View")); + if (pcCombiView) + return pcCombiView->getTaskPanel(); + else + return _taskPanel; +} + +void ControlSingleton::accept() +{ + Gui::TaskView::TaskView* taskPanel = getTaskPanel(); + if (taskPanel) { + taskPanel->accept(); + qApp->processEvents(QEventLoop::ExcludeUserInputEvents | + QEventLoop::ExcludeSocketNotifiers); + } +} + +void ControlSingleton::reject() +{ + Gui::TaskView::TaskView* taskPanel = getTaskPanel(); + if (taskPanel) { + taskPanel->reject(); + qApp->processEvents(QEventLoop::ExcludeUserInputEvents | + QEventLoop::ExcludeSocketNotifiers); + } +} + void ControlSingleton::closeDialog() { Gui::DockWnd::CombiView* pcCombiView = qobject_cast diff --git a/src/Gui/Control.h b/src/Gui/Control.h index a6ec100996..d9c589096a 100644 --- a/src/Gui/Control.h +++ b/src/Gui/Control.h @@ -82,6 +82,8 @@ public: bool isAllowedAlterSelection(void) const; public Q_SLOTS: + void accept(); + void reject(); void closeDialog(); /// raises the task view panel void showTaskView(); @@ -90,6 +92,9 @@ private Q_SLOTS: /// This get called by the TaskView when the Dialog is finished void closedDialog(); +private: + Gui::TaskView::TaskView *getTaskPanel(); + private: struct status { std::bitset<32> StatusBits; diff --git a/src/Mod/Fem/Gui/ViewProviderFemConstraintBearing.cpp b/src/Mod/Fem/Gui/ViewProviderFemConstraintBearing.cpp index 7e8073da85..f30c64ce2c 100644 --- a/src/Mod/Fem/Gui/ViewProviderFemConstraintBearing.cpp +++ b/src/Mod/Fem/Gui/ViewProviderFemConstraintBearing.cpp @@ -77,7 +77,7 @@ bool ViewProviderFemConstraintBearing::setEdit(int ModNum) msgBox.setDefaultButton(QMessageBox::Yes); int ret = msgBox.exec(); if (ret == QMessageBox::Yes) - Gui::Control().closeDialog(); + Gui::Control().reject(); else return false; } else if (constraintDialog != NULL) { diff --git a/src/Mod/Fem/Gui/ViewProviderFemConstraintFixed.cpp b/src/Mod/Fem/Gui/ViewProviderFemConstraintFixed.cpp index 10093317a5..c4358dfa38 100644 --- a/src/Mod/Fem/Gui/ViewProviderFemConstraintFixed.cpp +++ b/src/Mod/Fem/Gui/ViewProviderFemConstraintFixed.cpp @@ -77,7 +77,7 @@ bool ViewProviderFemConstraintFixed::setEdit(int ModNum) msgBox.setDefaultButton(QMessageBox::Yes); int ret = msgBox.exec(); if (ret == QMessageBox::Yes) - Gui::Control().closeDialog(); + Gui::Control().reject(); else return false; } else if (constraintDialog != NULL) { diff --git a/src/Mod/Fem/Gui/ViewProviderFemConstraintForce.cpp b/src/Mod/Fem/Gui/ViewProviderFemConstraintForce.cpp index 55b9510151..4d1ac8c2a2 100644 --- a/src/Mod/Fem/Gui/ViewProviderFemConstraintForce.cpp +++ b/src/Mod/Fem/Gui/ViewProviderFemConstraintForce.cpp @@ -77,7 +77,7 @@ bool ViewProviderFemConstraintForce::setEdit(int ModNum) msgBox.setDefaultButton(QMessageBox::Yes); int ret = msgBox.exec(); if (ret == QMessageBox::Yes) - Gui::Control().closeDialog(); + Gui::Control().reject(); else return false; } else if (constraintDialog != NULL) { diff --git a/src/Mod/Fem/Gui/ViewProviderFemConstraintGear.cpp b/src/Mod/Fem/Gui/ViewProviderFemConstraintGear.cpp index aa4d471886..63a8c84811 100644 --- a/src/Mod/Fem/Gui/ViewProviderFemConstraintGear.cpp +++ b/src/Mod/Fem/Gui/ViewProviderFemConstraintGear.cpp @@ -76,7 +76,7 @@ bool ViewProviderFemConstraintGear::setEdit(int ModNum) msgBox.setDefaultButton(QMessageBox::Yes); int ret = msgBox.exec(); if (ret == QMessageBox::Yes) - Gui::Control().closeDialog(); + Gui::Control().reject(); else return false; } else if (constraintDialog != NULL) { diff --git a/src/Mod/Fem/Gui/ViewProviderFemConstraintPulley.cpp b/src/Mod/Fem/Gui/ViewProviderFemConstraintPulley.cpp index 584bc0bb9d..3b93683ec2 100644 --- a/src/Mod/Fem/Gui/ViewProviderFemConstraintPulley.cpp +++ b/src/Mod/Fem/Gui/ViewProviderFemConstraintPulley.cpp @@ -75,7 +75,7 @@ bool ViewProviderFemConstraintPulley::setEdit(int ModNum) msgBox.setDefaultButton(QMessageBox::Yes); int ret = msgBox.exec(); if (ret == QMessageBox::Yes) - Gui::Control().closeDialog(); + Gui::Control().reject(); else return false; } else if (constraintDialog != NULL) { diff --git a/src/Mod/PartDesign/Gui/ViewProviderChamfer.cpp b/src/Mod/PartDesign/Gui/ViewProviderChamfer.cpp index 080d78af03..0f9d924aa9 100644 --- a/src/Mod/PartDesign/Gui/ViewProviderChamfer.cpp +++ b/src/Mod/PartDesign/Gui/ViewProviderChamfer.cpp @@ -75,7 +75,7 @@ bool ViewProviderChamfer::setEdit(int ModNum) msgBox.setDefaultButton(QMessageBox::Yes); int ret = msgBox.exec(); if (ret == QMessageBox::Yes) - Gui::Control().closeDialog(); + Gui::Control().reject(); else return false; } diff --git a/src/Mod/PartDesign/Gui/ViewProviderDraft.cpp b/src/Mod/PartDesign/Gui/ViewProviderDraft.cpp index b548c7897d..06f8c3081e 100644 --- a/src/Mod/PartDesign/Gui/ViewProviderDraft.cpp +++ b/src/Mod/PartDesign/Gui/ViewProviderDraft.cpp @@ -75,7 +75,7 @@ bool ViewProviderDraft::setEdit(int ModNum) msgBox.setDefaultButton(QMessageBox::Yes); int ret = msgBox.exec(); if (ret == QMessageBox::Yes) - Gui::Control().closeDialog(); + Gui::Control().reject(); else return false; } diff --git a/src/Mod/PartDesign/Gui/ViewProviderFillet.cpp b/src/Mod/PartDesign/Gui/ViewProviderFillet.cpp index a73a443df1..90952f698e 100644 --- a/src/Mod/PartDesign/Gui/ViewProviderFillet.cpp +++ b/src/Mod/PartDesign/Gui/ViewProviderFillet.cpp @@ -75,7 +75,7 @@ bool ViewProviderFillet::setEdit(int ModNum) msgBox.setDefaultButton(QMessageBox::Yes); int ret = msgBox.exec(); if (ret == QMessageBox::Yes) - Gui::Control().closeDialog(); + Gui::Control().reject(); else return false; } diff --git a/src/Mod/PartDesign/Gui/ViewProviderGroove.cpp b/src/Mod/PartDesign/Gui/ViewProviderGroove.cpp index d329d9d814..9771feb55c 100644 --- a/src/Mod/PartDesign/Gui/ViewProviderGroove.cpp +++ b/src/Mod/PartDesign/Gui/ViewProviderGroove.cpp @@ -82,7 +82,7 @@ bool ViewProviderGroove::setEdit(int ModNum) msgBox.setDefaultButton(QMessageBox::Yes); int ret = msgBox.exec(); if (ret == QMessageBox::Yes) - Gui::Control().closeDialog(); + Gui::Control().reject(); else return false; } diff --git a/src/Mod/PartDesign/Gui/ViewProviderPad.cpp b/src/Mod/PartDesign/Gui/ViewProviderPad.cpp index 9da548d3a8..991cbfd301 100644 --- a/src/Mod/PartDesign/Gui/ViewProviderPad.cpp +++ b/src/Mod/PartDesign/Gui/ViewProviderPad.cpp @@ -87,7 +87,7 @@ bool ViewProviderPad::setEdit(int ModNum) msgBox.setDefaultButton(QMessageBox::Yes); int ret = msgBox.exec(); if (ret == QMessageBox::Yes) - Gui::Control().closeDialog(); + Gui::Control().reject(); else return false; } diff --git a/src/Mod/PartDesign/Gui/ViewProviderPocket.cpp b/src/Mod/PartDesign/Gui/ViewProviderPocket.cpp index e7d0fa3c02..4b70b838c8 100644 --- a/src/Mod/PartDesign/Gui/ViewProviderPocket.cpp +++ b/src/Mod/PartDesign/Gui/ViewProviderPocket.cpp @@ -82,7 +82,7 @@ bool ViewProviderPocket::setEdit(int ModNum) msgBox.setDefaultButton(QMessageBox::Yes); int ret = msgBox.exec(); if (ret == QMessageBox::Yes) - Gui::Control().closeDialog(); + Gui::Control().reject(); else return false; } diff --git a/src/Mod/PartDesign/Gui/ViewProviderRevolution.cpp b/src/Mod/PartDesign/Gui/ViewProviderRevolution.cpp index c25be8340d..5715b02315 100644 --- a/src/Mod/PartDesign/Gui/ViewProviderRevolution.cpp +++ b/src/Mod/PartDesign/Gui/ViewProviderRevolution.cpp @@ -82,7 +82,7 @@ bool ViewProviderRevolution::setEdit(int ModNum) msgBox.setDefaultButton(QMessageBox::Yes); int ret = msgBox.exec(); if (ret == QMessageBox::Yes) - Gui::Control().closeDialog(); + Gui::Control().reject(); else return false; } diff --git a/src/Mod/PartDesign/Gui/ViewProviderTransformed.cpp b/src/Mod/PartDesign/Gui/ViewProviderTransformed.cpp index a28609bc86..1e2ac6c123 100644 --- a/src/Mod/PartDesign/Gui/ViewProviderTransformed.cpp +++ b/src/Mod/PartDesign/Gui/ViewProviderTransformed.cpp @@ -178,7 +178,7 @@ const bool ViewProviderTransformed::checkDlgOpen(TaskDlgTransformedParameters* t msgBox.setDefaultButton(QMessageBox::Yes); int ret = msgBox.exec(); if (ret == QMessageBox::Yes) - Gui::Control().closeDialog(); + Gui::Control().reject(); else return false; } diff --git a/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp b/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp index b51ef41be8..4c07947fd6 100644 --- a/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp +++ b/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp @@ -2991,7 +2991,7 @@ bool ViewProviderSketch::setEdit(int ModNum) msgBox.setDefaultButton(QMessageBox::Yes); int ret = msgBox.exec(); if (ret == QMessageBox::Yes) - Gui::Control().closeDialog(); + Gui::Control().reject(); else return false; }