From 550738776c0b39a3fed5caad4a6b1ea9efc1d43d Mon Sep 17 00:00:00 2001 From: howard-stearns Date: Wed, 23 Mar 2016 15:56:29 -0700 Subject: [PATCH] Pass whether or not previous session crashed to the UserActivityLogger. --- interface/src/Application.cpp | 8 ++++---- interface/src/Application.h | 2 +- interface/src/CrashHandler.cpp | 4 +++- interface/src/CrashHandler.h | 2 +- libraries/networking/src/UserActivityLogger.cpp | 4 +++- libraries/networking/src/UserActivityLogger.h | 2 +- 6 files changed, 13 insertions(+), 9 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 7e88ea28dc..f96dcb0335 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -369,7 +369,7 @@ bool setupEssentials(int& argc, char** argv) { Setting::preInit(); - CrashHandler::checkForAndHandleCrash(); + bool previousSessionCrashed = CrashHandler::checkForAndHandleCrash(); CrashHandler::writeRunningMarkerFiler(); qAddPostRoutine(CrashHandler::deleteRunningMarkerFile); @@ -431,7 +431,7 @@ bool setupEssentials(int& argc, char** argv) { DependencyManager::set(); DependencyManager::set(true, qApp, qApp); DependencyManager::set(); - return true; + return previousSessionCrashed; } // FIXME move to header, or better yet, design some kind of UI manager @@ -455,7 +455,7 @@ Q_GUI_EXPORT void qt_gl_set_global_share_context(QOpenGLContext *context); Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer) : QApplication(argc, argv), _window(new MainWindow(desktop())), - _dependencyManagerIsSetup(setupEssentials(argc, argv)), + _previousSessionCrashed(setupEssentials(argc, argv)), _undoStackScriptingInterface(&_undoStack), _frameCount(0), _fps(60.0f), @@ -642,7 +642,7 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer) : accountManager.setIsAgent(true); accountManager.setAuthURL(NetworkingConstants::METAVERSE_SERVER_URL); - UserActivityLogger::getInstance().launch(applicationVersion()); + UserActivityLogger::getInstance().launch(applicationVersion(), _previousSessionCrashed); // once the event loop has started, check and signal for an access token QMetaObject::invokeMethod(&accountManager, "checkAndSignalForAccessToken", Qt::QueuedConnection); diff --git a/interface/src/Application.h b/interface/src/Application.h index 4c12164a5f..206a37ce58 100644 --- a/interface/src/Application.h +++ b/interface/src/Application.h @@ -376,7 +376,7 @@ private: MainWindow* _window; - bool _dependencyManagerIsSetup; + bool _previousSessionCrashed; OffscreenGLCanvas* _offscreenContext { nullptr }; DisplayPluginPointer _displayPlugin; diff --git a/interface/src/CrashHandler.cpp b/interface/src/CrashHandler.cpp index 5a194973b4..50cca15c88 100644 --- a/interface/src/CrashHandler.cpp +++ b/interface/src/CrashHandler.cpp @@ -27,7 +27,7 @@ static const QString RUNNING_MARKER_FILENAME = "Interface.running"; -void CrashHandler::checkForAndHandleCrash() { +bool CrashHandler::checkForAndHandleCrash() { QFile runningMarkerFile(runningMarkerFilePath()); if (runningMarkerFile.exists()) { QSettings::setDefaultFormat(QSettings::IniFormat); @@ -42,7 +42,9 @@ void CrashHandler::checkForAndHandleCrash() { handleCrash(action); } } + return true; } + return false; } CrashHandler::Action CrashHandler::promptUserForAction() { diff --git a/interface/src/CrashHandler.h b/interface/src/CrashHandler.h index 61361b6107..18c935b595 100644 --- a/interface/src/CrashHandler.h +++ b/interface/src/CrashHandler.h @@ -17,7 +17,7 @@ class CrashHandler { public: - static void checkForAndHandleCrash(); + static bool checkForAndHandleCrash(); static void writeRunningMarkerFiler(); static void deleteRunningMarkerFile(); diff --git a/libraries/networking/src/UserActivityLogger.cpp b/libraries/networking/src/UserActivityLogger.cpp index f2019ba9a9..05144d8cb0 100644 --- a/libraries/networking/src/UserActivityLogger.cpp +++ b/libraries/networking/src/UserActivityLogger.cpp @@ -78,11 +78,13 @@ void UserActivityLogger::requestError(QNetworkReply& errorReply) { qCDebug(networking) << errorReply.error() << "-" << errorReply.errorString(); } -void UserActivityLogger::launch(QString applicationVersion) { +void UserActivityLogger::launch(QString applicationVersion, bool previousSessionCrashed) { const QString ACTION_NAME = "launch"; QJsonObject actionDetails; QString VERSION_KEY = "version"; + QString CRASH_KEY = "previousSessionCrashed"; actionDetails.insert(VERSION_KEY, applicationVersion); + actionDetails.insert(CRASH_KEY, previousSessionCrashed); logAction(ACTION_NAME, actionDetails); } diff --git a/libraries/networking/src/UserActivityLogger.h b/libraries/networking/src/UserActivityLogger.h index 2811be86a8..bfb7a42a50 100644 --- a/libraries/networking/src/UserActivityLogger.h +++ b/libraries/networking/src/UserActivityLogger.h @@ -29,7 +29,7 @@ public slots: void disable(bool disable); void logAction(QString action, QJsonObject details = QJsonObject(), JSONCallbackParameters params = JSONCallbackParameters()); - void launch(QString applicationVersion); + void launch(QString applicationVersion, bool previousSessionCrashed); void changedDisplayName(QString displayName); void changedModel(QString typeOfModel, QString modelURL);