/usr/share/u1db-qt/examples/u1db-qt-example-2b.qml is in libu1db-qt5-examples 0.1.5+15.10.20150826.1-0ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 | /*
* Copyright (C) 2013 Canonical, Ltd.
*
* Authors:
* Kevin Wright <kevin.wright@canonical.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation; version 3.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
import QtQuick 2.0
import U1db 1.0 as U1db
import Ubuntu.Components 0.1
/*!
This example demonstrates how to create and query one level of sub-fields in a document.
*/
MainView {
id: u1dbView
width: units.gu(45)
height: units.gu(80)
U1db.Database {
id: aDatabase
path: Qt.resolvedUrl("aDatabase2b")
}
/*!
This snippet demonstrates how to create content that includes nested fields. The main field is 'hello', while the sub-field for each entry is 'value'. Later in the example it will be shown how to access each of these in the delegate of a ListView.
U1db.Document {
id: aDocument
database: aDatabase
docId: 'hello'
create: true
defaults: { "hello": [{"value":"99 Hello Worlds on the wall...!"},{"value":"98 Hello Worlds on the wall...!"},{"value":"97 Hello Worlds on the wall...!"},{"value":"...and so on..."}] }
}
*/
U1db.Document {
id: aDocument
database: aDatabase
docId: 'hello'
create: true
defaults: { "hello": [{"value":"99 Hello Worlds on the wall...!"},{"value":"98 Hello Worlds on the wall...!"},{"value":"97 Hello Worlds on the wall...!"},{"value":"...and so on..."}] }
}
Tabs {
id: tabs
anchors.fill: parent
Tab {
title: i18n.tr("Hello U1Db!")
page: Page {
id: helloPage
ListView {
width: units.gu(45)
height: units.gu(80)
anchors.fill: parent
model: aDocument.contents.hello
/*!
Determining the current record is easy. All that is required is to access it using the delegate's own 'index' value, as shown here:
delegate: Text {
height: 30
text: aDocument.contents.hello[index].value
}
Remember that when the entries were created the sub-field was 'value'. So where index = 0, 'aDocument.contents.hello[0].value' will produce '99 Hello Worlds on the wall...!'. Each entry in the document will in turn create its own delegate with a new index number, which can then be used to extract the 'value' (or whatever other sub-field has been created).
*/
delegate: Text {
height: 30
text: aDocument.contents.hello[index].value
}
}
}
}
}
}
|