/srv/irclogs.ubuntu.com/2013/07/29/#ubuntu-unity.txt

MacSlowveebers, mzanetti: my GoogleHangout-plugin keeps telling me I need to update... can't connect atm07:31
dednicklarsu: ping07:57
larsudednick: good morning08:02
dednicklarsu: morning. you in europe at the moment? seems a bit early for you. :)08:02
larsudednick: yep, I'm in Europe (and will stay here for the time being)08:03
dednicklarsu: ah ic.08:04
dednicklarsu: aanyway. what was the consensus about the icons on friday? are we going for a uri for everything from now?08:04
larsudednick: yep, uris. We don't have them for everything yet, though08:05
larsudednick: unitymenumodel has that, except in the action state of the root menu item, which I'm not sure how to solve yet08:06
larsudednick: because I don't know which things in an action might be icons, unless I teach unitymenumodel about indicators08:07
dednicklarsu: larsu. yeah. not the best option though. i guess.08:08
dednicklarsu: er, not an option for enforce icon format on server side?08:08
dednickwould require changing all indicators though...08:09
larsuwe could just say the indicators may only use icon names in there, without fallbacks08:10
larsubut someone will probably need something more complicated at some point...08:10
sil2100Saviq: hi! Unity8 published08:10
larsudednick: can you just assume they're icon names for now? Or did you already stumble across a weird one?08:11
mzanettisil2100: Saviq is on IOM08:11
sil2100mzanetti: ok, thanks, I was just informing anyway08:11
dednicklarsu: getting a gthemedicon08:11
dednickfrom power08:11
dednicklarsu: could write something in unity8 which operates on top of the unitymodel which knows indicators.08:12
Saviqsil2100, thanks08:13
larsudednick: yeah that'd work, but then we'd duplicate the icon-unpacking code in unitymenumodel (even though it's only a couple of lines, really)08:15
larsudednick: how about I give you a js function to do it for now? Or do you have a c++ plugin anyway?08:15
sil2100Mirv: https://code.launchpad.net/~sil2100/cupstream2distro-config/media_extra_package/+merge/177328 <- can you review? ;)08:16
dednicklarsu: i dont have anything at the moment. js would be good.08:16
tsdgeossil2100: so we are autoreleasing?08:16
larsudednick: okay, will do that today. (bbiab)08:16
sil2100tsdgeos: yes, although we're autoreleasing to the ubuntu-unity/next PPA right now08:18
tsdgeosnice :-)08:18
sil2100Mirv: you think it's ok?08:23
dednicklarsu: actually, i think it might be best if I write a root stateAction wrapper for unity8 which knows about its format. I htink i need it anyway to work with the old format of the action.08:30
dednicks/stateAction/actionState08:31
Mirvsil2100: looks good to allow, even though the package is not yet in archives yet08:35
sil2100Mirv: yes, it's a new package, but it's part of an existing source package in the archives08:36
sil2100So it's cool08:37
Mirvyep, found the address-book-app08:37
sil2100Mirv: thanks! I'll redeploy and re-run ;)08:37
sil2100Mirv: eeek!08:38
sil2100One moment08:39
sil2100Mirv: eek!08:39
sil2100Mirv: I modified the wrong stack, but I fixed it now ;)08:42
* sil2100 needs coffee08:42
* mzanetti too08:42
Mirvsil2100: ah... I just stared at the diff, too08:44
sil2100Not sure why I thought 'media' instead o 'phone' o_O08:44
mzanettilarsu: still need me to check out that issue?08:48
larsumzanetti: yeah, that'd be great08:53
mzanettilarsu: ok. can you give me short summary how to reproduce it?08:53
larsumzanetti: yep. Grab my qmenumodel branch at lp:~larsu/qmenumodel/add-unitymenumodel08:54
larsumzanetti: are you on saucy?08:54
mzanettilarsu: yes08:54
larsumzanetti: awesome, then you can just do the cmake dance to build it08:55
larsumzanetti: I think it only builds in-tree. Complain to renato about that one please :P08:55
mzanettilarsu: done with building08:55
mzanettilarsu: btw... built out of source08:55
mzanettino complains08:56
larsumzanetti: cool. he fixed it, then08:56
larsumzanetti: just start the included example: qmlscene -I libqmenumodel/ examples/unityqmlmenumodel.qml08:56
larsumzanetti: it's the sound menu, but a bit rough :)08:56
larsumzanetti: click on the first item, and you should see the sound menu itself. Second item is the volume. Changing the volume on your system should change the number in there08:57
larsubut it doesn't...08:57
mzanettilarsu: I don't see anything in the second entry08:58
mzanettilarsu: its just an empty grey rectangle08:58
mzanettilarsu: http://wstaw.org/m/2013/07/29/plasma-desktopaC8715.png08:58
larsumzanetti: that's right: the one right under "Mute"08:59
larsumzanetti: it says 0.75, that's your volume in [0,1]08:59
mzanettilarsu: right... got it08:59
mzanettilarsu: ok. on it08:59
larsumzanetti: thanks!09:00
larsudednick: fine by me, but there's a small problem: we need to deserialize the icon before doing the gvariant -> qvariant conversion09:00
larsudednick: so once it's in actionState, it's really too late09:01
larsudednick: I'm considering hacking it into unitymenumodel, despite the ugliness: if (key == "icon) deserialize(icon)09:01
dednicklarsu: i'm reversing the qvariant serialization ;)09:07
dednickdont know if that's wise though...09:07
larsudednick: ya... not so wise. These might be bytearrays with raw image data. Converting them all the time is a tad wasteful09:09
larsudednick: should be okay for now though, as everything is themed afaik09:09
tsdgeosguys, waiting for the phablet image download to finish, any quick review you awnt me to tackle meanwhile?09:11
dednicklarsu: is there no way to tell that the GVariant from g_icon_serialise is a gicon type?09:17
larsudednick: no, it doesn't contain a header09:17
dednicklarsu: actually. why is the icon in the action? why not in the menu?09:17
larsudednick: because it might change09:19
larsumenus are immutable09:19
dednicklarsu: ah. ok09:19
larsudednick: the more I think about it, the more I'm of the opinion that unitymenumodel should just know about indicators09:22
larsudednick: this will make your life much easier09:22
dednicklarsu: i think it's going to be used for other things though...09:22
larsudednick: and since you're the only consumer right now, it makes a lot of sense09:22
larsudednick: ya, maybe the settings app. That's okay though09:22
dednicklarsu: problem is that i dont do a key=="icon". i just get the actionState variant.09:23
larsudednick: ya. That's why I'm proposing what I'm proposing right now:09:23
larsuUnityIndicator { name: "" }09:24
larsuyou'll then have indicator.icon, indicator.label, indicator.menu09:24
larsuwhere menu is a qabstractitemlist09:24
dednicklarsu: i think the notifications are also using gmenumodel.09:24
larsuerr, model09:24
larsudednick: what? I hope not....09:25
dednicklarsu: i mean dialogs.09:25
dednickor something. MacSlow ^09:25
larsudednick: even so, this would be additional API09:25
larsuso no worries there09:25
dednickok09:25
mzanettilarsu: found it09:26
mzanettilarsu: so what happens is this:09:26
mzanettilarsu: the QML file starts up and the model for the listview is model is UnityMenuModel(0xa58980)09:26
larsudednick: okay, I'll crib your indicator-file loading code then and hack it this afternoon. Can you wait that long?09:26
mzanettilarsu: then you click the item which calls submenu()09:26
mzanettilarsu: in there you do a new MenuModel() and set the listview's model to: UnityMenuModel(0xac0700)09:27
MacSlowdednick, larsu: notifications a not yet using gmenumodel... but are meant to do soon to support recently added requirements from Design09:27
mzanettilarsu: then I press the volume key and guess which model emits the dataChanged: UnityMenuModel(0xa58980)09:27
MacSlowdednick, larsu: what's wrong with that?09:27
larsuMacSlow: what requirements are those?09:27
larsumzanetti: FACEPALM!09:27
larsumzanetti: thanks a lot man, I must've been braindead to not think of that09:28
mzanettilarsu: :)09:28
MacSlowlarsu, password-entry... listview (for wifi-spots)09:28
mzanettilarsu: no problem09:28
mzanettilarsu: btw. a few hints on debugging:09:28
dednicklarsu: yeah, think afternoon should be ok.09:28
mzanettilarsu: you can have for _EVERY_ property a onPropertynameChanged which you can print() stuff09:28
mzanettilarsu: you can also print() objects in QML. It'll print the class name and the memory address09:29
mzanettijust like qDebug() in c++ would do09:29
larsumzanetti: ah, cool!09:29
larsumzanetti: but onPropertyNameChanged only works if I have a NOTIFY on my property, right?09:30
larsuMacSlow: we show a list of wifi spots in the notification?09:30
MacSlowlarsu, Design requires that yes09:31
mzanettilarsu: right... but if your property can change and does not have a NOTIFY signal you should think of that as a bug :)09:31
MacSlowlarsu, it's not supported right now... but I've to make it happen09:31
larsuMacSlow: I don't even know what to to say to that...... :P (in that case you're right: gmenumodel is a good fit)09:31
larsumzanetti: right, that makes sense :)09:32
MacSlowlarsu, what was the initial issue you/dednick pinged me about?09:32
MacSlowlarsu, that's still not clear to me09:32
mzanettilarsu: if it doesn't change, mark it as CONSTANT in the property definition. that avoids those messages "property foobar does depend on non-notifyable property"09:32
larsuMacSlow: we were just trying to find other consumers of qmenumodel09:33
dednickMacSlow: just wanted to know what was goint to be using qmenumodel09:33
dednicklarsu: I dont know if UnityIndicator belongs in qmenumodel.09:33
dednickdoesnt sound right09:33
MacSlowlarsu, dednick: ah ok09:33
larsumpt: what is this madness that MacSlow is talking about? (notifications that contain the list of wifi spots)09:33
MacSlowlarsu, dednick: https://wiki.ubuntu.com/Networking#wifi-connecting-prompted09:34
larsudednick: we can put it into unity8 as well, I don't care where it lives. It just shouldn't use unitymenumodel for the top-level menu09:35
mzanettilarsu: also, without fully studying the whole code, I have a feeling you're leaking the submenu09:35
mzanettiI might be wrong tho... but it looks like09:35
larsudednick: which means it shares quite some code with unitymenumodel, which is why I was thinking of putting it there in the first place09:35
dednicklarsu: are you proposing we dont give it bus info? that it parses it itself?09:36
dednicklarsu: re you cribbing the file loading.09:36
larsuMacSlow: I thought you said in a notification, that looks like a dialog to me...09:36
larsudednick: yep09:36
larsumzanetti: I thought I was parenting it to the parent model. Let me check.09:38
dednicklarsu: hmmmm.... we need to find the files to know what to load in the first place and fetch priority etc. dont think it's necessary to change that mech.09:39
MacSlowlarsu, I know... but it has to happen in a notification. It's not my decision09:39
mptnonsense09:43
larsumpt: ya, unping. I misunderstood, sorry.09:43
larsudednick: I don't know enough about your current architecture to make an informed decision here... I'm just trying to keep all the GVariant/GIcon handling in one codebase09:45
larsudednick: alternatively, we can also move unitymenumodel into unity809:45
larsudednick: which is something I've thought of before, but dismissed it because there might be other consumers soon09:45
mptlarsu, when I showed those wireframes to Oren he said, "Oh, snap decisions, ask Mirco if they can contain those controls", so I asked MacSlow, and he said no.09:46
larsumpt: "those controls" being that full dialog?09:46
mptlarsu, a scrolling list in the first case, and two labelled text fields in the second.09:47
mptlarsu, other examples of that component can be found in <https://wiki.ubuntu.com/SecurityAndPrivacySettings#SIM_PIN>.09:48
MacSlowmpt, in the meantime I've been asked to make it possible to add the needed controls to a notification via a new extension and gmenumodel ... not sure if you got notified about that yet09:48
mptMacSlow, no I hadn't. It seems like the sort of thing that would make app developers wonder what substances we'd been taking. :-)09:48
larsumpt: these all look like dialogs to me, I don't know why we would drag that information through the notification framework09:49
mptlarsu, exactly. The only difference between these and sheets is that these don't take up the full screen.09:49
mpt(Because they are simple enough to do that, and showing context of the app behind them helps.)09:50
MacSlowmpt, larsu: I'm not too happy to have been tasked with this to be honest... it still doesn't feel right... conceptually... visuals a similar... but that's it09:52
larsumpt: do these have _anything_ in common with notifications? Like, should they be queued like notifications are?09:52
mptlarsu, no, they appear immediately modal to the parent surface09:52
MacSlowmpt, larsu: as far as I can tell... they should not timeout... they should block any notifications... anything else I might be missing?09:53
dednicklarsu: how about having an ActionStateParser object property on the model? have a default one which just spits out GVariant -> QVariant straight conversion, but can be overridden by custom impl. submodels will just use the default, or can pass in a QmlComponent to override09:53
mptMacSlow, I don't see why they should block notifications at all. They're unrelated.09:53
larsuMacSlow: who made the decision to do these as notifications? Maybe there's a reason we're overlooking09:54
larsudednick: and you'd supply one that calls g_icon_deserialize() from unity8?09:54
dednicklarsu: yep.09:55
MacSlowmpt, larsu: then please talk to Saviq regarding this, but he's busy at the IOM atm though... not sure how much time he has.09:55
mptok09:55
SaviqMacSlow, I'm sitting next to mpt now ;)09:55
MacSlowSaviq, aoh.. :)09:55
MacSlowSaviq, well then09:55
MacSlowSaviq, I just shut up then :)09:55
larsuperfect :)09:55
SaviqMacSlow, we'll try and find some time to chat then09:55
larsuMacSlow: thanks for bringing this to our attention :)09:55
dednicklarsu: UnityMenuModel { ... actionStateParser: RootActionParser {} }09:56
larsudednick: that sounds like the solution with the best tradeoffs (least work and not as ugly as the hacks I thought of in the beginning). I like it :)09:56
MacSlowSaviq, mpt, larsu: when you schedule anything (mumble, hangout) please sent me an invite... I'd like to make sure I follow what's going on with this.09:56
dednicklarsu: only setback is we don't keep the gicon serialisation code in one place.09:57
dednicklarsu: but it's only a few lines, so should be ok.09:57
dednicklarsu: should i give it a go. i've got some time and know what i need :)09:58
larsudednick: yeah, but I can live with that. It won't change that much I guess, and we'll probably need that code in unity anyway09:58
larsudednick: there's a function in unitmenumodel that handles most cases already. I'll paste it for you when I have the ActionStatePArser patch09:59
Saviqlarsu, just to recap - notifications were meant to only be used to trigger the dialog, we can just build a completely separate backend for them, but a big set of it is going to be exactly the same as notifications10:02
Saviqlarsu, and also, at least the password entry dialogs have been snap decisions in the spec - I haven't seen any "system dialogs" spec to tell me otherwies10:03
Saviqlarsu, so I thought the app sending an interactive notification with system-dialog-hint would be a good enough solution10:05
Saviqlarsu, I understand that's abusing the notifications spec, but we're already doing a *lot* of that (as in canonical's notifications are barely compatible with freedesktop ones anyway)10:09
larsuSaviq: thanks for clearing up were this is coming from.10:09
larsuSaviq: I'm okay with abusing the spec, it's shitty anyway. The problem I see is that we're piping more and more UI through the bus10:10
larsuSaviq: the whole menu model stuff is already pretty far out there, now we're adding dialogs10:10
larsuSaviq: soon we'll have dbus-toolkit!10:10
Saviqlarsu, it's there already, isn't it...10:10
Saviqlarsu, and we can say that we're only supporting password (SIM-PIN, too) and wifi selection - and only support those10:11
Saviqlarsu, but really whatever else we do is still going to be building another solution to a problem we've already solved for indicators10:12
larsuSaviq: yeah, that's the approach we took with the indicators as well.10:12
larsuSaviq: so that network list in the dialog is dynamic?10:12
larsuSaviq: that'll make piping it through notifications ... interesting10:13
Saviqlarsu, dynamic in the sense that the backend needs to fill it, yes, and update it periodically, I'd say10:13
Saviqlarsu, but no10:13
Saviqlarsu, we want to fire an interactive notification through notifications10:13
larsuSaviq: ah right. That's much more sensible and doesn't require gmenumodel at all10:13
Saviqlarsu, but then *menumodel takes over10:13
larsuah, so this is where I might disagree10:14
larsu(not enirely sure yet, just heard about this half an hour ago)10:14
Saviqlarsu, it just felt that trying to shoe-horn it through the notifications interfaces10:14
Saviqlarsu, would be more of a hack then using *menumodel10:14
Saviqlarsu, we agreed with tedg in OAK that would be a sane solution10:15
Saviqlarsu, the added benefit of using notifications IMO would be that the application sending the dialog request could fall back to its own UI when the interactive notification was triggered, when the frontend didn't support system dialogs10:16
Saviqalthough that might be premature optim, as we're controlling the whole thing anyway10:16
Saviqlarsu, and sure, we just limit it to the two-three types of dialog that we're meant to support now - exactly same as we do with indicators10:18
larsuSaviq: I'm not sure I fully understand yet. If there's a gmenumodel-based interface, where do notifications come into play?10:19
Saviqlarsu, we need *some* way for the app/service that wants to display a dialog, to tell the shell "hey - I want to display a dialog"10:20
Saviqlarsu, and then the UI of the dialog itself - which meant sense to me to use the thing that we're using anyway - *menumodel10:20
larsuSaviq: why not dbus: com.canonical.untiy.DisplayDialog("my.dbus.name", "/path/to/menumodel")?10:20
Saviqlarsu, I don't see how that's different from using notifications for it10:21
Saviqlarsu, except that we need to reimplement a bunch of priority / timeout considerations10:22
Saviqlarsu, that we already have for notifications10:22
Saviqlarsu, and then build an interaction between dialogs and notifications10:22
Saviqlarsu, that one is more important than others10:22
Saviqlarsu, and then there's the fact that the password entry is still spec'ed as a snap decision10:23
Saviqlarsu, so that they can queue on screen10:23
larsuSaviq: fair enough. The biggest issue I had was with dubs-tk anyway, but you're not doing that, so I'm kind of okay with your approach10:23
Saviqlarsu, yay :)10:23
SaviqMacSlow, ↑10:24
larsuSaviq: it's a bit hacky, but very practical :)10:24
Saviqlarsu, exactly ;)10:24
larsuSaviq: sorry to stir up so much confusion, it just sounded really weird when I first read it10:24
* MacSlow reads10:24
larsuMacSlow: tl;dr: keep calm, carry on.10:24
Saviq:)10:24
MacSlowSaviq, larsu: I'm still trying to make sense of it (how it'll actually work) doing a proof-of-concept thing as I never used qmenumodel before10:30
Saviqlarsu, btw, you know *menumodel best, how would you structure the model for a dialog like so https://lh4.googleusercontent.com/goPxF-p_6nxA8PM8vdawkie6HVW4ubTJ-hi_ajOHKUs2IQH34uvqIFLofNPP37GUj7enLg_f9kgaT8kegrKvWa3WyISjMmhGs4kRb8Uw_JWFt0v9Af0fC26f ?10:31
Saviqlarsu, we can make the buttons part of the UI or part of the model, whichever's best10:31
larsuMacSlow: use unitymenumodel instead. dednick and I are currently working out some kinks with it, after that you should be able to just use it (as we're using the same thing in the network menu)10:32
larsuSaviq: the connect button is redundant in a touch ui10:33
larsuSaviq: if you go the notification route, the model should only contain the list of access points10:34
larsuSaviq: the "cancel" button would be the standard ui for dismissing a system-modal notification10:34
Saviqlarsu, that's not the ultimate design10:34
MacSlowlarsu, that's a branch to look at then lp:~larsu/qmenumodel/add-unitymenumodel ?10:35
larsuMacSlow: yes, but I recommend for you to wait a bit if you can until we get its API stable and merged10:35
larsuSaviq: I hope so :P10:36
MacSlowlarsu, ok... I'll keep fixing some ap-tests in the meantime10:36
Saviqlarsu, problem is, we don't have the ultimate ones10:38
Saviqmpt, do we have a spec for system dialogs? I expect three ATM - wifi selection, wifi password (after disconnection) and SIM-PIN entry (when you've exchanged the SIM, for example)10:38
larsuSaviq: I thought you were sitting next to mpt right now :P10:39
Saviqlarsu, I am10:39
Saviqlarsu, but in a session10:39
mptYes, but we're in a plenary and talking would be rude10:39
Saviqand IRC isn't.... kind of...10:39
larsumpt: isn't that connect button redundant in a touch ui?10:39
larsuSaviq: hehe, right :)10:39
mptSaviq, another example at <https://wiki.ubuntu.com/AccountPrivileges#Phone>, without any fancy controls10:40
mptjust buttons10:40
Saviqmpt, right10:40
mptSaviq, I don't think they're "system" dialogs, really. I'd expect an unprivileged app to be able to use them.10:41
=== sil2100_ is now known as sil2100
sil2100hmm10:56
pete-woods1Saviq, mpt: I'm interested in any developments / decisions regarding the "system dialogs" - I've been asked to help out with the daemon that triggers the "networks available" prompt10:58
=== MacSlow is now known as MacSlow|lunch
=== pete-woods1 is now known as pete-woods
Saviqpete-woods, right, comm fail *again*10:58
SaviqMacSlow|lunch, ↑10:58
Saviqpete-woods, interface with MacSlow for this please10:59
pete-woodsSaviq: sure :)10:59
=== hikiko is now known as hikiko_lunch
=== MacSlow|lunch is now known as MacSlow
=== hikiko_lunch is now known as hikiko
MacSlowSaviq, pete-woods: ok... noted12:03
pete-woodsMacSlow: so what is it you're working on with regards to this? basically what I'm looking for is Unity to implement some sort of (dbus?) interface that lets me go "hey! pick a network"12:04
=== alan_g is now known as alan_g|lunch
MacSlowpete-woods, atm the idea is to introduce a new hint to the notification-system,which will allow passing the UI using unitymenumodel (which isn't in lp:qmenumodel yet) the whole communication of UI and triggering application will happen via DBus12:07
MacSlowpete-woods, that's the very rough cut... atm I'm trying to get a proof-of-concept going12:08
pete-woodsMacSlow: okay, thanks for the run-down!12:09
MacSlowpete-woods, so in your case - once it implemented/tested/landed - you'd be triggering one such notification using the new hint (probably named something like "x-canoncial-system-dialog")12:09
MacSlowpete-woods, np yw12:09
pete-woodsMacSlow: but the impression I'm getting there is I should probably park it for a week maybe? 'til you've got something landed?12:09
MacSlowpete-woods, certainly... I'm new to it myself and it'll take me some days for sure... so a week is reasonable.12:10
=== _salem is now known as salem_
MacSlowlarsu, dednick: I'm trying out the exportmenu.py/render-menumodel.qml from lp:~larsu/qmenumodel/add-unitymenumodel but get numerous "ReferenceError: linkSubMenu is not defined"-errors... what am I missing?12:22
larsuMacSlow: render-menumodel.qml uses the (old) qmenumodel api. Try examples/unitemenumodel.qml instead.12:23
larsuMacSlow: it shows you the sound menu from your system (if you12:24
larsu're running saucy)12:24
MacSlowlarsu, hm... now getting "UnityMenuModel is not a type", I'm probably not correctly exposing the compiled branch12:25
larsuMacSlow: `qmlscene -I libqmenudemodel/ examples/unitymenumodel` from the root of the repository12:26
larsuMacSlow: unitymenumodel.qml of course12:26
MacSlowlarsu, hm... still getting this: module "QMenuModel" plugin "qmenumodel-qml" not found12:27
=== jhodapp|afk is now known as jhodapp
larsuMacSlow: does `find . -name libqmenumodel-qml.so` return ./libqmenumodel/QMenuModel/libqmenumodel-qml.so?12:30
MacSlowlarsu, doh... my bad... I used a build-directory... with the correct path it works12:32
larsuMacSlow: ah, right, I always build it in-tree because out-of-tree didn't work a while ago12:32
dednicklarsu: indicator-network doesn't seem to be exporting a root action.12:34
dednicklarsu: is that a known?12:34
larsudednick: on the desktop or the device?12:35
dednicklarsu: at least device.12:35
larsudednick: on the desktop: definitely known (it doesn't use the new indicator stack on the desktop yet)12:35
larsudednick: ah, okay. Probably known, but not to me :)12:36
larsudednick: I'll pester tedg about it12:36
dednicklarsu: ok. desktop indicator - phone profile12:36
larsudednick: ya, no such thing yet. tedg is working on it afaik12:37
dednicklarsu: yeah, he added it a little while ago. guess just not finished yet.12:37
dednicklarsu: how do we update action states? eg mute12:45
larsudednick: you shouldn't need to. Call listview.model.activate(index) like in the example, that will activate the action with the right parameter12:48
larsudednick: in the case of mute, it will toggle it12:49
dednicklarsu: volume slider?12:49
mzanettiCimi: ping12:50
=== dednick is now known as dednick|afk
larsudednick: right, for that you do, because it's a custom item (unitymenumodel doesn't know what to do)12:51
larsudednick|afk: I just realized that there's no way to do that yet, because that's passed as a role, not as a property12:52
MacSlowlarsu, what can I use to define my own model on the bus... to get closer to my use-case? Just looking at the indicators' sources?!12:59
larsuMacSlow: indicators are more complex than what you need. export-menu.py should give you a rough idea13:01
larsuMacSlow: basically, you need an action group and a menu model, export both somewhere on the bus and feed their object paths into UnityMenuModel13:02
larsuMacSlow: if you've never worked with actions/menus before, you should read https://wiki.gnome.org/HowDoI/GAction13:03
larsuMacSlow: but why do you need to do that? I was under the impression your notifications are a consumer of that stuff?13:04
MacSlowlarsu, sure... but I need to see the whole picture to understand what I'm doing on the renderer-side...13:04
Cimimzanetti, hey dude13:09
Cimimzanetti, how about this for the calendar? http://paste.ubuntu.com/5925202/13:09
mzanettiCimi: hi13:09
mzanettiCimi: I pinged you first so first my questions :P13:09
mzanettiCimi: whats the best way to theme a TextField?13:10
dednick|afklarsu: i'm wondering if it would have been better to stick with the QActionState approach to the actions. (ie have the model return an ActionState object for the role, which you activate with).13:10
mzanettiCimi:  I just need to color the background darker13:10
Cimimzanetti, ouch13:10
Cimimzanetti, why we need that?13:10
Cimimzanetti, we have a palette to follow...13:10
=== dednick|afk is now known as dednick
Cimimzanetti, I think you'll have to specify a separate delegate for the textfield in case :-\13:11
larsudednick: and something like model.actionState.value to get the current state?13:12
mzanettiCimi: well In that case its probably easier to use a UbuntuShape and a Label... given that I don't need to actually edit the text13:12
larsudednick: or model.action.state13:12
Cimimzanetti, yes13:12
mzanettiCimi: I need that because design tells me to13:12
larsudednick: and then model.action.changeState('newState')13:12
dednicklarsu: yeah.13:12
dednicklarsu: at the moment we need to pass around the model and curent index to each menu item, which isn't the best.13:13
MacSlowlarsu, how would text-entry fields look like in the unitymenumodel... do they fit at all?13:14
larsudednick: agreed, I'll do it like that13:15
larsuMacSlow: in upstream GMenuModel, that doesn't exist. But we have some extensions that allows you to set custom menu items, which can be anything that client and server agree upon (but we don't have a text entry yet)13:17
MacSlowlarsu, what about normal buttons and listviews?13:17
MacSlowlarsu, if those are missing also, is work to support them underway?13:19
larsuMacSlow: would be possible, but I'm sensing you're going down a wrong path...13:20
larsuMacSlow: the menu model stuff should really only be used for list-like things13:20
larsuMacSlow: the buttons could come from the notification actions, for example13:21
=== alan_g|lunch is now known as alan_g
MacSlowlarsu, well... I'm glad for any insight on the subject I can gather... but on the other hand there's also the Design-requirement I've to fulfil ... so if text-entries are unsupported (and out-of-concept) then the whole approach (of using qmenumodel) has to be questioned still.13:24
dednicklarsu: not sure how relevant it is with the changes, but here are the ActionStateParser changes i made. http://pastebin.ubuntu.com/5925259/13:24
MacSlowlarsu, I'm just trying to get the whole picture... and see what it takes to get it done.13:25
dednicklarsu: i override with a custom impl in unity8 and parse out the icon key.13:25
larsudednick: thanks! Will have a look at it in a bit13:26
larsuMacSlow: you're asking me something I cannot answer right now. I haven't even properly thought about it. I'm just saying it sounds wrong to me.13:27
larsuMacSlow: text entries are not supported right now, but it would be trivial to add them13:27
MacSlowlarsu, ok13:28
larsuMacSlow: I'd be glad to help out, but I'd need to (a) get a list of the requirements and (b) think about it :)13:30
MacSlowlarsu, well all the "specs" I have are two hand-drawn mockups from mpt :)13:31
mptHey now. There's at least four.13:32
mpt:-)13:32
larsumpt: hehe. Don't worry about them, they're fine (except for that connect button). We're just talking implementation ;)13:33
dednicklarsu: you think you'll have time to get to that action stuff today?13:35
larsudednick: I'm still on ubiquity because today has turned out to be a massive ping-fest for me. I'll try.13:36
dednicklarsu: :) ok13:37
mzanettidandrader: is this about each app increasing memory by 4kb every few seconds?13:37
dandradermzanetti, probably13:38
mzanettidandrader: I debugged that one already a bit some time ago. it happens also with an empty Item {} in qmlscene13:39
dandradermzanetti, but the size of the increase is not constant. if you're interacting with complex content it grows faster13:39
mzanettidandrader: => its the qpa13:39
mzanettidandrader: oh. in that case its probably another one13:39
dandradermzanetti, yes. I tried with an empty Item{} as well late last friday13:39
dednicklarsu: i might just do some prelim work with it after lunch. just get some stubs and such in so I can move on my side. I'll push a diff on you later so you at least have a headstart later.13:40
dandraderand it does grow there indeed13:40
dednicklarsu: but if you'd rather just do it yourself let me know and i'll find something else to do for the next day or so.13:40
dandradermzanetti, did you find where in the qpa? or you didn't go deeper in it?13:41
dandradermzanetti, I do hope it's only one bug :)13:42
mzanettidandrader: I stopped there :/13:42
larsudednick: no, that'd be awesome. I'm swamped today.13:42
mzanettidandrader: yeah... would be good if its the same one13:42
dandradermzanetti, hmmm actually it's more than one. The constant growth without user interactions happens only on the device (thus blame likely on qpa) whereas increases due to user interaction also happen on x86, although to a lesser extent...13:44
mzanettidandrader: hm... so its two..13:45
mzanetti:/13:45
dednicklarsu: see what happens when you move back to europe?!13:48
larsudednick: lol. I will move back if it stays like this :)13:48
dednickfirst half of your day is going to be dealing with the europeans, then later the US. :)13:48
=== dednick is now known as dednick|lunch
mhr3_we just need to move to new zealand one by one :)13:49
mzanettioh noes... than the ones still in europe need to deal with the new zealand ones during night13:53
mzanettiCimi: the diff reads ok14:07
Cimimzanetti, shall I push?14:10
Cimimzanetti, feels less safe than refreshing the model… but maybe still works14:11
mzanettiCimi: I didn't test it, just read through the diff. It reads sane enough I'd say14:11
mzanettiCimi: well, add tests for it14:11
Cimimzanetti, tests work14:11
Cimimzanetti, but you could possible do pretty creasy stuff14:11
Cimimzanetti, I don't think will actually happen14:12
Cimicrazy14:12
mzanettiCimi: you mean by doing bad things with the api?14:12
mzanettiCimi: like setting min > max etc?14:12
Cimimaybe or just changing model or minimum/maximum date on the fly14:12
mzanettiCimi: the model shouldn't be accessible from the outside I'd say14:13
mzanettiCimi: and changing minimum/maximum on the fly should work fine I think14:13
Cimifrom the code it should14:13
=== alan_g is now known as alan_g|tea
=== dednick|lunch is now known as dednick
=== alan_g|tea is now known as alan_g
mzanettiCimi: I guess I'm going to give the theming a shot. Can you help me to get started?14:56
Saviqmzanetti, hey15:17
mzanettiSaviq: ho15:17
Saviqmzanetti, I just remembered a thing we need to investigate quickly15:17
mzanettiSaviq: shoot15:17
Saviqmzanetti, which is returning objects/pointers from QAbstractItemModel::data()15:18
mzanettiSaviq: don't :P15:18
Saviqmzanetti, except there's a related issue - dataChanged() signals15:18
Saviqmzanetti, if you use get(int index)15:18
Saviqmzanetti, even if you send a "blanked" dataChanged, 'cause the underlying object changed15:19
mzanettiSaviq: not following15:19
Saviqthe thing you got out of get(int index) is going to be outdated15:19
mzanettiah15:19
* mzanetti thinks15:19
mzanettiSaviq: no... is it?15:20
mzanettiSaviq: you get a pointer to that object15:20
mzanettiSaviq: so the contents of that should update even before you get the dataChanged() from the model15:20
Saviqmzanetti, that's only if dataChanged() means that data *inside* the object changed15:20
mzanettiSaviq: and ideally the thing you return in get() is QObject with PROPERTIES and NOTIFY signal too15:20
Saviqmzanetti, and not that the object itself changed15:21
mzanettiright... I see15:21
* mzanetti thinks more15:21
Saviqgranted, if it did, a remove() and add() is probably the better thing to do anyway15:21
mzanettiSaviq: yeah... not only the better. its the way to do it15:21
Saviqmzanetti, that's why I said we need a little investigation ;)15:21
mzanettiSaviq: its a different object, not the same that changed15:21
mzanettiSaviq: you think we have bugs in our code related to this?15:22
Saviqmzanetti, and is it written down somewhere that we shouldn't be doing QVariant(QObject*) ?15:22
Saviqmzanetti, no, but we're inconsistent15:22
Saviqmzanetti, not that Qt is consistent...15:22
Saviqmzanetti, as in there's modelData in some, and get() on some others15:22
mzanettiSaviq: I don't think that's written down somewhere... Its just me avoiding that because of prior experiences15:22
Saviqrelying on either can lead to issues15:23
Saviqif we're not consistent15:23
mzanettiSaviq: get() and modelData are different things15:23
mzanettiSaviq: modelData is a role name for QQmlListModel (yes, talking 5.1 already :P)15:24
Saviqmzanetti, yeah, and this role is a ListElement (or whatever it ends up to be) - probably not a pointer, though?15:25
Saviqand a copy instead15:25
mzanettiSaviq: no... this role a string15:25
Saviqmzanetti, modelData?15:25
mzanettiSaviq: QQmlListModel also has get() which indeed returns the ListElement15:25
mzanettiSaviq: yes, modelData is the roleName for the string data in simple QML string based models15:26
mzanettiSaviq: anyways, we're talking about the get() here15:26
Saviqmzanetti, but for a ListModel { ListElement { } } modelData works too, not?15:26
mzanettiSaviq: I don't think so... if it does, I never used it.15:27
mzanettiSaviq: in this case you define the role names yourself in the ListElement and afaik modelData doesn't do anything15:27
Saviqmzanetti, right, so modelData is just for QStringListModel (or JavaScript lists)15:28
mzanettiSaviq: exactly15:28
Saviqmzanetti, in which case it will return whatever you put in that list15:28
mzanettiSaviq: but yes, get() returns the ListElement. and I guess thats just a QVariant15:28
mzanettiSaviq: there is no pointer involved there15:28
mzanettiSaviq: might be wrong... would need to check the code... could also be that you get a QQmlListElement* or the like15:29
Saviqmzanetti, you can have model: [ { }, { } ], which will make modelData a JS object15:29
mzanettiSaviq: anyways, you're not suffering from our QVariant(QObject*) issue15:29
mzanettiSaviq: thing is, those JS objects don't have self defined methods that could collide with QVariants methos - which is the real problem for our issue15:30
Saviqmzanetti, ok, let's say I can live with a QObject* get(int index), then ;)15:30
mzanettiok15:30
mzanettiSaviq: is there something more to come?15:31
mzanetti'cause I'm still waiting :D15:31
Saviqmzanetti, no, I'm still not 100% convinced, but for now, in new code, I'll advocate for get() ;)15:32
mzanettiSaviq: important thing is, if you do this, make contents of that object Q_PROPERTY + NTOFIYable15:33
Saviqmzanetti, of course15:33
mzanettiSaviq: the change vs add/remove is a good point too. I for one wouldn't probably do the changed in that case anyways, but I can see how one could fall into that trap when trying to be clever15:33
Saviqmzanetti, yeah, if you want to replace the item in-place, preventing a transition15:34
mzanettiSaviq: well, to be precise, if you do not want to a transition its still the same object in which case you should indeed change the contents instead of the pointer to it15:35
mzanettiSaviq: so when writing clean code this isn't an issue. just if someone tries to be clever/lazy15:35
Saviqmzanetti, yeah15:35
mzanettiSaviq: good ol c++ would have beaten you up if doing such stuff15:36
Saviqmzanetti, OTOH at the point when you have a get(index) method, what use are roles :/15:36
Saviqthey're just a burden at that point15:36
mzanettiSaviq: implementation of the model is way simpler if you don't need that get() stuff15:36
mzanettiSaviq: so the get will only be used if really needed15:37
mzanettiSaviq: well... I've seen people that always try to write the longest possible code... so don't assume anything... but in general I think everyone would choose the roleName approach as long as possible15:38
Saviqmzanetti, what I mean is: if your model is backed, say, by QList<QObject*>15:41
Saviqmzanetti, if those objects have their own NOTIFY15:42
Saviqmzanetti, you'd in theory need to "forward" the NOTIFYs to dataChanged15:42
mzanettiSaviq: right... I see. well. yeah. its not a real issue except maybe not compliant with the styleguide15:43
=== alan_g is now known as alan_g|reboot
Saviqmzanetti, what I mean exposing them as properties is a drawback in the case when you don't support them to be changeable15:44
mzanettiSaviq: sure... in that case you can make them CONSTANT too. in that case its not even an issue because you don't need to update anyways15:44
mzanettiSaviq: its only an issue if you would need to update but only emit dataChanged but not the NOTIFY signal in the object15:45
Saviqmzanetti, or actually... the data for roles shouldn't really be available as properties, should it15:45
mzanettior the other way round15:45
Saviqmzanetti, the object should only exist in the model after it's set up15:45
mzanettiSaviq: in Xbmcremote I have such a use case15:45
mzanettiSaviq: I have the list of movies for example which uses the role names15:46
mzanettiSaviq: on long-press it expands, pushes a new page for example and then passes the Object* into that to display all the details15:46
mzanettiSaviq: which also contain stuff that was in the rolenames too, like title for example15:46
mzanettiSaviq: if you're trying to make a guide line out of it, I'd say it should be like this:15:47
mzanettiif you either use the roleNames or the properties for the QObject* get(), once you start with any of them, make it complete15:47
mzanettiSaviq: ^^ I think this would be most save general way to go15:48
=== jhodapp is now known as jhodapp|lunch
mzanettibut not half roleNames, half properties15:48
mzanettiduplicating is less of an issue I'd say15:48
mzanettigiven the model's data() will only return the property anyways15:49
mzanettimaking sense?15:49
Saviqmzanetti, that really sounds to me like "if you have a get(), don't use roles no more"15:50
Saviqmzanetti, as supporting both is duplicating work15:50
mzanettiSaviq: so usually I'd rather accept more work below/inside and API than above it15:51
mzanettiSaviq: and I'd accept having to fill in the data() even if its a bit of more efforts if it makes the usage of the model on QML side easier and less fail-prone15:51
mzanettiSaviq: probably its starting to get a matter of taste... but so far I always tried to keep it to this^15:52
Saviqmzanetti, I'm starting to think, for stuff that's available through data(), unless you expect them to change, of course, they shouldn't be properties unless needed for some reason - and yeah, they should be CONSTANT when you need them, but they don't change15:53
Saviqmzanetti, SomethingModel should be friend of Something, and just access protected members directly15:53
Saviqmzanetti, where there are no properties on Something, that is15:54
mzanettiSaviq: as I said... I see use cases where you would want both15:54
Saviqmzanetti, and if you actually do have NOTIFY-able properties, you need to make sure to emit dataChanged() onChanged for all of them, that are exposed as roles15:55
mzanettiSaviq: in your case I would need to write the delegates in the Movies list half with role names, half with model.get(index).propertyName15:55
Saviqmzanetti, my last point explained that you can have both15:55
seb128hum15:55
Saviqmzanetti, but we shouldn't make it a general approach to expose everything on Something as props, if you don't need them on Something and/or don't expect them to change15:56
seb128can I pass an object/component to a custom component?15:56
mzanettiyeah... ok... I wouldn't write the friend stuff into a guideline tho... it really depends on what Something is... it might already have public getters15:56
Saviqmzanetti, yeah, if it does - of course you should use it15:57
mzanettiSaviq: I agree... keep it to roleNames as long as possible15:57
seb128I've a GSettings {} on my page and I pageStack.push(qml, {...}) ... can I give the GSettings through the push?15:57
seb128or do I need to add a new GSettings in my subpage?15:57
Saviqseb128, push(qml, { prop: gsettingsId }) should work15:57
mzanettiSaviq: so you're saying we will have roleNames for everything and for some stuff you need you can have additionally the property thing, provided you make it clean with dataChanged and everything,, right?15:58
Saviqseb128, where prop is the property you want to set on qml15:58
Saviqmzanetti, yeah, keep props to a minimum15:58
Saviqmzanetti, if you can, make it CONSTANT15:58
mzanettiSaviq: ack.15:58
mzanettiSaviq: sure... but that's not only related to this particular case15:59
Saviqmzanetti, yeah indeed :)15:59
Saviqmzanetti, I think what I'm trying to say is: don't make it into a property if your only use is to expose it in a model15:59
mzanettiyeah... don't even make a get() for the model then15:59
Saviqmzanetti, well, sometimes we need a get() to call methods on the object15:59
mzanettitrue...16:00
Saviqmzanetti, but we shouldn't put the props on the object16:00
Saviqmzanetti, if they're not really needed there16:00
mzanettiunless there is a use case like the details page in xbmcremote16:00
mzanettiok.16:00
mzanettiwe agree 100% I think16:00
Saviqmzanetti, yeah, you need a use case for each property16:00
mzanettiack16:00
seb128Saviq, hum, what type would be prop in my new qml? variant?16:00
Saviqseb128, variant is obsolete16:00
Saviqseb128, but it can just be GSettings16:00
Saviqseb128, "var" is to be used everywhere you used variant until now (but obviously best make it explicit what's it supposed to be)16:01
Saviqmzanetti, can you please summarize in https://docs.google.com/a/canonical.com/document/d/1gd87Wo_CSB0DpFWLpTKIIXQfdmFncrq0PHSr9H2PTnk/edit16:02
seb128Saviq, that works, thanks!16:02
Saviqseb128, cheers16:02
Saviqo/16:02
mzanettioh boy... I'm writing the guideline now... the only one standing up against it16:02
=== dandrader is now known as dandrader|afk
mzanettiwhat happened to this world16:03
tsdgeos:FD16:03
* tsdgeos has found the problem with gerry's code16:07
tsdgeosnow i just need to decided how to fix it :D16:07
Saviqtsdgeos, btw, what's the status of input for apps in unity-mit?16:08
Saviq*mir16:08
Saviqtsdgeos, did we get anywhere?16:08
tsdgeosSaviq: hmmm16:10
tsdgeosso16:10
tsdgeoswhat i found now16:10
tsdgeosis a bug in a class called InputArea Gerry uses in its test demo shell to shape which parts of the shell should "eat" the input and which no16:10
tsdgeosthat bug should be fixable16:11
tsdgeoswithout him16:11
tsdgeosnow, that class/item InputArea is not used anywhere in unity8-integrate-mir16:12
tsdgeosthus it is very well possible that that is making the shell "intercept" the presses to all of the apps16:12
tsdgeosbut i've been mostly cntered in the InputArea bug that Gerry told me to have a look than in the other thing16:12
tsdgeosSaviq: so basically apps don't get input at all in unity-mir or?16:13
Saviqtsdgeos, yeah16:14
tsdgeosit may well be the fact that no InputArea is used in the shell16:14
tsdgeossince the comment in the mir code says16:14
Saviqtsdgeos, just flash from s-jenkins:8080/job/ubuntu-touch-phablet-image-saucy-mir16:14
Saviqtsdgeos, and you'll see16:14
tsdgeosif no inputarea is given alll the surface takes the input16:14
tsdgeosSaviq: i'll have a look at it tomorrow once i fix the InputArea thing, fried brain atm16:17
Saviqtsdgeos, sure16:17
=== dandrader|afk is now known as dandrader
Saviqmzanetti, "make all of the QObject*’s properties NOTIFYable and emit the changed signal" ← we only want that for mutable props, we should default to CONSTANT16:21
mzanettiSaviq: better now?16:23
mzanettiactaully that was supposed to be an n... :)16:23
mzanettiSaviq: "if the property is exposed through a role..." didn't the line above say that it must be?16:24
Saviqmzanetti, right I don't think we should expose everything through roleNames - not if you don't need it in the model16:25
mzanettiSaviq: well, which basically spoils the whole guideline16:25
mzanettiSaviq: because its just: Do whatever it requires16:25
mzanettiexcept the naming convention on get()16:26
Saviqmzanetti, yeah, but then you need to know what it requires in the first place16:26
mzanettiand the hint that you need to pay attention to keep stuff in sync16:26
mzanettiSaviq: ok... well, I'm fine with flexible guidelines, you know that16:26
Saviqmzanetti, I think we were just unnecessarily trigger-happy with Q_PROPERTY everywhere16:26
Saviqmzanetti, what it boils down to: limit roleNames to what you actually need in the model16:28
Saviqmzanetti, limit properties to what you actually need in the model16:28
Saviqs/model/object/16:28
Saviqmzanetti, default to CONSTANT unless you know that you can get updated16:28
Saviqmzanetti, sounds about right?16:29
mzanettiSaviq: hmm... ok.. I'd say it still depends on the use case... in the xbmcremote it makes sense to have everything in the data() and only something in the properties in addition...16:29
mzanettiSaviq: hmm... defaulting to constant... haven't thought about that16:29
mzanettiSaviq: so far it was always pretty clear to me if something will ever change or not16:30
mzanettiSaviq: if something might change but someone "defaulted" to constant it's a bit of an issue I think16:30
Saviqmzanetti, if something "might change" you'll know, right?16:30
Saviqmzanetti, it's not like you would not know if something "might change"16:30
mzanettiSaviq: it would be safer to default to adding the signal... might be useless code, but safer16:30
Saviqmzanetti, useless code, useless memory16:31
mzanettitrue.16:31
mzanettiyay for guidelines16:31
Saviqmzanetti, so no, default to CONSTANT16:31
Saviqmzanetti, you will know well enough when you need to be mutable16:31
Saviqmzanetti, can you imagine a case where you, writing MyObject and a corresponding MyModel, wouldn't know whether it can change or not?16:32
Saviqmzanetti, anyway you can always change it if needed16:33
mzanettiSaviq: no... thats what I said... hence I found the "default to CONSTANT" a bit weird.16:33
Saviqmzanetti, still do, or? ;)16:33
mzanettiSaviq: then I thought, ok, this might be a guidline for people who don't know such stuff and thought, defaulting to CONSTANT might be more fail-prone than defaulting to NOTIFY16:34
mzanettibut you're right... that wastes resources16:34
mzanettiso... It's again me thinking to hell with the guideline.16:34
Saviqlol16:34
mzanettiif one doesn't know shit we can't prevent him from doing bullshit16:34
Saviqmzanetti, remember, it's a *guide*16:34
Saviqmzanetti, not a *rulebook*16:35
mzanettiright16:35
Saviqmzanetti, even our chat above indicates we haven't thought about that before16:35
Saviqmzanetti, if we had read it somewhere before, we'd know the answers already ;)16:36
Saviqor at least knew where to look for them16:36
Cimimzanetti, I totally missed your ping :)16:36
mzanettiSaviq: hmm... I'd say my opinion is pretty much the same as I figured myself when writing xbmcremote16:36
mzanetti:P16:36
Saviqmzanetti, but now it's written down for people that didn't have an opinion yet ;)16:37
mzanettiSaviq: but you know... I'm the kind of guy that doesn't ready stuff anyways but always tries to figure stuff himself until understood16:37
Cimimzanetti, was chatting with jouni at that time and didn't see it16:37
mzanettis/ready/read/16:37
Saviqmzanetti, yeah, but imagine you're a new starter16:37
Saviqmzanetti, reading through this would save you some brain cycles16:38
mzanettiSaviq: then you shouldn't write our dbusmenu model16:38
mzanettiSaviq: anyways... I see your point16:38
Saviqmzanetti, if anything, it would save you time during reviews ;)16:39
mzanettitrue... that could be16:39
Saviq*you* as in mzanetti, not the new starter16:39
mzanettiCimi: so... what would be required to theme a TextField black? more than 10 lines of code?16:40
Cimimzanetti, think so16:40
Cimimzanetti, because afaics you either ship a theme16:41
Cimimzanetti, and override the color16:41
Cimimzanetti, or you write a delegate16:41
Cimimzanetti, I think somewhere in the textfield delegate code there's a colour: Theme.palette....16:41
Cimiso you either replace the whole delegate16:42
Cimior pass a different colour through the palette16:42
mzanettiCimi: can't I do something like: style.background.color: Theme { background.color: "black" }16:45
mzanettipseudo-code ^^16:45
mzanettibut you get what I mean I hope16:45
Saviqmzanetti, ok, I wrote a paragraph above yours, can you read through?16:46
mzanettiSaviq: sure16:47
mzanettiSaviq: yeah. looks good. replaces the other one tho16:48
Saviqmzanetti, that's what it was meant to do :)16:49
mzanettiyeah16:49
mzanettiok. looks good16:49
Saviqmzanetti, just kept your as reference for a bit16:49
mzanettiSaviq: fixed the last sentence16:50
Saviqmzanetti, thanks16:51
Saviqmzanetti, but actually, doesn't QML unwrap them automagically?16:52
mzanettiSaviq: only for stuff that is known to QVariant16:52
mzanettiSaviq: for other stuff you'd need variant.value<T>()16:53
mzanettiSaviq: and exactly that <T> misses QML16:53
Saviqmzanetti, yeah but to wrap something in a QVariant, don't you need to register it anyway?16:53
mzanettiSaviq: so it somehow forwards stuff which fails in case of name collisions16:53
mzanettiSaviq: not for *16:53
mzanettiSaviq: as you can always wrap an integer in a QVariant16:54
Saviqmzanetti, but couldn't that, then, be our guideline isntead?16:54
mzanettiSaviq: good point...16:54
Saviqinstead of the get()16:54
mzanettiSaviq: I'm not sure if I have tried it or not16:54
Saviqmzanetti, ok, let's revisit, then16:54
mzanettiSaviq: are you hacking together testcode for this already?16:56
Cimimzanetti, nope16:57
Saviqmzanetti, no, you are ;)16:57
Saviqmzanetti, I know you won't be able to stay away - me? there's Guinness awaiting ;P16:57
mzanettiSaviq: heh16:57
Cimimzanetti, you basically don't access the delegate16:58
mzanettiSaviq: enjoy. you ok with me putting it on the todo for tomorrow morning?16:58
Saviqmzanetti, sorry, I'll grab one for you :)16:58
Saviqmzanetti, of course16:58
mzanettiSaviq: ok. I'll check it out16:58
Saviqo/ talk to you tomorrow guys17:05
=== alan_g is now known as alan_g|EOD
dandradermzanetti, ping17:10
mzanettidandrader: hey17:10
dandradermzanetti, are you able to run unity8 under valgrind (memcheck tool)? both on my desktop and on my laptop the window shows up only for a split second during startup17:11
mzanettidandrader: need to check17:11
dandraderthe process keeps running normally but the window is nowhere to be seen17:11
mzanettidandrader: same here17:13
dandradermzanetti, ok, thanks17:13
=== dandrader is now known as dandrader|lunch
=== jhodapp|lunch is now known as jhodapp
=== dandrader|lunch is now known as dandrader
=== racarr is now known as racarr|lunch
=== ritz is now known as ritz|dead
=== dandrader_ is now known as dandrader|afk
=== dandrader|afk is now known as dandrader
=== racarr|lunch is now known as racarr
=== salem_ is now known as _salem

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