/***************************************************************************
                          main.cpp  -  description
                             -------------------
    begin                : Die Mai 22 17:24:18 CEST 2001
    copyright            : (C) 2001 by Ralf Nolden
    email                : nolden@kde.org
 ***************************************************************************/

/***************************************************************************
 *                                                                         *
 *   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) any later version.                                   *
 *                                                                         *
 ***************************************************************************/

#include <kcmdlineargs.h>
#include <kaboutdata.h>
#include <klocale.h>
#include <dcopclient.h>
#include <kglobal.h>

#include "kpersonalizer.h"
#include "findlanguage.h"

static const char *description = I18N_NOOP("KPersonalizer");
	
static KCmdLineOptions options[] =
{
  { "r", I18N_NOOP("personalizer is restarted by itself"), 0 },
  { "before-session", I18N_NOOP("personalizer is running before KDE session"), 0 },
  { 0, 0, 0 }
};

int main(int argc, char *argv[])
{

  KAboutData aboutData( "kpersonalizer", I18N_NOOP("KPersonalizer"),
    VERSION, description, KAboutData::License_GPL,
    "(c) 2001, Ralf Nolden", 0, 0, "nolden@kde.org");
  aboutData.addAuthor("Ralf Nolden",0, "nolden@kde.org");
  aboutData.addAuthor("Carsten Wolff",0, "AirWulf666@gmx.net");
  aboutData.addAuthor("qwertz",0, "kraftw@gmx.de");
  aboutData.addAuthor("Bernhard Rosenkraenzer", 0, "bero@redhat.com");
  KCmdLineArgs::init( argc, argv, &aboutData );
  KCmdLineArgs::addCmdLineOptions( options ); // Add our own options.

  KLocale::setMainCatalogue("kpersonalizer");

  KApplication a;
  if ( !kapp->dcopClient()->isAttached() )
    kapp->dcopClient()->attach();

  KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
  if (args->isSet("before-session"))
    KPersonalizer::setBeforeSession();
  if (!args->isSet("r")) { // we'll first show the first page
    QString lang = findLanguage();
    if( !lang.isEmpty()) // if we have the users language, use it
      KGlobal::locale()->setLanguage( lang );
  }
  KPersonalizer *kpersonalizer = new KPersonalizer();
  // is personalizer restarted by itself?
  if (args->isSet("r"))
    kpersonalizer->restarted();
  a.setMainWidget(kpersonalizer);
  kpersonalizer->show();  

  return a.exec();
}
