[08:39] @balloons I have a problem with my nexus 4 and don't know who to ask. I wanted to switch from the ubuntu channel to the bq-aquaris channel but I accidently switched to the devel of the meizu. I quickly noticed my mistake and switched to the bq-aquaris channel but since then I have some graphical errors, background of message app is empty. system reset screen is just white I can't change my alarms because there are b [09:30] @popey @mhall119 @anyone who can help me ? [09:34] justCarakas: Have you tried wipe user data while reflashing to the bq-aquaris channel? [09:34] s/Have you tried/Did you [09:37] nik90: is that an extra option ? I usually switch channels by sshing to my phone and then sudo system-image-cli --switch ubuntu-touch/stable/bq-aquaris.en or another channel [09:38] justCarakas: I am having trouble remembering the argument you need to pass, let me check. But usually when I run into issues like this, I just reflash it clean. [09:39] is there a way to keep the installed apps or at least the data ? [09:40] nik90: I use this phone as my daily driver, so being able to keep the important stuff would be handy [09:41] justCarakas: Ah oke..then a data wipe is not recommended. [09:41] not sure why you're getting graphical glitches.. [09:42] I thought perhaps it could be app configuration data that got messed up [09:42] which is why I suggested a clean slate [09:43] I think it is something that got on to my phone from the ubuntu-touch/devel/krillin.en channel that stayed after switching [09:43] that channel is still on 14.10 if I remember correctly [09:46] is it possible to reset only sertain apps ? [09:46] because I've been looking around and I think it is only in the alarm, the messaging and settings app [09:47] the 3 apps I opened while on the wrong channel [10:22] it worked :) [10:25] If my app is started with a URL (that is: I've registered for URL scheme "myapp", and some other app opens the URL myapp://something), then I can get the URL from Qt.application.arguments. But how do I do that if my app is already running? [10:26] nik90 you may know the answer to the question I asked ten seconds before you appeared: [10:26] If my app is started with a URL (that is: I've registered for URL scheme "myapp", and some other app opens the URL myapp://something), then I can get the URL from Qt.application.arguments. But how do I do that if my app is already running? [10:27] aquarius: can you repeat the question since I dont log message when I am offline [10:27] yup did so :) [10:29] hmm..I have done it personally, but I am remember someone else having that very issue. I think it was the omgubuntu scope&app developer. [10:29] s/have/haven't [10:29] the documentation is completely silent on this issue :) [10:30] What happens when you call your app by myapp://something while your app is running? Does it not update the arguments? [10:30] the issue is where I *look* for the arguments [10:31] nik90: regarding your enum question, you probably won't be able to use the Alarm enums in another c++ directly as the enum types have only been registered in the qml context. So you can only use them in qml and the qobject class they have been declared in. When passing an enum to another c++ class from qml it will get passed as an int. So it's easy enough to translate that back to something meaningful inside the class [10:31] aquarius: well you said that the arguments are stored in Qt.application.arguments. So monitor that variable for changes. [10:32] My thought was to check its value in MainView:Component.onCompleted [10:32] but that will only get called on actual startup [10:33] but I could do it in onActive or whatever it is, which is called whenever I become foreground, couldn't I? [10:33] DanChapman: the thing is in the clock app we have some alarm helper functions defined in javascript. I would like ideally convert that to a nice abstracted c++ class library. I suppose I could pass the Alarm enum types as properties to the class and use it internally. [10:33] aquarius: yes that's also possible. [10:33] aquarius: in dekko we listen to UriHandler and process uri's as they arrive https://bitbucket.org/dekkoproject/dekko/src/82d2e8077780f39ede2f9ff8eb005242955dc29a/qml/main.qml?at=devel&fileviewer=file-view-default#main.qml-246 [10:33] * aquarius rtfdanchapmans [10:33] huh. [10:34] ah yes..QML Connections should do it! [10:34] that seems extremely useful [10:34] and extremely undocumented ;) [10:34] nice one DanChapman [10:34] aquarius: https://developer.ubuntu.com/api/apps/qml/sdk-15.04/Ubuntu.Components.UriHandler/ [10:34] it is documented :) [10:34] ha! [10:35] I shall write a bug saying "WHY DOESN'T THE URLDISPATCHER DOC LINK TO THIS" :) [10:36] haha :P [10:36] oh aquarius ... very hard to meet your requirements :P [10:36] s/requirements/expectations [10:36] * nik90 always uses the wrong word [10:37] https://bugs.launchpad.net/developer-ubuntu-com/+bug/1495052 filed. :) [10:37] Ubuntu bug 1495052 in Ubuntu Developer Portal "URLDispatcher documentation does not mention UriHandler" [Undecided,New] [10:38] and confirmed :) [10:38] nik90: can you point me to an example of a helper you want to convert. [10:38] if "our documentation ought to be useful to app developers" is an unattainably high expectation then I'm giving up hacking and going back to chemistry. :) [10:38] DanChapman: sure, one sec [10:39] DanChapman: http://bazaar.launchpad.net/~ubuntu-clock-dev/ubuntu-clock-app/trunk/view/head:/app/alarm/AlarmUtils.qml [10:40] DanChapman: I would like to convert it to something like http://bazaar.launchpad.net/~ubuntu-clock-dev/ubuntu-clock-app/trunk/view/head:/backend/modules/Stopwatch/formattime.h [10:40] essentially moving all logic functions to c++ and retaining qml for UI purposes. So nothing complicated as I am just starting to get familiar with Qt C++. === nik90 is now known as nik90|Lunch [11:20] huh. So, UriHandler works for URLs received at runtime. It does not work for having your app be *started* with a URL [11:21] but, weirdly, Qt.application.arguments when my app is started by URL is: ["/path/to/qmlscene", "$@", "app.qml"] [11:21] that is: $@ is not being substituted with actual arguments; it's passed literally [11:21] that's surely not supposed to happen? [11:27] Elleo: what was your workaround? [11:28] nik90|Lunch: there' sno C++ alarm api [11:30] zsombi, do you know what's going on with my QML app not getting arguments substituted? Maybe I've misunderstood how URLDispatcher and UriHandler work [11:30] nik90|Lunch: but you can call all the methods/properties/signals from cpp [11:30] nik90|Lunch: that's the beauty of meta object model ;) [11:30] aquarius: arguments? [11:31] aquarius: app args are only given by UriHandler when the app is started first time, never after [11:32] zsombi, I think that's actually exactly the wrong way around [11:32] zsombi, I'm testing here, and UriHandler gives me the URL if the app is already running, and *doesn't* when the app is started [11:34] and I can't see how to get the URL when the app is started; I thought maybe it would be in Qt.application.arguments, but those are ["/path/to/qmlscene", "$@", "app.qml"] which means that the $@ isn't being substituted with the actual arguments [11:35] aquarius: uhh, sorry, I messed it, it's other way around :) [11:36] zsombi, yup :) So... how do I get the URL when my app is started? [11:36] aquarius: so UriHandler will get it only when the app is already running :) [11:36] zsombi: monitor onPressedChanged in the AbstractButton and if(!pressed) { trigger(); } [11:36] aquarius: easily, you have the Arguments QML element to help you out [11:36] so when pressed stops being true it triggers instead of when the release event is emitted (which doesn't happen due to the movement of the mouse area) [11:36] Elleo: that's bad [11:37] aquarius: i remember being puzzled by something similar. I ended up just picking the uri's of the APP_URIS env var on app launch. Obviously that's not so easy for qml only apps [11:37] zsombi, the URL isn't *in* the arguments I'm given, though. Qt.application.arguments is ["/path/to/qmlscene", "$@", "app.qml"] [11:37] Elleo: the clicked should happen, but as said in #ubuntu-touch, the ListItem grabs the mouse event from the panels, which shouldn't be like that [11:38] aquarius: do you use Arguments type? [11:38] aquarius: I'm not talking about the UriHandler [11:39] zsombi, I haven't used the Arguments type yet; I'm just printing out the actual arguments that are passed to the app, which are in Qt.application.arguments. The Arguments type helps me to parse that, but it won't help because the URI is not *in* the arguments that my app is passed. [11:39] aquarius: https://developer.ubuntu.com/api/apps/qml/sdk-15.04/Ubuntu.Components.Arguments/ [11:39] zsombi: yeah, it's the movement that stops onClicked happening, I'd thought the movement started on release but it seems it starts if you make a tiny positional shift (presumably that's due to it viewing it as a swipe) [11:39] aquarius: ahha... then applauncher somehow eats 'em [11:39] zsombi, indeed [11:39] zsombi, that's my question :) [11:40] zsombi: onclicked and onrelease don't work if the mousearea they're reporting for has moved [11:40] aquarius: buggy :D [11:40] zsombi, Qt.application.arguments is ["/path/to/qmlscene", "$@", "app.qml"] [11:40] Elleo: right... there was a fix recently which did mess this up. [11:40] Elleo: and as touch events do usually produce press and move events immediately, this is revealed on touch only [11:40] aquarius: i think zsombi means this Argumetns type https://developer.ubuntu.com/api/apps/qml/sdk-15.04/Ubuntu.Components.Arguments/ [11:41] bah just read scrollback [11:41] ignore me [11:41] DanChapman: yes, I already posted the link, what I'm saying is that UriHandler and Arguments should both get the URI when the app is launched (I forgot the word both last time) === nik90|Lunch is now known as nik90 [11:42] so for you there shouldn't be any diff when your app is launched or re-activated [11:42] zsombi: you mentioned "but you can call all the methods/properties/signals from cpp"..how do I that? [11:42] nik90: yes [11:42] nik90: duuude, welcome to the wonderful world of MOM [11:42] :) [11:43] nik90: a bit of history [11:43] nik90: does QtServiceFramework ring any bell for you? [11:43] nik90: from Qt mobility 1.2 [11:44] I have used Qt Mobility 1.2, but not QtServiceFramework. I shall read about it [11:44] nik90: ok, never mind [11:45] nik90: so, QtServiceFramework was working so that dynamically loaded plugins, was working with in-process and out-of-process plugins [11:45] nik90: AND the beauty: the plugins were able to provide interfaces whos API was only on "paper" [11:46] nik90: querying meta object from the interface object itself, they were invoking 'em [11:46] ok [11:46] nik90: so [11:46] zsombi, my exec line in myapp.desktop is "Exec=qmlscene $@ myapp.qml". I think that the $@ should be being substituted with actual arguments, and it isn't :( [11:46] nik90: same with Alarms [11:46] aquarius: yeah [11:47] aquarius: tedg is your friend on that :) [11:47] zsombi, I don't know how to debug that... it's surely a huge platform bug? That means that no argument passing works for anything :( [11:47] I will ping tedg :) [11:47] bah is 6.45am in Texas :) [11:47] nik90: so if in cpp you can access the alarm object or the alarm model, if you know the params/signals/slots, you can invoke them :) [11:48] ah ok now I get it. [11:48] nik90: how to get it? easily! [11:48] nik90: assume each page has a property called alarm and one called alarmModel [11:49] nik90: yiou simply do fetch the QObject* in cpp like [11:49] page->property("alarm").value(); [11:49] nik90: where Page is a QObject as well [11:50] ok [11:50] nik90: then alarm->metaObject()->invoke(alarm, "save); [11:50] nik90: it is that simple :) [11:51] zsombi: but my class object will be instantiated within a Page and should thereby have access to the Page QObject..through which I use the above syntax to access the alarm properties [11:51] nik90: but, if you store the alarm in cpp member somewhere, beware and use QPointer alarm [11:52] nik90: or your object can have properties you will set then [11:52] nik90: even easier [11:53] nik90: I just used this to illustrate the possibility :) [11:53] nik90: the only thing is to transfer the objects to cpp, you can do that thru functions, properties, whatever [11:54] cool [11:54] Ahahahaha! [11:54] Having the desktop Exec line be qmlscene "$@" main.qml is WRONG. [11:54] It should be qmlscene %u main.qml or qmlscene %f main.qml. [11:54] That means that the default template is wrong ) [11:54] :) [11:55] aquarius: okaaay... so then the bug is in qtcreator-plugin project [11:55] yup! [11:55] https://launchpad.net/qtcreator-plugin-ubuntu [11:55] I am filing it now :) [11:55] aquarius: zbenjamin will be utmost happy to fix it ;) [11:58] https://bugs.launchpad.net/ubuntu/+source/qtcreator-plugin-ubuntu/+bug/1495062 filed :) [11:58] Ubuntu bug 1495062 in qtcreator-plugin-ubuntu (Ubuntu) "QML project .desktop Exec line incorrectly uses $@" [Undecided,New] [11:59] * zbenjamin can not promise nor deny anthing [11:59] zsombi: so QProperty(QVariant tempAlarm read TempAlarm write setTempAlarm notify onTempAlarmChanged) where in qml I pass it an alarm object. [12:00] Where does the QPointer alarm come int play? [12:00] I want to set the tempAlarm properties like daysOfWeek, etc.. and then use that alarm object in QML [12:01] nik90: btw, happy to see you here but what happend to the break you wanted to take ? :D [12:01] nik90: setTempAlarm would need to store the value somewhere right? you store in a QPointer [12:01] zbenjamin: he cannot escape from ubuntu app development :) [12:01] zbenjamin: I was and then got sucked into stopwatch. Now I mostly review code and occasionally provide patches to clock-app. [12:02] zsombi: ah yes..I need to private variable to store the value. [12:02] nik90: :) [14:37] Elleo: current podbird trunk has a issue with the page tab button when you press the search button and then press back. [14:38] 1. Search for a podcast in the podcast tab. 2. Press Back 3. Notice black square instead of tab button [14:43] nik90: okay, will take a look at that next [14:45] Elleo: I moved the list/grid view button to the settings page. That's why I removed it from the podcast tab header since I figured people don't switch views that frequently. [14:46] I am really liking the new improved icon. Adds a nice touch to the bird ;) [14:46] nik90: ah, I didn't spot that [14:48] Elleo: It was due to https://bugs.launchpad.net/podbird/+bug/1451999. People are requesting more and more views. [14:48] Ubuntu bug 1451999 in podbird trunk "Add 'Downloaded' view" [Wishlist,Triaged] [14:50] nik90: yeah, I don't really want to add any more top level views, but I have split the episodes page into Unheard/Listened/Downloaded which I think covers most common cases for filtering [14:50] Elleo: True, if you install Podbird-Devel you will see that I actually reduced the Top views to just Podcasts, Episodes and Settings. [14:51] the What's new tab becomes a page section in the episodes tab. [14:51] but its something I was testing around [14:51] yeah, I prefer having a global what's new myself [14:51] ah ok [14:51] so you can see at a glance everything that's new [14:52] well the what's new won't go away in devel. it still shown by default. Its just that it wont have its own dedicated tab. [14:53] but people are going to love rev 121 :D [14:53] the episode refreshing gets quickly annoying. [14:53] heh [15:13] Does anyone know if there is docs anywhere for the Oxide webview, not the Ubuntu.Web ones but for com.canonical.Oxide. Looking at the source is getting a bit tedious :-) [16:19] aquarius: your bugreport have a proposed fix, feel free to check if it does what you expect. [16:40] mcphail: ehm. sure === chihchun is now known as chihchun_afk [18:26] Hi, what is the way to show qml errors during application developement ? (I mean qml error like import errors, undefined variables,...) [18:31] I try "/tmp/qtc_device_applaunch.py /tmp/myapp_1.0_all.click --hook myapp" but seems not display errors, maybe i miss something ? [18:35] Inglebard, if you do it from QtCreator they appear in the console of that otherwise they app in ... /home/phablet/.cache/upstart/application-click-myapp_1.0.log or something similar [18:35] *they appear in [18:35] Yeah but i don't use QtCreator [18:36] Ok, I will check the log [18:36] yeah i usually $ tail -f the log file once you've found which one is for your app :-) [18:40] Ok thanks [18:43] And I have another question, since 2 or 3 weeks I notice ubuntu-emulator crash after 2 application launched, someone have the problem too ? (I use 14.04) [18:51] Inglebard, i know there were issues with the emulator, but thought they had fixed, ensure that it is all up to date. If not ask in the week when more folks are around :-) [18:52] What do you mean by "up to date" ? [18:55] ensure you packages on your desktop are up to date and the emulator's image is up to date [18:55] (i haven't used the emulator in a while so i'm not much use i'm afraid :-/ ) [18:59] Ok, I recreate an emultor today after update my system, but issue still here. So I will wait :( [19:08] ahayzen, I will disturbed you again but the error I would like to see is not present in the log. [19:08] QString path = m_cordova->get_app_dir() + "/../qml/InAppBrowser.qml"; [19:08] QString qml = QString(code) [19:08] .arg(CordovaInternal::format(path)).arg(CordovaInternal::format(url)); [19:08] m_cordova->execQML(qml); [19:08] I don't have errors from InAppBrowser.qml [19:08] is the app actually starting ? [19:09] Yes, except if there is an error in the qml file. [19:09] ok :-) [19:09] you'd usually get something in the app log if the app is launching and then erroring [19:10] if it is higher up it can appear in other logs sometimes [19:10] but i've not used the cordova things before [19:17] Ok, I just would like to change the adress bar of cordova in app browser plugin because it is actually outdated/incomplete. But I have not a lot of skills in C++/qml/debugging :) [19:24] Inglebard, yeah thats probably better to ask in the week when folks that work on those components are around :-) [19:25] Ok ok thanks