aboutsummaryrefslogtreecommitdiff
path: root/mthemedaemon/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'mthemedaemon/main.cpp')
-rw-r--r--mthemedaemon/main.cpp41
1 files changed, 41 insertions, 0 deletions
diff --git a/mthemedaemon/main.cpp b/mthemedaemon/main.cpp
index afb35c92..d0499e4c 100644
--- a/mthemedaemon/main.cpp
+++ b/mthemedaemon/main.cpp
@@ -26,6 +26,11 @@
#include "keypresswaiter.h"
#endif
+namespace
+{
+ QtMsgType outputLevel = QtDebugMsg;
+}
+
static int setup_unix_signal_handlers()
{
struct sigaction sighup, sigterm, sigint;
@@ -55,6 +60,39 @@ static int setup_unix_signal_handlers()
return 0;
}
+static QtMsgType getOutputLevelFromArgs(QStringList arguments)
+{
+ QString argLevel;
+ int index = arguments.indexOf("-output-level") + 1;
+ if (index > 0 && index < arguments.length()) {
+ argLevel = arguments[index];
+ }
+
+ if (argLevel == "debug")
+ return QtDebugMsg;
+ if (argLevel == "warning")
+ return QtWarningMsg;
+ if (argLevel == "critical")
+ return QtCriticalMsg;
+
+#ifdef __arm__
+ return QtCriticalMsg;
+#else
+ return QtWarningMsg;
+#endif
+}
+
+static void mMessageHandler(QtMsgType type, const char *msg)
+{
+ if (type < outputLevel)
+ return;
+
+ fprintf(stderr, "%s\n", msg);
+
+ if (type == QtFatalMsg)
+ abort();
+}
+
int main(int argc, char **argv)
{
setup_unix_signal_handlers();
@@ -75,6 +113,9 @@ int main(int argc, char **argv)
QApplication app(argc, argv);
+ outputLevel = getOutputLevelFromArgs(app.arguments());
+ qInstallMsgHandler(mMessageHandler);
+
// Apply custom server address, if the "-address" has been passed as argument
QString serverAddress;
int index = app.arguments().indexOf("-address");