This file is indexed.

/usr/share/u1db-qt/examples/u1db-qt-example-2b.qml is in libu1db-qt5-examples 0.1.5+14.04.20140313-0ubuntu2.

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: "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        
               	}
               
               }
               
            }
               
        }
        

    }
}