pineapple-pictures/app/main.cpp

63 lines
1.8 KiB
C++
Raw Normal View History

2019-09-28 01:18:08 +08:00
#include "mainwindow.h"
#include <QApplication>
#include <QCommandLineParser>
2020-01-05 14:30:33 +08:00
#include <QDir>
#include <QTranslator>
#include <QUrl>
2019-09-28 01:18:08 +08:00
2020-01-05 15:22:47 +08:00
// QM_FILE_INSTALL_DIR should be defined from the CMakeLists file.
#ifndef QM_FILE_INSTALL_DIR
#define QM_FILE_INSTALL_DIR ":/i18n/"
#endif // QM_FILE_INSTALL_DIR
2019-09-28 01:18:08 +08:00
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
2019-09-29 23:53:29 +08:00
QTranslator translator;
2020-01-05 14:30:33 +08:00
QString qmDir;
#ifdef _WIN32
qmDir = QDir(QCoreApplication::applicationDirPath()).absoluteFilePath("translations");
#else
2020-01-05 15:22:47 +08:00
qmDir = QT_STRINGIFY(QM_FILE_INSTALL_DIR);
2020-01-05 14:30:33 +08:00
#endif
translator.load(QString("PineapplePictures_%1").arg(QLocale::system().name()), qmDir);
a.installTranslator(&translator);
a.setApplicationName("Pineapple Pictures");
a.setApplicationDisplayName(QCoreApplication::translate("main", "Pineapple Pictures"));
// parse commandline arguments
QCommandLineParser parser;
parser.addPositionalArgument("File list", QCoreApplication::translate("main", "File list."));
parser.addHelpOption();
parser.process(a);
QStringList urlStrList = parser.positionalArguments();
QList<QUrl> urlList;
for (const QString & str : urlStrList) {
QUrl url = QUrl::fromLocalFile(str);
#ifdef Q_OS_WIN
// TODO: remove this workaround when M$ change the "wsl$" hostname.
if (Q_UNLIKELY(str.startsWith(R"(\\wsl$\)"))) {
url.clear();
url.setScheme(QStringLiteral("qtbug-86277"));
url.setPath(str);
}
#endif // Q_OS_WIN
if (url.isValid()) {
urlList.append(url);
}
}
2019-09-28 01:18:08 +08:00
MainWindow w;
w.show();
if (!urlList.isEmpty()) {
w.showUrls(urlList);
2019-10-01 11:44:35 +08:00
w.adjustWindowSizeBySceneRect();
}
2019-09-28 01:18:08 +08:00
return a.exec();
}