summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorFrerich Raabe <raabe@froglogic.com>2015-09-27 14:16:09 +0200
committerKarsten Heimrich <karsten.heimrich@theqtcompany.com>2015-12-08 13:06:21 +0000
commitf747e559e12e4a9d675e26070d7d0c510d9106c8 (patch)
tree88678f919f25d0f6c3684a7c400e7eeba27faa61 /src
parentd129ccdb8aa63185ea939068d892b27c634e4842 (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.cpp28
-rw-r--r--src/libs/installer/packagemanagercore.h1
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;