diff options
Diffstat (limited to 'src/main.cpp')
-rw-r--r-- | src/main.cpp | 29 |
1 files changed, 20 insertions, 9 deletions
diff --git a/src/main.cpp b/src/main.cpp index 2a85617..6c7f492 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -20,23 +20,34 @@ bool showGui() { return _showGui; } bool backgroundMode() { return _backgroundMode; } } -static void parseCommandLine(const QApplication &a); +static void parseCommandLine(const QCoreApplication &a); int main(int argc, char *argv[]) { - QApplication a(argc, argv); + QCoreApplication *a; + bool gui = true; + for (int i = 0; i < argc; ++i) { + if (strcmp(argv[i], "-w") == 0 || strcmp(argv[i], "--wakeup") == 0) { + gui = false; + } + } + if (gui) { + a = new QApplication(argc, argv); + } else { + a = new QCoreApplication(argc, argv); + } QCoreApplication::setApplicationName("BeamerGUI XP - Home Edition"); QCoreApplication::setApplicationVersion("2.0"); // System strings - QTranslator *qtTranslator = new QTranslator(&a); + QTranslator *qtTranslator = new QTranslator(a); qtTranslator->load(QLocale::system(), "qt", "_", QLibraryInfo::location(QLibraryInfo::TranslationsPath)); - a.installTranslator(qtTranslator); + a->installTranslator(qtTranslator); // App specific - QTranslator *translator = new QTranslator(&a); + QTranslator *translator = new QTranslator(a); translator->load(QLocale::system(), ":"); - a.installTranslator(translator); + a->installTranslator(translator); - parseCommandLine(a); + parseCommandLine(*a); if (_wakeup) { return Bus::inst()->registerService() ? 0 : 1; @@ -60,10 +71,10 @@ int main(int argc, char *argv[]) } if (w == nullptr) return 0; - return a.exec(); + return a->exec(); } -static void parseCommandLine(const QApplication &a) +static void parseCommandLine(const QCoreApplication &a) { // Command line QCommandLineParser parser; |