summaryrefslogtreecommitdiffstats
path: root/examples/quick/controls/filesystembrowser/main.cpp
diff options
context:
space:
mode:
authorGabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>2015-08-02 18:45:42 +0200
committerMitch Curtis <mitch.curtis@theqtcompany.com>2015-08-07 08:02:53 +0000
commit485d039e7b8ddb150b0f9723cfb08815eb843cba (patch)
treef5b00fc2909f036956e3538c336a0f052a15ba24 /examples/quick/controls/filesystembrowser/main.cpp
parentfedb2eea6b1e42c9c6a21f772e5c50ef0747f2ba (diff)
filesystembrowser: Improve example by exposing model roles
This is one of the biggest API shortcomings we currently have when exposing C++ models to QML. The least we can do is make our examples more readable, and hint the users how to make their apps a bit better. Change-Id: I25f51ef393bbd0c9bf7bab48b705a672881d80c1 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: Mitch Curtis <mitch.curtis@theqtcompany.com>
Diffstat (limited to 'examples/quick/controls/filesystembrowser/main.cpp')
-rw-r--r--examples/quick/controls/filesystembrowser/main.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/examples/quick/controls/filesystembrowser/main.cpp b/examples/quick/controls/filesystembrowser/main.cpp
index 1322bc497..ac24bada8 100644
--- a/examples/quick/controls/filesystembrowser/main.cpp
+++ b/examples/quick/controls/filesystembrowser/main.cpp
@@ -88,16 +88,18 @@ static inline QString sizeString(const QFileInfo &fi)
}
class DisplayFileSystemModel : public QFileSystemModel {
+ Q_OBJECT
public:
explicit DisplayFileSystemModel(QObject *parent = Q_NULLPTR)
: QFileSystemModel(parent) {}
- enum {
+ enum Roles {
SizeRole = Qt::UserRole + 4,
DisplayableFilePermissionsRole = Qt::UserRole + 5,
LastModifiedRole = Qt::UserRole + 6,
- UrlStringRole = Qt::UserRole + 7 // 263
+ UrlStringRole = Qt::UserRole + 7
};
+ Q_ENUM(Roles)
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const Q_DECL_OVERRIDE
{
@@ -133,6 +135,8 @@ int main(int argc, char *argv[])
QApplication app(argc, argv);
QQmlApplicationEngine engine;
+ qmlRegisterUncreatableType<DisplayFileSystemModel>("io.qt.examples.quick.controls.filesystembrowser", 1, 0,
+ "FileSystemModel", "Cannot create a FileSystemModel instance.");
QFileSystemModel *fsm = new DisplayFileSystemModel(&engine);
fsm->setRootPath(QDir::homePath());
fsm->setResolveSymlinks(true);
@@ -142,3 +146,5 @@ int main(int argc, char *argv[])
return app.exec();
}
+
+#include "main.moc"