File indexing completed on 2024-04-21 04:02:48

0001 /***************************************************************************
0002                           main.cpp  -  main file for KMuddy
0003     This file is a part of KMuddy distribution.
0004                              -------------------
0005     begin                : Fri Jun 14 12:37:51 CEST 2002
0006     copyright            : (C) 2002 by Tomas Mecir
0007     email                : kmuddy@kmuddy.com
0008  ***************************************************************************/
0009 
0010 /***************************************************************************
0011  *                                                                         *
0012  *   This program is free software; you can redistribute it and/or modify  *
0013  *   it under the terms of the GNU General Public License as published by  *
0014  *   the Free Software Foundation; either version 2 of the License, or     *
0015  *   (at your option) any later version.                                   *
0016  *                                                                         *
0017  ***************************************************************************/
0018 
0019 #include <KAboutData>
0020 #include <KLocalizedString>
0021 #include <QApplication>
0022 #include <Kdelibs4ConfigMigrator>
0023 
0024 #include <signal.h>
0025 
0026 #include "kmuddy-version.h"
0027 #include "kmuddy.h"
0028 #include "cglobalsettings.h"
0029 
0030 #define DESCRIPTION i18n("KMuddy is a MUD (Multi-User Dungeon) client by KDE with a variety of features.")
0031 
0032 int main(int argc, char *argv[])
0033 {
0034   QApplication a (argc, argv);
0035   KLocalizedString::setApplicationDomain("kmuddy");
0036   QApplication::setApplicationDisplayName(i18n("KMuddy"));
0037 
0038   KAboutData aboutData ("kmuddy", i18n("KMuddy"),
0039     VERSION, DESCRIPTION, KAboutLicense::GPL,
0040     i18n("(c) 2002-2018, Tomas Mecir"), QString(), "http://www.kmuddy.com/", "mecirt@gmail.com");
0041   aboutData.addAuthor(i18n ("Tomas Mecir"),
0042       i18n("Main developer and maintainer"), "mecirt@gmail.com");
0043   aboutData.addCredit(i18n("Alex Bache"),
0044       i18n("Many improvements in external scripting, internal script parser, output view and aliases/triggers, bugfixes"), "alex.bache@ntlworld.com");
0045   aboutData.addCredit(i18n("Alsherok staff"),
0046       i18n("for releasing AFKMud codebase, used to test MCCP/MSP"));
0047   aboutData.addCredit(i18n("Andrea Cascio"),
0048       i18n("SuSE RPMs, speed-walking improvements"), "hacksaw@triangolo.it");
0049   aboutData.addCredit(i18n("Orion Elder"),
0050       i18n("KMuddy forum, many ideas"), "orion@mudplanet.org");
0051   aboutData.addCredit(i18n("Scott Monachello"),
0052       i18n("Improvements in scripting, bugfixes"), "smonachello@yahoo.com");
0053   aboutData.addCredit(i18n("Tyler Montbriand"),
0054       i18n("Help with SDL support"), "tsm@accesscomm.ca");
0055   aboutData.addCredit(i18n("Marco Mastroddi"),
0056       i18n("Tick timers"), "marco.mastroddi@libero.it");
0057   aboutData.addCredit (i18n("Henrikki Almusa"),
0058       i18n("Commands to enable/disable groups"), "hena@iki.fi");
0059   aboutData.addCredit(i18n("Drossos Stamboulakis"),
0060       i18n("Selection improvements, full screen mode, cross-tab commands"), "adsluard@tpg.com.au");
0061   aboutData.addCredit (i18n("Antonio J. Soler Sanchez"),
0062       i18n("Spanish translation"), "redtony@telefonica.net");
0063   aboutData.addCredit(i18n("lontau"),
0064       i18n("Code to access KMuddy variables in Ruby"));
0065   aboutData.addCredit (i18n("Magnus Lundborg"), i18n("Tab-expansion improvements"), "lundborg.magnus@gmail.com");
0066   aboutData.addCredit(i18n("Vladimir Lazarenko"),
0067       i18n("Many improvements. Hosting KMuddy CVS."), "vlad@lazarenko.net");
0068   aboutData.addCredit(i18n("Stuart Henshall"),
0069       i18n("Speed improvements."), "shenshall@blueyonder.co.uk");
0070   aboutData.addCredit(i18n("Vadim Peretokin"),
0071       i18n("Many improvements, website"), "vadimuses@gmail.com");
0072   aboutData.addCredit(i18n("Heiko Koehn"),
0073       i18n("Scripting improvements"), "koehnheiko@googlemail.com");
0074   aboutData.addCredit(i18n("Robert Marmorstein"),
0075       i18n("Systray icon support"), "robertandbeth@gmail.com");
0076   KAboutData::setApplicationData (aboutData);
0077   QApplication::setWindowIcon(QIcon::fromTheme(QStringLiteral("kmuddy")));
0078 
0079   //alarm signal is sometimes causing KMuddy to terminate incorrectly
0080   //when switching tabs using Alt+number - ignoring the signal, hoping
0081   //for the best...
0082   signal (SIGALRM, SIG_IGN);
0083 
0084   // migrate settings from kde4
0085   Kdelibs4ConfigMigrator migrator(QStringLiteral("kmuddy")); // the same name defined in the aboutData
0086   // all the config files of your application
0087   migrator.setConfigFiles(QStringList() << QStringLiteral("kmuddyrc"));
0088   // list of KXMLGUI files used by your application
0089   migrator.setUiFiles(QStringList() << QStringLiteral("kmuddymapperpart.rc"));
0090   migrator.migrate();
0091 
0092   KMuddy *kmuddy = nullptr;
0093 
0094 /*
0095   if (a.isSessionRestored ())  //session management
0096     RESTORE(KMuddy); //DOES NOT WORK - we need kmuddy object in the program
0097         //and I couldn't find a way to get to it after RESTORE (mainWidget
0098         //didn't work (?))
0099   else
0100   {
0101 */
0102     //normal startup
0103     kmuddy = KMuddy::self();
0104 /*
0105   }
0106 */
0107   //event handler for macro keys
0108   a.installEventFilter (kmuddy);
0109   
0110   kmuddy->show();
0111 
0112   int retCode = a.exec ();
0113 
0114   //Looks like KApplication deletes the widget using deleteLater, resulting
0115   //in double deleting and problems. We therefore keep the object alive,
0116   //hoping for the best
0117 
0118   //delete kmuddy;
0119   
0120   return retCode;
0121 }
0122