mirror of
https://github.com/hasherezade/pe-bear
synced 2026-06-08 14:34:04 +00:00
72 lines
2.0 KiB
C++
72 lines
2.0 KiB
C++
#include <iostream>
|
|
#include <QtGlobal>
|
|
#include <QtCore>
|
|
#include <QApplication>
|
|
#include <QTranslator>
|
|
|
|
#include "QtCompat.h"
|
|
#include "gui/windows/MainWindow.h"
|
|
#include "base/MainSettings.h"
|
|
|
|
QStringList collectSuppliedFiles()
|
|
{
|
|
QStringList args = QCoreApplication::arguments();
|
|
QStringList fNames;
|
|
for (int i = 1; i < args.length(); i++) {
|
|
fNames << args[i];
|
|
}
|
|
return fNames;
|
|
}
|
|
|
|
int main(int argc, char *argv[])
|
|
{
|
|
Q_INIT_RESOURCE(application);
|
|
|
|
#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0) && QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
|
|
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
|
|
#endif
|
|
|
|
QApplication app(argc, argv);
|
|
// workaround for a bug in Qt (not setting default font properly)
|
|
QApplication::setFont(QApplication::font("QMessageBox"));
|
|
|
|
// Load the settings
|
|
MainSettings mainSettings;
|
|
mainSettings.readPersistent();
|
|
|
|
// Load language file
|
|
QTranslator translator;
|
|
QString currLanguage = mainSettings.language;
|
|
if (currLanguage.length() == 0) {
|
|
currLanguage = QLocale::system().name();
|
|
}
|
|
QString trPath = QDir::separator() + MainSettings::languageDir + QDir::separator() + currLanguage + QDir::separator() + "PELanguage.qm";
|
|
if (translator.load(QCoreApplication::applicationDirPath() + trPath)
|
|
|| translator.load(mainSettings.userDataDir() + trPath))
|
|
{
|
|
app.installTranslator(&translator);
|
|
mainSettings.language = currLanguage;
|
|
} else {
|
|
if (!mainSettings.language.startsWith("en_US")) { // en_US is built-in, so it does not require translation file
|
|
mainSettings.language = ""; //if not US, and the language file could not be found, reset to default
|
|
}
|
|
}
|
|
|
|
app.setApplicationName(TITLE);
|
|
app.setWindowIcon(QIcon(":/main_ico.ico"));
|
|
app.setQuitOnLastWindowClosed(true);
|
|
|
|
MainWindow mainWin(mainSettings);
|
|
mainWin.setIconSize(QSize(48, 48));
|
|
mainWin.resize(950, 650);
|
|
|
|
QStringList fileNames = collectSuppliedFiles();
|
|
if (fileNames.length()) {
|
|
mainWin.openMultiplePEs(fileNames);
|
|
}
|
|
mainWin.show();
|
|
int ret = app.exec();
|
|
return ret;
|
|
}
|
|
|