From 63ca14ef5859c7344d70e5544ef4c15d67e932b72e3ce056b0de44945586468e Mon Sep 17 00:00:00 2001 From: Luca Beltrame Date: Tue, 4 Jul 2017 16:16:20 +0000 Subject: [PATCH] Accepting request 508101 from home:wolfi323:branches:KDE:Applications - Add Fix-utm-enum-value.patch and reverse-apply it, this upstream commit causes a crash when adding bookmarks if switched to UTM view angles because the necessary handler functions for the dialog are not implemented yet (boo#1044747, kde#381872) - Add Fix-plain-map-and-political-map-showing-no-content.patch to fix the plain map and the political map being not displayed at all (kde#379297) Please forward to 42.3 as well if accepted. OBS-URL: https://build.opensuse.org/request/show/508101 OBS-URL: https://build.opensuse.org/package/show/KDE:Applications/marble?expand=0&rev=137 --- ...and-political-map-showing-no-content.patch | 109 ++++++++++++++++++ Fix-utm-enum-value.patch | 39 +++++++ marble.changes | 11 ++ marble.spec | 6 + 4 files changed, 165 insertions(+) create mode 100644 Fix-plain-map-and-political-map-showing-no-content.patch create mode 100644 Fix-utm-enum-value.patch diff --git a/Fix-plain-map-and-political-map-showing-no-content.patch b/Fix-plain-map-and-political-map-showing-no-content.patch new file mode 100644 index 0000000..e5cfe5a --- /dev/null +++ b/Fix-plain-map-and-political-map-showing-no-content.patch @@ -0,0 +1,109 @@ +From ce6cbb18b1483245ec2e43c84166f68cea60a26b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Dennis=20Nienh=C3=BCser?= +Date: Mon, 26 Jun 2017 21:57:53 +0200 +Subject: Fix both plain map and political map showing no content at all + +Both have neither a texture nor a vector tile layer, and hence no +tile zoom level was set anymore in geometry layer after f847505. Now +a default tile zoom level is calculated in such scenarios. + +BUG: 379297 +--- + src/lib/marble/MarbleMap.cpp | 17 ++++++++++------- + src/lib/marble/layers/VectorTileLayer.cpp | 9 ++++++--- + 2 files changed, 16 insertions(+), 10 deletions(-) + +diff --git a/src/lib/marble/MarbleMap.cpp b/src/lib/marble/MarbleMap.cpp +index d41c0f1..d62642a 100644 +--- a/src/lib/marble/MarbleMap.cpp ++++ b/src/lib/marble/MarbleMap.cpp +@@ -22,6 +22,7 @@ + // Qt + #include + #include ++#include + + // Marble + #include "layers/FloatItemsLayer.h" +@@ -209,9 +210,6 @@ MarbleMapPrivate::MarbleMapPrivate( MarbleMap *parent, MarbleModel *model ) : + + QObject::connect( &m_geometryLayer, SIGNAL(repaintNeeded()), + parent, SIGNAL(repaintNeeded())); +- QObject::connect(&m_vectorTileLayer, SIGNAL(tileLevelChanged(int)), &m_geometryLayer, SLOT(setTileLevel(int))); +- QObject::connect(&m_vectorTileLayer, SIGNAL(tileLevelChanged(int)), &m_placemarkLayer, SLOT(setTileLevel(int))); +- QObject::connect(&m_textureLayer, SIGNAL(tileLevelChanged(int)), &m_placemarkLayer, SLOT(setTileLevel(int))); + + /* + * Slot handleHighlight finds all placemarks +@@ -239,9 +236,11 @@ MarbleMapPrivate::MarbleMapPrivate( MarbleMap *parent, MarbleModel *model ) : + parent, SLOT(updateTileLevel()) ); + QObject::connect( &m_vectorTileLayer, SIGNAL(tileLevelChanged(int)), + parent, SLOT(updateTileLevel()) ); ++ QObject::connect( parent, SIGNAL(radiusChanged(int)), ++ parent, SLOT(updateTileLevel()) ); ++ + QObject::connect( &m_textureLayer, SIGNAL(repaintNeeded()), + parent, SIGNAL(repaintNeeded()) ); +- + QObject::connect( parent, SIGNAL(visibleLatLonAltBoxChanged(GeoDataLatLonAltBox)), + parent, SIGNAL(repaintNeeded()) ); + +@@ -466,7 +465,8 @@ int MarbleMap::preferredRadiusFloor( int radius ) + + int MarbleMap::tileZoomLevel() const + { +- return qMax(d->m_textureLayer.tileZoomLevel(), d->m_vectorTileLayer.tileZoomLevel()); ++ auto const tileZoomLevel = qMax(d->m_textureLayer.tileZoomLevel(), d->m_vectorTileLayer.tileZoomLevel()); ++ return tileZoomLevel >= 0 ? tileZoomLevel : qMin(qMax(qLn(d->m_viewport.radius()*4/256)/qLn(2.0), 1), d->m_styleBuilder.maximumZoomLevel()); + } + + +@@ -828,7 +828,10 @@ void MarbleMapPrivate::setDocument( const QString& key ) + + void MarbleMapPrivate::updateTileLevel() + { +- emit q->tileLevelChanged(q->tileZoomLevel()); ++ auto const tileZoomLevel = q->tileZoomLevel(); ++ m_geometryLayer.setTileLevel(tileZoomLevel); ++ m_placemarkLayer.setTileLevel(tileZoomLevel); ++ emit q->tileLevelChanged(tileZoomLevel); + } + + // Used to be paintEvent() +diff --git a/src/lib/marble/layers/VectorTileLayer.cpp b/src/lib/marble/layers/VectorTileLayer.cpp +index 864dddf..505d7a6 100644 +--- a/src/lib/marble/layers/VectorTileLayer.cpp ++++ b/src/lib/marble/layers/VectorTileLayer.cpp +@@ -133,7 +133,7 @@ RenderState VectorTileLayer::renderState() const + + int VectorTileLayer::tileZoomLevel() const + { +- int level = 0; ++ int level = -1; + for (const auto *mapper: d->m_activeTileModels) { + level = qMax(level, mapper->tileZoomLevel()); + } +@@ -163,7 +163,7 @@ bool VectorTileLayer::render(GeoPainter *painter, ViewportParams *viewport, + mapper->setViewport(viewport->viewLatLonAltBox()); + level = qMax(level, mapper->tileZoomLevel()); + } +- if (oldLevel != level) { ++ if (oldLevel != level && level >= 0) { + emit tileLevelChanged(level); + } + +@@ -202,7 +202,10 @@ void VectorTileLayer::setMapTheme(const QVectorupdateLayerSettings(); +- emit tileLevelChanged(tileZoomLevel()); ++ auto const level = tileZoomLevel(); ++ if (level >= 0) { ++ emit tileLevelChanged(level); ++ } + } + + } +-- +cgit v0.11.2 + diff --git a/Fix-utm-enum-value.patch b/Fix-utm-enum-value.patch new file mode 100644 index 0000000..4650865 --- /dev/null +++ b/Fix-utm-enum-value.patch @@ -0,0 +1,39 @@ +From 7859bf1cc1fdaf07b70446b1530358bff7bf43e3 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Dennis=20Nienh=C3=BCser?= +Date: Tue, 29 Dec 2015 11:18:23 +0100 +Subject: Fix utm enum value + +--- + src/lib/marble/EditBookmarkDialog.cpp | 2 +- + src/lib/marble/EditPlacemarkDialog.cpp | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/lib/marble/EditBookmarkDialog.cpp b/src/lib/marble/EditBookmarkDialog.cpp +index c9a87a8..6ee5e91 100644 +--- a/src/lib/marble/EditBookmarkDialog.cpp ++++ b/src/lib/marble/EditBookmarkDialog.cpp +@@ -161,7 +161,7 @@ void EditBookmarkDialog::setMarbleWidget( MarbleWidget* widget ) + const GeoDataCoordinates::Notation notation = + (defaultAngleUnit == DecimalDegree) ? GeoDataCoordinates::Decimal : + (defaultAngleUnit == DMSDegree) ? GeoDataCoordinates::DMS : +- /* else, UTM */ GeoDataCoordinates::DMS; ++ /* else, UTM */ GeoDataCoordinates::UTM; + d->m_ui.m_header->setNotation(notation); + + d->m_manager = new ReverseGeocodingRunnerManager( d->m_widget->model(), this ); +diff --git a/src/lib/marble/EditPlacemarkDialog.cpp b/src/lib/marble/EditPlacemarkDialog.cpp +index cfab9f1..ab8ad1f 100644 +--- a/src/lib/marble/EditPlacemarkDialog.cpp ++++ b/src/lib/marble/EditPlacemarkDialog.cpp +@@ -134,7 +134,7 @@ EditPlacemarkDialog::EditPlacemarkDialog( GeoDataPlacemark *placemark, + const GeoDataCoordinates::Notation notation = + (defaultAngleUnit == DecimalDegree) ? GeoDataCoordinates::Decimal : + (defaultAngleUnit == DMSDegree) ? GeoDataCoordinates::DMS : +- /* else, UTM */ GeoDataCoordinates::DMS; ++ /* else, UTM */ GeoDataCoordinates::UTM; + d->m_header->setNotation( notation ); + } + connect( d->m_header, SIGNAL(valueChanged()), this, SLOT( +-- +cgit v0.11.2 + diff --git a/marble.changes b/marble.changes index fef5e9d..4901a86 100644 --- a/marble.changes +++ b/marble.changes @@ -1,3 +1,14 @@ +------------------------------------------------------------------- +Tue Jul 4 11:37:39 UTC 2017 - wbauer@tmo.at + +- Add Fix-utm-enum-value.patch and reverse-apply it, this upstream + commit causes a crash when adding bookmarks if switched to UTM + view angles because the necessary handler functions for the + dialog are not implemented yet (boo#1044747, kde#381872) +- Add Fix-plain-map-and-political-map-showing-no-content.patch to + fix the plain map and the political map being not displayed at + all (kde#379297) + ------------------------------------------------------------------- Wed Jun 07 17:43:01 CEST 2017 - lbeltrame@kde.org diff --git a/marble.spec b/marble.spec index 68f8743..924bc79 100644 --- a/marble.spec +++ b/marble.spec @@ -31,6 +31,10 @@ License: LGPL-2.1+ Group: Amusements/Teaching/Other Url: http://edu.kde.org Source0: marble-%{version}.tar.xz +# PATCH-FIX-UPSTREAM Fix-utm-enum-value.patch boo#1044747, kde#381872 -- revert this upstream commit, it causes the "Edit Bookmark" dialog to crash if you set the View Angle to UTM +Patch1: Fix-utm-enum-value.patch +# PATCH-FIX-UPSTREAM Fix-plain-map-and-political-map-showing-no-content.patch kde#379297 -- fix display of the plain map and the political map +Patch2: Fix-plain-map-and-political-map-showing-no-content.patch BuildRequires: extra-cmake-modules BuildRequires: fdupes BuildRequires: gpsd-devel @@ -156,6 +160,8 @@ The astronomy library for the satellites plugin. %prep %setup -q -n marble-%{version} +%patch1 -Rp1 +%patch2 -p1 %build export SUSE_ASNEEDED=0