[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [kreport] src: Fixes for issues picked up by coverity
From:       Adam Pigg <null () kde ! org>
Date:       2016-12-31 16:37:19
Message-ID: E1cNMel-000153-Fp () code ! kde ! org
[Download RAW message or body]

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 = 0;
 };
 
 KReportItemBase::Private::Private()
@@ -59,9 +59,7 @@ KReportItemBase::Private::~Private()
 
 
 KReportItemBase::KReportItemBase() : d(new Private())
-{
-    d->z = 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 = dynamic_cast<OROLine*>(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/KReportRenderObjects.cpp index b4f4186..233ffb9 100644
--- a/src/common/KReportRenderObjects.cpp
+++ b/src/common/KReportRenderObjects.cpp
@@ -290,16 +290,15 @@ public:
     ~Private();
     ORODocument * document;
     QList<OROPrimitive*> primitives;
-    qint64 row;
-    int height;
-    KReportSectionData::Section type;
-    QColor backgroundColor;
+    qint64 row = 0;
+    int height = 0;
+    KReportSectionData::Section type = KReportSectionData::None;
+    QColor backgroundColor = Qt::white;
 };
 
 OROSection::Private::Private()
 {
-    height = 0;
-    backgroundColor = 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 = nullptr;
     QPointF position;
     QSizeF size;
 };
@@ -413,7 +412,6 @@ public:
 OROPrimitive::OROPrimitive()
         : d(new Private())
 {
-    d->page = 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 = w->logicalDpiX();
         m_dpiY = w->logicalDpiY();
     } else {
-        m_dpiX = 75;
-        m_dpiY = 75;
+        m_dpiX = 96;
+        m_dpiY = 96;
     }
 #endif
 }
