From 6fc1aaef90d4018ed30324a25ab466e075a53702 Mon Sep 17 00:00:00 2001 From: Kyle Grammer <34066958+KBGrammer@users.noreply.github.com> Date: Wed, 10 Jan 2018 22:19:08 -0500 Subject: [PATCH] Add comp architecture (#2968) --- cockatrice/src/dlg_viewlog.cpp | 3 +- cockatrice/src/logger.cpp | 31 +++++++++++++ cockatrice/src/logger.h | 79 +++++++++++++++++++++------------- cockatrice/src/window_main.cpp | 3 +- 4 files changed, 83 insertions(+), 33 deletions(-) diff --git a/cockatrice/src/dlg_viewlog.cpp b/cockatrice/src/dlg_viewlog.cpp index 78b23ecd..84d3ae4c 100644 --- a/cockatrice/src/dlg_viewlog.cpp +++ b/cockatrice/src/dlg_viewlog.cpp @@ -55,4 +55,5 @@ void DlgViewLog::closeEvent(QCloseEvent * /* event */) } logArea->appendPlainText(Logger::getInstance().getClientVersion()); -} \ No newline at end of file + logArea->appendPlainText(Logger::getInstance().getSystemArchitecture()); +} diff --git a/cockatrice/src/logger.cpp b/cockatrice/src/logger.cpp index d5d11d19..e954fee4 100644 --- a/cockatrice/src/logger.cpp +++ b/cockatrice/src/logger.cpp @@ -6,10 +6,16 @@ #define LOGGER_MAX_ENTRIES 128 #define LOGGER_FILENAME "qdebug.txt" +#if QT_VERSION >= 0x050400 + #include +#endif + Logger::Logger() : logToFileEnabled(false) { logBuffer.append(getClientVersion()); + logBuffer.append(getSystemArchitecture()); std::cerr << getClientVersion().toStdString() << std::endl; + std::cerr << getSystemArchitecture().toStdString() << std::endl; } Logger::~Logger() @@ -47,6 +53,7 @@ void Logger::openLogfileSession() fileStream.setDevice(&fileHandle); fileStream << "Log session started at " << QDateTime::currentDateTime().toString() << endl; fileStream << getClientVersion() << endl; + fileStream << getSystemArchitecture() << endl; logToFileEnabled = true; } @@ -81,3 +88,27 @@ void Logger::internalLog(const QString message) if (logToFileEnabled) fileStream << message << endl; // Print to fileStream } + +QString Logger::getSystemArchitecture() +{ + QString result; + + if (!getClientOperatingSystem().isEmpty()) + { + result.append(tr("Client Operating System") + ": " + getClientOperatingSystem() + "\n"); + } + + result.append(tr("Build Architecture") + ": " + QString::fromStdString(BUILD_ARCHITECTURE) + "\n"); + result.append(tr("Qt Version") + ": " + QT_VERSION_STR); + + return result; +} + +QString Logger::getClientOperatingSystem() +{ + #ifdef QSYSINFO_H + return QSysInfo::prettyProductName(); + #endif + + return {}; +} diff --git a/cockatrice/src/logger.h b/cockatrice/src/logger.h index e3b68591..d2c5a3b3 100644 --- a/cockatrice/src/logger.h +++ b/cockatrice/src/logger.h @@ -7,38 +7,55 @@ #include #include -class Logger : public QObject { -Q_OBJECT -public: - static Logger& getInstance() - { - static Logger instance; - return instance; - } -private: - Logger(); - ~Logger(); - // Singleton - Don't implement copy constructor and assign operator - Logger(Logger const&); - void operator=(Logger const&); +#if defined(Q_PROCESSOR_X86_32) + #define BUILD_ARCHITECTURE "32-bit" +#elif defined(Q_PROCESSOR_X86_64) + #define BUILD_ARCHITECTURE "64-bit" +#elif defined(Q_PROCESSOR_ARM) + #define BUILD_ARCHITECTURE "ARM" +#else + #define BUILD_ARCHITECTURE "unknown" +#endif - bool logToFileEnabled; - QTextStream fileStream; - QFile fileHandle; - QList logBuffer; - QMutex mutex; -public: - void logToFile(bool enabled); - void log(QtMsgType type, const QMessageLogContext &ctx, const QString message); - QString getClientVersion(); - QList getLogBuffer() { return logBuffer; } -protected: - void openLogfileSession(); - void closeLogfileSession(); -protected slots: - void internalLog(const QString message); -signals: - void logEntryAdded(QString message); +class Logger : public QObject +{ + Q_OBJECT + public: + static Logger& getInstance() + { + static Logger instance; + return instance; + } + + void logToFile(bool enabled); + void log(QtMsgType type, const QMessageLogContext &ctx, const QString message); + QString getClientVersion(); + QString getClientOperatingSystem(); + QString getSystemArchitecture(); + QList getLogBuffer() { return logBuffer; } + + private: + Logger(); + ~Logger(); + // Singleton - Don't implement copy constructor and assign operator + Logger(Logger const&); + void operator=(Logger const&); + + bool logToFileEnabled; + QTextStream fileStream; + QFile fileHandle; + QList logBuffer; + QMutex mutex; + + protected: + void openLogfileSession(); + void closeLogfileSession(); + + protected slots: + void internalLog(const QString message); + + signals: + void logEntryAdded(QString message); }; #endif diff --git a/cockatrice/src/window_main.cpp b/cockatrice/src/window_main.cpp index 3d81472a..7eecd72a 100644 --- a/cockatrice/src/window_main.cpp +++ b/cockatrice/src/window_main.cpp @@ -48,6 +48,7 @@ #include "localserver.h" #include "localserverinterface.h" #include "localclient.h" +#include "logger.h" #include "settingscache.h" #include "tab_game.h" #include "version_string.h" @@ -282,7 +283,7 @@ void MainWindow::actExit() void MainWindow::actAbout() { QMessageBox mb(QMessageBox::NoIcon, tr("About Cockatrice"), QString( - "Cockatrice
" + "Cockatrice (" + QString::fromStdString(BUILD_ARCHITECTURE) + ")
" + tr("Version") + QString(" %1").arg(VERSION_STRING) + "

" + tr("Cockatrice Webpage") + "
" + "

" + tr("Project Manager:") + "
Gavin Bisesi

"