From 277a00dc3cb76b42ab1551ce3a3ef04c1220f949 Mon Sep 17 00:00:00 2001 From: WandererFan Date: Sat, 9 Jul 2016 15:20:14 -0400 Subject: [PATCH] dlgTemplateField parentage cosmetic: move button box --- src/Mod/TechDraw/Gui/DlgTemplateField.ui | 2 +- src/Mod/TechDraw/Gui/MDIViewPage.cpp | 2 +- src/Mod/TechDraw/Gui/QGISVGTemplate.cpp | 29 ++++++++++------------ src/Mod/TechDraw/Gui/QGISVGTemplate.h | 11 ++++---- src/Mod/TechDraw/Gui/QGVPage.cpp | 2 +- src/Mod/TechDraw/Gui/TemplateTextField.cpp | 10 +++++--- src/Mod/TechDraw/Gui/TemplateTextField.h | 4 ++- 7 files changed, 32 insertions(+), 28 deletions(-) diff --git a/src/Mod/TechDraw/Gui/DlgTemplateField.ui b/src/Mod/TechDraw/Gui/DlgTemplateField.ui index 70ffb4b2d..6ca427c0a 100644 --- a/src/Mod/TechDraw/Gui/DlgTemplateField.ui +++ b/src/Mod/TechDraw/Gui/DlgTemplateField.ui @@ -74,7 +74,7 @@ QDialogButtonBox::Cancel|QDialogButtonBox::Ok - true + false diff --git a/src/Mod/TechDraw/Gui/MDIViewPage.cpp b/src/Mod/TechDraw/Gui/MDIViewPage.cpp index a949f8733..46f6465a8 100644 --- a/src/Mod/TechDraw/Gui/MDIViewPage.cpp +++ b/src/Mod/TechDraw/Gui/MDIViewPage.cpp @@ -94,7 +94,7 @@ MDIViewPage::MDIViewPage(ViewProviderPage *pageVp, Gui::Document* doc, QWidget* pageGui(pageVp), m_frameState(true) { - m_view = new QGVPage(pageVp,m_scene); + m_view = new QGVPage(pageVp,m_scene,this); m_backgroundAction = new QAction(tr("&Background"), this); m_backgroundAction->setEnabled(false); diff --git a/src/Mod/TechDraw/Gui/QGISVGTemplate.cpp b/src/Mod/TechDraw/Gui/QGISVGTemplate.cpp index 44a27c912..9c87121b5 100644 --- a/src/Mod/TechDraw/Gui/QGISVGTemplate.cpp +++ b/src/Mod/TechDraw/Gui/QGISVGTemplate.cpp @@ -46,24 +46,21 @@ using namespace TechDrawGui; -QGISVGTemplate::QGISVGTemplate(QGraphicsScene *scene) - : QGITemplate(scene) +QGISVGTemplate::QGISVGTemplate(QGraphicsScene *scene, QWidget* srWidget) + : QGITemplate(scene), + upperLevelWidget(srWidget) { - m_svgRender = new QSvgRenderer(); + m_svgItem.setSharedRenderer(&m_svgRender); - m_svgItem = new QGraphicsSvgItem(); - m_svgItem->setSharedRenderer(m_svgRender); + m_svgItem.setFlags(QGraphicsItem::ItemClipsToShape); + m_svgItem.setCacheMode(QGraphicsItem::NoCache); - m_svgItem->setFlags(QGraphicsItem::ItemClipsToShape); - m_svgItem->setCacheMode(QGraphicsItem::NoCache); - - addToGroup(m_svgItem); + addToGroup(&m_svgItem); } QGISVGTemplate::~QGISVGTemplate() { clearContents(); - delete m_svgRender; } QVariant QGISVGTemplate::itemChange(GraphicsItemChange change, @@ -99,11 +96,11 @@ void QGISVGTemplate::load(const QString &fileName) if (!file.exists()) { return; } - m_svgRender->load(file.fileName()); + m_svgRender.load(file.fileName()); - QSize size = m_svgRender->defaultSize(); + QSize size = m_svgRender.defaultSize(); //Base::Console().Log("size of svg document <%i,%i>", size.width(), size.height()); - m_svgItem->setSharedRenderer(m_svgRender); + m_svgItem.setSharedRenderer(&m_svgRender); TechDraw::DrawSVGTemplate *tmplte = getSVGTemplate(); @@ -170,7 +167,7 @@ void QGISVGTemplate::load(const QString &fileName) double width = editClickBoxSize; double height = editClickBoxSize; - TemplateTextField *item = new TemplateTextField(this, tmplte, nameMatch[1].str()); + TemplateTextField *item = new TemplateTextField(this, tmplte, nameMatch[1].str(), upperLevelWidget); float pad = 1; item->setRect(x - pad, -tmplte->getHeight() + y - height - pad, width + 2 * pad, height + 2 * pad); @@ -198,7 +195,7 @@ void QGISVGTemplate::load(const QString &fileName) QTransform qtrans; qtrans.translate(0.f, -tmplte->getHeight()); qtrans.scale(xaspect , yaspect); - m_svgItem->setTransform(qtrans); + m_svgItem.setTransform(qtrans); } TechDraw::DrawSVGTemplate * QGISVGTemplate::getSVGTemplate() @@ -223,4 +220,4 @@ void QGISVGTemplate::updateView(bool update) draw(); } -#include "moc_QGISVGTemplate.cpp" \ No newline at end of file +#include "moc_QGISVGTemplate.cpp" diff --git a/src/Mod/TechDraw/Gui/QGISVGTemplate.h b/src/Mod/TechDraw/Gui/QGISVGTemplate.h index 648965f50..85f5cd34e 100644 --- a/src/Mod/TechDraw/Gui/QGISVGTemplate.h +++ b/src/Mod/TechDraw/Gui/QGISVGTemplate.h @@ -24,12 +24,12 @@ #define DRAWINGGUI_QGRAPHICSITEMSVGTEMPLATE_H #include "QGITemplate.h" +#include +#include QT_BEGIN_NAMESPACE class QGraphicsScene; class QGraphicsSceneMouseEvent; -class QGraphicsSvgItem; -class QSvgRenderer; QT_END_NAMESPACE namespace TechDraw { @@ -44,7 +44,7 @@ class TechDrawGuiExport QGISVGTemplate : public QGITemplate Q_OBJECT public: - QGISVGTemplate(QGraphicsScene *); + QGISVGTemplate(QGraphicsScene *, QWidget* srWidget=0); ~QGISVGTemplate(); enum {Type = QGraphicsItem::UserType + 153}; @@ -61,11 +61,12 @@ Q_SIGNALS: protected: void openFile(const QFile &file); void load (const QString & fileName); + QWidget* upperLevelWidget; //for parenting dlgTemplateField protected: TechDraw::DrawSVGTemplate * getSVGTemplate(); - QGraphicsSvgItem *m_svgItem; - QSvgRenderer *m_svgRender; + QGraphicsSvgItem m_svgItem; + QSvgRenderer m_svgRender; virtual QVariant itemChange(GraphicsItemChange change, const QVariant &value); }; // class QGISVGTemplate diff --git a/src/Mod/TechDraw/Gui/QGVPage.cpp b/src/Mod/TechDraw/Gui/QGVPage.cpp index 0ee1792cb..150e9d29a 100644 --- a/src/Mod/TechDraw/Gui/QGVPage.cpp +++ b/src/Mod/TechDraw/Gui/QGVPage.cpp @@ -420,7 +420,7 @@ void QGVPage::setPageTemplate(TechDraw::DrawTemplate *obj) pageTemplate = qTempItem; } else if(obj->isDerivedFrom(TechDraw::DrawSVGTemplate::getClassTypeId())) { //TechDraw::DrawSVGTemplate *dwgTemplate = static_cast(obj); - QGISVGTemplate *qTempItem = new QGISVGTemplate(scene()); + QGISVGTemplate *qTempItem = new QGISVGTemplate(scene(),this); pageTemplate = qTempItem; } pageTemplate->setTemplate(obj); diff --git a/src/Mod/TechDraw/Gui/TemplateTextField.cpp b/src/Mod/TechDraw/Gui/TemplateTextField.cpp index 52fa374bb..6b1056ac2 100644 --- a/src/Mod/TechDraw/Gui/TemplateTextField.cpp +++ b/src/Mod/TechDraw/Gui/TemplateTextField.cpp @@ -40,8 +40,12 @@ using namespace TechDrawGui; TemplateTextField::TemplateTextField(QGraphicsItem*parent, TechDraw::DrawTemplate *myTmplte, - const std::string &myFieldName) - : QGraphicsRectItem(parent), tmplte(myTmplte), fieldNameStr(myFieldName) + const std::string &myFieldName, + QWidget* upperWidget) + : QGraphicsRectItem(parent), + tmplte(myTmplte), + fieldNameStr(myFieldName), + dlgOwner(upperWidget) { } @@ -52,7 +56,7 @@ TemplateTextField::~TemplateTextField() void TemplateTextField::mousePressEvent(QGraphicsSceneMouseEvent *event) { - DlgTemplateField* ui = new DlgTemplateField(nullptr); + DlgTemplateField* ui = new DlgTemplateField(dlgOwner); ui->setFieldName(fieldNameStr); ui->setFieldContent(tmplte->EditableTexts[fieldNameStr]); int uiCode = ui->exec(); diff --git a/src/Mod/TechDraw/Gui/TemplateTextField.h b/src/Mod/TechDraw/Gui/TemplateTextField.h index 8a18fdc29..99e1d25a6 100644 --- a/src/Mod/TechDraw/Gui/TemplateTextField.h +++ b/src/Mod/TechDraw/Gui/TemplateTextField.h @@ -47,7 +47,8 @@ namespace TechDrawGui public: TemplateTextField(QGraphicsItem*parent, TechDraw::DrawTemplate *myTmplte, - const std::string &myFieldName); + const std::string &myFieldName, + QWidget* upperWidget=0); ~TemplateTextField(); @@ -61,6 +62,7 @@ namespace TechDrawGui virtual void mousePressEvent(QGraphicsSceneMouseEvent *event); TechDraw::DrawTemplate *tmplte; std::string fieldNameStr; + QWidget* dlgOwner; }; } // namespace TechDrawGui