~mhall119/+junk/memebook

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
109
110
111
112
113
114
115
116
117
118
import QtQuick 2.0
import Ubuntu.Components 1.1
import Ubuntu.Components.ListItems 1.0 as ListItems
import Ubuntu.Content 0.1
import U1db 1.0 as U1db
import "components"

/*!
    \brief MainView with a Label and Button elements.
*/

MainView {
    id: app
    // objectName for functional testing purposes (autopilot-qt5)
    objectName: "mainView"

    // Note! applicationName needs to match the "name" field of the click manifest
    applicationName: "com.ubuntu.developer.mhall119.memebook"

    /*
     This property enables the application to change orientation
     when the device is rotated. The default is false.
    */
    automaticOrientation: true
    useDeprecatedToolbar: false

    width: units.gu(100)
    height: units.gu(75)

    U1db.Database {
        id: db
        path: "memesDB"
    }

    PageStack {
        id: mainStack
        Component.onCompleted: push(mainPage)
    }

    Page {
        id: mainPage
        title: i18n.tr("Memebook")
        head {
            sections {
                model: ["All", "Recent"]
            }
        }

        head.actions: [
            Action {
                iconName: "add"
                onTriggered: {
                    mainStack.push(Qt.resolvedUrl("pages/ImportPage.qml"))
                    //activeTransfer = picSource.request(appStore)
                }
            }

        ]

        UbuntuListView {
            anchors.fill: parent
            model: U1db.Query {
                id: query
                index: U1db.Index {
                    database: db
                    expression: ["meme.docId", "meme.file", "meme.text"]
                }
                query: ["*", "*", "*"]
            }
            delegate: ListItems.Standard {
                text: contents.text
                iconSource: contents.file
                onClicked: {
                    mainStack.push(Qt.resolvedUrl("pages/ImageViewPage.qml"), {"meme": contents.text, "img": contents.file})
                }
            }
        }

    }

    function addImportedImage(contentItem) {
        console.log("CONTENT IMPORTED:", contentItem.url.toString().replace("file://", ""));
        var filepath = contentItem.url.toString().replace("file://", "");
        var fileparts = filepath.split("/");
        var filename = fileparts.pop();
        console.log("Filename: "+filename);
        db.putDoc(
                    JSON.stringify({
                                       meme: {
                                           file: filepath,
                                           text: filename,
                                       }
                                   })
                    );
        mainStack.push(Qt.resolvedUrl("pages/ImageViewPage.qml"), {"meme": filename, "img": filepath})

    }

    // Content Exporter
    property list<ContentItem> selectedItems
    Connections {
        target: ContentHub
        onExportRequested: {
            // show content picker
            console.log("Content import started")
            app.selectedItems[0] = Qt.resolvedUrl("memebook.png")
            transfer.items = app.selectedItems;
            transfer.state = ContentTransfer.Charged;
        }
        onImportRequested: {
            // show content picker
            if (transfer.state === ContentTransfer.Charged) {
                addImportedImage(transfer.items[0])
            }
        }
    }
}