/
main.cpp
58 lines (53 loc) · 1.74 KB
/
main.cpp
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
#include "mainwindow.h"
#include <QApplication>
#include <iostream>
#include "util.h"
using std::cout;
using std::endl;
void parseCommandLine()
{
QCommandLineParser parser;
parser.setApplicationDescription("An Ask Mona browser.");
const auto helpOption = parser.addHelpOption();
const auto versionOption = parser.addVersionOption();
QCommandLineOption dataDirectoryOption(QStringList() << "d" << "datadir", "All data are saved into <directory>. Default is application directory.", "directory");
parser.addOption(dataDirectoryOption);
QCommandLineOption langOption(QStringList() << "l" << "lang", "Set application language.", "language");
parser.addOption(langOption);
if (!parser.parse(QCoreApplication::arguments())) {
cout << qPrintable(parser.errorText()) << endl;
exit(1);
}
if (parser.isSet(versionOption)) {
cout << qPrintable(QCoreApplication::applicationName()) << " " << qPrintable(QCoreApplication::applicationVersion()) << endl;
exit(0);
}
if (parser.isSet(helpOption)) {
parser.showHelp();
exit(0);
}
if (parser.isSet(dataDirectoryOption)) {
setDataDir(parser.value(dataDirectoryOption));
}
auto translater = new QTranslator();
QLocale l = QLocale::system();
if (parser.isSet(langOption)) {
l = QLocale(parser.value(langOption));
}
if (translater->load(l, ":/translations/")) {
qApp->installTranslator(translater);
} else {
qWarning() << "Couldn't load language" << l.name();
}
}
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QCoreApplication::setApplicationName("AskMona-qt");
QCoreApplication::setApplicationVersion("0.1.2");
parseCommandLine();
MainWindow w;
w.show();
a.setStyleSheet(loadEmbeddedOrFile("app_style.css"));
return a.exec();
}