diff --git a/src/items/check/KReportItemCheck.cpp \
b/src/items/check/KReportItemCheck.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 *page, \
OROSection *section, co  
     if (section) {
         OROCheckBox *chk2 = dynamic_cast<OROCheckBox*>(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/KReportItemImage.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 = dynamic_cast<OROImage*>(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/KReportItemText.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, OROSection \
*section, const  
                     if (section) {
                         OROTextBox *tb2 = dynamic_cast<OROTextBox*>(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/KReportHTMLCSSRenderer_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 *document)
             for (int i = 0; i < section->primitiveCount(); i++) {
                 OROPrimitive * prim = section->primitive(i);
                 //kreportDebug() << "Got object type" << prim->type();
-                if (dynamic_cast<OROTextBox*>(prim)) {
-                    OROTextBox * tb = dynamic_cast<OROTextBox*>(prim);
-
+                if (OROTextBox *tb = dynamic_cast<OROTextBox*>(prim)) {
                     QColor bg = tb->textStyle().backgroundColor;
                     style = QLatin1String("position: absolute; ") +
                             QLatin1String("background-color: ") + \
QString::fromLatin1("rgba(%1,%2,%3,%4)") @@ -151,9 +149,7 @@ QString \
                HTMLCSSRenderer::renderCSS(ORODocument *document)
                     body += QLatin1String("<div class=\"style") + \
QString::number(styleindex) + QLatin1String("\">") +  tb->text() +
                             QLatin1String("</div>\n");
-                } else if (dynamic_cast<OROImage*>(prim)) {
-                    //kreportDebug() << "Saving an image";
-                    OROImage * im = dynamic_cast<OROImage*>(prim);
+                } else if (OROImage *im = dynamic_cast<OROImage*>(prim)) {
                     style = QLatin1String("position: absolute; ") +
                             QLatin1String("top: ") + \
                QString::number(im->position().y()) + QLatin1String("pt; ") +
                             QLatin1String("left: ") + \
QString::number(im->position().x()) + QLatin1String("pt; "); @@ -168,9 +164,7 @@ \
QString HTMLCSSRenderer::renderCSS(ORODocument *document)  
 
                     im->image().save(m_tempDirName + QLatin1String("/object") + \
                QString::number(s) + QString::number(i) + QLatin1String(".png"));
-                } else if (dynamic_cast<OROPicture*>(prim)) {
-                    //kreportDebug() << "Saving a picture";
-                    OROPicture * im = dynamic_cast<OROPicture*>(prim);
+                } else if (OROPicture *im = dynamic_cast<OROPicture*>(prim)) {
                     style = QLatin1String("position: absolute; ") +
                             QLatin1String("top: ") + \
                QString::number(im->position().y()) + QLatin1String("pt; ") +
                             QLatin1String("left: ") + \
                QString::number(im->position().x()) + QLatin1String("pt; ");
diff --git a/src/renderer/KReportHTMLTableRenderer_p.cpp \
b/src/renderer/KReportHTMLTableRenderer_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 *document)
             for (int i = 0; i < section->primitiveCount(); i++) {
                 OROPrimitive * prim = section->primitive(i);
 
-                if (dynamic_cast<OROTextBox*>(prim)) {
-                    OROTextBox * tb = dynamic_cast<OROTextBox*>(prim);
-
+                if (OROTextBox *tb = dynamic_cast<OROTextBox*>(prim)) {
                     tr += QLatin1String("<td>") +
                           tb->text() +
                           QLatin1String("</td>\n");
-                } else if (dynamic_cast<OROImage*>(prim)) {
-                    //kreportDebug() << "Saving an image";
-                    OROImage * im = dynamic_cast<OROImage*>(prim);
+                } else if (OROImage *im  = dynamic_cast<OROImage*>(prim)) {
                     tr += QLatin1String("<td>"
                           "<img src=\"./") + m_actualDirName + \
QLatin1String("/object") + QString::number(s) + QString::number(i) + \
QLatin1String(".png\"></img>"  "</td>\n");
                     im->image().save(m_tempDirName + QLatin1String("/object") + \
                QString::number(s) + QString::number(i) + QLatin1String(".png"));
-                } else if (dynamic_cast<OROPicture*>(prim)) {
-                    //kreportDebug() << "Saving a picture";
-                    OROPicture * im = dynamic_cast<OROPicture*>(prim);
-
+                } else if (OROPicture *im = dynamic_cast<OROPicture*>(prim)) {
                     tr += QLatin1String("<td>"
                           "<img src=\"./") + m_actualDirName + \
QLatin1String("/object") + QString::number(s) + QString::number(i) + \
QLatin1String(".png\"></img>"  "</td>\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 = 0;
     QPixmap pixmap;
     KReportRendererFactory factory;
     KReportRendererBase *renderer;
-
     QTimer renderTimer;
 };
 
diff --git a/src/renderer/KReportPreRenderer.cpp \
b/src/renderer/KReportPreRenderer.cpp index c645777..1ed5df5 100644
--- a/src/renderer/KReportPreRenderer.cpp
+++ b/src/renderer/KReportPreRenderer.cpp
@@ -368,8 +368,7 @@ qreal KReportPreRendererPrivate::renderSection(const \
KReportSectionData & sectio  }
     for (int i = 0; i < m_page->primitiveCount(); ++i) {
         OROPrimitive *prim = m_page->primitive(i);
-        if (dynamic_cast<OROTextBox*>(prim)) {
-            OROTextBox *text = dynamic_cast<OROTextBox*>(prim);
+        if (OROTextBox *text = dynamic_cast<OROTextBox*>(prim)) {
             if (text->requiresPostProcessing()) {
                 m_postProcText.append(text);
             }
diff --git a/src/renderer/KReportPrintRenderer_p.cpp \
b/src/renderer/KReportPrintRenderer_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 KReportRendererContext \
                &context, ORODocument *d
                 prim->setPosition(QPointF(prim->position().x() * scaleX, \
                prim->position().y() * scaleY));
                 prim->setSize(QSizeF(prim->size().width() * scaleX, \
                prim->size().height() * scaleY));
                 //kreportDebug() << "Rendering object" << i << "type" << \
                prim->type();
-                if (dynamic_cast<OROTextBox*>(prim)) {
-                    //kreportDebug() << "Text Box";
-                    OROTextBox * tb = dynamic_cast<OROTextBox*>(prim);
-
+                if (OROTextBox *tb = dynamic_cast<OROTextBox*>(prim)) {
                     QPointF ps = tb->position();
                     QSizeF sz = tb->size();
                     QRectF rc = QRectF(ps.x(), ps.y(), sz.width(), sz.height());
@@ -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<OROLine*>(prim)) {
-                    //kreportDebug() << "Line";
-                    OROLine * ln = dynamic_cast<OROLine*>(prim);
+                } else if (OROLine *ln = dynamic_cast<OROLine*>(prim)) {
                     QPointF s = 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::Antialiasing, false);
                     context.painter()->restore();
-                } else if (dynamic_cast<OROImage*>(prim)) {
-                    //kreportDebug() << "Image";
-                    OROImage * im = dynamic_cast<OROImage*>(prim);
+                } else if (OROImage *im = dynamic_cast<OROImage*>(prim)) {
                     QPointF ps = im->position();
                     QSizeF sz = im->size();
                     QRectF rc = QRectF(ps.x(), ps.y(), sz.width(), sz.height());
@@ -158,10 +151,7 @@ bool PrintRenderer::render(const KReportRendererContext \
&context, ORODocument *d  
                     QRectF sr = QRectF(QPointF(0.0, 0.0), \
rc.size().boundedTo(img.size()));  context.painter()->drawImage(rc.topLeft(), img, \
                sr);
-                } else if (dynamic_cast<ORORect*>(prim)) {
-                    //kreportDebug() << "Rect";
-                    ORORect * re = dynamic_cast<ORORect*>(prim);
-
+                } else if (ORORect *re = dynamic_cast<ORORect*>(prim)) {
                     QPointF ps = re->position();
                     QSizeF sz = re->size();
                     QRectF rc = QRectF(ps.x(), ps.y(), sz.width(), sz.height());
@@ -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<OROEllipse*>(prim)) {
-                    OROEllipse * re = dynamic_cast<OROEllipse*>(prim);
-
+                } else if (OROEllipse *re = dynamic_cast<OROEllipse*>(prim)) {
                     QPointF ps = re->position();
                     QSizeF sz = re->size();
                     QRectF rc = QRectF(ps.x(), ps.y(), sz.width(), sz.height());
@@ -183,14 +171,12 @@ bool PrintRenderer::render(const KReportRendererContext \
&context, ORODocument *d  context.painter()->setBrush(re->brush());
                     context.painter()->drawEllipse(rc);
                     context.painter()->restore();
-                } else if (dynamic_cast<OROPicture*>(prim)) {
-                    OROPicture * im = dynamic_cast<OROPicture*>(prim);
+                } else if (OROPicture *im = dynamic_cast<OROPicture*>(prim)) {
                     QPointF ps = im->position();
                     QSizeF sz = im->size();
                     QRectF rc = QRectF(ps.x(), ps.y(), sz.width(), sz.height());
                     context.painter()->drawPicture(rc.topLeft(), *(im->picture()));
-                } else if (dynamic_cast<OROCheckBox*>(prim)) {
-                    OROCheckBox * chk = dynamic_cast<OROCheckBox*>(prim);
+                } else if (OROCheckBox *chk = dynamic_cast<OROCheckBox*>(prim)) {
                     QPointF ps = chk->position();
                     QSizeF sz = chk->size();
                     QRectF rc = QRectF(ps.x(), ps.y(), sz.width(), sz.height());
diff --git a/src/renderer/KReportScreenRenderer_p.cpp \
b/src/renderer/KReportScreenRenderer_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 = 0; i < p->primitiveCount(); i++) {
         OROPrimitive *prim = p->primitive(i);
 
-        if (dynamic_cast<OROTextBox*>(prim)) {
-            OROTextBox *tb = dynamic_cast<OROTextBox*>(prim);
-
+        if (OROTextBox *tb = dynamic_cast<OROTextBox*>(prim)) {
             QPointF ps = tb->position();
             QSizeF sz = tb->size();
             QRectF rc = 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<OROLine*>(prim)) {
-            OROLine * ln = dynamic_cast<OROLine*>(prim);
+        else if (OROLine *ln = dynamic_cast<OROLine*>(prim)) {
             QPointF s = ln->startPoint();
             QPointF e = 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<ORORect*>(prim)) {
-            ORORect * re = dynamic_cast<ORORect*>(prim);
-
+        else if (ORORect *re = dynamic_cast<ORORect*>(prim)) {
             QPointF ps = re->position();
             QSizeF sz = re->size();
             QRectF rc = QRectF(ps.x(), ps.y(), sz.width(), sz.height());
@@ -106,9 +101,7 @@ bool ScreenRenderer::render(const KReportRendererContext& \
context, ORODocument *  context.painter()->drawRect(rc);
             context.painter()->restore();
         }
-        else if (dynamic_cast<OROEllipse*>(prim)) {
-            OROEllipse * re = dynamic_cast<OROEllipse*>(prim);
-
+        else if (OROEllipse *re = dynamic_cast<OROEllipse*>(prim)) {
             QPointF ps = re->position();
             QSizeF sz = re->size();
             QRectF rc = QRectF(ps.x(), ps.y(), sz.width(), sz.height());
@@ -119,8 +112,7 @@ bool ScreenRenderer::render(const KReportRendererContext& \
context, ORODocument *  context.painter()->drawEllipse(rc);
             context.painter()->restore();
         }
-        else if (dynamic_cast<OROImage*>(prim)) {
-            OROImage * im = dynamic_cast<OROImage*>(prim);
+        else if ( OROImage *im = dynamic_cast<OROImage*>(prim)) {
             QPointF ps = im->position();
             QSizeF sz = im->size();
             QRectF rc = QRectF(ps.x(), ps.y(), sz.width(), sz.height());
@@ -133,8 +125,7 @@ bool ScreenRenderer::render(const KReportRendererContext& \
                context, ORODocument *
             QRectF sr = QRectF(QPointF(0.0, 0.0), rc.size().boundedTo(img.size()));
             context.painter()->drawImage(rc.topLeft(), img, sr);
         }
-        else if (dynamic_cast<OROPicture*>(prim)) {
-            OROPicture * im = dynamic_cast<OROPicture*>(prim);
+        else if (OROPicture *im = dynamic_cast<OROPicture*>(prim)) {
             QPointF ps = im->position();
             QSizeF sz = im->size();
             QRectF rc = QRectF(ps.x(), ps.y(), sz.width(), sz.height());
@@ -142,8 +133,7 @@ bool ScreenRenderer::render(const KReportRendererContext& \
                context, ORODocument *
             context.painter()->drawPicture(rc.topLeft(), *(im->picture()));
             context.painter()->restore();
         }
-        else if (dynamic_cast<OROCheckBox*>(prim)) {
-            OROCheckBox * chk = dynamic_cast<OROCheckBox*>(prim);
+        else if (OROCheckBox *chk = dynamic_cast<OROCheckBox*>(prim)) {
             QPointF ps = chk->position();
             QSizeF sz = chk->size();
             QRectF rc = 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<QString, QVariant> groups;
     QMap<KReportSectionData*, Scripting::Section*> sectionMap;
 };
 
-KReportScriptHandler::Private::Private()
+KReportScriptHandler::Private::Private() : constants(new KReportScriptConstants), \
debug(new KReportScriptDebug), draw(new KReportScriptDraw)  {
-    //NOTE these are on the heap so that engine can delete them
-    
-    //Add constants object
-    constants = new KReportScriptConstants();
-
-    //A simple debug function to allow printing from functions
-    debug = new KReportScriptDebug();
-
-    //A simple drawing object
-    draw = new KReportScriptDraw();
 }
 
 KReportScriptHandler::Private::~Private()
diff --git a/src/wrtembed/KReportDesigner.cpp b/src/wrtembed/KReportDesigner.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 = 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 = nullptr;
+    KReportDesignerSection *pageHeaderFirst = nullptr;
+    KReportDesignerSection *pageHeaderOdd = nullptr;
+    KReportDesignerSection *pageHeaderEven = nullptr;
+    KReportDesignerSection *pageHeaderLast = nullptr;
+    KReportDesignerSection *pageHeaderAny = nullptr;
+
+    KReportDesignerSection *pageFooterFirst = nullptr;
+    KReportDesignerSection *pageFooterOdd = nullptr;
+    KReportDesignerSection *pageFooterEven = nullptr;
+    KReportDesignerSection *pageFooterLast = nullptr;
+    KReportDesignerSection *pageFooterAny = nullptr;
+    KReportDesignerSection *reportFooter = nullptr;
+    KReportDesignerSectionDetail *detail = nullptr;
 
     //Properties
     KPropertySet *set;
@@ -193,17 +172,17 @@ public:
     QAction *itemRaiseAction;
     QAction *itemLowerAction;
 
-    qreal pressX;
-    qreal pressY;
-    qreal releaseX;
-    qreal releaseY;
+    qreal pressX = -1;
+    qreal pressY = -1;
+    qreal releaseX = -1;
+    qreal releaseY = -1;
 
-    bool modified; // true if this document has been modified, false otherwise
+    bool modified = false; // true if this document has been modified, false \
otherwise  
     QString originalInterpreter; //Value of the script interpreter at load time
     QString originalScript; //Value of the script at load time
 
-    KReportData *kordata;
+    KReportData *kordata = nullptr;
 };
 
 KReportDesigner::KReportDesigner(QWidget * parent)
@@ -1172,13 +1151,15 @@ void KReportDesigner::slotEditPaste(QGraphicsScene * canvas)
             //kreportDebug() << type;
             KReportDesignerItemBase *ent = item->clone();
             KReportItemBase *new_obj = dynamic_cast<KReportItemBase*>(ent);
-            new_obj->setEntityName(suggestEntityName(type));
-            if (activeItem) {
-                new_obj->setPosition(KReportItemBase::positionFromScene(QPointF(activeItem->x() \
                + 10, activeItem->y() + 10)));
-            } else {
-                new_obj->setPosition(KReportItemBase::positionFromScene(QPointF(0, \
0))); +            if (new_obj) {
+                new_obj->setEntityName(suggestEntityName(type));
+                if (activeItem) {
+                    \
new_obj->setPosition(KReportItemBase::positionFromScene(QPointF(activeItem->x() + 10, \
activeItem->y() + 10))); +                } else {
+                    \
new_obj->setPosition(KReportItemBase::positionFromScene(QPointF(0, 0))); +            \
} +                changeSet(new_obj->propertySet());
             }
-            changeSet(new_obj->propertySet());
             QGraphicsItem *pasted_ent = dynamic_cast<QGraphicsItem*>(ent);
             if (pasted_ent) {
                 pasted_ent->setSelected(true);
diff --git a/src/wrtembed/KReportDesignerItemLine.cpp \
b/src/wrtembed/KReportDesignerItemLine.cpp index 3548ea8..aaa6a27 100644
--- a/src/wrtembed/KReportDesignerItemLine.cpp
+++ b/src/wrtembed/KReportDesignerItemLine.cpp
@@ -170,7 +170,12 @@ void \
KReportDesignerItemLine::mouseMoveEvent(QGraphicsSceneMouseEvent * event)  int x;
     int y;
 
-    QPointF p = dynamic_cast<KReportDesignerSectionScene*>(scene())->gridPoint(event->scenePos());
 +    KReportDesignerSectionScene *section = \
qobject_cast<KReportDesignerSectionScene*>(scene()); +    if (!section) {
+        return;
+    }
+        
+    QPointF p = section->gridPoint(event->scenePos());
     //kreportDebug() << p;
     x = p.x();
     y = p.y();
@@ -188,7 +193,7 @@ void \
KReportDesignerItemLine::mouseMoveEvent(QGraphicsSceneMouseEvent * event)  \
m_end->setValue(positionFromScene(QPointF(x,y)));  break;
     default:
-        QPointF d = mapToItem(this, \
dynamic_cast<KReportDesignerSectionScene*>(scene())->gridPoint(event->scenePos())) - \
mapToItem(this, dynamic_cast<KReportDesignerSectionScene*>(scene())->gridPoint(event->lastScenePos()));
 +        QPointF d = mapToItem(this, section->gridPoint(event->scenePos())) - \
mapToItem(this, section->gridPoint(event->lastScenePos()));  
         if (((line().p1() + d).x() >= 0) &&
                 ((line().p2() + d).x() >= 0) &&
diff --git a/src/wrtembed/KReportDesignerItemRectBase.cpp \
b/src/wrtembed/KReportDesignerItemRectBase.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 = 0;
 };
 
 KReportDesignerItemRectBase::Private::Private()
@@ -112,7 +112,12 @@ void \
KReportDesignerItemRectBase::mouseMoveEvent(QGraphicsSceneMouseEvent * even  
     qreal w, h;
 
-    QPointF p  = dynamic_cast<KReportDesignerSectionScene*>(scene())->gridPoint(event->scenePos());
 +    KReportDesignerSectionScene *section = \
qobject_cast<KReportDesignerSectionScene*>(scene()); +    if (!section) {
+        return;
+    }
+    
+    QPointF p  = section->gridPoint(event->scenePos());
     w = p.x() - scenePos().x();
     h = p.y() - scenePos().y();
 
@@ -266,42 +271,45 @@ int KReportDesignerItemRectBase::grabHandle(QPointF pos)
 
 QVariant KReportDesignerItemRectBase::itemChange(GraphicsItemChange change, const \
QVariant &value)  {
-    if (change == ItemPositionChange && scene()) {
-        QPointF newPos = value.toPointF();
-
-        newPos = dynamic_cast<KReportDesignerSectionScene*>(scene())->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 == ItemPositionHasChanged && scene()) {
-        item()->setPosition(KReportItemBase::positionFromScene(value.toPointF()));
-        //TODO dont update property
-        //m_ppos->setScenePos(value.toPointF(), \
                KReportPosition::DontUpdateProperty);
-    } else if (change == ItemSceneHasChanged && scene() && item()) {
-        QPointF newPos = pos();
-
-        newPos = dynamic_cast<KReportDesignerSectionScene*>(scene())->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); +    KReportDesignerSectionScene \
*section = qobject_cast<KReportDesignerSectionScene*>(scene()); +    if (section) {
+            
+        if (change == ItemPositionChange) {
+            QPointF newPos = value.toPointF();
+            
+            newPos = 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 == ItemPositionHasChanged) {
+            item()->setPosition(KReportItemBase::positionFromScene(value.toPointF()));
 +            //TODO dont update property
+            //m_ppos->setScenePos(value.toPointF(), \
KReportPosition::DontUpdateProperty); +        } else if (change == \
ItemSceneHasChanged && item()) { +            QPointF newPos = pos();
+
+            newPos = 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/KReportDesignerItemRectBase.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/KReportDesignerSection.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 QColor& \
color)  void KReportDesignerSectionTitle::paintEvent(QPaintEvent * event)
 {
     QPainter painter(this);
-    KReportDesignerSection* _section = \
                dynamic_cast<KReportDesignerSection*>(parent());
-
-    const bool current = _section->d->scene == \
                _section->d->reportDesigner->activeScene();
-    QPalette::ColorGroup cg = QPalette::Inactive;
-    QWidget *activeWindow = QApplication::activeWindow();
-    if (activeWindow) {
-        QWidget *par = activeWindow->focusWidget();
-        if (qobject_cast<KReportDesignerSectionView*>(par)) {
-            par = par->parentWidget(); // we're close, pick common parent
+    KReportDesignerSection* section = \
dynamic_cast<KReportDesignerSection*>(parent()); +    if (section) {
+        const bool current = section->d->scene == \
section->d->reportDesigner->activeScene(); +        QPalette::ColorGroup cg = \
QPalette::Inactive; +        QWidget *activeWindow = QApplication::activeWindow();
+        if (activeWindow) {
+            QWidget *par = activeWindow->focusWidget();
+            if (qobject_cast<KReportDesignerSectionView*>(par)) {
+                par = par->parentWidget(); // we're close, pick common parent
+            }
+            if (hasParent(par, this)) {
+                cg = QPalette::Active;
+            }
         }
-        if (hasParent(par, this)) {
-            cg = QPalette::Active;
+        if (current) {
+            painter.fillRect(rect(), palette().brush(cg, QPalette::Highlight));
         }
-    }
-    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 = 25;
-    painter.drawPixmap(QPoint(left, (height() - pixmap.height()) / 2), pixmap);
+        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 = 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/KReportDesignerSectionDetail.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<KReportDesignerSectionDetailGroup*> groupList;
-
     QVBoxLayout *vboxlayout;
-
-    int pageBreak;
+    int pageBreak = KReportDesignerSectionDetail::BreakNone;
 };
 
 KReportDesignerSectionDetail::KReportDesignerSectionDetail(KReportDesigner * rptdes)
diff --git a/src/wrtembed/KReportDesignerSectionDetailGroup.cpp \
b/src/wrtembed/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 = KReportDesignerSectionDetailGroup::BreakNone;
+    Qt::SortOrder sort = Qt::AscendingOrder;
 };
 
 KReportDesignerSectionDetailGroup::KReportDesignerSectionDetailGroup(const QString & \
                column, KReportDesignerSectionDetail * rsd,
diff --git a/src/wrtembed/KReportDesignerSectionScene.cpp \
b/src/wrtembed/KReportDesignerSectionScene.cpp index a86c33e..9c2d584 100644
--- a/src/wrtembed/KReportDesignerSectionScene.cpp
+++ b/src/wrtembed/KReportDesignerSectionScene.cpp
@@ -29,10 +29,8 @@
 #include <QGraphicsSceneMouseEvent>
 
 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 = rd;
-    m_minorSteps = 0;
     m_dpiX = KReportPrivate::dpiX();
     m_dpiY = KReportPrivate::dpiY();
 
@@ -80,9 +78,9 @@ void KReportDesignerSectionScene::drawBackground(QPainter* painter, \
const QRectF  }
 
         }
-        m_minorSteps = \
                m_rd->propertySet()->property("grid-divisions").value().toInt();
-        m_pixelIncrementX = (m_majorX / m_minorSteps);
-        m_pixelIncrementY = (m_majorY / m_minorSteps);
+        int minorSteps = \
m_rd->propertySet()->property("grid-divisions").value().toInt(); +        \
m_pixelIncrementX = (m_majorX / minorSteps); +        m_pixelIncrementY = (m_majorY / \
minorSteps);  
         QPen pen = painter->pen();
         painter->setPen(Qt::lightGray);
@@ -98,7 +96,7 @@ void KReportDesignerSectionScene::drawBackground(QPainter* painter, \
const QRectF  for (int i = 0; i < wpoints; ++i) {
                 for (int j = 0; j < hpoints; ++j) {
                     //if (clip.contains(i * pixel_incrementx, j * \
                pixel_incrementy)){
-                    if (i % m_minorSteps == 0 && j % m_minorSteps == 0) {
+                    if (i % minorSteps == 0 && j % minorSteps == 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_pixelIncrementY)); \
@@ -172,9 +170,9 @@ QPointF KReportDesignerSectionScene::gridPoint(const QPointF& p)  \
  }
     }
-    m_minorSteps = m_rd->propertySet()->property("grid-divisions").value().toInt();
-    m_pixelIncrementX = (m_majorX / m_minorSteps);
-    m_pixelIncrementY = (m_majorY / m_minorSteps);
+    int minorSteps = \
m_rd->propertySet()->property("grid-divisions").value().toInt(); +    \
m_pixelIncrementX = (m_majorX / minorSteps); +    m_pixelIncrementY = (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/KReportDesignerSectionScene.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 = 0.0;
+    qreal m_majorY = 0.0;
+    qreal m_pixelIncrementX = 0.0;
+    qreal m_pixelIncrementY = 0.0;
     int m_dpiX;
     int m_dpiY;
 };


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic