Review Request 123137: High DPI pixmap support in Dolphin

David Edmundson david at davidedmundson.co.uk
Fri Mar 27 12:51:13 GMT 2015



> On March 26, 2015, 6:30 p.m., Christoph Feck wrote:
> > src/kitemviews/kstandarditemlistwidget.cpp, line 44
> > <https://git.reviewboard.kde.org/r/123137/diff/1/?file=356715#file356715line44>
> >
> >     Is the scaling ratio a per-screen property? If yes, we cannot just use qApp to query it.
> 
> Marco Martin wrote:
>     it can be different on different screens, yes
> 
> David Edmundson wrote:
>     >Is the scaling a per-screen property?
>     
>     Yes
>     
>     >...we cannot just use qApp
>     
>     Actually we can. 
>     qApp->devicePixelRatio returns the dpr of any screen.
>     
>     If we have two screens, one fancy, one normal we'll return a massive pixmap with a DPR of 2.
>     
>     When we do the final rendering, we'll paint this into the widget's paint device, the widget's paintDevice will match the current screen.
>     
>     If the widget is on the high res screen the DPRs match and paint at the same size
>     
>     If the widget is on the low res screen QPainter::drawPixmap will realise the DPR is smaller and just scale it down. Scaling down by an integer factor is practically lossless.
>     
>     Arguably it's not super super super ideal as you're potentially wasting memory but it won't do any harm like rendering huge or getting cropped. QIcon::pixmap() also uses qApp, so we already potentially have to deal with mixed dprs.

>qApp->devicePixelRatio returns the dpr of any screen.

That should say "the *highest* DPR of any screen"


- David


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/123137/#review78071
-----------------------------------------------------------


On March 26, 2015, 3:51 p.m., David Edmundson wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/123137/
> -----------------------------------------------------------
> 
> (Updated March 26, 2015, 3:51 p.m.)
> 
> 
> Review request for Dolphin, Christoph Feck and Marco Martin.
> 
> 
> Repository: dolphin
> 
> 
> Description
> -------
> 
> Quite a lot of changes, Dolphin does a /lot/ of special pixmap caching and manipulating.
> 
> Changes are in branch davidedmundson/highdpi
> 
> ----
> 
> 
> Make KPixmapModifier::applyFrame handle high DPI images
> 
> 
> Paint icons at the correct size
> 
> 
> squash me with a some other commit in kitemlistwidgetinformant
> 
> 
> Copy device pixel ratio from original pixmap inside KPixmapModifier::scale
> 
> 
> Create drag pixmaps which match the device pixel ratio
> 
> 
> Provide scaled pixmaps in the main file model
> 
> 
> Enable high DPI pixmaps in Dolphin
> 
> 
> Center align pixmaps in a high DPR friendly way
> 
> 
> Diffs
> -----
> 
>   src/kitemviews/kfileitemlistview.cpp d249bef 
>   src/kitemviews/kfileitemmodelrolesupdater.cpp c18d658 
>   src/kitemviews/kitemlistcontroller.cpp a9ebf97 
>   src/kitemviews/kitemlistwidget.cpp 3eb6b1d 
>   src/kitemviews/kstandarditemlistwidget.h 8264522 
>   src/kitemviews/kstandarditemlistwidget.cpp f663b87 
>   src/kitemviews/private/kpixmapmodifier.h e8ca11a 
>   src/kitemviews/private/kpixmapmodifier.cpp c564ecc 
>   src/main.cpp e8d6c2d 
>   src/panels/information/pixmapviewer.cpp 0053e43 
> 
> Diff: https://git.reviewboard.kde.org/r/123137/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> David Edmundson
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.kde.org/mailman/private/kfm-devel/attachments/20150327/3a2427bf/attachment.htm>


More information about the kfm-devel mailing list