Hello community,
here is the log from the commit of package kdeedu4 for openSUSE:11.4
checked in at Fri Aug 12 23:49:00 CEST 2011.
--------
--- old-versions/11.4/all/kdeedu4/kdeedu4-noarch.changes 2011-01-20 21:05:09.000000000 +0100
+++ 11.4/kdeedu4/kdeedu4-noarch.changes 2011-05-21 21:59:58.000000000 +0200
@@ -1,0 +2,5 @@
+Sat May 21 19:55:29 UTC 2011 - ctrippe@opensuse.org
+
+- Marble: Fix crash ehen zooming (bnc#695213)
+
+-------------------------------------------------------------------
kdeedu4.changes: same change
Package does not exist at destination yet. Using Fallback old-versions/11.4/all/kdeedu4
Destination is old-versions/11.4/UPDATES/all/kdeedu4
calling whatdependson for 11.4-i586
New:
----
marble_crash_zooming_bnc695213.diff
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kdeedu4-noarch.spec ++++++
--- /var/tmp/diff_new_pack.3iiHy4/_old 2011-08-12 23:48:38.000000000 +0200
+++ /var/tmp/diff_new_pack.3iiHy4/_new 2011-08-12 23:48:38.000000000 +0200
@@ -28,7 +28,7 @@
Summary: General Data for KDE Education Applications
Url: http://edu.kde.org
Version: 4.6.0
-Release: 1
+Release: 1.<RELEASE2>
Source0: kdeedu-%version.tar.bz2
Patch0: 4_6_BRANCH.diff
BuildRoot: %{_tmppath}/%{name}-%{version}-build
++++++ kdeedu4.spec ++++++
--- /var/tmp/diff_new_pack.3iiHy4/_old 2011-08-12 23:48:38.000000000 +0200
+++ /var/tmp/diff_new_pack.3iiHy4/_new 2011-08-12 23:48:38.000000000 +0200
@@ -50,7 +50,7 @@
Summary: General Data for KDE Education Applications
Url: http://edu.kde.org
Version: 4.6.0
-Release: 1
+Release: 4.<RELEASE5>
Source0: kdeedu-%version.tar.bz2
Patch0: 4_6_BRANCH.diff
Patch1: marble-designer-plugin.diff
@@ -59,6 +59,7 @@
%if %suse_version < 1130
Patch4: no-build_for_rocs.diff
%endif
+Patch5: marble_crash_zooming_bnc695213.diff
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%kde4_runtime_requires
Requires: libkdeedu4
@@ -106,6 +107,7 @@
%if %suse_version < 1130
%patch4 -p0
%endif
+%patch5
%build
%ifarch ppc ppc64
@@ -366,6 +368,7 @@
%if 0
%package -n kalzium-devel
+
License: GPL v2 or later
Group: Productivity/Scientific/Chemistry
Summary: Periodic Table of Elements
++++++ marble_crash_zooming_bnc695213.diff ++++++
commit 3a6a1e280532b79299b8b8a3bc17ed87faeaa834
Author: Bernhard Beschow
Date: Thu Apr 14 22:34:28 2011 +0200
ViewParams: use QSharedPointer to hold the canvas and coast images
* fixes a crash when the appearance of the download progress bar causes a resize of the map during painting
CCBUG: 265599
RevBy: Dennis Nienhüser
FIXED-IN: 1.0.4
(cherry picked from commit aa598a3a80233718711699562437e77b4cbee875)
diff --git a/src/lib/EquirectScanlineTextureMapper.cpp b/src/lib/EquirectScanlineTextureMapper.cpp
index 422b22c..ce60ca1 100644
--- marble/src/lib/EquirectScanlineTextureMapper.cpp
+++ marble/src/lib/EquirectScanlineTextureMapper.cpp
@@ -64,7 +64,7 @@ void EquirectScanlineTextureMapper::setRepaintNeeded()
void EquirectScanlineTextureMapper::mapTexture( ViewParams *viewParams, TextureColorizer *texColorizer )
{
- QImage *canvasImage = viewParams->canvasImage();
+ QSharedPointer<QImage> canvasImage = viewParams->canvasImagePtr();
const int imageHeight = canvasImage->height();
const int imageWidth = canvasImage->width();
const qint64 radius = viewParams->radius();
diff --git a/src/lib/MercatorScanlineTextureMapper.cpp b/src/lib/MercatorScanlineTextureMapper.cpp
index d0d5c8c..eeaba58 100644
--- marble/src/lib/MercatorScanlineTextureMapper.cpp
+++ marble/src/lib/MercatorScanlineTextureMapper.cpp
@@ -66,7 +66,7 @@ void MercatorScanlineTextureMapper::setRepaintNeeded()
void MercatorScanlineTextureMapper::mapTexture( ViewParams *viewParams, TextureColorizer *texColorizer )
{
- QImage *canvasImage = viewParams->canvasImage();
+ QSharedPointer<QImage> canvasImage = viewParams->canvasImagePtr();
const int imageHeight = canvasImage->height();
const int imageWidth = canvasImage->width();
const qint64 radius = viewParams->radius();
diff --git a/src/lib/PlacemarkLayout.cpp b/src/lib/PlacemarkLayout.cpp
index 1b57dca..c486545 100644
--- marble/src/lib/PlacemarkLayout.cpp
+++ marble/src/lib/PlacemarkLayout.cpp
@@ -188,7 +188,7 @@ void PlacemarkLayout::paintPlaceFolder( QPainter *painter,
return;
// const int imgwidth = viewParams->canvasImage()->width();
- const int imgheight = viewParams->canvasImage()->height();
+ const int imgheight = viewParams->canvasImagePtr()->height();
if ( m_styleResetRequested ) {
m_styleResetRequested = false;
diff --git a/src/lib/SphericalScanlineTextureMapper.cpp b/src/lib/SphericalScanlineTextureMapper.cpp
index ee58679..a575924 100644
--- marble/src/lib/SphericalScanlineTextureMapper.cpp
+++ marble/src/lib/SphericalScanlineTextureMapper.cpp
@@ -68,7 +68,7 @@ void SphericalScanlineTextureMapper::setRepaintNeeded()
void SphericalScanlineTextureMapper::mapTexture( ViewParams *viewParams, TextureColorizer *texColorizer )
{
- QImage *canvasImage = viewParams->canvasImage();
+ QSharedPointer<QImage> canvasImage = viewParams->canvasImagePtr();
const int imageHeight = canvasImage->height();
const int imageWidth = canvasImage->width();
const qint64 radius = viewParams->radius();
diff --git a/src/lib/TextureColorizer.cpp b/src/lib/TextureColorizer.cpp
index 7549c4e..0cf9be5 100644
--- marble/src/lib/TextureColorizer.cpp
+++ marble/src/lib/TextureColorizer.cpp
@@ -15,6 +15,7 @@
#include <cmath>
#include
+#include
#include
#include
#include
@@ -170,8 +171,8 @@ void TextureColorizer::colorize(ViewParams *viewParams)
// update coastimg
m_veccomposer.drawTextureMap( viewParams );
- QImage *origimg = viewParams->canvasImage();
- const QImage *coastimg = viewParams->coastImage();
+ QSharedPointer<QImage> origimg = viewParams->canvasImagePtr();
+ QSharedPointer<const QImage> coastimg = viewParams->coastImagePtr();
const qint64 radius = viewParams->radius();
const int imgheight = origimg->height();
diff --git a/src/lib/TileScalingTextureMapper.cpp b/src/lib/TileScalingTextureMapper.cpp
index 8477f52..8a69a01 100644
--- marble/src/lib/TileScalingTextureMapper.cpp
+++ marble/src/lib/TileScalingTextureMapper.cpp
@@ -73,7 +73,7 @@ void TileScalingTextureMapper::mapTexture( GeoPainter *geoPainter, ViewParams *v
if ( viewParams->radius() <= 0 )
return;
- QImage *canvasImage = viewParams->canvasImage();
+ QSharedPointer<QImage> canvasImage = viewParams->canvasImagePtr();
const int imageHeight = canvasImage->height();
const int imageWidth = canvasImage->width();
const qint64 radius = viewParams->radius();
@@ -109,7 +109,7 @@ void TileScalingTextureMapper::mapTexture( GeoPainter *geoPainter, ViewParams *v
if ( texColorizer || m_oldRadius != radius ) {
m_cache->clear();
- QPainter painter( canvasImage );
+ QPainter painter( canvasImage.data() );
painter.setRenderHint( QPainter::SmoothPixmapTransform, highQuality );
for ( int tileY = minTileY; tileY <= maxTileY; ++tileY ) {
diff --git a/src/lib/VectorComposer.cpp b/src/lib/VectorComposer.cpp
index 26d3dca..68a0367 100644
--- marble/src/lib/VectorComposer.cpp
+++ marble/src/lib/VectorComposer.cpp
@@ -150,7 +150,7 @@ void VectorComposer::drawTextureMap(ViewParams *viewParams)
{
loadCoastlines();
- QImage *origimg = viewParams->coastImage();
+ QSharedPointer<QImage> origimg = viewParams->coastImagePtr();
Quaternion rotAxis = viewParams->planetAxis();
origimg->fill( Qt::transparent );
@@ -173,7 +173,7 @@ void VectorComposer::drawTextureMap(ViewParams *viewParams)
m_vectorMap->createFromPntMap( s_coastLines, viewParams->viewport() );
m_vectorMap->setPen( m_textureLandPen );
m_vectorMap->setBrush( m_textureLandBrush );
- m_vectorMap->drawMap( origimg, antialiased, viewParams->viewport(),
+ m_vectorMap->drawMap( origimg.data(), antialiased, viewParams->viewport(),
viewParams->mapQuality() );
// Islands
@@ -183,7 +183,7 @@ void VectorComposer::drawTextureMap(ViewParams *viewParams)
m_vectorMap->createFromPntMap( s_islands, viewParams->viewport() );
m_vectorMap->setPen( m_textureLandPen );
m_vectorMap->setBrush( m_textureLandBrush );
- m_vectorMap->drawMap( origimg, antialiased, viewParams->viewport(),
+ m_vectorMap->drawMap( origimg.data(), antialiased, viewParams->viewport(),
viewParams->mapQuality() );
bool showWaterbodies, showLakes;
@@ -198,13 +198,13 @@ void VectorComposer::drawTextureMap(ViewParams *viewParams)
m_vectorMap->createFromPntMap( s_lakes, viewParams->viewport() );
m_vectorMap->setPen( Qt::NoPen );
m_vectorMap->setBrush( m_textureLakeBrush );
- m_vectorMap->drawMap( origimg, antialiased, viewParams->viewport(),
+ m_vectorMap->drawMap( origimg.data(), antialiased, viewParams->viewport(),
viewParams->mapQuality() );
m_vectorMap->createFromPntMap( s_lakeislands, viewParams->viewport() );
m_vectorMap->setPen( Qt::NoPen );
m_vectorMap->setBrush( m_textureLandBrush );
- m_vectorMap->drawMap( origimg, antialiased, viewParams->viewport(),
+ m_vectorMap->drawMap( origimg.data(), antialiased, viewParams->viewport(),
viewParams->mapQuality() );
}
@@ -219,7 +219,7 @@ void VectorComposer::drawTextureMap(ViewParams *viewParams)
m_vectorMap->setPen( Qt::NoPen );
m_vectorMap->setBrush( m_textureGlacierBrush );
- m_vectorMap->drawMap( origimg, antialiased, viewParams->viewport(),
+ m_vectorMap->drawMap( origimg.data(), antialiased, viewParams->viewport(),
viewParams->mapQuality() );
}
diff --git a/src/lib/ViewParams.cpp b/src/lib/ViewParams.cpp
index eed1bef..5b53e7b 100644
--- marble/src/lib/ViewParams.cpp
+++ marble/src/lib/ViewParams.cpp
@@ -60,8 +60,8 @@ public:
GeoSceneSettings m_globalSettings;
// Cached data that will make painting faster.
- QImage *m_canvasImage; // Base image with space and atmosphere
- QImage *m_coastImage; // A slightly higher level image.
+ QSharedPointer<QImage> m_canvasImage; // Base image with space and atmosphere
+ QSharedPointer<QImage> m_coastImage; // A slightly higher level image.
void initGlobalSettings();
void propagateGlobalToLocalSettings();
@@ -85,8 +85,6 @@ ViewParamsPrivate::ViewParamsPrivate()
ViewParamsPrivate::~ViewParamsPrivate()
{
- delete m_canvasImage;
- delete m_coastImage;
}
void ViewParamsPrivate::initGlobalSettings()
@@ -156,7 +154,7 @@ void ViewParams::setProjection(Projection newProjection)
// Repaint the background if necessary
if ( !currentProjection()->mapCoversViewport( viewport() ) ) {
- canvasImage()->fill(0); // Using Qt::transparent is wrong here (equals "18")!
+ d->m_canvasImage->fill(0); // Using Qt::transparent is wrong here (equals "18")!
}
}
@@ -238,7 +236,7 @@ void ViewParams::setRadius(int newRadius)
// Repaint the background if necessary
if ( !currentProjection()->mapCoversViewport( viewport() ) ) {
- canvasImage()->fill(0); // Using Qt::transparent is wrong here (equals "18")!
+ d->m_canvasImage->fill(0); // Using Qt::transparent is wrong here (equals "18")!
}
}
@@ -285,8 +283,7 @@ void ViewParams::setSize( int width, int height )
: QImage::Format_ARGB32_Premultiplied;
// Recreate the canvas image with the new size.
- delete d->m_canvasImage;
- d->m_canvasImage = new QImage( width, height, imageFormat );
+ d->m_canvasImage = QSharedPointer<QImage>( new QImage( width, height, imageFormat ) );
// Repaint the background if necessary
if ( !currentProjection()->mapCoversViewport( viewport() ) ) {
@@ -294,20 +291,29 @@ void ViewParams::setSize( int width, int height )
}
// Recreate the coastline detection offscreen image
- delete d->m_coastImage;
- d->m_coastImage = new QImage( width, height, QImage::Format_RGB32 );
+ d->m_coastImage = QSharedPointer<QImage>( new QImage( width, height, QImage::Format_RGB32 ) );
}
-QImage * ViewParams::canvasImage() const
+QSharedPointer<QImage> ViewParams::canvasImagePtr() const
{
return d->m_canvasImage;
}
-QImage * ViewParams::coastImage() const
+QImage * ViewParams::canvasImage() const
+{
+ return d->m_canvasImage.data();
+}
+
+QSharedPointer<QImage> ViewParams::coastImagePtr() const
{
return d->m_coastImage;
}
+QImage * ViewParams::coastImage() const
+{
+ return d->m_coastImage.data();
+}
+
bool ViewParams::showGps() const
{
return d->m_showGps;
diff --git a/src/lib/ViewParams.h b/src/lib/ViewParams.h
index 2abc6d3..43333e7 100644
--- marble/src/lib/ViewParams.h
+++ marble/src/lib/ViewParams.h
@@ -19,6 +19,7 @@
* @author Inge Wallin
*/
+#include
#include
#include "marble_export.h"
@@ -114,8 +115,10 @@ class MARBLE_EXPORT ViewParams
*/
void setSize( int width, int height );
+ QSharedPointer<QImage> canvasImagePtr() const;
QImage * canvasImage() const;
+ QSharedPointer<QImage> coastImagePtr() const;
QImage * coastImage() const;
bool showGps() const;
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org