File indexing completed on 2024-04-14 03:47:50

0001 /*
0002     SPDX-FileCopyrightText: 2004-2007 Torsten Rahn <tackat@kde.org>
0003     SPDX-FileCopyrightText: 2007 Inge Wallin <ingwa@kde.org>
0004 
0005     SPDX-License-Identifier: LGPL-2.0-or-later
0006 */
0007 
0008 
0009 #include "MarbleAboutDialog.h"
0010 #include "ui_MarbleAboutDialog.h"
0011 
0012 #include <QFile>
0013 #include <QTextFrame>
0014 #include <QTextStream>
0015 #include <QPixmap>
0016 
0017 #include "MarbleGlobal.h"
0018 #include "MarbleDirs.h"
0019 
0020 namespace Marble
0021 {
0022 
0023 class MarbleAboutDialogPrivate
0024 {
0025 public: 
0026     MarbleAboutDialogPrivate();
0027 
0028     void loadPageContents( int idx );
0029 
0030     Ui::MarbleAboutDialog  uiWidget;
0031 
0032     bool authorsLoaded;
0033     bool dataLoaded;
0034     bool licenseLoaded;
0035 };
0036 
0037 MarbleAboutDialogPrivate::MarbleAboutDialogPrivate() :
0038     authorsLoaded( false ),
0039     dataLoaded( false ),
0040     licenseLoaded( false )
0041 {
0042 }
0043 
0044 MarbleAboutDialog::MarbleAboutDialog(QWidget *parent)
0045     : QDialog( parent ),
0046       d( new MarbleAboutDialogPrivate )
0047 {
0048     d->uiWidget.setupUi( this );
0049 
0050     if( MarbleGlobal::getInstance()->profiles() & MarbleGlobal::SmallScreen ) {
0051         d->uiWidget.m_pMarbleTitleLabel->hide();
0052         d->uiWidget.m_pMarbleVersionLabel->hide();
0053         d->uiWidget.m_pMarbleLogoLabel->hide();
0054     }
0055     else {
0056         d->uiWidget.m_pMarbleLogoLabel->setPixmap( 
0057                 QPixmap(MarbleDirs::path(QStringLiteral("svg/marble-logo-72dpi.png"))));
0058     }
0059 
0060     QString const applicationTitle = QObject::tr( "Marble Virtual Globe" );
0061     setApplicationTitle( applicationTitle );
0062 
0063     connect( d->uiWidget.tabWidget, SIGNAL(currentChanged(int)), 
0064              this, SLOT(loadPageContents(int)) );
0065 }
0066 
0067 MarbleAboutDialog::~MarbleAboutDialog()
0068 {
0069    delete d;
0070 }
0071 
0072 void MarbleAboutDialogPrivate::loadPageContents( int idx )
0073 {
0074     if ( idx == 1 && !authorsLoaded )
0075     {
0076         authorsLoaded = true;
0077         QTextBrowser *const browser = uiWidget.m_pMarbleAuthorsBrowser;
0078         browser->setHtml( QObject::tr("<b>Active Development Team of Marble</b>")+
0079         QObject::tr("<p>Torsten Rahn <a href=\"mailto:rahn@kde.org\">rahn@kde.org</a><br />"
0080            "<i>Developer and Original Author</i></p>")+
0081         QObject::tr("<p>Dennis Nienh&uuml;ser <a href=\"mailto:nienhueser@kde.org\">nienhueser@kde.org</a><br />"
0082            "<i>Routing, Navigation, Mobile</i></p>")+
0083         QObject::tr("<p>Bernhard Beschow <a href=\"mailto:bbeschow@cs.tu-berlin.de\">bbeschow@cs.tu-berlin.de</a><br />"
0084            "<i>WMS Support, Mobile, Performance</i></p>")+
0085         QObject::tr("<p>Friedrich W. H. Kossebau, <a href=\"mailto:kossebau@kde.org\">kossebau@kde.org</a><br />"
0086            "<i>Plasma Integration, Bugfixes</i></p>")+
0087         QObject::tr("<p>Thibaut Gridel <a href=\"mailto:tgridel@free.fr\">tgridel@free.fr</a><br />"
0088            "<i>Geodata</i></p>")+
0089         QObject::tr("<p>Jens-Michael Hoffmann <a href=\"mailto:jensmh@gmx.de\">jensmh@gmx.de</a><br />"
0090            "<i>OpenStreetMap Support, Download Management</i></p>")+
0091         QObject::tr("<p>Florian E&szlig;er <a href=\"mailto:f.esser@rwth-aachen.de\">f.esser@rwth-aachen.de</a><br />"
0092            "<i>Elevation Profile</i></p>")+
0093         QObject::tr("<p>Wes Hardaker <a href=\"mailto:marble@hardakers.net\">marble@hardakers.net</a><br />"
0094            "<i>Amateur Radio Support</i></p>")+
0095         QObject::tr("<p>Bastian Holst, <a href=\"mailto:bastianholst@gmx.de\">bastianholst@gmx.de</a><br />"
0096            "<i>Online Services Support</i></p>")+
0097         QObject::tr("<p>Guillaume Martres, <a href=\"mailto:smarter@ubuntu.com\">smarter@ubuntu.com</a><br />"
0098            "<i>Satellites</i></p>")+
0099         QObject::tr("<p>Ren&#xE9; K&#xFC;ttner, <a href=\"mailto:rene@bitkanal.net\">rene@bitkanal.net</a><br />"
0100            "<i>Planetary Satellites</i></p>")+
0101         QObject::tr("<p>Niko Sams <a href=\"mailto:niko.sams@gmail.com\">niko.sams@gmail.com</a><br />"
0102            "<i>Routing, Elevation Profile</i></p>")+
0103         QObject::tr("<p>Patrick Spendrin <a href=\"pspendrin@gmail.com\">pspendrin@gmail.com</a><br />"
0104            "<i>KML and Windows Support</i></p>")+
0105         QObject::tr("<p>Eckhart W&ouml;rner <a href=\"mailto:kde@ewsoftware.de\">kde@ewsoftware.de</a><br />"
0106            "<i>Bugfixes</i></p>")+
0107         QObject::tr("<b>Developers</b>")+
0108         QObject::tr("<p>M&eacute;d&eacute;ric Boquien <a href=\"mailto:mboquien@free.fr\">mboquien@free.fr</a><br />"
0109            "<i>Astronomical Observatories</i></p>")+
0110         QObject::tr("<p>Harshit Jain <a href=\"mailto:sonu.itbhu@googlemail.com\">sonu.itbhu@googlemail.com</a><br />"
0111            "<i>Planet Filter, Bugfixes</i></p>")+
0112         QObject::tr("<p>Andrew Manson <a href=\"mailto:g.real.ate@gmail.com\">g.real.ate@gmail.com</a><br />"
0113            "<i>Proxy Support</i></p>")+
0114         QObject::tr("<p>Pino Toscano <a href=\"mailto:pino@kde.org\">pino@kde.org</a><br />"
0115            "<i>Network plugins</i></p>")+
0116         QObject::tr("<p>Henry de Valence <a href=\"mailto:hdevalence@gmail.com\">hdevalence@gmail.com</a><br />"
0117            "<i>Marble Runners, World-Clock Plasmoid</i></p>")+
0118         QObject::tr("<p>Magnus Valle<br /><i>Historical Maps</i></p>")+
0119         QObject::tr("<p>Inge Wallin <a href=\"mailto:inge@lysator.liu.se\">inge@lysator.liu.se</a><br />"
0120            "<i>Original Co-Maintainer</i></p>")+
0121         QObject::tr("<p><i>Development &amp; Patches:</i> Simon Schmeisser, Claudiu Covaci, David Roberts, Nikolas Zimmermann, Jan Becker, "
0122            "Stefan Asserh&auml;ll, Laurent Montel, Prashanth Udupa, Anne-Marie Mahfouf, Josef Spillner, Frerich Raabe, "
0123            "Frederik Gladhorn, Fredrik H&ouml;glund, Albert Astals Cid, Thomas Zander, Joseph Wenninger, Kris Thomsen, "
0124            "Daniel Molkentin  </p>")+
0125         QObject::tr("<p><i>Platforms &amp; Distributions:</i> "
0126            "Tim Sutton, Christian Ehrlicher, Ralf Habacker, Steffen Joeris, Marcus Czeslinski, Marcus D. Hanwell, Chitlesh Goorah, Sebastian Wiedenroth, Christophe Leske</p>")+
0127         QObject::tr("<p><i>Artwork:</i> Nuno Pinheiro, Torsten Rahn</p>")+
0128         QObject::tr("<b>Join us</b>")+
0129         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>")+
0130         QObject::tr("<b>ESA - Summer of Code in Space</b>")+
0131         QObject::tr("<p> The Marble Team would like to thank its members who participated "
0132            "in ESA SoCiS for their successful work on Marble:</p>")+
0133         QObject::tr("<p><b>2016</b></p>")+
0134         QObject::tr("<p>Judit Bartha, <a href=\"mailto:bartha.m.judit@gmail.com\"> bartha.m.judit@gmail.com </a><br />"
0135                                                                  "<i>Project: Improving Marble's Satellite maps using Sentinel-2 mission data</i></p>")+
0136         QObject::tr("<p><b>2015</b></p>")+
0137         QObject::tr("<p>Ana Badescu, <a href=\"mailto:anabee.emacs@gmail.com\"> anabee.emacs@gmail.com </a><br />"
0138                                                                  "<i>Project: Integrate data provided by the Sentinel missions</i></p>")+
0139         QObject::tr("<p><b>2014</b></p>")+
0140         QObject::tr("<p>G&#xE1;bor P&#xE9;terffy, <a href=\"mailto:peterffy95@gmail.com\"> peterffy95@gmail.com </a><br />"
0141                                                                  "<i>Project: Panoramic Picture Support for celestial bodies in Marble   </i></p>")+
0142         QObject::tr("<p><b>2013</b></p>")+
0143         QObject::tr("<p>Marek Hakala, <a href=\"mailto:hakala.marek@gmail.com\">hakala.marek@gmail.com</a><br />"
0144                                                "<i>Project: Displaying Solar / Lunar Eclipses in Marble </i></p>")+
0145         QObject::tr("<p><b>2012</b></p>")+
0146         QObject::tr("<p>Ren&#xE9; K&#xFC;ttner, <a href=\"mailto:rene@bitkanal.net\">rene@bitkanal.net</a><br />"
0147            "<i>Project: Visualization of planetary satellites</i></p>")+
0148         QObject::tr("<p><b>2011</b></p>")+
0149         QObject::tr("<p>Guillaume Martres, <a href=\"mailto:smarter@ubuntu.com\">smarter@ubuntu.com</a><br />"
0150            "<i>Project: Visualization of Satellite Orbits</i></p>")+
0151 
0152         QObject::tr("<b>Google Code-in</b>")+
0153         QObject::tr("<p> The Marble Team would like to thank its members who participated "
0154            "in the Google Code-in for their successful work on Marble:</p>")+
0155         QObject::tr("<p><b>2014</b></p>")+
0156         QObject::tr( "Ilya Kowalewski <a href=\"mailto:illya.kovalevskyy@gmail.com\">illya.kovalevskyy@gmail.com</a><br />" ) +
0157         QObject::tr( "Mikhail Ivchenko <a href=\"mailto:ematirov@gmail.com\">ematirov@gmail.com</a><br />" ) +
0158         QObject::tr( "Sergey Popov <a href=\"mailto:sergobot256@gmail.com\">sergobot256@gmail.com</a><br />" ) +
0159         QObject::tr( "Daniel Pastushchak <a href=\"mailto:danikpastushchak90@gmail.com\">danikpastushchak90@gmail.com</a><br />" ) +
0160 
0161         QObject::tr("<p><b>2013</b></p>")+
0162         QObject::tr( "Ilya Kowalewski <a href=\"mailto:illya.kovalevskyy@gmail.com\">illya.kovalevskyy@gmail.com</a><br />" ) +
0163         QObject::tr( "Mikhail Ivchenko <a href=\"mailto:ematirov@gmail.com\">ematirov@gmail.com</a><br />" ) +
0164         QObject::tr( "Levente Kurusa <a href=\"mailto:levex@linux.com\">levex@linux.com</a><br />" ) +
0165         QObject::tr( "Benjamin Kaiser <a href=\"mailto:benjaminjkaiser@gmail.com\">benjaminjkaiser@gmail.com</a><br />" ) +
0166         QObject::tr( "<p><b>2012</b></p>" ) +
0167         QObject::tr( "Ilya Kowalewski <a href=\"mailto:illya.kovalevskyy@gmail.com\">illya.kovalevskyy@gmail.com</a><br />" ) +
0168         QObject::tr( "Mohammed Nafees <a href=\"mailto:nafees.technocool@gmail.com\">nafees.technocool@gmail.com</a></p><br />" ) +
0169         QObject::tr( "Mayank Madan <a href=\"mailto:maddiemadan@gmail.com\">maddiemadan@gmail.com</a><br />" ) +
0170         QObject::tr( "Timothy Lanzi <a href=\"mailto:trlanzi@gmail.com\">trlanzi@gmail.com</a></p>" ) +
0171         QObject::tr( "<p><b>2011</b></p>" ) +
0172         QObject::tr( "<p>Utku Ayd&#x131;n <a href=\"mailto:utkuaydin34@gmail.com\">utkuaydin34@gmail.com</a><br />" ) +
0173         QObject::tr( "Daniel Marth <a href=\"mailto:danielmarth@gmx.at\">danielmarth@gmx.at</a><br />" ) +
0174         QObject::tr( "Cezar Mocan <a href=\"mailto:mocancezar@gmail.com\">mocancezar@gmail.com</a><br />" ) +
0175         QObject::tr( "Furkan &Uuml;z&uuml;mc&uuml; <a href=\"mailto:furkanuzumcu@gmail.com\">furkanuzumcu@gmail.com</a></p>" ) +
0176 
0177         QObject::tr("<b>Google Summer of Code</b>")+
0178         QObject::tr("<p> The Marble Team would like to thank its members who participated "
0179            "in the Google Summer of Code for their successful work on Marble:</p>")+
0180         QObject::tr( "<p><b>2017</b></p>" ) +
0181         QObject::tr( "<p>Mohammed Nafees <a href=\"mailto:nafees.technocool@gmail.com\">nafees.technocool@gmail.com</a><br />"
0182            "<i>Project: Marble Indoor Maps</i></p>" ) +
0183         QObject::tr( "<p>Judit Bartha <a href=\"mailto:bartha.m.judit@gmail.com\">bartha.m.judit@gmail.com</a><br />"
0184            "<i>Project: Marble Material Maps</i></p>" ) +
0185         QObject::tr( "<p><b>2016</b></p>" ) +
0186         QObject::tr( "<p>Dávid Kolozsvári <a href=\"freedawson@gmail.com\">freedawson@gmail.com</a><br />"
0187            "<i>Project: Fluent graphics across every tile level in Marble's OSM vector map</i></p>" ) +
0188         QObject::tr( "<p>Akshat Tandon <a href=\"akshat.tandon@research.iiit.ac.in\">akshat.tandon@research.iiit.ac.in</a><br />"
0189            "<i>Project: Support for medium and low tile levels in the OSM Vector Map of Marble</i></p>" ) +
0190         QObject::tr( "<p><b>2015</b></p>" ) +
0191         QObject::tr( "<p>Dávid Kolozsvári <a href=\"freedawson@gmail.com\">freedawson@gmail.com</a><br />"
0192            "<i>Project: Improve Marble's OSM vector rendering support</i></p>" ) +
0193         QObject::tr( "<p>Gábor Péterffy <a href=\"gabor.peterffy@gmail.com\">gabor.peterffy@gmail.com</a><br />"
0194            "<i>Project: Porting Marble to Android platform</i></p>" ) +
0195         QObject::tr( "<p>Marius Valeriu Stanciu <a href=\"stanciumarius94@gmail.com\">stanciumarius94@gmail.com</a><br />"
0196            "<i>Project: Offering OpenStreetMap support and improving Edit Mode for Marble</i></p>" ) +
0197         QObject::tr( "<p><b>2014</b></p>" ) +
0198         QObject::tr( "<p>Abhinav Gangwar <a href=\"abhgang@gmail.com\">abhgang@gmail.com</a><br />"
0199            "<i>Project: Marble Game</i></p>" ) +
0200         QObject::tr( "<p>Calin Cruceru <a href=\"crucerucalincristian@gmail.com\">crucerucalincristian@gmail.com</a><br />"
0201            "<i>Project: Editing Mode for Polygons</i></p>" ) +
0202         QObject::tr( "<p>Sanjiban Bairagya <a href=\"sanjiban22393@gmail.com\">sanjiban22393@gmail.com</a><br />"
0203            "<i>Project: Interactive Tours </i></p>" ) +
0204         QObject::tr( "<p><b>2013</b></p>" ) +
0205         QObject::tr( "<p>Adrian Draghici <a href=\"draghici.adrian.b@gmail.com\">draghici.adrian.b@gmail.com</a><br />"
0206            "<i>Project: Marble KML Map Editor</i></p>" ) +
0207         QObject::tr( "<p>Andrei Duma <a href=\"andrei.duma.dorian@gmail.com\">andrei.duma.dorian@gmail.com</a><br />"
0208            "<i>Project: Marble meets ownCloud</i></p>" ) +
0209         QObject::tr( "<p>Utku Ayd&#x131;n <a href=\"utkuaydin34@gmail.com\">utkuaydin34@gmail.com</a><br />"
0210            "<i>Project: ownCloud storage and synchronization for Marble </i></p>" ) +
0211         QObject::tr( "<p>Ren&#xE9; K&#xFC;ttner <a href=\"rene@bitkanal.net\">rene@bitkanal.net</a><br />"
0212            "<i>Project: OpenGL SceneGraph</i></p>" ) +
0213         QObject::tr( "<p><b>2012</b></p>" ) +
0214         QObject::tr( "<p>Ander Pijoan <a href=\"ander.pijoan@deusto.es\">ander.pijoan@deusto.es</a><br />"
0215             "<i>Project: OpenStreetMap Vector Rendering</i></p>" ) +
0216         QObject::tr( "<p>Cezar Mocan <a href=\"mocancezar@gmail.com\">mocancezar@gmail.com</a><br />"
0217             "<i>Project: Natural Earth Vector Map</i></p>" ) +
0218         QObject::tr( "<p>Bernhard Beschow <a href=\"bbeschow@cs.tu-berlin.de\">bbeschow@cs.tu-berlin.de</a><br />"
0219             "<i>Project: OpenGL Mode for Marble</i></p>" ) +
0220         QObject::tr( "<p><b>2011</b></p>" ) +
0221         QObject::tr( "<p>Konstantin Oblaukhov <a href=\"oblaukhov.konstantin@gmail.com\">oblaukhov.konstantin@gmail.com</a><br />"
0222             "<i>Project: OpenStreetMap Vector Rendering</i></p>" ) +
0223         QObject::tr( "<p>Daniel Marth <a href=\"danielmarth@gmx.at\">danielmarth@gmx.at</a><br />"
0224             "<i>Project: Marble Touch on MeeGo</i></p>" ) +
0225         QObject::tr( "<p><b>2010</b></p>" ) +
0226         QObject::tr( "<p>Gaurav Gupta <a href=\"mailto:1989.gaurav@gmail.com\">1989.gaurav@gmail.com</a><br />"
0227             "<i>Project: Bookmarks</i></p>" ) +
0228         QObject::tr( "<p>Harshit Jain <a href=\"mailto:hjain.itbhu@gmail.com\">hjain.itbhu@gmail.com</a><br />"
0229             "<i>Project: Time Support</i></p>" ) +
0230         QObject::tr( "<p>Siddharth Srivastava <a href=\"mailto:akssps011@gmail.com\">akssps011@gmail.com</a><br />"
0231             "<i>Project: Turn-by-turn Navigation</i></p>" ) +
0232         QObject::tr( "<p><b>2009</b></p>" ) +
0233         QObject::tr( "<p>Andrew Manson <a href=\"mailto:g.real.ate@gmail.com\">g.real.ate@gmail.com</a><br />"
0234             "<i>Project: OSM Annotation</i></p>" ) +
0235         QObject::tr( "<p>Bastian Holst <a href=\"mailto:bastianholst@gmx.de\">bastianholst@gmx.de</a><br />"
0236             "<i>Project: Online Services</i></p>" ) +
0237         QObject::tr("<p><b>2008</b></p>")+
0238         QObject::tr("<p>Patrick Spendrin <a href=\"pspendrin@gmail.com\">pspendrin@gmail.com</a><br />"
0239            "<i>Project: Vector Tiles for Marble</i></p>")+
0240         QObject::tr("<p>Shashank Singh <a href=\"mailto:shashank.personal@gmail.com\">shashank.personal@gmail.com</a><br />"
0241            "<i>Project: Panoramio / Wikipedia -photo support for Marble</i></p>")+
0242         QObject::tr("<b>2007</b>")+
0243         QObject::tr("<p>Carlos Licea <a href=\"mailto:carlos.licea@kdemail.net\">carlos.licea@kdemail.net</a><br />"
0244            "<i>Project: Equirectangular Projection (\"Flat Map\")</i></p>")+
0245         QObject::tr("<p>Andrew Manson <a href=\"mailto:g.real.ate@gmail.com\">g.real.ate@gmail.com</a><br />"
0246            "<i>Project: GPS Support for Marble</i></p>")+
0247         QObject::tr("<p>Murad Tagirov <a href=\"mailto:tmurad@gmail.com\">tmurad@gmail.com</a><br />"
0248            "<i>Project: KML Support for Marble</i></p>")+
0249         QObject::tr("<p>... and of course we'd like to thank the people at Google Inc. for making these projects possible.</p>")+
0250         QObject::tr("<b>Credits</b>")+
0251         QObject::tr("<p><i>Various Suggestions &amp; Testing:</i> Stefan Jordan, Robert Scott, Lubos Petrovic, Benoit Sigoure, "
0252            "Martin Konold, Matthias Welwarsky, Rainer Endres, Luis Silva, Ralf Gesellensetter, Tim Alder</p>")+
0253         QObject::tr("<p> We'd especially like to thank John Layt who provided an important source of inspiration "
0254            "by creating Marble's predecessor \"Kartographer\".</p>"));
0255         QTextFrameFormat  format = browser->document()->rootFrame()->frameFormat();
0256         format.setMargin(12);
0257         browser->document()->rootFrame()->setFrameFormat( format );
0258     }
0259 
0260     if ( idx == 2 && !dataLoaded )
0261     {
0262         dataLoaded = true;
0263         QTextBrowser *const browser = uiWidget.m_pMarbleDataBrowser;
0264         browser->setHtml( QObject::tr("<b>Maps</b>")+
0265         QObject::tr("<p><i>Blue Marble Next Generation (500 m / pixel)</i><br />"
0266            "NASA Goddard Space Flight Center Earth Observatory "
0267            "<a href=\"http://earthobservatory.nasa.gov/Newsroom/BlueMarble/\">"
0268            "http://earthobservatory.nasa.gov/Newsroom/BlueMarble/</a></p>")+
0269         QObject::tr("<p><i>Earth's City Lights</i><br />"
0270            "Data courtesy Marc Imhoff of NASA GSFC and Christopher Elvidge of NOAA NGDC. "
0271            "Image by Craig Mayhew and Robert Simmon, NASA GSFC.</p>")+
0272         QObject::tr("<p><i>Shuttle Radar Topography Mission (SRTM30, 1 km / pixel )</i><br />"
0273            "NASA Jet Propulsion Laboratory <a href=\"https://www2.jpl.nasa.gov/srtm/\">"
0274            "https://www2.jpl.nasa.gov/srtm/</a></p>")+
0275         QObject::tr("<p><i>Micro World Data Bank in Polygons (\"MWDB-POLY / MWDBII\")</i><br />"
0276            "CIA ; Global Associates, Ltd.; Fred Pospeschil and Antonio Rivera</p>")+
0277         QObject::tr("<p><i>Temperature and Precipitation Maps (July and December)</i><br />"
0278            "A combination of two datasets:"
0279            "<ul>"
0280            "<li>Legates, D.R. and Willmott, C.J. 1989. Average Monthly Surface Air Temperature and "
0281            "Precipitation. Digital Raster Data on a .5 degree Geographic (lat/long) 361x721 grid "
0282            "(centroid-registered on .5 degree meridians). Boulder CO: National Center for Atmospheric Research. "
0283            "<a href=\"http://www.ngdc.noaa.gov/ecosys/cdroms/ged_iia/datasets/a04/lw.htm\">"
0284            "http://www.ngdc.noaa.gov/ecosys/cdroms/ged_iia/datasets/a04/lw.htm</a></li>"
0285            "<li>CRU CL 2.0: New, M., Lister, D., Hulme, M. and Makin, I., 2002: A high-resolution "
0286            "data set of surface climate over global land areas. Climate Research 21."
0287            "<a href=\"https://crudata.uea.ac.uk/cru/data/hrg\">"
0288            "https://crudata.uea.ac.uk/cru/data/hrg</a></li></ul></p>")+
0289         QObject::tr("<b>Street Map</b>")+
0290         QObject::tr("<p><i>OpenStreetMap</i><br />"
0291            "The street maps used in Marble via download are provided by the <a href=\""
0292            "https://www.openstreetmap.org\">OpenStreetMap</a> Project (\"OSM\"). "
0293            "OSM is an open community which creates free editable maps.<br />"
0294            "<i>License</i>: OpenStreetMap data can be used freely under the terms of the "
0295            "<a href=\"https://wiki.openstreetmap.org/index.php/OpenStreetMap_License\">"
0296            "Creative Commons Attribution-ShareAlike 2.0 license</a>.</p>")+
0297         QObject::tr( "<p><i>Icons</i><br />"
0298             "Some icons are taken from <a href=\"https://www.sjjb.co.uk/mapicons\">SJJB Management</a> and <a href=\"https://thenounproject.com\">NounProject</a>. "
0299             "These icons can be used freely under the terms of the "
0300             "<a href=\"https://creativecommons.org/publicdomain/zero/1.0/\">CC0 1.0 Universal</a> license.</p>") +
0301         QObject::tr( "<p>Some icons are taken from <a href=\"https://fortawesome.github.com/Font-Awesome\">Font Awesome</a>. "
0302             "These icons can be used freely under the terms of the "
0303             "<a href=\"https://creativecommons.org/licenses/by/3.0/\">CC BY 3.0</a> license.</p>") +
0304         QObject::tr("<p><i>OpenRouteService</i><br />"
0305            "Some of the routes used in Marble via download are provided by the <a href=\""
0306            "https://maps.openrouteservice.org\">OpenRouteService</a> Project (\"ORS\"). <br />"
0307            "<i>License</i>: OpenRouteService data can be used freely under the terms of the "
0308            "<a href=\"https://wiki.openstreetmap.org/index.php/OpenStreetMap_License\">"
0309            "Creative Commons Attribution-ShareAlike 2.0 license</a>.</p>")+
0310         QObject::tr("<p><i>Open Source Routing Machine</i><br />"
0311            "Some of the routes used in Marble via download are provided by the <a href=\""
0312            "http://project-osrm.org\">Open Source Routing Machine</a> Project (\"OSRM\"). <br />"
0313            "<i>License</i>: Open Source Routing Machine data can be used freely under the terms of the "
0314            "<a href=\"https://wiki.openstreetmap.org/index.php/OpenStreetMap_License\">"
0315            "Creative Commons Attribution-ShareAlike 2.0 license</a>.</p>")+
0316         QObject::tr("<p><i>MapQuest</i><br />"
0317            "Some of the routes used in Marble via download are provided by <a href=\""
0318            "https://www.mapquest.com/\">MapQuest</a> and their Open Data Map APIs and Web Services.<br />"
0319            "Directions courtesy of MapQuest working on OpenStreetMap data that can be used freely under the terms of the "
0320            "<a href=\"https://wiki.openstreetmap.org/index.php/OpenStreetMap_License\">"
0321            "Creative Commons Attribution-ShareAlike 2.0 license</a>. Usage of the MapQuest routing "
0322            "service is subject to the <a href=\"https://info.mapquest.com/terms-of-use/\">MapQuest terms of use</a>.</p>")+
0323         QObject::tr("<b>Cities and Locations</b>")+
0324         QObject::tr("<p><i>World Gazetteer</i><br />Stefan Helders "
0325            "<a href=\"http://www.world-gazetteer.com\">http://www.world-gazetteer.com</a></p>")+
0326         QObject::tr("<p><i>Geonames.org</i><br />"
0327            "<a href=\"https://www.geonames.org/\">https://www.geonames.org/</a>"
0328            "<i>License</i>: Geonames.org data can be used freely under the terms of the "
0329            "<a href=\"https://creativecommons.org/licenses/by/3.0/\">Creative Commons Attribution 3.0 license</a>.</p>")+
0330         QObject::tr("<p><i>Czech Statistical Office</i><br />Public database "
0331            "<a href=\"https://vdb.czso.cz/vdbvo2\">https://www.czso.cz</a></p>")+
0332         QObject::tr("<b>Flags</b>")+
0333         QObject::tr("<p><i>Flags of the World</i><br />The flags were taken from Wikipedia "
0334            "(<a href=\"https://www.wikipedia.org\">https://www.wikipedia.org</a>) "
0335            "which in turn took a subset from <a href=\"https://www.openclipart.org\">"
0336            "https://www.openclipart.org</a> and reworked them. "
0337            "All flags are under the public domain (see comments inside the svg files).</p>")+
0338         QObject::tr("<b>Stars</b>")+
0339         QObject::tr("<p><i>The Bright Star Catalogue</i><br />5th Revised Ed. (Preliminary Version) " // krazy:exclude=spelling
0340            "Hoffleit D., Warren Jr W.H., Astronomical Data Center, NSSDC/ADC (1991)"
0341            "<a href=\"https://heasarc.gsfc.nasa.gov/W3Browse/star-catalog/bsc5p.html\"> "
0342            "https://heasarc.gsfc.nasa.gov</a></p>") );
0343         QTextFrameFormat  format = browser->document()->rootFrame()->frameFormat();
0344         format.setMargin(12);
0345         browser->document()->rootFrame()->setFrameFormat( format );
0346     }
0347 
0348     if ( idx == 3 && !licenseLoaded )
0349     {
0350         licenseLoaded = true;
0351         QTextBrowser *const browser = uiWidget.m_pMarbleLicenseBrowser;
0352         const QString filename = MarbleDirs::path(QStringLiteral("LICENSE.txt"));
0353         if( !filename.isEmpty() )
0354         {
0355             QFile  f( filename );
0356             if( f.open( QIODevice::ReadOnly ) ) 
0357             {
0358                 QTextStream ts( &f );
0359                 browser->setText( ts.readAll() );
0360             }
0361             f.close();
0362         }
0363         QTextFrameFormat  format = browser->document()->rootFrame()->frameFormat();
0364         format.setMargin(12);
0365         browser->document()->rootFrame()->setFrameFormat( format );
0366     }
0367 }
0368 
0369 void MarbleAboutDialog::setApplicationTitle( const QString &title )
0370 {
0371     QString const titleHtml = QLatin1String("<b>") + title + QLatin1String("</b>");
0372     d->uiWidget.m_pMarbleTitleLabel->setText( titleHtml );
0373     QString const applicationVersion = tr( "Using Marble Library version %1" ).arg( MARBLE_VERSION_STRING );
0374     d->uiWidget.m_pMarbleVersionLabel->setText( applicationVersion );
0375     QTextBrowser* browser = d->uiWidget.m_pMarbleAboutBrowser;
0376     QString text;
0377     if( MarbleGlobal::getInstance()->profiles() & MarbleGlobal::SmallScreen ) {
0378         text = titleHtml + QLatin1String("<br />") + applicationVersion + QLatin1String("<br />");
0379     }
0380     browser->setHtml( text + tr("<br />(c) 2007-%1 by the authors of Marble Virtual Globe<br /><br /><a href=\"https://edu.kde.org/marble\">https://edu.kde.org/marble</a>").arg( 2023 ) );
0381     QTextFrameFormat  format = browser->document()->rootFrame()->frameFormat();
0382     format.setMargin(12);
0383     browser->document()->rootFrame()->setFrameFormat( format );
0384 }
0385 
0386 void MarbleAboutDialog::setInitialTab( MarbleAboutDialog::Tab tab )
0387 {
0388     d->uiWidget.tabWidget->setCurrentIndex( tab );
0389 }
0390 
0391 }
0392 
0393 #include "moc_MarbleAboutDialog.cpp"