[kde-edu]: Marble questions
torsten.rahn at credativ.de
Mon Apr 7 20:56:52 CEST 2008
First let me say that of course depending on your deadline for your software
you might either go for "KDE 4 branch Marble (0.5.x)" or "SVN trunk". SVN
trunk is only expected to officially stabilize by about May / June and won't
be binary compatible to Marble 0.5.1.
Also please be aware that we are about to change the core architecture a bit
to make it more clean and to allow exactly those things you'd like to do
(however we'd be glad to accept any patches as our development resources are
more sparse than our ambitious plans for the future ;-)
On Monday 07 April 2008 19:43:06 Clarke, Trevor wrote:
> First, the application is not allowed to arbitrarily access the network
> for security reasons. I tried disabling data download (including
> Wikipedia access) by calling MarbleWidget->setDownloadManager(NULL)
> which did not seem to work. Is there something else I need to do or
> should I ifdef out the Wikipedia code before I compile the widget?
Ok. I realize that indeed there is a minor flaw/oddity that crept into the
Actually HttpDownLoadManager already has a private member bool
m_downloadEnabled; However getters and setters for that one are still missing
(patches always appreciated) so your workaround to set the DownloadManager
NULL is a valid one.
As you have found out PlaceMarkInfoDialog has got a Wikipedia-Browser
(marble/src/lib/TinyWebbrowser.cpp) which instantiates its own
HttpDownloadManager in the Ctor. So the quick and dirty solution would be
indeed to either ifdef that part out or to set m_downloadManager = NULL there
(Haven't tested the latter though).
The reason for the two different download managers is the fact that there are
two socalled StoragePolicies how data can get saved:
1.) Tiles get saved in a directory hierarchy as described here:
2.) Wikipedia data gets saved as Qt resources in a different manner hence
using a different StoragePolicy.
Once started the DownloadManager AFAIR needs to stick to one of those
StoragePolicy modes for its lifetime (a pragmatic restriction which somebody
might eventually fix someday ;-).
So for each purpose (tiles and wikipedia data) there is a seperate
As mentioned the second HttpDownloadManager gets instantiated by the
TinyWebbrowser (actually we should rework that in a way similar to the way
MarbleWidget treats the downloadmanager that it uses). Now the proper
solution would of course be to give access to the downloadManager being used
inside the PlaceMarkInfoDialog/TinyWebbrowser "from the outside".
> Second, I need to dynamically add vector data after Marble has
> initialized. This data is not available in a file so I can't just load
> some kml, etc. How can I add vector data to Marble via the C++ API after
> it is initialized?
Currently (and in Marble 0.5.x) you can only inherit from MarbleWidget and
either use the paintEvent or use
virtual void MarbleWidget::customPaint( ClipPainter *painter );
to paint basically using a ClipPainter
(Clippainter is basically a QPainter extended with some enhancement that deals
with restrictions of QPainter/XOrg that prevent Marble to slow down to a
We are about to rework this part in SVN. Please have a look at
which outlines approximately how we'd like painting on maps to work.
Also there is:
which already mentions the methods that we plan to support and which "just"
need to get implemented. Actually as long as you don't want lines to follow
the projection between nodes this should be quite easy to implement.
> If I can't do this via the public API I can make some
> patches...is this something that would likely be accepted as a patch?
Sounds like you'd like to do the GeoPainter.cpp implementation. Such patches
would be greatly appreciated. Please have a look at GeoPainter.h and
paintingmaps.txt and if you have detailed questions don't hesitate to either
mail me, ask on marble-devel at kde.org or join "ingwa" and me (nick: "tackat")
on irc.freenode.org at #kde-edu.
> should I submit the changes?
Yes, we are very interested in all kinds of patches that you might come up
with. People have provided patches in the past and often they get applied
straight away (except for minor fixing or course).
> (should I submit the changes?) If I need to add this capability, could
> someone point me in the right direction to get started?
Yes, as I said we have detailed plans in that area (as Marble is supposed to
get used by people like you) and if you have detailed questions just ask :)
> Trevor R.H. Clarke
> tclarke at ball.com
> Ball Aerospace & Technologies Corp
> GPG key available on random.sks.keyserver.penguin.de
> This message and any enclosures are intended only for the addressee.
> Please notify the sender by email if you are not the intended recipient.
> If you are not the intended recipient, you may not use, copy, disclose, or
> distribute this message or its contents or enclosures to any other person
> and any such actions may be unlawful. Ball reserves the right to monitor
> and review all messages and enclosures sent to or from this email address.
> kde-edu mailing list
> kde-edu at mail.kde.org
Tel.: 0 21 61 - 46 43 - 192
credativ GmbH, HRB Mönchengladbach 12080
Hohenzollernstr. 133, 41061 Mönchengladbach
Geschäftsführung: Dr. Michael Meskes, Jörg Folz
More information about the kde-edu