From 17030b55cc61daac51112a3a43e12b96ba7fa280 Mon Sep 17 00:00:00 2001 From: Yann Bodson Date: Fri, 24 Jul 2009 14:52:57 +1000 Subject: Add a 'loading' property to fontfamily. --- src/declarative/util/qmlfontfamily.cpp | 13 ++++++++++++- src/declarative/util/qmlfontfamily.h | 4 ++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/declarative/util/qmlfontfamily.cpp b/src/declarative/util/qmlfontfamily.cpp index 407d2ab..e539085 100644 --- a/src/declarative/util/qmlfontfamily.cpp +++ b/src/declarative/util/qmlfontfamily.cpp @@ -57,13 +57,14 @@ class QmlFontFamilyPrivate : public QObjectPrivate Q_DECLARE_PUBLIC(QmlFontFamily); public: - QmlFontFamilyPrivate() : reply(0) {} + QmlFontFamilyPrivate() : reply(0), loading(false) {} void addFontToDatabase(const QByteArray &); QUrl url; QString name; QNetworkReply *reply; + bool loading; }; QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,FontFamily,QmlFontFamily) @@ -94,6 +95,8 @@ void QmlFontFamily::setSource(const QUrl &url) return; d->url = qmlContext(this)->resolvedUrl(url); + d->loading = true; + emit loadingChanged(); #ifndef QT_NO_LOCALFILE_OPTIMIZED_QML if (d->url.scheme() == QLatin1String("file")) { QFile file(d->url.toLocalFile()); @@ -125,6 +128,12 @@ void QmlFontFamily::setName(const QString &name) emit nameChanged(); } +bool QmlFontFamily::isLoading() const +{ + Q_D(const QmlFontFamily); + return d->loading; +} + void QmlFontFamily::replyFinished() { Q_D(QmlFontFamily); @@ -144,6 +153,8 @@ void QmlFontFamilyPrivate::addFontToDatabase(const QByteArray &ba) if (id != -1) { name = QFontDatabase::applicationFontFamilies(id).at(0); emit q->nameChanged(); + loading = false; + emit q->loadingChanged(); } else { qWarning() << "Cannot load font: " << name << url; } diff --git a/src/declarative/util/qmlfontfamily.h b/src/declarative/util/qmlfontfamily.h index 739a553..c647f67 100644 --- a/src/declarative/util/qmlfontfamily.h +++ b/src/declarative/util/qmlfontfamily.h @@ -59,6 +59,7 @@ class Q_DECLARATIVE_EXPORT QmlFontFamily : public QObject Q_PROPERTY(QUrl source READ source WRITE setSource NOTIFY sourceChanged) Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged) + Q_PROPERTY(bool loading READ isLoading NOTIFY loadingChanged) public: QmlFontFamily(QObject *parent = 0); @@ -70,11 +71,14 @@ public: QString name() const; void setName(const QString &name); + bool isLoading() const; + private Q_SLOTS: void replyFinished(); Q_SIGNALS: void nameChanged(); + void loadingChanged(); }; QT_END_NAMESPACE -- cgit v0.12