26 #include "ui_MarbleAboutDialog.h" 
   31 #include <QTextStream> 
   40 class MarbleAboutDialogPrivate
 
   43     MarbleAboutDialogPrivate();
 
   45     void loadPageContents( 
int idx );
 
   47     Ui::MarbleAboutDialog  uiWidget;
 
   54 MarbleAboutDialogPrivate::MarbleAboutDialogPrivate() :
 
   55     authorsLoaded( false ),
 
   57     licenseLoaded( false )
 
   63       d( new MarbleAboutDialogPrivate )
 
   65     d->uiWidget.setupUi( 
this );
 
   68         d->uiWidget.m_pMarbleTitleLabel->hide();
 
   69         d->uiWidget.m_pMarbleVersionLabel->hide();
 
   70         d->uiWidget.m_pMarbleLogoLabel->hide();
 
   73         d->uiWidget.m_pMarbleLogoLabel->setPixmap( 
 
   77     QString 
const applicationTitle = QObject::tr( 
"Marble Virtual Globe" );
 
   80     connect( d->uiWidget.tabWidget, SIGNAL(currentChanged(
int)), 
 
   81              this, SLOT(loadPageContents(
int)) );
 
   89 void MarbleAboutDialogPrivate::loadPageContents( 
int idx )
 
   91     if ( idx == 1 && !authorsLoaded )
 
   94         QTextBrowser *
const browser = uiWidget.m_pMarbleAuthorsBrowser;
 
   95         browser->setHtml( QObject::tr(
"<b>Active Development Team of Marble</b>")+
 
   96         QObject::tr(
"<p>Torsten Rahn <a href=\"mailto:rahn@kde.org\">rahn@kde.org</a><br />" 
   97            "<i>Developer and Original Author</i></p>")+
 
   98         QObject::tr(
"<p>Bernhard Beschow <a href=\"mailto:bbeschow@cs.tu-berlin.de\">bbeschow@cs.tu-berlin.de</a><br />" 
   99            "<i>WMS Support, Mobile, Performance</i></p>")+
 
  100         QObject::tr(
"<p>Thibaut Gridel <a href=\"mailto:tgridel@free.fr\">tgridel@free.fr</a><br />" 
  101            "<i>Geodata</i></p>")+
 
  102         QObject::tr(
"<p>Jens-Michael Hoffmann <a href=\"mailto:jensmh@gmx.de\">jensmh@gmx.de</a><br />" 
  103            "<i>OpenStreetMap Support, Download Management</i></p>")+
 
  104         QObject::tr(
"<p>Florian Eßer <a href=\"mailto:f.esser@rwth-aachen.de\">f.esser@rwth-aachen.de</a><br />" 
  105            "<i>Elevation Profile</i></p>")+
 
  106         QObject::tr(
"<p>Wes Hardaker <a href=\"mailto:marble@hardakers.net\">marble@hardakers.net</a><br />" 
  107            "<i>Amateur Radio Support</i></p>")+
 
  108         QObject::tr(
"<p>Bastian Holst, <a href=\"mailto:bastianholst@gmx.de\">bastianholst@gmx.de</a><br />" 
  109            "<i>Online Services Support</i></p>")+
 
  110         QObject::tr(
"<p>Guillaume Martres, <a href=\"mailto:smarter@ubuntu.com\">smarter@ubuntu.com</a><br />" 
  111            "<i>Satellites</i></p>")+
 
  112         QObject::tr(
"<p>Friedrich W. H. Kossebau, <a href=\"mailto:kossebau@kde.org\">kossebau@kde.org</a><br />" 
  113            "<i>Plasma Integration, Bugfixes</i></p>")+
 
  114         QObject::tr(
"<p>Rene Kuettner, <a href=\"mailto:rene@bitkanal.net\">rene@bitkanal.net</a><br />" 
  115            "<i>Planetary Satellites</i></p>")+
 
  116         QObject::tr(
"<p>Dennis Nienhüser <a href=\"mailto:earthwings@gentoo.org\">earthwings@gentoo.org</a><br />" 
  117            "<i>Routing, Navigation, Mobile</i></p>")+
 
  118         QObject::tr(
"<p>Niko Sams <a href=\"mailto:niko.sams@gmail.com\">niko.sams@gmail.com</a><br />" 
  119            "<i>Routing, Elevation Profile</i></p>")+
 
  120         QObject::tr(
"<p>Patrick Spendrin <a href=\"pspendrin@gmail.com\">pspendrin@gmail.com</a><br />" 
  121            "<i>KML and Windows Support</i></p>")+
 
  122         QObject::tr(
"<p>Eckhart Wörner <a href=\"mailto:kde@ewsoftware.de\">kde@ewsoftware.de</a><br />" 
  123            "<i>Bugfixes</i></p>")+
 
  124         QObject::tr(
"<b>Developers</b>")+
 
  125         QObject::tr(
"<p>Médéric Boquien <a href=\"mailto:mboquien@free.fr\">mboquien@free.fr</a><br />" 
  126            "<i>Astronomical Observatories</i></p>")+
 
  127         QObject::tr(
"<p>Harshit Jain <a href=\"mailto:sonu.itbhu@googlemail.com\">sonu.itbhu@googlemail.com</a><br />" 
  128            "<i>Planet Filter, Bugfixes</i></p>")+
 
  129         QObject::tr(
"<p>Andrew Manson <a href=\"mailto:g.real.ate@gmail.com\">g.real.ate@gmail.com</a><br />" 
  130            "<i>Proxy Support</i></p>")+
 
  131         QObject::tr(
"<p>Pino Toscano <a href=\"mailto:pino@kde.org\">pino@kde.org</a><br />" 
  132            "<i>Network plugins</i></p>")+
 
  133         QObject::tr(
"<p>Henry de Valence <a href=\"mailto:hdevalence@gmail.com\">hdevalence@gmail.com</a><br />" 
  134            "<i>Marble Runners, World-Clock Plasmoid</i></p>")+
 
  135         QObject::tr(
"<p>Magnus Valle<br /><i>Historical Maps</i></p>")+
 
  136         QObject::tr(
"<p>Inge Wallin <a href=\"mailto:inge@lysator.liu.se\">inge@lysator.liu.se</a><br />" 
  137            "<i>Original Co-Maintainer</i></p>")+
 
  138         QObject::tr(
"<p><i>Development & Patches:</i> Simon Schmeisser, Claudiu Covaci, David Roberts, Nikolas Zimmermann, Jan Becker, " 
  139            "Stefan Asserhäll, Laurent Montel, Prashanth Udupa, Anne-Marie Mahfouf, Josef Spillner, Frerich Raabe, " 
  140            "Frederik Gladhorn, Fredrik Höglund, Albert Astals Cid, Thomas Zander, Joseph Wenninger, Kris Thomsen, " 
  141            "Daniel Molkentin  </p>")+
 
  142         QObject::tr(
"<p><i>Platforms & Distributions:</i> " 
  143            "Tim Sutton, Christian Ehrlicher, Ralf Habacker, Steffen Joeris, Marcus Czeslinski, Marcus D. Hanwell, Chitlesh Goorah, Sebastian Wiedenroth, Christophe Leske</p>")+
 
  144         QObject::tr(
"<p><i>Artwork:</i> Nuno Pinheiro, Torsten Rahn</p>")+
 
  145         QObject::tr(
"<b>Join us</b>")+
 
  146         QObject::tr(
"<p>You can reach the developers of the Marble Project at <a href=\"mailto:marble-devel@kde.org\">marble-devel@kde.org</a></p>")+
 
  147         QObject::tr(
"<b>ESA - Summer of Code in Space 2011</b>")+
 
  148         QObject::tr(
"<p> The Marble Team would like to thank its members who participated " 
  149            "in ESA SoCiS for their successful work on Marble:</p>")+
 
  150         QObject::tr(
"<p><b>2012</b></p>")+
 
  151         QObject::tr(
"<p>Rene Kuettner, <a href=\"mailto:rene@bitkanal.net\">rene@bitkanal.net</a><br />" 
  152            "<i>Project: Visualization of planetary satellites</i></p>")+
 
  153         QObject::tr(
"<p><b>2011</b></p>")+
 
  154         QObject::tr(
"<p>Guillaume Martres, <a href=\"mailto:smarter@ubuntu.com\">smarter@ubuntu.com</a><br />" 
  155            "<i>Project: Visualisation of Satellite Orbits</i></p>")+
 
  157         QObject::tr(
"<b>Google Code-in</b>")+
 
  158         QObject::tr(
"<p> The Marble Team would like to thank its members who participated " 
  159            "in the Google Code-in for their successful work on Marble:</p>")+
 
  160         QObject::tr( 
"<p><b>2012</b></p>" ) +
 
  161         QObject::tr( 
"Illya Kovalevskyy <a href=\"mailto:illya.kovalevskyy@gmail.com\">illya.kovalevskyy@gmail.com</a><br />" ) +
 
  162         QObject::tr( 
"Mohammed Nafees <a href=\"mailto:nafees.technocool@gmail.com\">nafees.technocool@gmail.com</a></p><br />" ) +
 
  163         QObject::tr( 
"Mayank Madan <a href=\"mailto:maddiemadan@gmail.com\">maddiemadan@gmail.com</a><br />" ) +
 
  164         QObject::tr( 
"Timothy Lanzi <a href=\"mailto:trlanzi@gmail.com\">trlanzi@gmail.com</a></p>" ) +
 
  165         QObject::tr( 
"<p><b>2011</b></p>" ) +
 
  166         QObject::tr( 
"<p>Utku Aydın <a href=\"mailto:utkuaydin34@gmail.com\">utkuaydin34@gmail.com</a><br />" ) +
 
  167         QObject::tr( 
"Daniel Marth <a href=\"mailto:danielmarth@gmx.at\">danielmarth@gmx.at</a><br />" ) +
 
  168         QObject::tr( 
"Cezar Mocan <a href=\"mailto:mocancezar@gmail.com\">mocancezar@gmail.com</a><br />" ) +
 
  169         QObject::tr( 
"Furkan Üzümcü <a href=\"mailto:furkanuzumcu@gmail.com\">furkanuzumcu@gmail.com</a></p>" ) +
 
  170         QObject::tr(
"<b>Google Summer of Code</b>")+
 
  171         QObject::tr(
"<p> The Marble Team would like to thank its members who participated " 
  172            "in the Google Summer of Code for their successful work on Marble:</p>")+
 
  173         QObject::tr( 
"<p><b>2011</b></p>" ) +
 
  174         QObject::tr( 
"<p>Konstantin Oblaukhov <a href=\"oblaukhov.konstantin@gmail.com\">oblaukhov.konstantin@gmail.com</a><br />" 
  175             "<i>Project: OpenStreetMap Vector Rendering</i></p>" ) +
 
  176         QObject::tr( 
"<p>Daniel Marth <a href=\"danielmarth@gmx.at\">danielmarth@gmx.at</a><br />" 
  177             "<i>Project: Marble Touch on MeeGo</i></p>" ) +
 
  178         QObject::tr( 
"<p><b>2010</b></p>" ) +
 
  179         QObject::tr( 
"<p>Gaurav Gupta <a href=\"mailto:1989.gaurav@gmail.com\">1989.gaurav@gmail.com</a><br />" 
  180             "<i>Project: Bookmarks</i></p>" ) +
 
  181         QObject::tr( 
"<p>Harshit Jain <a href=\"mailto:hjain.itbhu@gmail.com\">hjain.itbhu@gmail.com</a><br />" 
  182             "<i>Project: Time Support</i></p>" ) +
 
  183         QObject::tr( 
"<p>Siddharth Srivastava <a href=\"mailto:akssps011@gmail.com\">akssps011@gmail.com</a><br />" 
  184             "<i>Project: Turn-by-turn Navigation</i></p>" ) +
 
  185         QObject::tr( 
"<p><b>2009</b></p>" ) +
 
  186         QObject::tr( 
"<p>Andrew Manson <a href=\"mailto:g.real.ate@gmail.com\">g.real.ate@gmail.com</a><br />" 
  187             "<i>Project: OSM Annotation</i></p>" ) +
 
  188         QObject::tr( 
"<p>Bastian Holst <a href=\"mailto:bastianholst@gmx.de\">bastianholst@gmx.de</a><br />" 
  189             "<i>Project: Online Services</i></p>" ) +
 
  190         QObject::tr(
"<p><b>2008</b></p>")+
 
  191         QObject::tr(
"<p>Patrick Spendrin <a href=\"pspendrin@gmail.com\">pspendrin@gmail.com</a><br />" 
  192            "<i>Project: Vector Tiles for Marble</i></p>")+
 
  193         QObject::tr(
"<p>Shashank Singh <a href=\"mailto:shashank.personal@gmail.com\">shashank.personal@gmail.com</a><br />" 
  194            "<i>Project: Panoramio / Wikipedia -photo support for Marble</i></p>")+
 
  195         QObject::tr(
"<b>2007</b>")+
 
  196         QObject::tr(
"<p>Carlos Licea <a href=\"mailto:carlos.licea@kdemail.net\">carlos.licea@kdemail.net</a><br />" 
  197            "<i>Project: Equirectangular Projection (\"Flat Map\")</i></p>")+
 
  198         QObject::tr(
"<p>Andrew Manson <a href=\"mailto:g.real.ate@gmail.com\">g.real.ate@gmail.com</a><br />" 
  199            "<i>Project: GPS Support for Marble</i></p>")+
 
  200         QObject::tr(
"<p>Murad Tagirov <a href=\"mailto:tmurad@gmail.com\">tmurad@gmail.com</a><br />" 
  201            "<i>Project: KML Support for Marble</i></p>")+
 
  202         QObject::tr(
"<p>... and of course we'd like to thank the people at Google Inc. for making these projects possible.</p>")+
 
  203         QObject::tr(
"<b>Credits</b>")+
 
  204         QObject::tr(
"<p><i>Various Suggestions & Testing:</i> Stefan Jordan, Robert Scott, Lubos Petrovic, Benoit Sigoure, " 
  205            "Martin Konold, Matthias Welwarsky, Rainer Endres, Luis Silva, Ralf Gesellensetter, Tim Alder</p>")+
 
  206         QObject::tr(
"<p> We'd especially like to thank John Layt who provided an important source of inspiration " 
  207            "by creating Marble's predecessor \"Kartographer\".</p>"));
 
  208         QTextFrameFormat  format = browser->document()->rootFrame()->frameFormat();
 
  209         format.setMargin(12);
 
  210         browser->document()->rootFrame()->setFrameFormat( format );
 
  213     if ( idx == 2 && !dataLoaded )
 
  216         QTextBrowser *
const browser = uiWidget.m_pMarbleDataBrowser;
 
  217         browser->setHtml( QObject::tr(
"<b>Maps</b>")+
 
  218         QObject::tr(
"<p><i>Blue Marble Next Generation (500 m / pixel)</i><br />" 
  219            "NASA Goddard Space Flight Center Earth Observatory " 
  220            "<a href=\"http://earthobservatory.nasa.gov/Newsroom/BlueMarble/\">" 
  221            "http://earthobservatory.nasa.gov/Newsroom/BlueMarble/</a></p>")+
 
  222         QObject::tr(
"<p><i>Earth's City Lights</i><br />" 
  223            "Data courtesy Marc Imhoff of NASA GSFC and Christopher Elvidge of NOAA NGDC. " 
  224            "Image by Craig Mayhew and Robert Simmon, NASA GSFC.</p>")+
 
  225         QObject::tr(
"<p><i>Shuttle Radar Topography Mission (SRTM30, 1 km / pixel )</i><br />" 
  226            "NASA Jet Propulsion Laboratory <a href=\"http://www2.jpl.nasa.gov/srtm/\">" 
  227            "http://www2.jpl.nasa.gov/srtm/</a></p>")+
 
  228         QObject::tr(
"<p><i>Micro World Data Bank in Polygons (\"MWDB-POLY / MWDBII\")</i><br />" 
  229            "CIA ; Global Associates, Ltd.; Fred Pospeschil and Antonio Rivera</p>")+
 
  230         QObject::tr(
"<p><i>Temperature and Precipitation Maps (July and December)</i><br />" 
  231            "A combination of two datasets:" 
  233            "<li>Legates, D.R. and Willmott, C.J. 1989. Average Monthly Surface Air Temperature and " 
  234            "Precipitation. Digital Raster Data on a .5 degree Geographic (lat/long) 361x721 grid " 
  235            "(centroid-registered on .5 degree meridians). Boulder CO: National Center for Atmospheric Research. " 
  236            "<a href=\"http://www.ngdc.noaa.gov/ecosys/cdroms/ged_iia/datasets/a04/lw.htm\">" 
  237            "http://www.ngdc.noaa.gov/ecosys/cdroms/ged_iia/datasets/a04/lw.htm</a></li>" 
  238            "<li>CRU CL 2.0: New, M., Lister, D., Hulme, M. and Makin, I., 2002: A high-resolution " 
  239            "data set of surface climate over global land areas. Climate Research 21." 
  240            "<a href=\"http://www.cru.uea.ac.uk/cru/data/hrg\">" 
  241            "http://www.cru.uea.ac.uk/cru/data/hrg</a></li></ul></p>")+
 
  242         QObject::tr(
"<b>Street Map</b>")+
 
  243         QObject::tr(
"<p><i>OpenStreetMap</i><br />" 
  244            "The street maps used in Marble via download are provided by the <a href=\"" 
  245            "http://www.openstreetmap.org\">OpenStreetMap</a> Project (\"OSM\"). " 
  246            "OSM is an open community which creates free editable maps.<br />" 
  247            "<i>License</i>: OpenStreetMap data can be used freely under the terms of the " 
  248            "<a href=\"http://wiki.openstreetmap.org/index.php/OpenStreetMap_License\">" 
  249            "Creative Commons Attribution-ShareAlike 2.0 license</a>.</p>")+
 
  250         QObject::tr( 
"<p><i>Icons</i><br />" 
  251             "Some icons are taken from <a href=\"http://www.sjjb.co.uk/mapicons\">SJJB Management</a> and <a href=\"http://thenounproject.com\">NounProject</a>. " 
  252             "These icons can be used freely under the terms of the " 
  253             "<a href=\"http://creativecommons.org/publicdomain/zero/1.0/\">CC0 1.0 Universal</a> license.</p>") +
 
  254         QObject::tr( 
"<p>Some icons are taken from <a href=\"http://fortawesome.github.com/Font-Awesome\">Font Awesome</a>. " 
  255             "These icons can be used freely under the terms of the " 
  256             "<a href=\"http://creativecommons.org/licenses/by/3.0/\">CC BY 3.0</a> license.</p>") +
 
  257         QObject::tr(
"<p><i>OpenRouteService</i><br />" 
  258            "Some of the routes used in Marble via download are provided by the <a href=\"" 
  259            "http://www.openrouteservice.org\">OpenRouteService</a> Project (\"ORS\"). <br />" 
  260            "<i>License</i>: OpenRouteService data can be used freely under the terms of the " 
  261            "<a href=\"http://wiki.openstreetmap.org/index.php/OpenStreetMap_License\">" 
  262            "Creative Commons Attribution-ShareAlike 2.0 license</a>.</p>")+
 
  263         QObject::tr(
"<p><i>Open Source Routing Machine</i><br />" 
  264            "Some of the routes used in Marble via download are provided by the <a href=\"" 
  265            "http://project-osrm.org\">Open Source Routing Machine</a> Project (\"OSRM\"). <br />" 
  266            "<i>License</i>: Open Source Routing Machine data can be used freely under the terms of the " 
  267            "<a href=\"http://wiki.openstreetmap.org/index.php/OpenStreetMap_License\">" 
  268            "Creative Commons Attribution-ShareAlike 2.0 license</a>.</p>")+
 
  269         QObject::tr(
"<p><i>MapQuest</i><br />" 
  270            "Some of the routes used in Marble via download are provided by <a href=\"" 
  271            "http://www.mapquest.com/\">MapQuest</a> and their Open Data Map APIs and Web Services.<br />" 
  272            "Directions courtesy of MapQuest working on OpenStreetMap data that can be used freely under the terms of the " 
  273            "<a href=\"http://wiki.openstreetmap.org/index.php/OpenStreetMap_License\">" 
  274            "Creative Commons Attribution-ShareAlike 2.0 license</a>. Usage of the MapQuest routing " 
  275            "service is subject to the <a href=\"http://info.mapquest.com/terms-of-use/\">MapQuest terms of use</a>.</p>")+
 
  276         QObject::tr(
"<b>Cities and Locations</b>")+
 
  277         QObject::tr(
"<p><i>World Gazetteer</i><br />Stefan Helders " 
  278            "<a href=\"http://www.world-gazetteer.com\">http://www.world-gazetteer.com</a></p>")+
 
  279         QObject::tr(
"<p><i>Geonames.org</i><br />" 
  280            "<a href=\"http://www.geonames.org/\">http://www.geonames.org/</a>" 
  281            "<i>License</i>: Geonames.org data can be used freely under the terms of the " 
  282            "<a href=\"http://creativecommons.org/licenses/by/3.0/\">Creative Commons Attribution 3.0 license</a>.</p>")+
 
  283         QObject::tr(
"<p><i>Czech Statistical Office</i><br />Public database " 
  284            "<a href=\"http://www.czso.cz/eng/redakce.nsf/i/home\">http://www.czso.cz</a></p>")+
 
  285         QObject::tr(
"<b>Flags</b>")+
 
  286         QObject::tr(
"<p><i>Flags of the World</i><br />The flags were taken from Wikipedia " 
  287            "(<a href=\"http://www.wikipedia.org\">http://www.wikipedia.org</a>) " 
  288            "which in turn took a subset from <a href=\"http://www.openclipart.org\">" 
  289            "http://www.openclipart.org</a> and reworked them. " 
  290            "All flags are under the public domain (see comments inside the svg files).</p>")+
 
  291         QObject::tr(
"<b>Stars</b>")+
 
  292         QObject::tr(
"<p><i>The Bright Star Catalogue</i><br />5th Revised Ed. (Preliminary Version) "  
  293            "Hoffleit D., Warren Jr W.H., Astronomical Data Center, NSSDC/ADC (1991)" 
  294            "<a href=\"http://adc.gsfc.nasa.gov/adc-cgi/cat.pl?/catalogs/5/5050\"> " 
  295            "http://adc.gsfc.nasa.gov</a></p>") );
 
  296         QTextFrameFormat  format = browser->document()->rootFrame()->frameFormat();
 
  297         format.setMargin(12);
 
  298         browser->document()->rootFrame()->setFrameFormat( format );
 
  301     if ( idx == 3 && !licenseLoaded )
 
  303         licenseLoaded = 
true;
 
  304         QTextBrowser *
const browser = uiWidget.m_pMarbleLicenseBrowser;
 
  306         if( !filename.isEmpty() )
 
  309             if( f.open( QIODevice::ReadOnly ) ) 
 
  311                 QTextStream ts( &f );
 
  312                 browser->setText( ts.readAll() );
 
  316         QTextFrameFormat  format = browser->document()->rootFrame()->frameFormat();
 
  317         format.setMargin(12);
 
  318         browser->document()->rootFrame()->setFrameFormat( format );
 
  324     QString 
const titleHtml = 
"<b>" + title + 
"</b>";
 
  325     d->uiWidget.m_pMarbleTitleLabel->setText( titleHtml );
 
  326     QString 
const applicationVersion = tr( 
"Using Marble Library version %1" ).arg( 
MARBLE_VERSION_STRING );
 
  327     d->uiWidget.m_pMarbleVersionLabel->setText( applicationVersion );
 
  328     QTextBrowser* browser = d->uiWidget.m_pMarbleAboutBrowser;
 
  331         text = titleHtml + 
"<br />" + applicationVersion + 
"<br />";
 
  333     browser->setHtml( text + tr(
"<br />(c) 2007-%1 by the authors of Marble Virtual Globe<br /><br /><a href=\"http://edu.kde.org/marble\">http://edu.kde.org/marble</a>").arg( 2013 ) );
 
  334     QTextFrameFormat  format = browser->document()->rootFrame()->frameFormat();
 
  335     format.setMargin(12);
 
  336     browser->document()->rootFrame()->setFrameFormat( format );
 
  341     d->uiWidget.tabWidget->setCurrentIndex( tab );
 
  346 #include "MarbleAboutDialog.moc" 
static QString path(const QString &relativePath)
 
MarbleAboutDialog(QWidget *parent=0)
 
static MarbleGlobal * getInstance()
 
void setInitialTab(Tab tab)
setInitialTab Change the tab shown when executing the dialog 
 
const QString MARBLE_VERSION_STRING
 
void setApplicationTitle(const QString &title)
Set the application title (usually name and version) to show The default application title is 'Marble...