summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--ChangeLog1
-rw-r--r--noncore/graphics/drawpad/drawpad.cpp6
-rw-r--r--noncore/graphics/drawpad/drawpad.h3
-rw-r--r--noncore/graphics/drawpad/drawpadcanvas.cpp6
-rw-r--r--noncore/graphics/drawpad/main.cpp1
5 files changed, 11 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index 7c26832..de27eb5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,2 +2,3 @@
+ * Fixed Drawpad initialization (Bug #1314) (mickeyl)
* Added four themes courtesy Robert Griebl (http://www.softforge.de/zstyle)
diff --git a/noncore/graphics/drawpad/drawpad.cpp b/noncore/graphics/drawpad/drawpad.cpp
index d9d0ce0..c0f42d9 100644
--- a/noncore/graphics/drawpad/drawpad.cpp
+++ b/noncore/graphics/drawpad/drawpad.cpp
@@ -51,3 +51,2 @@
using namespace Opie::Ui;
-using namespace Opie::Ui;
DrawPad::DrawPad(QWidget* parent, const char* name, WFlags /*fl*/ )
@@ -283,3 +282,6 @@ DrawPad::DrawPad(QWidget* parent, const char* name, WFlags /*fl*/ )
- finishStartup();
+ // delay the rest of the initialization and do it from within the mainloop
+ // if we don't do this, the widget layout may not be constructed upon
+ // and we will end up with a wrong QScrollview page size (Mickeyl)
+ QTimer::singleShot( 100, this, SLOT( finishStartup() ) );
}
diff --git a/noncore/graphics/drawpad/drawpad.h b/noncore/graphics/drawpad/drawpad.h
index ba9e47d..63d3057 100644
--- a/noncore/graphics/drawpad/drawpad.h
+++ b/noncore/graphics/drawpad/drawpad.h
@@ -43,5 +43,6 @@ public:
bool antiAliasing();
- void finishStartup();
private slots:
+ void finishStartup();
+
void newPage();
diff --git a/noncore/graphics/drawpad/drawpadcanvas.cpp b/noncore/graphics/drawpad/drawpadcanvas.cpp
index 423ef26..5d0c6e4 100644
--- a/noncore/graphics/drawpad/drawpadcanvas.cpp
+++ b/noncore/graphics/drawpad/drawpadcanvas.cpp
@@ -518,7 +518,9 @@ void DrawPadCanvas::drawContents(QPainter* p, int cx, int cy, int cw, int ch)
{
+ Page* currentPage = m_pages.current();
+ if ( !currentPage ) return; // no page yet --> initialization not finished (Mickeyl)
QRect clipRect(cx, cy, cw, ch);
- QRect pixmapRect(0, 0, m_pages.current()->pixmap()->width(), m_pages.current()->pixmap()->height());
+ QRect pixmapRect(0, 0, currentPage->pixmap()->width(), m_pages.current()->pixmap()->height());
QRect drawRect = pixmapRect.intersect(clipRect);
- p->drawPixmap(drawRect.topLeft(), *(m_pages.current()->pixmap()), drawRect);
+ p->drawPixmap(drawRect.topLeft(), *(currentPage->pixmap()), drawRect);
diff --git a/noncore/graphics/drawpad/main.cpp b/noncore/graphics/drawpad/main.cpp
index e48bb2e..f468022 100644
--- a/noncore/graphics/drawpad/main.cpp
+++ b/noncore/graphics/drawpad/main.cpp
@@ -18,3 +18,2 @@
using namespace Opie::Core;
-using namespace Opie::Core;
OPIE_EXPORT_APP( OApplicationFactory<DrawPad> )