prepare view provider for undo/redo

This commit is contained in:
wmayer
2016-06-18 21:03:13 +02:00
parent 7f2b54d48e
commit 3d16ae0f04
18 changed files with 498 additions and 102 deletions

View File

@@ -42,7 +42,7 @@
#include "MDIView.h"
#include "TaskView/TaskAppearance.h"
#include "ViewProviderDocumentObject.h"
#include "ViewProviderDocumentObjectPy.h"
#include <Gui/ViewProviderDocumentObjectPy.h>
using namespace Gui;
@@ -79,6 +79,28 @@ void ViewProviderDocumentObject::finishRestoring()
{
}
bool ViewProviderDocumentObject::isAttachedToDocument() const
{
App::DocumentObject* obj = getObject();
bool ok = obj ? obj->isAttachedToDocument() : false;
return ok;
}
const char* ViewProviderDocumentObject::detachFromDocument()
{
App::DocumentObject* obj = getObject();
return obj ? obj->getNameInDocument() : 0;
}
void ViewProviderDocumentObject::onBeforeChange(const App::Property* prop)
{
App::DocumentObject* obj = getObject();
App::Document* doc = obj ? obj->getDocument() : 0;
if (doc) {
onBeforeChangeProperty(doc, prop);
}
}
void ViewProviderDocumentObject::onChanged(const App::Property* prop)
{
if (prop == &DisplayMode) {
@@ -156,25 +178,25 @@ void ViewProviderDocumentObject::attach(App::DocumentObject *pcObj)
if (defmode)
DisplayMode.setValue(defmode);
}
Gui::MDIView* ViewProviderDocumentObject::getActiveView() const
{
Gui::MDIView* ViewProviderDocumentObject::getActiveView() const
{
App::Document* pAppDoc = pcObject->getDocument();
Gui::Document* pGuiDoc = Gui::Application::Instance->getDocument(pAppDoc);
return pGuiDoc->getActiveView();
}
Gui::Document* pGuiDoc = Gui::Application::Instance->getDocument(pAppDoc);
return pGuiDoc->getActiveView();
}
Gui::MDIView* ViewProviderDocumentObject::getEditingView() const
{
App::Document* pAppDoc = pcObject->getDocument();
Gui::Document* pGuiDoc = Gui::Application::Instance->getDocument(pAppDoc);
Gui::Document* pGuiDoc = Gui::Application::Instance->getDocument(pAppDoc);
return pGuiDoc->getEditingViewOfViewProvider(const_cast<ViewProviderDocumentObject*>(this));
}
Gui::MDIView* ViewProviderDocumentObject::getInventorView() const
{
App::Document* pAppDoc = pcObject->getDocument();
Gui::Document* pGuiDoc = Gui::Application::Instance->getDocument(pAppDoc);
Gui::Document* pGuiDoc = Gui::Application::Instance->getDocument(pAppDoc);
Gui::MDIView* mdi = pGuiDoc->getEditingViewOfViewProvider(const_cast<ViewProviderDocumentObject*>(this));
if (!mdi) {