amuse/Editor/main.cpp

99 lines
3.2 KiB
C++
Raw Normal View History

#include <cstdint>
#include <QApplication>
#include <QStyleFactory>
2018-07-24 23:01:01 -07:00
#include <QTranslator>
#include "MainWindow.hpp"
2018-08-18 17:28:52 -07:00
#include "SongGroupEditor.hpp"
2018-07-24 23:01:01 -07:00
#include <QResource>
2018-07-28 20:37:06 -07:00
#include <QCommandLineParser>
2018-08-07 00:09:23 -07:00
#include <logvisor/logvisor.hpp>
using namespace std::literals;
#ifdef __APPLE__
void MacOSSetDarkAppearance();
#endif
extern "C" const uint8_t MAINICON_QT[];
2018-12-07 21:20:09 -08:00
static QIcon MakeAppIcon() {
QIcon ret;
const uint8_t* ptr = MAINICON_QT;
for (int i = 0; i < 6; ++i) {
uint32_t size = *reinterpret_cast<const uint32_t*>(ptr);
ptr += 4;
QPixmap pm;
pm.loadFromData(ptr, size);
ret.addPixmap(pm);
ptr += size;
}
return ret;
}
2018-03-14 17:25:29 -07:00
MainWindow* g_MainWindow = nullptr;
2018-12-07 21:20:09 -08:00
int main(int argc, char* argv[]) {
QApplication::setAttribute(Qt::AA_Use96Dpi);
2021-01-23 16:27:34 -08:00
#if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0) && QT_VERSION < QT_VERSION_CHECK(6, 0, 0))
2018-12-07 21:20:09 -08:00
QApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);
#endif
QApplication::setStyle(new ColoredTabBarStyle(QStyleFactory::create(QStringLiteral("Fusion"))));
2018-12-07 21:20:09 -08:00
QApplication a(argc, argv);
QApplication::setWindowIcon(MakeAppIcon());
a.setOrganizationName(QStringLiteral("AxioDL"));
a.setApplicationName(QStringLiteral("Amuse"));
2018-12-07 21:20:09 -08:00
QPalette darkPalette;
darkPalette.setColor(QPalette::Window, QColor(53, 53, 53));
darkPalette.setColor(QPalette::WindowText, Qt::white);
darkPalette.setColor(QPalette::Base, QColor(42, 42, 42));
darkPalette.setColor(QPalette::Disabled, QPalette::Base, QColor(25, 25, 25, 53));
darkPalette.setColor(QPalette::AlternateBase, QColor(53, 53, 53));
darkPalette.setColor(QPalette::ToolTipBase, QColor(42, 42, 42));
darkPalette.setColor(QPalette::ToolTipText, Qt::white);
darkPalette.setColor(QPalette::Text, Qt::white);
darkPalette.setColor(QPalette::Disabled, QPalette::Text, QColor(255, 255, 255, 120));
darkPalette.setColor(QPalette::Disabled, QPalette::Light, QColor(0, 0, 0, 0));
darkPalette.setColor(QPalette::Button, QColor(53, 53, 53));
darkPalette.setColor(QPalette::Disabled, QPalette::Button, QColor(53, 53, 53, 53));
darkPalette.setColor(QPalette::ButtonText, Qt::white);
darkPalette.setColor(QPalette::Disabled, QPalette::ButtonText, QColor(255, 255, 255, 120));
darkPalette.setColor(QPalette::BrightText, Qt::red);
darkPalette.setColor(QPalette::Link, QColor(42, 130, 218));
darkPalette.setColor(QPalette::Highlight, QColor(42, 130, 218));
darkPalette.setColor(QPalette::Disabled, QPalette::Highlight, QColor(42, 130, 218, 53));
darkPalette.setColor(QPalette::HighlightedText, Qt::white);
darkPalette.setColor(QPalette::Disabled, QPalette::HighlightedText, QColor(255, 255, 255, 120));
a.setPalette(darkPalette);
#ifdef __APPLE__
2018-12-07 21:20:09 -08:00
MacOSSetDarkAppearance();
#endif
2018-12-07 21:20:09 -08:00
logvisor::RegisterConsoleLogger();
logvisor::RegisterStandardExceptions();
2018-08-07 00:09:23 -07:00
2018-12-07 21:20:09 -08:00
Q_INIT_RESOURCE(translation_res);
QTranslator translator;
if (translator.load(QLocale(), QStringLiteral("lang"), QStringLiteral("_"), QStringLiteral(":/translations"))) {
2018-12-07 21:20:09 -08:00
a.installTranslator(&translator);
}
2018-07-24 23:01:01 -07:00
2018-12-07 21:20:09 -08:00
MainWindow w;
g_MainWindow = &w;
w.show();
2018-07-28 20:37:06 -07:00
2018-12-07 21:20:09 -08:00
QCommandLineParser parser;
parser.process(a);
QStringList args = parser.positionalArguments();
if (!args.empty())
w.openProject(args.back());
2018-07-28 20:37:06 -07:00
2018-12-07 21:20:09 -08:00
return a.exec();
2018-03-14 17:25:29 -07:00
}