summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGatis Paeglis <gatis.paeglis@qt.io>2016-12-20 13:46:04 +0100
committerGatis Paeglis <gatis.paeglis@qt.io>2016-12-21 11:36:21 +0000
commit1ff76535d08db76bf0f791f6de167f7a0f708ccc (patch)
treef6b2e4e787f0e5a90c5cf0b92960521f791502fa
parent1b30c228f653a712e884adcbb22750b5643c0452 (diff)
Use QString as return type in metadata accessors
.. as this results in a better API at the QML side. Change-Id: I28e4e2b0f5dea278f5185699234400c67a376359 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
-rw-r--r--examples/qml/basic/main.qml6
-rw-r--r--src/lib/qotaclient.cpp24
-rw-r--r--src/lib/qotaclient.h13
-rw-r--r--src/lib/qotaclient_p.h13
-rw-r--r--src/lib/qotaclientasync.cpp19
-rw-r--r--src/lib/qotaclientasync_p.h6
6 files changed, 39 insertions, 42 deletions
diff --git a/examples/qml/basic/main.qml b/examples/qml/basic/main.qml
index 62da0f6..b715403 100644
--- a/examples/qml/basic/main.qml
+++ b/examples/qml/basic/main.qml
@@ -88,13 +88,11 @@ Window {
}
function updateMetadataLabel(label, metadata, rev) {
- // QByteArray to JS string.
- var metadataString = metadata.toString()
- if (metadataString.length === 0) {
+ if (metadata.length === 0) {
label.text = "<b>No metadata available</b>"
return
}
- var metadataObj = JSON.parse(metadataString)
+ var metadataObj = JSON.parse(metadata)
label.text = ""
for (var property in metadataObj)
label.text += "<b>" + property.charAt(0).toUpperCase()
diff --git a/src/lib/qotaclient.cpp b/src/lib/qotaclient.cpp
index 78821cd..a3e8f37 100644
--- a/src/lib/qotaclient.cpp
+++ b/src/lib/qotaclient.cpp
@@ -88,7 +88,7 @@ void QOtaClientPrivate::handleStateChanges()
}
}
-void QOtaClientPrivate::setBootedMetadata(QString &bootedRev, const QByteArray &bootedMetadata)
+void QOtaClientPrivate::setBootedMetadata(const QString &bootedRev, const QString &bootedMetadata)
{
Q_Q(QOtaClient);
m_bootedRev = bootedRev;
@@ -118,7 +118,7 @@ bool QOtaClientPrivate::verifyPathExist(const QString &path)
return true;
}
-void QOtaClientPrivate::rollbackMetadataChanged(const QString &rollbackRev, const QByteArray &rollbackMetadata, int treeCount)
+void QOtaClientPrivate::rollbackMetadataChanged(const QString &rollbackRev, const QString &rollbackMetadata, int treeCount)
{
Q_Q(QOtaClient);
if (m_rollbackRev == rollbackRev)
@@ -135,7 +135,7 @@ void QOtaClientPrivate::rollbackMetadataChanged(const QString &rollbackRev, cons
q->rollbackMetadataChanged();
}
-void QOtaClientPrivate::remoteMetadataChanged(const QString &remoteRev, const QByteArray &remoteMetadata)
+void QOtaClientPrivate::remoteMetadataChanged(const QString &remoteRev, const QString &remoteMetadata)
{
Q_Q(QOtaClient);
if (m_remoteRev == remoteRev)
@@ -694,12 +694,12 @@ QString QOtaClient::bootedRevision() const
/*!
\property QOtaClient::bootedMetadata
- \brief a QByteArray containing the booted system's OTA metadata.
+ \brief a QString containing the booted system's OTA metadata.
- Returns a JSON-formatted QByteArray containing OTA metadata for the booted
+ Returns a JSON-formatted QString containing OTA metadata for the booted
system. Metadata is bundled with each system's version.
*/
-QByteArray QOtaClient::bootedMetadata() const
+QString QOtaClient::bootedMetadata() const
{
return d_func()->m_bootedMetadata;
}
@@ -717,14 +717,14 @@ QString QOtaClient::remoteRevision() const
/*!
\property QOtaClient::remoteMetadata
- \brief a QByteArray containing the system's OTA metadata on a server.
+ \brief a QString containing the system's OTA metadata on a server.
- Returns a JSON-formatted QByteArray containing OTA metadata for the system
+ Returns a JSON-formatted QString containing OTA metadata for the system
on a server. Metadata is bundled with each system's version.
\sa fetchRemoteMetadata()
*/
-QByteArray QOtaClient::remoteMetadata() const
+QString QOtaClient::remoteMetadata() const
{
return d_func()->m_remoteMetadata;
}
@@ -742,14 +742,14 @@ QString QOtaClient::rollbackRevision() const
/*!
\property QOtaClient::rollbackMetadata
- \brief a QByteArray containing the rollback system's OTA metadata.
+ \brief a QString containing the rollback system's OTA metadata.
- Returns a JSON-formatted QByteArray containing OTA metadata for the rollback
+ Returns a JSON-formatted QString containing OTA metadata for the rollback
system. Metadata is bundled with each system's version.
\sa rollback()
*/
-QByteArray QOtaClient::rollbackMetadata() const
+QString QOtaClient::rollbackMetadata() const
{
return d_func()->m_rollbackMetadata;
}
diff --git a/src/lib/qotaclient.h b/src/lib/qotaclient.h
index ab3316e..2708a02 100644
--- a/src/lib/qotaclient.h
+++ b/src/lib/qotaclient.h
@@ -31,7 +31,6 @@
#include <QtCore/QObject>
#include <QtCore/QString>
-#include <QtCore/QByteArray>
QT_BEGIN_NAMESPACE
@@ -48,11 +47,11 @@ class Q_DECL_EXPORT QOtaClient : public QObject
Q_PROPERTY(QString error READ errorString NOTIFY errorOccurred)
Q_PROPERTY(QString status READ statusString NOTIFY statusStringChanged)
Q_PROPERTY(QString bootedRevision READ bootedRevision)
- Q_PROPERTY(QByteArray bootedMetadata READ bootedMetadata)
+ Q_PROPERTY(QString bootedMetadata READ bootedMetadata)
Q_PROPERTY(QString remoteRevision READ remoteRevision NOTIFY remoteMetadataChanged)
- Q_PROPERTY(QByteArray remoteMetadata READ remoteMetadata NOTIFY remoteMetadataChanged)
+ Q_PROPERTY(QString remoteMetadata READ remoteMetadata NOTIFY remoteMetadataChanged)
Q_PROPERTY(QString rollbackRevision READ rollbackRevision NOTIFY rollbackMetadataChanged)
- Q_PROPERTY(QByteArray rollbackMetadata READ rollbackMetadata NOTIFY rollbackMetadataChanged)
+ Q_PROPERTY(QString rollbackMetadata READ rollbackMetadata NOTIFY rollbackMetadataChanged)
public:
static QOtaClient& instance();
virtual ~QOtaClient();
@@ -76,11 +75,11 @@ public:
Q_INVOKABLE QOtaRepositoryConfig *repositoryConfig() const;
QString bootedRevision() const;
- QByteArray bootedMetadata() const;
+ QString bootedMetadata() const;
QString remoteRevision() const;
- QByteArray remoteMetadata() const;
+ QString remoteMetadata() const;
QString rollbackRevision() const;
- QByteArray rollbackMetadata() const;
+ QString rollbackMetadata() const;
Q_SIGNALS:
void remoteMetadataChanged();
diff --git a/src/lib/qotaclient_p.h b/src/lib/qotaclient_p.h
index ced6621..a58a7ec 100644
--- a/src/lib/qotaclient_p.h
+++ b/src/lib/qotaclient_p.h
@@ -31,7 +31,6 @@
#include <QtCore/QObject>
#include <QtCore/QLoggingCategory>
-#include <QtCore/QByteArray>
#include <QtCore/QScopedPointer>
QT_BEGIN_NAMESPACE
@@ -55,9 +54,9 @@ public:
void statusStringChanged(const QString &status);
void errorOccurred(const QString &error);
bool verifyPathExist(const QString &path);
- void setBootedMetadata(QString &bootedRev, const QByteArray &bootedMetadata);
- void rollbackMetadataChanged(const QString &rollbackRev, const QByteArray &rollbackMetadata, int treeCount);
- void remoteMetadataChanged(const QString &remoteRev, const QByteArray &remoteMetadata);
+ void setBootedMetadata(const QString &bootedRev, const QString &bootedMetadata);
+ void rollbackMetadataChanged(const QString &rollbackRev, const QString &rollbackMetadata, int treeCount);
+ void remoteMetadataChanged(const QString &remoteRev, const QString &remoteMetadata);
void defaultRevisionChanged(const QString &defaultRevision);
// members
@@ -73,11 +72,11 @@ public:
QString m_defaultRev;
QString m_bootedRev;
- QByteArray m_bootedMetadata;
+ QString m_bootedMetadata;
QString m_remoteRev;
- QByteArray m_remoteMetadata;
+ QString m_remoteMetadata;
QString m_rollbackRev;
- QByteArray m_rollbackMetadata;
+ QString m_rollbackMetadata;
};
QT_END_NAMESPACE
diff --git a/src/lib/qotaclientasync.cpp b/src/lib/qotaclientasync.cpp
index 51a9333..987a879 100644
--- a/src/lib/qotaclientasync.cpp
+++ b/src/lib/qotaclientasync.cpp
@@ -125,15 +125,15 @@ OstreeSysroot* QOtaClientAsync::defaultSysroot()
return sysroot;
}
-QByteArray QOtaClientAsync::metadataFromRev(const QString &rev, bool *ok)
+QString QOtaClientAsync::metadataFromRev(const QString &rev, bool *ok)
{
QString jsonData;
jsonData = ostree(QString(QStringLiteral("ostree cat %1 /usr/etc/qt-ota.json")).arg(rev), ok);
if (jsonData.isEmpty())
- return QByteArray();
+ return jsonData;
QJsonParseError parseError;
- QJsonDocument jsonMetadata = QJsonDocument::fromJson(jsonData.toLatin1(), &parseError);
+ QJsonDocument jsonMetadata = QJsonDocument::fromJson(jsonData.toUtf8(), &parseError);
if (jsonMetadata.isNull()) {
*ok = false;
QString error = QString(QStringLiteral("failed to parse JSON file, error: %1, data: %2"))
@@ -141,7 +141,8 @@ QByteArray QOtaClientAsync::metadataFromRev(const QString &rev, bool *ok)
emit errorOccurred(error);
}
- return jsonMetadata.toJson();
+ QByteArray ba = jsonMetadata.toJson();
+ return QString::fromUtf8(ba);
}
bool QOtaClientAsync::refreshMetadata(QOtaClientPrivate *d)
@@ -156,7 +157,7 @@ bool QOtaClientAsync::refreshMetadata(QOtaClientPrivate *d)
// Booted revision can change only when a device is rebooted.
OstreeDeployment *bootedDeployment = (OstreeDeployment*)ostree_sysroot_get_booted_deployment (sysroot);
QString bootedRev = QLatin1String(ostree_deployment_get_csum (bootedDeployment));
- QByteArray bootedMetadata = metadataFromRev(bootedRev, &ok);
+ QString bootedMetadata = metadataFromRev(bootedRev, &ok);
if (!ok)
return false;
d->setBootedMetadata(bootedRev, bootedMetadata);
@@ -164,7 +165,7 @@ bool QOtaClientAsync::refreshMetadata(QOtaClientPrivate *d)
// prepopulate with what we think is on the remote server (head of the local repo)
QString remoteRev = ostree(QStringLiteral("ostree rev-parse linux/qt"), &ok);
- QByteArray remoteMetadata;
+ QString remoteMetadata;
if (ok) remoteMetadata = metadataFromRev(remoteRev, &ok);
if (!ok)
return false;
@@ -177,7 +178,7 @@ bool QOtaClientAsync::refreshMetadata(QOtaClientPrivate *d)
void QOtaClientAsync::_fetchRemoteMetadata()
{
QString remoteRev;
- QByteArray remoteMetadata;
+ QString remoteMetadata;
bool ok = true;
ostree(QStringLiteral("ostree pull --commit-metadata-only --disable-static-deltas qt-os linux/qt"), &ok);
if (ok) remoteRev = ostree(QStringLiteral("ostree rev-parse linux/qt"), &ok);
@@ -265,7 +266,7 @@ bool QOtaClientAsync::handleRevisionChanges(OstreeSysroot *sysroot, bool reloadS
OstreeDeployment *rollbackDeployment = (OstreeDeployment*)deployments->pdata[index];
QString rollbackRev(QLatin1String(ostree_deployment_get_csum (rollbackDeployment)));
bool ok = true;
- QByteArray rollbackMetadata = metadataFromRev(rollbackRev, &ok);
+ QString rollbackMetadata = metadataFromRev(rollbackRev, &ok);
if (!ok)
return false;
emit rollbackMetadataChanged(rollbackRev, rollbackMetadata, deployments->len);
@@ -378,7 +379,7 @@ bool QOtaClientAsync::extractPackage(const QString &packagePath, OstreeSysroot *
g_autofree char *toCsum = ostree_checksum_from_bytes_v (toCsumV);
*updateToRev = QString::fromLatin1(toCsum);
- QByteArray remoteMetadata;
+ QString remoteMetadata;
ostree(QString(QStringLiteral("ostree reset qt-os:linux/qt %1")).arg(*updateToRev), &ok);
if (ok) remoteMetadata = metadataFromRev(*updateToRev, &ok);
if (ok) emit remoteMetadataChanged(*updateToRev, remoteMetadata);
diff --git a/src/lib/qotaclientasync_p.h b/src/lib/qotaclientasync_p.h
index 61a6071..6252878 100644
--- a/src/lib/qotaclientasync_p.h
+++ b/src/lib/qotaclientasync_p.h
@@ -64,15 +64,15 @@ signals:
void updateOfflineFinished(bool success);
void updateRemoteMetadataOffline(const QString &packagePath);
void updateRemoteMetadataOfflineFinished(bool success);
- void rollbackMetadataChanged(const QString &rollbackRev, const QByteArray &rollbackMetadata, int treeCount);
+ void rollbackMetadataChanged(const QString &rollbackRev, const QString &rollbackMetadata, int treeCount);
void errorOccurred(const QString &error);
void statusStringChanged(const QString &status);
- void remoteMetadataChanged(const QString &remoteRev, const QByteArray &remoteMetadata);
+ void remoteMetadataChanged(const QString &remoteRev, const QString &remoteMetadata);
void defaultRevisionChanged(const QString &defaultRevision);
protected:
OstreeSysroot* defaultSysroot();
- QByteArray metadataFromRev(const QString &rev, bool *ok);
+ QString metadataFromRev(const QString &rev, bool *ok);
int rollbackIndex(OstreeSysroot *sysroot);
bool handleRevisionChanges(OstreeSysroot *sysroot, bool reloadSysroot = false);
void emitGError(GError *error);