Git commit b7ee4ca8e5a132f39060494c43de0cd3609660a5 by Adam Pigg. Committed on 31/12/2016 at 16:37. Pushed by piggz into branch 'master'. Fixes for issues picked up by coverity Summary: Mostly uninitialised variables and non checks for dynamic_cast Test Plan: Run kreportexample and test rendering Reviewers: staniek Reviewed By: staniek Tags: #kreport Differential Revision: https://phabricator.kde.org/D3827 M +2 -4 src/common/KReportItemBase.cpp M +6 -4 src/common/KReportItemLine.cpp M +6 -8 src/common/KReportRenderObjects.cpp M +2 -2 src/common/KReportUtils_p.cpp M +4 -2 src/items/check/KReportItemCheck.cpp M +4 -2 src/items/image/KReportItemImage.cpp M +4 -2 src/items/text/KReportItemText.cpp M +3 -9 src/renderer/KReportHTMLCSSRenderer_p.cpp M +3 -10 src/renderer/KReportHTMLTableRenderer_p.cpp M +1 -3 src/renderer/KReportPage.cpp M +1 -2 src/renderer/KReportPreRenderer.cpp M +7 -21 src/renderer/KReportPrintRenderer_p.cpp M +7 -17 src/renderer/KReportScreenRenderer_p.cpp M +1 -16 src/renderer/scripting/KReportScriptHandler.cpp M +30 -49 src/wrtembed/KReportDesigner.cpp M +7 -2 src/wrtembed/KReportDesignerItemLine.cpp M +45 -37 src/wrtembed/KReportDesignerItemRectBase.cpp M +0 -4 src/wrtembed/KReportDesignerItemRectBase.h M +22 -21 src/wrtembed/KReportDesignerSection.cpp M +2 -7 src/wrtembed/KReportDesignerSectionDetail.cpp M +4 -12 src/wrtembed/KReportDesignerSectionDetailGroup.cpp M +8 -10 src/wrtembed/KReportDesignerSectionScene.cpp M +4 -5 src/wrtembed/KReportDesignerSectionScene.h https://commits.kde.org/kreport/b7ee4ca8e5a132f39060494c43de0cd3609660a5 diff --git a/src/common/KReportItemBase.cpp b/src/common/KReportItemBase.cpp index 212af5c..8786513 100644 --- a/src/common/KReportItemBase.cpp +++ b/src/common/KReportItemBase.cpp @@ -35,7 +35,7 @@ public: KProperty *sizeProperty; KProperty *positionProperty; QString oldName; - qreal z; + qreal z =3D 0; }; = KReportItemBase::Private::Private() @@ -59,9 +59,7 @@ KReportItemBase::Private::~Private() = = KReportItemBase::KReportItemBase() : d(new Private()) -{ - d->z =3D 0; - = +{ = connect(propertySet(), &KPropertySet::propertyChanged, this, &KReportItemBase::propertyChanged); } diff --git a/src/common/KReportItemLine.cpp b/src/common/KReportItemLine.cpp index 7ed7dfc..77b4af2 100644 --- a/src/common/KReportItemLine.cpp +++ b/src/common/KReportItemLine.cpp @@ -131,10 +131,12 @@ int KReportItemLine::renderSimpleData(OROPage *page, = OROSection *section, const if (page) page->insertPrimitive(ln); = OROLine *l2 =3D dynamic_cast(ln->clone()); - l2->setStartPoint(m_start->value().toPointF()); - l2->setEndPoint(m_end->value().toPointF()); - if (section) section->addPrimitive(l2); - + if (l2) { + l2->setStartPoint(m_start->value().toPointF()); + l2->setEndPoint(m_end->value().toPointF()); + = + if (section) section->addPrimitive(l2); + } return 0; } = diff --git a/src/common/KReportRenderObjects.cpp b/src/common/KReportRender= Objects.cpp index b4f4186..233ffb9 100644 --- a/src/common/KReportRenderObjects.cpp +++ b/src/common/KReportRenderObjects.cpp @@ -290,16 +290,15 @@ public: ~Private(); ORODocument * document; QList primitives; - qint64 row; - int height; - KReportSectionData::Section type; - QColor backgroundColor; + qint64 row =3D 0; + int height =3D 0; + KReportSectionData::Section type =3D KReportSectionData::None; + QColor backgroundColor =3D Qt::white; }; = OROSection::Private::Private() { - height =3D 0; - backgroundColor =3D Qt::white; + } = OROSection::Private::~Private() @@ -405,7 +404,7 @@ void OROSection::setDocument(ORODocument* doc) class Q_DECL_HIDDEN OROPrimitive::Private { public: - OROPage * page; + OROPage * page =3D nullptr; QPointF position; QSizeF size; }; @@ -413,7 +412,6 @@ public: OROPrimitive::OROPrimitive() : d(new Private()) { - d->page =3D 0; } = OROPrimitive::~OROPrimitive() diff --git a/src/common/KReportUtils_p.cpp b/src/common/KReportUtils_p.cpp index f014113..e0ece2d 100644 --- a/src/common/KReportUtils_p.cpp +++ b/src/common/KReportUtils_p.cpp @@ -50,8 +50,8 @@ KReportDpiSingleton::KReportDpiSingleton() m_dpiX =3D w->logicalDpiX(); m_dpiY =3D w->logicalDpiY(); } else { - m_dpiX =3D 75; - m_dpiY =3D 75; + m_dpiX =3D 96; + m_dpiY =3D 96; } #endif } diff --git a/src/items/check/KReportItemCheck.cpp b/src/items/check/KReport= ItemCheck.cpp index f11b0f4..8bc2ce9 100644 --- a/src/items/check/KReportItemCheck.cpp +++ b/src/items/check/KReportItemCheck.cpp @@ -170,8 +170,10 @@ int KReportItemCheckBox::renderSimpleData(OROPage *pag= e, OROSection *section, co = if (section) { OROCheckBox *chk2 =3D dynamic_cast(chk->clone()); - chk2->setPosition(scenePosition(position())); - section->addPrimitive(chk2); + if (chk2) { + chk2->setPosition(scenePosition(position())); + section->addPrimitive(chk2); + } } = if (!page) { diff --git a/src/items/image/KReportItemImage.cpp b/src/items/image/KReport= ItemImage.cpp index 3615d47..62f6c21 100644 --- a/src/items/image/KReportItemImage.cpp +++ b/src/items/image/KReportItemImage.cpp @@ -174,8 +174,10 @@ int KReportItemImage::renderSimpleData(OROPage *page, = OROSection *section, const = if (section) { OROImage *i2 =3D dynamic_cast(id->clone()); - i2->setPosition(scenePosition(position())); - section->addPrimitive(i2); + if (i2) { + i2->setPosition(scenePosition(position())); + section->addPrimitive(i2); + } } = if (!page) { diff --git a/src/items/text/KReportItemText.cpp b/src/items/text/KReportIte= mText.cpp index 48ba420..2b71f38 100644 --- a/src/items/text/KReportItemText.cpp +++ b/src/items/text/KReportItemText.cpp @@ -270,8 +270,10 @@ int KReportItemText::renderSimpleData(OROPage *page, O= ROSection *section, const = if (section) { OROTextBox *tb2 =3D dynamic_cast(tb->= clone()); - tb2->setPosition(scenePosition(position())); - section->addPrimitive(tb2); + if (tb2) { + tb2->setPosition(scenePosition(position())); + section->addPrimitive(tb2); + } } = if (!page) { diff --git a/src/renderer/KReportHTMLCSSRenderer_p.cpp b/src/renderer/KRepo= rtHTMLCSSRenderer_p.cpp index cc9e83c..50ccdd5 100644 --- a/src/renderer/KReportHTMLCSSRenderer_p.cpp +++ b/src/renderer/KReportHTMLCSSRenderer_p.cpp @@ -121,9 +121,7 @@ QString HTMLCSSRenderer::renderCSS(ORODocument *documen= t) for (int i =3D 0; i < section->primitiveCount(); i++) { OROPrimitive * prim =3D section->primitive(i); //kreportDebug() << "Got object type" << prim->type(); - if (dynamic_cast(prim)) { - OROTextBox * tb =3D dynamic_cast(prim); - + if (OROTextBox *tb =3D dynamic_cast(prim)) { QColor bg =3D tb->textStyle().backgroundColor; style =3D QLatin1String("position: absolute; ") + QLatin1String("background-color: ") + QString:= :fromLatin1("rgba(%1,%2,%3,%4)") @@ -151,9 +149,7 @@ QString HTMLCSSRenderer::renderCSS(ORODocument *documen= t) body +=3D QLatin1String("
") + tb->text() + QLatin1String("
\n"); - } else if (dynamic_cast(prim)) { - //kreportDebug() << "Saving an image"; - OROImage * im =3D dynamic_cast(prim); + } else if (OROImage *im =3D dynamic_cast(prim))= { style =3D QLatin1String("position: absolute; ") + QLatin1String("top: ") + QString::number(im->p= osition().y()) + QLatin1String("pt; ") + QLatin1String("left: ") + QString::number(im->= position().x()) + QLatin1String("pt; "); @@ -168,9 +164,7 @@ QString HTMLCSSRenderer::renderCSS(ORODocument *documen= t) = = im->image().save(m_tempDirName + QLatin1String("/objec= t") + QString::number(s) + QString::number(i) + QLatin1String(".png")); - } else if (dynamic_cast(prim)) { - //kreportDebug() << "Saving a picture"; - OROPicture * im =3D dynamic_cast(prim); + } else if (OROPicture *im =3D dynamic_cast(pr= im)) { style =3D QLatin1String("position: absolute; ") + QLatin1String("top: ") + QString::number(im->p= osition().y()) + QLatin1String("pt; ") + QLatin1String("left: ") + QString::number(im->= position().x()) + QLatin1String("pt; "); diff --git a/src/renderer/KReportHTMLTableRenderer_p.cpp b/src/renderer/KRe= portHTMLTableRenderer_p.cpp index 78dc405..8091a1e 100644 --- a/src/renderer/KReportHTMLTableRenderer_p.cpp +++ b/src/renderer/KReportHTMLTableRenderer_p.cpp @@ -115,23 +115,16 @@ QString HTMLTableRenderer::renderTable(ORODocument *d= ocument) for (int i =3D 0; i < section->primitiveCount(); i++) { OROPrimitive * prim =3D section->primitive(i); = - if (dynamic_cast(prim)) { - OROTextBox * tb =3D dynamic_cast(prim); - + if (OROTextBox *tb =3D dynamic_cast(prim)) { tr +=3D QLatin1String("") + tb->text() + QLatin1String("\n"); - } else if (dynamic_cast(prim)) { - //kreportDebug() << "Saving an image"; - OROImage * im =3D dynamic_cast(prim); + } else if (OROImage *im =3D dynamic_cast(prim)= ) { tr +=3D QLatin1String("" "" "\n"); im->image().save(m_tempDirName + QLatin1String("/objec= t") + QString::number(s) + QString::number(i) + QLatin1String(".png")); - } else if (dynamic_cast(prim)) { - //kreportDebug() << "Saving a picture"; - OROPicture * im =3D dynamic_cast(prim); - + } else if (OROPicture *im =3D dynamic_cast(pr= im)) { tr +=3D QLatin1String("" "" "\n"); diff --git a/src/renderer/KReportPage.cpp b/src/renderer/KReportPage.cpp index 1cec5ab..c3235ef 100644 --- a/src/renderer/KReportPage.cpp +++ b/src/renderer/KReportPage.cpp @@ -34,7 +34,6 @@ class Q_DECL_HIDDEN KReportPage::Private public: explicit Private(ORODocument *document) : reportDocument(document) - , page(0) {} = ~Private() @@ -43,11 +42,10 @@ public: } = ORODocument *reportDocument; - int page; + int page =3D 0; QPixmap pixmap; KReportRendererFactory factory; KReportRendererBase *renderer; - QTimer renderTimer; }; = diff --git a/src/renderer/KReportPreRenderer.cpp b/src/renderer/KReportPreR= enderer.cpp index c645777..1ed5df5 100644 --- a/src/renderer/KReportPreRenderer.cpp +++ b/src/renderer/KReportPreRenderer.cpp @@ -368,8 +368,7 @@ qreal KReportPreRendererPrivate::renderSection(const KR= eportSectionData & sectio } for (int i =3D 0; i < m_page->primitiveCount(); ++i) { OROPrimitive *prim =3D m_page->primitive(i); - if (dynamic_cast(prim)) { - OROTextBox *text =3D dynamic_cast(prim); + if (OROTextBox *text =3D dynamic_cast(prim)) { if (text->requiresPostProcessing()) { m_postProcText.append(text); } diff --git a/src/renderer/KReportPrintRenderer_p.cpp b/src/renderer/KReport= PrintRenderer_p.cpp index f1dd2f1..bfc8db2 100644 --- a/src/renderer/KReportPrintRenderer_p.cpp +++ b/src/renderer/KReportPrintRenderer_p.cpp @@ -101,10 +101,7 @@ bool PrintRenderer::render(const KReportRendererContex= t &context, ORODocument *d prim->setPosition(QPointF(prim->position().x() * scaleX, p= rim->position().y() * scaleY)); prim->setSize(QSizeF(prim->size().width() * scaleX, prim->= size().height() * scaleY)); //kreportDebug() << "Rendering object" << i << "type" << p= rim->type(); - if (dynamic_cast(prim)) { - //kreportDebug() << "Text Box"; - OROTextBox * tb =3D dynamic_cast(prim); - + if (OROTextBox *tb =3D dynamic_cast(prim)) { QPointF ps =3D tb->position(); QSizeF sz =3D tb->size(); QRectF rc =3D QRectF(ps.x(), ps.y(), sz.width(), sz.he= ight()); @@ -131,9 +128,7 @@ bool PrintRenderer::render(const KReportRendererContext= &context, ORODocument *d //Reset back to defaults for next element context.painter()->restore(); = - } else if (dynamic_cast(prim)) { - //kreportDebug() << "Line"; - OROLine * ln =3D dynamic_cast(prim); + } else if (OROLine *ln =3D dynamic_cast(prim)) { QPointF s =3D ln->startPoint(); QPointF e(ln->endPoint().x() * scaleX, ln->endPoint().= y() * scaleY); //QPen pen ( _painter()->pen() ); @@ -145,9 +140,7 @@ bool PrintRenderer::render(const KReportRendererContext= &context, ORODocument *d context.painter()->drawLine(QLineF(s.x(), s.y(), e.x()= , e.y())); context.painter()->setRenderHint(QPainter::Antialiasin= g, false); context.painter()->restore(); - } else if (dynamic_cast(prim)) { - //kreportDebug() << "Image"; - OROImage * im =3D dynamic_cast(prim); + } else if (OROImage *im =3D dynamic_cast(prim))= { QPointF ps =3D im->position(); QSizeF sz =3D im->size(); QRectF rc =3D QRectF(ps.x(), ps.y(), sz.width(), sz.he= ight()); @@ -158,10 +151,7 @@ bool PrintRenderer::render(const KReportRendererContex= t &context, ORODocument *d = QRectF sr =3D QRectF(QPointF(0.0, 0.0), rc.size().boun= dedTo(img.size())); context.painter()->drawImage(rc.topLeft(), img, sr); - } else if (dynamic_cast(prim)) { - //kreportDebug() << "Rect"; - ORORect * re =3D dynamic_cast(prim); - + } else if (ORORect *re =3D dynamic_cast(prim)) { QPointF ps =3D re->position(); QSizeF sz =3D re->size(); QRectF rc =3D QRectF(ps.x(), ps.y(), sz.width(), sz.he= ight()); @@ -171,9 +161,7 @@ bool PrintRenderer::render(const KReportRendererContext= &context, ORODocument *d context.painter()->setBrush(re->brush()); context.painter()->drawRect(rc); context.painter()->restore(); - } else if (dynamic_cast(prim)) { - OROEllipse * re =3D dynamic_cast(prim); - + } else if (OROEllipse *re =3D dynamic_cast(pr= im)) { QPointF ps =3D re->position(); QSizeF sz =3D re->size(); QRectF rc =3D QRectF(ps.x(), ps.y(), sz.width(), sz.he= ight()); @@ -183,14 +171,12 @@ bool PrintRenderer::render(const KReportRendererConte= xt &context, ORODocument *d context.painter()->setBrush(re->brush()); context.painter()->drawEllipse(rc); context.painter()->restore(); - } else if (dynamic_cast(prim)) { - OROPicture * im =3D dynamic_cast(prim); + } else if (OROPicture *im =3D dynamic_cast(pr= im)) { QPointF ps =3D im->position(); QSizeF sz =3D im->size(); QRectF rc =3D QRectF(ps.x(), ps.y(), sz.width(), sz.he= ight()); context.painter()->drawPicture(rc.topLeft(), *(im->pic= ture())); - } else if (dynamic_cast(prim)) { - OROCheckBox * chk =3D dynamic_cast(prim); + } else if (OROCheckBox *chk =3D dynamic_cast= (prim)) { QPointF ps =3D chk->position(); QSizeF sz =3D chk->size(); QRectF rc =3D QRectF(ps.x(), ps.y(), sz.width(), sz.he= ight()); diff --git a/src/renderer/KReportScreenRenderer_p.cpp b/src/renderer/KRepor= tScreenRenderer_p.cpp index 838c0e1..b53f0d1 100644 --- a/src/renderer/KReportScreenRenderer_p.cpp +++ b/src/renderer/KReportScreenRenderer_p.cpp @@ -50,9 +50,7 @@ bool ScreenRenderer::render(const KReportRendererContext&= context, ORODocument * for (int i =3D 0; i < p->primitiveCount(); i++) { OROPrimitive *prim =3D p->primitive(i); = - if (dynamic_cast(prim)) { - OROTextBox *tb =3D dynamic_cast(prim); - + if (OROTextBox *tb =3D dynamic_cast(prim)) { QPointF ps =3D tb->position(); QSizeF sz =3D tb->size(); QRectF rc =3D QRectF(ps.x(), ps.y(), sz.width(), sz.height()); @@ -79,8 +77,7 @@ bool ScreenRenderer::render(const KReportRendererContext&= context, ORODocument * //Reset back to defaults for next element context.painter()->restore(); } - else if (dynamic_cast(prim)) { - OROLine * ln =3D dynamic_cast(prim); + else if (OROLine *ln =3D dynamic_cast(prim)) { QPointF s =3D ln->startPoint(); QPointF e =3D ln->endPoint(); //QPen pen ( _painter->pen() ); @@ -93,9 +90,7 @@ bool ScreenRenderer::render(const KReportRendererContext&= context, ORODocument * context.painter()->setRenderHint(QPainter::Antialiasing, false= ); context.painter()->restore(); } - else if (dynamic_cast(prim)) { - ORORect * re =3D dynamic_cast(prim); - + else if (ORORect *re =3D dynamic_cast(prim)) { QPointF ps =3D re->position(); QSizeF sz =3D re->size(); QRectF rc =3D QRectF(ps.x(), ps.y(), sz.width(), sz.height()); @@ -106,9 +101,7 @@ bool ScreenRenderer::render(const KReportRendererContex= t& context, ORODocument * context.painter()->drawRect(rc); context.painter()->restore(); } - else if (dynamic_cast(prim)) { - OROEllipse * re =3D dynamic_cast(prim); - + else if (OROEllipse *re =3D dynamic_cast(prim)) { QPointF ps =3D re->position(); QSizeF sz =3D re->size(); QRectF rc =3D QRectF(ps.x(), ps.y(), sz.width(), sz.height()); @@ -119,8 +112,7 @@ bool ScreenRenderer::render(const KReportRendererContex= t& context, ORODocument * context.painter()->drawEllipse(rc); context.painter()->restore(); } - else if (dynamic_cast(prim)) { - OROImage * im =3D dynamic_cast(prim); + else if ( OROImage *im =3D dynamic_cast(prim)) { QPointF ps =3D im->position(); QSizeF sz =3D im->size(); QRectF rc =3D QRectF(ps.x(), ps.y(), sz.width(), sz.height()); @@ -133,8 +125,7 @@ bool ScreenRenderer::render(const KReportRendererContex= t& context, ORODocument * QRectF sr =3D QRectF(QPointF(0.0, 0.0), rc.size().boundedTo(im= g.size())); context.painter()->drawImage(rc.topLeft(), img, sr); } - else if (dynamic_cast(prim)) { - OROPicture * im =3D dynamic_cast(prim); + else if (OROPicture *im =3D dynamic_cast(prim)) { QPointF ps =3D im->position(); QSizeF sz =3D im->size(); QRectF rc =3D QRectF(ps.x(), ps.y(), sz.width(), sz.height()); @@ -142,8 +133,7 @@ bool ScreenRenderer::render(const KReportRendererContex= t& context, ORODocument * context.painter()->drawPicture(rc.topLeft(), *(im->picture())); context.painter()->restore(); } - else if (dynamic_cast(prim)) { - OROCheckBox * chk =3D dynamic_cast(prim); + else if (OROCheckBox *chk =3D dynamic_cast(prim)) { QPointF ps =3D chk->position(); QSizeF sz =3D chk->size(); QRectF rc =3D QRectF(ps.x(), ps.y(), sz.width(), sz.height()); diff --git a/src/renderer/scripting/KReportScriptHandler.cpp b/src/renderer= /scripting/KReportScriptHandler.cpp index 0ba3d11..44a82da 100644 --- a/src/renderer/scripting/KReportScriptHandler.cpp +++ b/src/renderer/scripting/KReportScriptHandler.cpp @@ -42,33 +42,18 @@ public: KReportScriptConstants *constants; KReportScriptDebug *debug; KReportScriptDraw *draw; - Scripting::Report *report; - const KReportData *reportData; - QString source; KReportDocument *reportDocument; - QJSEngine engine; QJSValue scriptValue; - QMap groups; QMap sectionMap; }; = -KReportScriptHandler::Private::Private() +KReportScriptHandler::Private::Private() : constants(new KReportScriptCons= tants), debug(new KReportScriptDebug), draw(new KReportScriptDraw) { - //NOTE these are on the heap so that engine can delete them - = - //Add constants object - constants =3D new KReportScriptConstants(); - - //A simple debug function to allow printing from functions - debug =3D new KReportScriptDebug(); - - //A simple drawing object - draw =3D new KReportScriptDraw(); } = KReportScriptHandler::Private::~Private() diff --git a/src/wrtembed/KReportDesigner.cpp b/src/wrtembed/KReportDesigne= r.cpp index 0804bb3..d43d217 100644 --- a/src/wrtembed/KReportDesigner.cpp +++ b/src/wrtembed/KReportDesigner.cpp @@ -106,28 +106,7 @@ public: class Q_DECL_HIDDEN KReportDesigner::Private { public: - Private() - : activeScene(0) - , reportHeader(0) - , pageHeaderFirst(0) - , pageHeaderOdd(0) - , pageHeaderEven(0) - , pageHeaderLast(0) - , pageHeaderAny(0) - , pageFooterFirst(0) - , pageFooterOdd(0) - , pageFooterEven(0) - , pageFooterLast(0) - , pageFooterAny(0) - , reportFooter(0) - , detail(0) - , pressX(-1) - , pressY(-1) - , releaseX(-1) - , releaseY(-1) - , modified(false) - , kordata(0) - {} + Private(){} = ~Private() { @@ -143,24 +122,24 @@ public: QVBoxLayout *vboxlayout; KReportPropertiesButton *pageButton; = - QGraphicsScene *activeScene; + QGraphicsScene *activeScene =3D nullptr; = ReportWriterSectionData *sectionData; = - KReportDesignerSection *reportHeader; - KReportDesignerSection *pageHeaderFirst; - KReportDesignerSection *pageHeaderOdd; - KReportDesignerSection *pageHeaderEven; - KReportDesignerSection *pageHeaderLast; - KReportDesignerSection *pageHeaderAny; - - KReportDesignerSection *pageFooterFirst; - KReportDesignerSection *pageFooterOdd; - KReportDesignerSection *pageFooterEven; - KReportDesignerSection *pageFooterLast; - KReportDesignerSection *pageFooterAny; - KReportDesignerSection *reportFooter; - KReportDesignerSectionDetail *detail; + KReportDesignerSection *reportHeader =3D nullptr; + KReportDesignerSection *pageHeaderFirst =3D nullptr; + KReportDesignerSection *pageHeaderOdd =3D nullptr; + KReportDesignerSection *pageHeaderEven =3D nullptr; + KReportDesignerSection *pageHeaderLast =3D nullptr; + KReportDesignerSection *pageHeaderAny =3D nullptr; + + KReportDesignerSection *pageFooterFirst =3D nullptr; + KReportDesignerSection *pageFooterOdd =3D nullptr; + KReportDesignerSection *pageFooterEven =3D nullptr; + KReportDesignerSection *pageFooterLast =3D nullptr; + KReportDesignerSection *pageFooterAny =3D nullptr; + KReportDesignerSection *reportFooter =3D nullptr; + KReportDesignerSectionDetail *detail =3D nullptr; = //Properties KPropertySet *set; @@ -193,17 +172,17 @@ public: QAction *itemRaiseAction; QAction *itemLowerAction; = - qreal pressX; - qreal pressY; - qreal releaseX; - qreal releaseY; + qreal pressX =3D -1; + qreal pressY =3D -1; + qreal releaseX =3D -1; + qreal releaseY =3D -1; = - bool modified; // true if this document has been modified, false other= wise + bool modified =3D false; // true if this document has been modified, f= alse otherwise = QString originalInterpreter; //Value of the script interpreter at load= time QString originalScript; //Value of the script at load time = - KReportData *kordata; + KReportData *kordata =3D nullptr; }; = KReportDesigner::KReportDesigner(QWidget * parent) @@ -1172,13 +1151,15 @@ void KReportDesigner::slotEditPaste(QGraphicsScene = * canvas) //kreportDebug() << type; KReportDesignerItemBase *ent =3D item->clone(); KReportItemBase *new_obj =3D dynamic_cast(en= t); - new_obj->setEntityName(suggestEntityName(type)); - if (activeItem) { - new_obj->setPosition(KReportItemBase::positionFromScene(QP= ointF(activeItem->x() + 10, activeItem->y() + 10))); - } else { - new_obj->setPosition(KReportItemBase::positionFromScene(QP= ointF(0, 0))); + if (new_obj) { + new_obj->setEntityName(suggestEntityName(type)); + if (activeItem) { + new_obj->setPosition(KReportItemBase::positionFromScen= e(QPointF(activeItem->x() + 10, activeItem->y() + 10))); + } else { + new_obj->setPosition(KReportItemBase::positionFromScen= e(QPointF(0, 0))); + } + changeSet(new_obj->propertySet()); } - changeSet(new_obj->propertySet()); QGraphicsItem *pasted_ent =3D dynamic_cast(ent= ); if (pasted_ent) { pasted_ent->setSelected(true); diff --git a/src/wrtembed/KReportDesignerItemLine.cpp b/src/wrtembed/KRepor= tDesignerItemLine.cpp index 3548ea8..aaa6a27 100644 --- a/src/wrtembed/KReportDesignerItemLine.cpp +++ b/src/wrtembed/KReportDesignerItemLine.cpp @@ -170,7 +170,12 @@ void KReportDesignerItemLine::mouseMoveEvent(QGraphics= SceneMouseEvent * event) int x; int y; = - QPointF p =3D dynamic_cast(scene())->gri= dPoint(event->scenePos()); + KReportDesignerSectionScene *section =3D qobject_cast(scene()); + if (!section) { + return; + } + = + QPointF p =3D section->gridPoint(event->scenePos()); //kreportDebug() << p; x =3D p.x(); y =3D p.y(); @@ -188,7 +193,7 @@ void KReportDesignerItemLine::mouseMoveEvent(QGraphicsS= ceneMouseEvent * event) m_end->setValue(positionFromScene(QPointF(x,y))); break; default: - QPointF d =3D mapToItem(this, dynamic_cast(scene())->gridPoint(event->scenePos())) - mapToItem(this, dynamic_ca= st(scene())->gridPoint(event->lastScenePos())= ); + QPointF d =3D mapToItem(this, section->gridPoint(event->scenePos()= )) - mapToItem(this, section->gridPoint(event->lastScenePos())); = if (((line().p1() + d).x() >=3D 0) && ((line().p2() + d).x() >=3D 0) && diff --git a/src/wrtembed/KReportDesignerItemRectBase.cpp b/src/wrtembed/KR= eportDesignerItemRectBase.cpp index b5f8411..aed8f26 100644 --- a/src/wrtembed/KReportDesignerItemRectBase.cpp +++ b/src/wrtembed/KReportDesignerItemRectBase.cpp @@ -32,7 +32,7 @@ public: Private(); ~Private(); = - int grabAction; + int grabAction =3D 0; }; = KReportDesignerItemRectBase::Private::Private() @@ -112,7 +112,12 @@ void KReportDesignerItemRectBase::mouseMoveEvent(QGrap= hicsSceneMouseEvent * even = qreal w, h; = - QPointF p =3D dynamic_cast(scene())->gr= idPoint(event->scenePos()); + KReportDesignerSectionScene *section =3D qobject_cast(scene()); + if (!section) { + return; + } + = + QPointF p =3D section->gridPoint(event->scenePos()); w =3D p.x() - scenePos().x(); h =3D p.y() - scenePos().y(); = @@ -266,42 +271,45 @@ int KReportDesignerItemRectBase::grabHandle(QPointF p= os) = QVariant KReportDesignerItemRectBase::itemChange(GraphicsItemChange change= , const QVariant &value) { - if (change =3D=3D ItemPositionChange && scene()) { - QPointF newPos =3D value.toPointF(); - - newPos =3D dynamic_cast(scene())->gr= idPoint(newPos); - if (newPos.x() < 0) - newPos.setX(0); - else if (newPos.x() > (scene()->width() - rect().width())) - newPos.setX(scene()->width() - rect().width()); - - if (newPos.y() < 0) - newPos.setY(0); - else if (newPos.y() > (scene()->height() - rect().height())) - newPos.setY(scene()->height() - rect().height()); - - return newPos; - } else if (change =3D=3D ItemPositionHasChanged && scene()) { - item()->setPosition(KReportItemBase::positionFromScene(value.toPoi= ntF())); - //TODO dont update property - //m_ppos->setScenePos(value.toPointF(), KReportPosition::DontUpdat= eProperty); - } else if (change =3D=3D ItemSceneHasChanged && scene() && item()) { - QPointF newPos =3D pos(); - - newPos =3D dynamic_cast(scene())->gr= idPoint(newPos); - if (newPos.x() < 0) - newPos.setX(0); - else if (newPos.x() > (scene()->width() - rect().width())) - newPos.setX(scene()->width() - rect().width()); - - if (newPos.y() < 0) - newPos.setY(0); - else if (newPos.y() > (scene()->height() - rect().height())) - newPos.setY(scene()->height() - rect().height()); - - setSceneRect(newPos, KReportItemBase::sceneSize(item()->size()), K= ReportDesignerItemRectBase::DontUpdateProperty); + KReportDesignerSectionScene *section =3D qobject_cast(scene()); + if (section) { + = + if (change =3D=3D ItemPositionChange) { + QPointF newPos =3D value.toPointF(); + = + newPos =3D section->gridPoint(newPos); + if (newPos.x() < 0) + newPos.setX(0); + else if (newPos.x() > (scene()->width() - rect().width())) + newPos.setX(scene()->width() - rect().width()); + + if (newPos.y() < 0) + newPos.setY(0); + else if (newPos.y() > (scene()->height() - rect().height())) + newPos.setY(scene()->height() - rect().height()); + + return newPos; + } else if (change =3D=3D ItemPositionHasChanged) { + item()->setPosition(KReportItemBase::positionFromScene(value.t= oPointF())); + //TODO dont update property + //m_ppos->setScenePos(value.toPointF(), KReportPosition::DontU= pdateProperty); + } else if (change =3D=3D ItemSceneHasChanged && item()) { + QPointF newPos =3D pos(); + + newPos =3D section->gridPoint(newPos); + if (newPos.x() < 0) + newPos.setX(0); + else if (newPos.x() > (scene()->width() - rect().width())) + newPos.setX(scene()->width() - rect().width()); + + if (newPos.y() < 0) + newPos.setY(0); + else if (newPos.y() > (scene()->height() - rect().height())) + newPos.setY(scene()->height() - rect().height()); + + setSceneRect(newPos, KReportItemBase::sceneSize(item()->size()= ), KReportDesignerItemRectBase::DontUpdateProperty); + } } - return QGraphicsItem::itemChange(change, value); } = diff --git a/src/wrtembed/KReportDesignerItemRectBase.h b/src/wrtembed/KRep= ortDesignerItemRectBase.h index 52eb029..4c8d190 100644 --- a/src/wrtembed/KReportDesignerItemRectBase.h +++ b/src/wrtembed/KReportDesignerItemRectBase.h @@ -51,10 +51,6 @@ public: protected: int m_dpiX; int m_dpiY; - qreal m_userHeight; - qreal m_userWidth; - qreal m_pressX; - qreal m_pressY; = enum UpdatePropertyFlag { UpdateProperty, diff --git a/src/wrtembed/KReportDesignerSection.cpp b/src/wrtembed/KReport= DesignerSection.cpp index 7a64c3a..645fbf2 100644 --- a/src/wrtembed/KReportDesignerSection.cpp +++ b/src/wrtembed/KReportDesignerSection.cpp @@ -389,30 +389,31 @@ static void replaceColors(QPixmap* original, const QC= olor& color) void KReportDesignerSectionTitle::paintEvent(QPaintEvent * event) { QPainter painter(this); - KReportDesignerSection* _section =3D dynamic_cast(parent()); - - const bool current =3D _section->d->scene =3D=3D _section->d->reportDe= signer->activeScene(); - QPalette::ColorGroup cg =3D QPalette::Inactive; - QWidget *activeWindow =3D QApplication::activeWindow(); - if (activeWindow) { - QWidget *par =3D activeWindow->focusWidget(); - if (qobject_cast(par)) { - par =3D par->parentWidget(); // we're close, pick common parent + KReportDesignerSection* section =3D dynamic_cast(parent()); + if (section) { + const bool current =3D section->d->scene =3D=3D section->d->report= Designer->activeScene(); + QPalette::ColorGroup cg =3D QPalette::Inactive; + QWidget *activeWindow =3D QApplication::activeWindow(); + if (activeWindow) { + QWidget *par =3D activeWindow->focusWidget(); + if (qobject_cast(par)) { + par =3D par->parentWidget(); // we're close, pick common p= arent + } + if (hasParent(par, this)) { + cg =3D QPalette::Active; + } } - if (hasParent(par, this)) { - cg =3D QPalette::Active; + if (current) { + painter.fillRect(rect(), palette().brush(cg, QPalette::Highlig= ht)); } - } - if (current) { - painter.fillRect(rect(), palette().brush(cg, QPalette::Highlight)); - } - painter.setPen(palette().color(cg, current ? QPalette::HighlightedText= : QPalette::WindowText)); - QPixmap pixmap(QIcon::fromTheme(QLatin1String("arrow-down")).pixmap(16= ,16)); - replaceColors(&pixmap, painter.pen().color()); - const int left =3D 25; - painter.drawPixmap(QPoint(left, (height() - pixmap.height()) / 2), pix= map); + painter.setPen(palette().color(cg, current ? QPalette::Highlighted= Text : QPalette::WindowText)); + QPixmap pixmap(QIcon::fromTheme(QLatin1String("arrow-down")).pixma= p(16,16)); + replaceColors(&pixmap, painter.pen().color()); + const int left =3D 25; + painter.drawPixmap(QPoint(left, (height() - pixmap.height()) / 2),= pixmap); = - painter.drawText(rect().adjusted(left + pixmap.width() + 4, 0, 0, 0), = Qt::AlignLeft | Qt::AlignVCenter, text()); + painter.drawText(rect().adjusted(left + pixmap.width() + 4, 0, 0, = 0), Qt::AlignLeft | Qt::AlignVCenter, text()); + } QFrame::paintEvent(event); } = diff --git a/src/wrtembed/KReportDesignerSectionDetail.cpp b/src/wrtembed/K= ReportDesignerSectionDetail.cpp index 5d00046..fdecfb7 100644 --- a/src/wrtembed/KReportDesignerSectionDetail.cpp +++ b/src/wrtembed/KReportDesignerSectionDetail.cpp @@ -29,9 +29,7 @@ class Q_DECL_HIDDEN KReportDesignerSectionDetail::Private { public: - explicit Private() - : pageBreak(KReportDesignerSectionDetail::BreakNone) - {} + explicit Private() {} = ~Private() { @@ -40,12 +38,9 @@ public: QString name; KReportDesignerSection *detail; KReportDesigner *reportDesigner; - QList groupList; - QVBoxLayout *vboxlayout; - - int pageBreak; + int pageBreak =3D KReportDesignerSectionDetail::BreakNone; }; = KReportDesignerSectionDetail::KReportDesignerSectionDetail(KReportDesigner= * rptdes) diff --git a/src/wrtembed/KReportDesignerSectionDetailGroup.cpp b/src/wrtem= bed/KReportDesignerSectionDetailGroup.cpp index c125944..455de93 100644 --- a/src/wrtembed/KReportDesignerSectionDetailGroup.cpp +++ b/src/wrtembed/KReportDesignerSectionDetailGroup.cpp @@ -29,30 +29,22 @@ class Q_DECL_HIDDEN KReportDesignerSectionDetailGroup::Private { public: - explicit Private() - : groupHeader(0) - , groupFooter(0) - , pageBreak(KReportDesignerSectionDetailGroup::BreakNone) - , sort(Qt::AscendingOrder) - {} + explicit Private() {} = ~Private() { - // I delete these here so that there are no widgets + //Delete these here so that there are no widgets //left floating around delete groupHeader; delete groupFooter; } = QString column; - KReportDesignerSection *groupHeader; KReportDesignerSection *groupFooter; - KReportDesignerSectionDetail * reportSectionDetail; - - PageBreak pageBreak; - Qt::SortOrder sort; + PageBreak pageBreak =3D KReportDesignerSectionDetailGroup::BreakNone; + Qt::SortOrder sort =3D Qt::AscendingOrder; }; = KReportDesignerSectionDetailGroup::KReportDesignerSectionDetailGroup(const= QString & column, KReportDesignerSectionDetail * rsd, diff --git a/src/wrtembed/KReportDesignerSectionScene.cpp b/src/wrtembed/KR= eportDesignerSectionScene.cpp index a86c33e..9c2d584 100644 --- a/src/wrtembed/KReportDesignerSectionScene.cpp +++ b/src/wrtembed/KReportDesignerSectionScene.cpp @@ -29,10 +29,8 @@ #include = KReportDesignerSectionScene::KReportDesignerSectionScene(qreal w, qreal h,= KReportDesigner *rd) - : QGraphicsScene(0, 0, w, h, rd) + : QGraphicsScene(0, 0, w, h, rd), m_rd(rd) { - m_rd =3D rd; - m_minorSteps =3D 0; m_dpiX =3D KReportPrivate::dpiX(); m_dpiY =3D KReportPrivate::dpiY(); = @@ -80,9 +78,9 @@ void KReportDesignerSectionScene::drawBackground(QPainter= * painter, const QRectF } = } - m_minorSteps =3D m_rd->propertySet()->property("grid-divisions").v= alue().toInt(); - m_pixelIncrementX =3D (m_majorX / m_minorSteps); - m_pixelIncrementY =3D (m_majorY / m_minorSteps); + int minorSteps =3D m_rd->propertySet()->property("grid-divisions")= .value().toInt(); + m_pixelIncrementX =3D (m_majorX / minorSteps); + m_pixelIncrementY =3D (m_majorY / minorSteps); = QPen pen =3D painter->pen(); painter->setPen(Qt::lightGray); @@ -98,7 +96,7 @@ void KReportDesignerSectionScene::drawBackground(QPainter= * painter, const QRectF for (int i =3D 0; i < wpoints; ++i) { for (int j =3D 0; j < hpoints; ++j) { //if (clip.contains(i * pixel_incrementx, j * pixel_in= crementy)){ - if (i % m_minorSteps =3D=3D 0 && j % m_minorSteps =3D= =3D 0) { + if (i % minorSteps =3D=3D 0 && j % minorSteps =3D=3D 0= ) { lines << QLine(QPoint(i * m_pixelIncrementX, j * m= _pixelIncrementY), QPoint(i * m_pixelIncrementX, j * m_pixelIncrementY + m= _majorX)); //painter->drawLine(); lines << QLine(QPoint(i * m_pixelIncrementX, j * m= _pixelIncrementY), QPoint(i * m_pixelIncrementX + m_majorY, j * m_pixelIncr= ementY)); @@ -172,9 +170,9 @@ QPointF KReportDesignerSectionScene::gridPoint(const QP= ointF& p) = } } - m_minorSteps =3D m_rd->propertySet()->property("grid-divisions").value= ().toInt(); - m_pixelIncrementX =3D (m_majorX / m_minorSteps); - m_pixelIncrementY =3D (m_majorY / m_minorSteps); + int minorSteps =3D m_rd->propertySet()->property("grid-divisions").val= ue().toInt(); + m_pixelIncrementX =3D (m_majorX / minorSteps); + m_pixelIncrementY =3D (m_majorY / minorSteps); = return QPointF(qRound((p.x() / m_pixelIncrementX)) * m_pixelIncrementX= , qRound((p.y() / m_pixelIncrementY)) * m_pixelIncrementY); } diff --git a/src/wrtembed/KReportDesignerSectionScene.h b/src/wrtembed/KRep= ortDesignerSectionScene.h index 699579f..38fcd5a 100644 --- a/src/wrtembed/KReportDesignerSectionScene.h +++ b/src/wrtembed/KReportDesignerSectionScene.h @@ -70,11 +70,10 @@ private: KReportDesigner * m_rd; = KReportUnit m_unit; - int m_minorSteps; - qreal m_majorX; - qreal m_majorY; - qreal m_pixelIncrementX; - qreal m_pixelIncrementY; + qreal m_majorX =3D 0.0; + qreal m_majorY =3D 0.0; + qreal m_pixelIncrementX =3D 0.0; + qreal m_pixelIncrementY =3D 0.0; int m_dpiX; int m_dpiY; };