=== 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 [08:04] Good morning all; happy Monday and happy Shark Awareness Day! :-D === toby is now known as Guest41280 [08:29] help [08:30] is there an emulator for the touch tablet (not phone)? [08:33] # [08:33] ? [08:34] not sure how to use irc ... do i just ask a question? [08:37] @ [08:37] Guest41280, yes [08:38] ahh 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:48] hi 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 available [08:50] morning zbenjamin. Quick question: I've noticed sometimes QtC projects create an .excludes file. What is that file for? [08:55] hi 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:56] Guest41280, yes, either the Nexus 10 or the Nexus 7 (2013 version) are still supported as hardware reference for development [08:56] Fantastic, I'll go and buy one - thanks again! [09:05] dpm: 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/226611 [09:05] dpm: it's based on top of the wheretheissat tutorial and explains how to use Qt models with QML [09:06] mzanetti, oh wow, thanks [09:10] bzoltan: what is the .excludes file for that are created by some projects? i think that was before my time [09:11] zbenjamin: the purpose of the .excludes is to filter out development files before packaging the qml apps [09:11] dpm: ^ [09:12] zbenjamin: kind of inverse of the .install in the good old .deb packaging [09:12] bzoltan: click build has --exclude? [09:13] ah no , rsync does === chihchun is now known as chihchun_afk [09:45] mzanetti: btw thnx, I am wrapping my head around the MP :) [09:45] nik90_: :) don't hesitate to ask if you don't understand something === chriadam is now known as chriadam|away [09:46] 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:47] mzanetti: in the main page, the u1db database would be read, and the cities chosen by the user will be shown [09:47] nik90_: sure, the model can fetch data from wherever you want [09:47] nik90_: hmm... you don't happen to know if there's Qt api for U1DB? [09:48] mzanetti: not sure, the main project is housed at https://launchpad.net/u1db-qt [09:48] mzanetti: I believe the API was ported from python to QML. [09:50] nik90_: ok, looks good [09:53] nik90_: didn't really understand it though... do you want to show the u1db entries aggregated with the xml file? [09:54] mzanetti: no the u1db database will only hold the cities, timezoneid, country (similar to the xml model) chosen by the user. [09:55] nik90_: 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:56] 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:57] ahh.. now I get it :D [09:57] mzanetti: let me grab the design spec for you [09:57] mzanetti: main clock page at https://docs.google.com/presentation/d/1Kkl7xT8BYo9mT8i3IXh6rPrDlNg6cBxTajahlRYIGlI/edit#slide=id.g18587dd40_029 [09:57] mzanetti: select a city Page at https://docs.google.com/presentation/d/1Kkl7xT8BYo9mT8i3IXh6rPrDlNg6cBxTajahlRYIGlI/edit#slide=id.g18883f09d_253 [09:59] nik90_: ok... yeah, shouldn't be too hard to create that [10:00] mzanetti: so can I use the same TimeZoneModel you created or create a new one? [10:01] nik90_: I'd probably remove the xml parsing from the TimeZoneModel [10:01] nik90_: and then create 2 subclasses: XmlTimeZoneModel and U1DBTimeZoneModel, both subclassing the existing TimeZoneModel but just having a different implementation for a load() function [10:02] one of them does the xml parsing in the load() function, the other does u1db stuff [10:02] mzanetti: ah ok [10:02] zbenjamin, 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] mzanetti: I will try that out and see how it goes [10:04] dpm: 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] nik90_: hmm... I guess I need to help you with that... [10:05] 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 out [10:05] nik90_: well, not sure about the load() function yet [10:05] nik90_: I think you'd need to move the source property into the subclass [10:05] and keep the behavior to load the xml file when the source changes [10:06] nik90_: you also need to mark m_timeZones as protected instead of private to be able to fill it in the subclass [10:06] 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 TimeZoneModel [10:06] yep [10:16] ok thanks bzoltan === Borborygmi is now known as Casmo [11:23] 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] s/check/discuss [11:28] nik90_: no, not yet. dpm ^ ☻ [11:31] 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] dpm: It will be clearly marked as "Technical Preview" by watermarking the screenshots, mentioning in the description and so on. [11:32] dpm: however, we wanted to check if you think it has the minimum quality and feature set for a technical preview. [11:32] dpm: I will also be uploading it using my account. [11:33] actually I think I did mention this to dpm last week. [11:33] popey: now you tell me :P [11:33] after all the typing [11:35] popey: btw http://imgur.com/HAVCB1c (using the QDatetime and QTimeZone classes). courtesy of mzanetti [11:36] nik90_: does the updateInterval property work for you this way? [11:36] mzanetti: it should...I set the format of the localtime to ("hh:mm) [11:38] 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 locale === MacSlow is now known as MacSlow|lunch [12:08] t1mp, 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:09] t1mp, 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 issue [12:10] 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/27 [12:10] ahayzen: 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 handy [12:10] t1mp, ok noted, i'll try that when i get back from work later to see if there is anything useful [12:11] mzanetti: I made sure that the respective setSource(), onSourceUpdated() functions were moved as well to support the Source property [12:11] I think moving the Pages into the PageStack helps :) let's see what it brings when you can test it [12:11] nik90_: hmm... strange... the code looks good [12:11] nik90_: need to compile and run it. gimme a minute [12:12] popey, nik90_, yeah, we talked about it, sounds good to me. [12:12] t1mp, hopefully :) [12:12] ahayzen: thanks for doing the effort to figure this out :) [12:12] t1mp, no problem thanks for assisting us :) [12:12] dpm: sweet thnx :) will prepare the store application tonight [12:13] excellent :) [12:13] 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:14] nik90_: found the first issue: [12:14] nik90_: this comment: "// Q_OBJECT (this is not required since we are subclassing from TimeZoneModel which is in itself a Q_OBJECT)" [12:14] nik90_: is wrong [12:15] nik90_: and the source property is not generated in face because you don't have the Q_OBJECT around [12:15] mzanetti: yup that solved it :) [12:15] nik90_: include's are not inherited, no [12:15] mzanetti: ok [12:16] nik90_: in fact, now that you moved the loadFromXml to the XmlTimeZoneModel, you should also move (not copy) the QFile include [12:16] mzanetti: yeah, I still need to do some more cleanups of the base class. I was just building and running every little thing I change [12:17] nik90_: so includes always include what you include (that doen't make much sense right now, but let me explain) [12:17] nik90_: 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 too [12:17] nik90_: but if you have an include in a .cpp file, you won't get them by including the .h file [12:17] nik90_: because you didn't include the .cpp file (hope it makes more sense now) [12:18] mzanetti: ah yes that makes sense [12:18] nik90_: that is one reason why you should try to have includes as much as possible in the .cpp file, not the .h file [12:18] 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 class [12:18] nik90_: otherwise you'll chain up includes and make the compiler do *lots* of useless work [12:19] mzanetti: scratch my last sentence then [12:19] nik90_: yes, it would, but makes the timezonemodel.h a giganitc beast [12:19] and at some point it takes like 5 mins to compile and multiplies that time in each place where you include that [12:20] mzanetti: I was trying to reduce the code but didn't realise it might cause compiler overtime. Good to know :) [12:21] nik90_: good job on the subclass. looks quite good :) [12:21] 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 functionality [12:21] mzanetti: thnx :) [12:28] mzanetti, 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:29] rpadovani: fair point... [12:29] rpadovani: don't have a correct answer to this one [12:30] rpadovani: I guess int is big enough [12:30] rpadovani: and QAbstractItemModel::rowCount() returns an int too. [12:30] rpadovani: making the count property an unsigned int would require us to convert it all the time [12:31] oook, thanks for the clarification. Approve and topapprove [12:31] or well, do something to make the compiler shut up about the implicit conversion [12:31] rpadovani: thanks. [12:32] rpadovani: regarding "I thought that when filter is undefined causes problem with the function, but works without problem, just tested" [12:32] nik90_: anchors.right: parent ? parent.right : undefined [12:33] rpadovani: see notesstore.h. the createNote() method has a default parameter for the second argument [12:33] nik90_: initially when you define the TextField it doesn't have a parent [12:33] rpadovani: ah, darn... I confused... anyways, its fine [12:33] mzanetti, yes, I saw it, I though 'undefined' override it, but I was wrong [12:34] rpadovani: well, it does, however, javascript converts undefined to "" if a string is required [12:35] hmm... maybe it even omitts it... I don't know the internals tbh [12:37] mzanetti, https://bugs.launchpad.net/ubuntu-ui-toolkit/+bug/1341559 [12:37] Ubuntu bug 1341559 in Ubuntu UI Toolkit "Model views (Listview, Repeater, OptionSelector etc..) lack a count property" [Undecided,New] [12:37] rpadovani: seems I confused you [12:37] rpadovani: ListView and Repeater do have that propety [12:37] t1mp: yup that worked :) [12:38] rpadovani: the bug should be: OptionSelector should have a count property like all the other model views === _salem is now known as salem_ [12:39] mzanetti, 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 bug === MacSlow|lunch is now known as MacSlow [13:09] mzanetti, 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 public [13:09] rpadovani: just give it an id [13:10] rpadovani: model: Notebooks { id: notebookModel } [13:10] then you can access it [13:10] actually it should also work with notebookSelector.model [13:10] rpadovani: ^ [13:11] mzanetti, ah, wow. No, with notebookSelector.model doesn't work, and I have the same problem with notebookSelector.selectedIndex [13:11] ReferenceError: notebooksSelector is not defined [13:12] rpadovani: FWIW, there's a typo on here: "ReferenceError: notebooksSelector is not defined" [13:13] kalikiana: ping [13:13] mzanetti, doh, what stupid error, thanks [13:14] :) [13:19] nik90_: pong [13:20] mzanetti, 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] kalikiana: I was just using the SortFilterModel and had some questions. [13:21] 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] kalikiana: something like filter.property: "city" && "country" === greyback is now known as greyback|lunch [13:22] nik90_: hmmm no, that won't work. you could possibly try nesting two SortFilterModel's instead [13:23] 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 filter [13:24] hmm [13:25] 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 work [13:26] in that case the API will probably need to be extended; something like "city|country" and an implementation that checks several roles [13:27] 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] kalikiana: Do you have ideas for the second question? I feel I am doing something stupid there. [13:28] nik90_: how about trying this→ filter.pattern: RegExp(searchfield.text) [13:29] rpadovani: well, but you don't check for the notebook not being specified, but for the note [13:29] rpadovani: so if there's no note, should it show really show the defaultNotebook? [13:30] rpadovani: anyways, its not critical... its mainly there just to prevent a warning in qml. if there's no note, we have bigger problems :D [13:30] mzanetti, yes, if there isn't note it means that is a new note, isn't it? [13:30] rpadovani: oh... you're right! in that case yes, 0 is correct [13:30] kalikiana: I did /(searchfield.text)/ to check for matches anywhere in the word [13:32] I'm not sure if that syntax is valid, never tried [13:32] does it actually take the value? [13:33] kalikiana: I am a bit confused at to what filter.pattern expects. Should I put the RegExp in "" or just by itself? [13:34] nik90_: 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:35] RegExp() is a function [13:36] RegExp("pattern") returns the equivalent of /pattern/ [13:36] kalikiana: ok..but when I do RegExp(), it doesn't recognize that function [13:36] kalikiana: nevermind that worked! [13:36] rpadovani: tiny mistake still in that branch [13:37] nik90_: \o/ [13:37] kalikiana: the red line indicating a function is not recognised confused me earlier :) [13:38] you may need to poke zbenjamin if it's a bug in qtc there ;-) [13:38] ;) [13:38] I feel like I have troubled him enough for this month with my cmake stuff earler [13:40] mzanetti, sorry, seems I have head in the clouds... updated [13:41] rpadovani: no worries... everything's in the cloud nowadays [13:41] :P [13:41] * nik90_ grins :) [13:41] elopio: 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] and they happen repeatedly in different places [13:43] kalikiana: btw great job on the sortfiltermodel. It is awesome! 8 lines of qml code to sort and filter your listview [13:43] ahah [13:43] nik90_: cool :-D [13:53] hey dpm :-) I have problems following http://developer.ubuntu.com/apps/sdk/tutorials/building-cross-architecture-click-applications/ [13:53] When I try to add a kit to my project it says 'Device type is not desktop' [13:54] rpadovani, can you send me a screenshot? [13:55] rpadovani, 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] just remember to restart QtC at the end - that's why my demo failed at the end :/ [13:55] dpm, wait, I need emulator installed? [13:58] rpadovani: if you want to run on the phone, then you need to have the 14.10 armhf chroot installed [13:58] rpadovani, ah, sorry, no, if you want to create a kit for the phone, you don't need the emulator, I misread the message === greyback|lunch is now known as greyback [13:58] rpadovani: if on the emulator, you need the 14.10 i386 chroot [13:58] rpadovani, but in any case, it's exactly the same process [14:03] dpm, this is the error: http://oi62.tinypic.com/2eppx1x.jpg [14:09] oSoMoN, o/ Do you have 10 minutes? I have some problems with userscript implementing Oxide in the reminders app [14:09] rpadovani, not right now, can you ping me again in 30min? [14:10] sure, thanks [14:10] rpadovani: did you open the .qmlproject or the cmakelist.txt file? [14:11] nik90_, the qmlproject, I haven't cmake because there isn't c++ code [14:11] * rpadovani is a bit confusing on how projects work [14:12] rpadovani: that's why you get the error [14:12] rpadovani: it only works with CmakeList.txt projects [14:12] rpadovani: then why would you need to cross-build if it doesn't have any c++ code? [14:13] 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:14] nik90_, 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 understand [14:15] rpadovani, i don't think cross builds will work :/ [14:15] at least not easily [14:15] kalikiana: that's qmlscene crashing. [14:15] https://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] it has started happening more often last week. [14:16] kenvandine, 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:20] rpadovani, give me 30m or so, and i'll query you [14:20] thanks :-) [14:30] mzanetti: hmm with your TimeZoneModel class, we would no longer need the Zone class (zone.cpp and zone.h) [14:32] nik90_: nope, we don't [14:32] nik90_: I just didn't delete it because I didn't want to delete all the comments I wrote for you [14:33] nik90_: once you read them (or if you don't care about them), feel free to delete the Zone class [14:33] mzanetti: I saved it locally to preserve the comments since they were quite handy. [14:34] nik90_: yup, then just drop the Zone class... [14:35] 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] int rowCount(const QModelIndex &parent) const override; [14:35] nik90_: right... we should enable C++11 [14:35] nik90_: in the standup atm. will let you know how in a bit [14:36] mzanetti: np [14:38] 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:39] s/sub-mailboxes/ subfolders/ [15:07] nik90_: https://code.launchpad.net/~mzanetti/ubuntu-clock-app/enable-c++11/+merge/226690 [15:08] nik90_: 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 class [15:08] oSoMoN, ping for Oxide in reminders, if you have time :-) Otherwise, tomorrow [15:08] mzanetti: hey btw I replaced the Class TimeZone with a struct instead. http://paste.ubuntu.com/7793892/ [15:09] rpadovani, hey, sure, what’s the problem? [15:09] mzanetti: is that okay? [15:10] oSoMoN, 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 work [15:10] https://code.launchpad.net/~rpadovani/reminders-app/upgradeToOxide/+merge/225737 [15:12] let me check the code [15:14] oSoMoN, 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 wrong [15:16] elopio: so… if qmlscene is crashing. can we correlate that with anything like unity or qt updates? [15:16] rpadovani, you need a "context" property on your UserScript, and add that context to the "contexts" list property of the ScriptMessageHandler [15:17] rpadovani, your ScriptMessageHandler also needs a "msgId" property to identify which messages it handles [15:17] oSoMoN, ok, I imagined this. How can I set my msgId from the script? [15:17] rpadovani, and the callback function takes two parameters, message, and frame [15:18] oSoMoN, and the context could be anything I want? [15:18] oSoMoN, frame? What frame? The id of the webview? [15:18] rpadovani, oxide.sendMessage(msgId, data), and the context is usually a pseudo-URL, for example "reminders://todo" [15:19] rpadovani, no, the webframe the script applies to (you can safely ignore that parameter, but you probably need to add it to the method signature anyway [15:20] oSoMoN, ok, thanks for explanations. I'll try to implement it [15:20] rpadovani, and instead of Oxide.sendMessage(JSON.stringify(message)), you need oxide.sendMessage(msgId, message) [15:21] rpadovani, (note how oxide is not capitalized here) [15:23] oSoMoN, oh, wow, thanks! I'll update you :-) [15:25] yw :) [15:35] oSoMoN, wow, now works :-) I have a doubt on message: in the ScriptMessageHandler the message is OxideQQuickScriptMessage. How can I access to its data? [15:37] rpadovani, message.args is the object you sent from the other end, in the user script [15:38] rpadovani, so you can access message.args.todoId and message.args.checked [15:38] oSoMoN, it works \o/ Thanks, you have a paid beer :-) [15:38] rpadovani, deal :) [15:39] rpadovani, next time you see chrisccoulson, you might want to buy him a beer or two as well, he’s the oxide mastermind :) [15:40] sure :-) [15:41] dpm, thanks to oSoMoN now works :-) https://code.launchpad.net/~rpadovani/reminders-app/upgradeToOxide/+merge/225737 [15:41] I wouldn't turn down a beer :) [15:42] rpadovani, in the message handler, you can remove the try…catch block, there’s no parsing to do anymore [15:44] ok, thanks [15:51] rpadovani, awesome, let me look at your screen capture now (sorry, I was otp earlier on) [15:52] nik90_: yeah, that's fine [15:53] dpm, 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 updated [15:53] but no proposed repos [15:54] rpadovani, can you send me another screenshot of the kit page? [15:55] for the record, I've got the Qt version set as None too, and it works. I think it's ignored anyway [15:57] dpm, here (all 3 screenshots) http://people.ubuntu.com/~rpadovani/sdk/ [15:58] dpm, If is set to 'none' I haven't it in the list of Configure project page [16:01] dpm, 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 weird [16:03] kalikiana: https://bugs.launchpad.net/ubuntu-app-launch/+bug/1329141 [16:03] Ubuntu bug 1329141 in qtubuntu (Ubuntu) "qmlscene crashed while running test_can_launch_multiple_applications" [Undecided,Incomplete] [16:03] rpadovani, 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.png [16:04] kalikiana: what we need is somebody that can understand the crash and find a cause. [16:04] we 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:05] dpm, the only difference it's my device is called 'Ubuntu Device' and not 'Nexus 4' [16:05] rpadovani, that's fine, I manually changed the name to recognize the device [16:05] in the same way that I tend to append the Ubuntu image version to all emulator devices I create now [16:07] dpm, ok, bah, now works, sorry for the disturb [16:11] dpm, 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 found [16:12] rpadovani, what are you trying to do? Are you compiling reminders for the phone? [16:12] dpm, no, bacon2D, I have to compile it, then put in the root of my project and build a click package [16:14] rpadovani, just build it manually in the chroot :) [16:14] i gave up on making it cross build in qtcreator, since it uses qmake, etc [16:14] and the submodules [16:14] kenvandine, what uses qmake? bacon2D? [16:14] yeah [16:14] and qml-box2d [16:14] ahhh [16:14] which is also a submodule [16:15] submodule of bacon2d that is [16:15] kenvandine, how I build in a chroot? Sorry, but I never did something like this... [16:17] schroot -l [16:17] to list the chroots [16:17] you should have one created by qtcreator [16:17] schroot -c utopic-armhf [16:17] to enter one [16:17] just use the name you see in the list [16:17] then go to your bacon2d checkout [16:17] and build [16:17] you'll need to install the build depends though [16:18] rpadovani, if you look at my bacon2d repo, look at the packaging branch [16:18] in debian/control [16:18] for a list of the build depends [16:18] you can install those in the chroot [16:18] then [16:19] mkdir armhf [16:19] cd armhf [16:19] qmake .. [16:19] make [16:19] ok, thanks very much kenvandine :-) I have two chroots: [16:19] chroot:click-ubuntu-sdk-14.10-armhf [16:19] source:click-ubuntu-sdk-14.10-armhf [16:19] then you can build the click on your host machine [16:19] what's the one? [16:19] schroot -c click-ubuntu-sdk-14.10-armhf [16:20] when you exit the schroot, it'll wipe out your changes to the chroot [16:20] you'll have access to your homedir and stuff while in the chroot [16:20] so you can build in your current checkout [16:25] kenvandine, 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:26] oh... i guess you need to enter it as root [16:26] so add a -u root [16:26] or [16:26] maybe you can su [16:26] ? [16:27] because you'll want to build as you [16:28] kenvandine, ok, if I use su to enter it works, thanks for the patience! [16:28] great === gatox is now known as gatox_lunch [17:08] elopio: 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 name [17:08] which in turn caused me to drop class names from the test cases now [17:08] it wouldn't be useful to specify Button11 just because the version of the Button internally happens to be that when it has no relevance whatsoever [17:12] kalikiana: yes, we had that when t1mp added a new Page version. [17:12] I'm not sure how to solve it. [17:12] we could change some things to ignore the version. [17:12] kalikiana, elopio I just commented about that https://code.launchpad.net/~ubuntu-sdk-team/ubuntu-ui-toolkit/strokeColor/+merge/223944/comments/547525 [17:13] elopio: https://bugs.launchpad.net/autopilot-qt/+bug/1341671 [17:13] Ubuntu bug 1341671 in Autopilot Qt Support "Versioned QML classes are no longer recognized by their public type name" [Undecided,New] [17:13] but the version will be useful at some point [17:13] there might be features on TextField10 that are not on TextField11 [17:13] so it might make sense to have a different autopilot helper for each one. [17:14] what's really sad is that the change from Button to Button10 will affect all the existing suites :'( [17:15] elopio: in kalikiana's case, there is no Button10, but Button11 is added which is a subclass of Button [17:15] t1mp: ok, that's a little better because then in order to use the Button11 you will have to change the QML, right? [17:16] it seems that ap uses the internal filename as the classname, and because it doesn't recognize parent classes will fail [17:16] elopio: depending on your import (Ubuntu.Components 1.0 vs 1.1) you get Button.qml or Button11.qml [17:16] t1mp: so I don't understand why with your update we got Page10. [17:16] elopio: Button 1.1 Button11.qml [17:16] the first one is the public name that is usable in QML [17:17] the last one is the filename that autopilot uses [17:17] elopio: I renamed Page.qml to Page10.qml, and put Page 1.0 Page.qml in the qmldir [17:17] elopio: it depends on the filename, not the classname [17:17] t1mp: got it. So it seems that kalikiana's way it's saner for the current tests. [17:17] elopio: 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 with [17:17] elopio: 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 classname [17:17] kalikiana: and I'm not sure what to do about it. That's how qt presents the object tree to autopilot. [17:18] elopio: how about support for class hierarchies :-) [17:18] I think that's doable. I opened a bug about that. [17:18] not directly related but would in theory solve it [17:18] elopio: is there a select_single() that doesn't take the classname as a parameter? [17:18] only objectName [17:19] oh, but you mean, to select Button because Button11 inherits from it? [17:19] "a" is "the" in this case [17:19] just leave it out [17:19] ^^^t1 [17:19] kalikiana: ? [17:19] kalikiana: I have no idea, but I think that qt strips that information out. That's not available at run time. [17:19] t1mp: just don't pass the class name ;-) [17:19] t1mp: select_single(objectName='testbutton') [17:20] that works. But not on all the cases. [17:20] kalikiana: if we would change AP to use Button11, we probably break app tests that import 1.0 [17:20] if you want to return a TextField autopilot class, and testbutton is TextField11, autopilot will return something generic. [17:21] I think that we need a long discussion with thomi and veebers about how to handle versions. [17:21] elopio: that's what I meant yes, I would expect that QML runtime knows that a Button11 is a Button and also an AbstractButton [17:21] and so should AP [17:21] kalikiana: we could select the Button11, and if that fails, try again to select Button [17:21] that's a bit of a hack [17:22] t1mp: in this particular instance (stroke button) I just dropped all class names [17:22] I 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] elopio: would it be evil for AP to parse qmldir files? :-D [17:22] kalikiana, t1mp: with buttons is not a big problem, because they don't have custom proxy objects [17:22] oh wait a second... the failures are in the tests for the CPOs.. [17:22] and probably they will never have one, so just drop the type and select by objectName [17:23] I am sure a lot of apps use select_single('Button', 'buttonName'). They would all break when we introduce Button11 [17:23] it becomes a problem when you have a CPO, and the name of that CPO needs to match the type of the QML. [17:23] t1mp: you said they have to import from versioni 1.1 in order to break. [17:23] *^those apps that import Ubuntu.Components 1.1 would get broken AP tests [17:24] indeed they probably will [17:24] oh, they just have to import Ubuntu.Components. Yes, that's going to be painful. [17:24] elopio: yes. We don't want all apps that import 1.1 to have broken AP tests [17:24] I'm not sure how to arrange a meeting with you guys and the autopilot guys. [17:24] they usually start working in 2 hours, that's too late for you. [17:25] where do the classnames come from? qt or ap? [17:25] t1mp: from qt, afaik [17:26] that makes things more complicated for us to fix [17:26] but 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] elopio: we could have a select_button() in a CPO... but that's probably too much over-engineering [17:27] and still needs updates to the app AP tests [17:27] t1mp: kalikiana: I will explain the problem to them today. What's the latest you guys could stay for a meeting tomorrow? [17:28] elopio: I'm flexible, no real deadline [17:28] jdstrand, if you keep fixing things for me, you'll train me to play chicken with you in merge proposals! [17:28] beuno: 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] ok, I will ask them the earliest they can get up, and arrange a meeting for tomorrow. [17:29] jdstrand, sure, go a link handy? [17:29] I haven't submitted it yet. I want to build it and install it on an older release (I removed all the apparmor deps) [17:30] beuno: but if you want to start looking at it: https://code.launchpad.net/~jdstrand/click-reviewers-tools/decouple-security [17:32] jdstrand, I'll take a peak [17:33] thanks [17:40] jdstrand, so what's the plan with updating the policy? [17:40] update it in-branch [17:40] as opposed to how we're doing with frameworks? [17:40] beuno: it will be part of release cycle duties (for the new policy version) and then update in branch [17:41] I might write a script to make that easier, but that isn't for today [17:41] that script could run a tool [17:41] said tool is exactly the tool I am trying to decouple though [17:41] right [17:41] jdstrand, I'm thinking about the SDK, for example [17:42] so it is like what you guys did, minus the web service [17:42] wouldn't we want it to have a way to pull in new policies out-of-band? [17:42] click-reviewers-tools is currently backported to older releases === gatox_lunch is now known as gatox [17:43] this makes that even easier (you don't have to pull back apparmor or apparmor-easyprof-ubuntu) [17:43] so, we'd just upload to the sdk ppa [17:43] right [17:43] but [17:43] like we are now, but it would actually work and be easy [17:43] some people won't use the PPA [17:43] some people don't update frequently [17:44] so we've been talking about having the SDK pull in some pieces directly [17:44] I guess I could put said json in a bzr branch like you guys did [17:44] jdstrand, I can do that if you want [17:44] finish the branch, and I'll follow up [17:44] figure out the right webservice, make sure it's easy for you to access and update, etc [17:45] that would be great. I need to catch up on the plethora of new click hooks that have no reviews [17:45] jdstrand, good, so I'll feel like we're even again [17:45] heh, what I did was miniscule compared to what I imagine you are going to do :P [17:46] but maybe it'll just be a few minutes since the framework script is already in place [17:47] jdstrand, yeah, should be easy and will let me pretend I'm a developer again [17:47] heh [17:53] balloons, yey merge conflicts \o/ [17:54] :-) [17:54] thought you'd like that [17:54] :) [17:55] balloons, that one will need ap tests rewriting quite a bit if we decide to use it anyway [17:55] balloons, 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] heh [17:57] balloons, too many things! [18:05] t1mp, damn the pages moving inside pagestack didn't resolve the issue i'll try to create an example mini-app tonight [18:08] beuno: ok, I requested a merge review from you [18:09] jdstrand, on it [18:10] t1mp, and the activeLeafNode is stating the correct page [18:10] ahayzen: weird [18:18] gerlowskija, ping [18:19] gerlowskija, so if needed, I was hoping to help you land https://code.launchpad.net/~gerlowskija/ubuntu-calendar-app/revised-fix-for-bug1334883/+merge/226049 [18:49] popey: https://bugs.launchpad.net/ubuntu-calendar-app/+bug/1341697 [18:49] Ubuntu bug 1341697 in Ubuntu Calendar App "Future instances of repeat events not showing after sync" [Undecided,New] [18:49] popey: it seems that the calendar app does in fact know about the events, it's just not showing them on the day and week views [18:49] agenda view is fine [18:54] t1mp, think you could help advise someone on a problem using QSceneGraph stuff? [18:55] or anyone else that might be familiar with it? [18:55] t1mp, rodrigo_golive is porting the ImageLayer in bacon2d to use it, and almost has it working... looking for someone to help unblock him [18:56] hey [18:57] t1mp: yup, I'm trying to create a "infinite" scrolling look on an image, but I can't figure out how to do it [18:57] one of my failed attempts can be seem on this video https://www.youtube.com/watch?v=KuMPQFauecY [18:58] ah the speed of bacon video :) [18:59] tee hee [19:03] kalikiana, ping [19:03] bzoltan2, are you a scene graph guru or can you suggest someone that might be able to answer a couple questions? [19:18] balloons: Sorry for the delay balloons, are you still around? [19:24] kenvandine, 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] t1mp, any suggestions who we might be able to ask? [19:25] t1mp: hehe, no problem [19:25] loicm but I don't see him online now [19:26] t1mp, ok, thx! [19:26] what's an infinite scrolling look? you can use a shader that has a tiling texture as input [19:26] i think that's basically what you're doing, right rodrigo_golive? [19:27] uhmm [19:27] at least in a former revision it kind of looks like it [19:28] kenvandine, t1mp: nice point, I'll look on how to use a shader to do it [19:28] ah, not using a shader [19:28] maybe that'll help you :) [19:28] probably it will solve our issue [19:29] t1mp, you rock, as always! [19:29] thank you t1mp, will post the result later ;0 [19:29] ;) [19:31] rodrigo_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.xml [19:31] maybe I'm wrong, it has been a while since I worked with that [19:34] t1mp: will look at this, I was trying to work just with qt5 functions; but using a shader will be ok ;) [19:35] good luck :) [19:35] t1mp, thanks again! [19:36] np [19:38] thanks! [19:43] 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] nik90_: cool. want me to have a look? [19:44] mzanetti: if you have time, please do at https://code.launchpad.net/~nik90/ubuntu-clock-app/10-world-clocks/+merge/226738 [19:44] uh, that's a long one [19:45] mzanetti: ignore the qml and xml file part. I will get someone else to review the ui code [19:45] mzanetti: the c++ part would be enough [19:47] kenvandine: I am not one of them... but shoot, what is the problem. i will find the right dude [19:47] * nik90_ wonders if renatu is renato [19:48] yes :D [19:48] 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:49] 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] nvr mind, I see it imports FastScroll.js [19:49] nik90_, yes, but this component is not generic, probably you will need do a lot of changes [19:50] this is very specific for address-book app [19:50] renatu: oh [19:50] renatu: the designers asked me to implement the same visual as the address book list view for the clock app as well. [19:50] its only works for alphabetical list [19:51] renatu: mine is an alphabetical list as well. It is world city list [19:51] fastscroll would be nice for music-app as well.... wasn't this on the sdk list? [19:51] ahayzen: yes, but I am not sure when that would land. [19:51] nik90_, then should be easy to use, but you will need a few changes [19:51] nik90_, yeah [19:52] nik90_, and still some small bugs to fix [19:52] renatu: ok [19:52] renatu: I will try using it and see how it goes [19:52] nik90_, ping me if you need any help [19:52] renatu: will do, thnx [19:53] bzoltan2, i think t1mp got him unblocked, thx [19:55] nik90_: https://code.launchpad.net/~nik90/ubuntu-clock-app/10-world-clocks/+merge/226738/comments/547609 [19:55] mzanetti: sweet thnx. taking a look at the inline comments [19:58] 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:59] nik90_: hmmm... right now we don't, no. However, you could for example do something like this: [19:59] TimeZoneModel *backend->getTimeZoneModel(); [19:59] and then in there return a different one. depending on some setting for example [20:00] so QML would just use it with the data prefilled and without knowing where the data comes from [20:00] in that case you'd need to register the base class too [20:00] ah okay [20:00] if you don't intend to do such a thing you could remove the registerType indeed [20:01] I will remove it and register it when the need comes [20:01] yep [20:29] t1mp, i have a broken example app and a test plan that makes it fail :) [20:29] t1mp,https://code.launchpad.net/~andrew-hayzen/+junk/test-tabs-search-issue and http://pastebin.ubuntu.com/7795273/ [21:35] 100balls is on the store \o/ If you want to lost your weekly productivity, try it ;-) [21:53] rpadovani: on a scale of 1-10 how easy is it to use Bacon2D? [21:53] nik90_, 64 :-) [21:53] rpadovani: just tried out the app, the physics engine seems really fluid [21:53] rpadovani: btw I have an idea :) [21:53] nik90_, I spent more time to define the design than to write code [21:54] nik90_, you definitely need to try it :-) And kenvandine helps you as a master! [21:54] 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 bucket [21:55] nik90_, this is an awesome idea, thanks! [21:55] rpadovani: have you created a launchpad project for it? [21:55] nik90_, https://github.com/rpadovani/100balls [21:55] rpadovani: sweet. [21:56] nik90_, I prefer to use GitHub because is more visible, and I could have more 'advertisment' as developer, does it make sense? [21:56] rpadovani: yeah .. I put my app in Github as well :D [21:57] great :-) [22:16] rpadovani: i have a bug! [22:16] rpadovani: can't start the tutorial if I have already played the game [22:17] I 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 wrong [22:17] popey, 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 stupid [22:17] popey, well, don't lose your balls, and you'll win ;-) [22:18] t1mp, i've reported a bug for the issue https://bugs.launchpad.net/ubuntu-ui-toolkit/+bug/1341814 [22:18] Ubuntu 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] rpadovani: high score text needs to be bigger IMO [22:19] nik90_, have you used the search yet? i'm sure i asked before but i can't remember what you said [22:20] ahayzen: yeah I just started using it. lp:~nik90/ubuntu-clock-app/10-world-clocks [22:20] nik90_, are you able to confirm ^^ bug... or spot/fix anything in the code within the branch? [22:21] nik90_, 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 see [22:25] ahayzen: hmm I am not facing that bug though [22:25] nik90_, no i mean can you get it using the example branch [22:25] ahayzen: I implemented search and it seems to be working fine although I have the search mode only in 1 page if that matters [22:26] popey, you're right :-) I fixed both, in next days I'll update a new version [22:26] nik90_, yeah it is only 1 page i don't think you'll suffer the issue [22:27] ahayzen: but I will check out your example branch [22:27] nik90_, thanks :) [22:28] nik90_, the test plan i wrote in the bug report worked for me twice in a row === ondra is now known as ondra|away