File indexing completed on 2024-04-21 03:41:54

0001 // SPDX-FileCopyrightText: 2001-2009 Anne-Marie Mahfouf <annma@kde.org>
0002 // SPDX-FileCopyCopyright: 2014 Rahul Chowdhury <rahul.chowdhury@kdemail.net>
0003 // SPDX-License-Identifier: GPL-2.0-or-later
0004 
0005 #include "khangman.h"
0006 #include "khangman_version.h"
0007 
0008 #include <KAboutData>
0009 
0010 #include <KLocalizedString>
0011 #include <KLocalizedContext>
0012 #include <KCrash>
0013 
0014 #include <QApplication>
0015 #include <QFontDatabase>
0016 #include <QFontInfo>
0017 #include <QStandardPaths>
0018 #include <QQmlEngine>
0019 #include <QCommandLineParser>
0020 #include <QQmlContext>
0021 #include <QIcon>
0022 #include <QQmlApplicationEngine>
0023 
0024 int main(int argc, char **argv)
0025 {
0026     QApplication app(argc, argv);
0027 
0028     KLocalizedString::setApplicationDomain(QByteArrayLiteral("khangman"));
0029     QApplication::setApplicationName(QStringLiteral("khangman"));
0030     QApplication::setApplicationVersion(QStringLiteral(KHANGMAN_VERSION_STRING));
0031     QApplication::setOrganizationDomain(QStringLiteral("kde.org"));
0032     QApplication::setWindowIcon(QIcon::fromTheme(QStringLiteral("khangman")));
0033 
0034     app.connect(&app, &QGuiApplication::lastWindowClosed, &app, &QCoreApplication::quit);
0035 
0036     KAboutData aboutData(QStringLiteral("khangman"),
0037                          i18n("KHangMan"),
0038                          QStringLiteral(KHANGMAN_VERSION_STRING),
0039                          i18n("Classical hangman game by KDE"),
0040                          KAboutLicense::GPL,
0041                          i18n("(c) 2001-2011, Anne-Marie Mahfouf"));
0042     aboutData.addAuthor(i18n("Primoz Anzur"), i18n("Previous maintainer"),
0043             QStringLiteral("zerokode@gmx.net"));
0044 
0045     // Write the names with accents and all and this file save with
0046     // utf8 encoding.
0047     aboutData.addAuthor(i18n("Anne-Marie Mahfouf"), i18n("Original Author"),
0048                         QStringLiteral("annma@kde.org"), QStringLiteral("https://annma.blogspot.com"), QStringLiteral("annma"));
0049     aboutData.addAuthor(i18n("Rahul Chowdhury"), i18n("Developer"),
0050                         QStringLiteral("rahul.chowdhury@kdemail.net"), QStringLiteral("https://rahulc93.wordpress.com/"), QStringLiteral("rahulch"));
0051     aboutData.addCredit(i18n("Stefan Böhmann"),
0052                         i18n("Coding help"), QStringLiteral("kde@hilefoks.org"));
0053     aboutData.addCredit(i18n("Stefan Asserhäll"),
0054                         i18n("Swedish data files, coding help, transparent pictures and i18n fixes"),
0055                                 QStringLiteral("stefan.asserhall@telia.com"));
0056     aboutData.addCredit(i18n("eXParTaKus"),
0057                         i18n("Spanish data files"), QStringLiteral("expartakus@expartakus.com"));
0058     aboutData.addCredit(i18n("Erik Kjær Pedersenn"),
0059                         i18n("Danish data files"), QStringLiteral("erik@mpim-bonn.mpg.de") );
0060     aboutData.addCredit(i18n("Niko Lewman"),
0061                         i18n("Finnish data files"), QStringLiteral("niko.lewman@edu.hel.fi") );
0062     aboutData.addCredit(i18n("João Sebastião de Oliveira Bueno"),
0063                         i18n("Brazilian Portuguese data files"), QStringLiteral("gwidion@mpc.com.br") );
0064     aboutData.addCredit(i18n("Antoni Bella"),
0065                         i18n("Catalan data files"), QStringLiteral("bella5@teleline.es"));
0066     aboutData.addCredit(i18n("Giovanni Venturi"),
0067                         i18n("Italian data files"), QStringLiteral("jumpyj@tiscali.it"));
0068     aboutData.addCredit(i18n("Rinse"),
0069                         i18n("Dutch data files"), QStringLiteral("rinse@kde.nl"));
0070     aboutData.addCredit(i18n("Lukáš Tinkl"),
0071                         i18n("Czech data files"), QStringLiteral("lukas@kde.org"));
0072     aboutData.addCredit(i18n("Kristóf Kiszel"),
0073                         i18n("Hungarian data files"), QStringLiteral("ulysses@kubuntu.org"));
0074     aboutData.addCredit(i18n("Torger Åge Sinnes"),
0075                         i18n("Norwegian (Bokmål) data files"), QStringLiteral("org-a-s@online.no"));
0076     aboutData.addCredit(i18n("Roger Kovacs"),
0077                         i18n("Tajik data files"), QStringLiteral("rkovacs@khujand.org"));
0078     aboutData.addCredit(i18n("Chusslove Illich"),
0079                         i18n("Serbian (Cyrillic and Latin) data files"), QStringLiteral("chaslav@sezampro.yu"));
0080     aboutData.addCredit(i18n("Jure Repinc"),
0081                         i18n("Slovenian data files"), QStringLiteral("jlp@holodeck1.com"));
0082     aboutData.addCredit(i18n("Pedro Morais"),
0083                         i18n("Portuguese data files"), QStringLiteral("Morais@kde.org"));
0084     aboutData.addCredit(i18n("Gaute Hvoslef Kvalnes"),
0085                         i18n("Norwegian (Nynorsk) data files"), QStringLiteral("gaute@verdsveven.com"));
0086     aboutData.addCredit(i18n("Mehmet Özel"),
0087                         i18n("Turkish data files"), QStringLiteral("mehmet_ozel2003@hotmail.com"));
0088     aboutData.addCredit(i18n("Черепанов Андрей"),
0089                         i18n("Russian data files"), QStringLiteral("sibskull@mail.ru"));
0090     aboutData.addCredit(i18n("Radostin Radnev"),
0091                         i18n("Bulgarian data files"), QStringLiteral("radnev@yahoo.com"));
0092     aboutData.addCredit(i18n("Kevin Patrick Scannell"),
0093                         i18n("Irish (Gaelic) data files"), QStringLiteral("scannell@slu.edu"));
0094     aboutData.addCredit(i18n("Matt Howe"),
0095                         i18n("Softer Hangman Pictures"), QStringLiteral("mdhowe@bigfoot.com"));
0096     aboutData.addCredit(i18n("Benjamin Meyer"),
0097                         i18n("Coding help"), QStringLiteral("ben@meyerhome.net"));
0098     aboutData.addCredit(i18n("Robert Gogolok"),
0099                         i18n("Coding help"), QStringLiteral("robertgogolok@gmx.de"));
0100     aboutData.addCredit(i18n("Lubos Lunàk"),
0101                         i18n("Coding help"), QStringLiteral("l.lunak@kde.org"));
0102     aboutData.addCredit(i18n("Albert Astals Cid"),
0103                         i18n("Coding help, fixed a lot of things"), QStringLiteral("aacid@kde.org"));
0104     aboutData.addCredit(i18n("Peter Hedlund"),
0105                         i18n("Code for generating icons for the characters toolbar"), QStringLiteral("peter.hedlund@kdemail.net"));
0106     aboutData.addCredit(i18n("Inge Wallin"),
0107                         i18n("Code cleaning"), QStringLiteral("inge@lysator.liu.se"));
0108     aboutData.setTranslator(i18nc("NAME OF TRANSLATORS", "Your names"), i18nc("EMAIL OF TRANSLATORS", "Your emails"));
0109 
0110     KAboutData::setApplicationData(aboutData);
0111 
0112     QCommandLineParser parser;
0113     aboutData.setupCommandLine(&parser);
0114     parser.process(app);
0115     aboutData.processCommandLine(&parser);
0116 
0117     KCrash::initialize();
0118 
0119     QFont f(QStringLiteral("Domestic Manners"), 12, QFont::Normal, true);
0120     if (!QFontInfo(f).exactMatch())
0121     {
0122         QFontDatabase::addApplicationFont(QStandardPaths::locate(QStandardPaths::AppLocalDataLocation, QStringLiteral("fonts/Domestic_Manners.ttf")));
0123     }
0124 
0125     QFont fd(QStringLiteral("Dustismo Roman"), 12, QFont::Normal, true);
0126     if (!QFontInfo(fd).exactMatch())
0127     {
0128         QFontDatabase::addApplicationFont(QStandardPaths::locate(QStandardPaths::AppLocalDataLocation, QStringLiteral("fonts/Dustismo_Roman.ttf")));
0129     }
0130 
0131     QQmlApplicationEngine engine;
0132     engine.rootContext()->setContextObject(new KLocalizedContext(&engine));
0133 
0134     engine.loadFromModule(QStringLiteral("org.kde.khangman"), QStringLiteral("Main"));
0135     if (engine.rootObjects().isEmpty()) {
0136         return -1;
0137     }
0138 
0139     QObject::connect(&engine, &QQmlEngine::quit, &app, &QCoreApplication::quit);
0140     return app.exec();
0141 }
0142 
0143 // kate: space-indent on; tab-width 4; indent-width 4; mixed-indent off; replace-tabs on;
0144 // vim: set et sw=4 ts=4 cino=l1,cs,U1:
0145