[MeasureGui] Use temporary measure object creation (#15122)
* MeasureGui: Store measure type in TaskMeasure * MeasureGui: Avoid adding measurement to document during command interaction * [Gui] Add check for document in VPDocumentObject::getActiveView * MeasureGui: Track the document when adding objects * MeasureGui: Cleanup python measurement creation * [Gui] Add isAnnotationViewProvider method * [Gui] Check if viewprovider is added as an annotation in getActiveView * [Gui] Add takeAnnotationViewprovider method to Gui::Document * [Gui] Make addViewProvider public * [MeasureGui] Add existing view provider to document when storing measurement * [MeasureGui] Fix invocation of initial label placement * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
This commit is contained in:
@@ -401,6 +401,18 @@ Gui::MDIView* ViewProviderDocumentObject::getActiveView() const
|
||||
{
|
||||
if(!pcObject)
|
||||
throw Base::RuntimeError("View provider detached");
|
||||
|
||||
if (!pcObject->isAttachedToDocument()) {
|
||||
// Check if view provider is attached to a document as an annotation
|
||||
for (auto doc : App::GetApplication().getDocuments()) {
|
||||
auto guiDoc = Gui::Application::Instance->getDocument(doc);
|
||||
if (guiDoc->isAnnotationViewProvider(this)) {
|
||||
return guiDoc->getActiveView();
|
||||
}
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
App::Document* pAppDoc = pcObject->getDocument();
|
||||
Gui::Document* pGuiDoc = Gui::Application::Instance->getDocument(pAppDoc);
|
||||
return pGuiDoc->getActiveView();
|
||||
|
||||
Reference in New Issue
Block a user