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