[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-usability
Subject:    Re: [KDE Usability] Review Request 108504: [High-dpi issues] Fix KIconDialog
From:       "Kai Uwe Broulik" <kde () privat ! broulik ! de>
Date:       2013-01-20 15:23:45
Message-ID: 20130120152345.24823.32311 () vidsolbach ! de
[Download RAW message or body]

[Attachment #2 (multipart/alternative)]


> On Jan. 20, 2013, 2:40 p.m., Thomas Lübking wrote:
> > kio/kfile/kicondialog.cpp, line 141
> > <http://git.reviewboard.kde.org/r/108504/diff/2/?file=108215#file108215line141>
> > 
> > Would it for such static sizes (why 60px in the first place?) not be more \
> > "correct" to use sh. like \
> > 60*100*2/(widget->physicalDpiX()+widget->physicalDpiY()) where "100" wold be the \
> > "standard" dpi? (could also be eg. 72 or 96) 
> > Right now (in latter RRs) you assign various configurable icon sizes to \
> > "remotely" related views. That might be correct and intended, but it's also a \
> > behavioral change and this time, desktop icons /can/ be assigned to 256px through \
> > the GUI - even on a 72dpi screen - and that's unlikely the intended size here.

From what I can tell all the iconButtons are using Desktop icon sizes (either \
properly or some constant), so using it there which is triggered by the iconButton \
made sense to me. And since KDE is nowhere near dpi independent, is the easiest and \
best way to do this imho. Otherwise we should just patch KIcon to return an icon size \
based on the screen dpi … but we don't use SVG icons and only have a limited amount \
of icon sizes (there is for example no 96x96 which is double 48x48 icon), so I see no \
other way.


- Kai Uwe


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/108504/#review25844
-----------------------------------------------------------


On Jan. 20, 2013, 11:15 a.m., Kai Uwe Broulik wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/108504/
> -----------------------------------------------------------
> 
> (Updated Jan. 20, 2013, 11:15 a.m.)
> 
> 
> Review request for kdelibs and KDE Usability.
> 
> 
> Description
> -------
> 
> This makes the KIconDialog (the dialog where you can choose icons for eg. folders) \
> respect the global icon size. Almost all sizes were hardcoded but the patch does \
> away with all of this and works fine with all icon sizes and big font sizes. Also \
> made it aware of FontMetrics (atm with bigger fonts, they also get clipped) and \
> adjusts the grid height accordingly. 
> Was fun diving into that "ancient" code :)
> 
> 
> Diffs
> -----
> 
> kio/kfile/kicondialog.cpp b7d646f 
> 
> Diff: http://git.reviewboard.kde.org/r/108504/diff/
> 
> 
> Testing
> -------
> 
> Yup, see screenshot.
> 
> The only issue that remains is the initial size of the dialog to make it show 4 \
> rows of icons. In the current implementation it just adds another 100px to the \
> dialog height (cf. line 490), which is easy, if all the sizes are known and fixed, \
> but with variing sizes this becomes an issue and I could not think of a proper \
> solution. I probably need to add a sizeHint (tried in the private class, didn't \
> help there)? The easiest but not neccessarily best solution would be to just set \
> the minimumHeight to 4 rows and done. 
> 
> File Attachments
> ----------------
> 
> Icon Dialog with 200dpi
> http://git.reviewboard.kde.org/media/uploaded/files/2013/01/20/icondialog.png
> Icon Dialog with 200dpi (without patch)
> http://git.reviewboard.kde.org/media/uploaded/files/2013/01/20/icondialog2.png
> 
> 
> Thanks,
> 
> Kai Uwe Broulik
> 
> 


[Attachment #5 (text/html)]

<html>
 <body>
  <div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
   <table bgcolor="#f9f3c9" width="100%" cellpadding="8" style="border: 1px #c9c399 \
solid;">  <tr>
     <td>
      This is an automatically generated e-mail. To reply, visit:
      <a href="http://git.reviewboard.kde.org/r/108504/">http://git.reviewboard.kde.org/r/108504/</a>
  </td>
    </tr>
   </table>
   <br />










<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: \
10px;">  <p style="margin-top: 0;">On January 20th, 2013, 2:40 p.m. UTC, <b>Thomas \
Lübking</b> wrote:</p>  <blockquote style="margin-left: 1em; border-left: 2px solid \
#d0d0d0; padding-left: 10px;">  



<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; \
border-collapse: collapse; margin: 2px padding: 2px;">  <thead>
  <tr>
   <th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; \
font-size: 9pt; padding: 4px 8px; text-align: left;">  <a \
href="http://git.reviewboard.kde.org/r/108504/diff/2/?file=108215#file108215line141" \
style="color: black; font-weight: bold; text-decoration: \
underline;">kio/kfile/kicondialog.cpp</a>  <span style="font-weight: normal;">

     (Diff revision 2)

    </span>
   </th>
  </tr>
 </thead>

 <tbody style="background-color: #e4d9cb; padding: 4px 8px; text-align: center;">
  <tr>

   <td colspan="4"><pre style="font-size: 8pt; line-height: 140%; margin: 0; \
">public:</pre></td>

  </tr>
 </tbody>



 
 

 <tbody>

  <tr>
    <th bgcolor="#e9eaa8" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2">138</font></th>  <td bgcolor="#fdfebc" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; ">    <span \
class="n">setIconSize</span><span class="p">(</span><span class="n">QSize</span><span \
class="p">(</span><span class="mi">60</span><span class="p">,</span> <span \
class="mi">60</span><span class="p">));</span></pre></td>  <th bgcolor="#e9eaa8" \
style="border-left: 1px solid #C0C0C0; border-right: 1px solid #C0C0C0;" \
align="right"><font size="2">141</font></th>  <td bgcolor="#fdfebc" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; ">    <span \
class="k">const</span> <span class="kt">int</span> <span \
class="n">desktopIconSize</span> <span class="o">=</span> <span \
class="n">IconSize</span><span class="p">(</span><span \
class="n">KIconLoader</span><span class="o">::</span><span \
class="n">Desktop</span><span class="p">);</span></pre></td>  </tr>

 </tbody>

</table>

  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: \
-pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Would it for such static \
sizes (why 60px in the first place?) not be more &quot;correct&quot; to use sh. like \
60*100*2/(widget-&gt;physicalDpiX()+widget-&gt;physicalDpiY()) where &quot;100&quot; \
wold be the &quot;standard&quot; dpi? (could also be eg. 72 or 96)

Right now (in latter RRs) you assign various configurable icon sizes to \
&quot;remotely&quot; related views. That might be correct and intended, but it&#39;s \
also a behavioral change and this time, desktop icons /can/ be assigned to 256px \
through the GUI - even on a 72dpi screen - and that&#39;s unlikely the intended size \
here.</pre>  </blockquote>





</blockquote>
<pre style="margin-left: 1em; white-space: pre-wrap; white-space: -moz-pre-wrap; \
white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">From what I \
can tell all the iconButtons are using Desktop icon sizes (either properly or some \
constant), so using it there which is triggered by the iconButton made sense to me. \
And since KDE is nowhere near dpi independent, is the easiest and best way to do this \
imho. Otherwise we should just patch KIcon to return an icon size based on the screen \
dpi … but we don&#39;t use SVG icons and only have a limited amount of icon sizes \
(there is for example no 96x96 which is double 48x48 icon), so I see no other \
way.</pre> <br />




<p>- Kai Uwe</p>


<br />
<p>On January 20th, 2013, 11:15 a.m. UTC, Kai Uwe Broulik wrote:</p>






<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" \
style="background-image: \
url('http://git.reviewboard.kde.org/static/rb/images/review_request_box_top_bg.ab6f3b1072c9.png'); \
background-position: left top; background-repeat: repeat-x; border: 1px black \
solid;">  <tr>
  <td>

<div>Review request for kdelibs and KDE Usability.</div>
<div>By Kai Uwe Broulik.</div>


<p style="color: grey;"><i>Updated Jan. 20, 2013, 11:15 a.m.</i></p>






<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
 <table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" \
style="border: 1px solid #b8b5a0">  <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: \
-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: \
break-word;">This makes the KIconDialog (the dialog where you can choose icons for \
eg. folders) respect the global icon size. Almost all sizes were hardcoded but the \
patch does away with all of this and works fine with all icon sizes and big font \
sizes. Also made it aware of FontMetrics (atm with bigger fonts, they also get \
clipped) and adjusts the grid height accordingly.

Was fun diving into that &quot;ancient&quot; code :)</pre>
  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: \
1px solid #b8b5a0">  <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: \
-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: \
break-word;">Yup, see screenshot.

The only issue that remains is the initial size of the dialog to make it show 4 rows \
of icons. In the current implementation it just adds another 100px to the dialog \
height (cf. line 490), which is easy, if all the sizes are known and fixed, but with \
variing sizes this becomes an issue and I could not think of a proper solution. I \
probably need to add a sizeHint (tried in the private class, didn&#39;t help there)? \
The easiest but not neccessarily best solution would be to just set the minimumHeight \
to 4 rows and done.</pre>  </td>
 </tr>
</table>




<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">

 <li>kio/kfile/kicondialog.cpp <span style="color: grey">(b7d646f)</span></li>

</ul>

<p><a href="http://git.reviewboard.kde.org/r/108504/diff/" style="margin-left: \
3em;">View Diff</a></p>



<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">File Attachments \
</h1>

<ul>

 <li><a href="http://git.reviewboard.kde.org/media/uploaded/files/2013/01/20/icondialog.png">Icon \
Dialog with 200dpi</a></li>

 <li><a href="http://git.reviewboard.kde.org/media/uploaded/files/2013/01/20/icondialog2.png">Icon \
Dialog with 200dpi (without patch)</a></li>

</ul>





  </td>
 </tr>
</table>








  </div>
 </body>
</html>



_______________________________________________
kde-usability mailing list
kde-usability@kde.org
https://mail.kde.org/mailman/listinfo/kde-usability


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic