+ fixes #0001884: Crash when double-clicking on Clip element with drawing page closed

This commit is contained in:
wmayer 2014-12-31 13:15:33 +01:00
parent b2f8a4ed2a
commit 4d618955b3
4 changed files with 59 additions and 7 deletions

View File

@ -57,7 +57,7 @@ public:
/// returns the type name of the ViewProvider
virtual const char* getViewProviderName(void) const {
return "DrawingGui::ViewProviderDrawingPage";
return "DrawingGui::ViewProviderDrawingClip";
}
protected:

View File

@ -66,6 +66,7 @@ void DrawingGuiExport initDrawingGui()
DrawingGui::ViewProviderDrawingPage::init();
DrawingGui::ViewProviderDrawingView::init();
DrawingGui::ViewProviderDrawingClip::init();
// add resources and reloads the translators
loadDrawingResource();

View File

@ -48,11 +48,6 @@ using namespace DrawingGui;
PROPERTY_SOURCE(DrawingGui::ViewProviderDrawingView, Gui::ViewProviderDocumentObject)
//**************************************************************************
// Construction/Destruction
ViewProviderDrawingView::ViewProviderDrawingView()
{
sPixmap = "Page";
@ -84,3 +79,38 @@ std::vector<std::string> ViewProviderDrawingView::getDisplayModes(void) const
void ViewProviderDrawingView::updateData(const App::Property*)
{
}
// ----------------------------------------------------------------------------
PROPERTY_SOURCE(DrawingGui::ViewProviderDrawingClip, Gui::ViewProviderDocumentObjectGroup)
ViewProviderDrawingClip::ViewProviderDrawingClip()
{
sPixmap = "Page";
}
ViewProviderDrawingClip::~ViewProviderDrawingClip()
{
}
void ViewProviderDrawingClip::attach(App::DocumentObject *pcFeat)
{
// call parent attach method
ViewProviderDocumentObject::attach(pcFeat);
}
void ViewProviderDrawingClip::setDisplayMode(const char* ModeName)
{
ViewProviderDocumentObject::setDisplayMode(ModeName);
}
std::vector<std::string> ViewProviderDrawingClip::getDisplayModes(void) const
{
// get the modes of the father
std::vector<std::string> StrList;
return StrList;
}
void ViewProviderDrawingClip::updateData(const App::Property*)
{
}

View File

@ -25,6 +25,7 @@
#define DRAWINGGUI_VIEWPROVIDERVIEW_H
#include <Gui/ViewProviderFeature.h>
#include <Gui/ViewProviderDocumentObjectGroup.h>
namespace DrawingGui {
@ -32,7 +33,7 @@ namespace DrawingGui {
class DrawingGuiExport ViewProviderDrawingView : public Gui::ViewProviderDocumentObject
{
PROPERTY_HEADER(DrawingGui::ViewProviderDrawing);
PROPERTY_HEADER(DrawingGui::ViewProviderDrawingView);
public:
/// constructor
@ -50,6 +51,26 @@ public:
};
class DrawingGuiExport ViewProviderDrawingClip : public Gui::ViewProviderDocumentObjectGroup
{
PROPERTY_HEADER(DrawingGui::ViewProviderDrawingClip);
public:
/// constructor
ViewProviderDrawingClip();
/// destructor
virtual ~ViewProviderDrawingClip();
virtual void attach(App::DocumentObject *);
virtual void setDisplayMode(const char* ModeName);
virtual bool useNewSelectionModel(void) const {return false;}
/// returns a list of all possible modes
virtual std::vector<std::string> getDisplayModes(void) const;
virtual void updateData(const App::Property*);
};
} // namespace DrawingGui