diff options
author | Frerich Raabe <raabe@froglogic.com> | 2015-09-27 14:16:09 +0200 |
---|---|---|
committer | Karsten Heimrich <karsten.heimrich@theqtcompany.com> | 2015-12-08 13:06:21 +0000 |
commit | f747e559e12e4a9d675e26070d7d0c510d9106c8 (patch) | |
tree | 88678f919f25d0f6c3684a7c400e7eeba27faa61 /src | |
parent | d129ccdb8aa63185ea939068d892b27c634e4842 (diff) |
Implemented installer.readFile()
For reading an external file using a specific encoding. This is
convenient for having installers show the current configuration (e.g.
effective license key) in case the configuration is stored in plain
files as opposed to using e.g. the Windows registry.
Change-Id: I87f8583b4cb192c4bd8b62a03f292a5cbefd52d8
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@theqtcompany.com>
Reviewed-by: Karsten Heimrich <karsten.heimrich@theqtcompany.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/libs/installer/packagemanagercore.cpp | 28 | ||||
-rw-r--r-- | src/libs/installer/packagemanagercore.h | 1 |
2 files changed, 29 insertions, 0 deletions
diff --git a/src/libs/installer/packagemanagercore.cpp b/src/libs/installer/packagemanagercore.cpp index 8066ff308..a955bc8cc 100644 --- a/src/libs/installer/packagemanagercore.cpp +++ b/src/libs/installer/packagemanagercore.cpp @@ -61,6 +61,8 @@ #include <QtCore/QMutex> #include <QtCore/QSettings> #include <QtCore/QTemporaryFile> +#include <QtCore/QTextCodec> +#include <QtCore/QTextStream> #include <QDesktopServices> #include <QFileDialog> @@ -785,6 +787,32 @@ bool PackageManagerCore::fileExists(const QString &filePath) const return QFileInfo(filePath).exists(); } +/*! + Returns the contents of the file \a filePath using the encoding specified + by \a codecName. The file is read in the text mode, that is, end-of-line + terminators are translated to the local encoding. + + \note If the file does not exist or an error occurs while reading the file, an + empty string is returned. + + \sa {installer::readFile}{installer.readFile} + + */ +QString PackageManagerCore::readFile(const QString &filePath, const QString &codecName) const +{ + QFile f(filePath); + if (!f.open(QIODevice::ReadOnly | QIODevice::Text)) + return QString(); + + QTextCodec *codec = QTextCodec::codecForName(qPrintable(codecName)); + if (!codec) + return QString(); + + QTextStream stream(&f); + stream.setCodec(codec); + return stream.readAll(); +} + // -- QInstaller /*! diff --git a/src/libs/installer/packagemanagercore.h b/src/libs/installer/packagemanagercore.h index 5160b0588..9587de7b4 100644 --- a/src/libs/installer/packagemanagercore.h +++ b/src/libs/installer/packagemanagercore.h @@ -190,6 +190,7 @@ public: Q_INVOKABLE bool isFileExtensionRegistered(const QString &extension) const; Q_INVOKABLE bool fileExists(const QString &filePath) const; + Q_INVOKABLE QString readFile(const QString &filePath, const QString &codecName) const; public: ScriptEngine *componentScriptEngine() const; |