/srv/irclogs.ubuntu.com/2014/07/14/#ubuntu-app-devel.txt

=== chriadam|away is now known as chriadam
=== chihchun_afk is now known as chihchun
=== chihchun is now known as chihchun_afk
=== chihchun_afk is now known as chihchun
JamesTaitGood morning all; happy Monday and happy Shark Awareness Day! :-D08:04
=== toby is now known as Guest41280
Guest41280help08:29
Guest41280is there an emulator for the touch tablet (not phone)?08:30
Guest41280#08:33
Guest41280?08:33
Guest41280not sure how to use irc ... do i just ask a question?08:34
Guest41280@08:37
brendandGuest41280, yes08:37
Guest41280ahh ok thanks ... I've been playing with the touch phone emulator, and wanted to play with the tablet now ... is there an emulator for that?08:38
dpmhi Guest41280, the emulator currently works in phone mode only. There are plans to run in tablet mode, but I'm not sure about when the feature will be available08:48
dpmmorning zbenjamin. Quick question: I've noticed sometimes QtC projects create an .excludes file. What is that file for?08:50
Guest41280hi dpm, thanks for the response and no worries about the emulator. To begin my testing, I guess I'll buy a supported tablet? For example, if I bought a Nexus 10, could I use that for tablet development?08:55
dpmGuest41280, yes, either the Nexus 10 or the Nexus 7 (2013 version) are still supported as hardware reference for development08:56
Guest41280Fantastic, I'll go and buy one - thanks again!08:56
mzanettidpm: hey, if you're looking for teaching material, I tried to be *very* verbose with comments on this branch: https://code.launchpad.net/~mzanetti/ubuntu-clock-app/add-timezonemodel/+merge/22661109:05
mzanettidpm: it's based on top of the wheretheissat tutorial and explains how to use Qt models with QML09:05
dpmmzanetti, oh wow, thanks09:06
zbenjaminbzoltan: what is the .excludes file for that are created by some projects? i think that was before my time09:10
bzoltanzbenjamin: the purpose of the .excludes is to filter out development files before packaging the qml apps09:11
zbenjamindpm: ^09:11
bzoltanzbenjamin: kind of inverse of the .install in the good old .deb packaging09:12
zbenjaminbzoltan: click build has --exclude?09:12
zbenjaminah no , rsync does09:13
=== chihchun is now known as chihchun_afk
nik90_mzanetti: btw thnx, I am wrapping my head around the MP :)09:45
mzanettinik90_: :) don't hesitate to ask if you don't understand something09:45
=== chriadam is now known as chriadam|away
nik90_mzanetti: hey btw, would I be possible to provide it another source of cities instead of xml? I use Xml file to display a list of cities that the user can choose. However once they click one, it gets added to the u1db database. I would like to provide that database as an input source to the the TimezoneModel.09:46
nik90_mzanetti: in the main page, the u1db database would be read, and the cities chosen by the user will be shown09:47
mzanettinik90_: sure, the model can fetch data from wherever you want09:47
mzanettinik90_: hmm... you don't happen to know if there's Qt api for U1DB?09:47
nik90_mzanetti: not sure, the main project is housed at https://launchpad.net/u1db-qt09:48
nik90_mzanetti: I believe the API was ported from python to QML.09:48
mzanettinik90_: ok, looks good09:50
mzanettinik90_: didn't really understand it though... do you want to show the u1db entries aggregated with the xml file?09:53
nik90_mzanetti: no the u1db database will only hold the cities, timezoneid, country (similar to the xml model) chosen by the user.09:54
mzanettinik90_: yeah... so not sure... does that mean once the user selected something from the xml he can't choose anything else from the xml any more because the model will only show his previous selection at that point?09:55
nik90_mzanetti: no the u1db database will only be used to show the data in the main clock page. While the XML model will be used in the "Select a city" page as always.09:56
mzanettiahh.. now I get it :D09:57
nik90_mzanetti: let me grab the design spec for you09:57
nik90_mzanetti: main clock page at https://docs.google.com/presentation/d/1Kkl7xT8BYo9mT8i3IXh6rPrDlNg6cBxTajahlRYIGlI/edit#slide=id.g18587dd40_02909:57
nik90_mzanetti: select a city Page at https://docs.google.com/presentation/d/1Kkl7xT8BYo9mT8i3IXh6rPrDlNg6cBxTajahlRYIGlI/edit#slide=id.g18883f09d_25309:57
mzanettinik90_: ok... yeah, shouldn't be too hard to create that09:59
nik90_mzanetti: so can I use the same TimeZoneModel you created or create a new one?10:00
mzanettinik90_: I'd probably remove the xml parsing from the TimeZoneModel10:01
mzanettinik90_: and then create 2 subclasses: XmlTimeZoneModel and U1DBTimeZoneModel, both subclassing the existing TimeZoneModel but just having a different implementation for a load() function10:01
mzanettione of them does the xml parsing in the load() function, the other does u1db stuff10:02
nik90_mzanetti: ah ok10:02
dpmzbenjamin, bzoltan, it seems the .excludes file is also created in the HTML5 app template. Does the file have a purpose in there? Or is it a leftover?10:02
nik90_mzanetti: I will try that out and see how it goes10:02
bzoltandpm:  the HTML5 app project has that feature too.. for the case when you do not want to include something to the click package. All project types that are not built are like that.10:04
mzanettinik90_: hmm... I guess I need to help you with that...10:04
nik90_mzanetti: I will give it a shot with the subclasses and the load() function and then if I get stuck there, you could help me out10:05
mzanettinik90_: well, not sure about the load() function yet10:05
mzanettinik90_: I think you'd need to move the source property into the subclass10:05
mzanettiand keep the behavior to load the xml file when the source changes10:05
mzanettinik90_: you also need to mark m_timeZones as protected instead of private to be able to fill it in the subclass10:06
nik90_mzanetti: ok. In the case of the u1db subclass, I will providing it a u1db.Query as the source model which it will need to append into the TimeZoneModel10:06
mzanettiyep10:06
dpmok thanks bzoltan10:16
=== Borborygmi is now known as Casmo
nik90_popey: did you check with dpm if it is okay to upload the new clock app to the store as a technical preview?11:23
nik90_s/check/discuss11:23
popeynik90_: no, not yet. dpm ^ ☻11:28
nik90_dpm: Just a bit of background, the new clock app is taking shape nicely and we feel that it might be useful to have it uploaded to the store to allow for easier testing and also for easy reviewing by designers.11:31
nik90_dpm: It will be clearly marked as "Technical Preview" by watermarking the screenshots, mentioning in the description and so on.11:31
nik90_dpm: however, we wanted to check if you think it has the minimum quality and feature set for a technical preview.11:32
nik90_dpm: I will also be uploading it using my account.11:32
popeyactually I think I did mention this to dpm last week.11:33
nik90_popey: now you tell me :P11:33
nik90_after all the typing11:33
nik90_popey: btw http://imgur.com/HAVCB1c (using the QDatetime and QTimeZone classes). courtesy of mzanetti11:35
mzanettinik90_: does the updateInterval property work for you this way?11:36
nik90_mzanetti: it should...I set the format of the localtime to ("hh:mm)11:36
nik90_mzanetti: although I will still need to update it to use the user locale automatically instead of hardcoding the time format. This way it will use either 12-hour/24-hour format based on the user locale11:38
=== MacSlow is now known as MacSlow|lunch
ahayzent1mp, if your around i managed to prove the searching issue was a textfield from a different tab being shown, if you read the end of this trace you can see th searching mode activated in the artists tab but the textfield is from the songs tab http://pastebin.ubuntu.com/7781949/12:08
ahayzent1mp, in a separate branch i've moved all our pages into the main pagestack, i haven't merged with trunk and tried this yet to see if that resolves the issue. But if it doesn't i'll try creating an example app later tonight to replicate the issue12:09
nik90_mzanetti: I moved the source property and the loadfromXml() function to a new class XmlTimeZoneModel. It seems to build without any errors. But when I run it, it says "Cannot assign to non-existent property source" when I open the the select city page. https://bazaar.launchpad.net/~nik90/ubuntu-clock-app/10-world-clocks/revision/2712:10
t1mpahayzen: to track which is the active page of the MainView (the page that sets the header title, contents, actions), perhaps the onActiveLeafNodeChanged: of the MainView is handy12:10
ahayzent1mp, ok noted, i'll try that when i get back from work later to see if there is anything useful12:10
nik90_mzanetti: I made sure that the respective setSource(), onSourceUpdated() functions were moved as well to support the Source property12:11
t1mpI think moving the Pages into the PageStack helps :) let's see what it brings when you can test it12:11
mzanettinik90_: hmm... strange... the code looks good12:11
mzanettinik90_: need to compile and run it. gimme a minute12:11
dpmpopey, nik90_, yeah, we talked about it, sounds good to me.12:12
ahayzent1mp, hopefully :)12:12
t1mpahayzen: thanks for doing the effort to figure this out :)12:12
ahayzent1mp, no problem thanks for assisting us :)12:12
nik90_dpm: sweet thnx :) will prepare the store application tonight12:12
dpmexcellent :)12:13
nik90_mzanetti: one more thing, I see that you imported QFile in the base class. However in the subclass if I don't import QFile again, it gives me build errors. Shouldn't the subclass inhert the imports done by the base class?12:13
mzanettinik90_: found the first issue:12:14
mzanettinik90_: this comment: "// Q_OBJECT (this is not required since we are subclassing from TimeZoneModel which is in itself a Q_OBJECT)"12:14
mzanettinik90_: is wrong12:14
mzanettinik90_: and the source property is not generated in face because you don't have the Q_OBJECT around12:15
nik90_mzanetti: yup that solved it :)12:15
mzanettinik90_: include's are not inherited, no12:15
nik90_mzanetti: ok12:15
mzanettinik90_: in fact, now that you moved the loadFromXml to the XmlTimeZoneModel, you should also move (not copy) the QFile include12:16
nik90_mzanetti: yeah, I still need to do some more cleanups of the base class. I was just building and running every little thing I change12:16
mzanettinik90_: so includes always include what you include (that doen't make much sense right now, but let me explain)12:17
mzanettinik90_: so if you have a .h file with an include in there, and then you include that .h fine in another, you'll get all the includes from the .h file too12:17
mzanettinik90_: but if you have an include in a .cpp file, you won't get them by including the .h file12:17
mzanettinik90_: because you didn't include the .cpp file (hope it makes more sense now)12:17
nik90_mzanetti: ah yes that makes sense12:18
mzanettinik90_: that is one reason why you should try to have includes as much as possible in the .cpp file, not the .h file12:18
nik90_mzanetti: so if I put all the includes in timezonemodel.h (which is also imported within xmltimezonemodel.cpp), then the subclass would get the includes done by the base class12:18
mzanettinik90_: otherwise you'll chain up includes and make the compiler do *lots* of useless work12:18
nik90_mzanetti: scratch my last sentence then12:19
mzanettinik90_: yes, it would, but makes the timezonemodel.h a giganitc beast12:19
mzanettiand at some point it takes like 5 mins to compile and multiplies that time in each place where you include that12:19
nik90_mzanetti: I was trying to reduce the code but didn't realise it might cause compiler overtime. Good to know :)12:20
mzanettinik90_: good job on the subclass. looks quite good :)12:21
nik90_t1mp: btw I started using the new search header mode in the new clock app as well. I tried anchoring the textfield using anchors.right: parent.right to ensure it covers the entire header. But I get the error "TypeError: Cannot read property of null" though it doesnt affect functionality12:21
nik90_mzanetti: thnx :)12:21
rpadovanimzanetti, o/ A C++ question wrt your MR to count notebooks. Why the var is an int and not and unsigned int? I mean, you can have 0 or more notebooks, not less :-)12:28
mzanettirpadovani: fair point...12:29
mzanettirpadovani: don't have a correct answer to this one12:29
mzanettirpadovani: I guess int is big enough12:30
mzanettirpadovani: and QAbstractItemModel::rowCount() returns an int too.12:30
mzanettirpadovani: making the count property an unsigned int would require us to convert it all the time12:30
rpadovanioook, thanks for the clarification. Approve and topapprove12:31
mzanettior well, do something to make the compiler shut up about the implicit conversion12:31
mzanettirpadovani: thanks.12:31
mzanettirpadovani: regarding "I thought that when filter is undefined causes problem with the function, but works without problem, just tested"12:32
t1mpnik90_: anchors.right: parent ? parent.right : undefined12:32
mzanettirpadovani: see notesstore.h. the createNote() method has a default parameter for the second argument12:33
t1mpnik90_: initially when you define the TextField it doesn't have a parent12:33
mzanettirpadovani: ah, darn... I confused... anyways, its fine12:33
rpadovanimzanetti, yes, I saw it, I though 'undefined' override it, but I was wrong12:33
mzanettirpadovani: well, it does, however, javascript converts undefined to "" if a string is required12:34
mzanettihmm... maybe it even omitts it... I don't know the internals tbh12:35
rpadovanimzanetti, https://bugs.launchpad.net/ubuntu-ui-toolkit/+bug/134155912:37
ubot5Ubuntu bug 1341559 in Ubuntu UI Toolkit "Model views (Listview, Repeater, OptionSelector etc..) lack a count property" [Undecided,New]12:37
mzanettirpadovani: seems I confused you12:37
mzanettirpadovani: ListView and Repeater do have that propety12:37
nik90_t1mp: yup that worked :)12:37
mzanettirpadovani: the bug should be: OptionSelector should have a count property like all the other model views12:38
=== _salem is now known as salem_
rpadovanimzanetti, oh, wow, I didn't check. 'lacks a count property as other model' I thought as was refered to lack, not to the count property.. I update the bug12:39
=== MacSlow|lunch is now known as MacSlow
rpadovanimzanetti, talking about https://code.launchpad.net/~rpadovani/reminders-app/1340644/+merge/226614 probably it's my qml that it's bad, but I'm not able to access notebooks model outsite the optionselector, if I load the model in the optionselector. This is why I declared the two vars public13:09
mzanettirpadovani: just give it an id13:09
mzanettirpadovani: model: Notebooks { id: notebookModel }13:10
mzanettithen you can access it13:10
mzanettiactually it should also work with notebookSelector.model13:10
mzanettirpadovani: ^13:10
rpadovanimzanetti, ah, wow. No, with notebookSelector.model doesn't work, and I have the same problem with notebookSelector.selectedIndex13:11
rpadovani ReferenceError: notebooksSelector is not defined13:11
mzanettirpadovani: FWIW, there's a typo on here: "ReferenceError: notebooksSelector is not defined"13:12
nik90_kalikiana: ping13:13
rpadovanimzanetti, doh, what stupid error, thanks13:13
mzanetti:)13:14
kalikiananik90_: pong13:19
rpadovanimzanetti, last thing than I fixed all :-) selectedIndex: root.note ? noteNotebookIndexModel : 0; I think 0 is right, because it's the default notebook, while -1 is no notebook. If no notebook is specified, evernote use the default one, isn't it?13:20
nik90_kalikiana: I was just using the SortFilterModel and had some questions.13:20
nik90_kalikiana: first my listview has cities, country name and the local time there. I want to allow the user to search either by cityname or countryname. Does filter.property support filtering by both?13:21
nik90_kalikiana: something like filter.property: "city" && "country"13:21
=== greyback is now known as greyback|lunch
kalikiananik90_: hmmm no, that won't work. you could possibly try nesting two SortFilterModel's instead13:22
nik90_kalikiana: if I nest it, then say you search for Netherlands, the first sort filter model won't show the results since it did the filter by city. so the nested sortfilter model won't have anything to filter13:23
kalikianahmm13:24
nik90_kalikiana: second question, I get the name the user searched for from a text field. How can I filter the model by the textfield value? I did filter.pattern: searchfield.text but that didnt work13:25
kalikianain that case the API will probably need to be extended; something like "city|country" and an implementation that checks several roles13:26
nik90_kalikiana: ok. The "city|country" feature isn't high priority now. So I will just report a bug about it to track it and look into that later.13:27
nik90_kalikiana: Do you have ideas for the second question? I feel I am doing something stupid there.13:27
kalikiananik90_: how about trying this→ filter.pattern: RegExp(searchfield.text)13:28
mzanettirpadovani: well, but you don't check for the notebook not being specified, but for the note13:29
mzanettirpadovani: so if there's no note, should it show really show the defaultNotebook?13:29
mzanettirpadovani: anyways, its not critical... its mainly there just to prevent a warning in qml. if there's no note, we have bigger problems :D13:30
rpadovanimzanetti, yes, if there isn't note it means that is a new note, isn't it?13:30
mzanettirpadovani: oh... you're right! in that case yes, 0 is correct13:30
nik90_kalikiana: I did /(searchfield.text)/ to check for matches anywhere in the word13:30
kalikianaI'm not sure if that syntax is valid, never tried13:32
kalikianadoes it actually take the value?13:32
nik90_kalikiana: I am a bit confused at to what filter.pattern expects. Should I put the RegExp in "" or just by itself?13:33
kalikiananik90_: it expects a regular expression. what I'm saying is, I'm not sure that /(a)/ will look for a variable "a" rather than a string containing "a"13:34
kalikianaRegExp() is a function13:35
kalikianaRegExp("pattern") returns the equivalent of /pattern/13:36
nik90_kalikiana: ok..but when I do RegExp(), it doesn't recognize that function13:36
nik90_kalikiana: nevermind that worked!13:36
mzanettirpadovani: tiny mistake still in that branch13:36
kalikiananik90_: \o/13:37
nik90_kalikiana: the red line indicating a function is not recognised confused me earlier :)13:37
kalikianayou may need to poke zbenjamin if it's a bug in qtc there ;-)13:38
nik90_;)13:38
nik90_I feel like I have troubled him enough for this month with my cmake stuff earler13:38
rpadovanimzanetti, sorry, seems I have head in the clouds... updated13:40
mzanettirpadovani: no worries... everything's in the cloud nowadays13:41
mzanetti:P13:41
* nik90_ grins :)13:41
kalikianaelopio: wtf https://jenkins.qa.ubuntu.com/job/generic-deb-autopilot-runner-mako/2168/testReport/junit/ubuntuuitoolkit.tests.custom_proxy_objects.test_checkbox/ToggleTestCase/test_check_toggle_checkbox_/ these process errors aren't nice :-(13:41
kalikianaand they happen repeatedly in different places13:41
nik90_kalikiana: btw great job on the sortfiltermodel. It is awesome! 8 lines of qml code to sort and filter your listview13:43
rpadovaniahah13:43
kalikiananik90_: cool :-D13:43
rpadovanihey dpm :-) I have problems following http://developer.ubuntu.com/apps/sdk/tutorials/building-cross-architecture-click-applications/13:53
rpadovaniWhen I try to add a kit to my project it says 'Device type is not desktop'13:53
dpmrpadovani, can you send me a screenshot?13:54
dpmrpadovani, otherwise, this should provide a more visual intro: http://summit.ubuntu.com/uos-1406/meeting/22288/how-to-use-the-ubuntu-emulator-for-app-development/13:55
dpmjust remember to restart QtC at the end - that's why my demo failed at the end :/13:55
rpadovanidpm, wait, I need emulator installed?13:55
nik90_rpadovani: if you want to run on the phone, then you need to have the 14.10 armhf chroot installed13:58
dpmrpadovani, ah, sorry, no, if you want to create a kit for the phone, you don't need the emulator, I misread the message13:58
=== greyback|lunch is now known as greyback
nik90_rpadovani: if on the emulator, you need the 14.10 i386 chroot13:58
dpmrpadovani, but in any case, it's exactly the same process13:58
rpadovanidpm, this is the error: http://oi62.tinypic.com/2eppx1x.jpg14:03
rpadovanioSoMoN, o/ Do you have 10 minutes? I have some problems with userscript implementing Oxide in the reminders app14:09
oSoMoNrpadovani, not right now, can you ping me again in 30min?14:09
rpadovanisure, thanks14:10
nik90_rpadovani: did you open the .qmlproject or the cmakelist.txt file?14:10
rpadovaninik90_, the qmlproject, I haven't cmake because there isn't c++ code14:11
* rpadovani is a bit confusing on how projects work14:11
nik90_rpadovani: that's why you get the error14:12
nik90_rpadovani: it only works with CmakeList.txt projects14:12
nik90_rpadovani: then why would you need to cross-build if it doesn't have any c++ code?14:12
nik90_rpadovani: if it is a pure qml js app, you should be able to choose the device in the devices tab and then pressing Ctrl+F12 would run it there.14:13
rpadovaninik90_, oh, thanks. I need to create the package in bundle with bacon2d, I thought this is the way, but I'll ping kenvandine then :-) He explained me, but seems I didn't understand14:14
kenvandinerpadovani, i don't think cross builds will work :/14:15
kenvandineat least not easily14:15
elopiokalikiana: that's qmlscene crashing.14:15
elopiohttps://jenkins.qa.ubuntu.com/job/generic-deb-autopilot-runner-mako/2168/artifact/clientlogs/ubuntuuitoolkit/_usr_lib_arm-linux-gnueabihf_qt5_bin_qmlscene.32011.crash/*view*/14:15
elopioit has started happening more often last week.14:15
rpadovanikenvandine, ok, when do you have time could you explain me step-by-step? I looked to your ubuntu branch, but I didn't understand what I've to do...14:16
kenvandinerpadovani, give me 30m or so, and i'll query you14:20
rpadovanithanks :-)14:20
nik90_mzanetti: hmm with your TimeZoneModel class, we would no longer need the Zone class (zone.cpp and zone.h)14:30
mzanettinik90_: nope, we don't14:32
mzanettinik90_: I just didn't delete it because I didn't want to delete all the comments I wrote for you14:32
mzanettinik90_: once you read them (or if you don't care about them), feel free to delete the Zone class14:33
nik90_mzanetti: I saved it locally to preserve the comments since they were quite handy.14:33
mzanettinik90_: yup, then just drop the Zone class...14:34
nik90_mzanetti: is it possible to hide the warning message in the Issues pane. I get /home/nik90/Clock/10-world-clocks/backend/modules/Timezone/timezonemodel.h:42: warning: override controls (override/final) only available with -std=c++11 or -std=gnu++11 [enabled by default]14:35
nik90_     int rowCount(const QModelIndex &parent) const override;14:35
mzanettinik90_: right... we should enable C++1114:35
mzanettinik90_: in the standup atm. will let you know how in a bit14:35
nik90_mzanetti: np14:36
ogra_DanChapman, so i was thinking about your issue with sub-mailboxes ... how about you make the arrow in the "Inbox" entry a button with three dots in it ... the button makes clear that it behaves different to the rest of the field and the three dots should suggest that this will "give you more"14:38
ogra_s/sub-mailboxes/ subfolders/14:39
mzanettinik90_: https://code.launchpad.net/~mzanetti/ubuntu-clock-app/enable-c++11/+merge/22669015:07
mzanettinik90_: there's one warning left after this, I intentionally left it for you because its quite important that you always do this when creating a class15:08
rpadovanioSoMoN, ping for Oxide in reminders, if you have time :-) Otherwise, tomorrow15:08
nik90_mzanetti: hey btw I replaced the Class TimeZone with a struct instead. http://paste.ubuntu.com/7793892/15:08
oSoMoNrpadovani, hey, sure, what’s the problem?15:09
nik90_mzanetti: is that okay?15:09
rpadovanioSoMoN, thanks :-) So, we had a userscript with old webview that intercept the modify in a todo list and save it. Anyway, I tried to port it in Oxide but doesn't work. Userscript is loaded, I think, I have no errors, but doesn't work15:10
rpadovanihttps://code.launchpad.net/~rpadovani/reminders-app/upgradeToOxide/+merge/22573715:10
oSoMoNlet me check the code15:12
rpadovanioSoMoN, TBH, I was able to do nothing with userscript, not to change an element or so on... I don't understand if is because we are working on local files or because I do all wrong15:14
kalikianaelopio: so… if qmlscene is crashing. can we correlate that with anything like unity or qt updates?15:16
oSoMoNrpadovani, you need a "context" property on your UserScript, and add that context to the "contexts" list property of the ScriptMessageHandler15:16
oSoMoNrpadovani, your ScriptMessageHandler also needs a "msgId" property to identify which messages it handles15:17
rpadovanioSoMoN, ok, I imagined this. How can I set my msgId from the script?15:17
oSoMoNrpadovani, and the callback function takes two parameters, message, and frame15:17
rpadovanioSoMoN, and the context could be anything I want?15:18
rpadovanioSoMoN, frame? What frame? The id of the webview?15:18
oSoMoNrpadovani, oxide.sendMessage(msgId, data), and the context is usually a pseudo-URL, for example "reminders://todo"15:18
oSoMoNrpadovani, no, the webframe the script applies to (you can safely ignore that parameter, but you probably need to add it to the method signature anyway15:19
rpadovanioSoMoN, ok, thanks for explanations. I'll try to implement it15:20
oSoMoNrpadovani, and instead of Oxide.sendMessage(JSON.stringify(message)), you need oxide.sendMessage(msgId, message)15:20
oSoMoNrpadovani, (note how oxide is not capitalized here)15:21
rpadovanioSoMoN, oh, wow, thanks! I'll update you :-)15:23
oSoMoNyw :)15:25
rpadovanioSoMoN, wow, now works :-) I have a doubt on message: in the ScriptMessageHandler the message is OxideQQuickScriptMessage. How can I access to its data?15:35
oSoMoNrpadovani, message.args is the object you sent from the other end, in the user script15:37
oSoMoNrpadovani, so you can access message.args.todoId and message.args.checked15:38
rpadovanioSoMoN, it works \o/ Thanks, you have a paid beer :-)15:38
oSoMoNrpadovani, deal :)15:38
oSoMoNrpadovani, next time you see chrisccoulson, you might want to buy him a beer or two as well, he’s the oxide mastermind :)15:39
rpadovanisure :-)15:40
rpadovanidpm, thanks to oSoMoN now works :-) https://code.launchpad.net/~rpadovani/reminders-app/upgradeToOxide/+merge/22573715:41
chrisccoulsonI wouldn't turn down a beer :)15:41
oSoMoNrpadovani, in the message handler, you can remove the try…catch block, there’s no parsing to do anymore15:42
rpadovaniok, thanks15:44
dpmrpadovani, awesome, let me look at your screen capture now (sorry, I was otp earlier on)15:51
mzanettinik90_: yeah, that's fine15:52
rpadovanidpm, I fixed that, now I have another problem: in the kit, QT Version voice is Null. If I set to QT 5.2.1 it says that the compiler is unable to build for Qt 5.2.1. I'm on utopic, no PPA, all updated15:53
rpadovanibut no proposed repos15:53
dpmrpadovani, can you send me another screenshot of the kit page?15:54
dpmfor the record, I've got the Qt version set as None too, and it works. I think it's ignored anyway15:55
rpadovanidpm, here (all 3 screenshots) http://people.ubuntu.com/~rpadovani/sdk/15:57
rpadovanidpm, If is set to 'none' I haven't it in the list of Configure project page15:58
rpadovanidpm, mhh, If I set the Qt Version to 5.2.1 now seems to build, but there is the error in the settings page... it's weird16:01
elopiokalikiana: https://bugs.launchpad.net/ubuntu-app-launch/+bug/132914116:03
ubot5Ubuntu bug 1329141 in qtubuntu (Ubuntu) "qmlscene crashed while running test_can_launch_multiple_applications" [Undecided,Incomplete]16:03
dpmrpadovani, strange, in my case it works without setting the version, but that's on trusty+PPA (it should be the same version as utopic, IIRC), though -> http://i.imgur.com/4KAN5gj.png16:03
elopiokalikiana: what we need is somebody that can understand the crash and find a cause.16:04
elopiowe don't have enough data to actually know what project changed and caused the new crashes. I just have the feeling that it's more often now, because I've seen more.16:04
rpadovanidpm, the only difference it's my device is called 'Ubuntu Device' and not 'Nexus 4'16:05
dpmrpadovani, that's fine, I manually changed the name to recognize the device16:05
dpmin the same way that I tend to append the Ubuntu image version to all emulator devices I create now16:05
rpadovanidpm, ok, bah, now works, sorry for the disturb16:07
rpadovanidpm, ah, no, doesn't work! It produced a wrong binary, and now it says: :-1: error: /usr/lib/x86_64-linux-gnu/qt5/bin/qmake: Command not found16:11
dpmrpadovani, what are you trying to do? Are you compiling reminders for the phone?16:12
rpadovanidpm, no, bacon2D, I have to compile it, then put in the root of my project and build a click package16:12
kenvandinerpadovani, just build it manually in the chroot :)16:14
kenvandinei gave up on making it cross build in qtcreator, since it uses qmake, etc16:14
kenvandineand the submodules16:14
dpmkenvandine, what uses qmake? bacon2D?16:14
kenvandineyeah16:14
kenvandineand qml-box2d16:14
dpmahhh16:14
kenvandinewhich is also a submodule16:14
kenvandinesubmodule of bacon2d that is16:15
rpadovanikenvandine, how I build in a chroot? Sorry, but I never did something like this...16:15
kenvandineschroot -l16:17
kenvandineto list the chroots16:17
kenvandineyou should have one created by qtcreator16:17
kenvandineschroot -c utopic-armhf16:17
kenvandineto enter one16:17
kenvandinejust use the name you see in the list16:17
kenvandinethen go to your bacon2d checkout16:17
kenvandineand build16:17
kenvandineyou'll need to install the build depends though16:17
kenvandinerpadovani, if you look at my bacon2d repo, look at the packaging branch16:18
kenvandinein debian/control16:18
kenvandinefor a list of the build depends16:18
kenvandineyou can install those in the chroot16:18
kenvandinethen16:18
kenvandinemkdir armhf16:19
kenvandinecd armhf16:19
kenvandineqmake ..16:19
kenvandinemake16:19
rpadovaniok, thanks very much kenvandine :-) I have two chroots:16:19
rpadovanichroot:click-ubuntu-sdk-14.10-armhf16:19
rpadovanisource:click-ubuntu-sdk-14.10-armhf16:19
kenvandinethen you can build the click on your host machine16:19
rpadovaniwhat's the one?16:19
kenvandineschroot -c click-ubuntu-sdk-14.10-armhf16:19
kenvandinewhen you exit the schroot, it'll wipe out your changes to the chroot16:20
kenvandineyou'll have access to your homedir and stuff while in the chroot16:20
kenvandineso you can build in your current checkout16:20
rpadovanikenvandine, how can I install packages in the chroot? sudo isn't installed, apt-get needs admin permission, if I do su I don't know the password...16:25
kenvandineoh... i guess you need to enter it as root16:26
kenvandineso add a -u root16:26
kenvandineor16:26
kenvandinemaybe you can su16:26
kenvandine?16:26
kenvandinebecause you'll want to build as you16:27
rpadovanikenvandine, ok, if I use su to enter it works, thanks for the patience!16:28
kenvandinegreat16:28
=== gatox is now known as gatox_lunch
kalikianaelopio: it would seem ap can't deal with class relationship in qml, I got very puzzling failures (https://jenkins.qa.ubuntu.com/job/autopilot-testrunner-otto-utopic/1352/?) which make sense when you realize parent classes are as good as any wrong class name17:08
kalikianawhich in turn caused me to drop class names from the test cases now17:08
kalikianait wouldn't be useful to specify Button11 just because the version of the Button internally happens to be that when it has no relevance whatsoever17:08
elopiokalikiana: yes, we had that when t1mp added a new Page version.17:12
elopioI'm not sure how to solve it.17:12
elopiowe could change some things to ignore the version.17:12
t1mpkalikiana, elopio I just commented about that https://code.launchpad.net/~ubuntu-sdk-team/ubuntu-ui-toolkit/strokeColor/+merge/223944/comments/54752517:12
kalikianaelopio: https://bugs.launchpad.net/autopilot-qt/+bug/134167117:13
ubot5Ubuntu bug 1341671 in Autopilot Qt Support "Versioned QML classes are no longer recognized by their public type name" [Undecided,New]17:13
elopiobut the version will be useful at some point17:13
elopiothere might be features on TextField10 that are not on TextField1117:13
elopioso it might make sense to have a different autopilot helper for each one.17:13
elopiowhat's really sad is that the change from Button to Button10 will affect all the existing suites :'(17:14
t1mpelopio: in kalikiana's case, there is no Button10, but Button11 is added which is a subclass of Button17:15
elopiot1mp: ok, that's a little better because then in order to use the Button11 you will have to change the QML, right?17:15
kalikianait seems that ap uses the internal filename as the classname, and because it doesn't recognize parent classes will fail17:16
t1mpelopio: depending on your import (Ubuntu.Components 1.0 vs 1.1) you get Button.qml or Button11.qml17:16
elopiot1mp: so I don't understand why with your update we got Page10.17:16
kalikianaelopio: Button 1.1 Button11.qml17:16
kalikianathe first one is the public name that is usable in QML17:16
kalikianathe last one is the filename that autopilot uses17:17
t1mpelopio: I renamed Page.qml to Page10.qml, and put Page 1.0 Page.qml in the qmldir17:17
t1mpelopio: it depends on the filename, not the classname17:17
elopiot1mp: got it. So it seems that kalikiana's way it's saner for the current tests.17:17
kalikianaelopio: what possibly is teh case is that QML internally assigns the filename, with the public classname as the parent class, which ap can't deal with17:17
t1mpelopio: so when you import Ubuntu.Components 1.1, with kalikiana's MR, when you use Button somewhere, you get it from Button11.qml and autopilot uses Button11 for classname17:17
elopiokalikiana: and I'm not sure what to do about it. That's how qt presents the object tree to autopilot.17:17
kalikianaelopio: how about support for class hierarchies :-)17:18
elopioI think that's doable. I opened a bug about that.17:18
kalikiananot directly related but would in theory solve it17:18
t1mpelopio: is there a select_single() that doesn't take the classname as a parameter?17:18
t1mponly objectName17:18
elopiooh, but you mean, to select Button because Button11 inherits from it?17:19
kalikiana"a" is "the" in this case17:19
kalikianajust leave it out17:19
kalikiana^^^t117:19
t1mpkalikiana: ?17:19
elopiokalikiana: I have no idea, but I think that qt strips that information out. That's not available at run time.17:19
kalikianat1mp: just don't pass the class name ;-)17:19
elopiot1mp: select_single(objectName='testbutton')17:19
elopiothat works. But not on all the cases.17:20
t1mpkalikiana: if we would change AP to use Button11, we probably break app tests that import 1.017:20
elopioif you want to return a TextField autopilot class, and testbutton is TextField11, autopilot will return something generic.17:20
elopioI think that we need a long discussion with thomi and veebers about how to handle versions.17:21
kalikianaelopio: that's what I meant yes, I would expect that QML runtime knows that a Button11 is a Button and also an AbstractButton17:21
kalikianaand so should AP17:21
t1mpkalikiana: we could select the Button11, and if that fails, try again to select Button17:21
t1mpthat's a bit of a hack17:21
kalikianat1mp: in this particular instance (stroke button) I just dropped all class names17:22
elopioI have no good solution with the current tools, and I don't know enough about the internals to get a good picture of what's possible.17:22
kalikianaelopio: would it be evil for AP to parse qmldir files? :-D17:22
elopiokalikiana, t1mp: with buttons is not a big problem, because they don't have custom proxy objects17:22
t1mpoh wait a second... the failures are in the tests for the CPOs..17:22
elopioand probably they will never have one, so just drop the type and select by objectName17:22
t1mpI am sure a lot of apps use select_single('Button', 'buttonName'). They would all break when we introduce Button1117:23
elopioit becomes a problem when you have a CPO, and the name of that CPO needs to match the type of the QML.17:23
elopiot1mp: you said they have to import from versioni 1.1 in order to break.17:23
t1mp*^those apps that import Ubuntu.Components 1.1 would get broken AP tests17:23
kalikianaindeed they probably will17:24
elopiooh, they just have to import Ubuntu.Components. Yes, that's going to be painful.17:24
t1mpelopio: yes. We don't want all apps that import 1.1 to have broken AP tests17:24
elopioI'm not sure how to arrange a meeting with you guys and the autopilot guys.17:24
elopiothey usually start working in 2 hours, that's too late for you.17:24
t1mpwhere do the classnames come from? qt or ap?17:25
elopiot1mp: from qt, afaik17:25
t1mpthat makes things more complicated for us to fix17:26
elopiobut I think there are a couple of tricks that autopilot could do to improve the class name it gets. At least that's what I overheard from one related discussion.17:26
t1mpelopio: we could have a select_button() in a CPO... but that's probably too much over-engineering17:26
t1mpand still needs updates to the app AP tests17:27
elopiot1mp: kalikiana: I will explain the problem to them today. What's the latest you guys could stay for a meeting tomorrow?17:27
t1mpelopio: I'm flexible, no real deadline17:28
beunojdstrand, if you keep fixing things for me, you'll train me to play chicken with you in merge proposals!17:28
jdstrandbeuno: hehe, I have a pending mp for the security counterpart, perhaps you can review it when I submit to pay back the favor?17:28
elopiook, I will ask them the earliest they can get up, and arrange a meeting for tomorrow.17:28
beunojdstrand, sure, go a link handy?17:29
jdstrandI haven't submitted it yet. I want to build it and install it on an older release (I removed all the apparmor deps)17:29
jdstrandbeuno: but if you want to start looking at it: https://code.launchpad.net/~jdstrand/click-reviewers-tools/decouple-security17:30
beunojdstrand, I'll take a peak17:32
jdstrandthanks17:33
beunojdstrand, so what's the plan with updating the policy?17:40
beunoupdate it in-branch17:40
beunoas opposed to how we're doing with frameworks?17:40
jdstrandbeuno: it will be part of release cycle duties (for the new policy version) and then update in branch17:40
jdstrandI might write a script to make that easier, but that isn't for today17:41
jdstrandthat script could run a tool17:41
jdstrandsaid tool is exactly the tool I am trying to decouple though17:41
beunoright17:41
beunojdstrand, I'm thinking about the SDK, for example17:41
jdstrandso it is like what you guys did, minus the web service17:42
beunowouldn't we want it to have a way to pull in new policies out-of-band?17:42
jdstrandclick-reviewers-tools is currently backported to older releases17:42
=== gatox_lunch is now known as gatox
jdstrandthis makes that even easier (you don't have to pull back apparmor or apparmor-easyprof-ubuntu)17:43
jdstrandso, we'd just upload to the sdk ppa17:43
beunoright17:43
beunobut17:43
jdstrandlike we are now, but it would actually work and be easy17:43
beunosome people won't use the PPA17:43
beunosome people don't update frequently17:43
beunoso we've been talking about having the SDK pull in some pieces directly17:44
jdstrandI guess I could put said json in a bzr branch like you guys did17:44
beunojdstrand, I can do that if you want17:44
beunofinish the branch, and I'll follow up17:44
beunofigure out the right webservice, make sure it's easy for you to access and update, etc17:44
jdstrandthat would be great. I need to catch up on the plethora of new click hooks that have no reviews17:45
beunojdstrand, good, so I'll feel like we're even again17:45
jdstrandheh, what I did was miniscule compared to what I imagine you are going to do :P17:45
jdstrandbut maybe it'll just be a few minutes since the framework script is already in place17:46
beunojdstrand, yeah, should be easy and will let me pretend I'm a developer again17:47
jdstrandheh17:47
ahayzenballoons, yey merge conflicts \o/17:53
balloons:-)17:54
balloonsthought you'd like that17:54
ahayzen:)17:54
ahayzenballoons, that one will need ap tests rewriting quite a bit if we decide to use it anyway17:55
ahayzenballoons, as it has quite a bit of ui changes ....ah actually i have a 'take-2' version which i think will be preferred i'll mp that one instead :)17:55
balloonsheh17:55
ahayzenballoons, too many things!17:57
ahayzent1mp, damn the pages moving inside pagestack didn't resolve the issue i'll try to create an example mini-app tonight18:05
jdstrandbeuno: ok, I requested a merge review from you18:08
beunojdstrand, on it18:09
ahayzent1mp, and the activeLeafNode is stating the correct page18:10
t1mpahayzen: weird18:10
balloonsgerlowskija, ping18:18
balloonsgerlowskija, so if needed, I was hoping to help you land https://code.launchpad.net/~gerlowskija/ubuntu-calendar-app/revised-fix-for-bug1334883/+merge/22604918:19
mhall119popey: https://bugs.launchpad.net/ubuntu-calendar-app/+bug/134169718:49
ubot5Ubuntu bug 1341697 in Ubuntu Calendar App "Future instances of repeat events not showing after sync" [Undecided,New]18:49
mhall119popey: it seems that the calendar app does in fact know about the events, it's just not showing them on the day and week views18:49
mhall119agenda view is fine18:49
kenvandinet1mp, think you could help advise someone on a problem using QSceneGraph stuff?18:54
kenvandineor anyone else that might be familiar with it?18:55
kenvandinet1mp, rodrigo_golive is porting the ImageLayer in bacon2d to use it, and almost has it working... looking for someone to help unblock him18:55
rodrigo_golivehey18:56
rodrigo_golivet1mp: yup, I'm trying to create a "infinite" scrolling look on an image, but I can't figure out how to do it18:57
rodrigo_goliveone of my failed attempts can be seem on this video https://www.youtube.com/watch?v=KuMPQFauecY18:57
kenvandineah the speed of bacon video :)18:58
rodrigo_golivetee hee18:59
ahayzenkalikiana, ping19:03
kenvandinebzoltan2, are you a scene graph guru or can you suggest someone that might be able to answer a couple questions?19:03
gerlowskijaballoons: Sorry for the delay balloons, are you still around?19:18
t1mpkenvandine, rodrigo_golive I'm not really familiar with it.. although I wish I was (didn't have time yet to dive into it)19:24
kenvandinet1mp, any suggestions who we might be able to ask?19:24
rodrigo_golivet1mp: hehe, no problem19:25
t1mploicm but I don't see him online now19:25
kenvandinet1mp, ok, thx!19:26
t1mpwhat's an infinite scrolling look? you can use a shader that has a tiling texture as input19:26
kenvandinei think that's basically what you're doing, right rodrigo_golive?19:26
rodrigo_goliveuhmm19:27
kenvandineat least in a former revision it kind of looks like it19:27
rodrigo_golivekenvandine, t1mp: nice point, I'll look on how to use a shader to do it19:28
kenvandineah, not using a shader19:28
kenvandinemaybe that'll help you :)19:28
rodrigo_goliveprobably it will solve our issue19:28
kenvandinet1mp, you rock, as always!19:29
rodrigo_golivethank you t1mp, will post the result later ;019:29
rodrigo_golive;)19:29
t1mprodrigo_golive: if you are doing c++ code, probably you need to use glTexParameter() to set GL_TEXTURE_WRAP_S to GL_REPEAT, see https://www.khronos.org/opengles/sdk/docs/man/xhtml/glTexParameter.xml19:31
t1mpmaybe I'm wrong, it has been a while since I worked with that19:31
rodrigo_golivet1mp: will look at this, I was trying to work just with qt5 functions; but using a shader will be ok ;)19:34
t1mpgood luck :)19:35
kenvandinet1mp, thanks again!19:35
t1mpnp19:36
rodrigo_golivethanks!19:38
nik90_mzanetti: for the most part, lp:~nik90/ubuntu-clock-app/10-world-clocks is ready :). I just need to add more cities to the XML file since I rushed that a little bit. Next stop u1dbTimeZoneModel.19:43
mzanettinik90_: cool. want me to have a look?19:43
nik90_mzanetti: if you have time, please do at https://code.launchpad.net/~nik90/ubuntu-clock-app/10-world-clocks/+merge/22673819:44
mzanettiuh, that's a long one19:44
nik90_mzanetti: ignore the qml and xml file part. I will get someone else to review the ui code19:45
nik90_mzanetti: the c++ part would be enough19:45
bzoltan2kenvandine:  I am not one of them... but shoot, what is the problem. i will find the  right dude19:47
* nik90_ wonders if renatu is renato19:47
renatuyes :D19:48
nik90_renatu: I am planning to take the FastScroll.qml from the address book to use in the clock app. Would I need FastScroll.js as well?19:48
nik90_renatu: It looks like https://bazaar.launchpad.net/~phablet-team/address-book-app/trunk/view/head:/src/imports/Ubuntu/Contacts/FastScroll.qml is independant of other components.19:49
nik90_nvr mind, I see it imports FastScroll.js19:49
renatunik90_, yes, but this component is not generic, probably you will need do a lot of changes19:49
renatuthis is very specific for address-book app19:50
nik90_renatu: oh19:50
nik90_renatu: the designers asked me to implement the same visual as the address book list view for the clock app as well.19:50
renatuits only works for alphabetical list19:50
nik90_renatu: mine is an alphabetical list as well. It is world city list19:51
ahayzenfastscroll would be nice for music-app as well.... wasn't this on the sdk list?19:51
nik90_ahayzen: yes, but I am not sure when that would land.19:51
renatunik90_, then should be easy to use, but you will need a few changes19:51
ahayzennik90_, yeah19:51
renatunik90_, and still some small bugs to fix19:52
nik90_renatu: ok19:52
nik90_renatu: I will try using it and see how it goes19:52
renatunik90_, ping me if you need any help19:52
nik90_renatu: will do, thnx19:52
kenvandinebzoltan2, i think t1mp got him unblocked, thx19:53
mzanettinik90_: https://code.launchpad.net/~nik90/ubuntu-clock-app/10-world-clocks/+merge/226738/comments/54760919:55
nik90_mzanetti: sweet thnx. taking a look at the inline comments19:55
nik90_mzanetti: if we don't want people to use the base TimeZoneModel, do we need to declare it as a type in the backend.cpp?19:58
mzanettinik90_: hmmm... right now we don't, no. However, you could for example do something like this:19:59
mzanettiTimeZoneModel *backend->getTimeZoneModel();19:59
mzanettiand then in there return a different one. depending on some setting for example19:59
mzanettiso QML would just use it with the data prefilled and without knowing where the data comes from20:00
mzanettiin that case you'd need to register the base class too20:00
nik90_ah okay20:00
mzanettiif you don't intend to do such a thing you could remove the registerType indeed20:00
nik90_I will remove it and register it when the need comes20:01
mzanettiyep20:01
ahayzent1mp, i have a broken example app and a test plan that makes it fail :)20:29
ahayzent1mp,https://code.launchpad.net/~andrew-hayzen/+junk/test-tabs-search-issue and http://pastebin.ubuntu.com/7795273/20:29
rpadovani100balls is on the store \o/ If you want to lost your weekly productivity, try it ;-)21:35
nik90_rpadovani: on a scale of 1-10 how easy is it to use Bacon2D?21:53
rpadovaninik90_, 64 :-)21:53
nik90_rpadovani: just tried out the app, the physics engine seems really fluid21:53
nik90_rpadovani: btw I have an idea :)21:53
rpadovaninik90_, I spent more time to define the design than to write code21:53
rpadovaninik90_, you definitely need to try it :-) And kenvandine helps you as a master!21:54
nik90_rpadovani: at higher levels, may be you could add a fan which blows from the side and pushes the balls to the left/right. That should make it more challenging to put the balls into the bucket21:54
rpadovaninik90_, this is an awesome idea, thanks!21:55
nik90_rpadovani: have you created a launchpad project for it?21:55
rpadovaninik90_, https://github.com/rpadovani/100balls21:55
nik90_rpadovani: sweet.21:55
rpadovaninik90_, I prefer to use GitHub because is more visible, and I could have more 'advertisment' as developer, does it make sense?21:56
nik90_rpadovani: yeah .. I put my app in Github as well :D21:56
rpadovanigreat :-)21:57
popeyrpadovani: i have a bug!22:16
popeyrpadovani: can't start the tutorial if I have already played the game22:16
popeyI didnt click the tutorial button because I'm an idiot, but started a game, to play it, and now I need to start the tutorial to figure out what I did wrong22:17
rpadovanipopey, oh, right, I forgot to remove it... I did this because I want to have a different page after the end of a game, but it's a bit stupid22:17
rpadovanipopey, well, don't lose your balls, and you'll win ;-)22:17
ahayzent1mp, i've reported a bug for the issue https://bugs.launchpad.net/ubuntu-ui-toolkit/+bug/134181422:18
ubot5Ubuntu bug 1341814 in Ubuntu UI Toolkit "Using search in the header can sometimes have a text field from a different tab" [Undecided,New]22:18
popeyrpadovani: high score text needs to be bigger IMO22:18
ahayzennik90_, have you used the search yet? i'm sure i asked before but i can't remember what you said22:19
nik90_ahayzen: yeah I just started using it. lp:~nik90/ubuntu-clock-app/10-world-clocks22:20
ahayzennik90_, are you able to confirm ^^ bug... or spot/fix anything in the code within the branch?22:20
ahayzennik90_, something crazy is going on... it is like the textfield from the other tab is shown...so obviously when you search nothing happens in the page you can see22:21
nik90_ahayzen: hmm I am not facing that bug though22:25
ahayzennik90_, no i mean can you get it using the example branch22:25
nik90_ahayzen: I implemented search and it seems to be working fine although I have the search mode only in 1 page if that matters22:25
rpadovanipopey, you're right :-) I fixed both, in next days I'll update a new version22:26
ahayzennik90_, yeah it is only 1 page i don't think you'll suffer the issue22:26
nik90_ahayzen: but I will check out your example branch22:27
ahayzennik90_, thanks :)22:27
ahayzennik90_, the test plan i wrote in the bug report worked for me twice in a row22:28
=== ondra is now known as ondra|away

Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!