=== chriadam|away is now known as chriadam | ||
dupingping | how to contigure window reponse timeout? | 01:49 |
---|---|---|
=== Ursinha is now known as Ursinha-afk | ||
=== chriadam is now known as chriadam|away | ||
=== Guest38143 is now known as JamesTait | ||
=== JamesTait is now known as Guest22694 | ||
=== Guest22694 is now known as JamesTait | ||
JamesTait | Good morning all; happy Digital Learning Day! :-D | 09:13 |
mzanetti_ | WebbyIT: o/ | 09:17 |
=== lool- is now known as lool | ||
=== timppa_ is now known as timppa | ||
WebbyIT | mzanetti_, welcome back o/ | 10:16 |
mzanetti_ | WebbyIT: hey. thanks | 10:17 |
=== MacSlow is now known as MacSlow|lunch | ||
nik90 | aquarius: Would you have an idea on how to remove duplicate entries in a u1db listview? | 12:07 |
nik90 | aquarius: or even better, when I use putDoc() I like to first check if a duplicate entry first exists. | 12:07 |
aquarius | nik90, that depends on why you're getting duplicate entries | 12:30 |
nik90 | aquarius: let me explain the use case :) | 12:30 |
nik90 | aquarius: a user adds a world location. I need to detect if the user has already added it before. If he has, then it shouldn't be saved to u1db again | 12:31 |
nik90 | aquarius: that said, I may have found a solution. Can I run it by you quick? | 12:31 |
aquarius | nik90, for that, I'd specify the docId as being the location. | 12:31 |
aquarius | if you *have* a genuinely unique key for your data, and you want to not have dupes, then use the unique key as the docId. | 12:32 |
nik90 | aquarius: ah, so you want to set the docId during the putDoc() functio | 12:32 |
aquarius | *nod* | 12:32 |
nik90 | aquarius: and then how do I check for duplicates in that case? | 12:32 |
aquarius | if you do not care about uniqueness, or you don't have a way of ensuring it, then let u1db choose docids for you. | 12:32 |
nik90 | aquarius: or does u1db automatically prevent duplicate docId by showing an error | 12:33 |
aquarius | checking for dupes: if you try and putDoc with a docId that's already in the DB, it'll throw an error. | 12:33 |
ahayzen | nik90, can u not just check how many results are returned from a query? | 12:33 |
aquarius | If you want to *overwrite* that old doc with the new one, then trap that error, fetch the old doc again, and call putDoc with the new contents and the revision. | 12:33 |
nik90 | ahayzen: I could, but I got to create a query just for that. I was wondering if there was a easier way. | 12:34 |
aquarius | ahayzen, you could do that, but that means that every putDoc has to have a getDoc before it, which is inefficient :) | 12:34 |
nik90 | exactly | 12:34 |
aquarius | let U1DB take the strain. | 12:34 |
ahayzen | ah i see it errors :) | 12:34 |
* ahayzen takes note for his prototypes | 12:34 | |
nik90 | aquarius: thanks a lot.. that makes more sense | 12:34 |
* nik90 is delighted...finally got rid of LocalStorage throughout the clock app :) | 12:35 | |
ahayzen | \o/ | 12:35 |
aquarius | er!! | 12:36 |
aquarius | putDoc doesn't take a revision id | 12:36 |
aquarius | that's not right. | 12:36 |
aquarius | kalikiana_, ping. Why doesn't putDoc take a revision? That's critical to making it work. | 12:36 |
aquarius | kalikiana_, I should not be able to putDoc to an existing docId without knowing the existing doc's revision | 12:37 |
aquarius | otherwise I'll blithely overwrite changes, conflicts can't happen, and syncs won't work. | 12:37 |
nik90 | but then http://developer.ubuntu.com/api/qml/sdk-1.0/U1DB.Database/#putDoc says it will return -1 if there is a failure | 12:38 |
nik90 | aquarius: on testing your solution, it works. On trying to add a duplicate entry (docId) it doesn't add it to U1db. | 12:41 |
nik90 | aquarius: I did isDuplicateCheck = db.putDoc({ "worldlocation": { "rawOffSet": diff, "longitude": longitude, "latitude": latitude }}, cityName) | 12:41 |
nik90 | console.log(isDuplicateCheck) | 12:41 |
aquarius | nik90, yeah, but you should be able to overwrite a document *if* you know its revision ID | 12:42 |
aquarius | but u1db-qt doesn't seem to expose that, nor does it allow you to supply it to putDoc | 12:42 |
aquarius | that's a pretty serious bug :( | 12:42 |
nik90 | aquarius: ok, for now I can do getDoc() and then manually update it. correct? | 12:42 |
nik90 | as a workaround | 12:42 |
aquarius | at the moment you can work around it by doing things the inefficient ahayzen way, yeah :) | 12:42 |
aquarius | but this will be terrible when syncing works, because without revision IDs you will lose data when writing after a sync | 12:43 |
nik90 | ahayzen: what errors do you see when you added a duplicate entry? | 12:51 |
=== beuno_ is now known as beuno | ||
nik90 | ahayzen: for me I dont see errors but u1db nonetheless does not allow duplicate entries | 12:52 |
nik90 | ahayzen: but I still like to detect the error and display a useful console message then | 12:53 |
=== Ursinha-afk is now known as Ursinha | ||
kalikiana_ | aquarius: nik90: I tend to think putDoc really is for new documents, if you want to read changes or edit you'd have a Document | 13:25 |
=== MacSlow|lunch is now known as MacSlow | ||
kalikiana_ | this is QML, you're not expected to call tons of javascript | 13:25 |
mzanetti_ | WebbyIT: hey, you approved this one: https://code.launchpad.net/~bobo-324/reminders-app/fix-1273110/+merge/204383 | 13:29 |
mzanetti_ | WebbyIT: 2 things: it doesn't follow the coding style and doesn't listen to the signal properly | 13:29 |
mzanetti_ | WebbyIT: it doesn't check if the noteChanged signal is actually from the note we're expecting it to be | 13:29 |
mzanetti_ | WebbyIT: I've fixed stuff in here: https://code.launchpad.net/~mzanetti/reminders-app/prefetch-notes/+merge/204905 | 13:30 |
mzanetti_ | please review when you have some time | 13:30 |
=== mardy_ is now known as mardy | ||
aquarius | kalikiana_, that means that if I want to add a document and I do not know whether it's already in the database, I *have* to getDoc first. Always. For every single putDoc I ever do. | 13:46 |
aquarius | kalikiana_, otherwise I may unknowingly overwrite data in the DB. | 13:46 |
mzanetti_ | dpm: hey. is the reminders meeting happening today? | 13:47 |
dpm | hey mzanetti_, I'm sitting next to popey in Orlando, let us have a look at the calendar... | 13:48 |
mzanetti_ | popey: o/ | 13:48 |
* popey waves | 13:49 | |
dpm | mzanetti_, let's do the meeting, but on IRC | 14:00 |
mzanetti_ | ok | 14:00 |
nik90 | kalikiana_: I concur with aquarius that it is difficult to know while using putDoc() if the document is new or an existing one. | 14:02 |
nik90 | kalikiana_: in which case, we will have to use getDoc() everytime we use putDoc() just to check if it is an actual new document | 14:03 |
ybon | popey: I've pushed a new version of POI management, if you have some time to test :) (ref: https://bugs.launchpad.net/osmtouch/+bug/1272789 ) | 14:04 |
ubot2` | Launchpad bug 1272789 in OSMTouch "Use bbox instead of "radius around center" for POIs" [Undecided,New] | 14:04 |
aquarius | kalikiana_, this is what revision IDs are *for*. And they are critical when syncs happen; you may putDoc thinking "I'm sure nothing has changed about that document" when actually it has changed on another machine and been synced. The U1DB putdoc API requires a revision ID for a reason :) | 14:04 |
ybon | Basically, we are using bbox now, and automatically fetch new POIs when you zoom or pan the map | 14:04 |
=== mzanetti_ is now known as mzanetti | ||
popey | ybon: nice | 14:13 |
WebbyIT | mzanetti, done. I'll be more careful next time! | 14:53 |
mzanetti | WebbyIT: thanks :) | 14:53 |
m-b-o | hi dpm, any news on twc? | 15:00 |
dpm | hi m-b-o, not yet, TWC are reviewing our proposal to publish the docs for the API calls that we need, but believe me you'll be the first one to know when we get an answer from them | 15:02 |
dpm | m-b-o, and then I'll be dancing on the table :) | 15:02 |
m-b-o | dpm: :) | 15:02 |
* dpm hugs m-b-o :) | 15:02 | |
m-b-o | dpm: no problem, but Ill start add new features branches on top of the twc branch | 15:03 |
dpm | m-b-o, I'd like to keep that branch clean in case we need to do any changes after twc comes back to us. Do you think it'd be possible to base the new features on trunk instead? | 15:05 |
dpm | mzanetti, do you want to join #ubuntu-touch-meeting for a quick meeting on Reminders? | 15:05 |
m-b-o | dpm: ok, should work too. You know that we're using only one specific api method for twc? | 15:08 |
m-b-o | dpm: the one with aggregated data for mobile (if it's possible) | 15:09 |
dpm | m-b-o, yeah, I looked at the code and the docs. | 15:09 |
m-b-o | dpm: fine :) | 15:09 |
dpm | m-b-o, I like the way you abstracted the backends, very neat job :) | 15:10 |
m-b-o | dpm: thanks :) Somewhere on my hard drive there is some (not finished) code for yr.no, btw... | 15:12 |
mzanetti | WebbyIT: may I ask you to do another review for me? | 15:35 |
WebbyIT | mzanetti, yes, sure. I've just finished a lesson on coursera and I'm going to review all reminders-app MR :-) | 15:35 |
mzanetti | WebbyIT: awesome :) what lessons are you taking? | 15:36 |
WebbyIT | mzanetti, Cryptography I by Dan Boneh | 15:36 |
=== gatox is now known as gatox_lunch | ||
nik90 | Requesting review of https://code.launchpad.net/~nik90/ubuntu-clock-app/transition-worldclock-u1db/+merge/204967 | 15:44 |
kalikiana_ | aquarius: I'm not disagreeing with that. just I would use putDoc for new documents, and later set its id on a Document which handles the revisioning transparently | 15:47 |
aquarius | kalikiana_, then you provide no way to add a doc which *might* exist, without checking first. | 15:48 |
kalikiana_ | aquarius: it cannot exist if I just do putDoc({contents}) | 15:48 |
aquarius | kalikiana_, ya, but then you get duplicates. | 15:48 |
kalikiana_ | if I have say "new recipe" | 15:48 |
aquarius | kalikiana_, see nik90's use case | 15:48 |
kalikiana_ | well, it's up to me anyway to know what the same recipe is | 15:48 |
kalikiana_ | aquarius: nik90 so what's the specific use case here? | 15:49 |
nik90 | kalikiana_: Alright so the clock app allows users to add world locations. I need to prevent them from adding the same one again. | 15:50 |
kalikiana_ | nik90: how do you know it's the same if it's custom locations? | 15:50 |
nik90 | kalikiana_, aquarius: As of now, I do not check if there is a duplicate or not since putDoc() automatically does not allowing adding documents with the same docId | 15:50 |
nik90 | kalikiana_: by the city name | 15:51 |
kalikiana_ | nik90: so the user types "berlin" and that becomes the docId? | 15:51 |
nik90 | kalikiana_: I compare the city name the user entered with their list of saved city names | 15:51 |
nik90 | kalikiana_: yup that's what I did now | 15:51 |
nik90 | kalikiana_: I used docId to store the type "berlin" to avoid duplicate documents (cities) | 15:51 |
kalikiana_ | nik90: that sounds wrong to me. I wouldn't expect you to specify a docId at all for arbitrary user input | 15:52 |
kalikiana_ | nik90: though to clarify, does the user define the timezone? | 15:52 |
nik90 | kalikiana_: at the begining, I didnt do that. I allowed u1db to choose its own docId. However I couldnt find a way to detect duplicates then | 15:52 |
nik90 | kalikiana_: no they just choose the city, the rest (timezone, latitude and longitude) is done by the clock app | 15:53 |
kalikiana_ | nik90: so if the data is all constant, why not just save a list of cities? | 15:53 |
nik90 | kalikiana_: because each city has its own lat, long and timezoneID | 15:54 |
kalikiana_ | you might not want to store documents since they will get out of date | 15:54 |
aquarius | kalikiana_, the user adds a doc for each city they enter. They shouldn't add the same city twice. The best way to model this in U1DB is to use the unique data (here, the city) *as* the docId. However, u1db-qt doesn't properly support that proper way of doing it because putDoc doesn't take revisions. This is what revisions are for. | 15:54 |
nik90 | kalikiana_: so right now I have each document of the strcuture { worldclock: { lat: 200, lng: 200, timezoneID: "something" } } | 15:55 |
kalikiana_ | nik90: I mean: if the user merely picks from a list of preset data, and they cannot edit it, you probably shouldn't store that | 15:55 |
kalikiana_ | on the ther hand if they could edit the data, it would no longer be trivial what a dupe actually is | 15:55 |
kalikiana_ | to me those are very different use cases | 15:56 |
nik90 | kalikiana_: I use u1db to store the cities that the user has saved (chosen) and not the preset list. The preset list is in itself a xml model | 15:56 |
nik90 | kalikiana_: the user cannot change/edit the data (lat, lng) but they can delete the cities they saved | 15:57 |
nik90 | kalikiana_: here is the MP which does the transition -> https://code.launchpad.net/~nik90/ubuntu-clock-app/transition-worldclock-u1db/+merge/204967 | 15:57 |
nik90 | kalikiana_: try it out for yourself to see what I mean | 15:58 |
kalikiana_ | so there is no risk of conflict, it doesn't even matter if putDoc were to ignore a duplicate document | 15:58 |
nik90 | kalikiana_: yup | 15:58 |
nik90 | kalikiana_: my aim is to avoid users adding berlin twice or thrice | 15:59 |
aquarius | no. If the document exists, putDoc should require you to provide its revision ID and barf if you get it wrong. | 15:59 |
kalikiana_ | aquarius: I'm saying the data is constant, there is no revision - the only thing can be updated data, but the xml won't have revision numbers, only new data | 16:01 |
aquarius | kalikiana_, in this specific use case, yes. | 16:01 |
kalikiana_ | yes. I'd like to get this before hopping to another :-) | 16:01 |
kalikiana_ | nik90: so do you handle new xml coming in at all currently? | 16:02 |
kalikiana_ | would GeoIPModel notify you in some way? | 16:02 |
aquarius | kalikiana_, so, there is a list of cities with associated data. How do *you* propose that nik90 stores the list of "cities that I have added to my personal list"? | 16:02 |
nik90 | kalikiana_: the xml list model will not change since well citie's lat and lng dont change. That's the only data that the xml file provides. | 16:03 |
nik90 | kalikiana_: the timezone info on the other hand is grabbed from the online API and then appended to the data saved in u1db | 16:03 |
kalikiana_ | borders do change from time to time. there was a woman who had to move her house entrance to stay in her home country ;-) | 16:04 |
kalikiana_ | anyway | 16:04 |
kalikiana_ | nik90: so I see now why you save the data, it's constant but from the different apis and perhaps online sources. that makes sense | 16:05 |
nik90 | kalikiana_: I havent taken that consideration to account yet ;) | 16:05 |
nik90 | kalikiana_: this whole world clock thing is still messy until qt 5.2 lands providing native timezone ID infos. | 16:06 |
nik90 | kalikiana_: but I have to use the tools that I have in my disposal to implement something | 16:06 |
aquarius | doesn't matter whether that data is saved or whether we just save a list of cities they've tagged. We either save that they've tagged Berlin and London, or we save that they tagged Berlin (which has long=15,lat=48) and London (which has long=0,lat=52). We still have to save that list. | 16:07 |
kalikiana_ | nik90: so right now, encodeURIComponent(cityName) is unique, and the name comes from the list, so it should just work? | 16:08 |
nik90 | kalikiana_: yup | 16:08 |
kalikiana_ | aquarius: yes, though I might have considered a list in another document if the data was constant and not pulled from elsewhere | 16:08 |
aquarius | I propose having one u1db document per city (for ease of display in a listview, for avoiding sync conflicts, and ease of expansion). Having one doc per city makes the best way to do that to create a doc with docId of <unique city info>. (That might be cityName, or it might be cityName+cityLong+cityLat). | 16:09 |
aquarius | kalikiana_, if you have a list in one doc then you massively increase your potential rate of sync conflicts, once there's syncing. | 16:09 |
aquarius | kalikiana_, because *any* two changes on different devices will create a conflict. That doesn't happen if you use separate docs. | 16:09 |
kalikiana_ | aquarius: hmm good point in fact | 16:10 |
nik90 | kalikiana_, aquarius: I had to use encodeURIComponent(cityname) as docId since there were cities with space like "Abu Dhabi" and u1db started complaining about that :) | 16:11 |
aquarius | I've done a fair amount of thinking about how to model data in u1db; I'm not just recommending this approach to annoy you :) | 16:11 |
kalikiana_ | I suppose one thing we could do is allow a third argument on putDoc which is the revision | 16:11 |
aquarius | nik90, yeah. Might wanna throw long and lat or countryName on the end there, to avoid there being two Birminghams. | 16:11 |
kalikiana_ | if you have it, use it, otherwise you get the first-wins as now | 16:11 |
aquarius | kalikiana_, look at the Python API for putdoc and see how it works. | 16:12 |
aquarius | kalikiana_, if you putdoc to a docid that doesn't exist, no problem. If you putdoc to a docid that does exist, you must specify its existing revision, to prove that you've looked at the latest revision and are happy to overwrite it. | 16:12 |
nik90 | aquarius: why would there be two Birminghams? since they would have the same docid which is restricted by putDoc() | 16:12 |
aquarius | nik90, there's one in the UK and one in Alabama, USA, for a start :) | 16:13 |
kalikiana_ | aquarius: yeah so it would work the same way | 16:13 |
nik90 | aquarius: oh | 16:13 |
nik90 | how hard is it for people to come up with dfifferent names across the world! | 16:13 |
aquarius | kalikiana_, seriously, I'd look at the python code before implementing, here. Getting revision IDs correct is critical for syncing, and you have to do revision IDs the same way other u1db implementations do | 16:13 |
kalikiana_ | nik90: I'm afraid to mention that this is not a unique instance of a city name being re-used | 16:13 |
aquarius | nik90, there are loads of Londons, too. :) | 16:14 |
kalikiana_ | you definitely need the state or country | 16:14 |
nik90 | kalikiana_: +1 | 16:14 |
nik90 | kalikiana_: I will append that to the docId | 16:14 |
aquarius | nik90, so you want more than just cityname. State/Country would be fine, but if you *have* lat and lon, they'll also be unique. | 16:14 |
aquarius | and lat and lon are definitely unique (because of physics). It is not impossible that there are two towns with the same name in the UK, for example :) | 16:15 |
nik90 | aquarius: agreed | 16:15 |
nik90 | aquarius: I will do encodeURIComponent(cityname)+lat+lng as the docId | 16:15 |
nik90 | and then decodeURIComponent(model.docId).split etc etc to retrieve the cityname in the listview | 16:16 |
aquarius | no no no | 16:16 |
aquarius | don't decode the docid | 16:16 |
aquarius | store the cityname in the doc | 16:16 |
aquarius | docids are an opaque cookie, once you've created them | 16:16 |
nik90 | that makes the listview more easier | 16:17 |
nik90 | okay | 16:17 |
kalikiana_ | https://bugs.launchpad.net/u1db-qt/+bug/1276680 ^^ | 16:17 |
ubot2` | Launchpad bug 1276680 in U1DB Qt/ QML "putDoc should optionally take a revision" [High,Confirmed] | 16:17 |
aquarius | so docid: "London,51,0", doc contents: { city: "London", latitude: 51, longitude: 0 } | 16:17 |
nik90 | yup | 16:18 |
aquarius | may still want a country in there, and optionally a sub-country (state/county/etc) | 16:18 |
aquarius | but that's up to you and your data :0 | 16:18 |
kalikiana_ | what about localized city names? | 16:18 |
kalikiana_ | nik90: btw I saw the onItemRemoved bug mentioned in your code, I didn't have time to investigate that yet. is your work-around okay for now? | 16:19 |
nik90 | kalikiana_: the online API does not provide localized city names in all languages. as a result I haven't added it | 16:20 |
nik90 | kalikiana_: yeah its fine..it just spits a console error when one deletes the listitem | 16:20 |
nik90 | kalikiana_: I reported it at UITK | 16:20 |
kalikiana_ | yeah I saw the bug. just pondering how urgent that is | 16:21 |
* kalikiana_ currently on a sprint with plenty new tasks :-P | 16:21 | |
nik90 | kalikiana_: btw I might propose a small MP for u1db-qt to add an easier way of testing u1db MPs :) | 16:22 |
nik90 | using the export QML2 path option | 16:22 |
nik90 | this way I dont need to install your MP everytime to test it | 16:22 |
nik90 | kalikiana_: yup noticed the new bug reports from the sprint..excited! | 16:22 |
WebbyIT | mzanetti, about https://code.launchpad.net/~mzanetti/reminders-app/reminders/+merge/203522 | 16:23 |
WebbyIT | I'm not able to change reminders time | 16:23 |
kalikiana_ | nik90: I tend to have miscellanous variables in my command history to make that work… I would be open to making that a little easier | 16:23 |
mzanetti | WebbyIT: did you read the description of the merge? | 16:24 |
kalikiana_ | (and if you're one step closer to becoming a u1db-qt dev all the better *muhahaha*) | 16:24 |
nik90 | kalikiana_: lol | 16:24 |
WebbyIT | mzanetti, yap, I had open the note before | 16:24 |
mzanetti | WebbyIT: hmm, ok. then its a bug. | 16:24 |
mzanetti | WebbyIT: please paste the output along with a description how to reproduce it at the merge and mark it as needs fixing | 16:25 |
WebbyIT | mzanetti, maybe I don't understand how modify it: I have a note, I open it, I set is as reminder, go back, go to reminder tab and then? Where I have to click to modify it? | 16:26 |
mzanetti | WebbyIT: ah... the clock icon at the right | 16:26 |
* WebbyIT going to hide in a corner crying lol | 16:27 | |
mzanetti | :D | 16:27 |
WebbyIT | mzanetti, ops, it works :D | 16:27 |
mzanetti | WebbyIT: so maybe you should file a bug for the design :D | 16:28 |
mzanetti | WebbyIT: also, I'm not sure what should happen if you tap the title | 16:28 |
WebbyIT | mzanetti, ahahaha yeah, I think to press on reminder title, to expand it, but I not think to press the clock | 16:28 |
mzanetti | WebbyIT: so the thing is, a reminder is actually a standard note | 16:28 |
mzanetti | WebbyIT: so it probably would make sense to open the note when pressing on the title, and keep the time changes when pressing on the alarm clock | 16:29 |
mzanetti | additionally, providing a way to edit the timer in the edit note page | 16:29 |
mzanetti | I'll ask Dani on his opinion on that | 16:30 |
WebbyIT | mzanetti, yes, sounds good. BTW, you have to fix something for Jenkins in this branch! | 16:30 |
mzanetti | hmpf | 16:30 |
mzanetti | hmm. not sure what went wrong | 16:33 |
nik90 | aquarius: suprisingly u1db: Invalid docID Abu%20Dhabi,54.36667,24.46667 is an invalid doc ID | 16:34 |
aquarius | bah, might not like the commas. | 16:35 |
kalikiana_ | nik90: ^[a-zA-Z0-9.%_-]+$ | 16:35 |
nik90 | nevermind I got it to work | 16:35 |
aquarius | encodeuricomponent the whole lot | 16:35 |
aquarius | better, docid = (cityname + lat + long).replace(/[^A-Za-z0-9./g,'_') so it'll be "Abu_Dhabi_54.36667_24.46667" which is nice and readable in debug output :) | 16:36 |
nik90 | aquarius: instead of the encode, I should use replace? | 16:39 |
=== gatox_lunch is now known as gatox | ||
aquarius | nik90, encodeuricomponent is easier, but your docids will be less clear in debug output (mine look like "Abu_Dhabi_54.36667_24.46667" and yours will look like "Abu%20Dhabi%2C54.3666%2C24.46667"). It is not a big deal :0 | 16:41 |
mzanetti | WebbyIT: jenkins passed. seems it just had a bad day when it first tested this branch | 16:46 |
kalikiana_ | +1000 on readable debug output | 16:46 |
WebbyIT | nice to hear | 16:46 |
WebbyIT | Someone has same issue of bug 1276711? I haven't it... | 17:46 |
ubot2` | Launchpad bug 1276711 in Ubuntu Calculator App "contrast/optical illusions" [Undecided,New] https://launchpad.net/bugs/1276711 | 17:46 |
ogra_ | you probably take the wrong drugs then :) | 17:47 |
ogra_ | (funny bugtitle) | 17:47 |
WebbyIT | lol | 17:48 |
Laney | hey | 17:50 |
Laney | We have a design which involves 'highlighting' when clicking on some elements | 17:50 |
Laney | is there a standard appearance for such a thing? | 17:51 |
ahayzen | Hi, who is best to talk to about the header component in the SDK? | 18:07 |
popey | ahayzen: do you have specific questions? | 18:17 |
ahayzen | popey, trying to fix https://bugs.launchpad.net/music-app/+bug/1239106 | 18:17 |
ubot2` | Launchpad bug 1239106 in Ubuntu Music App "Empty tab header obscures the queue's close button" [Medium,Triaged] | 18:17 |
ahayzen | popey, although i think via a hacky route i have just solved it | 18:17 |
ahayzen | popey, basically i listen to the header movements and force it to be offscreen if the queue is visible... | 18:18 |
ahayzen | popey, but we call header.hide() upon showing the queue but for some reason certain chains of events cause it to be visible again, causing tht bug :/ | 18:19 |
popey | ahayzen: brb, someone is borrowing my laptop | 18:20 |
ahayzen | popey, no worries | 18:20 |
ahayzen | popey, i may try and land my slightly hacky route so at least it is fixed for MWC | 18:20 |
WebbyIT | There is a way to modify a property of a dynamically created component? | 18:23 |
nik90 | WebbyIT: you mean a loader? | 18:28 |
WebbyIT | nik90, I create a component with Qt.createComponent, in this component I create an object with component.createObject, this object as a proprerty. When I push this component on pagestack I want to modify the proprety of the objct | 18:30 |
WebbyIT | *object | 18:30 |
nik90 | wow no idea | 18:31 |
WebbyIT | nik90, only way I found is to destory the component everytime I need to change it, but it uses too resources IMO | 18:31 |
WebbyIT | mzanetti, mhh, I'm working on change account after the login for reminders-app, but I'm not able to find a way to disconnet from actual account. Do you know if there is way? | 18:33 |
mzanetti | WebbyIT: just unset the token in NotesStore | 18:34 |
WebbyIT | wow, so simple! Thanks! | 18:37 |
ahayzen | popey, damn it solves 2 of the 3 use cases for causing tht bug :( so close lol | 18:38 |
popey | ahayzen: i just triggered it via playlists on #161 | 18:39 |
popey | ahayzen: do you need more data or a video or something? | 18:40 |
ahayzen | popey, basically there are two different things happening.... one of the cases header.hide() doesn't move the header...and another is that it decides to move the header.y on its own (this is the one i fixed by listening) | 18:40 |
=== boiko_ is now known as boiko | ||
ahayzen | popey, i'm not sure, i think it is something in the SDK going wrong, but because the app is quite complex i haven't been able to create a small test app that causes the issue | 18:42 |
* popey waves his phone at an sdk person | 18:44 | |
ahayzen | popey, do we know who is responsible for this component/someone with more insight to how it works - that could help me investigate further? | 18:44 |
ahayzen | popey, FYI this branch has some tweaks which solves some of the cases and extra debugging trying to figure out the others lp:~andrew-hayzen/+junk/music-app-header-fix | 18:47 |
popey | ahayzen: just spoke to tim, he asked if you could make a small reproducible code snippet and file a bug against ubuntu-ui-toolkit ? | 18:50 |
ahayzen | popey, i've tried before with no success :/ but i'll try again as i've got more knowledge of the issue now | 18:52 |
* ahayzen waves at tim | 18:52 | |
popey | heh | 18:52 |
* ahayzen pokes tim with https://code.launchpad.net/~andrew-hayzen/ubuntu-ui-toolkit/fix-swipe-delete-002/+merge/202171 | 18:53 | |
ahayzen | popey, also on the desktop if the window loses and regains focus the header reappears, it is like we need a way of locking the header to be hidden | 19:01 |
kalikiana_ | WebbyIT: PageStack.push(page,properties) does take properties | 19:18 |
ahayzen | popey, no luck as of yet creating an example :/, just going to shops brb | 19:34 |
dpm | mzanetti, it seems that that bug whereby on editing a note the cursor was offset has been fixed somewhere else :) | 19:37 |
aquarius | How can I programmatically find what's currently on my Launcher? dpm or mhall119, you might know this :) | 19:37 |
mzanetti | dpm: huh? | 19:37 |
mzanetti | its working now? | 19:37 |
dpm | yeah, just tested it. I wanted to show it to Zoltan, and I've just realised it works now | 19:38 |
mhall119 | aquarius: I think it's stored in dconf | 19:38 |
mzanetti | aquarius: on the phone? | 19:38 |
mhall119 | aquarius: pinned ones anyway | 19:38 |
mhall119 | running ones you might need to query something like BAMF | 19:39 |
aquarius | mzanetti, well, I am assuming that right now I can't do this on the phone because app confinement will prevent me from doing it. | 19:39 |
dpm | aquarius, no idea, I've just forwarded the question to Mike sitting next to me :) | 19:39 |
aquarius | mhall119, ah, cool, dconf sounds OK. Is it exposed at a higher level? I can't find anything in libunity which looks at it. | 19:39 |
mzanetti | yeah, its in dconf for unity7 | 19:39 |
mzanetti | for unity8 it's in accounts-service | 19:40 |
mzanetti | gdbus call --system --dest org.freedesktop.Accounts --object-path /org/freedesktop/Accounts/User32011 --method org.freedesktop.DBus.Properties.Get com.canonical.unity.AccountsService launcher-items | 19:40 |
mhall119 | aquarius: I doubt it | 19:40 |
mhall119 | it's not exactly something we've had a want or need to promote the use of | 19:40 |
aquarius | mzanetti, ah, nice. That'd be useful if app confinement would let me call it. Looks like I'll hit dconf for now and then talk about how to do this from a confined app later. :) | 19:41 |
aquarius | mhall119, yeah, understandable, I suppose :) | 19:43 |
aquarius | hm, interacting with desktop features, which means that I get to write a gtk app, since I can't do C++ :( | 19:44 |
kalikiana_ | you can do QML on the desktop :-] | 19:45 |
aquarius | kalikiana_, sure, but I can't, for example, resolve the URL "application://nautilus.desktop" into the contents of the corresponding desktop file from QML. I'd need to write proper Qt for that, which means C++. | 19:47 |
kalikiana_ | aquarius: what do you do with those contents? | 19:47 |
aquarius | kalikiana_, I want to get a list of all the apps pinned to my launcher, and look them up to get the name, icon, and package name for each app | 19:48 |
aquarius | without writing any C++. | 19:48 |
aquarius | That, I think, means a python+gtk app. | 19:48 |
kalikiana_ | hmm I think there was api for that, trying to recall | 19:49 |
aquarius | really? do tell! | 19:50 |
aquarius | if there is some I'd love to use it and write an SDK app | 19:51 |
kalikiana_ | I don't find it, maybe it was just a branch that wasn't ready - but there were qml bindings for it | 19:54 |
kalikiana_ | I'd say write a short email and somebody surely would remember it | 19:54 |
aquarius | kalikiana_, qml bindings for all that? gsettings and desktop file lookup and icon theme lookup? | 19:58 |
kalikiana_ | bindings for gsettings exist, as does image://theme/ICONNAME | 20:00 |
kalikiana_ | so the thing missing here is getting launchers from the shell | 20:00 |
WebbyIT | mzanetti, mhh, I have some problems with change account. So, I modify the token, EvernoteConnection::setToken emits a signal, tokenChanged(), and NotesStore::refreshNotes is evoked, but in the ListView there are old notes, so when I change account I have all notes, both from old and new account. I don't understand how to modify code to remove old notes... | 20:18 |
mzanetti | WebbyIT: hmm... right... let me look at the code for a minute | 20:19 |
balloons | ping nik90 | 20:25 |
nik90 | balloons: pong | 20:25 |
balloons | nik90: how's alarm tests going? | 20:25 |
balloons | nik90: do you think it's going to require you to have a look, or ? | 20:26 |
nik90 | balloons: the tests *definitely* require a look since the UI changed quite a bit | 20:26 |
nik90 | balloons: I was busy with u1db stuff today | 20:26 |
balloons | nik90: I was going to ask if you think someone else can make the changes or not. | 20:27 |
nik90 | balloons: I will have a look at it tomorrow since I need to first install the latest EDS packages first | 20:27 |
nik90 | balloons: that is also possible | 20:27 |
nik90 | renato: ping | 20:28 |
renato | nik90, pong | 20:28 |
nik90 | balloons: do you mind if I have a go at it tomorrow | 20:28 |
nik90 | renato: the latest qtorganizer5-eds package is only updated on trusty. anyway to push it to the core apps PPA for 13.10 and earlier? | 20:29 |
nik90 | renato: or should I go about manually installing the .deb file on my 13.10? | 20:30 |
balloons | nik90: not at all.. I was just checking :-) You are probably the correct person to have at it | 20:30 |
* balloons excitied about it landing | 20:30 | |
renato | nik90, I am not sure, maybe popey nows about that | 20:30 |
nik90 | balloons: awesome :-) | 20:30 |
nik90 | renato: alrite I will check with him | 20:30 |
nik90 | popey: ^^ | 20:31 |
nik90 | balloons: one question.. | 20:31 |
nik90 | balloons: so the alarm tests, do I assert them by checking with EDS or just check with alarm manager if adding an alarm worked? | 20:31 |
nik90 | balloons: also it takes few seconds for the alarm to be saved. Would wait_single_select() be alright for that? | 20:32 |
popey | nik90: upgrade to 14.04 ☻ | 20:32 |
nik90 | popey: hehe | 20:33 |
nik90 | popey: but are the jenkins machines running 14.04? since the autopilot tests require them as well :) | 20:33 |
popey | ap tests are run on 14.04 | 20:34 |
nik90 | popey: but should I seriously upgrade to 14.04 though? since there are so many new contributors who made their bug patches from 12.04-13.10 | 20:36 |
popey | up to you. 13.10 is supported, and sure, we can look at putting things in PPAs of they're not going to get backported formally | 20:37 |
mzanetti | WebbyIT: https://code.launchpad.net/~mzanetti/reminders-app/clear-on-logout/+merge/205043 | 20:38 |
WebbyIT | mzanetti, thanks, I test it now | 20:38 |
nik90 | popey: hmm okay. I think I will stay in 13.10 for a bit more time. On checking the core apps ppa, I noticed that an older version of EDS is already there in the PPA. So I assume that adding the newer build shouldn't be difficult. Does dpm usually do the package push into the PPA? It would be nice if this can be done. | 20:41 |
nik90 | popey: its not urgent, since I will just manually install the package for now. | 20:41 |
nik90 | https://launchpad.net/~ubuntu-touch-coreapps-drivers/+archive/daily?field.series_filter=saucy | 20:42 |
popey | dpm: i think that package is manually pushed by anyone with access | 20:43 |
dpm | nik90, I push some external dependency packages when we need them to the PPA every now and then, but I don't know much about how backportable the EDS plugin is | 20:43 |
dpm | I'll ask renato | 20:43 |
nik90 | dpm: thnx | 20:44 |
dpm | renato, if we wanted to copy or backport the latest EDS plugin package to 13.10, is there a PPA that we could get the EDS plugin from? | 20:44 |
nik90 | dpm: renato asked me to ask popey :) | 20:45 |
dpm | nik90, we'll all have a chat when we've finished this meeting, we happen to be in the same room now | 20:45 |
dpm | :) | 20:45 |
dpm | sorry for the ping-ponging | 20:45 |
nik90 | dpm: ok | 20:46 |
aquarius | gnaaaah. How do I get the actual icon for Nautilus, given only its name (system-file-manager)? Gtk.IconTheme().choose_icon("system-file-manager") doesn't find it, but clearly it's findable otherwise Unity wouldn't be able to display it either :( | 21:00 |
mzanetti | WebbyIT: does it work? | 21:01 |
WebbyIT | mzanetti, mhh, I'm not sure, it seems not, but I don't want to have done a wrong implementation | 21:01 |
mzanetti | hmm... you just need to call EvernoteConnection.token = ""; | 21:02 |
mzanetti | the rest should happen automagically | 21:02 |
aquarius | ahaha! I need the *default* icon theme. How very unclear. :) | 21:03 |
kalikiana_ | aquarius: why do you use such low-level apin instead of ie Gtk.Image? | 21:05 |
aquarius | kalikiana_, because I have a list of desktop files, which I use Gio.DesktopAppInfo to read, and that gives me only icon names; I want to get the data for those icon names. That means looking them up in the theme, I think | 21:06 |
kalikiana_ | aquarius: what data is that other than displaying them? | 21:06 |
aquarius | kalikiana_, getting the data from them and bundling that up into an HTTP POST. | 21:07 |
kalikiana_ | oh | 21:07 |
kalikiana_ | that makes sense then. you'll need to serialize the pixbuf | 21:07 |
* kalikiana_ should've known aquarius would not do anything boring normal :-] | 21:08 | |
aquarius | ya. :) | 21:09 |
WebbyIT | mzanetti, my error, works as expected! Now I have only to find a way to save favourite account... | 21:25 |
mzanetti | WebbyIT: right... let me see | 21:25 |
mzanetti | WebbyIT: I'd say you create a Settings class, just like the CameraHelper and set that into the context in main.cpp. same as cameraHelper | 21:27 |
mzanetti | WebbyIT: in the Settings class use QSettings | 21:27 |
WebbyIT | mzanetti, right, I look at your code and try to implement it, thanks :-) | 21:27 |
mzanetti | WebbyIT: here's an example: https://github.com/mzanetti/shine/blob/master/apps/ubuntu/keystore.cpp | 21:28 |
mzanetti | WebbyIT: actually the KeyStore class here does *exactly* what you want: https://github.com/mzanetti/shine/tree/master/apps/ubuntu | 21:29 |
WebbyIT | mzanetti, wow, thanks \o/ | 21:29 |
dpm | mzanetti, still around? | 22:40 |
mzanetti | dpm: sort of, yeah | 22:40 |
dpm | mzanetti, quick question: can we create a new click package and upload it to the store, or after the account plugin merges do we need to land a new account plugin in the image first? | 22:41 |
dpm | for Reminders, that is | 22:41 |
mzanetti | dpm: yeah. I'd say we need to drop the other plugin from the image and seed this one | 22:43 |
mzanetti | but I'm not exactly sure what needs to be done | 22:43 |
mzanetti | I think sergio set that up | 22:43 |
dpm | mzanetti, ok, we'll get a landing slot for the account plugin first and then we'll upload a new .click to the store after the plugin has landed in the image | 22:44 |
dpm | thanks! | 22:44 |
WebbyIT | mzanetti, mmh, after a fight with C++ and CMake I add all files to save credentials: I save account userName, but I don't know how to do the login with accountservice. I red the documentation and some codes, but I don't understand what use, if username is ok or if I have to save another credential... | 23:00 |
mzanetti | WebbyIT: you need to get to the Account you need and call authenticate() on it. | 23:00 |
mzanetti | that will return you the new token which you then set to EvernoteConnection.token and store to the config | 23:01 |
mzanetti | brb | 23:01 |
WebbyIT | ok, I look at the code | 23:01 |
=== chriadam|away is now known as chriadam |
Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!