Fix crash in dtor of QGVPage
This commit is contained in:
parent
19ff06c9cd
commit
dd5b461e35
|
@ -90,10 +90,12 @@ using namespace TechDrawGui;
|
|||
|
||||
MDIViewPage::MDIViewPage(ViewProviderPage *pageVp, Gui::Document* doc, QWidget* parent)
|
||||
: Gui::MDIView(doc, parent),
|
||||
m_view(new QGVPage(pageVp)),
|
||||
//m_view(new QGVPage(pageVp)),
|
||||
pageGui(pageVp),
|
||||
m_frameState(true)
|
||||
{
|
||||
m_view = new QGVPage(pageVp,m_scene);
|
||||
|
||||
m_backgroundAction = new QAction(tr("&Background"), this);
|
||||
m_backgroundAction->setEnabled(false);
|
||||
m_backgroundAction->setCheckable(true);
|
||||
|
@ -141,7 +143,7 @@ MDIViewPage::MDIViewPage(ViewProviderPage *pageVp, Gui::Document* doc, QWidget*
|
|||
this, SLOT(setRenderer(QAction *)));
|
||||
|
||||
setWindowTitle(tr("dummy[*]")); //Yuck. prevents "QWidget::setWindowModified: The window title does not contain a '[*]' placeholder"
|
||||
setCentralWidget(m_view);
|
||||
setCentralWidget(m_view); //this makes m_view a Qt child of MDIViewPage
|
||||
|
||||
m_orientation = QPrinter::Landscape;
|
||||
m_pageSize = QPrinter::A4;
|
||||
|
@ -194,7 +196,8 @@ MDIViewPage::~MDIViewPage()
|
|||
}
|
||||
deleteItems.clear();
|
||||
|
||||
delete m_view;
|
||||
//m_view will be deleted by MDIViewPage as a Qt child
|
||||
//delete m_view;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
#include "Gui/Selection.h"
|
||||
|
||||
#include <QPrinter>
|
||||
#include <QGraphicsScene>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
class QAction;
|
||||
|
@ -79,6 +80,8 @@ public:
|
|||
|
||||
QGVPage* getQGVPage(void) {return m_view;};
|
||||
|
||||
QGraphicsScene m_scene;
|
||||
|
||||
public Q_SLOTS:
|
||||
void setRenderer(QAction *action);
|
||||
void viewAll();
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
# include <QFileInfo>
|
||||
# include <QFileDialog>
|
||||
# include <QGLWidget>
|
||||
# include <QGraphicsScene>
|
||||
//# include <QGraphicsScene>
|
||||
# include <QGraphicsEffect>
|
||||
# include <QMouseEvent>
|
||||
# include <QPainter>
|
||||
|
@ -77,7 +77,7 @@
|
|||
|
||||
using namespace TechDrawGui;
|
||||
|
||||
QGVPage::QGVPage(ViewProviderPage *vp, QWidget *parent)
|
||||
QGVPage::QGVPage(ViewProviderPage *vp, QGraphicsScene& s, QWidget *parent)
|
||||
: QGraphicsView(parent)
|
||||
, pageTemplate(0)
|
||||
, m_renderer(Native)
|
||||
|
@ -91,7 +91,7 @@ QGVPage::QGVPage(ViewProviderPage *vp, QWidget *parent)
|
|||
const char* name = vp->getPageObject()->getNameInDocument();
|
||||
setObjectName(QString::fromLocal8Bit(name));
|
||||
|
||||
setScene(new QGraphicsScene(this));
|
||||
setScene(&s);
|
||||
//setViewportUpdateMode(QGraphicsView::FullViewportUpdate);
|
||||
setCacheMode(QGraphicsView::CacheBackground);
|
||||
setTransformationAnchor(AnchorUnderMouse);
|
||||
|
@ -105,12 +105,6 @@ QGVPage::QGVPage(ViewProviderPage *vp, QWidget *parent)
|
|||
m_backgroundItem->setZValue(ZVALUE::BACKGROUND);
|
||||
// scene()->addItem(m_backgroundItem); // TODO IF SEGFAULTS WITH DRAW ENABLE THIS (REDRAWS ARE SLOWER :s)
|
||||
|
||||
// Prepare background check-board pattern
|
||||
QLinearGradient gradient;
|
||||
gradient.setStart(0, 0);
|
||||
gradient.setFinalStop(0, height());
|
||||
gradient.setColorAt(0., QColor(72, 72, 72));
|
||||
gradient.setColorAt(1., QColor(150, 150, 150));
|
||||
bkgBrush = new QBrush(QColor::fromRgb(70,70,70));
|
||||
|
||||
resetCachedContent();
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
#define DRAWINGGUI_CANVASVIEW_H
|
||||
|
||||
#include <QGraphicsView>
|
||||
#include <QGraphicsScene>
|
||||
|
||||
#include "ViewProviderPage.h"
|
||||
|
||||
|
@ -54,7 +55,7 @@ class TechDrawGuiExport QGVPage : public QGraphicsView
|
|||
public:
|
||||
enum RendererType { Native, OpenGL, Image };
|
||||
|
||||
QGVPage(ViewProviderPage *vp, QWidget *parent = 0);
|
||||
QGVPage(ViewProviderPage *vp, QGraphicsScene& s, QWidget *parent = 0);
|
||||
~QGVPage();
|
||||
|
||||
void setRenderer(RendererType type = Native);
|
||||
|
@ -116,7 +117,7 @@ private:
|
|||
bool drawBkg;
|
||||
QGraphicsRectItem *m_backgroundItem;
|
||||
QGraphicsRectItem *m_outlineItem;
|
||||
QBrush *bkgBrush;
|
||||
QBrush* bkgBrush;
|
||||
QImage m_image;
|
||||
ViewProviderPage *pageGui;
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue
Block a user