On Sunday 14 February 2010 18:24:51 Marco Martin wrote: > > QRectF makeUniform(const QRect &orig, > > const QRect &dst) > > oring and dist shouldn't them be QRectF in the signature?
only if we care about it being anywhere close to correct. definitely should :) > ok, let's see if i got what this does :) > if an element has the geometry(10.5, 10.5, 30,30), we want to render it at > (0,0,30,30) we'll render at (0.5, 0.5, 29.5, 29.5) making aligned the edge > in the oringin that would otherwise have been rendered between two pixels > > but don't quite understand why the size gets changed? it shouldn't. i should've used moveCenter or such. the size should stay the same, we just want to align it. basically just do the best we can within the size that we were given. all in all the size could and possibly should be changed by the offset itself, but that could be fixed later. so as you mentioned, it's easiest to see within identity transform: orig = QRectF(0.5, 0.5, 32, 32) dst = QRectF(10, 10, 32, 32) hence transform = identity, offset = 0.5 and so true dst = QRectF(10.5, 10.5, 32, 32); with scaling things get hairy, there are two possibilities here they are: true dst = QRectF( offset * div_w + dst.x(), offset * div_h + dst.y(), dst.width(), dst.height()); and true dst = QRectF( offset + offset * div_w + dst.x(), offset + offset * div_h + dst.y(), dst.width(), dst.height()); (btw, in res.adjust in the last email instead of "offset / div" it should say offset * div). for the case above that would be: orig = QRectF(0.5, 0.5, 32, 32) dst = QRectF(0, 0, 16, 16) hence transform = scale(0.5, 0.5), offset = 0.5 * scale = 0.25 and so true dst = QRectF(0.25, 0.25, 16, 16); or true dst = QRectF(0.75, 0.75, 16, 16); the code i've sent in the other email does the first, but it's possible that #2 looks better or as mentioned in the last email it's possible that just skipping the divisor looks ok so true dst = QRectF(0.5, 0.5, 16, 16) but i sorta doubt that because mathematically it doesn't seem to make sense to me, but hey, when it comes to esthetic's lots of things doesn't make sense to me. z _______________________________________________ Plasma-devel mailing list Plasma-devel@kde.org https://mail.kde.org/mailman/listinfo/plasma-devel