> On May 14, 2015, 2:19 p.m., David Edmundson wrote: > > applets/systemtray/package/contents/ui/main.qml, line 126 > > <https://git.reviewboard.kde.org/r/123789/diff/3/?file=369034#file369034line126> > > > > is it this thing? > > http://tsdgeos.blogspot.co.uk/2015/02/qt-54-qml-c-qvariant-issues.html > > > > Could you test if this https://paste.kde.org/pgu5pnukc on kdeclarative > > fixes it? > > Marco Martin wrote: > seems it's that one. > i tried your patch, but with the qml > > if (extraItems.length > 0) { > plasmoid.configuration.extraItems = > plasmoid.configuration.extraItems.concat(extraItems); > } > if (newKnownItems.length > 0) { > lasmoid.configuration.knownItems = > plasmoid.configuration.knownItems.concat(knownItems); > } > > it still breaks the saved value > > Marco Martin wrote: > i mean, > if (extraItems.length > 0) { > plasmoid.configuration.extraItems = > plasmoid.configuration.extraItems.concat(extraItems); > } > if (newKnownItems.length > 0) { > plasmoid.configuration.knownItems = > plasmoid.configuration.knownItems.concat(newKnownItems); > } > > but yeah, still broken > > Marco Martin wrote: > even more fun, this what a debug in > ConfigPropertyMapPrivate::writeConfigValue says > qDebug()<<key<<value<<value.value<QJSValue>().toVariant(); > > becomes: > > "knownItems" QVariant(QJSValue, ) QVariant(QVariantList, > (QVariant(QStringList, ("", "org.kde.plasma.networkmanagement", > "org.kde.muonnotifier", "org.kde.ktp-contactlist", > "org.kde.plasma.clipboard", "org.kde.plasma.notifications", > "org.kde.plasma.battery", "org.kde.plasma.printmanager", > "org.kde.plasma.devicenotifier", "org.kde.plasma.bluetooth", > "org.kde.plasma.mediacontroller")) , QVariant(QString, > "org.kde.phone.notifications") ) ) > > so, like javascript thinks plasmoid.configuration.knownItems is not an > array, doing a concat over this creates an array of two items, the first the > full content it used to have, the second the new values. > > It also suggests your patch to ConfigPropertyMapPrivate is correct, there > is just also another problem on top of that one ;)
in fact with your patch, the following code works if (newExtraItems.length > 0) { plasmoid.configuration.extraItems = plasmoid.configuration.extraItems.slice().concat(newExtraItems); } if (newKnownItems.length > 0) { plasmoid.configuration.knownItems = plasmoid.configuration.knownItems.slice().concat(newKnownItems); } like, after slice(), the thing is transformed from something that kinda looks like an array to a proper array - Marco ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://git.reviewboard.kde.org/r/123789/#review80346 ----------------------------------------------------------- On May 14, 2015, 11:20 a.m., Marco Martin wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://git.reviewboard.kde.org/r/123789/ > ----------------------------------------------------------- > > (Updated May 14, 2015, 11:20 a.m.) > > > Review request for Plasma. > > > Bugs: 345872 > https://bugs.kde.org/show_bug.cgi?id=345872 > > > Repository: plasma-workspace > > > Description > ------- > > if new plasmoids are installed that are systray enabled and enabled by > default, automatically add them, unless they were disabled explicitly. This > solves a problem distributions seem to add while updating to new plasma > releases. > > obtain this by keeping both a list of explicitly enabled stuff and all the > already known stuff > > it does horrible things with arrays, that's due to some weird sideeffects of > having qstringlists as properties, of which we'll have to pay close attention > to > > > Diffs > ----- > > applets/systemtray/package/contents/config/main.xml 2967dba > applets/systemtray/package/contents/ui/main.qml fd59a14 > > Diff: https://git.reviewboard.kde.org/r/123789/diff/ > > > Testing > ------- > > > Thanks, > > Marco Martin > >
_______________________________________________ Plasma-devel mailing list Plasma-devel@kde.org https://mail.kde.org/mailman/listinfo/plasma-devel