=== shuduo|afk is now known as shuduo === JamesTait is now known as Guest84209 === Guest84209 is now known as JamesTait === john-mca` is now known as john-mcaleely [11:05] nik90: ping [11:53] kalikiana_: pong === _salem is now known as salem_ [12:18] nik90: ah there you are [12:18] I just replied to the list [12:18] maybe have a look at the reply first [12:19] kalikiana_: thnx. looking at the email now [12:25] 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] kalikiana_: so with regards to index, while specifying the expression is there a specific order we must use? [12:27] also does it expect the expressions to be of the same size? [12:28] nik90: in general the query needs to list the same expressions defined in the index [12:28] if you want to search foobar, it needs to be in the index [12:29] okay, so in essence an index provides the data, while queries uses them to filter and pass it on as a model. [12:31] yep [12:32] 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] 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] 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] ah right. in qml you can only do it "by hand" like copying the model and using move() with your own algorithm [12:40] hmm do you think this would make sense as a u1db feature? [12:41] nik90: maybe indirectly this could be solved through transformation functions [12:42] at the bottom of this mock api https://launchpadlibrarian.net/149329873/queryfuncs.qml [12:42] that's pretty much a way of sorting [12:44] 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] 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] can you take a look and let me know if I am doing stuff correctly in the listview? [12:46] I feel like I am complicating matters by using a repeater inside a listivew [12:48] nik90: why would you do that instead of using a ListModel? [12:50] timp: because strangely enough, when I specified contents.tracks, it threw a undefined output. [12:50] 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] 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] I ran it without any modifcation and the output is rather bizarre [12:52] I expect it to show 7 outputs in the listview, but it only shows 3. [12:52] can you confirm that pls? [12:53] timp: I am open to suggestions to simplifying that. I feel like I am over complicating it [12:55] nik90: do you have a link (http?) of your code on launchpad? I can have a quick look [12:55] timp: http://bazaar.launchpad.net/~nik90/+junk/u1db-sample-app/view/head:/u1db.qml [12:57] nik90: thanks [12:57] nik90: perhaps it is possible to create a ListModel and put the repeater inside that [12:57] I'm not sure if that is actually better than what you have now [13:00] hmm.. a Repeater in a ListModel may not work, but some functional way of generating the model would be useful here. [13:02] 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] 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] http://paste.ubuntu.com/6703066/ [13:05] timp: would you expect two queries, one for playlist list and the other for playlist track info? [13:07] 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] Which is why I have one query which retrieves the playlist name and its tracks [13:11] 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] then the tracks are the items in the listview, and playlist names the sections [13:12] (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] 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] let me see if I can implement that [13:18] 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] but that would be what you intended functionally? [13:18] minus the missing name, that is [13:19] kalikiana_: yup. [13:20] My intention was to specify contents.something and be able to display that easily [13:20] without having to resort to repeater in a listview [13:20] 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] kalikiana_: I don't thinkn there is a typo causing name to be missing. I have that issue all day yesterday. [13:21] the moment I change that to just playlist.tracks in the index expression, things work out [13:22] you mean not using name? [13:23] I think something might be wrong in Query as it doesn't include name in the result/ contents [13:24] 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] interesting. if I do that name is there but nothing else [13:26] exactly [13:27] so somehow they kick each other out. even if I change the order same reltion [13:27] *relation [13:29] 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] nik90: cool. Are you writing a full app, or is it intended to demo the u1 functionality only? [13:34] the u1db bindings look very interesting, but I haven't had time yet to check it out. [13:35] timp: only demo purposes..but my full intention is to use u1db in clock-app. Hence this is a preparation for it :) [13:36] nik90: okay. always good to have some demo programs :) Personally I prefer that over long tutorials when learning something new. [13:37] it teaches you 90% of what you need to know in 10% of the time :) [13:37] timp: +1 but only if the demo program has comments. otherwise it becomes rather unclear what the code does. [13:38] timp: in the u1db-qt examples, examply 5 and 6 have no comments making it guesswork to see what they are for. [13:42] 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] actually I've never used section stuff - nik90, on a guess try model.contents.name [13:47] but not sure if it is actually a delegate or how it behaves [13:48] kalikiana_: it behaves exactly like a delegate. so passing contents.name should work like normal. [13:49] nik90: oh, actually could you be hitting the same bug as before with name missing? [13:50] 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] but that's fine. [13:51] Should I report a bug about the name being undefined issue? [13:52] 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] I'm trying the section stuff now [13:57] nik90: so… what exactly should the section header use? why is there text: as well as the section.property? [13:58] not sure if I'm using it right [13:59] 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] but it doesn't work if I put "foo" in there [14:00] by which I mean I don't see anything besides the list [14:01] http://qt-project.org/doc/qt-5.0/qtquick/qml-qtquick2-listview.html#section.criteria-prop [14:02] or better here is an example http://qt-project.org/doc/qt-5.0/qtquick/views-listview-sections-qml.html === alex_abreu is now known as alex-abreu [14:05] 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] 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] jdstrand: http://nik90.com/ubuntu-touch-keyboard-tricks/ [14:07] nik90: section.property: "name" works? [14:07] jdstrand: short summary, you need to set anchorToKeyboard: true [14:07] timp: no :/ [14:08] timp: I tried model.contents.name, name, ccontents.name [14:08] reallys strange [14:08] 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] nik90: cool, thanks! [14:09] * jdstrand tries [14:11] 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] timp: you essentially give it a model property so that you have multiple section headers [14:13] timp: actually you are correct! My mistake [14:13] in the clock app, I also use a string [14:17] 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] by the example it should be used like that [14:20] kalikiana_: I realise that.. no worries, I will try to figure this out later [14:22] okay [14:24] kalikiana_: can you see what's wrong here? https://jenkins.qa.ubuntu.com/job/ubuntu-ui-toolkit-trusty-amd64-ci/458/console [14:24] poor jp getting all the failure logs ;p [14:24] timp: components::DatePickerAPI::test_1_changeDateToNextMonth() Uncaught exception: Cannot read property 'children' of null [14:24] Loc: [(0)] [14:25] ah yes I see now. [14:25] searching for "fail!" is a lot handier than going through all the "fail" instances in the file [14:25] jdstrand: did you get the help you needed? [14:25] kalikiana_: weird. I got that from the headerInit MR... nothing to do with DatePicker. [14:26] mhall119: yes, thanks :) [14:29] kalikiana_: https://bugs.launchpad.net/u1db-qt/+bug/1266478 [14:29] Launchpad bug 1266478 in U1DB Qt/ QML "Query model doesn't work properly with a multilevel document list" [Undecided,New] [14:30] kalikiana_: can we expect bug fixes for u1db-qt since it seems like all contributors have moved to ui-toolkit? [14:33] 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] kalikiana_: yes I can do that..well that's the least I can do :) [14:35] 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] 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] nik90: awesome. that eliminates the need to hunt down people to figure out how to reproduce the bug :) [14:37] 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] timp, kalikiana_: added test program. [14:48] to bug report [14:52] 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] mhall119: you think that would be good for the tutorial page? [14:56] nik90: I'll have to check with some people, last I heard we didn't want to recommend that API just yet [14:58] mhall119: oh. I wasn't aware of that [14:59] nik90: it's been a while, so it may have changed [14:59] I don't even remember the reasons for it, tbh [14:59] nik90: it worked great. thanks! [15:00] jdstrand: u r welcome :-) [15:00] mhall119: no worries. Although the core apps like music are already using it now [15:01] and clock will use it soon enough to indicate the alarms [15:01] nik90: that's fine, I think, I'm just not sure if non-core-apps should be using it yet [15:02] ok [15:02] nik90: it may have been that we didn't have the apparmor policy back then, IIRC [15:04] true === matiasb1 is now known as matiasb [15:25] 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] thanks jdstrand === charles_ is now known as charles [16:01] jdstrand: ah thnx that is a useful method. === sarnold_ is now known as sarnold === gatox is now known as gatox_lunch [16:47] new app dev video: http://www.youtube.com/watch?v=8Hhtd2JUBZo&feature=youtu.be === marcoceppi_ is now known as marcoceppi === gatox_lunch is now known as gatox === boiko_ is now known as boiko [20:23] nik90, thanks for the email :) [20:24] ahayzen: :) [20:24] * ahayzen subscribes to the bugs [20:24] ahayzen: I think those bugs are not critical stoppers for the music-app [20:25] since you wouldn't be anyway showing both the playlist name and tracks at the same time? [20:25] nik90, well the recent list is pretty much work other than the sorting [20:25] nik90, i need to filter the tracks by a playlist name :/ [20:26] true, but why dont you use a index for playlist names alone where you can do the playlist name sorting [20:26] with that you can get the docID and use that to retrieve the tracks separately? [20:26] we have the issue when we try to combine both of them in a single query [20:27] nik90, doesn't it only give u the first track of each though IIRC? [20:27] this is just a workaround. Obviously the fix would make life easier but until then a temp solution would suffice [20:27] nope using a repeater, I was able to show all the tracks [20:27] nik90, yeah but then the swipeDelete/reordering is a nightmare ;) === wendar_ is now known as wendar [20:28] ahayzen: oh yeah :P [20:28] btw were you able to achieve reordering in a listview? [20:29] normally...(no reference to u1db) [20:29] nik90, hehe we have a custom implementation [20:29] nik90, i'm working on one which is portable for any listview :) [20:29] nice! [20:29] nik90, thts the plan anyway :P [20:30] nik90, just need some patches to land in the UITK first [20:30] good luck! [20:31] thanks lol [20:31] I meant that sincerely :) it will benefit other devs as well [20:31] hopefully it will [20:38] 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] labsin: you'll need the libs in your .click package, yes [20:39] labsin: there's still some work underway to support multi-arch libs, so it may not fully work just yet [20:39] mhall119, I saw the commit just 2h ago [20:40] 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] I believe the work being done will support a specific folder structure, and automatically allow linking to libs in those [20:46] 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] balloons: ping [20:55] nik90, pong [20:55] I know I have a pending review for you.. it popped up on the list of leftovers :-) [20:55] balloons: yup indeed :) [20:55] balloons: I fixed the stuff we discussed before [20:57] I'll try and review today.. working on getting my devices updated [20:57] excellent.. so it should be quick and easy.. does it pass on your nexus 4? [20:57] It passed on my desktop :P [20:58] 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] nik90, ohh boy, lol [20:59] we should fix that [21:02] balloons: btw is https://bugs.launchpad.net/ubuntu-clock-app/+bug/1256864 still valid? [21:02] Launchpad bug 1256864 in Ubuntu Clock App "test_alarm.TestAlarm.test_longpress_new_alarm fails on #40 on mako" [High,Confirmed] [21:02] if yes, can we move it to the mir project since it isnt a clock app isue? [21:02] issue* [21:05] nik90, ohh man.. boo on me for not putting the bug number in there [21:08] yay one less clock bug :P [22:41] balloons: the continous integration failed [22:41] with a message Unapproved changes made after approval. [22:41] ahh funzies [22:41] But I did not make any changes [22:43] I approved, should merge now [22:52] thnx === salem_ is now known as _salem