250 lines
20 KiB
C++
250 lines
20 KiB
C++
/***************************************************************************
|
|
main.cpp - description
|
|
-------------------
|
|
begin : Sun Jan 5 15:18:36 CST 2003
|
|
copyright : (C) 2003 by Mike K. Bennett
|
|
email : mkb137b@hotmail.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) any later version. *
|
|
* *
|
|
***************************************************************************/
|
|
|
|
#include "utils/crashhandler.h"
|
|
#include "config-kmess.h"
|
|
#include "kmessapplication.h"
|
|
#include "kmessdebug.h"
|
|
|
|
#include <KAboutData>
|
|
#include <KLocalizedString>
|
|
|
|
#include <QCommandLineOption>
|
|
#include <QCommandLineParser>
|
|
#include <QIcon>
|
|
|
|
|
|
|
|
/**
|
|
* @brief Main starting point of KMess.
|
|
* @param argc Number of arguments entered at the command line.
|
|
* @param argv Array of command line arguments.
|
|
* @returns Exit code of the application.
|
|
* @ingroup Root
|
|
*/
|
|
int main(int argc, char *argv[])
|
|
{
|
|
Q_INIT_RESOURCE( isfqtresources );
|
|
|
|
// Create the application before KAboutData and QCommandLineParser, as required by KF6.
|
|
KMessApplication kmessApp( argc, argv );
|
|
kmessApp.setDesktopFileName( "org.kmess.kmess" );
|
|
kmessApp.setWindowIcon( QIcon::fromTheme( QStringLiteral( "kmess" ) ) );
|
|
KLocalizedString::setApplicationDomain( "kmess" );
|
|
|
|
// Init about dialog.
|
|
// Tab 1: General
|
|
KAboutData aboutData( "kmess", // internal name
|
|
i18n("KMess"), // program name
|
|
KMESS_VERSION, // app version from config-kmess.h
|
|
i18n("A Live Messenger client for KDE"), // short description
|
|
KAboutLicense::GPL, // license
|
|
i18n("(c) 2002-2012, Mike K. Bennett\n" // copyright
|
|
"(c) 2005-2012, Diederik van der Boor\n"
|
|
"(c) 2007-2012, Valerio Pilo\n"
|
|
"(c) 2008-2012, Antonio Nastasi\n"
|
|
"(c) 2008-2012, Ruben Vandamme\n"
|
|
"(c) 2009-2012, Sjors Gielen\n"
|
|
"(c) 2009-2012, Adam Goossens\n"),
|
|
QString(),
|
|
"http://www.kmess.org/", // home page
|
|
"bugs" "@" "kmess" "." "org" // address for bugs
|
|
);
|
|
|
|
// Note all email addresses are written in an anti-spam style.
|
|
|
|
// Tab 2: Authors
|
|
// TODO: escape the special characters to some Unicode format. (how?)
|
|
aboutData.addAuthor( i18n("Mike K. Bennett"), i18n("Developer and project founder"), "mkb137" "@" "users.sourceforge" "." "net" );
|
|
aboutData.addAuthor( i18n("Michael Curtis"), i18n("Developer"), "mdcurtis" "@" "users.sourceforge" "." "net" );
|
|
aboutData.addAuthor( i18n("Jan Tönjes"), i18n("Project support"), "jan" "@" "kmess" "." "org" );
|
|
aboutData.addAuthor( i18n("Diederik van der Boor"), i18n("Current developer"), "diederik" "@" "kmess" "." "org" );
|
|
aboutData.addAuthor( i18n("Valerio Pilo"), i18n("Current developer"), "valerio" "@" "kmess" "." "org" );
|
|
aboutData.addAuthor( i18n("Antonio Nastasi"), i18n("Current developer"), "sifcenter" "@" "gmail" "." "com" );
|
|
aboutData.addAuthor( i18n("Ruben Vandamme"), i18n("Current developer"), "vandammeru" "@" "gmail" "." "com" );
|
|
aboutData.addAuthor( i18n("Sjors Gielen"), i18n("Current developer"), "sjors" "@" "kmess" "." "com" );
|
|
aboutData.addAuthor( i18n("Adam Goossens"), i18n("Current developer"), "fontknocker""@" "gmail" "." "com" );
|
|
|
|
// Tab 3: Credits
|
|
aboutData.addCredit( i18n("Jan Tönjes"), i18n("German translation, testing, documentation, web master, project management, etc..."), "jan" "." "toenjes" "@" "web" "." "de");
|
|
aboutData.addCredit( i18n("Dane Harnett"), i18n("Web design"), "dynamitedane" "@" "hotmail" "." "com");
|
|
aboutData.addCredit( i18n("David Vignoni"), i18n("Main and yellow/blue/violet emoticon sets, Italian translation"), "dvgn" "@" "libero" "." "it");
|
|
aboutData.addCredit( i18n("Julien Joubin"), i18n("Cartoon emoticons"), "jujubinche" "@" "netscape" "." "net");
|
|
aboutData.addCredit( i18n("Christian Müller"), i18n("Default sound theme"), "cmue81" "@" "gmx" "." "de");
|
|
aboutData.addCredit( i18n("Michael Anderton"), i18n("KMess icon in Oxygen style"), "mike" "." "s" "." "anderton" "@" "gmail" "." "com");
|
|
|
|
// Translations
|
|
// Sorted by Alphabetic order of language.
|
|
aboutData.addCredit( i18n("Panagiotis Papadopoulos"), i18n("Translations Maintainer"), "pano_90" "@" "gmx" "." "net");
|
|
|
|
aboutData.addCredit( i18n("Mohamed Aser"), i18n("Arabic translation, internationalization of file saving fix" "." ""), "mohasr" "@" "link" "." "net");
|
|
aboutData.addCredit( i18n("Youssef Chahibi"), i18n("More Arabic translation"), "chahibi" "@" "gmail" "." "com");
|
|
|
|
aboutData.addCredit( i18n("Mauricio Rother"), i18n("Brazilian Portuguese translation"), "mauricio" "@" "digicomm" "." "com.br");
|
|
aboutData.addCredit( i18n("Leonel Freire"), i18n("More Brazilian Portuguese translation"), "leonelfreire" "@" "gmail" "." "com");
|
|
aboutData.addCredit( i18n("Sergio Rafael Lemke"), i18n("More Brazilian Portuguese translation"), "bedi" "." "com" "@" "gmail" "." "com");
|
|
aboutData.addCredit( i18n("Morris Arozi Moraes"), i18n("More Brazilian Portuguese translation"));
|
|
|
|
aboutData.addCredit( i18n("Jaume Cornadó"), i18n("Catalan translation"), "jaumec" "@" "lleida" "." "net");
|
|
aboutData.addCredit( i18n("Adrià Arrufat"), i18n("More Catalan translation"), "swiftscythe" "@" "gmail" "." "com");
|
|
|
|
aboutData.addCredit( i18n("Lin Haoxiang"), i18n("Simplified Chinese translation, file send bug fix, proxy connect code"), "linhaoxiang" "@" "hotmail" "." "com");
|
|
aboutData.addCredit( i18n("Liu Sizhuang"), i18n("More Simplified Chinese translation"), "chinatslsz" "@" "hotmail.com");
|
|
aboutData.addCredit( i18n("Cheng Yang"), i18n("More Simplified Chinese translation"), "yangzju" "@" "gmail.com");
|
|
aboutData.addCredit( i18n("Yen-chou Chen"), i18n("Traditional Chinese translation"), "yenchou" "." "mse90" "@" "nctu" "." "edu" "." "tw");
|
|
aboutData.addCredit( i18n("Tryneeds-Chinese"), i18n("More Traditional Chinese translation"), "tryneeds@gmail.com");
|
|
|
|
aboutData.addCredit( i18n("Lars Sommer"), i18n("Danish translation"), "admin" "@" "lasg" "." "dk");
|
|
aboutData.addCredit( i18n("Pascal d'Hermilly"), i18n("More Danish translation"), "pascal" "@" "tipisoft" "." "dk");
|
|
|
|
aboutData.addCredit( i18n("Arend van Beelen Jr."), i18n("Dutch translation"), "arend" "@" "auton" "." "nl");
|
|
aboutData.addCredit( i18n("Diederik van der Boor"), i18n("More Dutch translation"), "diederik" "@" "kmess" "." "org");
|
|
aboutData.addCredit( i18n("Jaap Woldringh"), i18n("More Dutch translation"), "jjh" "." "woldringh" "@" "planet" "." "nl");
|
|
aboutData.addCredit( i18n("Elve"), i18n("More Dutch translation"), "elve" "@" "savage-elve" "." "net");
|
|
aboutData.addCredit( i18n("Sander Pientka"), i18n("More Dutch translation"), "cumulus0007" "@" "gmail" "." "com");
|
|
aboutData.addCredit( i18n("Heimen Stoffels"), i18n("More Dutch translation"), "djmusic121" "@" "gmail" "." "com");
|
|
|
|
aboutData.addCredit( i18n("Panagiotis Papadopoulos"), i18n("More German translation, Greek translation"), "pano_90" "@" "gmx" "." "net");
|
|
aboutData.addCredit( i18n("Dimitrios Glentadakis"), i18n("More Greek translation"), "dglent" "@" "gmail" "." "com");
|
|
|
|
aboutData.addCredit( i18n("Jyri Toomessoo"), i18n("Estonian translation"), "nuubik" "@" "hotmail" "." "com");
|
|
aboutData.addCredit( i18n("Markus Vuori"), i18n("Finnish translation"), "markus" "@" "vuoret" "." "net");
|
|
aboutData.addCredit( i18n("Joonas Niilola"), i18n("More Finnish translation"), "juippis" "@" "roskakori" "." "org");
|
|
aboutData.addCredit( i18n("Jussi Timperi"), i18n("More Finnish translation"), "jussi.timperi" "@" "gmail" "." "com");
|
|
aboutData.addCredit( i18n("Antony Hussi"), i18n("More Finnish translation"), "antony.hussi" "@" "tranciend" "." "com");
|
|
|
|
aboutData.addCredit( i18n("Choplair"), i18n("French translation"), "pachilor" "@" "yahoo" "." "co" "." "jp");
|
|
aboutData.addCredit( i18n("Vincent Fretin"), i18n("More French translation, MSN6 emoticon definitions"), "fretinvincent" "@" "hotmail" "." "com");
|
|
aboutData.addCredit( i18n("Andrea Blankenstijn"), i18n("More French translation"), "darkan9el" "@" "gmail" "." "com" ); // or "andrea" "@" "zenephiris" "." "ch"
|
|
aboutData.addCredit( i18n("Barthe Guillaume"), i18n("More French translation"), "gu_barthe" "@" "yahoo" "." "fr" );
|
|
aboutData.addCredit( i18n("Scias"), i18n("More French translation"), "shining" "." "scias" "@" "gmail" "." "com" );
|
|
aboutData.addCredit( i18n("Grégory Bellier"), i18n("More French translation"), "gregory" "." "bellier" "@" "gmail" "." "com" );
|
|
aboutData.addCredit( i18n("Anthony Rey"), i18n("More French translation"), "gnuk" "@" "mailoo" "." "org");
|
|
|
|
aboutData.addCredit( i18n("Páder Rezső"), i18n("Hungarian translation"), "rezso" "@" "rezso" "." "net");
|
|
aboutData.addCredit( i18n("Pauli Henrik"), i18n("More Hungarian translation"), "henrik.pauli" "@" "drangolin" "." "net");
|
|
aboutData.addCredit( i18n("Valerio Pilo"), i18n("More Italian translation"), "valerio" "@" "kmess" "." "org");
|
|
aboutData.addCredit( i18n("Vincenzo Reale"), i18n("More Italian translation"), "smart2128" "@" "baslug" "." "org");
|
|
aboutData.addCredit( i18n("Andrea Decorte"), i18n("More Italian translation, Group selection in 'contact added user' dialog"), "adecorte" "@" "gmail" "." "com");
|
|
|
|
aboutData.addCredit( i18n("Daniel E. Moctezuma"), i18n("Japanese translation"), "dmoctezuma" "@" "kmess" "." "org");
|
|
aboutData.addCredit( i18n("Park Dong Cheon"), i18n("Korean translation"), "pdc" "@" "kaist" "." "ac.kr");
|
|
aboutData.addCredit( i18n("Øyvind Sæther"), i18n("Norsk Bokmål translation"), "oyvind" "@" "sather" "." "tk");
|
|
|
|
aboutData.addCredit( i18n("Zoran Milovanović"), i18n("Serbian translation"), "provalisam" "@" "gmail" "." "com");
|
|
|
|
aboutData.addCredit( i18n("Rastislav Krupanský"), i18n("Slovak translation"), "ra100" "@" "atlas" "." "sk");
|
|
aboutData.addCredit( i18n("Matjaž Kaše"), i18n("Slovenian translation"), "matjaz" "." "kase" "@" "g-kabel" "." "si");
|
|
|
|
aboutData.addCredit( i18n("Johanna Gersch"), i18n("Spanish translation"));
|
|
aboutData.addCredit( i18n("J.C.A. Javi"), i18n("More Spanish translation"), "yovoya30ks" "@" "hotmail" "." "com");
|
|
aboutData.addCredit( i18n("Alejandro Araiza Alvarado"), i18n("More Spanish translation"), "mebrelith" "@" "gmail" "." "com");
|
|
aboutData.addCredit( i18n("Jaume Corbí"), i18n("More Spanish translation"), "jaume4" "@" "gmail" "." "com");
|
|
aboutData.addCredit( i18n("Christian Kaiser"), i18n("More Spanish translation"), "k39" "@" "users" "." "sourceforge" "." "net");
|
|
aboutData.addCredit( i18n("Juan Pablo González Tognarelli"), i18n("More Spanish translation"), "jotapesan" "@" "gmail" "." "com" );
|
|
aboutData.addCredit( i18n("Alexis Daniel Medina Medina"), i18n("More Spanish translation"), "alexismedina" "@" "gmail" "." "com");
|
|
aboutData.addCredit( i18n("Manuel Ramírez"), i18n("More Spanish translation"), "elpreto" "@" "kde" "." "org" "." "ar");
|
|
aboutData.addCredit( i18n("Mauricio Muñoz Lucero"), i18n("More Spanish translation"), "real" "." "mml" "@" "gmail" "." "com");
|
|
|
|
aboutData.addCredit( i18n("Christian Lundgren"), i18n("Swedish translation"), "zeflunk" "@" "gmail" "." "com");
|
|
aboutData.addCredit( i18n("Mattias Newzella"), i18n("More Swedish translation"), "newzella" "@" "gmail" "." "com");
|
|
|
|
aboutData.addCredit( i18n("Rachan Hongpairote"), i18n("Thai translation"), "rachanh" "@" "yahoo" "." "com");
|
|
aboutData.addCredit( i18n("Gorkem Cetin"), i18n("Turkish translation"), "gorkem" "@" "gelecek" "." "com" "." "tr");
|
|
aboutData.addCredit( i18n("Barbaros Ulutas"), i18n("More Turkish translation"), "ulutas" "@" "gmail" "." "com");
|
|
aboutData.addCredit( i18n("Uğur Çetin"), i18n("More Turkish translation"), "ugur" "." "jnmbk" "@" "gmail" "." "com");
|
|
|
|
// Other contributors
|
|
aboutData.addCredit( i18n("Richard Conway"), i18n("MSNP12 support, various patches"), "richardconway" "@" "users" "." "sourceforge.net");
|
|
aboutData.addCredit( i18n("Guido Solinas"), i18n("Pictures in contact list code, contact client info, chat font zoom"), "whereismwhite" "@" "gmail" "." "com");
|
|
aboutData.addCredit( i18n("Pedro Ferreira"), i18n("File transfer thumbnails"), "pedro." "ferreira" "@" "fe" "." "up.pt");
|
|
aboutData.addCredit( i18n("Liu Sizhuang"), i18n("P4-Context field support"), "chinatslsz" "@" "hotmail.com");
|
|
aboutData.addCredit( i18n("Scott Morgan"), i18n("Xinerama fixes"), "blumf" "@" "blumf" "." "freeserve" "." "co" "." "uk");
|
|
aboutData.addCredit( i18n("Laurence Anderson"), i18n("Original file receive code"), "l.d" "." "anderson" "@" "warwick" ".ac.uk");
|
|
aboutData.addCredit( i18n("Matteo Nardi"), i18n("KWallet support"), "91.matteo" "@" "gmail" "." "com");
|
|
aboutData.addCredit( i18n("Adam Goossens"), i18n("Notifications blocking option, winks disabling option, last message date feature"), "fontknocker" "@" "gmail" "." "com");
|
|
aboutData.addCredit( i18n("Sjors Gielen"), i18n("IRC-like commands in the chat window"), "dazjorz" "@" "dazjorz" "." "com");
|
|
aboutData.addCredit( i18n("Dario Freddi"), i18n("Chat history dialog"), "drf_av" "@" "users" "." "sourceforge" "." "net");
|
|
// Lin Haoxiang (file send bug fix, proxy connect code) already above
|
|
// Mohamed Aser (internationalization of file saving fix) already above
|
|
aboutData.addCredit( i18n("Alexandre Peixoto Ferreira"), i18n("Various internationalization fixes"), "alexandref" "@" "o2" ".net" ".br");
|
|
aboutData.addCredit( i18n("Choe Hwanjin"), i18n("Various internationalization fixes" "." ""), "hjchoe" "@" "hancom" "." "com");
|
|
// Vincent Fretin (MSN6 emoticon definitions) already above
|
|
aboutData.addCredit( i18n("Damien Sandras"), i18n("GnomeMeeting developer"), "dsandras" "@" "seconix" "." "com");
|
|
aboutData.addCredit( i18n("Tobias Tönjes"), i18n("Guy with a bag over his head"), "");
|
|
aboutData.addCredit( i18n("Camille Begue"), i18n("Chat History functionality when disconnected, autologin checkbox on login screen"), "prsieux" "@" "@gmail" "." "com");
|
|
aboutData.addCredit( i18n("David López"), i18n("Nudge button in chat"), "grannost" "@" "gmail" "." "com" );
|
|
aboutData.addCredit( i18n("Pieterjan Camerlynck"), i18n("Roaming Service support"), "pieterjan" "." "camerlynck" "@" "gmail" "." "com" );
|
|
aboutData.addCredit( i18n("Anastasios Bourazanis"), i18n("Emoticon preview in settings page,clickable contact properties dialog text"), "a.brzns" "@" "gmail" "." "com");
|
|
aboutData.addCredit( i18n("Marco Mentasti"), i18n("Internationalization fixes, drag'n'drop of images into display pictures"), "marcomentasti" "@" "gmail" "." "com" );
|
|
aboutData.addCredit( i18n("Francesco Nwokeka"), i18n("Now Listening toggle button above the contact list."), "" );
|
|
aboutData.addCredit( i18n("Timo Tambet"), i18n("Contact Changed and Group Changed notifications, contact added user dialog tabbing"), "ttambet" "@" "gmail" "." "com" );
|
|
|
|
// Other apps
|
|
aboutData.addCredit( i18n("KMerlin (kmerlin.olsd.de)"), i18n("Inspiration and assorted code"));
|
|
aboutData.addCredit( i18n("Kopete (kopete.kde.org)"), i18n("Old popup balloons code, initial p2p code, MSN challenge handler"));
|
|
aboutData.addCredit( i18n("KScreensaver"), i18n("Idle timer code"));
|
|
aboutData.addCredit( i18n("BasKet"), i18n("Close-to-tray icon screenshot code"));
|
|
aboutData.addCredit( i18n("Amarok"), i18n("Custom crash handler implementation, System tray icon overlay implementation"));
|
|
aboutData.addCredit( i18n("Quassel"), i18n("KNotify not giving focus bug fix and KWin focus stealing prevention workaround"));
|
|
|
|
// Nice community detail (very subtle at the bottom..)
|
|
aboutData.addCredit( i18n("Your name here?"), i18n("You are welcome to send bugfixes and patches to the KMess help forum!\nIf you feel your name is missing here, please contact us too!"), "you@kmess.org");
|
|
|
|
// Add the translation names from the .po file:
|
|
aboutData.setTranslator( i18nc("NAME OF TRANSLATORS", "Your names"),
|
|
i18nc("EMAIL OF TRANSLATORS", "Your email addresses") );
|
|
|
|
KAboutData::setApplicationData( aboutData );
|
|
|
|
// Configure command line options
|
|
// Those are handled in KMessApplication.
|
|
QCommandLineParser parser;
|
|
aboutData.setupCommandLine( &parser );
|
|
parser.addOption( QCommandLineOption( QStringLiteral( "hidden" ),
|
|
i18n("Do not show the contact list window initially") ) );
|
|
parser.addOption( QCommandLineOption( QStringLiteral( "autologin" ),
|
|
i18n("Autologin with the given username"),
|
|
QStringLiteral( "username" ) ) );
|
|
parser.addOption( QCommandLineOption( QStringLiteral( "server" ),
|
|
i18n("Connect to the specified server instead of the default Escargot server.\n"
|
|
"Use \"localhost\" or \"127.0.0.1\" to connect to a local test server."),
|
|
QStringLiteral( "address" ) ) );
|
|
|
|
// For the developer build,
|
|
// make sure we can run tests fast.
|
|
#ifdef KMESSTEST
|
|
parser.addOption( QCommandLineOption( QStringLiteral( "runtest" ),
|
|
i18n("Run a debug test (developer build only)"),
|
|
QStringLiteral( "test" ) ) );
|
|
#endif
|
|
|
|
|
|
// Initialize the crash handler first.
|
|
if( argc > 0 )
|
|
{
|
|
CrashHandler::setAppName( QLatin1String( argv[0] ) );
|
|
}
|
|
|
|
parser.process( kmessApp );
|
|
aboutData.processCommandLine( &parser );
|
|
|
|
kmessApp.initialize( parser );
|
|
|
|
return kmessApp.exec();
|
|
}
|