[11:05] <kalikiana_> nik90: ping
[11:53] <nik90> kalikiana_: pong
[12:18] <kalikiana_> nik90: ah there you are
[12:18] <kalikiana_> I just replied to the list
[12:18] <kalikiana_> maybe have a look at the reply first
[12:19] <nik90> kalikiana_: thnx. looking at the email now
[12:25] <nik90> kalikiana_: I have seen and used http://developer.ubuntu.com/api/qml/sdk-1.0/U1DB/ before. Infact I did a hangout with stuart during which michael hall added it to the API docs. It was quite useful to list the functions of database, document etc.
[12:26] <nik90> kalikiana_: so with regards to index, while specifying the expression is there a specific order we must use?
[12:27] <nik90> also does it expect the expressions to be of the same size?
[12:28] <kalikiana_> nik90: in general the query needs to list the same expressions defined in the index
[12:28] <kalikiana_> if you want to search foobar, it needs to be in the index
[12:29] <nik90> okay, so in essence an index provides the data, while queries uses them to filter and pass it on as a model.
[12:31] <kalikiana_> yep
[12:32] <kalikiana_> which as you've found is limited to wildcards basically right now. but there's plans for more filters ie. transformation functions in u1 lingo
[12:33] <nik90> kalikiana_: I looked at the bug report you mentioned in the email and I think providing the capability to add user function to use as filters to provide some freedom to the developer
[12:35] <nik90> kalikiana_: and regarding sorting of results, what I meant was in python, I saw calls like sorted(modeldata) where it returns the results in an alphabetical order, or in ascending/descending order. Unfortunately QML doesn't offer this natively.
[12:39] <kalikiana_> ah right. in qml you can only do it "by hand" like copying the model and using move() with your own algorithm
[12:40] <kalikiana_> hmm do you think this would make sense as a u1db feature?
[12:41] <kalikiana_> nik90: maybe indirectly this could be solved through transformation functions
[12:42] <kalikiana_> at the bottom of this mock api https://launchpadlibrarian.net/149329873/queryfuncs.qml
[12:42] <kalikiana_> that's pretty much a way of sorting
[12:44] <nik90> kalikiana_: yeah me and andrew thought that u1db would provide a efficient and more lean sorting function instead of us having to create one.
[12:45] <nik90> kalikiana_: I have branch which shows of the sample app I have been working on at https://code.launchpad.net/~nik90/+junk/u1db-sample-app
[12:46] <nik90> can you take a look and let me know if I am doing stuff correctly in the listview?
[12:46] <nik90> I feel like I am complicating matters by using a repeater inside a listivew
[12:48] <timp> nik90: why would you do that instead of using a ListModel?
[12:50] <nik90> timp: because strangely enough, when I specified contents.tracks, it threw a undefined output.
[12:50] <nik90> timp: Also looking at my document structure, it seems it is a list inside a list. The tracks is a list object inside the playlist document
[12:51] <nik90> kalikiana_: I also noticed a bug with example 5 in u1db-qt examples located at http://bazaar.launchpad.net/~uonedb-qt/u1db-qt/trunk/view/head:/examples/u1db-qt-example-5/u1db-qt-example-5.qml.
[12:52] <nik90> I ran it without any modifcation and the output is rather bizarre
[12:52] <nik90> I expect it to show 7 outputs in the listview, but it only shows 3.
[12:52] <nik90> can you confirm that pls?
[12:53] <nik90> timp: I am open to suggestions to simplifying that. I feel like I am over complicating it
[12:55] <timp> nik90: do you have a link (http?) of your code on launchpad? I can have a quick look
[12:55] <nik90> timp: http://bazaar.launchpad.net/~nik90/+junk/u1db-sample-app/view/head:/u1db.qml
[12:57] <timp> nik90: thanks
[12:57] <timp> nik90: perhaps it is possible to create a ListModel and put the repeater inside that
[12:57] <timp> I'm not sure if that is actually better than what you have now
[13:00] <timp> hmm.. a Repeater in a ListModel may not work, but some functional way of generating the model would be useful here.
[13:02] <timp> wait a sec.. what does aQuery return? if it is the list of tracks (and not list of playlists) then you don't need a repeater
[13:02] <nik90> timp: I tried using a Multivalue list Item from the SDK which accepts a list. However when I used that I got a output stating TypeError: Cannot read property 'length' of undefined
[13:03] <nik90> http://paste.ubuntu.com/6703066/
[13:05] <nik90> timp: would you expect two queries, one for playlist list and the other for playlist track info?
[13:07] <nik90> Each document stores the playlist name and its associated tracks. As an analogy, think of a task and its tags in a document. I wish to display both the task info like name and its associated tags in the listview
[13:07] <nik90> Which is why I have one query which retrieves the playlist name and its tracks
[13:11] <timp> I'm not sure what your query returns, but if it has all the tracks (ordered by playlist), you can use that as a model.
[13:11] <timp> then the tracks are the items in the listview, and playlist names the sections
[13:12] <timp> (it may be more complicated than what I'm saying, depending on what the queries do exactly. I didn't check that in detail)
[13:17] <nik90> timp: oh yeah I totally forget to use section headers. But yeah in essence that's what I want to achieve. Have section headers as playlist names, and results and track info
[13:18] <nik90> let me see if I can implement that
[13:18] <kalikiana_> nik90: diff to avoid the repeater http://paste.ubuntu.com/6703112/ for testing I used JSON.stringify which is very good for debugging - I think there's either a bug causing name to be missing or I'm overlooking a typo in my changes
[13:18] <kalikiana_> but that would be what you intended functionally?
[13:18] <kalikiana_> minus the missing name, that is
[13:19] <nik90> kalikiana_: yup.
[13:20] <nik90> My intention was to specify contents.something and be able to display that easily
[13:20] <nik90> without having to resort to repeater in a listview
[13:20] <kalikiana_> my guess is you encountered an 'undefined' for a similar reason as I stumbled on, somehow a missing value, which in javascript becomes a catch-all undefined
[13:21] <nik90> kalikiana_: I don't thinkn there is a typo causing name to be missing. I have that issue all day yesterday.
[13:21] <nik90> the moment I change that to just playlist.tracks in the index expression, things work out
[13:22] <kalikiana_> you mean not using name?
[13:23] <kalikiana_> I think something might be wrong in Query as it doesn't include name in the result/ contents
[13:24] <nik90> I mean when the index expression is ["playlist.name", "playlist.tracks"], the name is displayed. But if I change that to ["playlist.name", "playlist.tracks.file", "playlist.tracks.title"], then name becomes undefined
[13:25] <kalikiana_> interesting. if I do that name is there but nothing else
[13:26] <nik90> exactly
[13:27] <kalikiana_> so somehow they kick each other out. even if I change the order same reltion
[13:27] <kalikiana_> *relation
[13:29] <nik90> yup..but this only happens with a multiple level list. Since if you have other properties like playlist description in the same level as the playnist name, they are both available
[13:34] <timp> nik90: cool. Are you writing a full app, or is it intended to demo the u1 functionality only?
[13:34] <timp> the u1db bindings look very interesting, but I haven't had time yet to check it out.
[13:35] <nik90> timp: only demo purposes..but my full intention is to use u1db in clock-app. Hence this is a preparation for it :)
[13:36] <timp> nik90: okay. always good to have some demo programs :) Personally I prefer that over long tutorials when learning something new.
[13:37] <timp> it teaches you 90% of what you need to know in 10% of the time :)
[13:37] <nik90> timp: +1 but only if the demo program has comments. otherwise it becomes rather unclear what  the code does.
[13:38] <nik90> timp: in the u1db-qt examples, examply 5 and 6 have no comments making it guesswork to see what they are for.
[13:42] <nik90> timp, kalikiana_: I tried using a section header as suggested, however it outputs that contents is not defined. -> http://paste.ubuntu.com/6703235/
[13:47] <kalikiana_> actually I've never used section stuff - nik90, on a guess try model.contents.name
[13:47] <kalikiana_> but not sure if it is actually a delegate or how it behaves
[13:48] <nik90> kalikiana_: it behaves exactly like a delegate. so passing contents.name should work like normal.
[13:49] <kalikiana_> nik90: oh, actually could you be hitting the same bug as before with name missing?
[13:50] <nik90> kalikiana_: I thought so. But after changing the index expression back to the orignal where contents.name should work but it doesnt with a section header.
[13:51] <nik90> but that's fine.
[13:51] <nik90> Should I report a bug about the name being undefined issue?
[13:52] <kalikiana_> yes please file a bug for the name. if possible mention the weird relation with the tracks, that has to be a hint at the underlying bug
[13:52] <kalikiana_> I'm trying the section stuff now
[13:57] <kalikiana_> nik90: so… what exactly should the section header use? why is there text: as well as the section.property?
[13:58] <kalikiana_> not sure if I'm using it right
[13:59] <nik90> kalikiana_: section property defines the text that will be shown in the section header. In our case that would be the playlist name.
[13:59] <kalikiana_> but it doesn't work if I put "foo" in there
[14:00] <kalikiana_> by which I mean I don't see anything besides the list
[14:01] <nik90> http://qt-project.org/doc/qt-5.0/qtquick/qml-qtquick2-listview.html#section.criteria-prop
[14:02] <nik90> or better here is an example http://qt-project.org/doc/qt-5.0/qtquick/views-listview-sections-qml.html
[14:05] <jdstrand> so, I wrote a small qml app for myself that uses a column and a few rows that each has a Label and a TextField. it works fine except that in the last TextField, when I click in it, the OSK covers it up. It seems that the app should adjust to slide up over the OSK, but it doesn't automatically. I've tried wrapping it in a Flickable, but it doesn't work.
[14:06] <jdstrand> I've seen this in a number of other apps too. what is the correct technique to have the app adjust to when the osk pops up?
[14:07] <nik90> jdstrand: http://nik90.com/ubuntu-touch-keyboard-tricks/
[14:07] <timp> nik90: section.property: "name" works?
[14:07] <nik90> jdstrand: short summary, you need to set anchorToKeyboard: true
[14:07] <nik90> timp: no :/
[14:08] <nik90> timp: I tried model.contents.name, name, ccontents.name
[14:08] <nik90> reallys strange
[14:08] <timp> nik90: the example http://qt-project.org/doc/qt-5.0/qtquick/views-listview-sections-qml.html uses a string to define the section.property
[14:09] <jdstrand> nik90: cool, thanks!
[14:09]  * jdstrand tries
[14:11] <nik90> timp: I think they made a mistake. Since I use the section feature in the clock app -> http://bazaar.launchpad.net/~ubuntu-clock-dev/ubuntu-clock-app/trunk/view/head:/clock/WorldClock.qml
[14:11] <nik90> timp: you essentially give it a model property so that you have multiple section headers
[14:13] <nik90> timp: actually you are correct! My mistake
[14:13] <nik90> in the clock app, I also use a string
[14:17] <kalikiana_> nik90: this doesn't show up at all and the delegate isn't even evaluated if I put a console.log in there http://paste.ubuntu.com/6703381/
[14:17] <kalikiana_> by the example it should be used like that
[14:20] <nik90> kalikiana_: I realise that.. no worries, I will try to figure this out later
[14:22] <kalikiana_> okay
[14:24] <timp> kalikiana_: can you see what's wrong here? https://jenkins.qa.ubuntu.com/job/ubuntu-ui-toolkit-trusty-amd64-ci/458/console
[14:24] <timp> poor jp getting all the failure logs ;p
[14:24] <kalikiana_> timp: components::DatePickerAPI::test_1_changeDateToNextMonth() Uncaught exception: Cannot read property 'children' of null
[14:24] <kalikiana_>    Loc: [(0)]
[14:25] <timp> ah yes I see now.
[14:25] <timp> searching for "fail!" is a lot handier than going through all the "fail" instances in the file
[14:25] <mhall119> jdstrand: did you get the help you needed?
[14:25] <timp> kalikiana_: weird. I got that from the headerInit MR... nothing to do with DatePicker.
[14:26] <jdstrand> mhall119: yes, thanks :)
[14:29] <nik90> kalikiana_: https://bugs.launchpad.net/u1db-qt/+bug/1266478
[14:29] <ubot2> Launchpad bug 1266478 in U1DB Qt/ QML "Query model doesn't work properly with a multilevel document list" [Undecided,New]
[14:30] <nik90> kalikiana_: can we expect bug fixes for u1db-qt since it seems like all contributors have moved to ui-toolkit?
[14:33] <kalikiana_> nik90: I am trying to make some time. I think it will be worth a lot to have you actively giving feedback, in the past I sometimes had to "hunt down" people who had problems but didn't report
[14:34] <nik90> kalikiana_: yes I can do that..well that's the least I can do :)
[14:35] <timp> nik90, kalikiana_ an example program (as small as possible) that shows the bug included in the bug report is always useful :) I guess for this one, it would need to include a tiny db
[14:35] <nik90> timp: I will innclude a sample program where you just need to download the file and run it to see the bug. Good point
[14:36] <timp> nik90: awesome. that eliminates the need to hunt down people to figure out how to reproduce the bug :)
[14:37] <nik90> kalikiana_: I hope those bug fixes propogate to a ppa for easy testing and I will rally people to do the bug reporting and testing to help you.
[14:48] <nik90> timp, kalikiana_: added test program.
[14:48] <nik90> to bug report
[14:52] <nik90> mhall119: I have another tutorial which shows how to add content to the ubuntu welcome screen infographics. -> http://nik90.com/adding-infographics-to-ubuntu-phone/
[14:52] <nik90> mhall119: you think that would be good for the tutorial page?
[14:56] <mhall119> nik90: I'll have to check with some people, last I heard we didn't want to recommend that API just yet
[14:58] <nik90> mhall119: oh. I wasn't aware of that
[14:59] <mhall119> nik90: it's been a while, so it may have changed
[14:59] <mhall119> I don't even remember the reasons for it, tbh
[14:59] <jdstrand> nik90: it worked great. thanks!
[15:00] <nik90> jdstrand: u r welcome :-)
[15:00] <nik90> mhall119: no worries. Although the core apps like music are already using it now
[15:01] <nik90> and clock will use it soon enough to indicate the alarms
[15:01] <mhall119> nik90: that's fine, I think, I'm just not sure if non-core-apps should be using it yet
[15:02] <nik90> ok
[15:02] <mhall119> nik90: it may have been that we didn't have the apparmor policy back then, IIRC
[15:04] <nik90> true
[15:25] <jdstrand> nik90, mhall119: fyi, I just learned that Qt.inputMethod.hide() will hide the osk. This might be a good addition to http://developer.ubuntu.com/apps/qml/tutorial/ubuntu-on-screen-keyboard-tricks/. Eg, I used nik90's method to always show the button. Then I use in onClicked for that button: Qt.inputMethod.hide()
[15:28] <mhall119> thanks jdstrand
[16:01] <nik90> jdstrand: ah thnx that is a useful method.
[16:47] <mhall119> new app dev video: http://www.youtube.com/watch?v=8Hhtd2JUBZo&feature=youtu.be
[20:23] <ahayzen> nik90, thanks for the email :)
[20:24] <nik90> ahayzen: :)
[20:24]  * ahayzen subscribes to the bugs
[20:24] <nik90> ahayzen: I think those bugs are not critical stoppers for the music-app
[20:25] <nik90> since you wouldn't be anyway showing both the playlist name and tracks at the same time?
[20:25] <ahayzen> nik90, well the recent list is pretty much work other than the sorting
[20:25] <ahayzen> nik90, i need to filter the tracks by a playlist name :/
[20:26] <nik90> true, but why dont you use a index for playlist names alone where you can do the playlist name sorting
[20:26] <nik90> with that you can get the docID and use that to retrieve the tracks separately?
[20:26] <nik90> we have the issue when we try to combine both of them in a single query
[20:27] <ahayzen> nik90, doesn't it only give u the first track of each though IIRC?
[20:27] <nik90> this is just a workaround. Obviously the fix would make life easier but until then a temp solution would suffice
[20:27] <nik90> nope using a repeater, I was able to show all the tracks
[20:27] <ahayzen> nik90, yeah but then the swipeDelete/reordering is a nightmare ;)
[20:28] <nik90> ahayzen: oh yeah :P
[20:28] <nik90> btw were you able to achieve reordering in a listview?
[20:29] <nik90> normally...(no reference to u1db)
[20:29] <ahayzen> nik90, hehe we have a custom implementation
[20:29] <ahayzen> nik90, i'm working on one which is portable for any listview :)
[20:29] <nik90> nice!
[20:29] <ahayzen> nik90, thts the plan anyway :P
[20:30] <ahayzen> nik90, just need some patches to land in the UITK first
[20:30] <nik90> good luck!
[20:31] <ahayzen> thanks lol
[20:31] <nik90> I meant that sincerely :) it will benefit other devs as well
[20:31] <ahayzen> hopefully it will
[20:38] <labsin> What's the best way to package my libs with my click app? If I link my executable to shared libraries that aren't in the default images, do I need to copy and relink them, or can I use some CMake magic?
[20:39] <mhall119> labsin: you'll need the libs in your .click package, yes
[20:39] <mhall119> labsin: there's still some work underway to support multi-arch libs, so it may not fully work just yet
[20:39] <labsin> mhall119, I saw the commit just 2h ago
[20:40] <labsin> But I was wondering if I really need to copy all my libs to lest say ./lib and then link them, or do you know any convenient ways?
[20:45] <mhall119> I believe the work being done will support a specific folder structure, and automatically allow linking to libs in those
[20:46] <mhall119> click apps are all launched by an upstart process, which will be capable of adding the right library folder to use for linking at runtime
[20:54] <nik90> balloons: ping
[20:55] <balloons> nik90, pong
[20:55] <balloons> I know I have a pending review for you.. it popped up on the list of leftovers :-)
[20:55] <nik90> balloons: yup indeed :)
[20:55] <nik90> balloons: I fixed the stuff we discussed before
[20:57] <balloons> I'll try and review today.. working on getting my devices updated
[20:57] <balloons> excellent.. so it should be quick and easy.. does it pass on your nexus 4?
[20:57] <nik90> It passed on my desktop :P
[20:58] <nik90> balloons: you are going to angry if I told you I have still not figured the exact process on testing on phone
[20:58]  * nik90 ducks
[20:59] <balloons> nik90, ohh boy, lol
[20:59] <balloons> we should fix that
[21:02] <nik90> balloons: btw is https://bugs.launchpad.net/ubuntu-clock-app/+bug/1256864 still valid?
[21:02] <ubot2> Launchpad bug 1256864 in Ubuntu Clock App "test_alarm.TestAlarm.test_longpress_new_alarm fails on #40 on mako" [High,Confirmed]
[21:02] <nik90> if yes, can we move it to the mir project since it isnt a clock app isue?
[21:02] <nik90> issue*
[21:05] <balloons> nik90, ohh man.. boo on me for not putting the bug number in there
[21:08] <nik90> yay one less clock bug :P
[22:41] <nik90> balloons: the continous integration failed
[22:41] <nik90> with a message Unapproved changes made after approval.
[22:41] <balloons> ahh funzies
[22:41] <nik90> But I did not make any changes
[22:43] <balloons> I approved, should merge now
[22:52] <nik90> thnx