1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
|
//
// This file is part of the Marble Virtual Globe.
//
// This program is free software licensed under the GNU LGPL. You can
// find a copy of this license in LICENSE.txt in the top directory of
// the source code.
//
// Copyright 2006-2007 Torsten Rahn <tackat@kde.org>
// Copyright 2007 Inge Wallin <ingwa@kde.org>
// Copyright 2014 Dennis Nienhüser <nienhueser@kde.org>
//
#include "GameMainWindow.h"
#include <marble/MarbleDirs.h>
#include <marble/MarbleDebug.h>
#include <marble/MarbleLocale.h>
#include <marble/MarbleGlobal.h>
#include <QApplication>
#include <QDir>
#include <QLocale>
#include <QTranslator>
#include <QDebug>
using namespace Marble;
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
app.setApplicationName( "Marble Game" );
app.setOrganizationName( "KDE" );
app.setOrganizationDomain( "kde.org" );
// Widget translation
QString lang = QLocale::system().name().section('_', 0, 0);
QTranslator translator;
translator.load( "marble-" + lang, MarbleDirs::path(QString("lang") ) );
app.installTranslator(&translator);
// For non static builds on mac and win
// we need to be sure we can find the qt image
// plugins. In mac be sure to look in the
// application bundle...
#ifdef Q_WS_WIN
QApplication::addLibraryPath( QApplication::applicationDirPath()
+ QDir::separator() + "plugins" );
#endif
QString marbleDataPath;
int dataPathIndex=0;
MarbleGlobal::Profiles profiles = MarbleGlobal::detectProfiles();
QStringList args = QApplication::arguments();
if ( args.contains( "-h" ) || args.contains( "--help" ) ) {
qWarning() << "Usage: marble [options]";
qWarning();
qWarning() << "general options:";
qWarning() << " --marbledatapath=<path> .... Overwrite the compile-time path to map themes and other data";
qWarning();
qWarning() << "debug options:";
qWarning() << " --debug-info ............... write (more) debugging information to the console";
return 0;
}
for ( int i = 1; i < args.count(); ++i ) {
const QString arg = args.at(i);
if ( arg == QLatin1String( "--debug-info" ) )
{
MarbleDebug::setEnabled( true );
}
else if ( arg.startsWith( QLatin1String( "--marbledatapath=" ), Qt::CaseInsensitive ) )
{
marbleDataPath = args.at(i).mid(17);
}
else if ( arg.compare( QLatin1String( "--marbledatapath" ), Qt::CaseInsensitive ) == 0 && i+1 < args.size() ) {
dataPathIndex = i + 1;
marbleDataPath = args.value( dataPathIndex );
++i;
}
}
MarbleGlobal::getInstance()->setProfiles( profiles );
MarbleLocale::MeasurementSystem const measurement =
(MarbleLocale::MeasurementSystem)QLocale::system().measurementSystem();
MarbleGlobal::getInstance()->locale()->setMeasurementSystem( measurement );
MainWindow *window = new MainWindow( marbleDataPath );
window->show();
return app.exec();
}
|