On Dienstag, 4. November 2014 10:20:18 CEST, Martin Gräßlin wrote:
DecorationSettings
onAllDesktopsAvailableChanged
-> remove the "on" prefix

No, maybe the name is bad, but if the on is removed the meaning changes. It's whether one can put DecoratedClients "on all desktops" (at lest two virtual desktops). I'll think about a better name.

_____________

Generally: Ceterum censeo QList esse delendam

:-D

-> I suggest you remove QList and use QVector by default everywhere.
Reasoning?
QVector operates on adjacent memory - it's very fast if you've a "create once, read many" 
structure of "reasonable" size, but when the size varies a lot and/or glib has trouble to 
allocate the amount of adjacent memory, things will go south.

Now, this pretty much is the case for the QList's used in this contex (so 
replacing them with QVector is certainly an improvement), but I'd be very 
careful about extrapolating your personal Cannae here ;-)


No, the point I wanted to make by using a QPointer is that the API doesn't guarantee that the returned pointer stays valid. Kind of I want to enforce correct usage (note this are plugins loaded into KWin, I don't want a plugin to crash KWin by accessing a dangling pointer. Better save in the API than sorry).

I'd rather stress "notice that the return value can be nullptr and change during the 
lifetime of the DecoratedClient".

The user can still do
Decoration *m_deco = m_client->decoration(); // fails at some point

Overmore, the guarded pointer may turn nullptr, but m_client->decoration() 
return a valid pointer again, right (deco changed)?

So the strategy you've to sell is to NOT store the pointer locally - and 
QPointer does actually the opposite, does it?

::findBridge
could you please explain why or point me to a web resource describing it?
Make it invisible. Any local helper function, not (supposed to be) used outside the 
source file probably should be tagged "static".


Cheers,
Thomas

Reply via email to