File: main.cpp

package info (click to toggle)
kfourinline 4:18.04.1-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 6,784 kB
  • sloc: cpp: 7,339; sh: 8; makefile: 5
file content (132 lines) | stat: -rw-r--r-- 4,575 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
/*
   This file is part of the KDE games kwin4 program
   Copyright (c) 1995-2007 Martin Heni <kde@heni-online.de>

   This library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Library General Public
   License as published by the Free Software Foundation; either
   version 2 of the License, or (at your option) any later version.

   This library 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
   Library General Public License for more details.

   You should have received a copy of the GNU Library General Public License
   along with this library; see the file COPYING.LIB.  If not, write to
   the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
   Boston, MA 02110-1301, USA.
*/

/** \mainpage KWin4 API Documentation
  *
  * \section intro_sec Introduction
  *
  * This is the API documentation for the KDE game 'kwin4'.
  *
  * \section design_sec Design
  *
  * The design diagram shows the dependencies for the key classes of
  * the KWin4 program.
  * The coloring of the classes shows roughly their function in the 
  * groups (program, document and engine, display, QGraphics and KGame library).
  *
  * \image html kwin4classes.png "Class diagram for KWin4"
  *
  * 
  */

#include <KAboutData>
#include <KCrash>
#include <Kdelibs4ConfigMigrator>
#include <KLocalizedString>

#include <QApplication>
#include <QCommandLineParser>
#include <QCommandLineOption>

#include "kwin4.h"
#include "kfourinline_debug.h"

#define KWIN4_VERSION "v1.41"


// Debug level for the program
int global_debug = 0;
// Skip intro
bool global_skip_intro = false;
// Demo (autoplay mode)
bool global_demo_mode  = false;


// Main function
int main(int argc, char *argv[])
{
  global_debug = 0;
    QApplication app(argc, argv);

    Kdelibs4ConfigMigrator migrate(QStringLiteral("kfourinline"));
    migrate.setConfigFiles(QStringList() << QStringLiteral("kfourinlinerc"));
    migrate.setUiFiles(QStringList() << QStringLiteral("kfourinlineui.rc"));
    migrate.migrate();

  KLocalizedString::setApplicationDomain("kfourinline");
  KAboutData aboutData( QStringLiteral("kfourinline"), i18n("KFourInLine"),
                        KWIN4_VERSION,
                        i18n("KFourInLine: Two player board game"),
                        KAboutLicense::GPL,
                        i18n("(c) 1995-2007, Martin Heni"));
  aboutData.addAuthor(i18n("Martin Heni"),i18n("Game design and code"), QStringLiteral("kde@heni-online.de"));
  aboutData.addAuthor(i18n("Johann Ollivier Lapeyre"),i18n("Graphics"), QStringLiteral("johann.ollivierlapeyre@gmail.com"));
  aboutData.addAuthor(i18n("Eugene Trounev"),i18n("Graphics"), QStringLiteral("eugene.trounev@gmail.com"));
  aboutData.addAuthor(i18n("Benjamin Meyer"), i18n("Code Improvements"));
  aboutData.setHomepage(QStringLiteral("http://games.kde.org/kfourinline"));
    QCommandLineParser parser;
    KAboutData::setApplicationData(aboutData);
    KCrash::initialize();
  parser.addOption(QCommandLineOption(QStringList() << QStringLiteral("d") << QStringLiteral("debug"), i18n("Enter debug level"), QStringLiteral("level")));
  parser.addOption(QCommandLineOption(QStringList() << QStringLiteral("skipintro"), i18n("Skip intro animation")));
  parser.addOption(QCommandLineOption(QStringList() << QStringLiteral("demo"), i18n("Run game in demo (autoplay) mode")));

    aboutData.setupCommandLine(&parser);
    parser.process(app);
    aboutData.processCommandLine(&parser);

  app.setWindowIcon(QIcon::fromTheme(QStringLiteral("kfourinline")));
  /* command line handling */

  // Check for debug command line option
  if (parser.isSet(QStringLiteral("debug")))
  {
    global_debug=QString(parser.value(QStringLiteral("debug"))).toInt();
    qCDebug(KFOURINLINE_LOG) << "Debug level set to" << global_debug;
  }
  // Check for debug command line option
  if (parser.isSet(QStringLiteral("skipintro")))
  {
    global_skip_intro = true;
    qCDebug(KFOURINLINE_LOG) << "Skip intro cmd line chosen" << global_skip_intro;
  }
  // Check for debug command line option
  if (parser.isSet(QStringLiteral("demo")))
  {
    global_demo_mode = true;
    qCDebug(KFOURINLINE_LOG) << "Running in demo mode" << global_demo_mode;
  }
 
   
  // Start application
  // Start session
  if (app.isSessionRestored())
  {
    RESTORE(KWin4App);
  }
  else
  {
    KWin4App *kwin4 = new KWin4App();
    kwin4->show();
  }

  return app.exec();
}