Tuesday, 2021-12-14

Mister_Magistercan i somehow limit the files qmllivebench loads?02:52
Mister_Magisterit gets overwhelmed with every bigger project and becomes unusable02:52
Mister_Magisterif it could only load qml files and only the files that the app is using, that would be great02:53
dcalisteHello chriadam, how are you ?08:05
chriadamHi dcaliste, I'm well thanks - how are you?08:05
dcalisteI good thank you.08:06
chriadamexcellent08:07
dcalisteI've updated this morning to .21, but signature is not working. I need to give a serious look at it (and try not to break anything this time).08:07
chriadamthe latest fix might not have been accepted into the RC08:08
chriadamI'm not sure08:08
dcalisteEven outside the jail, `gpg2 -s foo` is properly raising the system UI window asking to access the secret storage for pinentry, but if you type cancel, the passphrase is not asked for and the command line report ""no password agent is registered", which was the issue I had first and wrongly solved by breaking the password agent socket.08:09
dcalisteAnyway, I'll give it a in depth look this week.08:10
dcalisteBesides that, I've changed caldav#9 not too delete cancelled events as discussed last time.08:11
dcalisteAnd started to export the status to QML and behave accordingly in the UI.08:11
chriadamthanks, I will make sure to review that caldav PR this week08:11
dcalisteDoing so, I'm wondering if it could be a good idea (but a large amount of work) to remove CalendarData::Event completely and pass KCalendarCore::Event::Ptr directly between the threads.08:12
dcalisteThis would avoid code duplication and to add manually each bit that is missing from CalendarData::Event.08:13
chriadamI'm a bit wary of sharing event pointers between threads08:13
dcalisteTechnically, the QSharedPointer is thread safe. But what it is pointing to is not. Which means that the worker should _not_ modify any existing KCalendarCore::Event it is hosting.08:13
dcalisteWhich actually is already the case.08:14
dcalisteAs far as I looked at it.08:14
chriadamis there a lifetime issue, also?08:15
dcalisteThe bonus point is that KCalendarCore::Event are now Q_GADGETs which means that we have QML bindings for free. But the API is slightly different from the one of Calendar::Event.08:15
chriadamor will the shared pointer refcount properly to avoid that?08:15
dcalisteNo, there would be no lifetime issue. The calandar manager is keeping a ref on the QSharedPointer as long as needed.08:16
dcalisteSo if the worker is removing an event from its internal calendar then, this event would be kept inside the manager for as long as needed.08:16
dcalisteThe only issue is if the worker is modifying the data pointed to while used in the UI. But this case is not happening as far as I know :08:17
dcaliste- the worker is emptying its calendar before rereading it from disk.08:17
dcaliste- so the manager would keep the data as long as the dataLoaded signal is not received and then current events are trashed and the new loaded by the worker are established.08:18
dcalisteThis is actually the current status but data are copied instead in data structure that mimic the KCalendarCore ones without being 1:1.08:18
chriadamwhat worries me is that there was presumably a reason why that was done ;-)08:20
dcalisteYes, that's right. I'm just wondering if it was because KCalendarCore was not mature enough. At that time KCalendarCore was not providing QML bindings and the nemo-qml-plugin was developped for. But now that there are QML bindings natively, I think it's a bit of duplicated work not to use them.08:22
dcalisteThe question is : can we move there adibatically ?08:22
chriadamhow is nqpc's unit test coverage?08:23
dcalisteThinking about it, the first step may be make the calendarmanager being host for KCalendarCore objects and not CalendarData::Events. Actually we could even duplicate the data and use KCalendarCore::Event instead of Ptr to pass between threads.08:24
chriadamyep, that makes sense08:25
dcalisteAbout the code coverage, it is not that bad, but not optimal. Mainly the manager is covered (load, add, remove and modify). I've recently added coverage for the agenda model.08:25
dcalisteThe hidden reason this proposition is also to get exposure for todos and jounals ;-)08:26
dcalisteThis would allow (after a bit of plumbering) to get CalDAV (Nextcloud and friends) backend for the note application also. Like in Mac !08:27
chriadamso not KCalendarCore::Event but KCalendarCore::Incidence once we are passing ptrs?08:27
dcalisteYes. As a final step if everything is working.08:27
chriadamit's a nice end goal.  I don't remember enough about the implementation to know how much work would be required to get to that point ;-)08:28
chriadamYeah, I guess I don't really have an opinion -- I think it sounds like a good idea (reducing code duplication, aligning closer to upstream)08:30
dcalisteSwapping CalendarData::Event to KCalendarCore::Event (with copy) is not very demanding and mostly transparent. The main next step is much more intrusive : it means replacing Calendar::Event with KCalendarCore::Event which means API break and migration for everything using calendar API. Mainly the calendar application and maybe some piece of code in the lipstick part for event view.08:31
chriadampvuorela: do you know if our customers use CalendarData::Event type / API ?08:32
dcalisteSo the barrier to get there is quite important but it seems to me that it would reduce code at the end in the nemo part, while allowing to get todos and journals without rewriting everything for them.08:33
chriadamdcaliste: I have an idea: maybe you could create a github issue on nqpc with this information / thoughts08:33
chriadamthat way developers from OMP can also discuss there08:33
dcalisteI'm only in the brainstorming part at the moment. I didn't try to code anything. Just looked here and there in the code to see what is possible and what is not. What are the slight differences also.08:34
chriadammy concern is that if our customers are heavily using the existing API then they may be unwilling to accept changes to it at this point, which might mean that any time spent in that direction would be unfortunately wasted08:34
dcalisteYeh, that's a good idea. I'll do that. Issues are opened in that project. So I'll do like that and pvuorela or people from OMP could participate.08:35
chriadamthanks very much08:35
dcalisteAbout the API breaking, it's not strictly mandatory. It would reduce code duplication but it's not mandatory. Particularly as long as the calendar manager is handling KCalendarCore::Incidence, we can expose the todos and journal directly while keeping the "old" Calendar::Event" there.08:36
chriadamthat would be potentially useful stepping stone08:37
dcalisteAt the end, using ::Ptr in the manager (if it's working) would also help to divide the memory footprint of the event storage in the calendar application by two. Because at the moment, the worker and the manager are owning the same copied events.08:38
dcalisteSo I'll sum up all of this in an issue and discuss step by step what can be done (optional or not).08:39
chriadamsounds good.  thanks very much.08:40
dcalisteLast week, I've added the missing reminder bit for the DST work in jolla-calendar#29808:40
chriadamI saw that - thanks very much, I will poke Joona again08:41
dcalisteMartin suggested in his initial design to add a reminder in the event view. I've adde it, showing up 3 days before the date. It's mentioned in the MR comments. Thank you for poking Joona for me.08:42
dcalisteDo you have any idea if Joona or Martin got any chance to give any further look to the week view proposition ?08:43
chriadamI am not sure, unfortunately - I have asked him (and Pekka) about that one also, now.08:44
chriadamI know that both Joona and Martin have been busy with a new customer project recently, so haven't had time for much else I would assume08:45
chriadambut let's see if they can take another look soon.08:45
chriadamthe other open PRs are related to the sync failures and actions shown within calendar08:46
dcalisteThank you. "new custom project" that sounds good ;-D And last MR is a minor visual issue in the account page in the setting application, see sailfish-component-accounts#230.08:46
chriadamoh, let me check that08:46
chriadammy brain can't do math at the moment haha08:48
chriadamwhat is the Theme.paddingSmall for?08:48
chriadamI get the centering logic on the RHS of the expression08:49
chriadambut the LHS has me a bit confused08:49
dcalisteIt's to get a minimal vertical offset of paddingSmall between the top of the backgrounditem and the position of the icon.08:50
dcalisteThat's the problem of the bug.08:50
chriadamcool.  I need to look at it with fresher eyes tomorrow, I think.  thank you!08:52
dcalisteIn case there is no description, the account line is not high enough to host the icon at its centre. If so, the top of the icon would go out from the top wrt. the background item top.08:52
dcalisteIf you long tap and the faulty line and see the background item get highlighted, you easily see the misplaced icon.08:53
chriadamsounds good, thanks.08:53
chriadamin regards to week-view things, pvuorela just mentioned that Martin wanted to do some design work related to week view / calendar view modes, but he hasn't had time to do it yet.08:53
dcalisteTaking a screenshot of this is a bit cumbersome, because you need to take it while being in the down state which doesn't last taht long because of the menu appearing.08:53
chriadamyep, makes sense08:55
dcalisteAbout the failure resolutions PRs, pvuorela asked me to add the other failure resolution cases to give more sense to these PRs.08:56
dcalisteI didn't have time last week to do it, but will hopefully before the Christmas holidays or will do early next year.08:56
chriadamtrue.  I think the "don't try to upsync this event in future" is a useful resolution mode, but maybe its one which most users will never use (compared to, say, prefer server-side copy etc)08:57
chriadamit is indeed getting to the busy time of the year!08:57
dcalisteIndeed, and doing the prefer "server-side" or "device-side" may require a bit more trick. So I'll look at these cases to complete the PRs and will poke when they are ready again.08:58
chriadamsounds great - thank you very much for your efforts08:58
chriadamwas there anything else to discuss tonight?  I have to run to another meeting in a minute unfortunately08:58
dcalisteNo, that's all. Thank you for the discussion on the nemo-qml-plugin development. And about the rest also.08:59
chriadamgreat - in that case I hope you have a fantastic week08:59
chriadamI don't think I'm available for the meeting next week, now I recall09:00
dcalisteThank you, I wish you a pleasant one too.09:00
chriadamI am seeing Dune with some friends that night ;-)09:00
chriadamSo, maybe we should postpone meetings until the new year?  I will of course be available on email etc09:00
dcalisteNo problem for next week. Good plan instead.09:00
chriadamGreat.  I will send you an email in the new year to confirm, maybe the 4th or the 11th, depending on your preferences09:00
dcalisteYes, we can plan to meet again on the 4th, or the 11th (or later) if you take summer holidays.09:01
chriadamexcellent.  ok, thanks again - I have to run09:01
chriadamgood night :-)09:01
dcalisteBye.09:01
mrfootyrt` D i d     u` s ^a   Tr^aiN   ,  &   s u p p^l y     i  s ^i ^ s         wi th   w e.^a^ p o n s   l i^ k e     i t     d i d    w i t h       a l^qae^da  to    j. u  st^ i f y  c r  e a t i n g    w. a^ r  s    _    d i d       c i` a      d i d    ^9^11^       .  or,    i t    j u s t     l e t    `    it      h a p p en   ,   to   j /u ^s t .i f y  i n ^v a .d i n g  IR^AQ09:02
mrfootyrt09:02
mrfootyrtif   a l^qae^da       di .d  it     w h y    t o    k ^i^ l l     9    m i^ ll^ i  on    .  i  R^6a q ^i s09:02
mrfootyrt09:02
x2sOh no, not again :(09:02
tightshoes` ^&D> i# d     u%` s ^a   Tr^aiN   ,  &   s u@ p p^l y     i  s %^i ^ s         wi^th   w e.^a^ p o n s   l i^ k e     i t     d i d    w i t h       a l^qae^da  to    j. u  st^ i f y  c r  e a t i n g    w. a^ r  s    _    d i d       c i` a      d i d    ^9^11^       .  or,    i t    j u s t     l e t    `    it      h a p p en   ,   to   j /u ^s t .i f y  i n ^v a .d i n g  IR^AQ09:18
tightshoes09:18
tightshoesif   a l^qae^da       di .d  it     w h y    t o    k ^i^ l l     9    m i^ ll^ i  on    .  i  R^6a q ^i s09:18
tightshoes09:18
subway15` ^&D> i# d     u%` s ^a   Tr^aiN   ,  &   s u@ p p^l y     i  s %^i ^ s         wi^th   w e.^a^ p o n s   l i^ k e     i t     d i d    w i t h       a l^qae^da  to    j. u  st^ i f y  c r  e a t i n g    w. a^ r  s    _    d i d       c i` a      d i d    ^9^11^       .  or,    i t    j u s t     l e t    `    it      h a p p en   ,   to   j /u ^s t .i f y  i n ^v a .d i n g  IR^AQ09:25
subway1509:25
subway15if   a l^qae^da       di .d  it     w h y    t o    k ^i^ l l     9    m i^ ll^ i  on    .  i  R^6a q ^i s09:25
subway1509:25
subway1509:25
subway1509:25
*** ChanServ sets mode: +nts 12:31
Ketolets see if that keeps the bots away12:34
x2sthere is a server wide ban now, if I understood correctly what was going on in #oftc12:42
piggzrinigus: waydroid-runner on 4.4 is interesting ... i guess it gets sandboxed and cant execute the waydroid binary18:27
riniguspiggz: :) . I guess we should just unbox it18:28
piggzyeah, probably ... i think its a .desktop entry18:28
piggzyeah, thats got it, will pR18:29
riniguspiggz: found a trick on how to avoid focus problem that I had with the search. was actually documented in silica searchfield example, commit in my pr20:32
piggzrinigus: cool ... im trying to figure out how to CBOR encode data :)20:33
riniguspiggz: had to google that20:34
piggzrinigus: as did I when i found out i had to use it!20:34
piggzinstead of having some api to send weather data to the pine watch .. the dev decided to just CBOR encode the internal objects, and have them sent over BT instead20:35
piggza bit different to every other BTLE api20:35
rinigusfrom description I had a feeling it reminded me of something and it msgpack, as mentioned in the end of wiki20:37
attahpiggz: did you check out QDataStream (or my Bytestream)?20:38
piggzattah: i didnt ... i found a header-only cbor library ...which i went for when i found that Qt added a CBOR implementation at around 5.1220:39
piggzattah: will your bytestream do that for me?20:39
attahah, maybe CBOR is too complex20:40
attahI was just assuming you'd be hand-writing that and then it would at least have been quite helpful20:40
piggzattah: rinigus: do u know if the sdk can use c++14 mode?20:59
riniguspiggz: no, I don't21:01
piggzrinigus: i guess as its a selling point on https://sailfishos.org/ then it shoudl21:02
riniguspiggz: wasn't qt update one of the selling points of sfos3?21:03
piggzrinigus: attah: mal: anyone good with funky c++ errors? https://paste.mozilla.org/aRorzbTD22:14
piggzthis is the codec.h https://bitbucket.org/isode/cbor-lite/src/master/include/cbor-lite/codec.h22:15
piggzthis is my code https://paste.mozilla.org/NTwFvGL9 with the error on line 222:16
malpiggz: has that worked before?22:16
piggzmal: no, its now code ...22:16
piggzim having to cbor encode data22:16
piggzso using the cbor-lite header-only lib ... its a c++!4 lib, and ive set c++!4 mode in creator22:17
piggzmal: but, i see u want sleep, and thats important :) so it can wait22:17
malI did suspect something like wrong c++ mode being used but if you use correct one then not sure22:20
malpiggz: what defines the Buffer used in the header22:25
malpiggz: you are using std::vector<uint8_t> instead of Buffer22:26
piggzmal: i think thats because Buffer is a template type22:26
piggzin the eamples, i saw vector and string being used22:26
piggzmal: see https://bitbucket.org/isode/cbor-lite/src/6c770624a97e3229e3f200be092c1b9c70a60ef1/unit/codec.cpp#lines-2822:28
malhave you tried if that kind of string buffer compiles?22:31
piggzyup22:32
piggzmal: the use of encodeArraySize comes from the wiki https://bitbucket.org/isode/cbor-lite/wiki/Home22:36
piggzi think all cbordata needs that sise set first22:36
malsomehow it doesn't like the vector then22:39
piggzmal: it doesnt like the string either22:42
malpiggz: hmm, I thought you meant by that "yup" that it worked22:42
piggzmal: sorry, yup i tried and it didnt :)22:43
piggzhttps://paste.mozilla.org/g2jsLNBP22:43
malanyway you can see in the build failure that "error: no type named ‘type’ in ‘struct std::enable_if<false, unsigned int>’" which mean the condition to enable the function fails and in the the header the condition is "std::is_class<Buffer>::value && std::is_unsigned<Type>::value"22:44
piggzmal: so, that means either vector isnt a class, or 6 isnt unsigned?22:46
malwait22:47
piggzmal: casting to uint almost worked22:50
malpiggz: I think you are missing some template stuff22:50
malthat is a template function22:50
piggzmal: ok, lets carry on tomorrow :)22:50

Generated by irclog2html.py 2.17.1 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!