diff options
Diffstat (limited to 'subsurface-mobile-main.cpp')
-rw-r--r-- | subsurface-mobile-main.cpp | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/subsurface-mobile-main.cpp b/subsurface-mobile-main.cpp index 878dc59ea..131e1d493 100644 --- a/subsurface-mobile-main.cpp +++ b/subsurface-mobile-main.cpp @@ -19,14 +19,50 @@ #include <QLocale> #include <git2.h> +// Implementation of STP logging +#include "core/ssrf.h" +#ifdef ENABLE_STARTUP_TIMING +#include <QElapsedTimer> +#include <QMutex> +#include <QMutexLocker> +void log_stp(const char *ident, QString *buf) +{ + static bool firstCall = true; + static QElapsedTimer stpDuration; + static QString stpText; + static QMutex logMutex; + + QMutexLocker l(&logMutex); + + if (firstCall) { + firstCall = false; + stpDuration.start(); + } + if (ident) + stpText += QString("STP ") \ + .append(QString::number(stpDuration.elapsed())) \ + .append(" ms, ") \ + .append(ident) \ + .append("\n"); + if (buf) { + *buf += "---------- startup timer ----------\n"; + *buf += stpText; + } +} +#endif // ENABLE_STARTUP_TIMING + + int main(int argc, char **argv) { + LOG_STP("main starting"); + int i; QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling); QLoggingCategory::setFilterRules(QStringLiteral("qt.bluetooth* = true")); // Start application new QApplication(argc, argv); + LOG_STP("main Qt started"); // and get comand line arguments QStringList arguments = QCoreApplication::arguments(); @@ -41,6 +77,7 @@ int main(int argc, char **argv) } } git_libgit2_init(); + LOG_STP("main git loaded"); setup_system_prefs(); if (QLocale().measurementSystem() == QLocale::MetricSystem) default_prefs.units = SI_units; @@ -51,8 +88,11 @@ int main(int argc, char **argv) fill_computer_list(); parse_xml_init(); + LOG_STP("main xml parsed"); taglist_init_global(); + LOG_STP("main taglist done"); init_ui(); + LOG_STP("main init_ui done"); if (prefs.default_file_behavior == LOCAL_DEFAULT_FILE) set_filename(prefs.default_filename); else @@ -66,6 +106,7 @@ int main(int argc, char **argv) init_proxy(); + LOG_STP("main call run_ui (continue in qmlmanager)"); if (!quit) run_ui(); exit_ui(); |