Created attachment 58489 [details]
Compilation fix for new marble version
Version: unspecified (using Devel)
Looks like the interface for MarbleWidget has changed again, and you shouldn't use "marbleWidget->map()->fooBar()" anymore. Apparently, the calls are forwarded to the backend map() object directly.
The compiler output is attached.
I worked around this problem by changing the relevant calls in backend_map_marble.cpp (in three places). It compiles properly, but I haven't run it to ensure that it works. The patch for this is also attached.
In the patch, I've added a new #if condition in backend_map_marble.cpp to handle MARBLE_VERSION>=0x000c00, which is where this change happened, apparently.
Steps to Reproduce:
Update to a recent version of kdeedu from SVN
Attempt to build libkmap
makeobj: Entering directory `/mnt/new2/build/extragear/graphics/libkmap/libkmap'
[ 0%] Built target kmap_automoc
[ 5%] Building CXX object libkmap/CMakeFiles/kmap.dir/backend_map_marble.o
/mnt/new2/code/extragear/graphics/libkmap/libkmap/backend_map_marble.cpp: In destructor ‘virtual KMap::BackendMarble::~BackendMarble()’:
/mnt/new2/code/extragear/graphics/libkmap/libkmap/backend_map_marble.cpp:178: error: ‘class Marble::MarbleWidget’ has no member named ‘map’
/mnt/new2/code/extragear/graphics/libkmap/libkmap/backend_map_marble.cpp: In member function ‘virtual QWidget* KMap::BackendMarble::mapWidget()’:
/mnt/new2/code/extragear/graphics/libkmap/libkmap/backend_map_marble.cpp:225: error: ‘class Marble::MarbleWidget’ has no member named ‘map’
/mnt/new2/code/extragear/graphics/libkmap/libkmap/backend_map_marble.cpp: In member function ‘virtual QSize KMap::BackendMarble::mapSize() const’:
/mnt/new2/code/extragear/graphics/libkmap/libkmap/backend_map_marble.cpp:909: error: ‘class Marble::MarbleWidget’ has no member named ‘map’
make: *** [libkmap/CMakeFiles/kmap.dir/backend_map_marble.o] Error 1
make: *** [libkmap/CMakeFiles/kmap.dir/all] Error 2
make: *** [all] Error 2
makeobj: Leaving directory `/mnt/new2/build/extragear/graphics/libkmap/libkmap'
It should compile properly.
Micheal, this patch is for you...
*** Bug 269900 has been marked as a duplicate of this bug. ***
Thanks for the patch, I will take a look.
Git commit 26285d37a7818becb2a252461ca0e82851da6db2 by Michael Georg Hansen.
Committed on 02/04/2011 at 21:32.
Pushed by mghansen into branch 'master'.
Apply patch by T.R.Shashwath to make libkmap compile against Marble API changes. Since the changes were made some time after KDE SC 4.6 was released, this can break the build for older versions of trunk, but I don't know how to make the version detection ifdefs more precise.
M +7 -6 libkmap/backend_map_marble.cpp