From 301db279458a334f155d3711ba0e348f5555cca5 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Tue, 24 Jan 2017 20:29:43 +0100 Subject: [PATCH] refs #865, make log directory available for blackmisc --- src/blackcore/application.cpp | 6 +----- src/blackgui/guiapplication.cpp | 12 ++++++++++++ src/blackmisc/directoryutils.cpp | 11 ++++++++++- src/blackmisc/directoryutils.h | 6 ++++-- 4 files changed, 27 insertions(+), 8 deletions(-) diff --git a/src/blackcore/application.cpp b/src/blackcore/application.cpp index dd34882a7..6b727aba2 100644 --- a/src/blackcore/application.cpp +++ b/src/blackcore/application.cpp @@ -639,11 +639,7 @@ namespace BlackCore CLogHandler::instance()->install(); // make sure we have a log handler! // File logger - static const QString logPath = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + - "/org.swift-project/" + - CDirectoryUtils::normalizedApplicationDirectory() + - "/logs"; - this->m_fileLogger.reset(new CFileLogger(executable(), logPath)); + this->m_fileLogger.reset(new CFileLogger(executable(), CDirectoryUtils::getLogDirectory())); this->m_fileLogger->changeLogPattern(CLogPattern().withSeverityAtOrAbove(CStatusMessage::SeverityDebug)); } diff --git a/src/blackgui/guiapplication.cpp b/src/blackgui/guiapplication.cpp index 48769d93c..390f6232d 100644 --- a/src/blackgui/guiapplication.cpp +++ b/src/blackgui/guiapplication.cpp @@ -15,6 +15,7 @@ #include "blackgui/guiapplication.h" #include "blackgui/guiutility.h" #include "blackgui/registermetadata.h" +#include "blackmisc/directoryutils.h" #include "blackmisc/datacache.h" #include "blackmisc/logcategory.h" #include "blackmisc/logcategorylist.h" @@ -372,6 +373,17 @@ namespace BlackGui this->displayTextInConsole(files.join("\n")); }); Q_ASSERT_X(c, Q_FUNC_INFO, "Connect failed"); + + a = menu.addAction(CIcons::disk16(), "Log directory"); + c = connect(a, &QAction::triggered, this, [this]() + { + const QString path(QDir::toNativeSeparators(CDirectoryUtils::getLogDirectory())); + if (QDir(path).exists()) + { + QDesktopServices::openUrl(QUrl("file:///" + path)); + } + }); + Q_ASSERT_X(c, Q_FUNC_INFO, "Connect failed"); } void CGuiApplication::addMenuForStyleSheets(QMenu &menu) diff --git a/src/blackmisc/directoryutils.cpp b/src/blackmisc/directoryutils.cpp index d8bf41d45..9e0248295 100644 --- a/src/blackmisc/directoryutils.cpp +++ b/src/blackmisc/directoryutils.cpp @@ -14,10 +14,10 @@ #include #include #include +#include namespace BlackMisc { - QString applicationDirectoryPathImpl() { QString appDirectoryString(qApp->applicationDirPath()); @@ -49,6 +49,15 @@ namespace BlackMisc return appDir; } + const QString &CDirectoryUtils::getLogDirectory() + { + static const QString logPath = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + + "/org.swift-project/" + + CDirectoryUtils::normalizedApplicationDirectory() + + "/logs"; + return logPath; + } + } // ns //! \endcond diff --git a/src/blackmisc/directoryutils.h b/src/blackmisc/directoryutils.h index 04bc76a94..9c017da74 100644 --- a/src/blackmisc/directoryutils.h +++ b/src/blackmisc/directoryutils.h @@ -13,7 +13,6 @@ #define BLACKMISC_DIRECTORYUTILS_H #include "blackmisc/blackmiscexport.h" - #include namespace BlackMisc @@ -32,8 +31,11 @@ namespace BlackMisc //! \note There is no trailing '/'. //! \warning The normalization rules are implementation specific and could change over time. static const QString &normalizedApplicationDirectory(); - }; + //! Directory for log files + //! \remark In BlackMisc so it can also be used from BlackMisc classes + static const QString &getLogDirectory(); + }; } // ns #endif // guard