mirror-chatterino2/src/main.cpp

72 lines
1.8 KiB
C++
Raw Normal View History

2019-09-22 15:32:36 +02:00
#include <QApplication>
2019-10-07 18:57:33 +02:00
#include <QDebug>
#include <QMessageBox>
2019-09-22 15:32:36 +02:00
#include <QStringList>
#include <memory>
2018-08-02 14:23:27 +02:00
#include "BrowserExtension.hpp"
#include "RunGui.hpp"
2019-09-22 15:32:36 +02:00
#include "common/Args.hpp"
#include "common/Modes.hpp"
2019-10-07 18:57:33 +02:00
#include "common/Version.hpp"
2018-06-28 19:46:45 +02:00
#include "singletons/Paths.hpp"
2018-08-02 14:23:27 +02:00
#include "singletons/Settings.hpp"
2018-10-16 14:13:19 +02:00
#include "util/IncognitoBrowser.hpp"
2017-01-11 01:08:20 +01:00
2018-08-02 14:23:27 +02:00
using namespace chatterino;
2018-04-09 22:59:19 +02:00
2018-08-02 14:23:27 +02:00
int main(int argc, char **argv)
2018-04-09 22:59:19 +02:00
{
2018-06-13 13:27:10 +02:00
QApplication a(argc, argv);
2018-08-06 21:17:03 +02:00
// convert char** to QStringList
2018-08-02 14:23:27 +02:00
auto args = QStringList();
2018-08-06 21:17:03 +02:00
std::transform(argv + 1, argv + argc, std::back_inserter(args),
[&](auto s) { return s; });
2019-10-07 18:57:33 +02:00
initArgs(args);
2018-04-09 22:59:19 +02:00
2018-08-02 14:23:27 +02:00
// run in gui mode or browser extension host mode
2018-10-21 13:43:02 +02:00
if (shouldRunBrowserExtensionHost(args))
{
2018-08-02 14:23:27 +02:00
runBrowserExtensionHost();
2018-10-21 13:43:02 +02:00
}
2019-10-07 18:57:33 +02:00
else if (getArgs().printVersion)
{
qInfo().noquote() << Version::instance().fullVersion();
2019-10-07 18:57:33 +02:00
}
2018-10-21 13:43:02 +02:00
else
{
Paths *paths{};
2018-04-20 00:15:57 +02:00
try
{
paths = new Paths;
}
catch (std::runtime_error &error)
{
QMessageBox box;
if (Modes::instance().isPortable)
{
box.setText(
error.what() +
QStringLiteral(
"\n\nInfo: Portable mode requires the application to "
"be in a writeable location. If you don't want "
"portable mode reinstall the application. "
"https://chatterino.com."));
}
else
{
box.setText(error.what());
}
box.exec();
return 1;
}
Settings settings(paths->settingsDirectory);
runGui(a, *paths, settings);
2018-05-28 18:25:19 +02:00
}
2019-10-07 18:57:33 +02:00
return 0;
2018-05-28 18:25:19 +02:00
}