/* ============================================================
*
* This file is a part of the rekonq project
*
* Copyright (C) 2008-2009 by Andrea Diamantini <adjam7 at gmail dot com>
*
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of
* the License or (at your option) version 3 or any later version
* accepted by the membership of KDE e.V. (or its successor approved
* by the membership of KDE e.V.), which shall act as a proxy 
* defined in Section 14 of version 3 of the license.
* 
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program.  If not, see <http://www.gnu.org/licenses/>.
*
* ============================================================ */


// version include
#include "../version.h"

// Local Includes
#include "application.h"
#include "sessionmanager.h"

// KDE Includes
#include <KAboutData>
#include <KCmdLineArgs>
#include <KDebug>


static const char description[] =
    I18N_NOOP("A lightweight Web Browser for KDE based on WebKit");


extern "C" KDE_EXPORT int kdemain( int argc, char **argv )
{
    KAboutData about("rekonq",
                     0,
                     ki18n("rekonq"),
                     REKONQ_VERSION,
                     ki18n(description),
                     KAboutData::License_GPL_V3,
                     ki18n("(C) 2008-2009 Andrea Diamantini"),
                     KLocalizedString(),
                     "http://rekonq.sourceforge.net"
                    );

    // --------------- about authors -----------------------------
    about.addAuthor(ki18n("Andrea Diamantini"),
                    ki18n("Project Lead, Developer"),
                    "adjam7@gmail.com",
                    "http://www.adjam.org");

    about.addAuthor(ki18n("Domrachev Alexandr"),
                    ki18n("Developer"),
                    "alexandr.domrachev@gmail.com",
                    "");

    about.addAuthor(ki18n("Panagiotis Papadopoulos"),
                    ki18n("Quite everything but code"),
                    "pano_90@gmx.net",
                    "");

    about.addAuthor(ki18n("Lionel Chauvin"),
                    ki18n("Developer, Ideas, Mockups. And the icon."),
                    "megabigbug@yahoo.fr",
                    "");

    about.addAuthor(ki18n("Johannes Zellner"),
                    ki18n("Patches, suggestions, testing, bugfixing"),
                    "webmaster@nebulon.de",
                    "");

    about.addAuthor(ki18n("Matthieu Gicquel"),
                    ki18n("Developer, Ideas, Tabloid improvements"),
                    "matthieu@bureau.home",
                    "");

    about.addAuthor(ki18n("Ronny Scholz"),
                    ki18n("(Tons of ) patches, testing, bugfixing"),
                    "ronny_scholz@web.de",
                    "");
                    
    // --------------- about credits -----------------------------                    
    about.addCredit(ki18n("Henry de Valence"),
                    ki18n("Promised help on multitask rekonq"),
                    "hdevalence@gmail.com",
                    "");

    about.addCredit(ki18n("Abuus"),
                    ki18n("Webview mouse event support"),
                    "buusmail@gmail.com",
                    "");

    about.addCredit(ki18n("Ivan Čukić"),
                    ki18n("Patches, bugfixing and ideas"),
                    "ivan@fomentgroup.org",
                    "");

    about.addCredit(ki18n("Adrià Arrufat"),
                    ki18n("New tab loading animation"),
                    "swiftscythe@gmail.com",
                    "");

    about.addCredit(ki18n("Pawel Prazak"),
                    ki18n("Developer"),
                    "kojots350@gmail.com",
                    "");

    about.addCredit(ki18n("Rohan Garg"),
                    ki18n("Handbook"),
                    "rohan16garg@gmail.com",
                    "");
                    
    about.addCredit(ki18n("Dario Freddi"),
                    ki18n("Patches, hints, first KWallet support implementation (not yet included)"),
                    "drf@kde.org",
                    "");

    about.addCredit(ki18n("Jon de Andrés Frías"),
                    ki18n("first awesome bar implementation (wait next version and you'll see..)"),
                    "jondeandres@gmail.com",
                    "");
                    
    // Initialize command line args
    KCmdLineArgs::init(argc, argv, &about);

    // Define the command line options using KCmdLineOptions
    KCmdLineOptions options;

    // adding URL option
    options.add("+[URL]" , ki18n("Location to open"));

    // Register the supported options
    KCmdLineArgs::addCmdLineOptions(options);

    // Add options from Application class
    Application::addCmdLineOptions();

    if (!Application::start())
    {
        kWarning() << "rekonq is already running!";
        return 0;
    }

    Application app;

    return app.exec();
}