1 /*
2 SPDX-FileCopyrightText: 2009-2021 Graeme Gott <graeme@gottcode.org>
3
4 SPDX-License-Identifier: GPL-3.0-or-later
5 */
6
7 #include "language_dialog.h"
8 #include "locale_dialog.h"
9 #include "scores_dialog.h"
10 #include "window.h"
11
12 #include <QApplication>
13 #include <QCommandLineParser>
14 #include <QDir>
15 #include <QSettings>
16
main(int argc,char ** argv)17 int main(int argc, char** argv)
18 {
19 #if (QT_VERSION < QT_VERSION_CHECK(6,0,0))
20 #if !defined(Q_OS_MAC)
21 if (!qEnvironmentVariableIsSet("QT_DEVICE_PIXEL_RATIO")
22 && !qEnvironmentVariableIsSet("QT_AUTO_SCREEN_SCALE_FACTOR")
23 && !qEnvironmentVariableIsSet("QT_SCALE_FACTOR")
24 && !qEnvironmentVariableIsSet("QT_SCREEN_SCALE_FACTORS")) {
25 QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
26 }
27 #endif
28 QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);
29 #endif
30 QApplication app(argc, argv);
31 app.setApplicationName("Tanglet");
32 app.setApplicationVersion(VERSIONSTR);
33 app.setApplicationDisplayName(Window::tr("Tanglet"));
34 app.setOrganizationDomain("gottcode.org");
35 app.setOrganizationName("GottCode");
36 #if !defined(Q_OS_WIN) && !defined(Q_OS_MAC)
37 app.setWindowIcon(QIcon::fromTheme("tanglet", QIcon(":/tanglet.png")));
38 app.setDesktopFileName("tanglet");
39 #endif
40
41 QString path = app.applicationDirPath();
42 QStringList paths;
43 paths.append(path + "/data/");
44 paths.append(path + "/../share/tanglet/data/");
45 paths.append(path + "/../Resources/data/");
46 QDir::setSearchPaths("tanglet", paths);
47
48 LocaleDialog::loadTranslator("tanglet_");
49
50 LanguageDialog::restoreDefaults();
51
52 ScoresDialog::migrate();
53
54 QCommandLineParser parser;
55 parser.setApplicationDescription(QCoreApplication::translate("main", "Word finding game"));
56 parser.addHelpOption();
57 parser.addVersionOption();
58 parser.addPositionalArgument("file", QCoreApplication::translate("main", "A game file to play."), "[file]");
59 parser.process(app);
60
61 QStringList files = parser.positionalArguments();
62 Window window(files.isEmpty() ? QString() : files.front());
63 window.show();
64
65 return app.exec();
66 }
67