diff --git a/qtlogging.ini b/files/QLoggingCategory/qtlogging.ini similarity index 100% rename from qtlogging.ini rename to files/QLoggingCategory/qtlogging.ini diff --git a/qgroundcontrol.qrc b/qgroundcontrol.qrc index dd04adb544144e158b5eb6fa25f6f10616104d01..d1ba57b8d68b8c65c0afbba88bb195482779dac4 100644 --- a/qgroundcontrol.qrc +++ b/qgroundcontrol.qrc @@ -231,4 +231,7 @@ src/qgcunittest/MockLink.param + + files/QLoggingCategory/qtlogging.ini + diff --git a/src/QGCApplication.cc b/src/QGCApplication.cc index 469bcee53e95885b8a3fccfdba1a23897acedc8d..57bb92bab156b42bba3149a8189d22ce73e944e6 100644 --- a/src/QGCApplication.cc +++ b/src/QGCApplication.cc @@ -92,6 +92,36 @@ QGCApplication::QGCApplication(int &argc, char* argv[], bool unitTesting) : Q_ASSERT(_app == NULL); _app = this; + +#ifdef QT_DEBUG + // First thing we want to do is set up the qtlogging.ini file. If it doesn't already exist we copy + // it to the correct location. This way default debug builds will have logging turned off. + + bool loggingDirectoryOk = false; + QDir iniFileLocation(QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation)); + if (!iniFileLocation.cd("QtProjects")) { + if (!iniFileLocation.mkdir("QtProjects")) { + qDebug() << "Unable to create qtlogging.ini directory" << iniFileLocation.filePath("QtProjects"); + } else { + if (!iniFileLocation.cd("QtProjects")) { + qDebug() << "Unable to access qtlogging.ini directory" << iniFileLocation.filePath("QtProjects");; + } + loggingDirectoryOk = true; + } + } else { + loggingDirectoryOk = true; + } + + if (loggingDirectoryOk) { + qDebug () << iniFileLocation; + if (!iniFileLocation.exists("qtlogging.ini")) { + if (!QFile::copy(":QLoggingCategory/qtlogging.ini", iniFileLocation.filePath("qtlogging.ini"))) { + qDebug() << "Unable to copy qtlogging.ini to" << iniFileLocation; + } + } + } +#endif + // Set application information if (_runningUnitTests) { // We don't want unit tests to use the same QSettings space as the normal app. So we tweak the app