Date: Thursday, February 9, 2012 @ 09:11:07 Author: andrea Revision: 149701
upgpkg: kdeedu-marble 4.8.0-2 Fix bugs with Qt 4.8 Added: kdeedu-marble/trunk/fix-with-qt48.patch Modified: kdeedu-marble/trunk/PKGBUILD ---------------------+ PKGBUILD | 11 ++++-- fix-with-qt48.patch | 87 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 95 insertions(+), 3 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2012-02-09 04:56:34 UTC (rev 149700) +++ PKGBUILD 2012-02-09 14:11:07 UTC (rev 149701) @@ -3,7 +3,7 @@ pkgname=kdeedu-marble pkgver=4.8.0 -pkgrel=1 +pkgrel=2 pkgdesc="Desktop Globe" url="http://kde.org/applications/education/marble/" arch=('i686' 'x86_64') @@ -13,10 +13,15 @@ makedepends=('cmake' 'automoc4' 'gpsd') optdepends=('gpsd: gps support') install=${pkgname}.install -source=("http://download.kde.org/stable/${pkgver}/src/marble-${pkgver}.tar.bz2") -sha1sums=('6c3c6b03c9d8e92730d6955adcbdb5de42fda43d') +source=("http://download.kde.org/stable/${pkgver}/src/marble-${pkgver}.tar.bz2" + 'fix-with-qt48.patch') +sha1sums=('6c3c6b03c9d8e92730d6955adcbdb5de42fda43d' + '3ec130564aa1b7a61a0c3cd51533c69c6c35bd0e') build() { + cd "${srcdir}"/marble-${pkgver} + patch -p1 -i "${srcdir}"/fix-with-qt48.patch + cd "${srcdir}" mkdir build cd build Added: fix-with-qt48.patch =================================================================== --- fix-with-qt48.patch (rev 0) +++ fix-with-qt48.patch 2012-02-09 14:11:07 UTC (rev 149701) @@ -0,0 +1,87 @@ +commit 79c39f45468bace95169d1ba959884ce27087d1e +Author: Torsten Rahn <[email protected]> +Date: Wed Feb 8 17:18:15 2012 +0100 + + Fixes for Marble with Qt 4.8: + + - Provide proper colors for Marble's Atlas, Temperature, + Precipitation and Venus/Mars Topography maps. + ( due to introduction of QImage::fill( QColor ) overload ) + + - Show proper icons for MarbleLegendBrowser + ( due to new interpretation of the "current directory" in + QTextBrowser ) + +diff --git a/src/lib/MarbleLegendBrowser.cpp b/src/lib/MarbleLegendBrowser.cpp +index 4a25095..ffa0a23 100644 +--- a/src/lib/MarbleLegendBrowser.cpp ++++ b/src/lib/MarbleLegendBrowser.cpp +@@ -130,26 +130,24 @@ void MarbleLegendBrowser::loadLegend() + t.start(); + + // Read the html string. +- QString finalHtml; ++ QString legendPath; + + // Check for a theme specific legend.html first + if ( d->m_marbleModel != 0 && d->m_marbleModel->mapTheme() != 0 ) + { + GeoSceneDocument *currentMapTheme = d->m_marbleModel->mapTheme(); + +- QString customLegendPath = MarbleDirs::path( "maps/" + ++ legendPath = MarbleDirs::path( "maps/" + + currentMapTheme->head()->target() + '/' + + currentMapTheme->head()->theme() + "/legend.html" ); +- if ( !customLegendPath.isEmpty() ) +- finalHtml = readHtml( QUrl::fromLocalFile( customLegendPath ) ); +- else +- finalHtml.clear(); + } +- +- if ( finalHtml.isEmpty() ) { +- finalHtml = readHtml( QUrl::fromLocalFile( MarbleDirs::path( "legend.html" ) ) ); ++ if ( legendPath.isEmpty() ) { ++ legendPath = MarbleDirs::path( "legend.html" ); + } + ++ QString finalHtml = readHtml( QUrl::fromLocalFile( legendPath ) ); ++ finalHtml.replace( QString( "./" ), legendPath.section( '/', 0, -2 ) + '/' ); ++ + // Generate some parts of the html from the MapTheme <Legend> tag. + const QString sectionsHtml = generateSectionsHtml(); + +diff --git a/src/lib/TextureColorizer.cpp b/src/lib/TextureColorizer.cpp +index 4a4f8f3..d0deead 100644 +--- a/src/lib/TextureColorizer.cpp ++++ b/src/lib/TextureColorizer.cpp +@@ -176,7 +176,7 @@ void TextureColorizer::colorize( QImage *origimg, const ViewportParams *viewport + m_coastImage = QImage( viewport->size(), QImage::Format_RGB32 ); + + // update coast image +- m_coastImage.fill( Qt::transparent ); ++ m_coastImage.fill( QColor( 0, 0, 255, 0) ); + + bool doClip = false; //assume false + switch( viewport->projection() ) { +commit b89ff577fcbd085fbd180f59aa669dded1818082 +Author: Bernhard Beschow <[email protected]> +Date: Wed Feb 8 18:14:59 2012 +0100 + + compile with Qt < 4.8 + + * take into account the comment in the API doc, which suggests to use QColor::rgb() + (cherry picked from commit 6eafb31f509c622e2672c31b73ebcb1b3dafb3e9) + +diff --git a/src/lib/TextureColorizer.cpp b/src/lib/TextureColorizer.cpp +index d0deead..9319a89 100644 +--- a/src/lib/TextureColorizer.cpp ++++ b/src/lib/TextureColorizer.cpp +@@ -176,7 +176,7 @@ void TextureColorizer::colorize( QImage *origimg, const ViewportParams *viewport + m_coastImage = QImage( viewport->size(), QImage::Format_RGB32 ); + + // update coast image +- m_coastImage.fill( QColor( 0, 0, 255, 0) ); ++ m_coastImage.fill( QColor( 0, 0, 255, 0).rgb() ); + + bool doClip = false; //assume false + switch( viewport->projection() ) {
