[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: koffice/kexi/plugins/reportspgz
From: Adam Pigg <adam () piggz ! co ! uk>
Date: 2009-08-26 19:17:07
Message-ID: 1251314227.697759.12906.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 1016006 by piggz:
Fix potential crash if report schema is invalid and fails to parse, resulting in no document.
M +19 -14 kexireportpage.cpp
M +8 -4 kexireportview.cpp
--- trunk/koffice/kexi/plugins/reportspgz/kexireportpage.cpp #1016005:1016006
@@ -38,21 +38,24 @@
kDebug() << "CREATED PAGE";
m_reportDocument = r;
m_page = 1;
-
- QString pageSize = r->pageOptions().getPageSize();
int pageWidth = 0;
int pageHeight = 0;
- if (pageSize == "Custom") {
- // if this is custom sized sheet of paper we will just use those values
- pageWidth = (int)(r->pageOptions().getCustomWidth());
- pageHeight = (int)(r->pageOptions().getCustomHeight());
- } else {
- // lookup the correct size information for the specified size paper
- pageWidth = r->pageOptions().widthPx();
- pageHeight = r->pageOptions().heightPx();
+
+ if (m_reportDocument) {
+ QString pageSize = r->pageOptions().getPageSize();
+
+
+ if (pageSize == "Custom") {
+ // if this is custom sized sheet of paper we will just use those values
+ pageWidth = (int)(r->pageOptions().getCustomWidth());
+ pageHeight = (int)(r->pageOptions().getCustomHeight());
+ } else {
+ // lookup the correct size information for the specified size paper
+ pageWidth = r->pageOptions().widthPx();
+ pageHeight = r->pageOptions().heightPx();
+ }
}
-
setFixedSize(pageWidth, pageHeight);
kDebug() << "PAGE IS " << pageWidth << "x" << pageHeight;
@@ -74,9 +77,11 @@
m_page = p;
m_pixmap->fill();
QPainter qp(m_pixmap);
- KRScreenRender sr;
- sr.setPainter(&qp);
- sr.render(m_reportDocument, p - 1);
+ if (m_reportDocument) {
+ KRScreenRender sr;
+ sr.setPainter(&qp);
+ sr.render(m_reportDocument, p - 1);
+ }
m_repaint = true;
repaint();
}
--- trunk/koffice/kexi/plugins/reportspgz/kexireportview.cpp #1016005:1016006
@@ -228,7 +228,9 @@
QDomElement conn = root.firstChildElement( "connection" );
m_preRenderer = new ORPreRender(tempData()->document);
- m_preRenderer->setSourceData(sourceData(conn));
+ if (!conn.isNull()) {
+ m_preRenderer->setSourceData(sourceData(conn));
+ }
m_preRenderer->setName( tempData()->name );
m_currentPage = 1;
@@ -237,9 +239,11 @@
m_preRenderer->registerScriptObject(m_kexi, "Kexi" );
m_reportDocument = m_preRenderer->generate();
- m_pageCount = m_reportDocument->pages();
- m_pageSelector->setRecordCount(m_pageCount);
-
+ if (m_reportDocument) {
+ m_pageCount = m_reportDocument->pages();
+ m_pageSelector->setRecordCount(m_pageCount);
+ }
+
m_reportWidget = new KexiReportPage(this, m_reportDocument);
m_reportWidget->setObjectName("KexiReportPage");
m_scrollArea->setWidget(m_reportWidget);
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic