From 329b0512eb605bbf530ce8c3aa3dd2e485f428a0 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Tue, 15 Aug 2017 02:17:42 +0200 Subject: [PATCH] Ref T125, utility functions --- src/blackmisc/fileutils.cpp | 10 ++++++++++ src/blackmisc/fileutils.h | 3 +++ .../simulation/settings/simulatorsettings.cpp | 5 +++++ src/blackmisc/simulation/settings/simulatorsettings.h | 3 +++ src/blackmisc/simulation/xplane/xplaneutil.cpp | 8 +++++++- src/blackmisc/simulation/xplane/xplaneutil.h | 5 ++++- 6 files changed, 32 insertions(+), 2 deletions(-) diff --git a/src/blackmisc/fileutils.cpp b/src/blackmisc/fileutils.cpp index d274384e6..62b314ab6 100644 --- a/src/blackmisc/fileutils.cpp +++ b/src/blackmisc/fileutils.cpp @@ -52,6 +52,16 @@ namespace BlackMisc return true; } + bool CFileUtils::writeByteArrayToFile(const QByteArray &data, const QString &fileNameAndPath) + { + if (fileNameAndPath.isEmpty()) { return false; } + QFile file(fileNameAndPath); + if (!file.open(QIODevice::WriteOnly)) { return false; } + qint64 c = file.write(data); + file.close(); + return c == data.count(); + } + bool CFileUtils::writeStringToLockedFile(const QString &content, const QString &fileNameAndPath) { QLockFile lock(fileNameAndPath + ".lock"); diff --git a/src/blackmisc/fileutils.h b/src/blackmisc/fileutils.h index e9790a181..6238c6ee7 100644 --- a/src/blackmisc/fileutils.h +++ b/src/blackmisc/fileutils.h @@ -60,6 +60,9 @@ namespace BlackMisc //! Write string to text file in background static bool writeStringToFileInBackground(const QString &content, const QString &fileNameAndPath); + //! Write byte array to file + static bool writeByteArrayToFile(const QByteArray &data, const QString &fileNameAndPath); + //! Append file paths //! \sa CNetworkUtils::buildUrl for URLs static QString appendFilePaths(const QString &path1, const QString &path2); diff --git a/src/blackmisc/simulation/settings/simulatorsettings.cpp b/src/blackmisc/simulation/settings/simulatorsettings.cpp index 05e0097da..a31292e91 100644 --- a/src/blackmisc/simulation/settings/simulatorsettings.cpp +++ b/src/blackmisc/simulation/settings/simulatorsettings.cpp @@ -37,6 +37,11 @@ namespace BlackMisc return this->m_simulatorDirectory; } + bool CSimulatorSettings::hasSimulatorDirectory() const + { + return !getSimulatorDirectory().isEmpty(); + } + void CSimulatorSettings::setModelDirectories(const QStringList &modelDirectories) { this->m_modelDirectories = modelDirectories; diff --git a/src/blackmisc/simulation/settings/simulatorsettings.h b/src/blackmisc/simulation/settings/simulatorsettings.h index 6714b28f1..c2c8e9f49 100644 --- a/src/blackmisc/simulation/settings/simulatorsettings.h +++ b/src/blackmisc/simulation/settings/simulatorsettings.h @@ -53,6 +53,9 @@ namespace BlackMisc //! Simulator directory const QString &getSimulatorDirectory() const; + //! Setting has simulator setting + bool hasSimulatorDirectory() const; + //! Set model directories void setModelDirectories(const QStringList &modelDirectories); diff --git a/src/blackmisc/simulation/xplane/xplaneutil.cpp b/src/blackmisc/simulation/xplane/xplaneutil.cpp index 4c72706f1..2b6236e80 100644 --- a/src/blackmisc/simulation/xplane/xplaneutil.cpp +++ b/src/blackmisc/simulation/xplane/xplaneutil.cpp @@ -119,7 +119,13 @@ namespace BlackMisc { const QString xp = xplaneRootDir(); if (xp.isEmpty()) { return xp; } - return CFileUtils::appendFilePaths(xp, "/Resources/plugins"); + return CFileUtils::appendFilePaths(xp, xplanePluginPath()); + } + + QString CXPlaneUtil::xplanePluginPath() + { + static const QString p("/Resources/plugins"); + return p; } bool CXPlaneUtil::isXplanePluginDirDirExisting() diff --git a/src/blackmisc/simulation/xplane/xplaneutil.h b/src/blackmisc/simulation/xplane/xplaneutil.h index a3eb6f642..e88ab1389 100644 --- a/src/blackmisc/simulation/xplane/xplaneutil.h +++ b/src/blackmisc/simulation/xplane/xplaneutil.h @@ -45,10 +45,13 @@ namespace BlackMisc //! Is the xplaneRootDir existing? static bool isXplaneRootDirExisting(); - //! XPlane root directory + //! XPlane plugin directory //! In case more then one XPlane version is found, the path to the highest version is used static QString xplanePluginDir(); + //! XPlane relative plugin path + static QString xplanePluginPath(); + //! Is the xplanePluginDir existing? static bool isXplanePluginDirDirExisting();